/* 效果说明: 计数器中断:通过外设计数是程序执行 按一下中断一次,中断发生时高四位亮,中断发生后又回到主程序 */ #include <reg51.h> #include <stdio.h> unsigned int i; void delay()//延时子函数 { i=50000; while(i--); } //unsigned char TCOM; //中断初始化 void zhongduan1() { ET0 = 1;//启动计数器中断开关 EA = 1;//总开关 /* 计数器的核心在这 */ TH0 = 255;//按一下中断一次 TL0 = 255; TMOD = 0x05;//0000 0101 在计数器方式下 TR0 = 1;//启动定时器 } void main()//主函数 { zhongduan1();//中断初始化 while(1)//while死循环,主程序一直执行,也就是点亮低四位一直亮,中断发生时就跳出执行中断函数程序,中断发生后又回到主程序 { P0 = 0xf0;//点亮低四位 } } //中断程序 也就是中断后要执行的程序 void zhongduan() interrupt 1 { P0 = ~0xf0;//高四位亮 delay();//延时子函数调用 变现为中断发生时所要执行程序的时间 TH0 = 255; TL0 = 255; }
