任务实施
更新于 2026年10月10日
版权声明
任务实施
一、任务分析
本任务是设计按键计数器,K1按下时,数码管左端数据加1;K2按下时,数码管右端数据减1。
按键状态判断:
if(K1==0&&k==1){语句;} //按键K1按下时,状态为1
if(K1)k=1;//按键K1释放后,状态为1
提示:在按键程序中,确认按键按下时,就会执行“键按下后的语句”。如果没有“按键状态判断”,程序会很快返回,进行下一次的按键确认,如果键还没释放,又会执行“键按下后的语句”,这样数据会快速递增,很快达到上限或者溢出,造成按键功能不能正常实现的故障。
二、程序设计
程序设计流程如图5-2-3所示。

图5-2-3 程序流程图
参考程序:


三、电路仿真
1.绘制电路图
打开Proteus软件,建立“按键计数器的制作与实现”文件,放置元器件。所需元器件见表5-2-4。绘制完成的电路如图5-2-4所示。(https://www.daowen.com)
表5-2-4 元件清单


图5-2-4 绘制电路
2.编写程序
打开Keil软件,新建“按键计数器”工程文件,新建“jishuq.c”文件,编写程序并生成hex文件。编写完成的程序如图5-2-5所示。

图5-2-5 编写程序
3.电路仿真
双击单片机,打开“Edit Component”对话框,加载hex文件。单击“仿真”按钮,仿真电路,并观看仿真结果。仿真结果如图5-2-6所示。

图5-2-6 仿真结果

仿真视频
仿真结果显示:当按下K1按键时,数码管左端开始加1计数;当按下K2按键时,数码管右端开始减1计数。