理论教育 零点起步:读取5个按键状态

零点起步:读取5个按键状态

时间:2023-10-19 理论教育 版权反馈
【摘要】:3个按键状态的读取与一个按键的类似,只不过是要多占用两个I/O引脚。要求按时不出现连续加1或连续减1的情况。图5-10 3个按键状态读取实验电路图电路图在光盘位置:“\Example\Chapter5\S055\sch\smg4key2.dsn”。3)本例中还需要新建delay.h、delay.c、seg74.c、seg74.h4个文件。

零点起步:读取5个按键状态

3个按键状态的读取与一个按键的类似,只不过是要多占用两个I/O引脚。若要求按键过程中不出现连续加1或连续减1,这样就需要在程序中加入消除后沿抖动的代码。

【例5-7】硬件电路如图5-10所示。要求编程实现当按ADD键加1,按SUB键减1,按AC键则清零。要求按时不出现连续加1或连续减1的情况。

978-7-111-33274-9-Chapter05-33.jpg

图5-10 3个按键状态读取实验电路图

电路图在光盘位置:“\Example\Chapter5\S055\sch\smg4key2.dsn”。

程序分析

●类似于单个按键SW的电路功能分析,当按ADD键加1,按SUB键减1,按AC键则清零。要求按时不出现连续加1或连续减1。由于机械按键部件使用时存在机械抖动,所以要在程序中做消抖处理。

●对于数码管显示,由于在例5-5中已经把数码管显示代码做成了两个模块文件seg74.h和seg74.c,所以把其相关模块文件添加到当前项目中就可以直接使用数码管显示函数了。(www.daowen.com)

设计过程

1)用MPLAB新建项目S055,语言工具选择为“HI-TECH Universal Toolsuite”,保存在“C:\S055”文件夹下。

2)新建main.c文件并加入项目中,其内容如下所示。

978-7-111-33274-9-Chapter05-34.jpg

978-7-111-33274-9-Chapter05-35.jpg

3)本例中还需要新建delay.h、delay.c、seg74.c、seg74.h4个文件。其内容与例5-5中的4个文件完全相同,用户可以直接将其复制到本项目文件夹下并加入项目中使用。

4)所有需要的5个文件添加完毕后成功编译出目标文件,然后用调试工具Proteus VSM加载smg4key2.dsn来运行程序。运行时当按ADD加1,按SUB减1,按AC则清零。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈