1 /* 2 艾米电子工作室 3 4 实验二 单片机内部定时器0中断应用 5 db :zliang 6 2008-9-18 18:43:56 7 网站:http://www.amy-studio.com/ 8 9 10 */ 11 #include <reg51.h> 12 13 /***************/ 14 sbit led = P3^0; //管脚定义 15 unsigned char count = 0; //定义变量 16 17 /**********************************/ 18 void time0(void) interrupt 1 //产生50MS定时 19 { 20 TH0 = (65536-50000) / 256; //重新设置定时器 初值 21 TL0 = (65536-50000) % 256; 22 count ++; //50ms太短,闪烁频率太快 23 if(count == 10) //用变量 count 延长到500ms 24 { 25 count = 0; //计数器清零 26 led = !led; //取反 27 } 28 } 29 30 /***************/ 31 void main(void) 32 { 33 34 TMOD = 0x01; //T0 工作在方式1 16位计数器 35 TH0 = (65536-50000) / 256; // 预先 设定定时器 初值 36 TL0 = (65536-50000) % 256; 37 EA = 1; //开启 总中断 38 ET0 = 1; //开启定时器 0 39 TR0 = 1; //定时器 0 的运行标志位 40 41 while(1) //死循环 42 { //程序是在 定时器中断中完成的 43 44 } 45 } 46 47


