| 
 
| 利用定时/计数器T1产生定时时钟, 由P1口控制8个发光二极管,
 使8个指示灯依次一个一个闪动,
 闪动频率为10次/秒(8个灯依次亮一遍为一个周期),循环。
 设晶振频率为12MHz。
 #include<reg52.h>  //52单片机头文件
 #include <intrins.h> //包含有左右循环移位子函数的库
 #define uint unsigned int    //宏定义
 #define uchar unsigned char  //宏定义
 sbit P1_0=P1^0;
 uchar tt,a;
 void main()      //主函数
 {
 TMOD=0x01;//设置定时器0为工作方式1
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 EA=1;//开总中断
 ET0=1;//开定时器0中断
 TR0=1;//启动定时器0
 a=0xfe;
 while(1);//等待中断产生
 }
 void timer0() interrupt 1
 {
 TH0=(65536-50000)/256;
 TL0=(65536-50000)%256;
 tt++;
 if(tt==2)
 {
 tt=0;
 P1=a;
 a=_crol_(a,1);
 }
 }
 我所不理解的地方时  进入主程序需要时间,在主程序中到达启动定时器0也要时间,而启动后50ms,执行中断服务程序也要时间,究竟定时器怎么把时间分配的
 | 
 |