微型计算机原理第8章.ppt
《微型计算机原理第8章.ppt》由会员分享,可在线阅读,更多相关《微型计算机原理第8章.ppt(236页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 可编程接口芯片及应用 第8章 可编程接口芯片及应用 8.1可编程定时器可编程定时器/计数器芯片计数器芯片8253/82548.2可编程并行接口芯片可编程并行接口芯片8255A8.3串行通信及可编程串行接口芯片串行通信及可编程串行接口芯片8.4模模/数数(A/D)与数与数/模模(D/A)转换技术及其接口转换技术及其接口第8章 可编程接口芯片及应用 8.1可编程定时器可编程定时器/计数器芯片计数器芯片8253/8254实现定时的方法有三种:软件定时、不可编程的硬件定时和可编程的硬件定时。软件定时是通过让机器执行一段没有具体操作目的的程序来实现的。由于CPU执行每条指令都需要一个确定的时间,
2、因此,只要选择适当的指令和安排适当的循环次数就很容易实现软件定时,但软件定时占用CPU资源,降低了CPU的利用率;不可编程的硬件定时尽管定时电路并不很复杂,但这种定时电路在硬件连接好以后,定时值和定时范围不能由程序来控制和改变,使用不灵活;可编程定时器/计数器是为方便计算机系统的设计和应用而研制的,定时值及其范围可以很容易地由软件来控制和改变,能够满足各种不同的定时和计数要求,因此得到了广泛的应用。第8章 可编程接口芯片及应用 8.1.1 8253的结构与功能的结构与功能 1.8253的引脚的引脚8253是24脚双列直插式芯片,用+5V电源供电。芯片内有三个相互独立的16位定时/计数器。825
3、3的引脚和功能框图如图8.1所示。图图8.18253引脚及功能结构引脚及功能结构第8章 可编程接口芯片及应用 (1)数据引脚D7D0:数据线,双向三态,与系统数据总线连接。(2)片选信号CS:输入信号,低电平时选中此片。由CPU输出的地址经地址译码器产生。(3)地址线A0,A1:这两根线接到系统地址总线的A0,A1上,当CS为低电平,且8253被选中时,用它们来选择8253内部的四个寄存器。(4)读信号RD:输入信号,低电平有效。由CPU发出,用于控制对选中的8253内寄存器的读操作。第8章 可编程接口芯片及应用 (5)写信号WR:输入信号,低电平有效。由CPU发出,用于控制对选中的8253内
4、部寄存器的写操作。(6)时钟脉冲信号CLK0CLK2:计数器0、计数器1和计数器2的时钟输入端。由CLK引脚输入的脉冲可以是系统时钟(或系统时钟的分频脉冲)或其他任何脉冲源所提供的脉冲。该脉冲可以是均匀的、连续的并具有精确周期的,也可以是不均匀的、断续的、周期不确定的脉冲。时钟脉冲信号的作用是在8253进行定时或计数时,每输入一个时钟信号,便使计数值减1。若CLK是由精确的时钟脉冲提供,则8253作为定时器使用;若CLK是由外部事件输入的脉冲,则8253作为计数器使用。第8章 可编程接口芯片及应用 (7)门控脉冲信号GATE0GATE2:计数器0、计数器1和计数器2的门控制脉冲输入端,是由外部
5、送入的门控脉冲,该信号的作用是控制启动定时器/计数器工作。(8)输出信号OUT0OUT2:计数器0、计数器1和计数器2的输出端。当计数器计数到0时,该端输出一标志信号,从而产生不同工作方式时的输出波形。第8章 可编程接口芯片及应用 28253的内部结构的内部结构8253内部结构框图如图8.2所示。它由数据总线缓冲器、读/写逻辑、控制字寄存器以及3个独立的16位计数器组成。图8.28253内部结构框图第8章 可编程接口芯片及应用 1)3个独立的16位计数器每个计数器具有相同的内部结构,其逻辑框图如图8.3所示。它包括一个8位的控制寄存器、一个16位的计数初值寄存器CR、一个16位的减1计数器CE
6、和一个16位的输出锁存寄存器OL。16位的计数初值寄存器CR和16位的输出锁存寄存器OL共同占用一个I/O端口地址,CPU用输出指令向CR预置计数初值,用输入指令读回OL中的数值,这两个寄存器都没有计数功能,只起锁存作用。16位的减1计数器CE执行计数操作,其操作方式受控制寄存器控制,最基本的操作是:接受计数初值寄存器的初值,对CLK信号进行减1计数,把计数结果送输出锁存寄存器中锁存。第8章 可编程接口芯片及应用 图8.3计数器内部结构框图第8章 可编程接口芯片及应用 2)控制寄存器控制寄存器用来保存来自CPU的控制字。每个计数器都有一个控制命令寄存器,用来保存该计数器的控制信息。控制字将决定
7、计数器的工作方式、计数形式及输出方式,亦决定如何装入计数初值。8253的3个控制寄存器只占用一个地址号,而靠控制字的最高两位来确定将控制信息送入哪个计数器的控制寄存器中保存。控制寄存器只能写入,不能读出。第8章 可编程接口芯片及应用 3)数据缓冲器数据缓冲器是三态、双向8位缓冲器。它用于8253和系统数据总线的连接。CPU通过数据缓冲器将控制命令字和计数值写入8253计数器,或者从8253计数器中读取当前的计数值。第8章 可编程接口芯片及应用 4)读/写逻辑读/写逻辑的任务是接收来自CPU的控制信号,完成对8253内部操作的控制。这些控制信号包括读信号RD、写信号WR、片选信号CS以及用于片内
8、寄存器寻址的地址信号A0和A1。当片选信号有效,即CS=0时,读写逻辑才能工作。该控制逻辑根据读/写命令及送来的地址信息,决定三个计数器和控制寄存器中的哪一个工作,并控制内部总线上数据传送的方向。第8章 可编程接口芯片及应用 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
9、个计数器内的3个控制寄存器的共用地址,至于CPU是给哪个计数器送控制字,则由控制字中的最高两位的编码来决定。第8章 可编程接口芯片及应用 表表8.18253端口地址及内部操作端口地址及内部操作第8章 可编程接口芯片及应用 8253计数器在工作之前。用户必须对其进行初始化编程:首先CPU用输出指令向控制寄存器送控制字,然后再用输出指令向计数初值寄存器CR预置计数/定时的初值。启动工作后,CR中的初值就送入减1计数器CE对CLK输入的计数/定时脉冲信号进行减1计数。当CE中的内容减为0,表示计数/定时到,则OUT端输出信号。输出信号的波形形式由工作方式决定。第8章 可编程接口芯片及应用 8.1.2
10、 8253的编程的编程8253在工作之前,用户首先要为某一计数器(计数器02)写入控制字以确定其工作方式;写入定时/计数初值;在定时/计数工作过程中,有时还需要读取某计数器当前的计数值。本节首先介绍8253的控制字格式,然后对8253的读写操作进行介绍,并给出8253编程实例。1.8253的控制字格式的控制字格式8253的控制字格式如图8.4所示。第8章 可编程接口芯片及应用 图8.48253控制字格式第8章 可编程接口芯片及应用 D7D6位是控制字的计数器编号。由于8253有3个独立的控制寄存器,但它们共用一个端口地址(A1A0=11时,见表8.1),因此,控制字中使用最高两位表明将控制字写
11、入哪个计数器的控制寄存器中。D5D4位用来设定计数器的数据读/写方式。在给计数器写入计数初值时,可以赋16位的初值,也可以只赋8位(另8位被自动置0),8位初值可以是高字节,也可以是低字节。在读取计数器当前的计数值时,计数器并未停止计数,有可能在先后读高低字节时,计数器的值发生变化,因此有必要先锁存当前的计数值,然后再分字节读出,先读出低8位数据,后读出高8位数据。第8章 可编程接口芯片及应用 当D5D4=00时,计数器的当前计数值被锁存在OL中,此时计数器照常计数,但OL中的值不变,待CPU将OL中的两字节数据读走后,OL中的内容又随减1计数器CE变化。当D5D4=01,只读/写低8位,高8
12、位自动置0(写计数初值时);D5D4=10时,只读/写高8位,低8位自动置0(写计数初值时);D5D4=11时,先读/写低8位,再读/写高8位。D3D2D1位决定了计数器的工作方式。8253共有六种工作方式,后面将一一介绍。D0位决定计数器的数制。D0=0,选择二进制计数;D0=1,选择十进制计数。第8章 可编程接口芯片及应用 28253的读/写操作1)写操作所谓写操作是指CPU对8253写入控制字或写入计数初值。8253在开始工作之前,CPU要对其进行初始化编程(写入控制字和计数初值),具体应注意以下两点:对每个计数器,必须先写控制字,后写计数初值。因为后者的格式是由前者决定的。写入的计数初
13、值必须符合控制字(D5D4两位)决定的格式。16位数据应先写低8位,再写高8位。当给8253中的多个计数器进行初始化编程时,其顺序可以任意,但对每个计数器进行初始化时必须遵循上述原则。第8章 可编程接口芯片及应用 2)读操作所谓读操作是指读出某计数器的当前计数值到CPU中。有两种读取当前计数值的方法:先使计数器停止计数(在GATE端加低电平或关闭CLK脉冲):根据送入的控制字中的D5D4位的状态,用一条或两条输入指令读CE的内容。实际上,CPU是通过输出锁存器OL读出当前计数值的,因为在计数过程中,OL的内容是跟随CE内容变化的。此时由于CE不再计数,故可稳定地读出OL(即CE)的内容。第8章
14、 可编程接口芯片及应用 在计数的过程中不影响CE的计数而读取计数值:为达此目的,应先对8253写入一个具有锁存功能的控制字,即D5D4位应为00,这样就可以将当前的CE内容锁存入OL中,然后再用输入指令将OL的内容读到CPU中。当CPU读取了计数值后,或对计数器重新进行初始化编程后,8253会自动解除锁存状态,OL中的值又随减1计数器CE值变化。第8章 可编程接口芯片及应用 例8.1设8253芯片的端口地址为388H38BH。现要求计数器0工作在方式3,计数初值为2354,十进制计数;计数器1工作在方式2,计数初值为18H,二进制计数。试根据上述要求编写初始化程序及读取计数器0当前计数值的程序
15、。;计数器0的初始化程序MOVDX,38BH;给计数器0送控制字MOVAL,00110111BOUTDX,ALMOVDX,388H;送计数初值的低8位MOVAL,54HOUTDX,ALMOVAL,23H;送计数初值的高8位OUTDX,AL第8章 可编程接口芯片及应用 ;计数器1的初始化程序MOVDX,38BH;给计数器1送控制字MOVAL,01010100BOUTDX,ALMOVDX,389H;计数初值送低8位MOVAL,18HOUTDX,AL第8章 可编程接口芯片及应用 ;计数器0当前计数值读出程序MOVDX,38BH;送计数器0当前计数值锁存命令MOVAL,00HOUTDX,ALMOVDX
16、,388H;读出当前计数值的低8位INAL,DXMOVCL,ALINAL,DX;读出当前计数值的高8位MOVCH,AL第8章 可编程接口芯片及应用 8.1.3 8253的工作方式的工作方式8253有六种不同的工作方式。在不同的工作方式下,计数过程的启动方式不同,OUT端的输出波形不同,自动重复功能、GATE的控制作用以及更新计数初值对计数过程的影响也不完全相同。同一芯片中的三个计数器,可以分别编程选择不同的工作方式。第8章 可编程接口芯片及应用 1方式0计数结束产生中断这是一种软件启动、不能自动重复的计数方式。如图8.5所示,写入方式0的控制字(CW)后,其输出端变低。再写入计数初值N(图中N
17、=5),在写信号WR以后经过CLK的一个上升沿和一个下降沿,初值进入减1计数器CE。计数器减到0后,OUT成为高电平。此信号通常接至8259A的IR端作为中断请求信号。第8章 可编程接口芯片及应用 图8.5方式0的波形第8章 可编程接口芯片及应用 图8.6方式0时GATE信号的作用第8章 可编程接口芯片及应用 在计数过程中,随时可以写入新的计数值初值,计数器使用新的初值重新开始计数(若新初值是16位,则在送完第一字节后中止现行计数,送完第二个字节后才重新开始计数)。由上述可知,方式0主要用于单次计数,计数到时,利用OUT信号作为查询信号或中断请求信号。由于8253内部没有中断控制管理电路,故用
18、OUT作为中断请求信号时,需要通过中断优先级控制电路(如8259)向CPU申请中断。第8章 可编程接口芯片及应用 2方式方式1可编程单次脉冲可编程单次脉冲这是一种硬件启动、不能自动重复但通过GATE的正跳变可使计数过程重新开始的计数方式。在写入方式1的控制字后OUT成为高电平,在写入计数初值后,要等GATE信号出现正跳变时才能开始计数。在下一个CLK脉冲到来后,OUT变低,将计数初值送入CE并开始减1计数,直到计数器减到0后OUT变为高电平。如图8.7所示,计数过程一旦启动,GATE即使变成低电平也不会使计数中止。计数完成后若GATE再来一个正跳变,计数过程又重复一次。也就是说对应GATE的每
19、一个正跳变,计数器都输出一个宽度为N*TCLK(其中N为计数初值,TCLK为CLK信号的周期)的负脉冲,因此称这种方式为可编程单次脉冲方式。第8章 可编程接口芯片及应用 图8.7方式1的波形第8章 可编程接口芯片及应用 在计数过程启动之后计数完成之前,若GATE又发生正跳变,则计数器又从初值开始重新计数,OUT端仍为低电平,两次的计数过程合在一起使OUT输出的负脉冲加宽了。在方式1计数过程中,若写入新的计数初值,也只是写入到计数初值寄存器中,并不马上影响当前计数过程,同样要等到下一个GATE正跳变启动信号,计数器才接收新初值重新计数。第8章 可编程接口芯片及应用 3方式2分频工作方式方式2既可
20、以用软件启动(GATE=1时写入计数初值后启动),也可以用硬件启动(GATE=0时写入计数初值后并不立即开始计数,等GATE由低变高时启动计数)。方式2一旦启动,计数器就可以自动重复地工作。如图8.8所示,写入控制字后,OUT信号变为高电平,若计数初值N=3,启动计数后,以CLK信号的频率进行减1计数。当减到1时,OUT输出一个宽度为一个CLK时钟周期的负脉冲,OUT恢复成高电平后,计数器又重新开始计数。可以看出,OUT输出信号的频率为CLK信号频率的1/N,即N次分频,故称这种工作方式为分频工作方式。第8章 可编程接口芯片及应用 图8.8方式2的波形第8章 可编程接口芯片及应用 方式2需要G
21、ATE信号保持高电平。当GATE变为低电平时,停止计数。GATE由低变高后,CR中的计数初值又重新装入减1计数器CE中开始计数。方式2在计数过程中若写入新的计数初值,并不影响当前的计数过程。在本次计数结束后,才以新的计数初值开始新的分频工作方式。第8章 可编程接口芯片及应用 4方式方式3方波发生器方波发生器工作于方式3时,在计数过程中其输出前一半时间为高电平,后一半时间为低电平。其输出是可以自动重复的周期性方波,输出的方波周期为N*TCLK,如图8.9所示。图8.9方式3的波形第8章 可编程接口芯片及应用 在写入方式3控制字后,计数器OUT端立即变高。若GATE信号为高,在写完计数初值N后,开
22、始对CLK信号进行计数。计数到N/2时,OUT端变低,计完余下的N/2,OUT又变高,如此自动重复,OUT端产生周期为N*TCLK的方波。实际上,电路中对半周期N/2的控制方法是每来一个CLK信号,便让计数器减2。因此来N/2个CLK信号后,计数器就已经减到0,OUT端发生一次高低电位的变化,且又将初值置入计数器重新开始计数。若计数初值为奇数,则计数的前半周期为(N+1)/2,计数的后半周期为(N1)/2。第8章 可编程接口芯片及应用 在写入计数初值时,如果GATE信号为低电平,计数器并不开始计数。待GATE变为高电平时,才启动计数过程。在计数过程中,应始终使GATE=1。若GATE=0,不仅
23、中止计数,而且OUT端马上变高。待恢复GATE=1时,产生硬件启动,计数器又从头开始计数。在计数过程中写入新的计数初值时不影响当前的半个周期的计数。在当前的半个周期结束(OUT电位发生变化)时,将启用新的计数初值开始新的计数过程。第8章 可编程接口芯片及应用 5方式4软件触发选通方式4是一种软件启动、不自动重复的计数方式。如图8.10所示,在写入方式4的控制字后,OUT变为高电平。当写入计数初值后立即开始计数(这就是软件启动)。当计数到0后,OUT输出变为低电平,持续一个CLK脉冲周期后恢复为高电平,计数器停止计数。故这种方式是一次性的。只有CPU再次将计数初值写入CR后才会启动另一次计数过程
24、。第8章 可编程接口芯片及应用 图8.10方式4的波形第8章 可编程接口芯片及应用 6方式方式5硬件触发选通硬件触发选通方式5是一种硬件启动、不自动重复的计数方式。如图8.11所示,在写入方式5控制字后,OUT变高,写入计数初值时即使GATE信号为高电平,计数过程仍不启动,而是要求GATE信号出现一个正跳变,然后在下一个CLK信号到来后才开始计数。计数器减到0时,OUT变低,经一个CLK信号后变高且一直保持。第8章 可编程接口芯片及应用 图8.11方式5的波形第8章 可编程接口芯片及应用 由于方式5是由GATE的上升沿启动计数,同方式1一样,计数启动后,即使GATE变成低电平,也不影响计数过程
25、的进行。但若GATE信号产生了正跳变,则不论计数是否完成,计数初值将被置入计数器,并重新开始新一轮计数。若在计数过程中给计数器写入新的计数初值,此时只是将计数初值保存到CR中,并不影响当前的计数过程,在GATE产生正跳变时新的计数初值才被置入减1计数器CE开始计数。表8.2给出了8253定时器/计数器六种工作方式的特点,读者可结合上面的介绍进一步加深理解。第8章 可编程接口芯片及应用 表表8.28253工作方式比较工作方式比较第8章 可编程接口芯片及应用 8.1.4 8254与与8253的区别的区别8254是8253的改进型,它们的引脚定义与排列、硬件组成等基本上是相同的。因此8254的编程方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理
限制150内