微型计算机原理第8章_第1页
微型计算机原理第8章_第2页
微型计算机原理第8章_第3页
微型计算机原理第8章_第4页
微型计算机原理第8章_第5页
已阅读5页,还剩231页未读 继续免费阅读

下载本文档

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

文档简介

第8章可编程接口芯片及应用

8.1可编程定时器/计数器芯片8253/8254

8.2可编程并行接口芯片8255A

8.3串行通信及可编程串行接口芯片8.4模/数(A/D)与数/模(D/A)转换技术及其接口微型计算机原理第8章共236页,您现在浏览的是第1页!8.1可编程定时器/计数器芯片8253/8254实现定时的方法有三种:软件定时、不可编程的硬件定时和可编程的硬件定时。软件定时是通过让机器执行一段没有具体操作目的的程序来实现的。由于CPU执行每条指令都需要一个确定的时间,因此,只要选择适当的指令和安排适当的循环次数就很容易实现软件定时,但软件定时占用CPU资源,降低了CPU的利用率;不可编程的硬件定时尽管定时电路并不很复杂,但这种定时电路在硬件连接好以后,定时值和定时范围不能由程序来控制和改变,使用不灵活;可编程定时器/计数器是为方便计算机系统的设计和应用而研制的,定时值及其范围可以很容易地由软件来控制和改变,能够满足各种不同的定时和计数要求,因此得到了广泛的应用。微型计算机原理第8章共236页,您现在浏览的是第2页!8.1.18253的结构与功能1.8253的引脚8253是24脚双列直插式芯片,用+5V电源供电。芯片内有三个相互独立的16位定时/计数器。8253的引脚和功能框图如图8.1所示。图8.18253引脚及功能结构微型计算机原理第8章共236页,您现在浏览的是第3页!(5)写信号WR:输入信号,低电平有效。由CPU发出,用于控制对选中的8253内部寄存器的写操作。(6)时钟脉冲信号CLK0~CLK2:计数器0、计数器1和计数器2的时钟输入端。由CLK引脚输入的脉冲可以是系统时钟(或系统时钟的分频脉冲)或其他任何脉冲源所提供的脉冲。该脉冲可以是均匀的、连续的并具有精确周期的,也可以是不均匀的、断续的、周期不确定的脉冲。时钟脉冲信号的作用是在8253进行定时或计数时,每输入一个时钟信号,便使计数值减1。若CLK是由精确的时钟脉冲提供,则8253作为定时器使用;若CLK是由外部事件输入的脉冲,则8253作为计数器使用。微型计算机原理第8章共236页,您现在浏览的是第4页!

2.8253的内部结构8253内部结构框图如图8.2所示。它由数据总线缓冲器、读/写逻辑、控制字寄存器以及3个独立的16位计数器组成。图8.28253内部结构框图微型计算机原理第8章共236页,您现在浏览的是第5页!图8.3计数器内部结构框图微型计算机原理第8章共236页,您现在浏览的是第6页!3)数据缓冲器数据缓冲器是三态、双向8位缓冲器。它用于8253和系统数据总线的连接。CPU通过数据缓冲器将控制命令字和计数值写入8253计数器,或者从8253计数器中读取当前的计数值。微型计算机原理第8章共236页,您现在浏览的是第7页!8253共占用4个I/O地址。当A1A0=00时,为计数器0中的CR(计数器0的计数初值写入该寄存器)和OL(计数器0的当前计数值从该寄存器读出)寄存器的共用地址,至于是将计数初值写入CR,还是从OL中读出当前计数值,则由控制信号WR和RD决定,这两个信号同时只能有一个有效。当A1A0=01和10时,分别为计数器1和计数器2的CR和OL的共用地址。当A1A0=11时,是3个计数器内的3个控制寄存器的共用地址,至于CPU是给哪个计数器送控制字,则由控制字中的最高两位的编码来决定。微型计算机原理第8章共236页,您现在浏览的是第8页!8253计数器在工作之前。用户必须对其进行初始化编程:首先CPU用输出指令向控制寄存器送控制字,然后再用输出指令向计数初值寄存器CR预置计数/定时的初值。启动工作后,CR中的初值就送入减1计数器CE对CLK输入的计数/定时脉冲信号进行减1计数。当CE中的内容减为0,表示计数/定时到,则OUT端输出信号。输出信号的波形形式由工作方式决定。微型计算机原理第8章共236页,您现在浏览的是第9页!图8.48253控制字格式微型计算机原理第8章共236页,您现在浏览的是第10页!当D5D4=00时,计数器的当前计数值被锁存在OL中,此时计数器照常计数,但OL中的值不变,待CPU将OL中的两字节数据读走后,OL中的内容又随减1计数器CE变化。当D5D4=01,只读/写低8位,高8位自动置0(写计数初值时);D5D4=10时,只读/写高8位,低8位自动置0(写计数初值时);D5D4=11时,先读/写低8位,再读/写高8位。D3D2D1位决定了计数器的工作方式。8253共有六种工作方式,后面将一一介绍。D0位决定计数器的数制。D0=0,选择二进制计数;D0=1,选择十进制计数。微型计算机原理第8章共236页,您现在浏览的是第11页!2)读操作所谓读操作是指读出某计数器的当前计数值到CPU中。有两种读取当前计数值的方法:①先使计数器停止计数(在GATE端加低电平或关闭CLK脉冲):根据送入的控制字中的D5D4位的状态,用一条或两条输入指令读CE的内容。实际上,CPU是通过输出锁存器OL读出当前计数值的,因为在计数过程中,OL的内容是跟随CE内容变化的。此时由于CE不再计数,故可稳定地读出OL(即CE)的内容。微型计算机原理第8章共236页,您现在浏览的是第12页!例8.1设8253芯片的端口地址为388H38BH。现要求计数器0工作在方式3,计数初值为2354,十进制计数;计数器1工作在方式2,计数初值为18H,二进制计数。试根据上述要求编写初始化程序及读取计数器0当前计数值的程序。;计数器0的初始化程序 MOV DX,38BH ;给计数器0送控制字 MOV AL,00110111B OUT DX,AL MOV DX,388H ;送计数初值的低8位 MOV AL,54H OUT DX,AL MOV AL,23H ;送计数初值的高8位 OUT DX,AL微型计算机原理第8章共236页,您现在浏览的是第13页!;计数器0当前计数值读出程序 MOV DX,38BH ;送计数器0当前计数值锁存命令 MOV AL,00H OUT DX,AL MOV DX,388H ;读出当前计数值的低8位 IN AL,DX MOV CL,AL IN AL,DX ;读出当前计数值的高8位 MOV CH,AL微型计算机原理第8章共236页,您现在浏览的是第14页!1.方式0——计数结束产生中断这是一种软件启动、不能自动重复的计数方式。如图8.5所示,写入方式0的控制字(CW)后,其输出端变低。再写入计数初值N(图中N=5),在写信号WR以后经过CLK的一个上升沿和一个下降沿,初值进入减1计数器CE。计数器减到0后,OUT成为高电平。此信号通常接至8259A的IR端作为中断请求信号。微型计算机原理第8章共236页,您现在浏览的是第15页!图8.6方式0时GATE信号的作用微型计算机原理第8章共236页,您现在浏览的是第16页!

2.方式1——可编程单次脉冲这是一种硬件启动、不能自动重复但通过GATE的正跳变可使计数过程重新开始的计数方式。在写入方式1的控制字后OUT成为高电平,在写入计数初值后,要等GATE信号出现正跳变时才能开始计数。在下一个CLK脉冲到来后,OUT变低,将计数初值送入CE并开始减1计数,直到计数器减到0后OUT变为高电平。如图8.7所示,计数过程一旦启动,GATE即使变成低电平也不会使计数中止。计数完成后若GATE再来一个正跳变,计数过程又重复一次。也就是说对应GATE的每一个正跳变,计数器都输出一个宽度为N*TCLK(其中N为计数初值,TCLK为CLK信号的周期)的负脉冲,因此称这种方式为可编程单次脉冲方式。微型计算机原理第8章共236页,您现在浏览的是第17页!在计数过程启动之后计数完成之前,若GATE又发生正跳变,则计数器又从初值开始重新计数,OUT端仍为低电平,两次的计数过程合在一起使OUT输出的负脉冲加宽了。在方式1计数过程中,若写入新的计数初值,也只是写入到计数初值寄存器中,并不马上影响当前计数过程,同样要等到下一个GATE正跳变启动信号,计数器才接收新初值重新计数。微型计算机原理第8章共236页,您现在浏览的是第18页!图8.8方式2的波形微型计算机原理第8章共236页,您现在浏览的是第19页!

4.方式3——方波发生器工作于方式3时,在计数过程中其输出前一半时间为高电平,后一半时间为低电平。其输出是可以自动重复的周期性方波,输出的方波周期为N*TCLK,如图8.9所示。图8.9方式3的波形微型计算机原理第8章共236页,您现在浏览的是第20页!在写入计数初值时,如果GATE信号为低电平,计数器并不开始计数。待GATE变为高电平时,才启动计数过程。在计数过程中,应始终使GATE=1。若GATE=0,不仅中止计数,而且OUT端马上变高。待恢复GATE=1时,产生硬件启动,计数器又从头开始计数。在计数过程中写入新的计数初值时不影响当前的半个周期的计数。在当前的半个周期结束(OUT电位发生变化)时,将启用新的计数初值开始新的计数过程。微型计算机原理第8章共236页,您现在浏览的是第21页!图8.10方式4的波形微型计算机原理第8章共236页,您现在浏览的是第22页!图8.11方式5的波形微型计算机原理第8章共236页,您现在浏览的是第23页!表8.28253工作方式比较微型计算机原理第8章共236页,您现在浏览的是第24页!8.1.58253应用举例例8.2使用8253计数器2产生频率为40kHz的方波,设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2MHz。试设计8253与8088总线的接口电路,并编写产生方波的程序。8253与8088总线的接口电路如图8.12所示。为了使计数器2产生方波,应使其工作于方式3,输入的2MHz的CLK2时钟信号进行50次分频后可在OUT2端输出频率为40kHz的方波,因此,对应的控制字应为10010111B,计数初值为十进制数50。程序如下所示:微型计算机原理第8章共236页,您现在浏览的是第25页!图8.128253与8088总线的连接微型计算机原理第8章共236页,您现在浏览的是第26页!可以看出,要使8253的片选信号CS有效,应使A9A8A7A6A5=00010,由于A4A3A2未参加译码,这三位为任意状态均可使8253选中,因此8253的端口地址为40H~5FH,若取A4A3A2=000,则8253计数器0、计数器1、计数器2以及控制寄存器的端口地址分别为40H、41H、42H和43H。如图中所示,8253三个计数器使用相同的时钟频率,它们是由8284时钟发生器输出时钟信号PCLK,再经过D触发器74LS175(图中未画出)二分频后得到的,频率为1.19MHz,8253的GATE0和GATE1接+5V,始终处于选返状态,GATE2接8255的PB0。微型计算机原理第8章共236页,您现在浏览的是第27页!2)计数器1该计数器向DMA控制器定时发送动态存储器刷新请求,它选用方式2工作,设置的控制字为54H。门控GATE1接+5 V为常启状态。OUT1输出从低电平变为高电平使触发器置1,Q端输出一个正电平信号,作为内存刷新的DMA请求信号DRQ0。DRAM每个单元要求在2ms内必须刷新一次。实际芯片每次刷新完成512个单元的刷新,故经过128次刷新操作就能将全部芯片的64KB个单元刷新一遍。微型计算机原理第8章共236页,您现在浏览的是第28页!3)计数器2该计数器控制扬声器发声,作为机器的报警信号或伴音信号,选用方式3工作。计数器2输出的方波经电流驱动器75477放大后驱动扬声器发声。门控GATE2接8255的PB0,用它控制计数器2的计数过程。输出OUT2经过一个与门,这个与门受PB1控制,所以扬声器由PB0和PB1来控制发声。在IBMPC/XT机的BIOS中有一个声响子程序BEEP,它将计数器2设置为工作方式3,作为方波发生器输出约1KHz的方波,经滤波驱动后推动扬声器发声。程序如下所示:微型计算机原理第8章共236页,您现在浏览的是第29页!G7: LOOP G7 ;延时 DEC B1 ;B1为控制发声长短的入口条件 JNZ G7 ;B1=6为长声,B1=1为短声 MOV AL,AH OUT 61H,AL ;恢复8255的B口原值,停止发声 RETBEEP ENDP微型计算机原理第8章共236页,您现在浏览的是第30页!D7D0:8位三态数据线,接至系统数据总线。CPU通过它实现与8255之间数据的读出与写入,控制字的写入,以及状态字的读出等操作。A1A0:地址信号。A1和A0经片内译码产生四个有效地址分别对应A、B、C三个独立的数据端口以及一个公共的控制端口。在实际使用中,A1、A0端接到系统地址总线的A1、A0。CS:片选信号,由系统地址译码器产生,低电平有效。微型计算机原理第8章共236页,您现在浏览的是第31页!图8.148255A引脚及功能示意图(a)引脚;(b)功能示意图微型计算机原理第8章共236页,您现在浏览的是第32页!2.8255A的内部结构8255A的内部结构框图如图8.15所示,其内部由以下四部分组成。1)端口A、端口B和端口C端口A、端口B和端口C都是8位端口,可以选择作为输入或输出。还可以将端口C的高4位和低4位分开使用,分别作为输入或输出。当端口A和端口B作为选通输入或输出的数据端口时,端口C的指定位与端口A和端口B配合使用,用做控制信号或状态信号。微型计算机原理第8章共236页,您现在浏览的是第33页!2) A组和B组控制电路这是两组根据CPU送来的工作方式控制字控制8255工作方式的电路。它们的控制寄存器接收CPU输出的方式控制字,由该控制字决定端口的工作方式,还可根据CPU的命令对端口C实现按位置位或复位操作。微型计算机原理第8章共236页,您现在浏览的是第34页!4)读/写控制逻辑读/写控制逻辑电路的功能是负责管理8255A与CPU之间的数据传送过程。它接收CS及地址总线的信号A1、A0和控制总线的控制信号RESET、WR、RD,将它们组合后,得到对A组控制部件和B组控制部件的控制命令,并将命令送给这两个部件,再由它们控制完成对数据、状态信息和控制信息的传送。各端口读/写操作与对应的控制信号之间的关系见表8.3。微型计算机原理第8章共236页,您现在浏览的是第35页!方式1——选通输入输出方式,此时8255A的A口和B口与外设之间进行输入或输出操作时,需要C口的部分I/O线提供联络信号。只有A口和B口可工作于方式1。方式2——选通双向输入输出方式,即同一端口的I/O线既可以输入也可以输出,只有A口可工作于方式2。此种方式下需要C口的部分I/O线提供联络信号。微型计算机原理第8章共236页,您现在浏览的是第36页!图8.168255的工作方式选择控制字微型计算机原理第8章共236页,您现在浏览的是第37页!图8.178255A的C口按位置位/复位控制字微型计算机原理第8章共236页,您现在浏览的是第38页!图8.18方式0查询方式的接口电路微型计算机原理第8章共236页,您现在浏览的是第39页!其工作原理如下:在向输出设备送数据前,先通过PC7查询设备状态,若设备准备好则从A口送出数据,然后通过PC1发选通信号使输出设备接收数据。从输入设备取数据前,先通过PC6查询设备状态,设备准备好后,再从B口读入数据,然后通过PC0发清除信号,以便输入后续字节。与下面介绍的选通输入输出方式(方式1)和选通双向输入输出方式(方式2)相比,方式0的联络信号线可由用户自行安排(方式1和方式2中使用的C口联络线是已定义好的),且只能用于查询,不能实现中断。微型计算机原理第8章共236页,您现在浏览的是第40页!1)A口和B口均为输入图8.19方式1输入时端口线的功能微型计算机原理第8章共236页,您现在浏览的是第41页!IBF(InputBufferFull):输入缓冲器满信号,输出,高电平有效。当IBF有效时,表示当前已有一个新数据进入端口A或端口B缓冲器,尚未被CPU取走,外设不能送新的数据。一旦CPU完成数据读入操作后,IBF便复位(变为低电平)。INTR(InterruptRequest):中断请求信号,输出,高电平有效。在中断允许信号INTE=1且IBF=1的条件下,由STB信号的后沿(上升沿)产生,该信号可接至中断管理器8259A作中断请求。它表明数据端口已输入一个新数据。若CPU响应此中断请求,则读入数据端口的数据,并由RD信号的下降沿使INTR复位(变为低电平)。微型计算机原理第8章共236页,您现在浏览的是第42页!INTE(InterruptEnable):中断允许信号,高电平有效。它是8255A内部控制8255A是否发出中断请求信号(INTR)的控制信号。这是由软件通过对C口的置位或复位来实现对中断请求的允许或禁止的。端口A的中断请求INTRA可通过对PC4的置位或复位加以控制:PC4置1,允许INTRA工作;PC4清0,则屏蔽INTRA。端口B的中断请求INTRB可通过对PC2的置位或复位加以控制。微型计算机原理第8章共236页,您现在浏览的是第43页!图8.22方式1输出时信号时序图微型计算机原理第8章共236页,您现在浏览的是第44页!INTR(InterruptRequest):中断请求信号,输出,高电平有效。该信号由ACK的后沿(上升沿)在INTE=1且OBF=1的条件下产生,该信号使8255A向CPU发出中断请求。若CPU响应此中断请求,则向数据口写入一新的数据,写信号WR上升沿(后沿)使INTR复位,变为低电平。INTE(InterruptEnable):中断允许信号,与方式1输入类似,端口A的输出中断请求INTRA可以通过对PC6的置位或复位来加以允许或禁止。端口B的输出中断请求信号INTRB可以通过对PC2的置位或复位来加以允许或禁止。微型计算机原理第8章共236页,您现在浏览的是第45页!图8.24方式1A口输出B口输入微型计算机原理第8章共236页,您现在浏览的是第46页!图8.258255A工作于方式2时端口线的功能微型计算机原理第8章共236页,您现在浏览的是第47页!图8.268255方式1接口电路及控制字微型计算机原理第8章共236页,您现在浏览的是第48页!例8.5利用8255A对非编码键盘进行管理。图8.27矩阵键盘接口微型计算机原理第8章共236页,您现在浏览的是第49页!设图中8255A的A口、B口和控制寄存器的地址分别为80H、81H和83H,其键盘扫描程序如下:;判断是否有键按下MOV AL,82H ;初始化8255A,A口方式0输出,B口方式0输入OUT 83H,AL ;将工作方式控制字送控制寄存器MOV AL,00H OUT 80H,AL ;使PA3=PA2=PA1=PA0=0LOOA:IN AL,81H ;读B口,判断PB3PB0是否有一位为低电平 AND AL,0FH CMP AL,0FH 微型计算机原理第8章共236页,您现在浏览的是第50页!START: MOV BL,4 ;行数送BL MOV BH,4 ;列数送BH MOV AL,0FEH ;D0=0,准备扫描0行 MOV CL,0FH ;键盘屏蔽码送CL MOV CH,0FFH ;CH中存放起始键号LOP1: OUT 80H,AL ;A口输出,扫描一行 ROL AL,1 ;修改扫描码,准备扫描下一行 MOV AH,AL ;暂时保存 IN AL,81H ;读B口,以便确定所按键的列值微型计算机原理第8章共236页,您现在浏览的是第51页!JC LOP2 ;无键按下,查下一列线MOV AL,CH ;已找到,键号送ALCMP AL,0 JZ KEY0 ;是0号键按下,转KEY0执行CMP AL,1 JZ KEY1 ;是1号键按下,转KEY1执行CMP AL,0EH JZ KEY14 ;是14号键按下,转KEY14执行JMP KEY15 ;不是0~14号键,一定是15号键,转KEY15执行微型计算机原理第8章共236页,您现在浏览的是第52页!图8.28两台PC机并行通信接口电路微型计算机原理第8章共236页,您现在浏览的是第53页!;A机的发送程序

MOV AX,0300H MOV ES,AX ;设置A机发送数据缓冲区段地址MOV BX,0 ;设置A机发送数据缓冲区偏移地址MOV CX,03FFH ;设置发送字节数;对A机8255A进行初始化MOV DX,303H ;指向A机8255A的控制寄存器MOV AL,10100000B ;8255A指定为工作方式1输出OUT DX,AL MOV AL,00001101B ;置发送中断允许INTEA=1OUT DX,AL ;;发送数据…微型计算机原理第8章共236页,您现在浏览的是第54页! MOV DX,300H MOV AL,ES:[BX] OUT DX,AL INC BX ;缓冲区指针加1 LOOP LOOP0 ;数据未送完,继续 MOV AX,4C00H INT 21H ;返回DOS

;B机接收数据

MOV AX,0400H MOV ES,AX ;设B机接收缓冲区段地址 MOV BX,0 ;设B机接收缓冲区偏移地址 MOV CX,3FFH ;置接收字节数计数器……微型计算机原理第8章共236页,您现在浏览的是第55页!IN AL,DX MOV ES:[BX],AL ;存入接收缓冲区MOV DX,303H ;产生ACK信号,并发回A机MOV AL,0 ;PC0置0OUT DX,AL ;NOP ;延时,使所产生的有效ACK信号(低电平)持续NOPMOV AL,01H ;PC0置1,使ACK变为高电平,注意在此信号作OUT DX,AL ;用下,A机8255A的PC3变为高电平INC BX ;缓冲区指针加1DEC CX ;计数器减1JNZ LOOP0 ;不为0,继续MOV AX,4C00H ;INT 21H ;返回 微型计算机原理第8章共236页,您现在浏览的是第56页!8.3.1串行通信的基本概念1.概述计算机之间以及计算机与一些常用的外部设备之间的数据交换,往往需要采用串行通信的方式。在计算机远程通信中,串行通信更是一种不可缺少的通信方式。在并行通信中,数据有多少位就要有多少根传输线,而串行通信中只需要一条数据传输线,所以串行通信可以节省传送线。在位数较多、传输距离较长的情况下,这个优点更为突出,但串行通信的速度比并行通信的低。微型计算机原理第8章共236页,您现在浏览的是第57页!(1)单工(Simplex)通信模式:该模式仅能进行一个方向的数据传送,数据只能从发送器A发送到接收器B。(2)半双工(HalfDuplex)通信模式:该模式能够在设备A和设备B之间交替地进行双向数据传送。即数据可以在一个时刻从设备A传送到设备B,而另一时刻可以从设备B传送到设备A,但不能同时进行。(3)全双工(FullDuplex)通信模式:该模式下设备A或B均能在发送的同时接收数据。微型计算机原理第8章共236页,您现在浏览的是第58页!(1)字符格式。字符格式即字符的编码形式及规定。图8.30异步传送数据格式(a)有空闲位;(b)无空闲位微型计算机原理第8章共236页,您现在浏览的是第59页!每个字符传送前,其传输线上必须处于高电平“1”状态,这样,当传输线由“1”变为“0”状态,并持续1比特时间时,就表明是字符的起始位,下面传送的位信息必然是有效数据位信息。当一个字符传送完后,立即传送下一个字符,那么,下一个字符的起始位便紧挨着前一个字符的停止位(即无空闲位),如图8.30(b)所示。如果后续数据跟不上,则在停止位后加高电平的空闲位等待下一个字符的到来,如图8.30(a)所示。可以看出,异步串行通信时,字符的发送和接收可以随时地间断进行,不受时间限制。因此,这种传送方式在同一字符内各位是以固定的时间传送的,而字符间是异步的。这种异步传送是靠收发双方在字符格式中设置起始位和停止位来协调“同步”的。微型计算机原理第8章共236页,您现在浏览的是第60页!(2)波特率。波特率(Baudrate)是指每秒钟传送的二进制位数,单位为位/秒(bit/s)。串行通信时发送端和接收端的波特率必须一致。设计算机数据传送的速率是120字符/s,而每个字符假设有10个比特(bit)位(包括1个起始位、7个数据位、1个奇偶校验位和1个停止位),则其波特率为:120字符/s10bit/字符=1200bit/s=1200波特最常用的波特率有110、300、600、1200、1800、2400、4800、9600和19200。通常用选定的波特率除以10来估计每秒钟可以传送的字符数。微型计算机原理第8章共236页,您现在浏览的是第61页!图8.31同步传送数据格式(a)单同步数据格式;(b)双同步数据格式;(c)SDLC数据格式;(d)HDLC数据格式;(e)外同步格式微型计算机原理第8章共236页,您现在浏览的是第62页!图(c)是IBM公司推出的同步数据链路控制数据格式SDLC(SynchronousDataLinkControl)。图(d)是ISO推荐的高级数据链路控制数据格式HDLC(High-levelDataLinkControl)。这两种格式的细节本书不做详细说明。图(e)是一种外同步方式所采用的数据格式。该方式在发送的一帧数据中不包含同步字。同步是由专门的控制线产生一个同步信号SYNC加到串行接口上,当SYNC一到达,表明数据场开始,接口就连续接收数据。微型计算机原理第8章共236页,您现在浏览的是第63页!在进行远距离的数据传输时,一般是利用电话线作通信线路。由于电话线不具备数字信号所需的频带宽度,如果数字信号直接用电话线传输,信号将会出现畸变,致使接收端无法从发生畸变的数字信号中识别出原来的信息。因此必须采取一些措施,在发送端把数字信号转换成适于传输的模拟信号,而在接收端再将模拟信号转换成数字信号。前一种转换称为调制,后一种转换称为解调。完成调制、解调功能的设备叫做调制解调器(Modem)。调制解调器的类型比较多,但基本可分为两类:异步调制解调器和同步调制解调器。微型计算机原理第8章共236页,您现在浏览的是第64页!图8.32FSK调制原理(a)数字信号;(b)FSK信号微型计算机原理第8章共236页,您现在浏览的是第65页!图8.33PSK调制原理微型计算机原理第8章共236页,您现在浏览的是第66页!1)引脚定义EIARS–232C是美国电子工业协会推荐的一种标准(ElectronicIndustriesAssociationRemendedStandard)。它在一种D型25针连接器(DB–25)上定义了串行通信的有关信号。在实际异步串行通信中,并不要求用全部的RS–232C信号。现在微机中广泛使用D型9针连接器(DB–9),因此这里不打算就RS–232C的全部信号作详细解释。表8.4给出25针或9针D型插座引出的9个常用RS–232C信号及其在D型插座中的引脚。TXD/RXD:是一对数据线。TXD发送数据线,输出;RXD为接收数据线,输入。当两台微机以全双工方式直接通信(无Modem方式)时,双方的这两根线应交叉连接(扭接)。微型计算机原理第8章共236页,您现在浏览的是第67页!表8.4D型25针或9针RS–232C连接器引出的常用信号功能微型计算机原理第8章共236页,您现在浏览的是第68页!图8.35有Modem的RS–232C典型连接微型计算机原理第8章共236页,您现在浏览的是第69页!2)信号电平规定RS–232C规定了双极性的信号电平:−3~ −25V的电平表示逻辑“1”。+3~ +25V的电平表示逻辑“0”。可以看出,RS–232C的电平与TTL电平是不能直接互连的。为了实现与TTL电路的连接,必须进行电平转换,详见下节。微型计算机原理第8章共236页,您现在浏览的是第70页!80x86微机的串行口就是使用可编程串行通信芯片8251或8250以及RS–232电平转换电路,将微型计算机并行的逻辑“0”或逻辑“1”电平转换为串行的+15V或−15V脉冲,通过25针(或9针)D型插座与外部进行串行通信的。本节简要介绍RS–232电平转换器(RS–232收发器)。目前,国际上有很多厂商生产RS–232收发器,这里仅介绍MAXIM生产的RS–232发送器1488(将TTL电平转换为RS–232C电平)和RS–232接收器1489(将RS–232C电平转换为TTL电平),其引脚如图8.36所示。图8.37给出了一个使用1488和1489实现电平转换的例子。微型计算机原理第8章共236页,您现在浏览的是第71页!图8.37RS–232C总线接收器与发送器的连接方法微型计算机原理第8章共236页,您现在浏览的是第72页!⑤异步通信的时钟频率可设为波特率的1倍、16倍或64倍。⑥在异步通信时,波特率的可选范围为019.2千波特;在同步通信时,波特率的可选范围为064千波特。⑦提供与外部设备特别是调制解调器的联络信号,便于直接和通信线路相连接。⑧接收、发送数据分别有各自的缓冲器,可进行全双工通信。微型计算机原理第8章共236页,您现在浏览的是第73页!②发送/命令缓冲器:这是一个分时使用的双功能缓冲器。CPU送来的并行数据存放在这里,准备由串行口向外发送;另外,CPU送来的命令字也存放在这里,以指挥串行接口的工作。由于命令一旦输入就马上执行,不必长期存放,因而不会影响存放待发送的数据。③状态缓冲器:存放8251A内部的工作状态,供CPU查询。微型计算机原理第8章共236页,您现在浏览的是第74页!(2)读/写控制逻辑。该模块的功能是接收CPU的控制信号,控制数据的传送方向。(3)接收器及接收控制。该模块的功能是从RXD引脚接收串行数据,按指定的方式装配成并行数据。(4)发送器及发送控制。该模块的功能是从CPU接收并行数据,自动加上适当的成帧信号并转换成串行数据后从TXD引脚发送出去。(5)调制解调器控制。该模块提供和调制解调器的联络信号。微型计算机原理第8章共236页,您现在浏览的是第75页!图8.398251A的外部引脚微型计算机原理第8章共236页,您现在浏览的是第76页!表8.5CPU对8251A的读/写控制

读/写功能说明001CPU从8251A中读取数据010CPU向8251A中写入数据101CPU从8251A中读取状态110CPU向8251A中写入控制命令微型计算机原理第8章共236页,您现在浏览的是第77页!RXRDY(ReceiverReady)——接收器准备好信号,输出,高电平有效。RXRDY=1时,表明8251A已经从串行输入线接收了一个字符,正等待CPU将此数据取走。因此,在中断方式时,RXRDY可作为向CPU申请中断的请求信号;在查询方式时,RXRDY的状态供CPU查询之用。SYNDET(SynchronousDetect)——同步检测信号。用于内同步状态输出或外同步信号输入。此线仅对同步方式有意义。微型计算机原理第8章共236页,您现在浏览的是第78页!2)与外部设备(或调制解调器)之间的接口引脚DTR(DataTerminalReady)——数据终端准备好,输出,低电平有效。CPU对8251A输出命令字使控制寄存器D1位置1,从而使DTR变为低电平,以通知外设CPU当前已准备就绪。RTS(RequestToSend)——请求发送,输出,低电平有效。此信号等效于DTR,CPU通过将控制寄存器的D5位置1,可使RTS变为低电平,用于通知外设(调制解调器)CPU已准备好,请求外设(调制解调器)做好发送准备。TXD(TransmitterData)——发送数据输出线。CPU并行输入给8251A的数据从该引脚串行发送出去。微型计算机原理第8章共236页,您现在浏览的是第79页!RXC(ReceiverClock)——接收器接收时钟输入端。它控制8251A接收字符的速度,在上升沿采集串行数据输入线。在同步方式时,它由外设(或调制解调器)提供,RXC的频率等于波特率;在异步方式时,RXC由专门的时钟发生器提供,其频率是波特率的1倍、16倍或64倍,即波特率将等于RXC端脉冲经过分频得到的脉冲的频率,分频系数可通过方式选择字设定为1、16或64。实际上,RXC和TXC往往连在一起,共同接到一个信号源上,该信号源要由专门的辅助电路产生。TXC(TransmitterClock)——发送器发送时钟输入端。TXC的频率与波特率之间的关系同RXC。数据在TXC的下降沿由发送器移位输出。微型计算机原理第8章共236页,您现在浏览的是第80页!2)发送器的工作过程在异步方式中,发送器在数据前加上起始位,并根据程序的设定在数据后加上校验位和停止位,然后作为一帧信息从TXD引脚逐位发送数据。在同步方式中,发送器先送同步字符,然后逐位地发送数据。若CPU没有及时把数据写入发送缓冲器,则8251A用同步字符填充,直至CPU写入新的数据。微型计算机原理第8章共236页,您现在浏览的是第81页!图8.40方式控制字格式微型计算机原理第8章共236页,您现在浏览的是第82页!(2)命令控制字。命令控制字使8251A进入规定的工作状态以准备发送或接收数据。它应该在写入方式控制字后写入,用于控制8251A的工作,可以多次写入。命令控制字格式如图8.41所示。方式控制字和命令控制字本身无特征标志,也没有独立的端口地址,8251A是根据写入先后次序来区分这两者的:先写入者为方式控制字,后写入者为命令控制字。所以对8251初始化编程时必须按一定的先后顺序写入方式控制字和命令控制字。微型计算机原理第8章共236页,您现在浏览的是第83页!2)状态寄存器状态寄存器存放8251A的状态信息,供CPU查询。状态字各位的意义如图8.42所示。图8.42状态字格式微型计算机原理第8章共236页,您现在浏览的是第84页!8.3.48251A初始化编程与所有的可编程芯片一样,8251A在使用前也要进行初始化。初始化在8251A处于复位状态时开始。其过程为:首先写入方式控制字,以决定通信方式、数据位数、校验方式等。若是同步方式则紧接着送入一个或两个同步字符,若是异步方式则这一步可省略,最后送入命令控制字,就可以发送或接收数据了。初始化过程的信息全部写入控制端口,特征是C/D=1,即地址线A0=1(因为C/D接至A0)。由于各控制字没有特征位,因而写入的顺序不能出错,否则就会张冠李戴,达不到初始化的目的。图8.43给出了8251A初始化过程的流程图。微型计算机原理第8章共236页,您现在浏览的是第85页!1.异步方式下初始化编程举例设8251A控制口的地址为301H,数据口地址为300H,按下述要求对8251A进行初始化。①异步工作方式,波特率因子为64(即数据传送速率是时钟频率的1/64),采用偶校验,字符总长度为10(1位起始位,7位数据位,1位奇偶校验位,1位停止位)。②允许接收和发送,使错误全部复位。③查询8251A的状态字,当接收准备就绪时,从8251A的数据口读入数据,否则等待。微型计算机原理第8章共236页,您现在浏览的是第86页!2.同步方式下初始化编程举例设8251A设定为同步工作方式,控制口地址为51H,2个同步字符,采用内同步,SYNDET为输出引脚,偶校验,每个字符7个数据位。2个同步字符,它们可以相同,也可以不同。本例使用两个相同的同步字符23H。初始化编程如下:微型计算机原理第8章共236页,您现在浏览的是第87页!8.3.58251A应用举例当8251A与CPU连接时,要占用两个端口地址,即控制端口地址(C/D=1)和数据端口地址(C/D=0)。在使用8251A时,需要提供三个时钟信号:CLK、TXC和RXC。CLK信号的频率没有明确值的要求;接收器接收时钟RXC和发送器发送时钟TXC的频率在同步方式时等于波特率,在异步方式时应分别为波特率的1倍、16倍和64倍,即波特率将等于RXC和TXC端脉冲经过分频得到的脉冲的频率,分频系数可通过方式选择字设定为1、16或64。微型计算机原理第8章共236页,您现在浏览的是第88页!例8.7

用8251A为8086CPU与CRT终端设计一串行通信接口。假设8251A控制端口地址为301H,数据端口地址为300H。要求:①异步方式传送,数据格式为1位停止位,8位数据位,奇校验;②波特率因子为16;③CPU用查询方式将显示缓冲区的字符“HAPPYNEWYEAR”送CRT显示器。显示缓冲区在数据段。微型计算机原理第8章共236页,您现在浏览的是第89页!图8.448086CPU与CRT终端的串行接口微型计算机原理第8章共236页,您现在浏览的是第90页! OUT DX,AL ;送方式控制字 MOV AL,00110011B ;命令控制字 OUT DX,AL ;送命令控制字 MOV BX,OFFSETSTRING ;字符串偏移地址 MOV CX,COUNT ;发送字符个数WAIT:MOV DX,301H ;控制口地址 IN AL,DX ;读状态字 TEST AL,01H ;检测TXRDY=1? JZ WAIT ;如果不是,则等待 MOV DX,300H ;数据口地址微型计算机原理第8章共236页,您现在浏览的是第91页!8.4模/数(A/D)与数/模(D/A)转换技术及其接口8.4.1D/A转换接口D/A转换器的作用是将二进制的数字量转换为相应的模拟量。D/A转换器的主要部件是电阻开关网络,其主要网络形式有权电阻网络和R–2R梯形电阻网络,其工作原理这里不作介绍。集成D/A芯片类型很多,按生产工艺分有双极型、MOS型等;按字长分有8位、10位、12位等;按输出形式分有电压型和电流型。另外,不同生产厂家的产品,其型号各不相同。例如,美国国家半导体公司的D/A芯片为DAC系列,如DAC0832等;美国模拟器件公司的D/A芯片为AD系列,如AD558等。使用时可参阅各公司提供的使用手册。微型计算机原理第8章共236页,您现在浏览的是第92页!图8.45DAC0832的结构框图微型计算机原理第8章共236页,您现在浏览的是第93页!DI7DI0——D/A转换器的数字量输入引脚。其中DI0为最低位,DI7为最高位。CS——片选信号输入端,低电平有效。WR1——输入寄存器的写信号,低电平有效。ILE——输入寄存器选通信号,高电平有效。ILE信号和CS、WR1共同控制选通输入寄存器。当CS、WR1均为低电平,而ILE为高电平时,LE1=0,输入数据被送至8位输入寄存器的输出端;当上述三个控制信号任一个无效时,LE1变高,输入寄存器将数据锁存,输出端呈保持状态。微型计算机原理第8章共236页,您现在浏览的是第94页!VREF——D/A转换器的基准电压,其范围可在−10+10V内选定。该端连至片内的R–2RT型电阻网络,由外部提供一个准确的参考电压。该电压精度直接影响着D/A转换精度。IOUT1——D/A转换器输出电流1,当输入全1时,输出电流最大,约为;当输入为全0时,输出电流最小,即为0。IOUT2——D/A转换器输出电流2,它与IOUT1有如下关系:IOUT1+IOUT2=常数D/A转换没有形式上的启动信号。实际上将数据写入第二级寄存器的控制信号就是D/A转换器的启动信号。另外,它也没有转换结束信号,D/A转换的过程很快,一般还不到一条指令的执行时间。微型计算机原理第8章共236页,您现在浏览的是第95页!单缓冲工作方式是指只有一个寄存器受到控制。这时将另一个寄存器的有关控制信号预先设置成有效,使之开通,或者将两个寄存器的控制信号连在一起,两个寄存器作为一个来使用。直通工作方式是指两个寄存器的有关控制信号都预先置为有效,两个寄存器都开通。只要数字量送到数据输入端,就立即进入D/A转换器进行转换。这种方式应用较少。微型计算机原理第8章共236页,您现在浏览的是第96页!图8.47DAC0832的电压输出电路(a)单极性输出;(b)双极性输出微型计算机原理第8章共236页,您现在浏览的是第97页!4) DAC0832的主要技术指标输入:8位数字量。内有锁存器,数字量输入端可直接与CPU的数据总线相连。输入方式:双缓冲、单缓冲和直通输入三种方式。输入逻辑:与TTL兼容。输出:模拟量电流IOUT1和IOUT2。电流建立时间:1s。微型计算机原理第8章共236页,您现在浏览的是第98页!

2.DAC1210DAC1210是美国国家半导体公司生产的12位D/A转换器芯片,是智能化仪表中常用的一种高性能的D/A转换器。DAC1210是24引脚的双列直插式芯片,其内部逻辑结构如图8.48所示。由图8.48可以看出,其逻辑结构与DAC0832类似,所不同的是DAC1210具有12位的数据输入端,且其12位数据输入寄存器由一个8位的输入寄存器和一个4位的输入寄存器组成。两个输入寄存器的输入允许控制都要求CS和WR1为低电平,但8位输入寄存器的数据输入还要求B1/B2端为高电平。微型计算机原理第8章共236页,您现在浏览的是第99页!1) DAC1210的引脚DI11DI0——D/A转换器的数字量输入引脚。其中DI0为最低位,DI11为最高位。CS——片选信号输入端,低电平有效。WR1——输入寄存器的写信号,低电平有效。当此信号有效时,与CS和B1/B2配合起控制作用。B1/B2——字节控制。此端为高电平时,12位数字同时送入输入锁存器;此端为低电平时,将12位数字量的低4位送到4位输入寄存器。微型计算机原理第8章共236页,您现在浏览的是第100页!VCC——电源,其值可在+5+15V之间选取,典型值取+15V。AGND——模拟信号地。DGND——数字信号地。RFB——外部放大器的反馈电阻接线端。VREF——D/A转换器的基准电压,其范围可在−10+10V内选定。微型计算机原理第8章共236页,您现在浏览的是第101页!3.D/A转换芯片与微处理器的接口计算机是通过输出指令将要转换的数字送到D/A转换芯片来实现D/A转换的,但由于输出指令送出的数据在数据总线上持续的时间很短,因而需要数据锁存器来锁存CPU送来的数据,以便完成D/A转换。目前生产的DAC芯片有的片内带有锁存器(如本节介绍的DAC0832和DAC1210),而有的则没有。在实际中若选用了内部不带锁存器的D/A转换芯片,就需要在CPU和D/A芯片之间增加锁存电路。微型计算机原理第8章共236页,您现在浏览的是第102页!图8.49DAC0832与ISA总线连线图微型计算机原理第8章共236页,您现在浏览的是第103页!2) 12位D/A转换器与CPU的接口当D/A转换器位数大于8位时,与8位微处理器接口时被转换的数据就需要分几次(D/A位数≤16时需2次)送出。对于片内带数据锁存器的D/A芯片,应通过合理地使用控制信号实现数据的锁存;对于没有锁存器的芯片,用户自己需要增加数据锁存电路。这里以片内带有数据锁存器的12位D/A转换芯片DAC1210与外部数据总线为8位的IBMPC/XT总线的接口方法,说明主机数据总线位数小于DAC芯片位数时的接口技术。微型计算机原理第8章共236页,您现在浏览的是第104页!图8.50DAC1210与IBMPC/XT总线的连接图微型计算机原理第8章共236页,您现在浏览的是第105页!MOV CL,04HSHL BX,CL ;BX中的12位数左移4位MOV AL,BH ;高8位送ALOUT DX,AL ;高8位送“8位输入寄存器”锁存INC DX ;端口地址变为221H,可保证下一次执行OUT ;指令时,A0=1,B1/B2=0,从而将低4位数据写 ;入“4位输入寄存器”中锁存MOV AL,BL ;低4位送ALOUT DX,AL ;低4位送“4位输入寄存器”锁存INC DX ;端口地址变为222H,可保证下一次执行OUT ;指令时,将两个寄存器的内容同时送12位的DAC ;寄存器,且使XFER有效,以便启动D/A转换OUT DX,AL ;启动D/A转换微型计算机原理第8章共236页,您现在浏览的是第106页!1.ADC0809ADC0809是逐位逼近型8通道、8位A/D转换芯片,CMOS工艺制造,双列直插式28引脚封装。图8.51给出了ADC0809芯片的内部结构框图及引脚图(图中给出的数据为对应的引脚号)。ADC0809片内有8路模拟开关,可输入8个模拟量,单极性输入,量程为0+5V。典型的转换速度为100s。片内带有三态输出缓冲器,可直接与CPU总线接口。其性能价格比有明显的优势,是目前广泛采用的芯片之一,可应用于对精度和采样速度要求不高的数据采集场合或一般的工业控制领域。微型计算机原理第8章共236页,您现在浏览的是第107页!图8.51ADC0809的结构框图与引脚微型计算机原理第8章共236页,您现在浏览的是第108页!2)引脚定义IN0IN7——8路模拟量输入端。ADDC、ADDB和ADDA——地址输入端,以选通IN7IN08路中的某一路信号。ALE——地址锁存允许信号,有效时将ADDC、ADDB和ADDA锁存。CLOCK——外部时钟输入端。允许范围为101280kHz。时钟频率越低,转换速度就越慢。START——A/D转换启动信号输入端。有效信号为一正脉冲。在脉冲的上升沿,A/D转换器内部寄存器均被清零,在其下降沿开始A/D转换。微型计算机原理第8章共236页,您现在浏览的是第109页!ADC0809的数字量输出值D(十进制数)与模拟量输入值VIN之间的关系如下:通常VREF(−)=0V,所以当VREF(+)=5V,VREF(−)=0V,输入的单极性模拟量从0V到4.98V变化时,对应的输出数字量在0到255(00HFFH)之间变化。微型计算机原理第8章共236页,您现在浏览的是第110页!图8.52AD574引脚微型计算机原理第8章共236页,您现在浏览的是第111页!A0和12/8——二者配合用于控制转换数据长度是12位或8位,以及数据输出的格式(是12位一次输出还是先输出高8位,后输出低4位)。A0=0,表示启动一次12位转换;A0=1,表示启动一次8位转换。12/8=1,表示12位数据并行输出。STS——转换状态输出端。该引脚在转换过程中呈现高电平,转换一结束立即返回到低电平。用户可通过查询该引脚的状态了解转换是否结束。10VIN模拟信号输入端,允许输入的电压范围为0+10V(单极性输入时)或5+5V(双极性输入时)。微型计算机原理第8章共236页,您现在浏览的是第112页!2) AD574的操作AD574内部的控制逻辑能根据CPU给出的控制信号而进行转换或读出操作。只有在CE=1且CS=0时才能进行一次有效操作。当CE、CS同时有效,而R/C为低电平时启动A/D转换,至于是启动12位转换还是8位转换,则由A0来确定,A0=0时启动12位转换,A0=1时启动8位转换;当CE、CS同时有效,而R/C为高电平时是读出数据,至于是一次读出12位还是12位分两次读出,则由12/8引脚确定。若12/8接+5V,则一次并行输出12位数据;若12/8接数字地,则由A0控制是读出高8位还是低4位。控制信号的逻辑功能见表8.6。微型计算机原理第8章共236页,您现在浏览的是第113页!3)单极性与双极性的输入方式输入AD574的模拟量可为单极性和双极性,单极性的输入电压范围为010V或020V;双极性的输入电压范围为−5+5V或−10+10V。这些灵活的工作方式都必须按规定采用与之对应的接线方式才能实现。单极性和双极性输入时的接线方式见图8.53(a)和(b)。模拟量(单极性或双极性)由引脚10VIN(输入010V或−5+5V)或20VIN(输入020V或−10+10V)输入。A/D转换器转换的结果是二进制偏移码。在两种不同极性的输入方式下,AD574的输入模拟量与输出数字量的对应关系如表8.7所示。微型计算机原理第8章共236页,您现在浏览的是第114页!表8.712位A/D输入模拟量与输出数字量的对应关系输入方式量程/V输入量/V输出数字量输入方式量程/V输入量/V输出数字量单极性0100000H单极性0200000H57FFH107FFH10FFFH20FFFH双极性−5+5−5000H双极性−10+10−10000H07FFH07FFH+5FFFH+10FFFH微型计算机原理第8章共236页,您现在浏览的是第115页!图8.54ADC0809与微型计算机的接口用ADC0809对8路模拟信号进行循环采样,各采集100个数据分别存放在数据段内的8个数据区中,采用无条件传送方式。接口电路如图8.54所示。微型计算机原理第8章共236页,您现在浏览的是第116页!START:MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV BX,OFFSETBUFFMOV CX,COUNTOUTL:PUSH BX MOV DX,380H;指向通道0INLOP:OUT DX,AL ;锁存模拟通道地址,启动转换 MOV AX,50000 ;延时,等待转换结束微型计算机原理第8章共236页,您现在浏览的是第117页!2) 12位A/D转换芯片与CPU的接口图8.55为AD574与ISA总线的连接图。ISA总线最早用于IBMPC/AT机,后来在许多兼容机上被采用,现在的Pentium机上也留有13个ISA插槽,在硬件上保持了向上的兼容。由于ISA总线具有16位数据宽度,易于与12位的AD574接口,可以方便地构成12位的数据采集系统。如果对数据采集速度要求不高,为了简化硬件设计,可以将A/D转换成的12位数据分两次读入计算机,如图8.55所示。微型计算机原理第8章共236页,您现在浏览的是第118页!图中双向缓冲器74LS245用于数据总线缓冲,当DIR=1,R/C=1时,系统通过74LS245读AD574转换结果;当DIR=0,R/C=0时,系统用假写外设操作来启动AD574做双极性A/D转换。由于电压从10VIN输入,因而外接+12V和−12V电源即可。译码电路用系统地址线A9A1参加译码,IOR和IOW也参加译码。信号AEN必须参加译码,以避开DMA操作时对AD574的误操作。地址A0接AD574的A0,当用偶地址假写AD574时,启动12位A/D转换,否则,启动8位A/D转换;当用偶地址读AD574时,读出高8位,否则读出低4位。由于AD574的转换结束信号STS没有考虑,在此使用延时的方法实现转换。微型计算机原理第8章共236页,您现在浏览的是第119页!(1)数据引脚D7D0:数据线,双向三态,与系统数据总线连接。(2)片选信号CS:输入信号,低电平时选中此片。由CPU输出的地址经地址译码器产生。(3)地址线A0,A1:这两根线接到系统地址总线的A0,A1上,当CS为低电平,且8253被选中时,用它们来选择8253内部的四个寄存器。(4)读信号RD:输入信号,低电平有效。由CPU发出,用于控制对选中的8253内寄存器的读操作。微型计算机原理第8章共236页,您现在浏览的是第120页!(7)门控脉冲信号GATE0~GATE2:计数器0、计数器1和计数器2的门控制脉冲输入端,是由外部送入的门控脉冲,该信号的作用是控制启动定时器/计数器工作。(8)输出信号OUT0~OUT2:计数器0、计数器1和计数器2的输出端。当计数器计数到0时,该端输出一标志信号,从而产生不同工作方式时的输出波形。微型计算机原理第8章共236页,您现在浏览的是第121页!1) 3个独立的16位计数器每个计数器具有相同的内部结构,其逻辑框图如图8.3所示。它包括一个8位的控制寄存器、一个16位的计数初值寄存器CR、一个16位的减1计数器CE和一个16位的输出锁存寄存器OL。16位的计数初值寄存器CR和16位的输出锁存寄存器OL共同占用一个I/O端口地址,CPU用输出指令向CR预置计数初值,用输入指令读回OL中的数值,这两个寄存器都没有计数功能,只起锁存作用。16位的减1计数器CE执行计数操作,其操作方式受控制寄存器控制,最基本的操作是:接受计数初值寄存器的初值,对CLK信号进行减1计数,把计数结果送输出锁存寄存器中锁存。微型计算机原理第8章共236页,您现在浏览的是第122页!2)控制寄存器控制寄存器用来保存来自CPU的控制字。每个计数器都有一个控制命令寄存器,用来保存该计数器的控制信息。控制字将决定计数器的工作方式、计数形式及输出方式,亦决定如何装入计数初值。8253的3个控制寄存器只占用一个地址号,而靠控制字的最高两位来确定将控制信息送入哪个计数器的控制寄存器中保存。控制寄存器只能写入,不能读出。微型计算机原理第8章共236页,您现在浏览的是第123页!4)读/写逻辑读/写逻辑的任务是接收来自CPU的控制信号,完成对8253内部操作的控制。这些控制信号包括读信号RD、写信号WR、片选信号CS以及用于片内寄存器寻址的地址信号A0和A1。当片选信号有效,即CS=0时,读写逻辑才能工作。该控制逻辑根据读/写命令及送来的地址信息,决定三个计数器和控制寄存器中的哪一个工作,并控制内部总线上数据传送的方向。微型计算机原理第8章共236页,您现在浏览的是第124页!表8.18253端口地址及内部操作微型计算机原理第8章共236页,您现在浏览的是第125页!8.1.28253的编程8253在工作之前,用户首先要为某一计数器(计数器02)写入控制字以确定其工作方式;写入定时/计数初值;在定时/计数工作过程中,有时还需要读取某计数器当前的计数值。本节首先介绍8253的控制字格式,然后对8253的读写操作进行介绍,并给出8253编程实例。

1.8253的控制字格式8253的控制字格式如图8.4所示。微型计算机原理第8章共236页,您现在浏览的是第126页!D7D6位是控制字的计数器编号。由于8253有3个独立的控制寄存器,但它们共用一个端口地址(A1A0=11时,见表8.1),因此,控制字中使用最高两位表明将控制字写入哪个计数器的控制寄存器中。D5D4位用来设定计数器的数据读/写方式。在给计数器写入计数初值时,可以赋16位的初值,也可以只赋8位(另8位被自动置0),8位初值可以是高字节,也可以是低字节。在读取计数器当前的计数值时,计数器并未停止计数,有可能在先后读高低字节时,计数器的值发生变化,因此有必要先锁存当前的计数值,然后再分字节读出,先读出低8位数据,后读出高8位数据。微型计算机原理第8章共236页,您现在浏览的是第127页!2.8253的读/写操作1)写操作所谓写操作是指CPU对8253写入控制字或写入计数初值。8253在开始工作之前,CPU要对其进行初始化编程(写入控制字和计数初值),具体应注意以下两点:①对每个计数器,必须先写控制字,后写计数初值。因为后者的格式是由前者决定的。②写入的计数初值必须符合控制字(D5D4两位)决定的格式。16位数据应先写低8位,再写高8位。当给8253中的多个计数器进行初始化编程时,其顺序可以任意,但对每个计数器进行初始化时必须遵循上述原则。微型计算机原理第8章共236页,您现在浏览的是第128页!②在计数的过程中不影响CE的计数而读取计数值:为达此目的,应先对8253写入一个具有锁存功能的控制字,即D5D4位应为00,这样就可以将当前的CE内容锁存入OL中,然后再用输入指令将OL的内容读到CPU中。当CPU读取了计数值后,或对计数器重新进行初始化编程后,8253会自动解除锁存状态,OL中的值又随减1计数器CE值变化。微型计算机原理第8章共236页,您现在浏览的是第129页!;计数器1的初始化程序 MOV DX,38BH ;给计数器1送控制字 MOV AL,01010100B OUT DX,AL MOV DX,389H ;计数初值送低8位 MOV AL,18H OUT DX,AL微型计算机原理第8章共236页,您现在浏览的是第130页!8.1.38253的工作方式8253有六种不同的工作方式。在不同的工作方式下,计数过程的启动方式不同,OUT端的输出波形不同,自动重复功能、GATE的控制作用以及更新计数初值对计数过程的影响也不完全相同。同一芯片中的三个计数器,可以分别编程选择不同的工作方式。微型计算机原理第8章共236页,您现在浏览的是第131页!图8.5方式0的波形微型计算机原理第8章共236页,您现在浏览的是第132页!在计数过程中,随时可以写入新的计数值初值,计数器使用新的初值重新开始计数(若新初值是16位,则在送完字节后中止现行计数,送完第

温馨提示

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

评论

0/150

提交评论