外围接口课件.ppt

上传人:scccc 文档编号:11343469 上传时间:2021-07-28 格式:PPT 页数:79 大小:1.09MB
返回 下载 相关 举报
外围接口课件.ppt_第1页
第1页 / 共79页
外围接口课件.ppt_第2页
第2页 / 共79页
外围接口课件.ppt_第3页
第3页 / 共79页
外围接口课件.ppt_第4页
第4页 / 共79页
外围接口课件.ppt_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《外围接口课件.ppt》由会员分享,可在线阅读,更多相关《外围接口课件.ppt(79页珍藏版)》请在三一文库上搜索。

1、1,微机接口技术,第六章 外围接口 定时与计数,2,6.3 定时与计数技术,定时的方法有 3 种: 一、软件定时 二、不可编程的硬件定时 三、可编程的定时,3,一、软件定时,根据 CPU 执行每条指令需要一定的时间,重复执行一些指令就会占用一段固定的时间,通过适当地选取指令和循环次数便很容易实现定时功能,这种方法不需要增加硬件,可通过编程来控制和改变定时时间,灵活方便,节省费用。 缺点是 CPU 重复执行的这段程序的本身并没有什么具体目的,仅为延时,从而降低了 CPU 利用率。,4,二、不可编程的硬件定时,这种方法采用数字电路中的分频器将系统时钟进行适当的分频产生需要的定时信号;也可以采用单稳

2、电路或简易定时电路(如常用的 555 定时器)由外接 RC 电路控制定时时间。 这样的定时电路比较简单,利用分频不同或改变电阻R、电容C,可以使定时时间在一定范围内改变。 缺点是这种定时电路在硬件接好后,定时范围不易由程序来改变和控制,使用不甚方便,而且定时精度也不高。,5,不可编程的硬件定时,触发信号,暂稳态,稳态,时序波形,td,6,三、可编程的定时,在微机系统中,常采用软件、硬件相结合的方法,用可编程定时计数器芯片构成一个方便灵活的定时计数电路。这种电路不仅定时值和定时范围可用程序确定和改变,而且具有多种工作方式,可以输出多种控制信号,它由微处理器的时钟信号提供时间基准,故计时也精确稳定

3、。 Intel 8254定时器/计数器就是这样一种可编程序间隔定时器 PIT(Programmable Interval Timer)芯片。,7,6.3.1 可编程时间间隔定时器芯片8254,8254主要功能: .3个独立的16位计数器通道; .按二进制或十进制计数; .通道计数速率最高10MHz; .通道有6种计数方式。 8254通过编程可作为事件计数器、分频器、方波发生器、定时器、单脉冲发生器等。,8,8254内部结构,9,功能模块,(1)数据总线缓冲器 8位双向三态的缓冲器。 (2)读写控制逻辑 CS#无效时,电路禁止工作。但计数器启动后不受CS#的控制。 地址线A1A0寻址内部通道:

4、00-通道0, 01-通道1, 10-通道2, 11-控制寄存器。,10,功能模块,(3)控制字寄存器 接收来自CPU的控制字,并由控制字D7、D6位的编码决定该控制字写入哪一个计数器的控制寄存器中。,11,功能模块,(4)计数器 8254有3个独立的计数器通道,每个通道的结构完全相同。每一个通道有一个16位减法计数器,还有对应的16位初值寄存器和输出锁存器。,12,计数器的工作过程,先写通道控制寄存器,然后写入计数初值。 计数器对CLK进行减1计数,减到0,OUT输出结束信号。受GATE控制。 计数过程中,MPU可以读取当前计数值,而不影响计数。读出时,先把当前计数值打入到锁存器,读出的是锁

5、存器内容。,13,二、8254的引脚,14,(1)与CPU一侧的接口信号,8254有24条引脚,双列直插式封装。 D0-D7,三态双向数据线。 CS#,片选信号,输入,低电平有效。 WR#,写信号,输入,低电平有效。 RD#,读信号,输入,低电平有效。 A1、A0,地址输入线。,15,(2)与外部设备的接口信号,CLK0、CLK1、CLK2:时钟脉冲输入端,用于输入定时脉冲或计数脉冲信号。 GATE0、GATE1、GATE2:门控输入端。 OUT0、OUT1、OUT2:计数输出端。,16,计数器内部逻辑,CR:16位 写入两次、清零,CE:16位 计数,OL:16位 读出,状态REG:8位 读

6、出,注意:GATE信号的作用与应用,重写CR的效果。,17,8254的读写操作逻辑,18,三、8254的控制字及其编程,(1)8254的方式控制字,19,8254的编程举例,1、初始化 假设:8254占用的地址为40H-43H,43H是控制口的地址。 计数器0、1、2分别使用地址40H、41H、42H。 对计数器0初始化,计数初值为2000,采用二进制计数,方式3。,20,MOV AL,00110110B ; D7D6=00b: 计数器0;D5D4=11b: 使用16位计数值; ; D3D2D1=011b: 方式3; D0=0: 使用二进制计数 OUT 43H, AL ; 写入方式控制字 MO

7、V AL, 0D0H ; 2000D = 07D0H,取低8位 OUT 40H, AL ; 写入计数初值的低8位 MOV AL, 07H ; 2000D = 07D0H,取高8位 OUT 40H, AL ; 写入计数初值的高8位,21,BCD方式,MOV AL,1B ; D0=1: 使用BCD计数 OUT 43H, AL ; 写入方式控制字 MOV AL, 00H ; 2000的BCD码为2000H。 OUT 40H, AL ; 写入计数初值的低8位 MOV AL, 20H ; 取2000H的高8位 OUT 40H, AL ; 写入计数初值的高8位,22,2、8254的读操作,读取计数器之前,

8、要先把当前值锁存到锁存寄存器,然后由CPU读取锁存寄存器的值。 需要分2次读取,先读取低8位,再读取高8位。,23,锁存当前计数值三种方法,(1) 利用GATE信号使计数过程暂停 读取前将GATE信号置为低电平,不再计数,读取后将GATE信号恢复为高电平。一般不采用这种方法。,24,(2) 锁存一个计数器,向8254写入一个方式控制字,令其D5D4=00b,则8254锁存由D7D6指定的计数器的当前值. CPU读取输出锁存器后,自动解除锁存状态。 ;如锁存并读取计数器0 MOV AL,00000110B ; D7D6=00b:计数器0 ;D5D4=00b:锁存计数器当前值 OUT 43H, A

9、L ; 写入方式控制字 IN AL, 40H ; 读入输出锁存器的低8位 MOV AH, AL ; 暂存在AH中 IN AL, 40H ; 读入输出锁存器的高8位 XCHG AH, AL ; AX=输出锁存器的16位值,25,(3) 写“读回控制字”,26,计数器状态,27,A1 A0,8254命令关系表:,28,四、8254的6种工作方式,(1)方式0 (计数结束中断方式) (2)方式1 (可编程单稳态触发器) (3)方式2 (脉冲波发生器、分频器) (4)方式3 (方波发生器) (5)方式4 (软件触发选通方式) (6)方式5 (硬件触发选通方式),29,方式0完成计数时中断,时序如图6-

10、38。方式0的主要特点: 不能重复工作。 设置初值为n,则OUT在n+1个CLK后变为高电平。 计数时GATE必须为高电平。GATE置为低时控制暂停。 允许计数过程中改变计数值,改变的计数值立即有效。,30,31,32,方式1可重复触发的单稳态触发器,方式1的时序如图6-39。 写入控制字和初值n,并不立即计数。 GATE上升沿后,下一个脉冲的下降沿,开始计数。 OUT维持低电平,计数到0,OUT变为高。 即:GATE上升沿触发,使OUT输出宽度为n个CLK周期的负脉冲。GATE再次触发,OUT再次输出负脉冲。,33,方式1的特点,初值为n,负脉冲宽度为n个CLK脉冲周期。 GATE上升沿可重

11、复触发输出负脉冲。 计数过程中,GATE再触发,使输出负脉冲比原来加宽了。 计数过程可以改变计数值,下次有效。,34,35,方式2分频器、脉冲波发生器,方式2的时序如图6-40。 输出控制字后OUT为高。写入初值,自动计数,计数器减到1,OUT变低,输出一个CLK宽度的负脉冲。 自动重新计数。 方式2可用作脉冲波发生器,其速率为:FOUT =FCLKn。,36,方式2特点: 置初值n后通道连续工作,输出固定频率的负脉冲: FOUT =FCLKn 。 计数过程中GATE为高,GATE变低时,暂停计数。 计数过程改变n值,下次有效。,37,38,39,方式3方波发生器,方式3的波形时序如图6-41

12、。 方式3和方式2不同的是OUT输出脉冲的占空比不同:方式3用来产生一定频率的方波。 n为偶数,占空比为1:1,即输出对称方波; n为奇数,(n+1)/2个CLK周期OUT输出高,(n1)/2个CLK周期输出低,输出基本对称矩形波。,40,方式3特点: n为偶数,输出方波,若n为奇数,输出基本对称矩形波。 计数中GATE变低,计数暂停。 写入新计数值,立即有效。 与方式2比较:OUT波形不同.,方式3,41,42,43,方式4软件触发选通,方式4波形见图6-42。 写入控制字,OUT为高。 写入初值n开始计数。计数到0,OUT输出一个CLK周期的负脉冲。 每写入初值n产生一个选通信号。,44,

13、方式4,方式4特点: 写入初值后n+1个CLK时(GATE为1)输出一个负脉冲。 GATE为1时启动计数。 计数过程改变n值,立即有效。 与方式0比较:GATE上升沿效果、OUT波形不同。,45,46,47,48,方式5硬件触发选通,方式5的波形见图6-43。 输出控制字OUT为高,输出计数初值n后并不计数,必须由GATE上升沿触发。 计数到0,OUT输出1个CLK宽度的负脉冲,计数是一次性的。 与方式1的区别?,49,方式5的特点: 初值为n,GATE上升沿后n+1个脉冲输出1个CLK宽度的负脉冲。 过程中再次出现GATE,立即重新计数。 过程中允许改变值n,出现GATE信号,按新值开始计数

14、。,50,51,52,工作方式比较表:,53,各种方式的比较,54,8254的应用,(1)计数,55,8254的应用,(2)分频 MOV DX, 203H ; 203H为控制端口 MOV AL,00110100B ; D7D6=00b: 计数器0; D5D4=11b: 使用16位计数值; ; D3D2D1=011b: 方式2; D0=0: 使用二进制计数 OUT DX, AL ; 写入方式控制字 MOV DX, 200H ; 200H为计数器0所使用的端口 MOV AL, 0E8H ; 1000D = 03E8H,取低8位 OUT DX, AL ; 写入计数初值的低8位 MOV AL, 03H

15、 ; 1000D = 03E8H,取高8位 OUT DX, AL ; 写入计数初值的高8位,56,8254的应用,(3)级联 2个计数器的初值为N1和N2 输出频率为(10k/N1)/N2)Hz = (10k/(N1N2)Hz,57,8254在微机中应用,PC系列机定时系统结构框图,58,8254计数器作用和信号规定,59,(1) 计数器0系统定时器,工作方式:3方式,计数初值:0(65536)。,1.系统定时器,连接到8259A的IRQ0(中断类型号为8)上。 fOUT0=1.1931816MHz/65536=18.2Hz, 即:每秒产生18.2次中断用于日时钟计时。,应用:系统BIOS提供

16、INT 1CH用户定时中断接口; INT 8H(IRQ0)调用INT 1CH。,2.软盘驱动器马达控制,60,日时钟运行原理,61,日时钟定时中断服务流程,62,初始值计算,计数器0:55ms(54.925 493ms)产生一次中断,即每秒产生18.206次中断请求。 计数初始值1.193 18MHz18.206 65 536(即0000H),63,计数器0初始化程序,MOV AL,35H;设置计数器0:方式3,双字节,二进 制计数 OUT 43H,AL;写入控制寄存器 MOV AL,0;计数初值 OUT 40H,AL;写低字节 OUT 40H,AL;写高字节,64,(2)计数器1动态存储器定

17、时刷新控制,工作方式:2方式,计数初值:18。,连接到8237的DREQ0上,定时产生负脉冲。 脉冲宽度=1/ 1.1931816MHz=838ns, 脉冲周期=18/1.1931816MHz=15.08s, 即:每隔15.08s产生一个脉冲用于刷新。,65,初始值计算,计数器1: 计数初始值15.084s1.19318 MHz17.997 918,66,计数器1初始化程序,MOV AL,54H;设置计数器1:只写低字节,方式2, 二进制计数 OUT 43H,AL;写入控制字寄存器 MOV AL,18 ;写入计数初值18 OUT 41H,AL;计数器1,67,(3) 计数器2扬声器音频发生器,

18、工作方式:3方式,计数初值:由调用程序控制。,与8255的PB口D1信号“与”后连接到扬声器上,控制扬声器发生频率及时长。,软件控制发声:T/C2的OUT2=1,CPU控制8255的PB口的D1位的电平实现; 硬件控制发声:8255的PB口的D1位为高电平,控制8254的T/C2的OUT2实现。,68,IBM-PC系列发声驱动电路示意,69,初始值计算,计数器2: 计数初始值和发声频率相关。 假设扬声器的发声频率为1kHz,则 计数初始值1.193 18 MHz1kHz1 190,70,计数器2的发声程序,BEEP PROC MOV AL,0B6H;设置计数器2,写双字节,方式3,二 进制计数

19、 OUT 43H,AL;写入控制寄存器 MOV AX,533H;装入计数初值0533H OUT 42H,AL;写入低字节 MOV AL,AH OUT 42H,AL;写入高字节 IN AL,61H;读取8255的PB口原输出值,71,计数器2的发声程序(续),MOV AH,AL;将原输出的值保留与AH中 OR AL,03H;使PB1PB0均为1 OUT 61H,AL;打开GATE2门,输出方波到扬声器 SUB CX,CX;CX循环计数,最大为216 L: LOOP L;循环延时 DEC BL;子程序入口条件,72,计数器2的发声程序(续),JNZ L;BL=6发长声(3S), BL=1发短声(0

20、.5S) MOV AL,AH;取出AH中的8255PB口的原输出值 OUT 61H,AL;恢复8255PB口。当PB1PB0不同时为高 电平时,停止发声 RET BEEPENDP,73,声音频率对照表,74,实时钟(RTC,Real Time Clock),70H/71H端口,75,MC146818的引脚及用途,76,实时钟的工作原理图,77,COMS RAM实时钟关键信息,78,访问时间,如获取月份信息: MOVAL,08HOUT70H,ALINAL,71H,79,-u 100 l 14 0B0F:0100 BF0002 MOV DI,0200 0B0F:0103 B94000 MOV CX

21、,0040 0B0F:0106 B400 MOV AH,00 0B0F:0108 88E0 MOV AL,AH 0B0F:010A E670 OUT 70,AL 0B0F:010C E471 IN AL,71 0B0F:010E AA STOSB 0B0F:010F FEC4 INC AH ;自动增加1 0B0F:0111 E2F5 LOOP 0108 0B0F:0113 CC INT 3 -g=100 AX=4000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0240 DS=0B0F ES=0B0F SS=0B0F CS=0B0F

22、IP=0113 NV UP EI PL NZ AC PO NC 0B0F:0113 CC INT 3 -d 200 l 40 0B0F:0200 09 00 57 00 21 00 05 17-04 03 A6 02 40 80 08 00 .W.!. 0B0F:0210 00 F0 00 00 02 80 02 00-04 14 00 00 00 00 00 00 . 0B0F:0220 00 00 00 00 00 00 00 00-00 00 00 00 00 00 01 BC . 0B0F:0230 00 04 20 80 00 00 00 00-00 00 00 00 00 00 00 00 . .,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1