9.4 项目的软件程序设计
2025年09月21日
9.4 项目的软件程序设计
单片机的P1.4~P1.7外接上拉电阻,则S1~S4无按键按下时,P1.4~P1.7端口始终保持高电平状态;当按键按下时,S1~S4导通,此时P1.0为低电平,程序设计只要检测到P1.0为低电平,则相应的LED灯点亮。
需要注意的是,按键开关在闭合时不会马上稳定地接通,在断开时也不会马上断开,因而在闭合及断开的瞬间均伴随有一连串的抖动,由于单片机执行程序速度很快,在按下按键这个时间里就会产生按键抖动。键抖动会引起一次按键被误读多次,为确保单片机对按键的一次闭合仅作一次处理,必须去除键抖动。在按键闭合稳定时读取按键的状态,一直判断到按键释放稳定后再作处理其他语句。当按键数量操作比较多时,一般采用软件消抖的方法,不断检测按键值,直到按键值稳定,实现方法是:检测到按键输入为低电平后,延时一段时间(一般延时5~10ms,恰好避开抖动期),再次检测,如果按键还是低电平,则认为有按键输入,可以执行其他功能语句。独立按键控制电路程序设计流程如图9-4所示。
图9-4 独立按键控制程序流程图
独立按键控制LED程序代码如下:
结合2.1节关于单片机开发环境KeilC51的学习,建立工程文件,并将上述代码在Keil环境下进行编译,程序编译成功如图9-5所示。同时在创建工程的文件夹下生成一个.hex文件,下载到单片机中。
图9-5 程序成功编译结果图