第五章单片机的输入输出设备接口(ppt 35页).ppt_第1页
第五章单片机的输入输出设备接口(ppt 35页).ppt_第2页
第五章单片机的输入输出设备接口(ppt 35页).ppt_第3页
第五章单片机的输入输出设备接口(ppt 35页).ppt_第4页
第五章单片机的输入输出设备接口(ppt 35页).ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

第五章单片机的输入 输出设备接口 第一节键盘接口 编码键盘 硬件方式产生编码非编码键盘 软件方式产生编码非编码键盘 结构简单 成本低廉键按行列构成矩阵 每一个交叉点对应一个键 实际是一个机械开关 非编码键盘的接口技术的主要内容是如何确定被按键的行列位置 一 键盘接口概述1 单片机实现键盘接口的常用方法独立式键盘 由一组相互独立的按键组成 每个按键与一位I O口相连 接口简单 但是占用I O口较多 矩阵式按键 键按行列组成矩阵 行和列相交处安放一个按键 每条行线或列线与一位I O相连 节省I O资源 2 键盘输入接口解决的任务 键盘扫描和去抖动按键开关在电路中的连接图 按键未按下时 A点的电平位 5V 按下时 A点的电平位低电平 由于按键是机械的弹性开关 在按下和断开时 触点在闭合和断开时 会引起A点电位的不稳定 一般有5 10ms的抖动 导致误信号 使CPU产生错误的处理 硬件去抖动方法 软件去抖方法 采用延迟躲过抖动 待信号稳定后 再进行键扫描 延迟时间10 20ms 键值或键号的计算当确定有键按下时 需进一步根据行线和列线的状态确定按下键的值或键号 以实现键功能的程序 等待键释放获得键值后在以延时或查询的方法等待键释放 以保证键的一次闭合只进行一次键功能的实现 确定键盘的监控方法中断方式执行 当有键被按下时 向单片机发出中断请求 中断响应后执行键盘扫描工作 定时方式执行 利用内部定时计数器完成一段时间的重复定时 每次定时完成执行一次键盘扫描工作 二 独立式按键独立式按键 每个按键单独占有一根I O资源 当按键较多时 I O资源占用较多 其优点是程序设计简单 eg 三个按键与8031的连接电路 试编制按键扫描子程序 KEY MOVP1 07HMOVA P1CPLAANLA 07HJZGRETJBACC 0 KEY1JBACC 1 KEY2JBACC 2 KEY3GRET RETKEY1 LCALLWORK1KEY2 LCALLWORK2KEY3 LCALLWORK3RET 三 矩阵式按键1 矩阵式键盘的工作原理X0 X3为键盘的行线 通过电阻接 5V Y0 Y3为键盘的列线 由单片机控制其输入信号 每条行线和列线处有一个按键结构 当所有键未被按下时 行线与列线断开 每条行线都呈现高电平 当有键被按下时 按键所在行线与列线短路 此时行线的电平由列线的电位所决定 2 矩阵式键盘接口4 8键盘 6位显示器和803l的接口逻辑 图中8031外接一片8155 8155的RAM地址为7E00 7EFFH I O口地址为7F00 7F05H 8155的PA口为输出口 控制键盘的列线Y0 Y7的电位作为键扫描口 同时又是6位显示器的扫描口 PB口作为显示器的段数据口 8155的C口作为输入口 PC0 PC3接行线Y0 Y3 称为键输入口 3 键盘扫描程序键输入程序的功能 1 判别键盘上有无键闭合 其方法为扫描口PA0 PA7输出全 0 读PC口的状态 若PC0 PC3 为全 1 键盘上行线全为高电平 则键盘上没有闭合键 若PC0 PC3不为全 1 则有键处于闭合状态 2 去除键的机械抖动 其方法为判别到键盘上有键闭合后 延迟一段时间再判别键盘的状态 若仍有键闭合 则认为键盘上有一个键处于稳定的闭合期 否则 认为是键的抖动 3 判别闭合键的键号 方法为对键盘的列线进行扫描 扫描口PA0 PA7依次输出 PA7PA6PA5PA4PA3PA2PA1PA01111111011111101 01111111 相应地顺次读出PC口的状态 若PC0 PC3为全 1 则列线输出为 0 的这一列上没有键闭合 否则 这一列上有键闭合 闭合键的键号等于为低电平的列号加上为低电平的行的首键号 eg PA口的输出为11111101时 读出PC0 PC3为1101 则1行1列相交的键处于闭合状态 第一行的首键号为8 列号为1 闭合键的键号为 N 行首键号 列号 8 1 9 4 使CPU对键的一次闭合仅作一次处理 采用的方法为等待闭合键释放以后再作处理 程序中把显示子程序作为去抖动延时子程序 这可使得进入键输入子程序后 显示器始终是亮的 该程序返回后输入键的键号在A 键输入子程序的框图 键盘扫描程序如下 KEY1 ACALLKS1 调用判别有无键闭合子程序JNZLK1ACALLDIR 调用显示子程序 延迟6msAJMPKEY1LK1 ACALLDIRACALLDIRACALLKS1 调用判别有无闭合键子程序JNZLK2ACALLDIRAJMPKEY1LK2 MOVR2 0FEH 扫描初值送R2MOVR4 00H 扫描列号送R4LK4 MOVDPTR 7F01H 指向A口MOVA R2MOVX DPTR A 扫描初值送A口 INCDPTRINCDPTRMOVXA DPTR 读8155C口JBACC 0 LONE ACC 0 1 第0行无键按下 转LONEMOVA 00H 装第0行行值AJMPLKP 转去计算键值LONE JBACC 1 LTWO ACC 1 1 第1行无键按下 转TWOMOVA 08H 装第1行行值AJMPLKP 转去计算键值LTWO JBACC 2 LTHR ACC 2 1 第2行无键按下 转THRMOVA 10H 装第2行行值AJMPLKP 转去计算键值 LTHR JBACC 3 NEXT ACC 3 1 第3行无键按下 转NEXTMOVA 18H 装第3行值LKP ADDA R4 计算键值PUSHACC 保护键值LK3 ACALLDIR 延时6msACALLKS1 查键是否继续闭合 若闭合再延时JNZLK3POPACC 若键起 则键码送ARETNEXT INCR4MOVA R2JNBACC 7 KND RLAMOVR2 AAJMPLK4KND AJMPKEY1KS1 MOVDPTR 7F01H 指向A口MOVA 00HMOVX DPTR A 全 0 扫描INCDPTRINCDPTR 指向C口MOVXA DPTR 读键入状态CPLAANLA 0FH 屏蔽高位RETDIR 显示子程序 延迟6ms 第二节LED显示器接口 一 显示器的结构 管脚配置及外形图共阴极共阳极 七段LED显示器的显示码 段选码 二 显示方式1 LED静态显示方式静态显示方式 当显示器显示某一个字符时 相应的发光二极管恒定地导通或截止 优点 显示稳定 节省CPU时间 缺点 I O口线多 设显示缓冲区为30H 31H 由R1作显示缓冲区的地址指针 74LS164的清零端CLR由P1 0控制 低电平有效 程序设计如下 DISP MOVR6 02H 显示位数MOVR1 30H 设显示区指针MOVSCON 00H 设串行口控制寄存器 方式0LOOP MOVA R1MOVDPTR TABMOVCA A DPTR 查表 获得显示码MOVSBUF A 送去显示JNBTI 等待发送完毕CLRTIINCR1 取下一个数DJNZR6 LOOPRETTAB DBC0H F9H A4H B0H 99H 92H 82H F8H 80H 90H 2 LED动态显示方式动态显示方式 一位一位地轮流点亮各位显示器 扫描 LED动态接口电路 显示缓冲区在RAM中设置 用于存放要显示的数字或字符 位控口地址0FF20H PA口 段控口地址0FF21H PB口 控制口地址0FF23H 数码管为共阴极 驱动74LS240为反相器 段码取用 共阳极段选码 位驱动75451为同相 字位表20H10H08H04H02H01H ORG2000HDISUP MOVP2 0FFHMOVA 081H 定义8155工作方式MOVDPTR 0FF23HMOVX DPTR AMOVR0 79H 显示缓冲区首地址MOVR3 01H 位选码MOVA R3DISUP1 CPLAMOVR1 20H 指向A口MOVX R1 AINCR1 指向B口MOVA R0 取显示数据MOVDPTR 2100HMOVCA A DPTR 查表取段数据MOVX R1 A LCALLDL1 延时1msINCR0MOVA R3JBACC 5 DISUPRLAMOVR3 ASJMPDISUP1ORG2100HDB0C0H 0F9H 0A4H 0B0H 99H92H 82H 0F8H 80H 90HORG2200HDL1 MOVR7 02HDL MOVR6 0FFHDL6 DJNZR6 DL6DJNZR7 DLRET 电脑时钟 定时 中断 显示综合实验 以秒 分 时为单位实现时钟计时 1 实现时钟计时的基本方法 1 计数初值计算定时器的定时时间定为125ms 计数溢出8次即得到时钟计时的最小单位秒 而8次计数用软件方法实现 T0 方式1 fosc 6MHz 计数初值为X 则 216 X 2 125000X 6070 二进制表示为1011110110110 十六进制表示为17B6H 2 采用中断方式进行溢出次数的累计 计满8次即得到秒计时 3 从秒到分和从分到时的计时是通过累加和数值比较实现 4 时钟显示及显示缓冲区 2 程序流程及程序清单 1 主程序 MAIN 主程序的主要功能是进行定时器 计数器的初始化编程 然后通过反复调用显示子程序的方法 等待125ms定时中断的到来 2 显示子程序 DISUP ORG0000HSTART LJMPMAINORG000BHLJMPPITOORG1000H 主程序MAIN MOVSP 60H 定义堆栈MOVR0 79H 显示单元清0MOVR7 06HML1 MOV R0 00HINCR0DJNZR7 ML1MOVTMOD 01HMOVTL0 B6HMOVTH0 17HSETBTR0SETBEASETBET0MOV30H 08H 设置循环次数ML0 LCALLDISUP 调用显示子程序SJMPML0 3 中断服务程序 PITO 中断服务程序的主要功能是进行计时操作 程序开始先判断计数溢出是否满了8次 不满8次表明还没达到最小计时单位秒 中断返回 如满8次则表明已达到最小计时单位秒 程序继续向下执行 进行计时操作 ORG1200H 中断服务程序PITO PUSHPSW 现场保护PUSHACCSETBPSW 3MOVTL0 0B6H 置定时器初值MOVTH0 17HMOVA 30HDECAMOV30H AJNZRET0MOV30H 08HMOVR0 7AHACALLDAADl 秒 1MOVA R2XRLA 60HJNZRET0ACALLCLR0 秒单元清0 MOVR0 7CHACALLDAAD1 分 1MOVA R2XRLA 60HJNZRET0ACALLCLR0 分单元清0MOVR0 7EHACALLDAAD1 时 1MOVA R2XRLA 24HJNZRT0ACALLCLR0 时单元清0RET0 POPACCPOPPSWRETI 4

温馨提示

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

评论

0/150

提交评论