版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第六六章章 I/O接口和并行接口芯片接口和并行接口芯片8255A主要内容主要内容I/O接口的基本概念接口的基本概念CPU与与I/O的控制方式的控制方式并行接口芯片并行接口芯片8255A6.1 输入输出接口输入输出接口主要内容:主要内容: I/O接口与接口与I/O端口的概念端口的概念 I/O端口的编址方式端口的编址方式 I/O端口的地址译码端口的地址译码 I/O数据的传送方式数据的传送方式一、一、I/O接口与端口接口与端口I/O接口(接口(Interface):): 将外设连接到总线上的一组逻辑电路的总称将外设连接到总线上的一组逻辑电路的总称 实现外设与主机之间的实现外设与主机之间的信息交换信
2、息交换I/O端口(端口(Port):): 接口中的寄存器(数据端口、控制端口、状态接口中的寄存器(数据端口、控制端口、状态端口)端口)2022-5-17接口举例接口举例: :显示卡接口总线接口串行接口并行接口USB接口键盘接口硬盘接口I/O接口的基本结构接口的基本结构 CPUI/O设备设备译码数据端口状态端口控制端口DBABCBI/O接口接口CPU与外设之间的信息与外设之间的信息CPU数据数据状态状态控制控制外设外设D0-DnReady、BusyStart、STBI/O接口接口I/O接口要解决的问题接口要解决的问题 速度不匹配速度不匹配 信号电平不匹配信号电平不匹配 信息格式不匹配信息格式不匹
3、配 时序不匹配时序不匹配 信号的驱动能力信号的驱动能力I/O接口的功能接口的功能 设置设置数据缓冲以解决两者速度差异数据缓冲以解决两者速度差异 设置设置信号电平转换电路信号电平转换电路 设置信息转换逻辑以满足对各自格式的要求设置信息转换逻辑以满足对各自格式的要求 设置时序控制电路来同步设置时序控制电路来同步CPU和外设的工作和外设的工作 提供地址译码电路提供地址译码电路 提供联络信号提供联络信号 最好是可编程控制最好是可编程控制二、二、I/O端口的编址方式端口的编址方式数据端口数据端口状态端口状态端口控制端口控制端口端端 口口控制端口控制端口1、端口与内存统一编址(存储器映象)、端口与内存统一
4、编址(存储器映象)特点:特点: 指令及控制信号统指令及控制信号统一,无需专门指令一,无需专门指令 内存地址资源减少内存地址资源减少 无法区分是对内存无法区分是对内存还是对还是对I/O操作操作MC6800、MCS-51内存内存地址地址960KBI/O地址地址64KB00000HF0000HFFFFFH2、端口独立编址(、端口独立编址(I/O映象)映象)特点:特点: 内存地址资源充内存地址资源充分利用分利用 需专门的访问端需专门的访问端口的指令:口的指令:IN、OUT80X86、Z80系列系列内存内存地址地址I/O地址地址00000HFFFFFHFFFFH0000H8086与存储器及与存储器及I/
5、O端口连接相关信号线端口连接相关信号线RD、WR、M/IO、A19-A08 80 08 86 6总总线线A19-A0A15-A0MEMR、MEMWIOR、IOW 、ALE存储器存储器输入输入/输出输出8086的的I/O端口编址端口编址 采用采用I/O独立编址方式独立编址方式(但地址线与存储器共用但地址线与存储器共用) 地址线上的地址信号用地址线上的地址信号用M/IO来区分来区分 I/O操作只使用操作只使用20根地址线中的根地址线中的16根:根:A15A0 可寻址的可寻址的I/O端口数为端口数为64K(65536)个个 I/O地址范围为地址范围为0FFFFH IBM PC只使用了只使用了1024
6、个个I/O地址地址(03FFH),其中其中0 FF为直接寻址范围。为直接寻址范围。三、三、I/O地址的译码地址的译码目的目的: 确定端口的地址参加译码的信号参加译码的信号: IOR、IOW、A15 A0 OUT指令将使总线的IOW信号有效 IN指令将使总线的IOR信号有效I/O地址的译码地址的译码 当接口只有一个端口时,当接口只有一个端口时,16位地址线位地址线一般一般应应全全部参与译码,译码输出直接选择该端口;当接部参与译码,译码输出直接选择该端口;当接口具有多个端口时,则口具有多个端口时,则16位地址线的高位位地址线的高位参与参与译码(决定接口的基地址),而低位则用于确译码(决定接口的基地
7、址),而低位则用于确定要访问哪一个端口。定要访问哪一个端口。 A Y0 B Y1 C Y2 Y3 Y4G2B Y5 G2A Y6 G1 Y7A5A6A874LS138A7A9AENPPICST/C CSINTRCSDMACSIOWWRTDMAPG(写写DMA页面寄存器页面寄存器)WRTNMIREG(写(写NMI屏蔽寄存器)屏蔽寄存器)IBM PC/XT 片选信号的产生片选信号的产生(8237)(8259A)(8253)(8255A)IBM PC/XT 系统板系统板I/O端口地址分配端口地址分配地址空间地址空间器件器件/接口适配器接口适配器实际使用端口地址实际使用端口地址0000001FHDMA
8、控制器控制器8237000FH0020003FH中断控制器中断控制器8259A2021H0040005FH计数器计数器/定时器定时器82534043H0060007FH并行接口片并行接口片8255A6063H0080009FHDMA页面寄存器(页面寄存器(74LS670)8083H00A000BFHNMI寄存器寄存器A0H00C000FFH未用未用扩展槽扩展槽I/O端口地址分配端口地址分配地址空间地址空间器件器件/接口适配器接口适配器地址空间地址空间器件器件/接口适配器接口适配器20020FH游戏卡游戏卡38038FHSDLC通信卡通信卡210217H扩充部件扩充部件3903AFH未用未用21
9、82F7H未用未用3B03BFH单显单显/打印卡打印卡2F82FFH异步通信卡异步通信卡(COM2) 3C03CFH未用未用30031FH未用未用3D03DFH彩显彩显/图形卡图形卡32032FH硬盘卡硬盘卡3E03EFH未用未用330377H未用未用3F03F7H软盘卡软盘卡37837FH打印卡打印卡3F83FFH异步通信卡异步通信卡(COM1)四、四、I/O数据的传送方式数据的传送方式1、并行传送方式并行传送方式: 同一时刻传送多位数据。优点:传送速度快、效率高。缺点:传输距离短(成本、线间干扰)2、串行传送方式串行传送方式:将数据一位一位地传送。优点:传输线少,成本较低。适合于远距离传输
10、。缺点:传送速度慢。 3、并行接口与串行接口、并行接口与串行接口CPU接口外设.CPU接口外设并行串行速度快,成本高适合近距离速度慢,成本低适合长距离并口串口6.2 简单的输入输出接口芯片简单的输入输出接口芯片掌握:掌握: 接口电路的分类及特点接口电路的分类及特点 两类简单接口芯片的应用两类简单接口芯片的应用一、接口的基本构成一、接口的基本构成数据线数据线控制线控制线状态线状态线DBCBAB数据输入寄存器数据输入寄存器(or 三态门三态门)数据输出寄存器数据输出寄存器(锁存器锁存器)状态寄存器状态寄存器(or 三态门三态门)命令寄存器命令寄存器译码译码电路电路控制控制逻辑逻辑二、接口的类型及特
11、点二、接口的类型及特点输入接口输入接口输出接口输出接口接接 口口接口特点接口特点输入接口:输入接口: 要求对数据具有控制能力(常用三态门要求对数据具有控制能力(常用三态门实现)实现)输出接口:输出接口: 要求对数据具有锁存能力(常用锁存器要求对数据具有锁存能力(常用锁存器实现)实现)三、三态门接口三、三态门接口高电平、低电平、高电平、低电平、高阻态高阻态导通导通高阻高阻三态门接口三态门接口三态门的工作波形:三态门的工作波形:A0A15IOR译码输出译码输出D0D7开关状态开关状态地址有效地址有效74LS244(单向数据驱动器)(单向数据驱动器) 74LS244逻辑功能和引脚图见教材逻辑功能和引
12、脚图见教材P241 含含8个三态门的集成电路芯片个三态门的集成电路芯片 分两组,分两组,1G控制控制1A1-1A4,2G控制控制2A1-2A4 在外设具有数据保持能力时用作输入接口在外设具有数据保持能力时用作输入接口 为单向数据缓冲器,常用作地址驱动。为单向数据缓冲器,常用作地址驱动。74LS245(双向数据总线缓冲器)(双向数据总线缓冲器) 74LS245逻辑功能和引脚图见教材逻辑功能和引脚图见教材P242 含含8个三态门的集成电路芯片个三态门的集成电路芯片 除门控信号除门控信号G外,有一方向控制端外,有一方向控制端DIR DIR=1,An Bn(n=18) DIR=0,反方向传递,反方向传
13、递 常用于数据的双向传送、缓冲和驱动常用于数据的双向传送、缓冲和驱动三态门接口应用例三态门接口应用例D0D7A0A12WEOEREADY/BUSYA0A12MEMWMEMR高位地高位地址信号址信号D0D7D0380HCE译码译码IOR74LS373(锁存器)(锁存器) 逻辑图和真值表见逻辑图和真值表见P243 由由D触发器构成触发器构成 可直接挂到总线上可直接挂到总线上 具有对数据的锁存能力具有对数据的锁存能力 具有三态总线驱动能力具有三态总线驱动能力74LS373真值表真值表OEGDQLHLLLHHHLLX锁存HXX高阻态锁存器芯片锁存器芯片74LS373D0D7Q0Q7.OECP译码器译码
14、器Q0Q7D0D7.OECP译码器译码器做输出口做输出口:做输入口做输入口:外外设设自外设自外设6.3 CPU与与I/O的控制方式的控制方式无条件传送无条件传送查询式传送查询式传送中断方式传送中断方式传送直接存储器存取直接存储器存取(DMA)方式方式程序控制方式程序控制方式一、无条件传送一、无条件传送 适用于总是处于准备好状态的外设适用于总是处于准备好状态的外设 优点:软件及接口硬件简单优点:软件及接口硬件简单 缺点:只适用于简单外设,适应范围较缺点:只适用于简单外设,适应范围较 窄窄无条件传送例无条件传送例 读取开关的状态读取开关的状态 当开关闭合时,输出发光二极管亮当开关闭合时,输出发光二
15、极管亮 程序段:程序段: MOV DX,38F0H IN AL,DX MOV DX,38F3H OUT DX,AL DCPQD0D0输出口地输出口地址址38F3H输入口地输入口地址址38F0H+5V1K74LS06二、查询工作方式二、查询工作方式适用场合:适用场合: 外设并不总是准备好外设并不总是准备好 对传送速率和效率要求不高对传送速率和效率要求不高对外设及接口的要求:对外设及接口的要求: 外设应提供设备状态信息外设应提供设备状态信息 接口应具备状态端口接口应具备状态端口查询工作方式查询工作方式 优点:软件比较简单优点:软件比较简单 缺点:缺点:CPU效率低,数据传送的实时性效率低,数据传送
16、的实时性 差,速度较慢差,速度较慢准备好?准备好?读取状态信息读取状态信息输入数据输入数据是是否否 查询式输入程序流程图查询式输入程序流程图忙?忙?读取状态信息读取状态信息输出数据输出数据否否是是 查询式输出程序流程图查询式输出程序流程图查询工作方式例查询工作方式例外设状态端口地址为外设状态端口地址为03FBH,第,第5位位(bit5)为状态为状态标志(标志(=1忙,忙,=0准备好)准备好)外设数据端口地址为外设数据端口地址为03F8H,写入数据会使状态,写入数据会使状态标志置标志置1 ;外设把数据读走后又把它置;外设把数据读走后又把它置0。试画出其电路图,并将试画出其电路图,并将DATA下下
17、100B数输出数输出D5D7-D0A9|A31&A15|A101IOWD7-D03F8H外外设设D7D6D5D4D3D2D1D0BUSYCPQ7Q6Q5Q4Q3Q2Q1Q0状态端口状态端口GG2AG2BCBAA2A1A074LS138Y01IORY3OE74LS3743FBH程序段?程序段?三、中断控制方式三、中断控制方式特点:特点: 外设在需要时向外设在需要时向CPU提出请求,提出请求,CPU再去为它再去为它服务。服务结束后或在外设不需要时,服务。服务结束后或在外设不需要时,CPU可可执行自己的程序执行自己的程序 优点:优点:CPU效率高,实时性好,速度快效率高,实时性好,速度快 缺
18、点:程序编制较为复杂缺点:程序编制较为复杂 要有中断控制电路,硬件电路复杂要有中断控制电路,硬件电路复杂以上三种以上三种I/O方式的共性方式的共性均需均需CPU作为中介:作为中介: 软件:软件: 外设与内存之间的数据传送是通过外设与内存之间的数据传送是通过CPU执行执行 程序来完成的(程序来完成的(PIO方式)方式) 硬件:硬件: I/O接口和存储器的读写控制信号、地址信号接口和存储器的读写控制信号、地址信号 都是由都是由CPU发出的发出的 缺点:程序的执行速度限定了传送的最大速度(约缺点:程序的执行速度限定了传送的最大速度(约 为几十为几十KB/s)四、四、DMA控制方式控制方式特点:特点:
19、 外设直接与存储器进行数据交换外设直接与存储器进行数据交换 ,CPU不再担当数据传输的中介者不再担当数据传输的中介者 总线由总线由DMA控制器(控制器(DMAC)进行控制)进行控制(CPU要放弃总线控制权),内存要放弃总线控制权),内存/外设外设的地址和读写控制信号均由的地址和读写控制信号均由DMAC提供提供DMA控制方式控制方式DMAC外设外设接口接口CPUQRDMEMDACKHOLDHLDABUS控制信号控制信号CPU外设外设存储器存储器总线总线两种不同的数据传送路径两种不同的数据传送路径DMA控制方式的工作过程控制方式的工作过程 外设向外设向DMA控制器发出控制器发出“DMA传送请求传送
20、请求”信信号号DRQ DMA控制器收到请求后,向控制器收到请求后,向CPU发出发出“总线总线请求请求”信号信号HOLD CPU在完成当前总线周期后会立即发出在完成当前总线周期后会立即发出HLDA 信号,对信号,对HOLD信号进行响应信号进行响应 DMA控制器收到控制器收到HLDA信号后,就开始控制总信号后,就开始控制总线,并向外设发出线,并向外设发出DMA响应信号响应信号DACKDMA控制方式的工作过程控制方式的工作过程 DMA控制器送出地址信号和相应的控制信号,控制器送出地址信号和相应的控制信号,实现外设与内存或内存与内存之间的直接数据实现外设与内存或内存与内存之间的直接数据传送传送例:从外
21、设向内存传送一个字节例:从外设向内存传送一个字节 DMAC向向I/O接口发出读信号,同时往地址总接口发出读信号,同时往地址总线上发出存储器的地址和存储器写信号和线上发出存储器的地址和存储器写信号和AEN信号。信号。DMA控制方式的工作过程控制方式的工作过程 DMA控制器自动修改地址和字节计数器,控制器自动修改地址和字节计数器,并判断是否需要重复传送操作。当规定的并判断是否需要重复传送操作。当规定的数据传送完后,数据传送完后,DMA控制器就撤销发往控制器就撤销发往CPU的的HOLD信号。信号。CPU检测到检测到HOLD失效失效后,紧接着撤销后,紧接着撤销HLDA信号,并在下一时钟信号,并在下一时
22、钟周期重新开始控制总线。周期重新开始控制总线。DMA控制方式控制方式优点:优点: 数据传输数据传输由由DMA硬件来控制,数据硬件来控制,数据直接直接在内存和外设之间交换,可以达到很高在内存和外设之间交换,可以达到很高的传输速率(可达几的传输速率(可达几MB/s)9.3.3 8255A工作方式 1. 方式0基本输入输出 在方式0下,每一个端口都作为基本的输入或输出口,端口C口的高4位和低4位以及端口A口、端口B都可独立地设置为输入口或输出口。 CPU可以随时对它们进行读或写。 PA口可工作于方式0、方式1、方式2; PB口可工作于方式0、方式1; PC口只能工作于方式0。 2. 2. 方式方式1
23、 1选通输入输出选通输入输出 方式1下三个端口分为A、B两组,端口A、端口B仍作为输入或输出口,端口C分成两部分,一部分作为端口A和端口B的联络信号,另一部分仍可作为基本的输入输出口。(1)方式1输入 信号说明: (Strobe):选通输入,低电平有效。该信号有效时,输入数据被送入锁存端口A或端口B的输入锁存器/缓冲器中。 IBF(Input Buffer Full):输入缓冲器满。当外设把数据写入端口,IBF变为1。 INTR:中断请求信号,高电平有效。当IBF变为1且INTE=1时,INTR变为高电平。当CPU取数据, 的下降沿使INTR复位,上升沿又使IBF复位 。 INTE:中断允许信
24、号。端口A用PC4的置位/复位控制,端口B用PC2的置位/复位控制。RDSTB(2)方式1输出 信号说明: (Out Buffer Full):输出缓冲器满。当CPU将数据写入到数据端口, 变0,通知外设可读取。该信号由 的上升沿置为有效。 (Acknowledge):外设的响应信号。由外设发给8255A,有效时,表示外设已取走8255A的端口数据。 8255A收到 后 变为1,且“可能”产生中断。 INTR:中断请求信号,高电平有效。当收到 ,中断允许INTE=1时,INTR变为高电平。INTR信号可作为CPU的查询信号,或作为向CPU发出中断请求的信号。 的下降沿使INTR复位。 INTE
25、:中断允许信号。端口A用PC6的置位/复位控制,端口B用PC2的置位/复位控制。 OBFACKWROBFACKOBFACKWR3.方式2双向选通输入输出 8255A的方式2可使8255A与外设进行双向通信,既能发送数据,又能接收数据。可采用查询方式和中断方式进行传输。 方式2只适用于端口A ,端口C的PC7PC3配合端口A的传输,其联络信号如图所示。 8255A方式2的控制信号和时序 :9.3.4 8255A应用 【例题9.4】扫描键盘按键,并保存相应键值,硬件如图所示。设8255A的端口地址为300H303H,接收100个按键后结束。 分析:检测键盘输入过程如下:PC4PC7送全“0”,再读
26、取PC0PC3,若全为“1”,则表示无键闭合。若有键闭合,则进行键扫描。键扫描方法如下:使PC4为0,PC5PC7为高电平,读取PC0PC3,如果是全“1”,表示该列无键闭合;否则闭合键在该列上,再进一步判断读取的数据中哪一位为“0”,从而确定闭合键。若该列无键闭合,则依次使PC5,PC6,PC7进行上述操作。 在键盘设计时,除了对键码识别外,还有抖动和重键两个问题需要解决。 对机械按键就是当用手按下一个键时,往往会出现按键在闭合和断开位置位置之间跳几下才稳定到闭合状态的情况;在释放一个键时,也会出现类似的情况,这就是抖动。抖动持续时间一般为10ms左右。利用硬件,也可通过软件延时来消除抖动。
27、 所谓重键就是指两个或多个键同时闭合。通常情况,则是只承认先识别出来的键,对同时按下的其它键均不作识别,直到所有键都释放以后,才读下一个键。 DATA SEGMENT BUFFER DB 100 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX LEA SI,BUFFER MOV CL,100 ;初始化按键次数 MOV AL,81H ;8255A控制字 MOV DX,303H OUT DX,AL ;8255A初始化 KS1: CALL KS ;读取按键 CMP AL,0FH ;判有无键
28、闭合 JZ KS1 ;无键闭合,循环等待 CALL DELAY ;延时12ms,消除抖动 CALL KS CMP AL,0FH ;再次判有无键闭合 JZ KS1 MOV BL,0EFH ;初始化列码 MOV BH,0 ;初始化列计数器 AGAIN: MOV DX,302H MOV AL,BL OUT DX,AL ;输出列码 IN AL,DX ;读取行码 AND AL,0FH CMP AL,0FH JZ NEXT ;该列无键闭合,准备下一列扫描 CMP AL 0EH ;判该列是否第一个键闭合? JNZ TWO MOV AL,0 JMP FREE TWO: CMP AL,0DH ;判该列是否第二个
29、键闭合? JNZ THREE MOV AL,4 JMP FREE THREE: CMP AL,0BH ;判该列是否第三个键闭合? JNZ FOUR MOV AL,8 JMP FREE FOUR: CMP AL,07H ;判该列是否第四个键闭合? JNZ NEXT MOV AL,0CH FREE: PUSH AX WAIT1: CALL KS CMP AL,0FH JNZ WAIT1 ;键未释放,则等待 POP AX ADD AL,BH ;按键键值扫描键值列计数值 MOV SI,AL ;保存相应按键键值 INC SI DEC CL JZ EXIT ;判是否接收到100个按键? JMP KS1 N
30、EXT:INC BH ;列计数值加1 ROL BL,1 ;列码循环左移一位 CMP BL,0FEH ;判该轮键扫描是否结束? JNZ AGAIN JMP KS1 EXIT:MOV AH,4CH ;返回DOS INT 21H KS PROC NEAR MOV DX,302H MOV AL,0FH OUT DX,AL ;使所有列线为低电平 IN AL,DX ;读取行值 AND AL,0FH ;屏蔽高4位 RET KS ENDP DELAY PROC NEAR ;延时子程序 PUSH BX PUSH CX MOV BX,2000 DEL1:MOV CX,0 DEL2:LOOP DEL2 DEC BX
31、 JNZ DEL1 POP CX POP BX RET DELAY ENDP CODE ENDP END START【例题9.5】试编程实现采用动态扫描方法在LED数码管上显示00009999,硬件图如图所示。设8255A的端口地址为300H303H。共阴极数码管共阴极数码管 LED(Light Emitting Diode)数码管的主要部分是发光二极管,如图所示。这七段发光管按顺时针分别称为a、b、c、d、e、f、g,有的产品还附带小数点h。LED数码管有共阴极和公阳极两种结构。通过7个发光段的不同组合,可显示09和AF以及某些特殊字符。 由于发光二极管发光时,通过的平均电流为10mA20m
32、A,而通常的输出锁存器不能提供这么大的电流,所以LED各段必须接驱动电路。 点亮数码管有静态和动态两种方法。所谓静态显示,就是当数码管显示某一个字符时,相应的发光二极管恒定地导通或截止。这种显示方式每一个数码管都需要有一个8位输出口控制,而当系统中数码管较多时,用静态显示所需的I/O口太多,一般采用动态显示方法。 所谓动态显示就是一位一位地轮流点亮各位数码管(扫描),对于每一位数码管来说,每隔一段时间点亮一次。数码管的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数,可实现亮度较高较稳定的显示。这种显示方法需有两类控制端口,即位控制端口和段控制端口。位控制端口控制哪个
33、数码管显示,段控制端口决定显示代码。此端口所有数码管公用,因此,当CPU输出一个显示代码时,各数码管的输入段都收到此代码。但是,只有位控制码中选中的数码管才得到导通而显示。 DATA SEGMENT OUTBUFF DB 4 DUP(?) LEDTAB DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH COUNT DB 100 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,80H MOV DX,303H OUT DX,AL ;8255A初始化
34、 MOV BX,0 ;初始化显示值字型表 NEXT: LEA SI,OUTBUFF MOV AX,BX ;将显示值转换为十进制数并保存 MOV DX,0 MOV CX,1000 DIV CX MOV SI,AL INC SI MOV AX,DX MOV CL,100 DIV CL MOV SI,AL INC SI MOV AL,AH MOV AH,0 MOV CL,10 DIV CL MOV SI,AL INC SI MOV SI,AH AGAIN:MOV CH,08H ;初始化位选码 LEA SI,OUTBUFF LEDDISP:MOV AL,SI ;取显示值 MOV AH,0 LEA DI
35、,LEDTAB ADD DI,AX MOV AL,DI ;转换为段码 MOV DX,300H OUT DX,AL ;输出段码 MOV DX,302H MOV AL,CH OUT DX,AL ;输出位选码 CALL DELAY ;延时2ms INC SI ROR CH,1 ;指向下一个数码管 CMP CH,80H JNZ LEDDISP ;判该轮是否显示结束? DEC COUNT ;重复显示某数100次,便于看清 JNZ AGAIN MOV COUNT,100 INC BX ;显示数值加1 CMP BX,10000 JZ EXIT JMP NEXT EXIT: MOV AH,4CH ;返回DOS
36、 INT 21H DELAY PROC NEAR ;延时子程序 PUSH BX PUSH CX MOV BX,10 ;初值随不同型号计算机应作调整 DEL1: MOV CX,0 ;初值随不同型号计算机应作调整 DEL2: LOOP DEL2 DEC BX JNZ DEL1 POP CX POP BX RET DELAY ENDP CODE ENDS END START【例题9.6】采用8255A作为与打印机接口的电路,CPU与8255A利用查询方式输出数据,硬件如图所示,试编程实现将若干个字节数据送打印机打印。设8255A的端口地址为90H93H。分析:打印机一般有3个主要信号,BUSY表示打
37、印机是否处于“忙”状态,高电平表示打印机处于忙状态。 为选通信号,低电平有效,该信号有效时,CPU输出的数据被锁存到打印机内部数据缓冲器。 为打印机应答信号,当打印机处理好输入数据后发出该信号,同时撤销忙信号。CPU可利用BUSY信号或 信号决定是否输出下一个数据。ACKACKSTB 当CPU通过打印接口要求打印机打印数据时,一般先查询BUSY信号,BUSY为低电平时,输出数据至打印口,再发送 信号。 STB DATA SEGMENT BUFFER DB 45A COUNT DW $-BUFFER DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ST
38、ART: MOV AX,DATA MOV DS,AX LEA SI,BUFFER MOV CX,COUNT MOV AL,81H ;8255A初始化 OUT 93H,AL MOV AL,0FH ;使PC7=1 OUT 93H,AL NEXT: IN AL,92H ;读PC端口WAIT1: TEST AL,01H ;测试BUSY信号 JNZ WAIT1 MOV AL,SI ;读取一个数据,送入PA端口 OUT 90H,AL MOV AL,0EH ;输出选通脉冲 OUT 93H,AL NOP NOP MOV AL,0FH OUT 93H,AL INC SI LOOP NEXT MOV AH,4CH
39、 ;返回DOS INT 21H CODE ENDS END STARTSTB 【例题例题9.79.7】 在两台计算机之间利用8255A的端口A实现并行数据传送。如图所示, A机8255A工作于方式1输出,B机8255A工作于方式0输入。两机的CPU与8255A接口之间均采用查询方式交换数据。试编程实现将A机缓冲区0300:0000H开始的1024个字节数据发送至B机,并存放于B机从0400:0000开始的缓冲区中。设两机8255A的端口地址均为300H303H。 A A机发送程序段:机发送程序段: MOV DX,303H MOV AL,0A0H OUT DX,AL ;8255A初始化,端口A方
40、式1输出 MOV AL,0DH OUT DX,AL ;使PC6(INTEA)=1,允许中断 MOV AX,0300H MOV DS,AX MOV BX,0 MOV CX,1024 NEXT: MOV DX,302H WAIT1:IN AL,DX ;查询PC3(INTRA)=1? TEST AL,08H JZ WAIT1 MOV DX,300H ;发送数据 MOV AL,BX OUT DX,AL INC BX LOOP NEXTB B机接收程序段:机接收程序段: MOV DX,303H MOV AL,98H OUT DX,AL ;PA方式0输入 MOV AL,01H OUT DX,AL ;使PC
41、0( )=1 MOV AX,0400H MOV DS,AX MOV BX,0 MOV CX,1024NT:MOV DX,302HWT:IN AL,DX ;读PC口 TEST AL,10H ;查询PC4( ) JNZ WT MOV DX,300H ;接收数据 IN AL,DX MOV BX,AL INC BX MOV DX,303H ;产生 信号 MOV AL,00 OUT DX,AL NOP NOP MOV AL,01H OUT DX,AL LOOP NTACKACKOBF【例题9.8】利用PC机内部8253和实验仪上的8255、74LS373、74LS244等接口芯片设计并实现交通信号灯的控
42、制。硬件图如图9.22所示,具体要求如下: 完成东西、南北方向红、黄、绿灯的控制。 控制红、黄、绿灯的同时,数码管显示相应时间。 利用实验仪上的开关S0、S1、S7进行相应操作,S0控制东西方向通行,S1控制南北方向通行,S7退出控制程序。 解题分析解题分析 根据南、北交通信号灯的变化情况,可总结出交通信号灯变化的14种状态和输出控制字,如表9.5所示。表中:S1S6为南北方向黄灯闪烁(采用黄灯亮、灭交替实现闪烁)状态,S8S13为东西方向黄灯闪烁状态;设南北方向、东西方向绿灯时间分别为T0-3秒和T1-3秒(3秒为黄灯闪烁的总时间),则东西方向红灯时间为T0秒,南北方向红灯时间为T1秒。 为
43、实现1s精确定时,利用PC内部8253定时器0,让其每隔10ms中断一次;再设定一个1秒计数器,初始值为100。每中断一次,1秒计数器减1,当1秒计数器减为0,则定时1s。在实现时各状态的持续时间应转换为中断次数。本例中T0取30s、T1取20s,对应中断次数为3000(30100010)、2000。 数码管采用共阴极数码管,段选码通过PA口经同向驱动后输出,位选码通过PC口经反向驱动后输出。数字09的段选码如表9.6所示。状态南 北东 西交通信号灯(发光二极管)输出控制字时间LED7绿LED6黄LED5红LED2绿LED1黄LED0红S01000 0001(81H)T0-3SS141H0.5
44、SS201H0.5SS341H0.5SS401H0.5SS541H0.5SS601H0.5SS724HT1-3SS822H0.5SS920H0.5SS1022H0.5SS1120H0.5SS1222H0.5SS1320H0.5S表表9.5 交通信号灯状态和输出控制字交通信号灯状态和输出控制字数字0123456789段选码3FH06H5BH4FH66H6DH7DH07H7FH6FH表表9.6 数字数字09的段选码的段选码 程序由主程序和中断服务程序两部分组成。主程序主要完成初始化接口芯片,设置中断向量,读取开关状态并作相应处理,时间的显示等,主程序流程图如图9.23所示;中断服务程序主要完成信号
45、灯状态的判断和切换,中断服务程序流程图如图9.24所示。图9.24中的中断次数计数器=300判断框即为判断是否已到最后3秒。 在程序中需设置3个计数器:即1秒计数器SECONDS、状态计数器STATUS和中断次数计数器ICOUNTER。图9.23图9.24DATA SEGMENT ICTABLE DW 3000,6 DUP(50),2000,6 DUP(50) ;各状态对应中断次数 OUTTABLE DB 81H,3 DUP(41H,01H),24H,3 DUP(22H,20H) ;交通灯输出控制字 LEDTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH
46、,6FH ;09段选码 DISPBUFF DB 30H ;时间显示缓冲区 SECONDS DB 100 ;1秒计数器 STATUS DB 0 ;状态计数器 ICOUNTER DW 3000 ;中断次数计数器DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX CLI MOV AX,351CH ;取PC定时器0系统中断向量 INT 21H PUSH BX ;保存系统中断向量 PUSH ES PUSH DS MOV AX,SEG LIGHT ;取用户中断服务程序段地址 MOV DS,AX MOV DX,OF
47、FSET LIGHT ;取用户中断服务程序偏移地址 MOV AX,251CH ;设置用户中断向量 INT 21H MOV AL,36H ;初始化8253 OUT DX,AL MOV AX,11932 ;定时10ms时间常数 OUT 40H,AL MOV AL,AH OUT 40H,AL POP DS STI MOV AL,80H ;初始化8255 MOV DX,0C603H OUT DX,AL MOV AL,81H ;输出交通灯初始状态,南北绿灯,东西红灯 MOV DX,0C660H OUT DX,ALAGAIN: MOV DX,0C660H ;读取开关状态 IN AL,DX AND AL,8
48、3H CMP AL,83H ;判断有无开关按下 JNZ SWITCH CALL LEDDISP ;若无调时间显示子程序 JMP AGAINSWITCH: CMP AL,82H JZ S0 ;跳转开关S0按下处理程序 CMP AL,81H JZ S1 ;跳转开关S1按下处理程序 CMP AL,03H JZ S7 ;跳转开关S7按下处理程序 JMP AGAIN S0: MOV AL,24H ;开关S0处理 MOV DX,0C660H OUT DX,AL MOV STATUS,7 ;设为S7状态 MOV DISPBUFF,20H ;时间显示值20 MOV SECONDS,100 ;重置1秒计数器 MOV TCOUNTER,2000 ;重置中断次数计数器 JMP AGAIN S1: MOV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度集合大合集人员管理篇
- 单位管理制度汇编大合集人力资源管理
- 《家具导购圣经》课件
- 单位管理制度分享汇编职员管理篇十篇
- 单位管理制度分享大全职工管理十篇
- 2024教科室工作计划
- 单位管理制度呈现合集职工管理篇十篇
- 《投资管理复习》课件
- 《市场考察报告》课件
- 《广告效果的测定》课件
- 美的供应链变革及智慧采购解决方案
- 高低压电力系统预试验及维保服务方案
- 教师教育技能培训(3篇模板)
- 代发工资委托书格式样本
- YBT 6246-2024《核电工程用热轧带肋钢筋》
- 管桁架焊接 (1)讲解
- 大学助农直播创业计划书
- 心理健康教育国内外研究现状
- 燃气经营安全重大隐患判定标准课件
- 《经济学原理》题库(含参考答案)
- 广州社会保险退款申请表
评论
0/150
提交评论