版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章可编程定时器/计数器11.1概述11.2可编程定时/计数器825311.2可编程定时/计数器825311.2.1 8253的主要性能11.2.2 8253的内部结构及外部引脚11.2.3 8253的工作方式及波形 11.2.4 8253的编程 11.2.5 8253的应用 11.2.1 8253的主要性能
8253是三通道16位的可编程计数/定时器。
8254是8253的改进型。11.2.2 8253的内部结构及外部引脚8253各引脚的定义:D0~D7:数据线。
RD#:读控制信号,低电平有效。
WR#:写控制信号,低电平有效。A0、A1:地址线,用于选择3个计数器中的一个及选择控制字寄存器。
CS#:片选信号,低电平有效。11.2.2 8253的内部结构及外部引脚8253各引脚的定义:
CLK0~2:计数器0#、1#、2#的时钟输入端。
GATE0~2:计数器0#、1#、2#的门控制脉冲输入端,由外部设备送入门控脉冲。
OUT0~2:计数器0#、1#、2#的输出端。11.2.2 8253的内部结构及外部引脚8253的内部结构:
3个结构相同的16位计数器,
1个8位控制字寄存器。计数器内部包括:
计数初值寄存器CR,
计数执行部件CE,
输出锁存器OL。
它们都是16位寄存器,也可以作8位寄存器使用。11.2.2 8253的内部结构及外部引脚
在计数器工作时,通过程序给计数初值寄存器CR送入初始值,该初始值再被送入计数执行部件CE进行减1计数;而输出锁存器OL则用来锁存CE的内容,该内容可以由CPU进行读出操作。
8253内部的3个计数器和1个控制字寄存器,可通过地址线A0、A1,读写控制线RD#、WR#与片选CS#进行寻址,并实现相应的操作。表11.18253读写控制逻辑表11.2.3 8253的工作方式及波形方式0-中断信号发生器方式1-可编程单稳负脉冲信号发生器方式2-分频器方式3-方波信号发生器方式4-软件触发的选通脉冲信号发生器方式5-硬件触发的选通脉冲信号发生器1.方式0-中断信号发生器
工作过程:写控制字:设定工作方式后,OUT端变为低电平;写初值:8位/16位(分2次)初值;开始计数:计数值装入执行部件,每个CLK下降沿,减1计数;计数结束:减到0时,计数过程结束,OUT端变为高电平。此输出信号可作为计数结束的中断请求信号;GATE作为计数控制信号:计数过程中,GATE=1:允许计数;GATE=0:暂停计数;重新计数:计数过程中,可随时写入新的计数值;如果初值为8位,则写完初值后,按新的初值重新开始计数;如果新的初值为16位,则写入第一个字节时,立即中止计数,写入第二个字节后,按新的初值重新开始计数;计数结束后,OUT端保持高电平,直至赋新的初值。图11.5方式0时序波形图图11.5方式0时序波形图计数开始的时刻
处理器写入8253的计数初值只是写入了计数初值寄存器CR,之后到来的第一个CLK输入脉冲(需先由低电平变高,再由高变低)才将预置寄存器的初值送到计数执行部件CE减1计数器。从第二个CLK信号的下降沿,计数器才真正开始减1计数。2.方式1-可编程单稳负脉冲信号发生器
工作过程:写控制字:设定工作方式后,OUT端变为高电平;写初值:8位/16位(分2次)初值;开始计数:GATE上升沿控制计数开始。GATE上升沿的下一个时钟周期,OUT变为低电平,每个CLK下降沿,减1计数;计数结束:减到0时,计数过程结束,OUT端变为高电平。此方式可以输出一个宽度(计数初值*Tclk)可调的单拍负脉冲,可作为设备的选通信号。重设初值:计数过程中,重新写入初值,对当前计数过程不会产生影响;重新触发:计数过程中,GATE上升沿的下一个时钟脉冲计数器将从初始值重新作减1计数,此时OUT端低电平保持不变,从而加宽了输出的负脉冲宽度。重新计数:计数结束后,GATE上升沿控制新一轮计数。图11.6方式1时序波形图3.方式2-分频器
工作过程:写控制字:设定工作方式后,OUT端变为高电平;写初值:8位/16位(分2次)初值;开始计数:计数值装入执行部件,每个CLK下降沿,减1计数;计数结束:当计数器减到1时,OUT端输出将变为低电平;再经过一个时钟周期,计数值减到0后,OUT又恢复为高电平。在此方式下,计数器具有自动装入计数初值的功能,即计数器的计数过程会自动重复工作。从而产生一个n分频(n是写入计数器的初值)的连续的不对称的脉冲信号,可以作为脉冲信号发生器。重设初值:计数过程中,重新写入初值,对当前计数过程不会产生影响;计数过程控制:GATE=1:允许计数;GATE=0:停止计数,并强迫OUT输出高电平;GATE上升沿:下一个时钟周期,计数器恢复初值重新开始作减1计数。图11.7方式2时序波形图4.方式3-方波信号发生器
方式3与方式2类似,不同的是输出的波形为方波或者为近似对称的矩形波。
当计数值n为偶数:每当计数值减到n/2时,OUT端由高电平变为低电平,并一直保持计数到0,一旦计数为0时OUT端又由低变高并重新给计数器装入初值。
当计数值n为奇数:输出分频波高电平宽度为(n+1)/2计数脉冲周期,低电平宽度为(n-1)/2计数脉冲周期。
图11.8方式3时序波形图5.方式4-软件触发的选通脉冲信号发生器
工作过程:写控制字:设定工作方式后,OUT端变为高电平;写初值:8位/16位(分2次)初值;开始计数:计数值装入执行部件,每个CLK下降沿,减1计数;计数结束:减到0时,输出宽度为1个Tclk的负脉冲。该负脉冲可以作为选通信号。计数过程控制:GATE=1:允许计数;GATE=0:停止计数;重设初值:该方式是一次有效,即不重新写入计数值,就只产生一个选通脉冲。如果在计数时又写入新的计数值,则在下一个时钟周期时将把此计数值写入计数器执行部件,使计数器按此新的计数值重新计数。图11.9方式4时序波形图6.方式5-硬件触发的选通脉冲信号发生器
此方式与方式4类似,不同的是:方式4靠软件触发,而方式5是利用引脚GATE来触发。
GATE上升沿触发:下一个时钟周期,计数器开始作减1计数。在任何时刻,当GATE触发脉冲上升沿到来时,将把计数初值重新送入计数器,然后重新开始计数过程。11.2.4 8253的编程写入方式控制字写入计数值读取计数值1.写入方式控制字8253的方式控制字格式如图所示,各计数器有6种可供选择的工作方式,以完成定时、计数或脉冲发生器等多种功能。2.写入计数值
若规定只写低8位,则只写1次,且写入的为计数初值的低8位,高8位自动为0。若规定只写高8位,则只写1次,且写入的为计数初值的高8位,低8位自动为0。若规定写两次,则先写入的为计数初值的低8位,再写入的为计数初值的高8位。
选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536
选择十进制(BCD码)计数值范围:0000~99990000代表最大值10000注意:1、当采用8位二进制计数时:
在8253初始化编程的传送指令“MOVAL,n”中,n可以写成任何进制数(二进制、十进制或十六进制)的形式。2、当采用16位二进制计数时:
方法一:先把计算得到的十进制计数初值n转换成十六进制数(即16位二进制),然后分两次写入8253的指定端口。方法二:先把该十进制计数初值n直接传送给AX,然后分两次写入8253指定端口,即:
MOVAX,nOUTPORT,AL ;先写低8位(PORT为端口号)
MOVAL,AHOUTPORT,AL ;后写高8位注意:3、当采用十进制(BCD码)计数时:
将十进制计数初值n加上后缀H,以便在相应的传送指令执行后能够在AL(或AX)中得到十进制数n的BCD码表示形式。例如n=50,则应按如下方式写入:
MOVAL,50HOUTPORT,AL
如果n=1250,则需分两次写入,即:
MOVAL,50HOUTPORT,AL;先写低8位
MOVAL,12HOUTPORT,AL;后写高8位注意:4、当采用十进制(BCD码)计数时:
也可按如下方法两次写入:
MOVAX,1250HOUTPORT,AL;先写低8位
MOVAL,AHOUTPORT,AL;后写高8位
【例11.1】已知8253的端口地址为40H~43H,用8253的计数器0,每隔2ms输出一个负脉冲,设CLK0为2MHz,完成软件设计。
解:
1、计算计数初值N:2、确定控制字:根据题意,选择计数器0,工作方式2。(1)二进制计数,计数初值为4000(0FA0H),既写高字节,又写低字节。控制字为:00110100B=34H(2)BCD码计数,计数初值为4000H,低字节为0,可只写高字节。控制字为:00100101B=25H3、确定各端口地址计数器0,计数器1,计数器2,控制端口的地址分别为40H、41H、42H和43H。
4、程序:(1)采用二进制计数: MOVAL,34H ;控制字 OUT43H,AL ;写到控制端口
MOVAX,4000 ;把4000自动分离出低8位和高8位 OUT40H,AL ;先送低8位到计数器0
MOVAL,AH ;把高8位给AL
OUT40H,AL ;再送高8位到计数器0(2)采用BCD码计数: MOVAL,25H ;控制字 OUT43H,AL ;写到控制端口
MOVAL,40H ;只需写高字节,低字节自动为0 OUT40H,AL ;写高8位到计数器03.读取计数值
对8位数据线,读取16位计数值需分两次。计数在不断进行,应该将当前计数值先行锁存,然后读取。
【例11.2】设某系统中8253的端口地址为0B0~0B3H,读取计数器1当前的计数值(设计数值为16位),并存入BX寄存器的程序如下:
解: MOVAL,01000000B ;发锁存命令 OUT0B3H,AL ;写入控制端口 INAL,0B1H ;读低8位 MOVBL,AL ;存入BL中 INAL,0B1H ;读高8位 MOVBH,AL ;存入BH中
【例11.2】设某系统中8253的端口地址为0B0~0B3H,读取计数器1当前的计数值(设计数值为16位),并存入BX寄存器的程序如下:
解: MOVAL,01000000B ;发锁存命令 OUT0B3H,AL ;写入控制端口 INAL,0B1H ;读低8位 MOVBL,AL ;存入BL中 INAL,0B1H ;读高8位 MOVBH,AL ;存入BH中11.2.5 8253的应用
在IBMPC/XT机中,8253是CPU外围支持电路之一,为系统电子钟提供时间基准,为动态RAM刷新提供定时信号以及作为扬声器的声源等功能。
CLK0~CLK2由8284时钟发生器输出的外部时钟PCLK(2.38MHz)经过2分频获得,其频率为1.19MHz。
8253的3个计数器端口地址为:40H、41H、42H;控制寄存器端口地址为43H。
计数器0:为系统电子钟提供时间基准,即向系统日历时钟提供定时中断。其输出端OUT0作为系统的中断源接到中断控制器8259A的中断请求端IRQ0。选用方式3工作,以产生周期性的方波信号。为此,对计数器0编程时应设置的控制字为36H。计数器初值预置为0(即最大值65536),因此OUT0输出方波的时钟频率为:1.19MHz/65536=18.21Hz。每间隔55ms产生一次0级中断(每秒出现18.2次)。GATE0接+5V,允许计数。
计数器1:
为动态RAM刷新提供定时信号,即向DMA控制器定时发动态存储器刷新请求。
选用方式2工作,相当于一个分频器。控制字为54H.
计数器初始值为18。OUT1输出的分频脉冲频率为:1.19MHz/18=66.1KHz。相当于周期为15.1μs。样,计数器1每隔15.1μs经由U21产生一个动态RAM刷新的请求信号DRQ0,以完成对动态RAM的刷新。
GATE1接+5V,允许计数。
计数器2:
系统扬声器的声源,其输出信号送往扬声器。根据OUT2端输出信号的频率来控制扬声器的音调。
扬声器发声的长短取决于OUT2信号延续时间的长短,通过门控信号GATE2控制。GATE2是在并行接口芯片8255A的PB0的。
方式3工作,控制字为B6H。初值置533H(即1331)。OUT2输出方波频率为:1.19MHz/1331=894Hz。
8253的3个计数器的预置程序如下:PR0:MOVAL,36H ;选择计数器0,写双字节计数值, ;方式3,二进制计数
OUT43H,AL ;写控制字
MOVAL,0 ;预置计数值65536 OUT40H,AL ;先送低字节计数值
OUT40H,AL ;后送高字节计数值PR1: MOVAL,54H ;选择计数器1,读/写低字节计数 ;值,方式2,二进制计数
OUT43H,AL MOVAL,12H ;预置计数器初值18 OUT41H,ALPR2: MOVAL,0B6H ;选择计数器2,读/写双字节计数 ;值,方式3,二进制计数
OUT43H,AL MOVAX,533H ;送分频数1331 OUT42H,AL ;先送低字节
MOVAL,AH OUT42H,AL ;后送高字节
【例11.3】某8086系统中有一片8253芯片,端口地址为500H、502H、504H、506H,各通道均接6MHz的时钟信号,要求在计数器0输出一个最大宽度的负脉冲,计数器1输出一个方波信号,周期为
,计数器2输出一个定时中断信号,定时时间为0.2ms,写出其初始化程序。
分析:计数器0、1、2的地址分别为500H、502H、504H,控制端口的地址为506H。
计数器0工作在方式1,必须采用二进制,计数器值为0(65536)。
计数器1工作在方式3,计数值为
60,只写低字节,采用二进制或BCD码计数都可以。
计数器2工作在方式0,计数值为1200,采用二进制或BCD码计数都可以。计数器0: MOVDX,506H MOVAL,00110010B OUTDX,AL MOVDX,500H MOVAL,0 OUTDX,AL OUTDX,AL计数器1: MOVDX,506H MOVAL,01010111B OUTDX,AL MOVDX,502H MOVAL,60H OUTDX,AL计数器2: MOVDX,506H MOVAL,10110000B OUTDX,AL MOVDX,504H MOVAX,1200 OUTDX,AL MOVAL,AH OUTDX,AL
【例11.4】某8088系统中有一片8253芯片,端口地址为150H~153H,计数器0的输出作为计数器1的计数脉冲,利用计数器1控制发光二极管,使发光二极管持续闪烁,亮2秒,灭2秒,利用其计数器2完成对外部事件计数,计满200次向CPU发出中断申请,试编写8253的初始化程序,硬件电路如图11.12所示。计数器0:计数初值N=2MHz/1KHz=2000,设采用二进制计数,操作类型为11(2000=07D0H,高低字节都不为0),方波为方式3。
初始化程序如下:
MOVAL,00110110B ;通道0的控制字MOVDX,153H ;控制端口的地址OUTDX,AL ;写控制字到控制端口MOVAX,2000 ;让计数初值2000自动分离出高低字节MOVDX,150H ;通道0地址OUTDX,AL ;写计数初值的低字节到通道0的地址MOVAL,AH ;把高字节给ALOUTDX,AL ;写计数初值的高字节到通道0的地址计数器1:亮2秒,暗2秒,应为方波,且周期为4s,所以计数初值为4s*1KHz=4000,设计数制式为二进制,则操作类型为11。
初始化程序如下:
MOVAL,01110110B;通道1控制字MOVDX,153H;控制端口地址OUTDX,AL;写控制字到控制端口MOVAX,4000;让初值4000自动分离出高低字节MOVDX,151H;通道1地址OUTDX,AL;写初值的低字节到通道1的地址MOVAL,AH;把高字节给ALOUTDX,AL;写初值的高字节到通道1的地址计数器2:
OUT2产生中断请求信号,应为方式0,计数初值为200,设采用二进制计数,200<256,操作类型为01,只写低字节。初始化程序如下:
MOVAL,10010000B;通道2的控制字MOVDX,153H;控制端口地址
OUTDX,AL;写控制字到控制端口MOVAL,200;通道2初值MOVDX,152H;通道2地址OUTDX,AL;写初值到通道2的地址课堂练习1、已知8253各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT2产生一个最大的负脉冲。试写出其初始化程序。2、用8253实现生产流水线上的工件计数,每通过100个工件,扬声器便发出频率为1000Hz的音响信号,持续时间为5秒(设8253的端口地址为40H~43H,8255A的端口地60H~63H)。试写出8255与8253的初始化程序和中断服务程序(延迟5秒的程序段略)。INTR(中断请求)+5V时钟2MHz8255APA0GATE1CLK1GATE0OUT08253CLK0OUT1驱动电路扬声器+5V光敏电阻工件光源
已知8254各通道时钟接8MHz信号,端口地址为700H、702H、704H和706H,要求在OUT0产生周期为10us的方波,OUT1产生2KHz的连续脉冲信号,OUT2产生一个最大的负脉冲。完成其初始化程序。分析:
OUT0:初值=10us*8MHz=80 方式3 OUT1:初值=8MHz/2KHz=4000方式2 OUT2:初值=0,二进制计数方式1;CTC0MOVDX,706H ;控制端口地址MOVAL,00010110B ;CTC0控制字OUTDX,ALMOVDX,700H ;CTC0口地址MOVAL,80 ;CTC0初值OUTDX,AL;CTC1MOVDX,706H ;控制端口地址MOVAL,01110100B ;CTC1控制字OUTDX,ALMOVDX,702H ;CTC1口地址MOVAX,4000 ;CTC1初值OUTDX,AL ;先写低字节MOVAL,AH ;取高字节OUTDX,AL ;后写
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数据安全动态脱敏系统技改及实时防护项目可行性研究报告
- 刺梨酒厂项目可行性研究报告
- 2026年四川省公务员(行测)判断推理题库及标准答案
- 年产 5200 万米医用可吸收止血绫及应急保障项目可行性研究报告
- 2026年税收征管法试题及答案解析
- 初中英语词汇及语法知识测试考试及答案
- 工业园区新建逆变器外壳精密加工项目可行性研究报告
- 某麻纺厂物料采购办法
- 2026年特岗教师招聘综合知识测试题及答案
- 纺织原料仓储管理规范
- (高清版)JTG∕T 3373-2024 公路岩溶隧道设计与施工技术规范
- DL∕T 1919-2018 发电企业应急能力建设评估规范
- 敦煌文化之旅智慧树知到期末考试答案章节答案2024年杭州师范大学
- 《别云间》教案教学设计
- 重力坝毕业设计
- T-CSEM 0024-2024 智慧消防 火灾防控系统建设要求
- 小学中低年级数学教学中量感培养的实践与研究
- 高中数学双向细目表
- 麻醉期间的循环管理
- 2023年考研考博考博英语河北工业大学考试高频考点参考题库答案
- 投资学第一章 投资学导论
评论
0/150
提交评论