8051系统中,已知振荡频率为12MHz,用定时/计数器T0,实现从P1.0产生周期为2ms的方波。C语言进行编程。
从P1.0输出周期为2ms的方波,只须P1.0每1ms取反一次则可。当系统时钟为12MHZ,定时/计数器T0工作于方式1时,最大的定时时间为65.536ms,满足1ms的定时要求,方式控制字应设定为00000001B(01H)。定时1ms,计数值N为1000,初值X=65536-1000=64536,则TH0=FCH,TL0=18H。
#include
sbit P1_0=P1^0;
void main()
{
TMOD=0x01; //定时器0,方式1
TH0=0xFC;
TL0=0x18; //定时1ms,0xfc18 == 64536
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //开定时器0
while(1);
}
void time0_int(void) interrupt 1 //中断服务程序
{
TH0=0xFC;
TL0=0x18;
P1_0=!P1_0;
}
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』