| 
 
| 这是我做的一个项目,开始运行正常,后来突然就程序不运行了,百思不得其解,后来把一个LED程序烧写进去测试,发现单片机变慢了。 使用STC11F02E,通过定时器中断翻转LED,程序如下:
 #include"reg51.h"
 
 #define uchar unsigned char
 sbit FMQ =P3^5;
 sbit LED = P3^7;
 void timer0_init()
 {
 TMOD=0x21;                  //定时器1工作方式2  定时器0 工作方式1
 TH0=(65536-50000)/256;                //定时50ms
 TL0=(65536-50000)%256;
 ET0=1;                                                //使能定时器0中断
 EA=1;                                                //开启总中断
 TR0=1;                                                //启动定时器0
 }
 void main()
 {
 FMQ = 0;
 timer0_init();
 while(1)
 {
 ;
 }
 }
 void timer0() interrupt 1
 {
 uchar times;
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 times++;
 if(times==20)
 {
 LED = ~LED;
 }
 }
 
 程序运行的结果是LED近10秒才翻转一次,这个太奇怪了。
 
 有经验的来看看!
 
 | 
 |