微机并行、串行(IO)接口.ppt_第1页
微机并行、串行(IO)接口.ppt_第2页
微机并行、串行(IO)接口.ppt_第3页
微机并行、串行(IO)接口.ppt_第4页
微机并行、串行(IO)接口.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

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

文档简介

1、并行、串行(I/O)接口,9.1 并行(I/O)接口 9.1.1 并行接口的特点 9.1.2 可编程并行接口芯片8255A 9.2 8255A应用举例 9.3 键盘、显示器及其接口 9.3.1 概述 9.3.2 键盘识别原理 9.3.3 LED显示器及其接口 9.4 串行接口和串行通信 9.4.1 串行通信的基本概念 9.4.2 串行接口,第 9 章,9.4.3 串行通信的三种方式 9.4.4 串行数据传送方式 9.4.5 信号的调制与解调 9.4.6 RS-232串行通信标准 9.5 可编程串行I/O接口8251A 9.5.1 8251A的基本工作原理 9.5.2 8251A的引脚特性 9.

2、5.3 8251A的控制字和状态字 9.5.4 8251A的初始化编程 9.5.5 8251A的应用示例,9.1 并行接口,接口设计简单,因为计算机的接口总线多数是并行总线 多条数据线同时传送信息,传送距离短 需要握手信号进行控制 数据传输率高 并行接口分为非选通接口(简单接口)与选通接口,9.1.1 并行接口的特点,9.1.2 可编程并行接口芯片 8255A,A组 B组,端口PA 端口PC的高4位,端口PB 端口PC的低4位,8255内部分为A、B两组分别进行控制管理。,PA口和PB口的输入/输出都具有数据锁存能力; 但 PC口输出有锁存能力, 而输入没有锁存能力(仅缓冲能力)。,8255A

3、的内部结构,9.1.2 可编程并行接口芯片 8255A,18255A的内部结构 (1) 三个数据输入输出端口A、B、C (2) A 组控制和 B 组控制 (3) 数据总线缓冲器 (4)读/写控制逻辑,(1) 与外设相连的引脚,端口A:PA0PA7 A组,支持工作方式0、1、2 端口B:PB0PB7 B组,支持工作方式0、1 端口C:PC0PC7 仅支持工作方式0 A组控制高4位PC4PC7 B组控制低4位PC0PC3,端口A:PA0PA7 常作数据端口,功能最强大 端口B:PB0PB7 常作数据端口 端口C:PC0PC7 可作数据、状态和控制端口 分两个4位,每位可独立操作 控制最灵活,最难掌

4、握,(2) 与CPU相连的引脚,D0 D7数据线A0 A1地址线 RD*读信号WR*写信号 CS*片选信号RESET复位信号,38255A的控制字,(1)方式选择控制字: 用来设定的工作方式及数据的传送方向。 (2)端口C置位/复位控制字: 控制端口C的每一位置位或复位。 (3)两个控制字的差别 方式选择控制字放在程序的开始部分; 置位/复位控制字可放在初始化程序以后的 任何地方。,1,方向选择控制字标志,A组方式 选择,端口A,端口C上半部,端口C下半部,端口B,B组方式选择,8255A方式选择控制字,D,D,D,D,D,D,D,D,7,6,5,4,3,2,1,0,0,端口C置位/复位标志,

5、任意值,8255A端口C置位/复位控制字,例如,要使端口C 的 PC7=1, 则控制字为00001111B,即0FH; 然后使PC3=0,则控制字为00000110B,即06H。 设8255A控制端口地址为286H,程序段如下: MOV AL,0FH ;置PC7=1的控制字 MOV DX,0286H;控制端口地址 OUT DX,AL ;置PC7=1 MOV AL,06H ;置PC3=0的控制字 OUT DX,AL ;置PC3=0,8255A的编程,初始化编程:一个方式控制字 采用控制I/O地址:A1A011 工作过程中:通过数据端口对外设数据进行读写 数据读写利用端口A、B和C的I/O地址,A

6、1A0依次等于00、01、10 IBM PC/XT机上,端口A、B、C和控制端口的I/O地址为60H、61H、62H和63H,1. 写入方式控制字:示例,要求: A端口:方式1输入 C端口上半部:输出,C口下半部:输入 B端口:方式0输出 方式控制字:10110001B或B1H 初始化的程序段: mov dx,0fffeh;假设控制端口为FFFEH mov al,0b1h;方式控制字 out dx,al;送到控制端口,2. 读写数据端口,初始化编程后: 当数据端口作为输入接口时,执行输入IN指令将从输入设备得到外设数据 当数据端口作为输出接口时,执行输出OUT指令将把CPU的数据送给输出设备

7、8255A具有锁存输出数据的能力 对输出方式的端口同样可以输入 不是读取外设数据 读取的是上次CPU给外设的数据,2. 读写数据端口:示例,利用8255A的输出锁存能力,可实现按位输出控制 对输出端口B的PB7位置位的程序段: mov dx,0fffah;B端口假设为FFFAH in al,dx;读出B端口原输出内容 or al,80h;使PB71 out dx,al;输出新的内容,4. 8255A的工作方式,方式0:基本输入输出方式 适用于无条件传送和查询方式的接口电路 方式1:选通输入输出方式 适用于查询和中断方式的接口电路 方式2:双向选通传送方式 适用于与双向传送数据的外设 适用于查询

8、和中断方式的接口电路,方式0输入时序,请体会这里8255A的数据缓冲作用,方式0输出时序,8255A对CPU通过它输出给外设的数据进行锁存,方式1输入引脚:A端口,数据选通信号 表示外设已经准备好数据,输入缓冲器满信号 表示A口已经接收数据,中断请求信号 请求CPU接收数据,方式1输入引脚:B端口,方式1需借用端口C用做联络信号 同时还具有中断请求和屏蔽功能,方式1输入联络信号,STB*选通信号,低电平有效 由外设提供的输入信号,当其有效时,将输入设备送来的数据锁存至8255A的输入锁存器 IBF输入缓冲器满信号,高电平有效 8255A输出的联络信号。当其有效时,表示数据已锁存在输入锁存器 I

9、NTR中断请求信号,高电平有效 8255A输出的信号,可用于向CPU提出中断请求,要求CPU读取外设数据,方式1输入时序,STB*和IBF是外设和8255A间 的一对应答联络信号, 为的是可靠地输入数据,方式1中断控制,8255A的中断由中断允许触发器INTE控制 置位允许中断,复位禁止中断 对INTE的操作通过写入端口C的对应位实现,INTE触发器对应端口C的位是作应答联络信号的输入信号的哪一位,只要对那一位置位/复位就可以控制INTE触发器 选通输入方式下 端口A的INTEA对应PC4 端口B的INTEB对应PC2,方式1输出引脚:A端口,外设响应信号 表示外设已经接收到数据,输出缓冲器满

10、信号 表示CPU已经输出了数据,中断请求信号 请求CPU再次输出数据,方式1输出引脚:B端口,方式1输出联络信号,OBF*输出缓冲器满信号,低有效 8255A输出给外设的一个控制信号,当其有效时,表示CPU已把数据输出给指定的端口,外设可以取走 ACK*响应信号,低有效 外设的响应信号,指示8255A的端口数据已由外设接受 INTR中断请求信号,高有效 当输出设备已接受数据后,8255A输出此信号向CPU提出中断请求,要求CPU继续提供数据,端口A的INTEA对应PC6 端口B的INTEB对应PC2,方式1输出时序,OBF*和ACK*是外设和8255A间 的一对应答联络信号, 为的是可靠地输出

11、数据,方式2双向方式,方式2将方式1的选通输入输出功能组合成一个双向数据端口,可以发送数据和接收数据 只有端口A可以工作于方式2,需要利用端口C的5个信号线,其作用与方式1相同 方式2的数据输入过程与方式1的输入方式一样 方式2的数据输出过程与方式1的输出方式有一点不同:数据输出时8255A不是在OBF*有效时向外设输出数据,而是在外设提供响应信号ACK*时才送出数据,方式2双向引脚,用PC6设置INTE1(输出) 用PC4设置INTE2(输入) 输入和输出中断通过 或门输出INTRA信号,方式2双向时序,设8255A工作于方式0,端口A为输入,端口B为输出,端口C为输出。试对其进行初始化。

12、首先确定方式选择控制字为:10010000B,设8255A端口地址为80H83H:则初始化程序为: MOV AL,90H;方式选择控制字 OUT 83H,AL;控制字送8255A控制端口 写完控制字后,CPU可通过INOUT指令来与8255A传送数据。如: IN AL,80H;读端口A的数据 OUT 8lH,AL ;AL中数据写入端口B OUT 82H,AL;写端口C,5. 8255A初始化举例,9.2 8255A应用举例,作为通用的并行接口电路芯片,825A具有广泛的应用 应用在IBM PC/XT微机上 应用于打印机接口电路 连接简易键盘 驱动LED数码管 ,8255A,打印机,PA 07,

13、PC 7,PC 0,D 07,BUSY,8255与打印机接口原理图,2. 查询方式打印字符,2. 查询方式打印字符,主机把数据送给引脚D0D7 同时送出数据选通信号STR 打印机在BUSY信号线上发出忙信号 打印机处理好输入的数据时 撤消忙信号 同时又送出一个响应信号ACK*,查询方式打印字符,8255A的端口A作为数据通道,工作在方式0输出;由PC7读人BUSY状态、PC0输出STB脉冲,故C口也工作在方式0,上半部输入、下半部输出;B口未用。 设8255端口地址为280H、28lH、282H和283H BUF DB HELLO! DB 0DH ;回车 DB 0AH ;换行 NUM EQU

14、$BUF : PRINT PROC FAR MOV DX,283H MOV AL,10001000B;8255初始化:均为方式0, OUT DX,AL ;A口输出,C上半输入,下半输出,打印子程序:查询,MOV AL,00000001B OUT DX,AL ;控制口,初始=1 MOV SI,OFFSET BUF MOV CX,NUM NEXT:MOV DX,282H IN AL,DX TEST AL,80H JNZ NEXT ;BUSY=1(忙)? MOV AL,SI INC SI,打印子程序:输出,MOV DX,280H OUT DX,AL ;送出数据 MOV DX,283H MOV AL,

15、00000000B OUT DX,AL ; STB=0(低电平宽度o5s) NOP MOV AL,00000001B OUT DX,AL ; STB=1 LOOP NEXT RET PRINT ENDP,9.3 键盘、显示器及其接口,键盘、显示器是微机系统最常使用的输入、输出设备 小键盘:适用于单板机或以微处理器为基础的仪器,实现数据、地址、命令及指令等的输入 独立键盘:通过5芯电缆与PC微机主机连接 发光二极管LED: 是最简单的显示设备,9.3.1. 概述,9.3.2 键盘识别原理,最简单的线性结构键盘 每一个引脚连接一个键 输入0/1反映键是否高低,9.3.2 键盘识别原理,常用的矩阵结

16、构键盘 每行连接一个引脚 每列连接一个引脚 利用控制线为低、读取检测线来识别闭合键,1. 扫描法,先使第0行接低电平,其余行为高电平,然后看第0行是否有键闭合(通过检查列线电位实现) 此后,再将第1行接地,然后检测列线是否有变为低电位的线。如此往下一行一行地扫描,直到最后一行 在扫描过程中,当发现某一行有键闭合时,便在扫描中途退出 通过组合行线和列线可识别此刻按下的是哪一键,第1段:是否有键按下,key1:mov al,00 mov dx,rowport out dx,al;使所有行线为低电平 mov dx,colport in al,dx;读取列值 cmp al,0ffh ;判定是否有列线为

17、低电平 jz key1;无闭合键,循环等待 call delay;有,延迟20ms清除抖动,键盘扫描程序,第2段:识别按键(扫描),mov cx,8;行数送CX mov ah,0feh;扫描初值送AH key2:mov al,ah mov dx,rowport out dx,al;输出行值(扫描值) mov dx,colport in al,dx;读进列值,键盘扫描程序,第2段:识别按键(判断),cmp al,0ffh ;判断有无低电平的列线 jnz key3;有,则转下一步处理 rol ah,1;无,则移位扫描值 loop key2;准备下一行扫描 jmp key1 ;所有行都没有键按下,则

18、返回继续检测 key3: ;此时,al列值,ah行值,键盘扫描程序,第4段:等待按键释放,key4:mov al,di;获取键代码送AL ;判断按键是否释放,没有则等待 call delay ;按键释放,延时消除抖动 ;后续处理,键盘扫描程序,3. 抖动和重键问题,机械按键存在抖动现象 当按下或释放一个键时,往往会出现按键在闭合位置和断开位置之间跳几下才稳定到闭合状态 抖动的持续时间通常不大于10ms 采用硬件消抖电路或软件延时方法解决 重键指两个或多个键同时闭合 出现重键时,读取的键值必然出现有一个以上的0 是否给予识别和识别哪一个键,重键问题的处理,简单情况:不予识别,认为是错误的按键 通

19、常情况:只承认先识别出来的键 连锁法:直到所有键都释放后,读入下一个键 巡回法:等被识别的键释放以后,就可以对其他闭合键作识别,而不必等待全部键释放 正常的组合键:都识别出来,9.3.2 键盘识别原理 1. 单个按键的连接与应用,图9-18 单个键输入的电路,功能就是将键的闭合和断开状态用“0”和“1”来表示,然后通过数据总线送到CPU内部进行键的识别。,IN AL,20 H AND AL, 01H,(1)键抖动的处理,IN AL,20H ;读取键状态 AND AL,01H JNZ EXIT ;无键按下,退出键处理程序 CALL Delay ;延时10ms IN AL,20H ;再次读取键状态

20、 AND AL,01H JNZ EXIT ;无键按下,退出键处理程序,(2)单个按键动作的确认,IN AL, 20H ;读取键状态 AND AL, 01H JNZ EXIT ;没有键按下,退出键处理程序 CALL Delay ;延时10ms IN AL, 20H ;再次读取键状态 AND AL, 01H JNZ EXIT ;无键按下,作为误动作退出 L1: IN AL, 20H ;读取键状态 AND AL, 01H ;等待键释放 JZ L1 CALL Delay ;延时10ms IN AL, 20H ;再次读取键状态 AND AL, 01H JZ L1,2. 线性键盘及其接口,图9-20 多键

21、接口电路图,IN AL,20H SHR AL,1;逻辑右移 JNC K0;转键K0的处理程序 SHR AL,1 JNC K1 SHR AL,1 JNC K2 SHR AL,1 JNC K3,3.矩阵键盘及其接口,n行m列矩阵键盘,输入/输出线为nm,最大按键数为nm。,(1)检测是否有键按下 CPU输出行线全部为“0”,读列线的值,若全为“1”,无键按下;若不全为“1”,则有键按下。 (2)去除键的机械抖动 (3)确定被按下的键所在的行与列的位置 采用逐行扫描法 确定键值的方法 N=行首键号+列号,键处理程序流程,8255A的端口地址为00H(端口A)、02H(端口B)、04H(端口C)和06

22、H(控制口),键处理的程序如下:,MOV AL, 82H OUT 06H, AL ;8255A初始化,方式0,A口输出,B口输入 MOV AL, 00H OUT 00H, AL ;使各行线接地(为零电平) LOP1: IN AL, 02H ;读列线状态 AND AL, 0FH ;屏蔽无用位,保留列线位 CAM AL, 0FH ;查找列线为零电平 JZ LOP1;没有则继续查列线状态,等待键按下识别按下的键 MOV BL, 3 ;行数送BL MOV BH, 4 ;列数送BH MOV AL, 11111110B;起始扫描码,第1次使行线0接地 MOV CL, 0FH ;设置屏蔽码 MOV CH,

23、0FFH ;取键号初值为FFH,LOP2: OUT 00H, AL ;逐行扫描 ROL AL ;修改扫描码,准备扫描下一行 MOV AH, AL ;扫描码送AH保存 IN AL, 02H ;读列线数据 AND AL, CL ;屏蔽无用位,保留列线位 CMP AL, CL ;查找列线接地 JNZ LOP3 ;有,转去找该列线 ADD CH, BH;没有则修改键号,以便适合下一行 MOV AL, AH ;扫描码送AL DEC BL ;行数减1 JNZ LOP2 ;未扫描完,转下一行 JMP BEGIN,LOP3: INC CH ;键号加1 RCR AL ;带进位循环右移一位 JC LOP3;C=1

24、,说明该列未接地,转去检查下一列线 MOV AL, CH ;是,键号送AL CMP AL, 0 ;查找0号键 JZ KEY0 ;转0号键处理程序 CMP AL, 1 ;查找1号键 JZ KEY1 ;转1号键处理 CMP AL, 0BH;查找B号键 JZ KEYB ;转B号键处理,9.3.3 LED显示器及其接口,发光二极管LED是最简单的显示设备 由7段LED就可以组成的LED数码管 LED数码管广泛用于单板微型机、微型机控制系统及数字化仪器中 LED数码管可以显示内存地址和数据等,1. LED数码管的工作原理,主要部分是7段发光管 顺时针分别称为a、b、c、d、e、f、g 有的产品还附带有一

25、个小数点h 通过7个发光段的不同组合 主要显示09 也可显示AF(16进制数) 还可显示个别特殊字符:、P,LED数码管的结构,共阳极,共阴极,2. 单个LED数码管的显示,单个数码管的显示,LEDtbdb 3fh,06h,5bh,;显示代码表 mov al,1;AL要显示的数字 mov bx,offset LEDtb xlat ;换码:ALDS:BXAL mov dx,port out dx,al;输出显示,软件译码,3. 多个LED数码管的显示,8个数码管:用2个8位输出端口控制 硬件上用公用的驱动电路来驱动各数码管 软件上用扫描方法实现数码显示,位控制端口电路,位控制端口作用,控制哪个(位)数码管显示 当位控制端口的控制码某位为低电平时,经反相驱动,便在相应数码管的阳极加上了高电平,这个数码管就可以显示数据,位控制:Di0,相应位发光,段控制端口电路,D0 D1

温馨提示

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

评论

0/150

提交评论