微机原理第六章可编程接口芯片及其应用3

上传人:wm****3 文档编号:51566561 上传时间:2018-08-15 格式:PPT 页数:43 大小:481KB
返回 下载 相关 举报
微机原理第六章可编程接口芯片及其应用3_第1页
第1页 / 共43页
微机原理第六章可编程接口芯片及其应用3_第2页
第2页 / 共43页
微机原理第六章可编程接口芯片及其应用3_第3页
第3页 / 共43页
微机原理第六章可编程接口芯片及其应用3_第4页
第4页 / 共43页
微机原理第六章可编程接口芯片及其应用3_第5页
第5页 / 共43页
点击查看更多>>
资源描述

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

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控制器82371沈阳航空工业学院6.6.1键盘及其接口v键盘是微机系统的标准输入设备v编码键盘:按键时自动产生编码输出,比如PC键盘在,按键与释放会自动向CPU送出16位的编码。v非编码键盘:按键时不会自动产生编码输出,需要CPU主动去检查识别,在构成较为简单的嵌入式系统应用,以实现较为简单的数据输入,其结构

2、可分为:简单按键每个按键连接1根I/O线矩阵式键盘多根行及列I/O线构成矩阵,按键跨接在交叉点上。2沈阳航空工业学院第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清除抖动键盘扫描程序3沈阳航空工业学院第2段:识别按键(扫描)mov cx,8;扫描行数送CX mov ah,0

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

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

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

6、feh;键0的识别码(16位) dw 0fdfeh;键1的识别码 dw 0fbfeh;键2的识别码 ;其他键的识别码;按键键值表 chardb 0;键0的键值 db 1;键1的键值 db 2;键2的键值 ;其他键的键值键盘扫描程序9沈阳航空工业学院第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 di loop key3 jmp k

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

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

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

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

11、阳航空工业学院位控制端口作用v位控制端口控制点亮哪位数码管(其余数码管暂不点亮)v当位控制端口的控制码某位为0时,经反相驱动,便在相应数码管的公共阳极上加了高电平,该数码管将点亮并显示数据位控制:Di0,相应数位的数码管可以发光D7D6D5D4D3D2D1D0 位7 位6 位5 位4 位3 位2 位1 位020沈阳航空工业学院数码缓冲区;数据段 LEDdtdb 8 dup(0);显示缓冲区,存放要显示 ;数码在七段码表中的序号;主程序 mov si,offset LEDdt ;si指向显示缓冲区首址 call LEDdisp;调用显示子程序21沈阳航空工业学院获取显示代码LEDdispproc

12、 push ax push bx push dx mov bx,offset LEDtb mov ah,0feh;从最左边数码管开始 LED1: lodsb;取显示数据 xlat;换码得到要显示的七段码 ;ALCS:BXAL22沈阳航空工业学院数码显示mov dx,segport;segport为段控制端口 out dx,al;送出七段码 mov al,ah;取出位显示代码mov dx,bitport;bitport为位控制端口 out dx,al;送出位选通码 call delay;实现数码管延时显示23沈阳航空工业学院显示下位数码rol ah,1;选通码移位,指向下个数码管cmp ah,0

13、feh;选通码又回最左边的数码管? jnz LED1;否,显示下一个数字 pop dx;是,显示完一轮,退出 pop bx pop ax ret LEDtbdb 0c0h,0f9h;共阳七段码表 db LEDdispendp24沈阳航空工业学院软件延时timer= 10;延时常量 delayproc push bx push cx mov bx,timer;外循环:timer确定的次数 delay1:xor cx,cx delay2:loop delay2 ;内循环:216次循环25沈阳航空工业学院软件延时dec bx jnz delay1 pop cx pop bx ret delayend

14、p通过控制重复频率和延时时间就可以 得到各种显示效果26沈阳航空工业学院三、编码键盘(Intel 8279)可编程键盘显示接口芯片Intel 8279键盘控制管理单片机Intel 804227沈阳航空工业学院1、8279的引脚信号8279为40引脚双列直插DIP芯片,除常规信号外, 几个主要信号说明如下:(1)RESET:高电平有效的复位信号。复位状态:双键锁定:为两键同时按下提供保护,在去抖动周期如果有两键同时按下,则只有剩下的一键 在保持按下位置时才能被确认。N键轮回: 为N键同时按下提供保护,如果有多键同时 按下,则键盘扫描能根据发现的顺序,依 次将它们的状态送入FIFO RAM。8/1

15、6个字符显示,左入口 编码扫描键盘,双键锁定 程序时钟编程值设定为3128沈阳航空工业学院CS A0:片选、端口地址选择信号。 IRQ 高电平有效的中断请求输出线 键盘工作方式时,FIFO RAM有键盘数据时有效, CPU读出后复位。 CLK 为8279提供内部定时的时钟输入线。 8279内部定时时钟为100KHZ,根据时钟输入不同 需写入不同的分频命令。SL0 SL3 输出的用于键盘及显示的扫描线,可以编程设定为编码输出(16取1)或译码输出(4取1) RL0 RL7 回复线,为键盘或传感器矩阵列信号输入线。SHIFT CONL 上档、控制功能键状态输入。OUTA03 OUTB03 二组显示

16、输出线,控制LED显示值。29沈阳航空工业学院FIFO/传感器RAM状态寄存器I/O控制数据缓冲器RD WR CS A0IRQ键盘反弹 与控制回复8*8FIFO 传感器RAM控制与定时 寄存器16*8 显示 RAM显示 地址 寄存器定时 与 控制扫描计数器显示寄存器CNTL/STBSHIFT RL03SL03BDOUTA 0 3 OUTB 0 3DB07 CLK RESET30沈阳航空工业学院BD 消隐控制输出线,通过硬件使7段LED显示熄灭。2、8279的组成和基本工作原理8279有三种键盘数据读入方法 (1)一般扫描键(译码扫描,编码扫描) 采用8*8矩阵,SL0 2提供扫描,当扫描矩阵中任何一个键按下时,即将按键位置信息存入键盘RAM中,IRQ置位申请中断。CPU可通过中断处理读入键盘 RAM ,取得键盘数据。CNTLSH

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

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