基于C51的矩阵键盘程序设计优化 滕艳菲 陈孜杰

发表时间:2021/7/12   来源:《基层建设》2021年第12期   作者:滕艳菲 陈孜杰
[导读] 在单片机课程中,矩阵键盘实验是学生必学的项目,很多教材的矩阵键盘设计程序编程规范,通用性强,但是对于刚入门的学生来说,除了要理解矩阵键盘扫描法的原理,还要把C语言、单片机知识融汇贯通,着实要花费一些精力

        广东科技学院
        摘要:在单片机课程中,矩阵键盘实验是学生必学的项目,很多教材的矩阵键盘设计程序编程规范,通用性强,但是对于刚入门的学生来说,除了要理解矩阵键盘扫描法的原理,还要把C语言、单片机知识融汇贯通,着实要花费一些精力。本文对矩阵键盘设计了基础版程序和优化版程序,降低了学习难度,提升了学习效果,适用于初学者。
        关键词:矩阵键盘;设计程序;优化


        一 引言
        键盘具有向单片机输入数据、命令等功能,是人与单片机对话的主要手段。在几乎所有的单片机教材中,矩阵键盘项目都占有一席之地,可见其重要性。矩阵键盘项目练习一般都是安排在教材的上半部分,有些难度,对于学生来说,处于单片机学习的“爬坡期”,如果学不透,学习积极性将会受到打击,很难有信心学好后面的中断、定时系统。优化矩阵键盘设计程序,降低学习难度,提升学习兴趣是有必要的。
        二 矩阵键盘硬件电路
        矩阵键盘硬件电路如图1所示,由4*4的行、列结构组成。行列分别由P1口的低4位和高四位控制。

        图1  矩阵键盘硬件电路图
        三 矩阵键盘基础程序设计
        我们最初的程序设计如图2所示,完全按照初学者的思路,一步一步的来,第一步给P1赋值0XFE,即行线赋值1110,H0=0,H1、H2、H3均为1,列线赋值1111,即l0~l3均为1,此时如果按下K0时,会使得l0

        从1变为0,按下其他键l0不会跳变,具有唯一性,因此可通过读l0的值判断K0键是否按下,如果按下,则驱动数码管显示0.同理,通过读l1~l3的值可以判断K1~K3是否按下,再驱动数码管显示对应的值。依次给P1赋值0XFD、0XFB、0XF7,把16个键按下的情况全部罗列出来,显示对应的值。这种编程设计看上去有点繁琐,但是思路简单,能让学生清楚的理解矩阵键盘扫描法的原理。
       


        图2  矩阵键盘程序设计
        四 矩阵键盘软件优化设计
        在学生学会图2程序的基础上,我们可以进一步的利用循环的思想去优化程序,把重复的判断语句、P1口赋值语句放到for循环里,优化后的程序如图3所示,在这一次的程序优化过程中,使学生学会利用C语言循环语句来简化程序,达到C语言和单片机知识融汇贯通的效果。


        图3  矩阵键盘程序优化设计

        五 结论
        本文通过先是对矩阵键盘进行了基础程序设计,思路简单,易学易懂,让学生清楚的理解扫描法的基本原理。接着利用for循环对程序进行了优化,让学生通过两步,不仅学会了矩阵键盘扫描法的基本原理,也掌握了程序优化的技巧。
        参考文献:
        [1]陈朝大.单片机原理与应用案例教程[M].武汉:华中科技大学出版社,2020.
        [2]张毅刚.单片机原理及应用技术(C51编程)[M].北京:人民邮电出版社,2016.
        [3]张培仁.基于c语言编程MCS-51单片机原理与应用[M].北京:清华大学出版社,2003.

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: