利用定时器0产生10Hz的方波,由P1.0口输出,振频率为12MHz。分析如下: 1频率为10Hz的方波,周期为100ms,定时时间为50ms。 2晶振频率12MHz的机器周期为1us。 3定时器T0初值=2^16-t/T机器=65536-50000/1=55536=0x3cb0。 4定时初值存放TH0=0x3c, TL0=0xb0。 c语言的源程序如下: #include"reg51.h" //头文件 main( ) //主程序 { TMOD=0x01; //设定t0为方式1定时功能 TH0=0x3c; //设定50ms定时初值 TL0=0xb0; TR0=1; //启动t0 while(1) //死循环 {while(!TF0); //等待定时器溢出 ? //清除溢出标志位 ? //端口取反 TH0=0x3c; //重赋初值 TL0=0xb0; }} A. TF0=0; //清除溢出标志位 B. P1_0=!P1_0; //端口取反 C. TF0=1; //清除溢出标志位