微机原理可编程接口芯片及其应用

上传人:千****8 文档编号:114912906 上传时间:2019-11-12 格式:PPT 页数:41 大小:401.50KB
返回 下载 相关 举报
微机原理可编程接口芯片及其应用_第1页
第1页 / 共41页
微机原理可编程接口芯片及其应用_第2页
第2页 / 共41页
微机原理可编程接口芯片及其应用_第3页
第3页 / 共41页
微机原理可编程接口芯片及其应用_第4页
第4页 / 共41页
微机原理可编程接口芯片及其应用_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《微机原理可编程接口芯片及其应用》由会员分享,可在线阅读,更多相关《微机原理可编程接口芯片及其应用(41页珍藏版)》请在金锄头文库上搜索。

1、1,第六章 常用的接口芯片及其应用,6.1 I/O接口概述 6.2简单接口 6.3总线控制器8288及总线裁决器8289 6.4可编程并行接口8255 6.5可编程定时器 6.6键盘显示接口 6.7中断控制接口 6.8可编程串行接口8251 6.9A/D及D/A变换器接口 6.10 DMA控制器8237,2,6.6.1键盘及其接口,键盘是微机系统的标准输入设备 编码键盘:按键时自动产生编码输出,比 如PC键盘在,按键与释放会自动向CPU 送出16位的编码。 非编码键盘:按键时不会自动产生编码输 出,需要CPU主动去检查识别,在构成较 为简单的嵌入式系统应用,以实现较为简 单的数据输入,其结构可

2、分为: 简单按键每个按键连接1根I/O线 矩阵式键盘多根行及列I/O线构成矩阵, 按键跨接在交叉点上。,3,第1段:是否有键按下,key1: mov al,00 mov dx,rowport ;rowport为连接行线的端口地址 out dx,al ;使所有行线为低电平 mov dx,colport ;colport为连接列线的端口地址 in al,dx ;读取列值 cmp al,0ffh ;判断列线是否读到全1 jz key1 ;是,无闭合键,循环等待 call delay ;否,延迟20ms清除抖动,键盘扫描程序,4,第2段:识别按键(扫描),mov cx,8 ;扫描行数送CX mov a

3、h,0feh ;第一行扫描初值送AH key2: mov al,ah mov dx,rowport out dx,al ;输出行码(扫描码) mov dx,colport in al,dx ;读到列码,键盘扫描程序,5,第2段:识别按键(判断),cmp al,0ffh ;判断列线是否全1 jnz key3 ;否,有按键,转下一步处理 rol ah,1 ;是,无按键,扫描码移位 loop key2 ;拟扫下一行 jmp key1 ;所有行都没有键按下,返回粗扫 key3: ;此时,al列码,ah行码,键盘扫描程序,6,2. 行列反转法识别矩阵式键盘,第一步,先将行线设为输出、列线设为检测输入 C

4、PU通过输出端口将行线(控制线)全部设置为 低电平,然后从输入端口读取列线(检测线), 若列码读到全1说明无键按下,否则有键按下, 转第二步。 第二步,将行线和列线作用反转,即列线设为输 出,行线设为检测输入。将前一步读到的列码从 列线端口输出,并读取行线的输入码(行码) 当一个键被按下时,必然涉及一对特定的行码和 列码,以此组成按键特定的识别码,通过查表环 节可获得按键键值。,条件:连接行线和列线的接口电路必须能动态地改 变行线和列线的输入/输出方式,7,第1段:是否有键按下, ;设置行线接输出端口,列线接输入端口 key2: mov al,00 mov dx,rowport out dx,

5、al ;设置行线输出全0 mov dx,colport in al,dx ;读取列码 cmp al,0ffh ;判是否全1 jz key2 ;是,无键闭合,循环等待 push ax ;否,有闭合键,保存列码 push ax,键盘扫描程序,8,第2段:识别按键(反转法), ;重新设置行线接输入口,列线接输出口 mov dx,colport pop ax out dx,al ;输出前面保存的列码 mov dx,rowport in al,dx ;读取行码 pop bx ;将行码、列码组合 mov ah,bl ;此时,al行值,ah列值,键盘扫描程序,9,行列值表和键代码表,;按键的识别码表 tab

6、le dw 0fefeh ;键0的识别码(16位) dw 0fdfeh ;键1的识别码 dw 0fbfeh ;键2的识别码 ;其他键的识别码 ;按键键值表 char db 0 ;键0的键值 db 1 ;键1的键值 db 2 ;键2的键值 ;其他键的键值,键盘扫描程序,10,第3段:查找键代码,mov si,offset table ;识别码表首址 mov di,offset char ;键值表表首址 mov cx,64 ;CX键的总数 key3: cmp ax,si ; ax与表中识别码相比较 jz key4;相同,说明找到,跳到key4 inc si ;不同,继续比较 inc si inc

7、di loop key3 jmp key1 ;全部比较完,都不同, ;说明是串键,键盘扫描程序,11,第4段:等待按键释放,key4: mov al,di ;获取键代码送AL ;判断按键是否释放,没有则等待 call delay ;按键释放,延时消除抖动 ;后续处理,键盘扫描程序,12,3. 按键抖动和串键问题,机械按键按键和释放时存在按键抖动现象 当键按下或释放时,因接触电阻的变化对数字 电路来说会导致输入的不确定性。 抖动的持续时间通常不大于10ms。 可采用硬件消抖电路或软件延时的方法来去抖。 串键指两个或多个键同时闭合 出现串键时,读取的码值中必然出现一个以上 的0 用户决定是否给予识

8、别处理。,13,串键处理,认为是无效的按键不予识别 认为是有效的组合键加以识别 只承认先识别出来的键 连锁法:直到所有键都释放后,读入下一个键 巡回法:等被识别的键释放以后,就可以 对其他闭合键作识别,而不必等待全部键 释放,14,10.4 LED数码管及其接口,发光二极管LED是最简单的 显示设备 由8段LED组成的LED数码管 LED数码管广泛用于单板微 型机、微型机控制系统及数 字化仪器中 LED数码管可以显示内存地 址和数据等,15,LED数码管的结构,共阳极,共阳极,+5V,a b c d e f g h,共阴极,a b c d e f g h,共阴极,16,2. 单个LED数码管的

9、显示,8255A,PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7,同 相 驱 动 电 路,a b c d e f g h,com,+5V,对一般数字电路而言,其灌电流(输出低电平)的能力要大于拉电流 (输出高电平)的能力,共阳数码管,送0点亮,送0点亮,17,单个数码管的显示,LEDtb db 0c0h,0f9h,0a4h ;共阳七段码表 db mov al,1 ;要显示的数码在表中的位置 mov bx,offset LEDtb ;bx指向七段码表 xlat ;通过换码取要显示的七段码 ;alds:bxal mov dx,port out dx,al ;输出七段码,软件译码,1

10、8,3. 多个LED数码管的显示,以动态扫描显示8个数码管为例 硬件使用两个8位的输出端口,其中: 锁存输出七段码的端口,通过公用的段驱动 电路来驱动多个数码管各段 锁存输出位选通码的端口,每次只点亮一个 数码管 软件用轮流点亮(扫描)的方法实现 多位数码显示,扫描频率应控制在16次/秒 以上,当扫描频率达50次/秒时,显示将无 闪烁感。,19,段控制端口作用,控制哪些段点亮,决定具体显示什么数码 段控制端口送出七段码到数码管段控制端 此端口为8个数码管的共用端口,段控制:Di0,相应段点亮,通过位、段控制端口的共同作用才能确 定哪个数码管显示什么数码,20,位控制端口作用,位控制端口控制点亮

11、哪位数码管(其 余数码管暂不点亮) 当位控制端口的控制码某位为0时, 经反相驱动,便在相应数码管的公共 阳极上加了高电平,该数码管将点亮 并显示数据,位控制:Di0,相应数位的数码管可以发光,21,数码缓冲区,;数据段 LEDdt db 8 dup(0) ;显示缓冲区,存放要显示 ;数码在七段码表中的序号 ;主程序 mov si,offset LEDdt ;si指向显示缓冲区首址 call LEDdisp ;调用显示子程序,22,获取显示代码,LEDdisp proc push ax push bx push dx mov bx,offset LEDtb mov ah,0feh ;从最左边数码

12、管开始 LED1: lodsb ;取显示数据 xlat ;换码得到要显示的七段码 ;ALCS:BXAL,23,数码显示,mov dx,segport ;segport为段控制端口 out dx,al ;送出七段码 mov al,ah ;取出位显示代码 mov dx,bitport ;bitport为位控制端口 out dx,al ;送出位选通码 call delay ;实现数码管延时显示,24,显示下位数码,rol ah,1 ;选通码移位,指向下个数码管 cmp ah,0feh ;选通码又回最左边的数码管? jnz LED1 ;否,显示下一个数字 pop dx ;是,显示完一轮,退出 pop

13、bx pop ax ret LEDtb db 0c0h,0f9h ;共阳七段码表 db LEDdisp endp,25,软件延时,timer = 10 ;延时常量 delay proc push bx push cx mov bx,timer ;外循环:timer确定的次数 delay1: xor cx,cx delay2: loop delay2 ;内循环:216次循环,26,软件延时,dec bx jnz delay1 pop cx pop bx ret delay endp,通过控制重复频率和延时时间就可以得到各种显示效果,27,三、编码键盘(Intel 8279) 可编程键盘显示接口芯

14、片Intel 8279 键盘控制管理单片机Intel 8042,28,1、8279的引脚信号,8279为40引脚双列直插DIP芯片,除常规信号外, 几个主要信号说明如下:,(1)RESET:高电平有效的复位信号。复位状态:,双键锁定:为两键同时按下提供保护,在去抖动周期 如果有两键同时按下,则只有剩下的一键 在保持按下位置时才能被确认。,N键轮回: 为N键同时按下提供保护,如果有多键同时 按下,则键盘扫描能根据发现的顺序,依 次将它们的状态送入FIFO RAM。,8/16个字符显示,左入口 编码扫描键盘,双键锁定 程序时钟编程值设定为31,29,IRQ 高电平有效的中断请求输出线 键盘工作方式

15、时,FIFO RAM有键盘数据时有效, CPU读出后复位。,CLK 为8279提供内部定时的时钟输入线。 8279内部定时时钟为100KHZ,根据时钟输入不同 需写入不同的分频命令。,SL0 SL3 输出的用于键盘及显示的扫描线,可以编程 设定为编码输出(16取1)或译码输出(4取1),RL0 RL7 回复线,为键盘或传感器矩阵列信号输入线。,SHIFT CONL 上档、控制功能键状态输入。,OUTA03 OUTB03 二组显示输出线,控制LED显示值。,30,31,BD 消隐控制输出线,通过硬件使7段LED显示熄灭。,2、8279的组成和基本工作原理,8279有三种键盘数据读入方法 (1)一

16、般扫描键(译码扫描,编码扫描) 采用8*8矩阵,SL0 2提供扫描,当扫描矩阵中 任何一个键按下时,即将按键位置信息存入键盘 RAM中,IRQ置位申请中断。CPU可通过中断处理 读入键盘 RAM ,取得键盘数据。,32,(2)传感器矩阵 键盘矩阵种按键作为开关量传感器接点信号输入, 矩阵中任一传感器的状态发生变化置IRQ有效,CPU写入 地址后读出键盘RAM 的值。,(3)选通方式 数据格式与传感器方式相同,但必须在STB输入 正选通脉冲时方能将传感器开关状态锁存入键盘RAM。,33,3、8279的控制命令,(1)键入与显示方式设定,DD=00 8字符显示 左入口 DD=01 16字符显示 左入口 DD=10 8字符显示

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件 > 高中课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号