51单片机(汇编)课件-第9章-3.ppt_第1页
51单片机(汇编)课件-第9章-3.ppt_第2页
51单片机(汇编)课件-第9章-3.ppt_第3页
51单片机(汇编)课件-第9章-3.ppt_第4页
51单片机(汇编)课件-第9章-3.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9 7键盘接口 在过程控制和智能化仪表中 通常是用单片微机进行实时控制和数据处理的 为实现人机对话 键盘是个必不可少的功能配置 利用按键可以实现向单片微机输入数据 传送命令 功能切换等 是人工干预单片微机系统的主要手段 键盘有两种类型 编码键盘和非编码键盘 编码键盘由按键键盘和专用键盘编码器两部分组成 必须具有必要的硬件 键按下后便产生对应的代码 在新键按下之前 一直保持该码 键的数目增多时 硬件变得复杂 如MM5740AA非编码键盘只有两个动作状态 闭合或断开 由1或0来表示 单片微机常用机械触点按键组成非编码矩阵键盘 按键代码的确定借助软件来完成 优点 可以任意组合 成本低 使用灵活 缺点 软件复杂 占用CPU时间较多 分为 独立式键盘结构 矩阵式键盘结构 交互式键盘结构 单片微机应用系统中用得较多的是非编码键盘 键盘 硬件 软件键盘管理程序的任务 1 识键 判断是否有键按下 2 译键 识别出哪一个键被按下并求出被按下键的键值 3 键值分析 根据键值 找出对应处理程序的入口并执行之 独立式键盘结构 矩阵式键盘结构 键盘的工作方式 两方面问题 1 要及时 以保证对用户的每一次按键都能做出响应 2 扫描不能站用过多的时间 CPU有大量工作要处理 键盘扫描控制方式 程序控制扫描方式键处理程序固定在主程序的某个程序段 特点 对CPU工作影响小 但应考虑键盘处理程序的运行间隔周期不能太长 否则会影响对键输入响应的及时性 定时控制扫描方式利用定时 计数器每隔一段时间产生定时中断 CPU响应中断后对键盘进行扫描 特点 与程序控制扫描方式的区别是 在扫描间隔时间内 前者用CPU工作程序填充 后者用定时 计数器定时控制 定时控制扫描方式也应考虑定时时间不能太长 否则会影响对键输入响应的及时性 中断控制方式中断控制方式是利用外部中断源 响应键输入信号 特点 克服了前两种控制方式可能产生的空扫描和不能及时响应键输入的缺点 既能及时处理键输入 又能提高CPU运行效率 但要占用一个宝贵的中断资源 键抖动及消除 硬件电路消除法软件延时法 键抖动波形图 消除键抖动的硬件电路接法 软件去抖动检测到按键按下后 执行延时10ms子程序后再确认该键是否确实按下 消除抖动影响 按键直接与I O口连接 独立式按键及其接口电路 例 按上图 a b 分别编制按键扫描子程序解 按 a 编程如下 KEYA ORLP1 07H 置P1 0 P1 2为输入态MOVA P1 读键值 键闭合相应位为0CPLA 取反 键闭合相应位为1ANLA 00000111B 屏蔽高5位 保留有键值信息的低3位JZGRET 全0 无键闭合 返回LCALLDY10ms 非全0 有键闭合 延时10ms 软件去抖动MOVA P1 重读键值 键闭合相应位为0CPLA 取反 键闭合相应位为1ANLA 00000111B 屏蔽高5位 保留有键值信息的低3位JZGRET 全0 无键闭合 返回 非全0 确认有键闭合JBAcc 0 KA0 转0 键功能程序JBAcc 1 KA1 转1 键功能程序JBAcc 2 KA2 转2 键功能程序GRET RETKA0 LCALLWORK0 执行0 键功能子程序RETKA1 LCALLWORK1 执行1 键功能子程序RETKA2 LCALLWORK2 执行2 键功能子程序RET 按图 b 编程如下 KEYB ORLP1 07H 置P1 0 P1 2为输入态MOVA P1 读键值 键闭合相应位为1ANLA 00000111B 屏蔽高5位 保留有键值信息的低3位JZGRET 全0 无键闭合 返回LCALLDY10ms 非全0 有键闭合 延时10ms 软件去抖动MOVA P1 重读键值 键闭合相应位为1ANLA 00000111B 屏蔽高5位 保留有键值信息的低3位JZGRET 全0 无键闭合 返回 非全0 确认有键闭合JBAcc 0 KB0 转0 键功能程序JBAcc 1 KB1 转1 键功能程序JBAcc 2 KB2 转2 键功能程序GRET RETKB0 LCALLWORK0 执行0 键功能子程序RETKB1 LCALLWORK1 执行1 键功能子程序RETKB2 LCALLWORK2 执行2 键功能子程序RET 矩阵式键盘接口电路及程序 行扫描法步骤 判是否有键按下若有键按下 则延时10ms 再判断是否确实有键按下 若确实有键按下 则求出按下键的键值 为保证按键每闭和一次CPU只做一次处理 程序需等闭和的键释放后再对其做处理 线路反转法 9 8显示接口 显示是将各种信息转化为视觉信息再传达给他人的过程 这种转化 传达的技术称为显示技术 现代显示的最大特点是光与电的结合 它是现代人们与信息间的桥梁 本节介绍单片微机应用系统中常用的数码管LED和液晶显示器LCD的基本工作原理及与单片微机的各种接口技术和编程应用 一 LED显示器的工作原理发光二极管一般为砷化镓半导体二极管 在发光二极管两端加上正向电压 则发光二极管发光 而数码管LED是由若干发光二极管组合而成的 一般的 8 字型LED由 a b c d e f g dp 8个发光二极管组成 每个发光二极管称为一字段 七段LED有共阴极和共阳极两种结构形式 9 8 1LED数码管显示接口 LED的正向工作压降一般为1 2V 2 6V 发光工作电流5mA 20mA 发光强度基本上与正向电流成正比 一般须串联限流电阻 LED适合于脉冲工作状态 在平均电流相同的情况下 脉冲工作状态比直流工作状态产生的亮度增强20 左右 有单个 七段和点阵式等类型 单个LED显示器接口电路 七段LED显示器的两种结构 二 LED数码管编码方式 表1共阴和共阳LED数码管几种八段编码表 显示数转换为显示字段码的步骤 从显示数中分离出显示的每一位数字 方法是将显示数除以十进制的权 将分离出的显示数字转换为显示字段码 方法是查表 例 已知显示数存在内RAM30H 高位 31H中 试将其转换为5位共阴字段码 顺序 存在以30H 高位 为首址的内RAM中 SPRT MOVR0 30H 置万位BCD码间址MOVA 30H 置被除数MOVB 31H MOVR6 27H 置除数10000 2710HMOVR5 10H LCALLSUM 除以10000 万位商存30H 余数存A BMOVR6 03H 置除数1000 03E8HMOVR5 0E8H INCR0 指向千位商间址 31H LCALLSUM 除以1000 千位商存31H 余数存A BMOVR6 0 置除数100MOVR5 100 INCR0 指向百位商间址 32H LCALLSUM 除以100 百位商存32H 余数存A B 0 MOVB 10 置除数10DIVAB 除以10INCR0 指向十位商间址 33H 解 连续调用下列二个子程序即可 分离显示数字子程序 说明 SUM是16位除以16位子程序 转换显示字段码子程序 CHAG MOVDPTR TAB 置共阴字段码表首址MOVR0 30H 置显示数据区首址CGLP MOVA R0 取显示数字MOVCA A DPTR 读相应显示字段码MOV R0 A 存显示字段码INCR0 指向下一显示数字CJNER0 35H CGLP 判5个显示数字转换完否 未完继续RET 转换完毕 结束TAB DB3FH 06H 5BH 4FH 66H 共阴字段码表DB6DH 7DH 07H 7FH 6FH MOV R0 A 十位商存33HXCHA B 读个位数INCR0 指向个位间址 34H MOV R0 A 个位存34HRET 三 静态显示方式及其典型应用电路 动态显示方式 在某一瞬时显示一位 依次循环扫描 轮流显示 由于人的视觉滞留效应 人们看到的是多位同时稳定显示 特点 占用I O端线少 电路较简单 编程较复杂 CPU要定时扫描刷新显示 一般适用于显示位数较多的场合 LED数码管显示分类 静态显示方式和动态显示方式 静态显示方式 每一位字段码分别从I O控制口输出 保持不变直至CPU刷新 特点 编程较简单 但占用I O口线多 一般适用于显示位数较少的场合 1 并行扩展静态显示电路 例 按上页图编制显示子程序 显示数 255 存在内RAM30H中 解 DIR1 MOVA 30H 读显示数MOVB 100 置除数DIVAB 产生百位显示数字MOVCA A DPTR 读百位显示符MOVDPTR 0DFFFH 置74377 百位 地址MOVX DPTR A 输出百位显示符MOVA B 读余数MOVB 10 置除数DIVAB 产生十位显示数字MOVDPTR TAB 置共阳字段码表首址 MOVCA A DPTR 读十位显示符MOVDPTR 0BFFFH 置74377 十位 地址MOVX DPTR A 输出十位显示符MOVA B 读个位显示数字MOVDPTR TAB 置共阳字段码表首址MOVCA A DPTR 读个位显示符MOVDPTR 7FFFH 置74377 个位 地址MOVX DPTR A 输出个位显示符RET TAB DB0C0H 0F9H 0A4H 0B0H 99H 共阳字段码表DB92H 82H 0F8H 80H 90H 2 串行扩展静态显示电路 DIR2 MOVSCON 00H 置串口方式0CLRES 串口禁中SETBP1 0 与 门开 允许TXD发移位脉冲MOVSBUF 30H 串行输出个位显示字段码JNBTI 等待串行发送完毕CLRTI 清串行中断标志MOVSBUF 31H 串行输出十位显示字段码JNBTI 等待串行发送完毕CLRTI 清串行中断标志MOVSBUF 32H 串行输出百位显示字段码JNBTI 等待串行发送完毕CLRTI 清串行中断标志CLRP1 0 与 门关 禁止TXD发移位脉冲RET 例 按上页图编制显示子程序 显示字段码已分别存在32H 30H内RAM中 解 3 BCD码输出静态显示电路 解 编程如下 DIR3 MOVP1 11100000B 选通个位ORLP1 30H 输出个位显示数MOVP1 11010000B 选通十位ORLP1 31H 输出十位显示数MOVP1 10110000B 选通百位ORLP1 32H 输出百位显示数RET 例 按上页图试编制显示子程序 小数点固定在第二位 已知显示数存在内RAM30H 32H中 动态显示电路连结形式 显示各位的所有相同字段线连在一起 共8段 由一个8位I O口控制 每一位的公共端 共阳或共阴COM 由另一个I O口控制 四 动态显示方式及其典型应用电路 图8 43动态显示电路 1 共阴型8位动态显示电路 DIR4 MOVR2 10 置循环扫描次数MOVDPTR 7FFFH 置74377口地址DLP1 ANLP1 11111000B 第0位先显示MOVR0 30H 置显示字段码首址DLP2 MOVA R0 读显示字段码MOVX DPTR A 输出显示字段码LCALLDY2ms 调用延时2ms子程序 参阅例4 13 INCR0 指向下一位字段码INCP1 选通下一位显示CJNER0 38H DLP2 判8位扫描显示完否 未完继续DJNZR2 DLP1 8位扫描显示完毕 判10次循环完否 CLRA 10次循环完毕 显示暗MOVX DPTR ARET 子程序返回 例 按上页图 试编制循环扫描 10次 显示子程序 已知显示字段码存在以30H 低位 为首址的8字节内RAM中 解 编程如下 2 共阳型3位动态显示电路 DIR5 MOVDPTR 0BFFFH 置74377地址MOVR2 100 置循环显示次数DIR50 SETBP1 2 百位停显示MOVA 40H 取个位字段码MOVX DPTR A 输出个位字段码CLRP1 0 个位显示LCALLDY2ms 调用延时2ms子程序 参阅例4 13 DIR51 SETBP1 0 个位停显示MOVA 41H 取十位字段码MOVX DPTR A 输出十位字段码 例 根据上页图电路

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论