/*
效果说明:
计数器中断:通过外设计数是程序执行
按一下中断一次,中断发生时高四位亮,中断发生后又回到主程序
*/
#include
#include
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;
}