首页 理论教育项目软件程序设计-项目软件程序设计教程

项目软件程序设计-项目软件程序设计教程

【摘要】:根据图13.6矩阵键盘电路原理图,矩阵键盘行线P20~P23为输出线,列线P24~P27为输入线。单片机将行线全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。图13-8 程序成功编译结果图

项目通过按下相应键后在4位集成数码管上显示出对应按键值。0~16个按键值在数码管分别对应显示0~F。根据图13.6矩阵键盘电路原理图,矩阵键盘行线P20~P23为输出线,列线P24~P27为输入线。单片机将行线(P20~P23)全部输出低电平,此时读入列线数据,若列线全为高电平则没有键按下,当列线有出现低电平时调用延时程序以此来去除按键抖动。延时完成后再判断是否有低电平,如果此时读入列线数据还是有低电平,则说明确实有键按下,再来进一步确定键值。如以第二行的S7按键为例,若按下S7按键后,先判断是否有按键按下,一旦判断确实有按键按下后,行线轮流输出低电平,根据读入列线的数据可以确定键值。首先,单片机将P20输出为低电平,其他P21~P23输出高电平,此时读取列线的数据全为高电平,说明没有在第一行有键按下;其次,单片机将P21输出低电平,其他P20、P22、P23仍为高电平,此时再来读取列线数据,发现列线读到的数据有低电平,数值为P20=1、P21=0、P22=1、P23=1(即1101),此时列项S7按键按下导致P27=0、P26=1、P25=1、P24=1(即0111),最后将按键特征码组合为01111101(即0x7d),那么0x7d代表S7的按键值,执行按键扫描功能处理子程序就可以达到目的。依据上述原理矩阵键盘控制系统软件设计流程图如图13-7所示。

单片机控制矩阵按键,通过按不同的按键在数码管端显示对应的按键码程序如下:

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

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

图13-7 系统软件设计流程图

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

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

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

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

图13-8 程序成功编译结果图