微原-第9章2讲解

上传人:我** 文档编号:114743931 上传时间:2019-11-12 格式:PPT 页数:20 大小:335KB
返回 下载 相关 举报
微原-第9章2讲解_第1页
第1页 / 共20页
微原-第9章2讲解_第2页
第2页 / 共20页
微原-第9章2讲解_第3页
第3页 / 共20页
微原-第9章2讲解_第4页
第4页 / 共20页
微原-第9章2讲解_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《微原-第9章2讲解》由会员分享,可在线阅读,更多相关《微原-第9章2讲解(20页珍藏版)》请在金锄头文库上搜索。

1、,本教案内容,第9章 定时/计数器8253应用设计 8253的引脚功能及特点 8253的原理结构及工作原理 8253的控制字及工作方式 8253与系统总线的接口方法 8253的应用设计,在采用8253进行定时/计数器设计时,首先应该将它与CPU正确连接,在已经设计好8086系统总线情况下,可以直接利用系统总线中的信号与8253连接。 这里给出三种系统总线情况下8253的连接方法: 8086的最小方式 8086的最大方式 IBM PC系统机。,8253与系统总线的接口方法,8253与系统总线的接口方法,图 8086最小方式系统总线与8253的连接框图,在8086最小方式总线下,系统总线与8253

2、连接框图如右图所示。图中译码电路根据给定的8253端口地址确定,这里 和A0均为低电平有效,而且约定采用A2、A1作为8253的内部地址线。图中给出使用偶地址的情况,当采用奇地址时,只需要将图中的地址信号A0换成 ,并且将8086总线的D7D0换成D15D8。,图 8086最大方式系统总线与8253的连接框图,在8086最大方式总线下,系统总线与8253连接框图如图9.15所示。与图9.14类似,只是将读写信号变成为 和 。图中给出使用偶地址的情况,当采用奇地址时,只需要将图中的地址信号A0换成 ,并且将8086总线的D7D0换成D15D8。,8253与系统总线的接口方法,在IBM PC机系统

3、中,采用8088的最大方式,而且由于系统中包含DMA机构,因此,设计端口和存储器的译码电路时,必须是非DMA操作模式,即AEN=0,这样,IBM PC机系统总线与8253连接框图如右图所示。应该注意,系统的数据总线只有8位,故没有 信号。,图 IBM PC机系统总线与8253的连接框图,8253与系统总线的接口方法,8253的应用设计,例9.1 在以8086构成的最大方式系统中,有一片8254的端口地址分别为301H、303H、305H和307H,给定的外部时钟为512kHz。要求: (1) 利用计数器0产生周期为1ms的周期信号,请编写初始化程序;利用这一计数器能产生的最低信号频率为 ,这时

4、的时常数CR0= 。 (2)利用计数器1和2产生如下图所示的周期信号,并编写初始化程序。 (3)画出8253的端口译码电路(地址线只使用 A0A9)及其连接图。,图 8253所要产生的周期信号,解:设给定的外部时钟为CLK,其周期T = 1/512kHz = 1.953125s。 (1)为了得到1ms的周期信号,因此计数器0应该采用方式2或方式3,其时常数CR0 = 1ms/1.953125s =512。利用这个计数器分频时,其最大的分频次数为62256,这时得到最低的频率为512kHz/62256,即约为8.22Hz。 (2) 为了产生如图9.17所示的周期信号,应该采用方式2,但在方式2下

5、,其低电平时间仅为一个时钟周期,因此,利用一个计数通道无法实现这个任务。现在采用计数器1和计数器2联合,先利用计数器1产生周期为1.5ms的周期信号,然后将输出OUT1信号作为计数器2的时钟输入CLK2,这样可以实现题目的要求。 对于计数器1,工作方式可以选用方式2或方式3,一般采用方式3,这样可以使产生的信号(近似)对称,其时常数CR1 = 1.5ms/1.953125s = 768 ,需要采用16位的时常数表示。对于计数器2,工作方式只能选用方式2,其时常数CR2 =(3s +1.5ms)/ 1.5ms = 3001, 也需要采用16位的时常数表示。,8253的应用设计,8253的应用设计

6、,8253的初始化程序段如下: MOV DX,307H ;写计数器1方式控制字 MOV AL,0111 0110B OUT DX,AL MOV DX,303H ;写计数器1时常数 MOV AX,768 OUT DX,AL XCHG AL,AH OUT DX,AL MOV DX,307H ;写计数器2方式控制字 MOV AL,1011 0100B OUT DX,AL MOV DX,305H ;写计数器2时常数 MOV AX,3001 OUT DX,AL XCHG AL,AH OUT DX,AL,(3)根据上面分析和题目给定的条件,可以画出8253的地址译码电路和连接图,如下图所示。,8253的应

7、用设计,图9.18 8253的地址译码电路及其连接图,8253的应用设计,例9.2 设8253的端口地址为260H263H,外部时钟信号为1MHz,要求产生如下图所示的周期波形,画出8253的连接图,并编写初始化程序段。,图 8253所要产生的周期信号,解:本题仅采用8253的三个计数通道来实现。分两步实现:(1)由于要产生周期信号,因此必定包含方式2或方式3,我们采用方式3产生周期为1s+12ms = 1012ms的方波信号,题目给定的外部时钟为1MHz,这时需要的分频系数(即时常数)为:1012ms/1s = 1012000,显然,通过一个计数通道无法实现,所以,采用计数器0和计数器1联合

8、产生,CR0 = 1000,CR1=1012,这样OUT1的周期为1ms。,(2)利用计数器2的方式1实现单脉冲形成,以此作为要求产生信号的低电平,其时常数CR2 = 1s/1ms - 1 = 999,计数器0的OUT0信号作为计数器2的时钟输入信号,OUT1作为计数器2的硬件触发信号,确保周期为1012ms。8253的连接图如图9.20所示,各个OUT端产生的信号如下图所示。,图 OUT端产生的信号,8253的应用设计,图 8253的连接图,例9.3 有一个未知频率的对称周期信号s(t)(频率范围在100Hz2kHz之间),现在8086最小系统中已经设计了一片8253,其端口地址为380H、

9、382H、384H和386H,外部可以使用的标准信号源为1MHz,设计测量输入s(t)信号的频率,并将结果保存在SFR字单元中。,8253的应用设计,解:测量信号频率的方法有两种:计数法和测周期法,所谓计数法是指在一个确定的时间t内测出s(t)的脉冲个数N,这样s(t)的周期约为t/N,要求t足够长,使N100。所谓测周期法是指在s(t)的一个周期内测出已知标准周期信号(设周期为T0)周期数N,则s(t)的周期约为NT0,这种方法也要求N100,即基准频率信号的周期足够短。 根据题目给定的信号,这里应该采用测周期法,基准频率信号为1MHz,T0 = 1 s。由于题目给定被测信号s(t)为对称的

10、周期信号,因此只需要测量半个周期Th,根据给定的频率范围可以计算出250sTh5000s,这样可以保证测出的周期数250N5000,确保测量的精度要求。,利用计数器0实现输入信号s(t)频率的测量,将基准信号1MHz加到CLK0端,s(t)加到GATE0端,并同时将s(t)连接到8259的中断请求TR0端,8253的连接图如图9.22所示。信号频率测量关系如图9.23所示。计数器采用方式2,时常数取最大值,这样当GATE0端有上升沿查询时,可以启动计数器进行“减1”计数,当GATE0出现低电平时,暂停计数,并一直保留到CPU产生中断,在中断服务子程序中可以读取计数值,与初值相减后再加1就可以得

11、到s(t)半周期内所包含的基准周期数。,图 信号频率测量关系,8253的应用设计,图 信号频率测量连接图,8253的初始化程序段如下: MOV DX,386H ;写计数器0方式控制字 MOV AL,0011 0100B OUT DX,AL MOV DX,380H ;写计数器0时常数 MOV AL,0 OUT DX,AL OUT DX,AL STI ;开中断,中断服务子程序的主要内容为: PUSH AX PUSH BX PUSH DX MOV DX,386H ;发计数器0的锁存命令 MOV AL,0000 0000B OUT DX,AL MOV DX,380H ;读计数值 IN AL,DX XC

12、HG AL,AH IN AL,DX XCHG AL,AH,NEG AX INC AX MOV BX,AX ;计算信号频率 MOV DX, 000FH MOV AX, 4240H DIV BX MOV SFR,AX ;保存信号频率 POP DX POP BX POP AX IRET,例94 利用8253产生可变频率的时钟信号y(t),外部基准时钟为1MHz,要求根据键盘输入的2位十进制数,产生100种时钟信号,其分频系数分别是基准信号的2分频101分频。 解:这里只需要一个计数器,设采用计数器0,其CLK0接外部基准时钟1MHz,GATE0接+5V,OUT0即为产生的时钟信号y(t)。工作方式设

13、置成方式3,其时常数为输入十进制数加2。,设在数据段已经定义好键盘缓冲区KB_BUFF: KB_BUFF DB 10 DB ? DB 10 DUP(?) 设8253的控制字寄存器地址为COUNTD,计数器0的端口地址为COUNTA,则8253的应用程序段如下: MOV DX,COUNTD ;写计数器0方式控制字 MOV AL,0001 0110B OUT DX,AL,8253的应用设计,INPUT: MOV AH,0AH ;输入2位十进制数 LEA DX,KB_BUFF INT 21H MOV CL,KB_BUFF+1 ;取出输入个数 CMP CL,2 JA INPUT ;输入个数超出2个时,

14、无效 MOV AL,KB_BUFF+2 ;取出十位 SUB AL,30H JC INPUT ;非数字时,无效 CMP AL,9 JA INPUT ;非数字时,无效,MOV CL,KB_BUFF+3 ;取出个位 SUB CL,30H JC INPUT ;非数字时,无效 CMP CL,9 JA INPUT ;非数字时,无效 MOV BL,10 ;十进制数变换成二进制数 MUL BL ADD AL,CL ADD AL,2 ;修正 MOV DX,COUNTA ;写计数器0时常数 OUT DX,AL JMP INPUT,例95 在一个由8086构成的最小方式系统中,周期执行某一段程序(设用子程序MAIN

15、_PROC表示),设MAIN_PROC子程序的执行时间为15ms,要求设计一片8253(端口地址为20H27H中的偶地址),外部基准时钟为100kHz,完成当程序执行异常时,自动进行复位操作。 解:当程序正常执行时,每次执行MAIN_PROC子程序的时间为15ms,如果一旦程序执行异常,则执行MAIN_PROC子程序的时间必定会超过15ms,根据这一点可以判定程序执行是否正常。 8086 CPU的RESET(复位)端为高电平时,可以使CPU得到复位,为此可以采用8253计数器的方式0实现程序执行异常的检测。,8253的应用设计,图 8253的连接图,图 程序执行异常的检测时序示意图,如图所示。

16、我们在每次调用子程序MAIN_PROC之前都写入计数器的时常数,这样,两次写时常数的时间间隔为15ms。然后计数器0工作在方式0,其时常数确定的定时时间为18ms,即时常数为 18ms/0.1ms-1=179。这样,在程序执行正常情况下,写入时常数后执行MAIN_PROC子程序,还没有达到定时的时间,又会写入时常数,从而确保OUT0端一直为低电平;当程序执行异常情况下,写入时常数后执行MAIN_ PROC子程序,由于程序执行异常,未能按时返回到主程序,当达到18ms时(如图虚线表示),就会在OUT0产生上升沿,通过处理后,可以产生CPU的RESET信号。8253的连接图如右上图所示。,8253的应用程序段如下: MOV DX,26H ;写计数器0方式控制字 MOV AL,0001 0000B RESTART: OUT DX, AL MOV DX, 20H ;写计数器0时常数 MOV AL, 179 OUT DX, AL CALL MA

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号