- 1、本文档共123页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
行列式键盘扫描流程 实例7 行列式键盘 按下任意按键后,LED显示器上显示该键的键模(0~F)。 分析: 需要考虑以下三个关键环节: ①获得按键的键值 ——检测流程图 ②获得闭合按键的键模 ——查表比对 ③获得闭合按键的字模 ——查表思路 错误键值? 检测键盘 显示键值 N Y 延时 Main() 参考程序 //关闭LED数码管 //消抖处理 //行线有键按下 //扫描列线 //保存行线状态 //确信有键按下 //键值合成 程序运行效果 本章小结 C51的数据类型与变量的定义,都必须考虑单片机的存储结构。 在Keil下进行C51开发的基本步骤是:建立项目→输入源程序→设置编译参数→编译连接→下载调试。 单片机IO口基本编程应用包括按键(或开关)状态检测、发光二极管输出控制、数码管动态显示以及行列式键盘扫描编程等内容。 实例3 混合编程 将实例2中的C51函数key()的功能改用汇编语言实现,并完成系统的混合编程。 程序说明 按照混合编程规则分别编写汇编语言(流水灯.asm)与C51语言(流水灯汇.c)两个程序文件,并将其添加到Keil的同一项目中。 流水灯汇.c 流水灯.asm 与流水灯汇.c文件中函数key同名的子程序 汇编子程序的头部格式 1 C51的程序结构 2 C51的数据结构 3 C51与汇编语言的混合编程 4 C51仿真开发环境 5 C51初步应用编程 5.1 IO端口的简单应用 5.1.1 基本输入输出单元与编程 5.1.2 LED数码管原理与编程 5.2 IO端口的进阶实践 LED显示元件——人机交互输出设备,其作用是指示中间运行结果与运行状态。 点式 字段式 LED 光柱式 LED 的类型 com为公共端 共阳极LED 共阴极LED 引脚配置 七段式LED显示器 (7-Segment Display) LED的亮暗组合(显示码)能形成不同的显示字符 以共阴极为例,部分字符的显示码(字模)为: 七段LED数码管的标准显示字符为0-9,A-F 实例4 LED数码管显示 在P0口连接一个共阴极数码管,使之循环显示0-9数字。 分析: 将显示码循环输出到P0口即可实现循环显示。但由于数字0~9的显示段码没有规律可循,需要采取查表方式进行操作: 循环10次 ? N 延时 循环指针i 赋值(10) P0 ←数组[i] Y ①将显示码按序存放在一个数组中, 顺序号与代表的显示字符相对应。(如,char led_mod [ ]={x1,x2,….,xn) ②通过循环变量指定待送出的数组元素 参考程序 实例5 计数显示器 对按键动作进行计数和显示,达到99后重新由1开始计数。 个位LED接P2口;十位LED接P0口(上拉电阻) 分析: ①读P3.7口,进行加1计数和超界处理; ②拆分计数器数值——个位、十位; ③查找/输出显示码到P0和P2口。 计数值拆分: 取模运算(%)→个位 整除10运算(/)→十位 99 ? N 计数器加1 计数器←1 Y P3.7= 0? N Y 查找/输出显示码: 按拆分值输出相应数组元素 参考程序 (接前页) 程序运行效果 1 C51的程序结构 2 C51的数据结构 3 C51与汇编语言的混合编程 4 C51仿真开发环境 5 C51初步应用编程 5.1 IO端口的简单应用 5.2 IO端口的进阶实践 5.2.1 数码管动态显示原理与编程 5.2.2 行列式键盘原理与编程 静态显示接口和动态显示接口 静态显示接口:一个并行口接一个数码管。 优点:被显示数据只要送入并行口后就不再需要CPU干预,因而显示效果稳定。 缺点:占用资源较多 动态显示接口:将所有数码管的段码线对应并联起来接在一个8位并行口上,而每位数码管的公共端分别由一位I/O线控制。 工作原理: 轮流显示,即每一时刻只有一只显示器工作。当时间间隔很小(如10ms)时,人眼的暂留特性→无闪烁的连续显示。 优点:占用资源较少 缺点:占用机时较多(需要CPU随时刷新显示值) 实例6 数码管动态显示 采用共阴极动态LED显示原理,实现如下功能: SW1向下拨时显示字符“L2”,向上拨时显示字符“H3”。 分析: Proteus中的双联LED数码管相当于两个并联的数码管。 如果不考虑switch,动态显示“L2”的程序可以如下: 完整的源程序 switch_sta 0 0 2 2 led_point 0 1 0 1 switch_sta+led_point 0 1 2 3 P3
您可能关注的文档
最近下载
- 内蒙古版综合实践活动五年级下册第三课 今天我是小交警 课件.ppt
- 道德与法治四年级上册第一单元 与班级共成长 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx
- 公安寄递物流业治安管理.pptx VIP
- 2024年苏科版九年级数学下册第六章《相似图形》课件.ppt VIP
- 故事——小羊过桥.ppt
- 自动售货机plc控制系统设计.doc
- 股先知周线指标公式通达信版(1).docx VIP
- 选择结构程序设计-C语言程序试验报告.pdf
- 以廉洁风险防控为核心的“三不腐”机制应用-来源:现代企业文化(第2020010期)-中国工人出版社.pdf VIP
- 疯狂星期二_13610597.pdf
文档评论(0)