
单片机C51程序设计:键盘扫描流程解析
下载需积分: 0 | 5.74MB |
更新于2024-08-09
| 200 浏览量 | 举报
收藏
"程序扫描方式程序流程图-numerical.algorithms.methods"
本文主要讲解了单片机中的键盘扫描子程序的设计,结合程序流程图和具体的汇编语言代码进行阐述。在单片机应用中,键盘扫描是实现用户输入的重要手段,通常采用行列式键盘,通过对键盘矩阵的逐行逐列扫描来识别按键状态。
程序流程图描述了一个典型的键盘扫描算法,它涉及到两个主要步骤:检测是否有键被按下以及确定具体按下的键。在【例7-4】中,首先调用子程序KS1来判断是否有一个键被按下,如果检测到键被按下,则进入消除抖动的延时处理TM12ms,以确保读取的是稳定的按键信号。之后再次调用KS1确认键仍被按下,如果确实如此,则开始逐列扫描键盘。
逐列扫描的关键在于将列扫描字(如0EFH)依次送到P1端口,并读取行状态。根据P1端口的位状态,可以确定哪一行的键被按下。例如,如果第0行没有键按下,则转移到检查下一行;如果有键按下,根据行的状态设置相应的行首键码(如#00H、#04H、#08H或#0CH),然后通过累加列号来确定键码。
在程序中,使用R2寄存器存储当前列扫描字,R4寄存器记录列号。每扫描完一列,列号会递增,以便扫描下一列。当检测到键释放时,程序会从堆栈中弹出键码并返回,表示键盘扫描结束,此时A寄存器的值就是按下的键的编码。
这种程序设计方法适用于MCS-51系列的单片机,它采用汇编语言编写,以高效地利用单片机的硬件资源。同时,书中提到,为了提高可读性和适应性,也有C语言的编程对照,帮助读者理解和应用到实际项目中。
本书《单片机原理与应用及C51程序设计》由唐颖主编,旨在培养电气信息类创新型应用人才,书中不仅涵盖了单片机的基础知识,还提供了丰富的实例,包括汇编与C语言的编程对照,以提高读者的实际操作能力。此书适合用作高校相关专业的教材或教学参考书,也适合工程技术人员自学使用。
相关推荐










刘看山福利社
- 粉丝: 37
最新资源
- 批量命令行转换视频为FLV及视频托管解决方案
- JAVA英汉互译词典程序:电子学习助手
- HTML网页配色工具:3种颜色代码快速应用
- 经典网页模板汇总:100个设计精选
- 计算机基础知识深度解析:从XML到EXCEL
- 初学者必看:ARM学习资料大全
- C语言程序设计初学者PPT讲义
- 解决文件夹同名病毒:DelrepaerCNGR专杀工具体验
- 最新艺术展示FLASH模板下载
- Flex中使用ArcGIS API的教程与例子
- 宾馆管理系统源码分享:C#与VS2005的经典结合
- 五笔输入法86版:经典、高效、系统内置稳定
- C#实现的完善版.Net计算器软件
- VFP课件分享:数据库系统及应用教程
- JSP学生信息管理系统课程设计参考
- 对日开发设计模板 - 项目开发文档的核心工具
- 企业人事管理系统课程设计开发
- PcMedik绿色免注册版优化电脑指南
- 源码公开的网上书店系统设计与分析
- Outocopy:自动化U盘文件拷贝软件
- 深入解析完整开发文档的构建与应用
- C# socket编程实例分享与应用案例
- 俄罗斯方块游戏Java程序及API包使用指南
- Songdown 2.0:Linux平台的自动化歌曲下载器升级版