#include
#define uchar unsigned char
#define uint unsigned int
sbit LED=P0^0;
uchar t_count=0;
int main(void)
{
TMOD=0x00;
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
IE=0x82;
TR0=1;
while(1);
}
void LED_FLASH() interrupt 1
{
TH0=(8192-5000)/32;
TL0=(8192-5000)%32;
if(++t_count==100)
{
LED=~LED; //0.5s开关一次LED
t_count=0;
}
}
——————————————————————————————————————————
现假定单片机晶振为12MHz,在P1.0端输出1ms的方波
选用方法0计数
方法0由低五位和高八位计数器组成 2^5=32 所以文中选用取余和取商的操作方法
(2^13-x)*1us=500us
x=8192-500=7692=1111000001100;
即TH0=78H;TL0=0CH;