数码管的显示:
按键1连接外部中断0,按一次按键数码管显示的数字加1(0-9)
求解答
AT89C51、 Keil的。
下载:
#include unsigned char KeyDown_Flag = 0; unsigned char Count = 0; //函数:INT_Init() //描述:外部中断初始化 //参数:无 static void INT_Init(void) { IT0 = 1; // 低电平产生中断 EX0 = 1; // 开中断外部0 } //函数:ISR_Init() //描述:中断初始化 //参数:无 void ISR_Init(void) { INT_Init(); // 外部中断初始化 EA = 1; // 开全局中断 } void main(void) { ISR_Init(); P1 = 0; while(1) { if(KeyDown_Flag == 1) { Count++; P1 = Count; KeyDown_Flag = 0; } } } //函数:Inter_Init() //描述:外部中断初始化 //参数:无 void ISR_INT0(void) interrupt 0 { KeyDown_Flag = 1; // 标记按键成功 }
这个代码其实是从这个//www.icxbk.com/group-topic-id-45240.html里面摘抄的。欢迎常来Proteus板块!
你是要用中断功能来进行计数的吗?
还是要用判断功能检测按键进行计数。用中断的话你要开启P3相应PIN的中断功能,并配置外部中断是高电平有效,还是低电平有效,或者是上升沿触发有效。这样程序相对复杂些。
用判断法,可以直接判断接按键的PIN是高电平或者低电平时,计数并送出一个显示代码。用向上计数法,计数9次,并依次送出0~9的显示代码。这样写程序相对简单些。
}
哎 !现在这学生怎么了
武力哥:明天不上班
看到啦
故意滴
完善一哈
接项目啦
做什么
方便透露吗