#include <reg52.h>
#define uchar unsigned char
#define uint
unsigned intsbit LED = P0^0;
uchar T_Count = 0;
void main()
{
TMOD = 0x01;
TH0 = (65535-50000)/256;
TL0 = (65535-50000)%256;
IE = 0x82;
TR0 = 1;
while(1);
}
void LED_Flash() interrupt 1
{
TH0 = (65535-50000)/256;
TL0 = (65535-50000)%256;
if(++T_Count == 20)
{
LED = !LED;
T_Count = 0;
}
}
这个程序是1秒钟LED灯会亮与灭显示
追问TH0 = (65535-50000)/256;
TL0 = (65535-50000)%256;
是怎么算出来一秒的?
追答 那个是定时50MS
方式1的计数位数是16位,由TL0作为低8位、TH0作为高8位,组成了16位加1计数器 。
计数个数与计数初值的关系为:X=2的13次方-需要定时数
追问TH0 = (65535-50000)/256;
TL0 = (65535-50000)%256;
用16进制表示是什么
追答TH0 = 0x3C;
TL0 = 0x0B0;
本回答被提问者采纳