51单片机C语言程序设计经典实例(第3版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

任务3 查询式按键值显示设计

设计要求

将8个按键从1~8进行编号,如果其中一个键被按下,则在LED数码管上显示相应的键值。

硬件设计

在桌面上双击图标,打开Proteus 8 Professional窗口。新建一个DEFAULT模板,添加表4-2 所列的元器件,并完成如图4-8所示的硬件电路图设计。

表4-2 查询式按键设计所用元器件

图4-8 查询式按键值显示电路图

程序设计

如果有键被按下,则相应的输入为低电平,否则为高电平。这样可通过读入P1端口的数据来判断被按下的是哪个键。若有键被按下,要用一定的延时来防止由于键盘抖动而引起的误操作。查询式按键值显示程序流程图如图4-9所示。可以使用if语句或switch语句实现此任务操作。

图4-9 查询式按键值显示程序流程图

源程序

1使用if语句实现的源程序

2使用switch语句实现的源程序

调试与仿真

首先在Keil中创建项目,输入源代码并生成Debug.OMF文件,然后在Proteus 8 Professional中打开已创建的查询式按键值显示电路图并进行相应设置,以实现Keil与Proteus的联机调试。单击Proteus 8 Professional模拟调试按钮的运行按钮,进入调试状态。此时按下某个按键后,LED数码管将会显示相应的键值。例如,按下按键K6后,其运行仿真效果图如图4-10所示。

图4-10 查询式按键值显示运行仿真效果图