《第八章常用可编程接口芯片及其应用教材课件.ppt》由会员分享,可在线阅读,更多相关《第八章常用可编程接口芯片及其应用教材课件.ppt(63页珍藏版)》请在三一办公上搜索。
1、第八章 常用可编程接口芯片及其应用,8.1 概述通信:计算机与外设之间或计算机与计算 机之间的信息交换或数据传输。通信的两种基本方式,并行通信串行通信,一、并行通信与并行接口,1、并行通信 将数据的各位同时在多根并行传输线上进行传输。,数据的各位同时由源到达目的地 快多根数据线 距离短、远程费用高,并行通信适于短距离、高速通信,并行接口的典型硬件结构包括:1、一个或一个以上具有锁存或缓冲的数据端口2、与CPU进行数据交换所必须的控制和状态信号3、与外设进行数据交换所必须的控制和状态信号4、端口译码电路5、控制电路,1、串行通信 将数据的各位按时间顺序依次在一根传输线上传输。,数据的各位依次由源
2、到达目的地 慢数据线少 远程,费用低,串行通信适于长距离、中低速通信,二、串行通信与串行接口,2、串行接口,能够完成串行通信任务的接口功能:1、接受并行数据转换为一定格式的串行数据送出;2、接收串行数据流,并将其转换为并行数据输入。串行接口的典型硬件结构包括 除了包括并行接口芯片所具有端口及控制电路之外,还有串入并出、并入串出移位寄存器。,8.2 可编程并行通信接口芯片8255A,一、8255A的编程结构及引脚功能二、CPU与8255A的接口三、8255A的初始化编程四、8255A三种工作方式及应用五、键盘和显示接口,数据总线缓冲器,内部控制线,内部数据线,D0D7,A组控制,A组端口A,A组
3、端口C上部,B组控制,B组端口C下部,B组端口B,读写控制逻辑,PC0PC3,PB0PB7,PC4PC7,PA0PA7,RDWRA0A1CSRESET,一、8255A的编程结构及引脚功能,VccGND,外部引线 D0-D7为双向数据信号线,用来传送数据和控制字。为读信号线,与其他信号线一起实现对8255接口的读操作。为写信号线,与其他信号一起实现对8255的写操作。为片选信号线,当它为低电平(有效)时,才能选中该8255芯片,也才能对8255进行操作。,RD,WR,CS,A0,A1为口地址选择信号线。RESET为复位输入信号。PA0-PA7 为A口的输入输出信号线。PB0-PB7 为B口的输入
4、输出信号线。PC0-PC7 8条线根据其工作方式可作为数据的输入或输出线,也可以用作控制信号的输出或状态信号的输入线。,CS、A1、A0、RD、WR逻辑关系表,二、CPU与8255A的接口,A口 B口 C口 控制口端口地址:1110110000B、3B2H、3B4H、3B6H,三、8255A初始化编程,8255A的控制字8255A方式选择控制字,方式选择控制字置位复位控制字(对C口任一位),置位复位控制字,四、8255A三种工作方式及应用,8255A有三种工作方式,用户可以通过编程来设置。方式0简单输入/输出方式;A,B,C三个端口均可。方式1选通输入/输出方式;A,B,两个端口均可。方式2双
5、向输入/输出方式。只有A端口才有。工作方式的选择可通过向控制端口写入控制字来实现。,1、方式0(基本输入/输出方式),它适用于不需要应答信号的简单输入输出场合,若需要联络时,可自定义C口为联络信号。构成3个8位端口,或2个4位、2个8位端口,以适应不同应用场合。例1:设某8086系统中连接一片8255A,8255A的A口接拨码盘,B口接共阴数码管,设计程序段使数码管显示拨码盘的数字。,控制字:10010000B,设端口地址为3B0H、3B2H、3B4H、3B6H,DATA SEGMENT TAB1 DB 3FH,06H,5BH,4FH,66H,6DH 7DH,07H DB 7FH,6FH,77
6、H,7CH,39H,5EH,79H,71HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX XOR AX,AX MOV DX,3B6H MOV AL,90H OUT DX,ALADDR:MOV DX,3B0H IN AL,DX AND AL,0FH MOV BX,OFFSET TAB1,ADD BX,AXMOV AL,BXMOV DX,3B2HOUT DX,ALJMP ADDRMOV AH,4CHINT 21HCODE ENDS END START,8255与打印机的连接,例2:用8255A作为CPU
7、与打印机接口,8255A与打印机及CPU的连线如下图所示。试编写一程序,用查询方式将BLOCK中100个字节数据送打印机打印。假设控制口地址为030EH。,打印机的工作时序,D0D7,START:MOV DX,030EH MOV AL,10000011B OUT DX,AL MOV AL,00001101B OUT DX,AL PRINT:MOV CX,100 MOV SI,OFFSET BLOCK GOON:MOV DX,030CHPWAIT:IN AL,DX AND AL,01H JNZ PWAIT;等待不忙,MOV AL,SI MOV DX,0308H OUT DX,AL;送数据 MOV
8、 DX,030CH MOV AL,00H OUT DX,AL MOV AL,40H OUT DX,AL;送 脉冲 INC SI DEC CX JNZ GOON,2、方式1(选通输入/输出方式),A口输入 B口输入,对方式1输入的端口,C口提供与外部联络的信号有:STB 选通信号(低电平有效)由外设发出,送给8255A,作用是将外设送来的数据锁存到8255A的输入端口。IBF 输入缓冲器满信号(高电平有效)8255A 发出,表示外设送来的数据已进入输入端口。当外设送来的数据送入输入端口后,8255A自动发出。INTR 中断申请信号(高电平或上升沿有效)8255A 发出,用来向CPU发出中断申请。
9、STB、IBF、INTE均为时,8255A自动发出INTR。注意:INTE无引出端,设计规定由软件对PC4或对PC2置1触发中断允许触发器。,方式1输入信号时序图,A口输出 B口输出,对方式1输出的端口,C口提供与外部联络的信号有:OBF 输出缓冲器满信号(低电平有效)当数据送至8255A输出缓冲器后,8255A自动发出。表示CPU送来的数据已进入8255A输出端口,可用来通知外设把数据取走。ACK 外设响应信号(低电平有效)由外设发出,送给8255A。作用是通知 8255A输出端口的数据已被外设取走,可以传送下一个数据。INTR 中断申请信号(高电平或上升沿有效)8255A 发出,用来向CP
10、U发出中断申请。当OBF、ACK、INTE均为时,8255A自动发出INTR。,方式1输出时信号时序图,例3:利用8255A方式1驱动打印机,把缓冲区BUFF中的400H个字节的ASC码送打印机打印。设端口地址分别为60H、62H、64H、66H。,PA PC7 PC6 PC4,D0D7STBACKBUSY,控制字:10101000B,MOV CX,400H MOV AL,0A8H OUT 66H,AL MOV DI,OFFSET BUFFROT1:MOV AL,DI OUT 60H,ALROT2:IN AL,64H TEST AL,10H JNZ ROT2 INC DI LOOP ROT1,
11、3、方式2(双向传送方式),PA7PA0,ACKA,RD,STBA,INTEA1PC4,INTEA2PC6,与门,PC3,INTRA,或门,与门,工作在方式2时,C口有5根引脚作为A口的联络信号,是方式1下A口输入、输出联络信号的组合。,(选学内容)五、键盘和显示接口,1、LED数码显示接口(8段)LED数码管分共阴LED和共阳LED,发光时通过的平均电流为10mA 20mA、电压为1.5V,实际使用时要加驱动及限流。显示方式,静态显示 各数码管能稳定地同时显示各自字符。动态显示 各数码管轮流地一遍一遍显示各自字 符,人们因视觉器官惰性而看到的是 各数码管似乎在同时显示不同字型。,D0D1D2
12、D3D4D5D6D7,位0,a b c d e f g h,位1,位2,同相驱动器,PB2 PB1 PB0 8255A PA,共阴,动态显示接口,静态显示接口,2、键盘及其接口,键盘 键盘是一组开关的集合,是微型计算机不可缺少的输入设备,人们通过它往计算机传递信息。一般性问题 检测是否有键按下;若有键按下,判定是哪一个键;确定被按键的读数;去抖动;不管一次按键持续的时间有多长,仅采用一个数据;处理同时按键。,键盘工作原理,键盘可以分为独立连接式和矩阵式,独立连接式也称为线性结构键盘,是最简单的键盘。每一个引脚连接一个键输入0/1反映健是否高低,+5V,+5V,控制线,检测线,常用的矩阵结构键盘
13、每行连接一个引脚每列连接一个引脚利用控制线为低、读取检测线来识别闭合键,键盘接口及键的识别,为了识别键盘上的闭合键,通常采用两种方法,一种为行扫描法,另一种称为行反转法。行扫描法,PA0PA1PA2PA3PB0PB1PB2PB3,10k4,5V,原理:CPU每次使并行输出端口的某位为零,而其它位为1,然后CPU只要读取输入端口中的数据,就可判别。,0 1 2,C,行反转法,5V,PA0PA1PA2PA3PB0PB1PB2PB3,10k8,原理:第一步设A口输出B口输入A口输出全0值,然后从B口读入;第二步设A口输入B口输出将B口刚读入的值输出,再从A口读入,9,0,抖动和重健问题机械按键的抖动
14、现象,抖动的持续时间随操作员而异,通常总是不大于10ms,用软件方法可以很容易地解决抖动问题,这就是通过延迟来等待抖动消失,这之后再读入键码。另外还可使用硬件消抖电路。,硬件消抖电路,重键问题,重键指两个或多个键同时闭合出现重键时,读取的键值必然出现有一个以上的0,是否给予识别和识别哪一个键 简单情况:不予识别,认为是错误的按键 通常情况:只承认先识别出来的键连锁法:直到所有键都释放后,读入下一个键巡回法:等被识别的键释放以后,就可以对其他闭合键作识别,而不必等待全部键释放 正常的组合键:都识别出来,定时功能的实现方法,软件定时(延时)利用微处理器执行一个延时程序段实现硬件定时采用分频器、单稳
15、电路或简易定时电路控制定时时间可编程硬件定时软件硬件相结合、用可编程定时器芯片构成一个方便灵活的定时电路,8.3 8253可编程定时器/计数器,一、8253的结构及引脚功能,3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数可用于准确计数或精确定时,1、内部结构,计数器,CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号 定时时间=时钟周期计数初值,读/写逻辑,D0 D7
16、数据线A0 A1地址线RD读信号WR写信号CS片选信号,2、8253引脚及与CPU的连接,计0 计1 计2 控制口端口地址:10011000B、9AH、9CH、9EH,二、8253的工作方式,*方式0 计数结束中断,方式1 单稳负脉冲信号发生器,*方式2 速率信号发生器(分频器),*方式3 方波发生器,方式4 软件触发选通信号,方式5 硬件触发选通信号,特征,上升沿触发初始高电平计数到“0”OUT由高变低,维持一个CLK周期,需要注意:处理器写入8253的计数初值只是写入了预置寄存器,之后到来的第一个CLK输入脉冲(需先由低变高,再由高变低)才将预置寄存器的初值送到减1计数器。从第二个CLK信
17、号的下降沿,计数器才真正开始减1计数。,三、8253的编程方法,1、控制字,SC1 SC0 RL1 RL0 M2 M1 M0 BCD,00 计001 计110 计211 无操作,00 锁存01 读/写低8位读/写高8位11 读/写先低后高,0 0 0 方式00 0 1 方式11 0 方式21 1 方式31 0 0 方式41 0 1 方式5,0 二进制计数1 十进制计数,2、初始化编程,步骤:写入控制字 可使计数通道复位写入计数初值,选择二进制时计数值范围:0000HFFFFH0000H是最大值,代表65536 选择十进制时(BCD码)计数值范围:000099990000是最大值,代表10000
18、,3、读取8253计数值,对8位数据线,读取16位计数值需分两次读取方法 1.直接读取 2.锁存读取 计数在不断进行,应该将当前计数值先行锁存,然后读取:写控制字:给8253写入锁存命令从计数器I/O地址读出:读取锁存的计数值,四、8253应用,例1:某8086系统中,有一片8253芯片,利用通道1完成对外部事件的计数,计满500次,向CPU发出中断请求,利用通道2输出频率为1KHz的方波。编写初始化程序。通道1:方式0 控制字 01110001B 计数初值 500通道2:方式3 CLK2=1.19MHz 控制字 10110111B 计数初值=1190,设端口地址为98H、9AH、9CH、9E
19、H 十进制计数 MOV AL,71H OUT 9EH,AL MOV AL,00H OUT 9AH,AL MOV AL,05H OUT 9AH,AL MOV AL,0B7H OUT 9EH,AL MOV AL,90H OUT 9CH,AL MOV AL,11H OUT 9CH,AL,二进制计数 MOV AL,10110110B OUT 9EH,AL MOV AX,1190 OUT 9CH,AL MOV AL,AH OUT 9CH,AL,例2:有信号源频率为1MHz,现要分频使之产生周期为4s的方波,点亮发光二极管工作,编程实现。,10101000B、AAH、ACH、AEH,5V,1MHZ,1KHz,因此采用通道连接,如上图所示,因为,通道0 方式3 控制字 00100111B通道1 方式3 控制字 01100111B,MOV AL,27H OUT 0AEH,AL MOV AL,10H OUT 0A8H,AL MOV AL,67H OUT 0AEH,AL MOV AL,40H OUT 0AAH,AL,