微机原理第六章可编程接口芯片及其应用3_第1页
微机原理第六章可编程接口芯片及其应用3_第2页
微机原理第六章可编程接口芯片及其应用3_第3页
微机原理第六章可编程接口芯片及其应用3_第4页
微机原理第六章可编程接口芯片及其应用3_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、1第六章第六章 常用的接口常用的接口芯片及其应用芯片及其应用6.1 I/O接口概述接口概述6.2简单接口简单接口6.3总线控制器总线控制器8288及总线及总线裁决器裁决器82896.4可编程并行接口可编程并行接口82556.5可编程定时器可编程定时器6.6键盘显示接口键盘显示接口6.7中断控制接口中断控制接口6.8可编程串行接口可编程串行接口82516.9A/D及及D/A变换器接口变换器接口6.10 DMA控制器控制器8237沈阳航空工业学院26.6.1键盘及其接口键盘及其接口v键盘是微机系统的标准键盘是微机系统的标准输入设备输入设备v编码键盘编码键盘:按键时自动产生编码输出,:按键时自动产生

2、编码输出,比比 如如PC键盘在键盘在,按键与释放会自动向,按键与释放会自动向CPU 送出送出16位的编码。位的编码。v非编码键盘非编码键盘:按键时不会自动产生编码输:按键时不会自动产生编码输 出,需要出,需要CPU主动去检查识别,在构成较主动去检查识别,在构成较 为简单的嵌入式系统应用,以实现较为简为简单的嵌入式系统应用,以实现较为简 单的数据输入,其结构可分为:单的数据输入,其结构可分为:简单按键简单按键每个按键连接每个按键连接1根根I/O线线矩阵式键盘矩阵式键盘多根行及列多根行及列I/O线构成矩阵,线构成矩阵, 按键跨接在交叉点上。按键跨接在交叉点上。沈阳航空工业学院3第1段:是否有键按下

3、key1:mov al,00mov dx,rowport ;rowport为连接行线的端口地址为连接行线的端口地址out dx,al;使所有行线为低电平使所有行线为低电平 mov dx,colport;colport为连接列线的端口地址为连接列线的端口地址 in al,dx;读取列值读取列值cmp al,0ffh;判断列线是否读到全判断列线是否读到全1jz key1;是,无闭合键,循环等待是,无闭合键,循环等待call delay;否,延迟否,延迟20ms清除抖动清除抖动键盘扫描程序沈阳航空工业学院4第2段:识别按键(扫描)mov cx,8;扫描行数送扫描行数送CXmov ah,0feh;第一

4、行扫描初值送第一行扫描初值送AHkey2:mov al,ahmov dx,rowportout dx,al;输出行码(扫描码)输出行码(扫描码)mov dx,colportin al,dx;读到列码读到列码键盘扫描程序沈阳航空工业学院5第2段:识别按键(判断)cmp al,0ffh ;判断列线是否全判断列线是否全1jnz key3;否,有按键,转下一步处理否,有按键,转下一步处理rol ah,1;是,无按键,扫描码移位是,无按键,扫描码移位loop key2;拟扫下一行拟扫下一行jmp key1;所有行都没有键按下,返回粗所有行都没有键按下,返回粗扫扫key3: ;此时,此时,al列码,列码,

5、ah行码行码键盘扫描程序沈阳航空工业学院62. 行列反转法识别矩阵式键盘行列反转法识别矩阵式键盘v第一步第一步,先将,先将行线行线设为输出、列线设为检测输入设为输出、列线设为检测输入vCPU通过输出端口将通过输出端口将行线行线(控制线)全部设置为(控制线)全部设置为 低电平,然后从输入端口读取低电平,然后从输入端口读取列线列线(检测线),(检测线), 若若列码列码读到全读到全1说明无键按下,否则有键按下,说明无键按下,否则有键按下, 转第二步。转第二步。v第二步第二步,将,将行线行线和和列线列线作用反转,即作用反转,即列线列线设为输设为输 出,出,行线行线设为检测输入。将前一步读到的设为检测输

6、入。将前一步读到的列码列码从从 列线列线端口输出,并读取端口输出,并读取行线行线的输入码(的输入码(行码行码)v当一个键被按下时,必然涉及一对特定的当一个键被按下时,必然涉及一对特定的行码行码和和 列码列码,以此组成按键特定的,以此组成按键特定的识别码识别码,通过查表环,通过查表环 节可获得按键键值。节可获得按键键值。条件:连接行线和列线的接口电路必须能动态地改条件:连接行线和列线的接口电路必须能动态地改变行线和列线的输入变行线和列线的输入/ /输出方式输出方式沈阳航空工业学院7第1段:是否有键按下 ;设置行线接输出端口,列线接输入端口设置行线接输出端口,列线接输入端口key2:mov al,

7、00mov dx,rowportout dx,al;设置行线输出全设置行线输出全0mov dx,colportin al,dx;读取列码读取列码cmp al,0ffh;判是否全判是否全1jz key2;是,无键闭合,循环等待是,无键闭合,循环等待push ax;否,有闭合键,保存列码否,有闭合键,保存列码 push ax键盘扫描程序沈阳航空工业学院8第2段:识别按键(反转法);重新设置行线接输入口,列线接输出口重新设置行线接输入口,列线接输出口mov dx,colportpop axout dx,al;输出前面保存的列码输出前面保存的列码mov dx,rowportin al,dx;读取行码读

8、取行码pop bx;将行码、列码组合将行码、列码组合mov ah,bl;此时,此时,al行值,行值,ah列值列值键盘扫描程序沈阳航空工业学院9行列值表和键代码表 ;按键的识别码表按键的识别码表tabledw 0fefeh;键键0的识别码(的识别码(16位)位)dw 0fdfeh;键键1的识别码的识别码dw 0fbfeh;键键2的识别码的识别码;其他键的识别码其他键的识别码 ;按键键值表按键键值表chardb 0;键键0的键值的键值db 1;键键1的键值的键值db 2;键键2的键值的键值;其他键的键值其他键的键值键盘扫描程序沈阳航空工业学院10第3段:查找键代码mov si,offset tab

9、le ;识别码表首址识别码表首址mov di,offset char ;键值表表首址键值表表首址mov cx,64;CX键的总数键的总数key3:cmp ax,si ; ax与表中识别码相比较与表中识别码相比较 jz key4;相同,说明找到,跳到相同,说明找到,跳到key4inc si;不同,继续比较不同,继续比较inc siinc diloop key3jmp key1;全部比较完,都不同,全部比较完,都不同,;说明是串键说明是串键键盘扫描程序沈阳航空工业学院11第4段:等待按键释放key4: mov al,di ;获取键代码送获取键代码送AL ;判断按键是否释放,没有判断按键是否释放,没

10、有则等待则等待call delay ;按键释放,延时消除抖动按键释放,延时消除抖动 ;后续处理后续处理键盘扫描程序沈阳航空工业学院123. 按键抖动和串键问题按键抖动和串键问题v机械按键按键和释放时存在按键抖动现象机械按键按键和释放时存在按键抖动现象当键按下或释放时,因接触电阻的变化对数字当键按下或释放时,因接触电阻的变化对数字 电路来说会导致输入的不确定性。电路来说会导致输入的不确定性。抖动的持续时间通常不大于抖动的持续时间通常不大于10ms。可采用硬件消抖电路或软件延时的方法来可采用硬件消抖电路或软件延时的方法来去抖去抖。v串键指两个或多个键同时闭合串键指两个或多个键同时闭合出现串键时,读

11、取的码值中必然出现一个以上出现串键时,读取的码值中必然出现一个以上 的的0用户决定是否给予识别处理。用户决定是否给予识别处理。沈阳航空工业学院13串键处理串键处理v认为是无效的按键认为是无效的按键不予识别不予识别v认为是有效的组合键认为是有效的组合键加以识别加以识别v只承认先识别出来的键只承认先识别出来的键连锁法:直到所有键都释放后,读入下一连锁法:直到所有键都释放后,读入下一个键个键巡回法:等被识别的键释放以后,就可以巡回法:等被识别的键释放以后,就可以 对其他闭合键作识别,而不必等待全部键对其他闭合键作识别,而不必等待全部键 释放释放沈阳航空工业学院1410.4 LED数码管及其接口数码管

12、及其接口v发光二极管发光二极管LED是是最简单的最简单的 显示设备显示设备v由由8段段LED组成的组成的LED数码数码管管vLED数码管广泛用于单板微数码管广泛用于单板微 型机、微型机控制系统及数型机、微型机控制系统及数 字化仪器中字化仪器中vLED数码管可以显示内存地数码管可以显示内存地 址和数据等址和数据等沈阳航空工业学院15LED数码管的结构数码管的结构共阳极共阳极共阳极共阳极+5Vabcdefgh共阴极共阴极abcdefgh共阴极共阴极沈阳航空工业学院162. 单个单个LED数码管的显示数码管的显示8255APA0PA1PA2PA3PA4PA5PA6PA7同同相相驱驱动动电电路路abc

13、defghcom+5V对一般数字电路而言,其灌电流(输出低电平)的能力要大于拉电流对一般数字电路而言,其灌电流(输出低电平)的能力要大于拉电流(输出高电平)的能力(输出高电平)的能力共阳数码管共阳数码管送送0点亮点亮送送0点亮点亮沈阳航空工业学院17单个数码管的显示LEDtbdb 0c0h,0f9h,0a4h ;共阳七段码表共阳七段码表db mov al,1;要显示的数码在表中的位置要显示的数码在表中的位置mov bx,offset LEDtb ;bx指向七段码表指向七段码表xlat;通过换码取要显示的七段码通过换码取要显示的七段码;alds:bxalmov dx,portout dx,al;

14、输出七段码输出七段码软件译码沈阳航空工业学院183. 多个多个LED数码管的显示数码管的显示v以动态扫描显示以动态扫描显示8个数码管为例个数码管为例v硬件硬件使用使用两两个个8位的输出端口,其中:位的输出端口,其中:锁存输出七段码的端口,通过公用的段驱动锁存输出七段码的端口,通过公用的段驱动 电路来驱动多个数码管各段电路来驱动多个数码管各段锁存输出位选通码的端口,每次只点亮一个锁存输出位选通码的端口,每次只点亮一个 数码管数码管v软件软件用轮流点亮(扫描)的方法实现用轮流点亮(扫描)的方法实现 多位数码显示,扫描频率应控制在多位数码显示,扫描频率应控制在16次次/秒秒 以上,当扫描频率达以上,

15、当扫描频率达50次次/秒时,显示将无秒时,显示将无 闪烁感。闪烁感。沈阳航空工业学院19段控制端口作用段控制端口作用v控制哪些控制哪些段段点亮,决定具体显示什么数码点亮,决定具体显示什么数码v段控制端口送出七段码到数码管段控制端段控制端口送出七段码到数码管段控制端v此端口为此端口为8个数码管的共用端口个数码管的共用端口段控制:段控制:Di0,相应段,相应段点亮点亮D7D6D5D4D3D2D1D0hgfedcba通过位、段控制端口的共同作用才能确通过位、段控制端口的共同作用才能确定定哪个数码管哪个数码管显示显示什么数码什么数码沈阳航空工业学院20位控制端口作用位控制端口作用v位控制端口位控制端口

16、控制点亮哪控制点亮哪位位数码管(其数码管(其 余数码管暂不点亮)余数码管暂不点亮)v当位控制端口的控制码某位为当位控制端口的控制码某位为0时,时, 经经反相反相驱动,便在相应数码管的驱动,便在相应数码管的公共公共 阳极阳极上加了高电平,该数码管将点亮上加了高电平,该数码管将点亮 并显示数据并显示数据位控制:位控制:Di0,相应数位的数码管可以发光,相应数位的数码管可以发光D7D6D5D4D3D2D1D0位位7 位位6 位位5 位位4 位位3 位位2 位位1 位位0沈阳航空工业学院21数码缓冲区;数据段数据段LEDdtdb 8 dup(0);显示缓冲区,存放要显示显示缓冲区,存放要显示;数码在七

17、段码表中的序号数码在七段码表中的序号;主程序主程序mov si,offset LEDdt ;si指向显示缓冲区首址指向显示缓冲区首址 call LEDdisp;调用显示子程序调用显示子程序沈阳航空工业学院22获取显示代码LEDdispprocpush axpush bxpush dxmov bx,offset LEDtbmov ah,0feh;从最左边数码管开始从最左边数码管开始LED1: lodsb;取显示数据取显示数据xlat;换码得到要显示的七段码换码得到要显示的七段码;ALCS:BXAL沈阳航空工业学院23数码显示mov dx,segport;segport为段控制端口为段控制端口ou

18、t 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 bxpop axretLEDtbdb 0c0h,

19、0f9h;共阳七段码表共阳七段码表db LEDdispendp沈阳航空工业学院25软件延时timer= 10;延时常量延时常量delayprocpush bxpush cxmov bx,timer;外循环:外循环:timer确定的次数确定的次数delay1:xor cx,cxdelay2:loop delay2 ;内循环:内循环:216次循环次循环沈阳航空工业学院26软件延时dec bxjnz delay1pop cxpop bxretdelayendp通过控制重复频率和延时时间就可以通过控制重复频率和延时时间就可以得到各种显示效果得到各种显示效果沈阳航空工业学院27三、编码键盘(三、编码键盘

20、(Intel 8279) 可编程键盘显示接口芯片可编程键盘显示接口芯片Intel 8279 键盘控制管理单片机键盘控制管理单片机Intel 8042沈阳航空工业学院281、8279的引脚信号的引脚信号 8279为为40引脚双列直插引脚双列直插DIP芯片,除常规信号外,芯片,除常规信号外,几个主要信号说明如下:几个主要信号说明如下:(1)RESET:高电平有效的复位信号。复位状态:高电平有效的复位信号。复位状态:双键锁定:为两键同时按下提供保护,在去抖动周期双键锁定:为两键同时按下提供保护,在去抖动周期 如果有两键同时按下,则只有剩下的一键如果有两键同时按下,则只有剩下的一键在保持按下位置时才能

21、被确认。在保持按下位置时才能被确认。N键轮回:键轮回: 为为N键同时按下提供保护,如果有多键同时键同时按下提供保护,如果有多键同时按下,则键盘扫描能根据发现的顺序,依按下,则键盘扫描能根据发现的顺序,依次将它们的状态送入次将它们的状态送入FIFO RAM。8/16个字符显示,左入口个字符显示,左入口编码扫描键盘,双键锁定编码扫描键盘,双键锁定程序时钟编程值设定为程序时钟编程值设定为31沈阳航空工业学院29CS A0:片选、端口地址选择信号。:片选、端口地址选择信号。IRQ 高电平有效的中断请求输出线高电平有效的中断请求输出线键盘工作方式时,键盘工作方式时,FIFO RAM有键盘数据时有效,有键

22、盘数据时有效,CPU读出后复位。读出后复位。CLK 为为8279提供内部定时的时钟输入线。提供内部定时的时钟输入线。8279内部定时时钟为内部定时时钟为100KHZ,根据时钟输入不同,根据时钟输入不同需写入不同的分频命令。需写入不同的分频命令。SL0 SL3 输出的用于键盘及显示的扫描线,可以编程输出的用于键盘及显示的扫描线,可以编程 设定为编码输出(设定为编码输出(16取取1)或译码输出()或译码输出(4取取1)RL0 RL7 回复线,为键盘或传感器矩阵列信号输入线。回复线,为键盘或传感器矩阵列信号输入线。SHIFT CONL 上档、控制功能键状态输入。上档、控制功能键状态输入。OUTA03

23、 OUTB03 二组显示输出线,控制二组显示输出线,控制LED显示值。显示值。沈阳航空工业学院30FIFO/传感器传感器 RAM 状态寄存器状态寄存器I/O控制控制数据缓冲器数据缓冲器RD WR CS A0IRQ键盘反弹键盘反弹与控制与控制回复回复8*8FIFO传感器传感器RAM控制与定时控制与定时寄存器寄存器16*8显示显示RAM显示显示地址地址寄存器寄存器定时定时与与控制控制扫描计数器扫描计数器显示寄存器显示寄存器CNTL/STBSHIFTRL03SL03BDOUTA 0 3 OUTB 0 3DB07CLK RESET沈阳航空工业学院31BD 消隐控制输出线,通过硬件使消隐控制输出线,通过

24、硬件使7段段LED显示熄灭。显示熄灭。2、8279的组成和基本工作原理的组成和基本工作原理8279有三种键盘数据读入方法有三种键盘数据读入方法(1)一般扫描键(译码扫描,编码扫描)一般扫描键(译码扫描,编码扫描)采用采用8*8矩阵,矩阵,SL0 2提供扫描,当扫描矩阵中提供扫描,当扫描矩阵中 任何一个键按下时,即将按键位置信息存入键盘任何一个键按下时,即将按键位置信息存入键盘 RAM中,中,IRQ置位申请中断。置位申请中断。CPU可通过中断处理可通过中断处理 读入键盘读入键盘 RAM ,取得键盘数据。,取得键盘数据。CNTLSHIFT SCAN RETURN沈阳航空工业学院32(2)传感器矩阵

25、)传感器矩阵键盘矩阵种按键作为开关量传感器接点信号输入,键盘矩阵种按键作为开关量传感器接点信号输入,矩阵中任一传感器的状态发生变化置矩阵中任一传感器的状态发生变化置IRQ有效,有效,CPU写入写入地址后读出键盘地址后读出键盘RAM 的值。的值。 RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL0(3)选通方式)选通方式数据格式与传感器方式相同,但必须在数据格式与传感器方式相同,但必须在STB输入输入正选通脉冲时方能将传感器开关状态锁存入键盘正选通脉冲时方能将传感器开关状态锁存入键盘RAM。显示数据格式显示数据格式 A3 A2 A1 A0 B3 B2 B1 B0 d c b a dp

26、 g f e沈阳航空工业学院333、8279的控制命令的控制命令(1)键入与显示方式设定)键入与显示方式设定 0 0 0 D D K K KDD=00 8字符显示字符显示 左入口左入口DD=01 16字符显示字符显示 左入口左入口DD=10 8字符显示字符显示 右入口右入口DD=00 16字符显示字符显示 右入口右入口KKK=000 编码扫描键盘,双键锁定编码扫描键盘,双键锁定KKK=001 译码扫描键盘,双键锁定译码扫描键盘,双键锁定KKK=010 编码扫描键盘,编码扫描键盘,N键轮回键轮回KKK=011 译码扫描键盘,译码扫描键盘,N键轮回键轮回沈阳航空工业学院34KKK=100 编码扫描

27、传感器矩阵编码扫描传感器矩阵KKK=101 译码扫描传感器矩阵译码扫描传感器矩阵KKK=110 编码扫描编码扫描 选通输入选通输入KKK=111 译码扫描译码扫描 选通输入选通输入 0 0 1 P P P P P(2)时钟工作方式)时钟工作方式后后5位决定分频系数位决定分频系数(3)读键盘)读键盘RAM CPU读键盘读键盘RAM前必须写入。前必须写入。一般扫描方式,由于一般扫描方式,由于RAM为为FIFO寄存器,寄存器,AI和和A不起不起作用;传感器方式,作用;传感器方式,AI=1,地址自动加,地址自动加1;AAA为读取为读取的的RAM地址值。地址值。沈阳航空工业学院35 0 1 0 AI A

28、 A A(4)读写显示)读写显示RAM控制字控制字 0 1 1 AI A A A A 1 0 0 AI A A A A(5)显示)显示RAM写入的禁止与熄灭写入的禁止与熄灭 1 0 1 IWA IWB BLA BLBIW=1,禁止写入;,禁止写入;BL=1,显示熄灭。,显示熄灭。沈阳航空工业学院36(6)清除控制字)清除控制字 1 1 0 CD1 CD2 CD3 CF CA CA=1,全清;,全清;CF=1清除键盘清除键盘RAM及及IRQCD1=1清除显示清除显示RAM ,具体操作由,具体操作由CD2、CD3决定决定CD2、CD3 = 0 、 显示全零显示全零CD2、CD3 = 1、 0 显示全空(显示全空(20H)CD2、CD3 = 1、1 显示全显示全1(7)结束中断)结束中断/错误方式置位命令错误方式置位命令 1 1 1 E 传感器方式时,用此命令清除传感器方式时,用此命令清除IRQ,E=1,允许以特殊,允许以特殊方式扫描,即去抖时另有键按下回送错误状态信息。方式扫描,即去抖时另有键按下回送错误状态信息。沈阳航空工业学院37(8)8279的状态字的状态字 BU S/E O U F N N N 键盘键盘RAM中字

温馨提示

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

评论

0/150

提交评论