第4章—单片机的C51语言.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章单片机的C51语言 ③ 将K1与K2相“与” 并存于K2(形成键值)——闭合键所在行、列的状态均为1,其余皆为0。 整个键盘的键值: 0x11、0x21、0x41、0x81 0x12、0x22、0x42、0x82 0x14、0x24、0x44、0x84 0x18、0x28、0x48、0x88 第一行的键值:0010000110000001 第4章单片机的C51语言 ④ 利用查表比对法求出闭合按键的键模。 将各键的键值依次存放在一个数组中,其顺序号就是键模。 利用循环变量i控制比对过程,两者相等时的i就是闭合键的键模。 第4章单片机的C51语言 按键在闭合和断开瞬间会因弹簧开关的变形产生电压波动 软件消抖做法: 延时10ms后再次扫描按键状态;若仍为“闭合”→真有键压下;若为“非闭合”→误动作。 按键抖动波形 键盘消抖原理: 此法也可用于按键释放处理。 … … 第4章单片机的C51语言 行列式键盘扫描流程 第4章单片机的C51语言 实例7 行列式键盘 按下任意按键后,LED显示器上显示该键的键模(0~F)。 第4章单片机的C51语言 分析: 需要考虑以下三个关键环节: ①获得按键的键值 ——检测流程图 ②获得闭合按键的键模 ——查表比对 ③获得闭合按键的字模 ——查表思路 错误键值? 检测键盘 显示键值 N Y 延时 Main() 第4章单片机的C51语言 参考程序 //关闭LED数码管 第4章单片机的C51语言 //消抖处理 //行线有键按下 //扫描列线 //保存行线状态 //确信有键按下 //键值合成 第4章单片机的C51语言 程序运行效果 本章小结 C51的数据类型与变量的定义,都必须考虑单片机的存储结构。 在Keil下进行C51开发的基本步骤是:建立项目→输入源程序→设置编译参数→编译连接→下载调试。 单片机IO口基本编程应用包括按键(或开关)状态检测、发光二极管输出控制、数码管动态显示以及行列式键盘扫描编程等内容。 第4章单片机的C51语言 分析——局部关系(LED循环控制) 第4章单片机的C51语言 建立LED显示码数组 = {01,02,04,08} 循环4次 ? N 结束 延时 Y LED↑环节 自右向左循环输出状态码 循环4次 ? N 结束 延时 Y LED↓环节 自左向右循环输出状态码 参考程序如下 第4章单片机的C51语言 if ((P0 0x0f) = = 0x0f) return 0; return (P0 0x0f); 第4章单片机的C51语言 Keil项目和程序界面如下图所示 第4章单片机的C51语言 实例3 混合编程 将实例2中的C51函数key()的功能改用汇编语言实现,并完成系统的混合编程。 程序说明 按照混合编程规则分别编写汇编语言(流水灯.asm)与C51语言(流水灯汇.c)两个程序文件,并将其添加到Keil的同一项目中。 流水灯汇.c 第4章单片机的C51语言 第4章单片机的C51语言 流水灯.asm 与流水灯汇.c文件中函数key同名的子程序 汇编子程序的头部格式 第4章单片机的C51语言 4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程 4.5.1 IO端口的简单应用 4.5.1.1 基本输入输出单元与编程 4.5.1.2 LED数码管原理与编程 4.5.2 IO端口的进阶实践 第4章单片机的C51语言 LED显示元件——人机交互输出设备,其作用是指示中间运行结果与运行状态。 点式 字段式 LED 光柱式 LED 的类型 第4章单片机的C51语言 com为公共端 共阳极LED 共阴极LED 引脚配置 七段式LED显示器 (7-Segment Display) LED的亮暗组合(显示码)能形成不同的显示字符 第4章单片机的C51语言 以共阴极为例,部分字符的显示码(字模)为: 七段LED数码管的标准显示字符为0-9,A-F 第4章单片机的C51语言 实例4 LED数码管显示 在P0口连接一个共阴极数码管,使之循环显示0-9数字。 分析: 将显示码循环输出到P0口即可实现循环显示。但由于数字0~9的显示段码没有规律可循,需要采取查表方式进行操作: 第4章单片机的C51语言 循环10次 ? N 延时 循环指针i 赋值(10) P0 ←数组[i] Y ①将显示码按序存放在一个数组中, 顺序号与代表的显示字符相对应。(如,char led_mod [ ]={x

文档评论(0)

yyh892289 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档