版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理及其应用普通高等教育“十一五”国家级规划教材作者丁新民2007年5月第六章微机接口及其应用学习目标1、识记微机输入输出接口概念,以及ISA、EISA、VESA、PCI、USB等总线定义。2、识记串行通讯基本概念,8251A可编程串行通讯接口芯片的结构和工作原理。3、理解8251A可编程串行通讯接口编程及其应用。4、识记8255A可编程并行外围接口芯片的结构和工作原理。5、理解8255A可编程并行外围接口编程及其应用。6、识记8253可编程计数器/定时器的结构和工作原理及其应用。第六章微机接口及其应用6.1微机I/O接口和总线6.2串行通信和可编程接口8251A6.3并行接口芯片8255A及其应用6.48253可编程计数器/定时器及其应用一、微机I/O接口和总线1.I/O接口2.微机I/O口地址与寻址方式3.总线接口介绍第一节I/O接口1.I/O接口(1)I/O接口概述
I/O接口电路是用于主机和I/O设备之间传送信息的交换部件,因此也可称为界面,如图6-1-1所示。从微机系统角度看到的I/O接口界面,实际是微机底板提供的总线插槽。它根据不同外设的控制要求,选择相应的I/O控制板(卡)与它连接。1.I/O接口(2)I/O接口的要求
对I/O接口的功能要求如下:①交换主机与I/O设备的状态信息②匹配主机与I/O设备的传输速度差异③实现主机与I/O设备之间的数据传送④实现数据格式的转换第二节微机I/O口地址与寻址方式2.微机I/O口地址与寻址方式微机对I/O设备提供独立编址方式,80X86指令系统中有专用的I/O指令。指令用通用寄存器AL、AX或EAX作为传输数据的寄存器,用DX寄存器作为I/O地址,用两个字节表示的I/O地址,又称I/O口地址。如图6-1-2所示为PC系统板I/O口地址以及扩展插槽接口卡口的地址分配。2.微机I/O口地址与寻址方式(1)I/O独立编址在80X86微机中,普遍采取I/O独立编址技术。独立编址的I/O设备地址,就是外部设备在微机系统中的端口地址。
(2)存储器映象I/O
存储器映像I/O方式是将一个I/O端口看作为一个存储单元,访问存储器的所有指令均可用来访问I/O端口。2.微机I/O口地址与寻址方式(3)CPU与外设间的数据传输方式
CPU与外设之间的数据传输方式有三种:①程序控制方式②中断方式③直接存储器存取(DMA)方式表6-1-1展示了三种数据传送方式的比较情况。表6-1-1三种数据传送方式特点传送方式系统运行效率传输速率CPU与外设的工作接口电路成本程序控制方式低一般串行简单低中断方式高低并行复杂高DMA方式高高并行复杂高第三节总线接口介绍3.总线接口介绍(1)PC/XT总线
PC/XT总线是早期微机使用的总线之一。该总线有62条引脚信号,在每个插槽上也相应有62个引脚。总线信号均与TTL逻辑电平兼容。表6-1-2PC/XT总线引脚IOCHCKIOCHRDYMEMWMEMRIOWIOR引脚信号名称引脚信号名称引脚信号名称引脚信号名称B1GNDA1B17DACK1A17A14B2RESETDRVA2D7B18DRQ1A18A13B3+5VA3D6B19DACK0A19A12B4IRQ2A4D5B20CLKA20A11B5-5VA5D4B21IRQ7A21A10B6DRQ2A6D3B22IRQ6A22A9B7-12VA7D2B23IRQ5A23A8B8CardSelectA8D1B24IRQ4A24A7B9+12VA9D0B25IRQ3A25A6B10GNDA10B26DACK2A26A5B11A11AENB27T/CA27A4B12A12A19B28ALEA28A3B13A13A18B29+5VA29A2B14A14A17B30OSCA30A1B15DACK3A15A16B31GNDA31A0B16DRQ3A16A15
表6-1-2PC/XT总线引脚IOCHCKIOCHRDYMEMWMEMRIOWIOR引脚信号名称引脚信号名称引脚信号名称引脚信号名称B1GNDA1B17DACK1A17A14B2RESETDRVA2D7B18DRQ1A18A13B3+5VA3D6B19DACK0A19A12B4IRQ2A4D5B20CLKA20A11B5-5VA5D4B21IRQ7A21A10B6DRQ2A6D3B22IRQ6A22A9B7-12VA7D2B23IRQ5A23A8B8CardSelectA8D1B24IRQ4A24A7B9+12VA9D0B25IRQ3A25A6B10GNDA10B26DACK2A26A5B11A11AENB27T/CA27A4B12A12A19B28ALEA28A3B13A13A18B29+5VA29A2B14A14A17B30OSCA30A1B15DACK3A15A16B31GNDA31A0B16DRQ3A16A15
表6-1-2PC/XT总线引脚IOCHCKIOCHRDYMEMWMEMRIOWIOR引脚信号名称引脚信号名称引脚信号名称引脚信号名称B1GNDA1B17DACK1A17A14B2RESETDRVA2D7B18DRQ1A18A13B3+5VA3D6B19DACK0A19A12B4IRQ2A4D5B20CLKA20A11B5-5VA5D4B21IRQ7A21A10B6DRQ2A6D3B22IRQ6A22A9B7-12VA7D2B23IRQ5A23A8B8CardSelectA8D1B24IRQ4A24A7B9+12VA9D0B25IRQ3A25A6B10GNDA10B26DACK2A26A5B11A11AENB27T/CA27A4B12A12A19B28ALEA28A3B13A13A18B29+5VA29A2B14A14A17B30OSCA30A1B15DACK3A15A16B31GNDA31A0B16DRQ3A16A15
3.总线接口介绍(2)ISA总线
ISA总线或者称工业标准结构总线,是一个16位的标准总线。它与PC/XT总线完全兼容,区别是在PC/XT总线的基础上,再扩展36根信号线,如表6-1-3所示。3.总线接口介绍(3)EISA总线
EISA总线是一个扩展的ISA总线的32位标准。但是最大速度仍然是8.33MHz。在32位微机系统,在80486系统就显得慢了。(4)VESA局部总线针对EISA总线的特点,视频电子标准协会推出的一个全开放通用的局部总线标准VL-BUS。最大数据传输率为132MB/s。
总线插槽比其他总线的插槽长,前半部分是IBMMCA插槽标准,可用于8位、16位和32位接口板;后半部分为ISA插槽标准。3.总线接口介绍(4)VESA局部总线
VL总线引脚定义如表6-1-4所示。3.总线接口介绍(5)PCI局部总线
PCI局部总线被称为外部设备连接总线,是目前微机系统常用的总线,它有32位和64位两个标准。64位的数据传输率达到276MB/s。
结构上仅保留MCA总线设计方式,而取消ISA总线插槽。PCI总线以其64位处理能力和设备即插即用的特性,取得了在最新微机系统中的应用地位。PCI接口包含一个256字节的配置存储器,允许CPU访问PCI接口,这是专为系统能自动识别PCI插板配置的。3.总线接口介绍(5)PCI局部总线3.总线接口介绍(6)通用串行总线USB
通用串行总线USB是一种用于将适用USB的外围设备连接到主机的外部总线结构,主要用在中速和低速的外围设备。同时,它又是一种通信协议,支持主机和USB外围设备之间的数据传输。
USB系统是一个星形拓扑结构,如图6-1-4所示由主机,集线器和USB设备三个基本部分组成。二、串行通信和可编程接口8251A1.串行通信的基本概念2.可编程串行接口8251A第一节串行通信的基本概念1.串行通信的基本概念(1)串行数据传送方式串行数据传送时,数据在两个设备之间传送,按传送方向可分成单工、半双工和全双工三种形式,如图6-2-1所示。1.串行通信的基本概念(1)串行数据传送方式①单工数据只能按一个固定的方向传送,且是非交互式的,如图6-2-1(a)所示。②半双工数据可以在两个设备之间作单向传输,不能同时收发,如图6-2-1(b)所示。③全双工允许通信双方同时进行发送和接收,如图6-2-1(c)所示。1.串行通信的基本概念(2)串行传送的两种基本工作方式①异步串行通信通信的双方进行异步串行通信必须遵守异步通信控制规程。该规程也称异步通信协议,其特点是通信双方以一个字符作为数据传输单位,且发送方传送字符的间隔是可变的、随机的。异步传输格式,如图6-2-2所示。1.串行通信的基本概念(2)串行传送的两种基本工作方式①异步串行通信一个字符单位除表示字符信息的数据位(5~8位可选)外,还有几个附加位:起始位(1位,恒为“0”),校验位(1位,可选),停止位(1、1.5或2位,可选,恒为“1”)。传送一个字符,必须以起始位开始,以停止位结束。这个过程称为一帧数据,两个帧数据之间可有空闲位。1.串行通信的基本概念(2)串行传送的两种基本工作方式②同步串行通信同步串行通信有别于异步串行通信的一个特点是,允许连续发送一个序列字符,而每个字符的数据位数都相同,且不需要起始位和停止位。同步传输格式,如图6-2-3所示。1.串行通信的基本概念(3)串行传输速率在串行通信中,常用波特率来表示数据传输的速率。所谓波特率是指单位时间内传送二进制数据的位数,以b/s为单位,所以有时也叫数据位率。例如一个串行字符由1个起始位、7个数据位、1个奇偶校验位和1个停止位10个数位构成。若每秒钟传送120个字符,则数据传送的波特率为:(10b/字符)×(120字符/s)=1200b/s。传送每位信息所占用的时间为:1b/1200b/s=0.833ms。1.串行通信的基本概念(4)发送时钟和接收时钟串行通信中,数据以二进制形式传送。为了使发送和接收的数据保持一致,要求每一位数的持续时间必须是固定的,因此在发送端和接收端都必须用一个时钟来定时,它们被称为发送时钟和接收时钟。异步和同步通信对时钟的要求不一样。异步通信的信息长度只有10~11位,接收时仅要求起始位保持同步。同步通信的信息长度较长,要求精确同步。1.串行通信的基本概念(5)信号的调制与解调计算机网络、远程交换等场合,一般都通过电话线来进行信息传输。由于电话线频带较窄,用于数字传输会影响数字的正确性。为此,在发送数据时,先把数字信号转换成音频信号后,再利用电话线进行传输,接收数据时再将音频信号恢复成数字信号。前一种转换称为调制,后一种转换称为解调。完成调制和解调功能的设备称为MODEM。1.串行通信的基本概念(6)串行通信接口RS-232C标准
RS-232C标准是美国电子工业协会EIA在1969年制定的,现已发展成国际通用的串行通信接口标准。微机系统中的串行接口,也用此来作为连接外部设备、调制解调器、计算机终端或另一台计算机等的标准。EIA-RS232C标准具体规定如下:①信号电平
EIA规定的传输电气规格,如表6-2-1所示。表6-2-1EIA规定的传输电气特性状态逻辑高电平逻辑低电平电压范围3~25V-3~-25V逻辑表示011.串行通信的基本概念(6)串行通信接口RS-232C标准
②接插件规格
RS-232C串行接口规定使用25芯的D型插头、插座进行连接。
③微机中常用信号如表6-2-2。图6-2-5零调制解调器连接方式示意
计算机A计算机B符号表示引脚号引脚号符号表示TxD22TxDRxD33RxDRTS44RTSCTS55CTSDSR66DSRGND77GNDDCD88DCDDTR2020DTRRI2222RITxD22TxDRxD33RxDGND77GND图6-2-4最简单连接方式示意
计算机A计算机B符号表示引脚号引脚号符号表示1.串行通信的基本概念(6)串行通信接口RS-232C标准
④常见的连接方式●最简单连接
●零调制解调器连接●用MODEM的控制和状态信号作为微机之间的握手信号图6-2-6用MODEM的控制和状态信号作为握手信号
计算机A计算机B符号表示引脚号引脚号符号表示TxD22TxDRxD33RxDRTS44RTSCTS55CTSDSR66DSRGND77GNDDCD88DCDDTR2020DTRRI2222RI
计算机A计算机B符号表示引脚号引脚号符号表示TxD22TxDRxD33RxDRTS44RTSCTS55CTSDSR66DSRGND77GNDDCD88DCDDTR2020DTRRI
2222RI第二节可编程串行接口8251A2.可编程串行接口8251A(1)8251A的结构8251A的结构如图6-2-7所示,可分成五个主要部分:数据总线缓冲器、接收器、发送器、调制解调控制电路及读/写控制逻辑电路。图6-2-78251A的结构图内部数据总线接收控制电路RxRDYRxCSYNDET发送缓冲器TxD发送控制电路TxRDYTxETxC接收缓冲器RxD数据总线缓冲器D7-D0RESETCLKC/DRDWR读/写控制电路CS调制解调控制电路DSRDTRCTSRTS2.可编程串行接口8251A(1)8251A的结构①数据总线缓冲器数据总线缓冲器是8251A与系统总线之间的接口,内部包含三个具有三态、双向功能的8位缓冲器,即状态缓冲器、接收数据缓冲器和发送数据/命令缓冲器。②接收器接收器有关的信号有:接收数据RxD,接收数据准备好RxRDY,同步检测/断点检测SYNDET/BRKDET,接收时钟RxC。2.可编程串行接口8251A(1)8251A的结构③发送器发送器有关的信号有:发送数据TxD,发送器准备好TxRDY,发送器空TxE,发送器时钟TxC。
④调制解调控制电路调制解调控制有关的信号有:数据终端准备就绪DTR,数据装置准备好DSR,请求发送信号RTS,清除发送信号CTS。2.可编程串行接口8251A(1)8251A的结构⑤读/写控制电路读/写控制有关的信号有:复位信号RESET,时钟CLK,写WR,读RD,片选CS,控制/数据C/D。C/D表6-2-38251A读、写操作表RDWRCS操作0010CPU从8251A读数据0100CPU向8251A写数据1010CPU读取8251A的状态字1100CPU向8251写入控制字*110数据总线浮空***1数据总线浮空2.可编程串行接口8251A(2)工作原理①接收器工作原理
●
异步方式:CPU发出允许接收数据的命令时,接收器就一直监视着RxD端的信号电平,一旦检测到低电平,即作为起始位,并且启动接收器内的计数器时钟脉冲进行计数。若接收的时钟频率为波特率的16倍,则计数器计到半个数位传输时间,也就是计到8时,如检测RxD端仍是低电平,就确认收到了一个有效的起始位。2.可编程串行接口8251A(2)工作原理①接收器工作原理
●
同步方式:8251A监视着RxD端,把接收到的每一位数据送入移位寄存器,并与同步字符寄存器的内容进行比较。如果两者不等,则继续接收数据和进行移位比较等操作;若两者相同,则8251A将SYNDET端置为高电平,表示已实现同步过程。2.可编程串行接口8251A(2)工作原理②发送器工作原理
●
异步方式:当程序置TxEN=1和CTS=0时,才开始发送过程。发送时,发送器为每个字符加上一个起始位,并且按编程要求加上奇/偶校验以及停止位。起始位、数据位、校验位和停止位总是在发送时钟TxC的下降沿时从8251A发出,数据传输的波特率是发送时钟频率的1、1/16或1/64。2.可编程串行接口8251A(2)工作原理②发送器工作原理
●
同步方式:程序置TxEN=1和CTS=0时,才开始发送过程。发送器先按编程要求发送一个或两个同步字符,然后发送数据块。1.8255A的结构和功能(3)8251A与CPU及外设的连接图6-2-8是8251A与CPU及某个串行接口的外设的连线示意图。1.8255A的结构和功能(4)8251A的编程图6-2-9所示,8251A初始化流程。系统复位后,首先应将方式字写入控制口,确定8251A的工作方式。同步工作方式,写入方式字后,接着写入同步字符,最后写入命令字。异步工作方式,只要写入命令字。1.8255A的结构和功能(4)8251A的编程①方式字图6-2-10,同步和异步方式字格式。
1.8255A的结构和功能(4)8251A的编程②命令字图6-2-11,命令字格式。③状态字图6-2-12,状态字格式。
D7
D6
D5D4
D3
D2D1D0EHIRRTSERSBRKRxEDTRTxEN
图6-2-11命令字格式D7D6
D5D4
D3D2D1D0DSRSYNDETFEOEPETxERxRDYTxRD
图6-2-12状态字格式1.8255A的结构和功能(5)8251A的编程①异步方式初始化程序接通电源时,8251A能通过硬件电路自动进入复位状态。为了保证8251A正确复位,首先应向8251A的控制口连续写入三个全“0”,然后再向该端口送入一个复位字(40H)。其次才写入方式字和命令字。下面给出程序段。
REVTIMEMACRO MOVCX,02;需要4个时钟周期
D0:LOOPD0;延时16个时钟周期
ENDM1.8255A的结构和功能(5)8251A的编程①异步方式初始化程序例如:异步方式,波特率系数为16,7个数据位,一个停止位,采用偶校验,控制口地址为3F2H,初始化程序为:
MOVDX,3F2H;控制口
MOVAL,00HOUTDX,AL;向控制口写入第一个“0”
REVTIME
;调用延时子程序
OUTDX,AL
;向控制口写入第二个“0”
REVTIIMEOUTDX,AL
;向控制口写入第三个“0”1.8255A的结构和功能(5)8251A的编程①异步方式初始化程序(续)
REVTIME;调用延时子程序
MOVAL,40H
;恢复字
OUTDX,ALREVTIME;调用延时子程序
MOVAL,7AH;波特率16、数据7位、一个停止位、偶校验
OUTDX,AL;写入方式字
REVTIME;调用延时子程序
MOVAL,15H;允许接收、发送数据,清错误标志
OUTDX,AL;写入命令字
1.8255A的结构和功能(5)8251A的编程②同步方式初始化程序同步方式时的初始化程序与异步方式相似,先写入三个全“0”和软件复位命令字(40H),再写入方式字,然后再送同步字符(常用16H作为同步字符),最后写入命令字。例如:8251A口地址3F2H,内同步方式,采用双同步字符(同步字符为16H)、奇校验、7位数据位。初始化程序为:1.8255A的结构和功能(5)8251A的编程②同步方式初始化程序(续)
MOVDX,3F2H;控制口 ┇;复位操作,同上
MOVAL,18H;双同步、内同步、奇校验、7位数据位
OUTDX,AL
;送方式字
REVTIME ;调用延时子程序
MOVAL,16HOUTDX,AL
;送第一个同步字符
REVTIME;调用延时子程序
OUTDX,AL
;送第二个同步字符1.8255A的结构和功能(5)8251A的编程②同步方式初始化程序(续)
REVTIMEMOVAL,95H;启动搜索同步字符、标志复位、允许收、发
OUTDX,AL
┇1.8255A的结构和功能(6)8251A应用举例假如两台8086微机之间进行通信,用8251A作接口芯片,并通过RS-232C串行接口实现通信,硬件电路如图6-2-13所示。1.8255A的结构和功能(6)8251A应用举例设8251A的数据口和控制口地址为1F0H、1F2H,两机之间采用查询方式、异步传送、半双工通信。则发送和接收程序如下: ┇;先写三个全“0”,再写40H,使系统复位
START-T:MOVDX,1F2H;控制口
MOVAL,7AH;异步方式,7个数据位,1个停止位,偶校验、波特率因子16
OUTDX,AL
;写方式字
MOVCX,02H;延时
DELAY1:LOOPDELAY1 MOVAL,11H
;命令字:清错误标志,允许发送
OUTDX,AL MOVCX,02H
;延时1.8255A的结构和功能(6)8251A应用举例
DELAY2:LOOPDELAY2
MOVDI,BUFF-T
;发送缓冲区起始地址
MOVCX,COUNT-T;发送数据个数
NEXT-T:INAL,DX
;读入状态
TESTAL,01H
;TxRDY有效吗?
JZNEXT-T
;否,则等待
MOVDX,1F0H MOVAL,[DI];从缓冲区取一个数据
OUTDX,AL;向8251A输出一个数据
INCDI
;修改缓冲区指针
LOOPNEXT-T;发送数据未结束,则继续 ┇
START-R:MOVDX,1F2H MOVAL,7AH1.8255A的结构和功能(6)8251A应用举例
OUTDX,AL;送方式字,与发送部分相同
MOVCX,02H;延时
DELAY3:LOOPDELAY3 MOVAL,14H OUTDX,AL;输出命令字:清错误标志,允许接收
MOVCX,02H;延时
DELAY4:LOOPDELAY4 MOVDI,BUFF-R;接收缓冲区起始地址
MOVCX,COUNT-R;接收数据个数
NEXT-R:INAL,DX;读入状态字
TESTAL,02H;RxRDY有效吗?
JZNEXT-R
;否,循环等待
TESTAL,38H;是,查是否有错1.8255A的结构和功能(6)8251A应用举例
JNZERROR
;有错,则转出错处理程序
MOVDX,1F0H;无错
INAL,DX
;读入一个数据
MOV[DI],AL;输入数据送缓冲区
INCDI
;修改缓冲区指针
LOOPNEXT-R;接收数据未结束,则继续 ┇
ERROR:…;出错处理三、并行接口芯片8255A及其应用1.8255A的结构和功能2.8255A控制字和工作方式3.8255A应用举例第一节8255A的结构和功能1.8255A的结构和功能8255A内部结构如图6-3-1所示。1.8255A的结构和功能(1)数据端口PA、PB和PC8255A内部包含三个8位的输入/输出端口PA、PB和PC,通过外部的24根输入/输出线与外设交换数据或进行通信联络。PA口和PB口都可以作为8位的输入/输出数据口,PC口既可以作为一个`8位的输入/输出口用,又可作为两个4位的输入输出口使用,还可用来配合PA口和PB口产生控制信号和输入PA口和PB口的状态信号。1.8255A的结构和功能(2)A组和B组控制电路这两组根据CPU编程命令控制8255A工作的电路。有控制寄存器,用来接收来自CPU的命令字,分别决定A组和B组的工作方式,或对PC口的每一位执行置位/复位等操作。
PA口和PC口的上半部分(PC7~PC4),由A组控制逻辑管理。PB口和PC口的下半部分(PC3~PC0)由B组控制逻辑管理。1.8255A的结构和功能(3)数据总线缓冲器是一个双向三态的8位缓冲器是数据总线的接口。(4)读/写控制逻辑用来管理内部或外部信息、控制字或状态字的传送过程。第二节8255A控制字和工作方式2.8255A控制字和工作方式(1)8255A控制字
①方式选择控制字2.8255A控制字和工作方式(1)8255A控制字
②置位/复位控制字2.8255A控制字和工作方式(2)8255A的工作方式①方式0
例如:8255A端口地址80H,PA口和PB口工作于方式0,PA口、PB口和PC口上半部分作输入,PC口的下半部分为输出,表示为:
MOVAL,10011010BOUT80H,AL2.8255A控制字和工作方式(2)8255A的工作方式②方式1●方式1输入
●方式1输出
2.8255A控制字和工作方式(2)8255A的工作方式③方式2第三节8255A应用举例3.8255A应用举例(1)基本输入/输出应用举例例如某系统有八个开关S7~S0,要求检测它们的状态,通过发光二极管LED7~LED0显示。开关断开,相对应的LED点亮;反之,熄灭。选用8086,8255A和74LS138译码器等芯片,构成应用电路。如图6-3-8所示,8255A的PA口作输入口,8个开关S7~S0分别接PA7~PA0。PB口为输出口。3.8255A应用举例(1)基本输入/输出应用举例
PA口为方式0输入,PB口为方式0输出,PC口未用,其中的各位置“0”,写入控制口F6H的控制字为90H。完成初始化后,将PA口的开关状态读入寄存器AL。3.8255A应用举例(1)基本输入/输出应用举例其程序段如下:
MOVDX,0F6H;控制字寄存器
MOVAL,90H
;控制字
OUTDX,AL
;写入控制字
TEST:MOVDX,0F0H;指向PA口
INAL,DX;从PA口读入开关状态
MOVDX,0F2H
;指向PB口
OUTDX,AL;写PB口控制LED,指示开关状态
JMPTEST
;循环检测
3.8255A应用举例(2)键盘接口图6-3-9以机械式开关构成4行×4列键盘,接到由两片8255A构成的端口,其中PA口作输出,PB口作输入。4条行线接到PA口的PA3~PA0和PB的PB7~PB4,4条列线接到PB口的PB3~PB0。3.8255A应用举例(2)键盘接口在无键压下时,由于接到+5V上的上拉电阻的作用,列线被置成高电平。压下某一键后,该键所在的行线和列线接通。当从PB口读取列线信号时,便能根据读入的行和列状态中低电平的位置,便能确定哪个键被压下了。确认有键压下后,再确定被压下键所在的行、列号。以图6-3-9为例,行号和列号构成16个键的矩阵,当按下0键时,在PB口上可读得PB7、PB3位皆为“0”,其余位为“1”,那么数字0的编码为01110111B,即77H。若按下6键,3.8255A应用举例(2)键盘接口
PB口的PB6、PB1位皆为“0”,其余位为“1”,得到数字6的编码为10111101B,即BDH。类似地,将各键的编码值列成表,放在数据段中,用查表程序来查对,便能确定按下的键值。程序段如下:
PORT_AEQU0FF9H
;8255APA口地址
PORT_BEQU0FFBH
;8255APB口地址
PORT_CTLEQU0FFFH;8255A控制口地址
DATASEGMENT3.8255A应用举例(2)键盘接口
TABLEDB77H,7BH,7DH,7EH,0B7,0BBH,0BDH,0BEH;数据段,键盘扫描码表
DB0D7H,0DBH,0DDH,0DEH,0E7H,0EBH,0EDH,0EEHDATAENDSSTACKSEGMENTSTACK
DW50DUP(0)
TOP_STACLABELWORDSTACKENDSCODESEGMENT
ASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,STACK
MOVSS,AX3.8255A应用举例(2)键盘接口
LEASP,TOP_STACK
MOVAX,DATA MOVDS,AX;初试化8255A,方式0,PA口作输出,PB口和PC口为输入
MOVDX,PORT_CTL;指向控制口
MOVAL,8BH
;控制字
OUTDX,AL MOVDX,PORT_A MOVAL,00H OUTDX,AL
;向PA口各位输出0;读列,查看是否所有键均松开
MOVDX,PORT_B3.8255A应用举例(2)键盘接口
WAIT-O:INAL,DX;键盘状态读入PB口
ANDAL,0FH
;只查低4位(列值)
CMPAL,0FH
;是否都为“1”(各键均松开)?
JNEWAIT
;否,继续查;各键均已松开,再查列是否有0,即是否有键压下
WAIT-P:INAL,DX;读PB口
ANDAL,0FH
;只查低4位
CMPAL,0FH
;是否有键压下
JEWAIT-P
;无,等待;有键压下,延时20ms,消抖动
MOVCX,16EA3.8255A应用举例(2)键盘接口
DELAY:LOOPDELAY;延时20ms;再查列,看键是否仍被压着
INAL,DX ANDAL,0FH CMPAL,0FH JEWAIT-P
;已松开,转出等待压键;键仍被压着,确定哪一个键被压下
MOVAL,0FEH;先使D0=0 MOVCL,AL
;CL=11111110B NEXT-R:MOVDX,PORT-A OUTDX,AL
;向一行输出低电平3.8255A应用举例(2)键盘接口
MOVDX,PORT-B INAL,DX
;读入PB口状态
ANDAL,0FH
;只截取列值
CMPAL,0FH
;是否均为“1”?
JNEENCODE
;否,表示有键压下,转去编码
ROLCL,01
;均为“1”,使下行输出“0”
MOVAL,CL JMPNEXT-R
;查看下行;已找到有一行为低电平,对压键的行列值编码
ENCODE:MOVBX,000FH;地址指针指向F键对应的地址
INAL,DX
;从PB口读入行列号3.8255A应用举例(2)键盘接口
NEXT-TRY:CMPAL,TABLE[BX];读入行列值与表中查得的相等吗?
JEDONE
;相等,转出
DECBX
;不等,指向下一个地址
JNSNEXT-TRY;若地址未减为负值,继续查
MOVAX,01;若减为“0”,置出错码01→AX中
JMPEXIT
;退出
DONE:MOVAL,BL;BX中存有键的16进制代码
MOVAH,00;AX=0,读到有效键值
EXIT:HLTCODEENDS END四、8253可编程计数器/定时器及其应用1.8253内部结构2.编程命令和工作方式3.8253应用举例第一节8253内部结构1.8253内部结构如图6-4-1所示,8253内部结构由数据总线缓冲器、读写控制逻辑电路、控制寄存器和三个计数通道四部分组成。①数据总线缓冲器这是8253和CPU之间的数据接口,采用8位双向三态缓冲器。1.8253内部结构②读写控制逻辑电路读写控制逻辑电路是8253内部的控制部分。
③控制寄存器初始化编程时,控制寄存器用来存放CPU写入的控制字,确定计数通道的工作方式。
④计数通道0、1和2三个计数通道功能是完全相同的,每个计数通道都包括一个16位计数器。每个计数通道有六种工作方式。1.8253内部结构④计数通道0、1和2每个计数通道有三条引脚线,如下:●通道输入时钟CLK2~CLK0。●通道的门控信号CATE2~CATE0。●通道输出OUT2~OUT0。表6-4-2门控制信号GATE的功能工作方式GATE为低电平或下降沿GATE为上升沿GATE为高电平方式0禁止计数无意义允许计数方式1无意义从初值开始计数无意义方式2禁止计数,使输出变高从初值开始计数允许计数方式3禁止计数,使输出变高从初值开始计数允许计数方式4禁止计数无意义允许计数方式5无意义从初值开始计数无意义第二节编程命令和工作方式2.编程命令和工作方式(1)编程结构控制寄存器的格式如图6-4-2所示。2.编程命令和工作方式(3)8253的读、写操作和编程
8253没有RESET复位引脚,因此,在使用前必须首先进行初始化。初始化就是对控制寄存器和计数寄存器的写入,写入要注意:●先写控制寄存器,后写计数寄存器。●写入计数寄存器初始值时,要按控制字格式写入。例如,8253控制寄存器地址为36H,三个计数通道地址为30H、32H和34H。2.编程命令和工作方式(3)8253的读、写操作和编程要求对通道1作初始化,采用方式3、二进制计数、计数初值为1234H。初始化如下:
MOVAL,76H;通道1、方式3、二进制计数,先读、写低8位,后高8位
OUT36H,AL
;写控制寄存器
MOVAL,34H
;低字节34H送ALOUT32H,AL
;写计数通道1的低8位
MOVAL,12H
;高字节12H送ALOUT32H,AL
;写计数通道1的高8位2.编程命令和工作方式(3)8253的读、写操作和编程●8253读操作只能读计数寄存器,不能读控制寄存器。接上例,采用计数锁存命令,读取计数寄存器的当前值。其程序片段如下:
MOVAL,46H;通道1、方式3、计数器锁存
OUT36H,AL;写控制寄存器
INAL,32H
;读通道1低8位计数值送ALMOVAH,AL
;低8位暂存AHINAL,32H
;读通道1高8位计数值送ALXCHGAH,AL;计数值保存在AX第三节8253应用举例3.8253应用举例图6-4-3所示,8253的数据总线D7~D0与CPU的低8位相连,端口地址线A0、A1与CPU的地址线A2、A1相连,8253的片
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中国公民出境旅游合同(2篇)
- 中学生与父亲协议书范本(2篇)
- 2024年度船舶引航服务合同
- 2024年版知识产权许可合同
- 2024年度商务咨询合同咨询服务内容与保密义务
- 2024年度城市轨道交通设备代理销售合同
- 三年级数学下册 36 平均数同步辅导与作业(苏教版)
- 航空货运智能仓储管理
- 绿色床上用品发展趋势分析
- 2024年度灯光工程维护合同:某城市广场灯光系统年度维护
- 人教版数学二年级上册-第7单元(认识时间)认识时间(课件)(共19张课件)
- 与工人签订的安全协议书
- 大学生生涯发展展示
- 亲属赠与股权协议书
- 九年级第二次教师会议课件
- 国家开放大学《监督学》形考任务1-4参考答案
- (精选)一年级班干部竞选演讲稿范文5篇
- 物品出入库明细表格
- 加固柱抹灰施工方案
- 什么是Framelock(帧锁定)与Genlock(同步锁定)
- 外立面幕墙拆除方案
评论
0/150
提交评论