#include <reg51.h>
unsigned char i;
void main()
{
TMOD=0x10;
TH1=0x3c;
TL1=0xb0;
EA=1;
ET1=1;
TR1=1;
while(1)
{
if(i==20)
{
i=0;
//下面写你要处理的的其他程序,你只要了定时1s。
}
}
}
void a(void) interrupt 3
{
unsigned char i;
TH1=0x3c;
TL1=0xb0;
i++;
}
12Mhz的
51单片机,经过12分频后为1MHz,则一个指令周期为1/1Mhz = 1us.
则定时50ms为 0xffff - 0x3cb0,即65535 - 15535 = 50000us = 50ms,则20次的定时:20×50ms=1s。
明白了吗?怪简单的问题……
祝你顺利哦!
本回答被提问者和网友采纳