51单片机教程:独立按键中断与查询方式应用

需积分: 9 0 下载量 195 浏览量 更新于2024-08-17 收藏 1.84MB PPT 举报
"这篇资料主要讲解了51系列单片机中的键盘操作,包括独立按键的中断处理和服务程序,以及两个使用查询方式检测独立按键的练习。" 在51系列单片机的学习中,键盘是人机交互的重要部分,本资料主要关注的是独立按键的应用。独立按键通常是指每个按键都直接连接到单片机的一个输入引脚,当按键按下时,该引脚的电平会发生变化。在51单片机中,可以利用中断来实时响应按键事件。 首先,中断是单片机处理外部事件的一种高效方式。在提供的代码示例中,可以看到如何设置中断以响应独立按键。例如,外部中断INT0和INT1被打开,中断总控EA也被开启,这样当P0或P2口上的按键被按下时,相应的中断服务程序会被调用。`keypress0()`和`keypress1()`就是这两个中断的服务程序,它们分别负责在接收到中断请求后更新数码管显示的数字。 中断服务程序的编写需要注意中断向量的设定,中断0的中断服务程序需放在中断向量0的地方,中断2的中断服务程序放在中断向量2的地方。在示例中,`keypress0()`位于`interrupt0`,`keypress1()`位于`interrupt2`,这使得单片机知道如何处理特定的中断事件。 接下来的两个练习则展示了如何通过查询方式检测独立按键。查询方式是一种非中断式的按键检测方法,它会不断地检查按键状态以确定是否被按下。在第一个练习中,程序会检测S19按键,如果按键被按下并保持,LED0的状态会随之改变,实现LED的开关控制。通过延时函数`Delay()`,可以避免由于机械抖动造成的误检测。 第二个练习则更进一步,不仅要检测按键是否被按下,还要计数按键被按下的次数,并在数码管LED7上显示。这个练习涉及到计数器和数码管显示,计数值达到9后会重置为0。计数功能的实现需要在主循环中不断检查按键状态,一旦检测到按键按下,就增加计数值,并更新数码管的显示。 这个资料涵盖了51单片机中独立按键的基本使用,包括中断驱动和查询方式的按键检测,以及简单的数码管显示和计数功能。这些都是单片机应用开发的基础,对于理解单片机与外部设备的交互具有重要意义。