首页 理论教育项目软件程序设计结果 51单片机初级实战教程

项目软件程序设计结果 51单片机初级实战教程

【摘要】:图7-4 独立按键控制程序流程图在独立按键控制程序流程图的基础上书写按键控制LED程序代码如下:结合2.3节关于单片机开发环境Keil C51的学习,建立工程button文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图7-5所示。同时在创建工程路径button文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。

基于7.3节独立按键控制硬件电路如图7-3所示,可以看到单片机的P3.0~P3.3外接上拉电阻,则S1~S4无按键操作时,P3.0~P3.3端口保持高电平状态,当其S1按键按下时S1导通,按键直接与地相连,此时P3.0引脚为低电平,程序设计时只要检测到P3.0引脚电平为低电平,说明S1按键按下,则P0.0和P0.1置低电平,点亮LED1和LED2;同理对于S2按键按下操作时,单片机不断监测P3.1引脚电平是否有变化,若有,则点亮LED3和LED4;依此类推,单片机通过不断的监测P3.0~P3.3电平的变化,点亮对应的LED。

但是在编写独立按键控制LED亮的程序过程中需要考虑一个问题,按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开,因而在闭合及断开的瞬间均伴随有一连串的抖动,由于单片机执行程序速度很快,在按下按键这个时间里就会产生按键抖动。按键抖动会引起一次按键被误读多次,为确保单片机对按键的一次闭合仅作一次处理,必须去除按键抖动。在按键闭合稳定时读取按键的状态,一直判断到按键释放稳定后再处理其他语句。当按键数量操作比较多时,一般采用软件消抖的方法不断检测按键值,直到按键值稳定,实现方法为检测到按键输入为低电平后,延时一段时间(一般延时5~10ms恰好避开抖动期),再次检测,如果按键还是低电平,则认为有按键输入,再转去执行其他功能语句。独立按键控制电路程序设计流程图如图7-4所示。

978-7-111-47690-0-Part02-21.jpg

图7-4 独立按键控制程序流程图

在独立按键控制程序流程图的基础上书写按键控制LED程序代码如下:

978-7-111-47690-0-Part02-22.jpg(www.chuimin.cn)

978-7-111-47690-0-Part02-23.jpg

结合2.3节关于单片机开发环境Keil C51的学习,建立工程button文件,并将上述代码在Keil环境下进行编译,程序成功编译结果如图7-5所示。同时在创建工程路径button文件夹下生成一个扩展名为.hex文件,供下载软件将生成的.hex文件下载到单片机中。

978-7-111-47690-0-Part02-24.jpg

图7-5 程序成功编译结果图