第11章-定时计数器8253综述课件_第1页
第11章-定时计数器8253综述课件_第2页
第11章-定时计数器8253综述课件_第3页
第11章-定时计数器8253综述课件_第4页
第11章-定时计数器8253综述课件_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

教学内容8253的编程结构及工作原理

8253与CPU的连接

8253的初始化

8253的工作方式应用举例在微型计算机系统中,常需要用到定时功能。所谓定时(计数)就是通过硬件或软件的方法产生一个时间基准,以此来实现对系统的定时或延时控制。

定时与计数

计数:记录事件产生的次数。在计算机中,其实质是记录脉冲个数。计数对象脉冲不一定要求是周期信号。

定时:在预定时间产生的有关信号。在计算机中,定时是通过累计计时单元获得,即定时的本质就是计数,且定时所计脉冲是标准的周期脉冲。11.1定时功能的实现方法1.软件定时

软件定时:由于执行每条指令都需要时间,则执行一个程序段就需要一个固定的时间,通过适当地挑选指令和安排循环次数来实现软件的定时。这种方法由于要完全占用CPU的时间,因而降低了CPU的利用率。优点:不需要外加硬件电路。缺点:可移植性差,定时时间越长,CPU的开销越大,而且不能响应中断,否则定时就不准确了。2.硬件定时硬件定时—由硬件电路来实现的定时 优点—减轻CPU的负担,使得在定时期间CPU能做其它工作。不可编程的硬件定时—555时基电路它采用固定的电路,如可以采用小规模集成电路555,外接电阻和电容构成单稳延时电路。这样的定时电路简单,而且通过改变电阻和电容,可以使定时在一定的范围内调整。缺点:不易修改定时参数,时间长了会老化。11.1定时功能的实现方法可编程硬件定时—8253定时/计数器

这是目前在控制系统中广泛使用的方法,它通过编程来控制电路的定时值及定时范围,功能强,使用灵活。在计算机系统中,象定时中断、定时检测、定时扫描等等都是用可编程定时器来完成定时控制的。优点:定时参数和工作方式又可由软件来控制,定时过程不需要CPU干预。11.1定时功能的实现方法61.定时定义:提供时间基准。分类:内部定时、外部定时。2.计数定时与计数本质上是一致的。计数的信号随机,定时的信号具有稳定和准确的周期性。11.2可编程计数/定时器的工作原理73)计数器/定时器的用处:①作为中断信号②输出精确的定时信号③作为波特率发生器④实现延迟8计数器/定时器的基本原理图12349说明:1)一般结构中包含4个寄存器,其中控制/状态寄存器共用一个端口地址,初始值/计数输出寄存器共用另一个端口地址。2)计数输出寄存器放当前计数值,计数执行部件数值不能直接读出;103)状态寄存器用于CPU查询状态用;4)3个引脚信号:CLK——时钟输入、GATE——门控信号(模式不同则不同)、OUT——中断请求或设备启动或特殊波形信号11.28253定时计数器3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数12

(1)8253的编程结构1.

数据总线缓冲器:数据总线缓冲器是一个三态,双向8位寄存器,用于将8253与系统总线D0-D7相连。基本功能:向8253写入确定8253工作方式的命令;向计数寄存器装入初值;读出计数器的初值或当前值。一、8253的编程结构2.读/写逻辑读/写逻辑由CPU发来的读、写信号和地址信号,选择读出或写入寄存器,并且确定数据传输的方向:是读出还是写入。3.控制字寄存器控制字寄存器接受CPU送来的控制字。这个控制字用来选择计数器及相应的工作方式。控制字寄存器只能写入,不能读出。一、8253的编程结构4.计数器(定时是对标准脉冲计数)8253有三个独立的计数通道每个通道的内部结构完全相同,均有16位的计数单元CE(减1计数器,不可读写)16位初值寄存器CR(只写)16位输出锁存器OL组成(只读)控制单元—控制该计数器的工作方式

一、8253的编程结构计数器结构示意图预置寄存器GATECLKOUT减1计数器输出锁存器计数初值寄存器(16位):用于存放计数初值在计数器计数过程中保持不变。

计数单元(16位):用于进行减1计数操作,每来一个时钟脉冲,它就作减1运算,直至将计数初值减为零。当前计数值锁存器(16位):用于锁存减1计数器的内容,以供读出和查询。一、8253的编程结构8253的引脚图二、8253与CPU的连接8253GATE0OUT0CLK05V8088CPU2KHzD0~78253与8位CPU的连接译码地址M/IOCSWRRDA0A1A0A1WRRD二、8253与CPU的连接3个计数器相互独立,3个计数初值寄存器,输入的初值都不一样。用一个片选信号不能区分3个空间,所以要用A1,A0配合片选信号对3个独立的空间进行区分。A1A0相对于内部寻址00计数器001计数器110计数器211控制寄存器(存储3个计数器的工作方式)8253的I/O地址01000010010101001011001

00001

01001

10功能对计数器0设置计数初值CSRDA1A0WR对计数器1设置计数初值对计数器2设置计数初值设置控制字从计数器0读出计数值从计数器1读出计数值从计数器2读出计数值8253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入控制字控制字写入控制端口写入计数初值初值写入相应的计数器三、8253的初始化计数器n每个独立的计数器都有一个控制寄存器,存放该计数器的工作方式,读写格式等信息。但这3个控制寄存器共用一个地址,即A1A0=11,芯片怎样区分计算机是给哪个计数器控制器下达的命令呢?D7D6D5D4D3D2D1D0计数器00读写格式工作方式数制计数器001计数器110计数器211无效控制字寄存器同一地址A1A0=118253控制字格式

SC1SC0RW1RW0M2M1M0BCD1--计数值为BCD码格式0--计数值为二进制格式M2M1M0模式选择

000模式0001模式1/10模式2/11模式3100模式4101模式500----选计数器001----选计数器110----选计数器211----无意义三、8253的初始化00----对计数器进行锁存01----只读/写低8位字节10----只读/写高8位字节11----先读/写低8位字节,

再读/写高8位字节.选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值10000计数初值:N=CLK的频率fc

定时的时间t例:设8253:fc=1MHZ,最大计数初值N=65536

一个定时器最大定时时间:Tmax=N/fc=65536/106=0.065536s8253初值计算例:使2号定时器,工作在方式3,计数初值=533h,二进制计数.试写出8253初始化程序段.8253端口地址:40H,41H,42H,43HMOVAL,10110110B;2号定时器,方式3OUT43H,ALMOVAX,0533HOUT42H,AL;2号数据口MOVAL,AHOUT42H,AL三、8253的初始化设置控制字;确定计数初值例:使0号定时器,工作在方式3,计数初值N=1000,二进制计数.试写出8253初始化程序段.8253端口地址:40H,41H,42H,43HMOVAL,10110110B;2号定时器,方式3OUT43H,ALMOVAX,1000OUT40H,AL;0号数据口MOVAL,AHOUT40H,AL读取计数值对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制

例:要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值只有低8位),其程序段为

MOVDX,307H;命令口L:MOVAL,01000000B

;1号计数器的锁存命令

OUTDX,AL;写入命令寄存器

MOVDX,305H;1号计数器数据口

INAL,DX;读计数器的当前计数值

CMPAL,0FFH;比较

JNEL;非全“1”,再读

HLT;是全“1”,暂停

读取计数值31

(1)8253的编程结构8253控制字格式

SC1SC0RW1RW0M2M1M0BCD1--计数值为BCD码格式0--计数值为二进制格式M2M1M0模式选择

000模式0001模式1/10模式2/11模式3100模式4101模式500----选计数器001----选计数器110----选计数器211----无意义三、8253的初始化00----对计数器进行锁存01----只读/写低8位字节10----只读/写高8位字节11----先读/写低8位字节,

再读/写高8位字节.四、8253的工作方式8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式每种工作方式的过程类似:⑴设定工作方式⑵设定计数初值⑶硬件启动⑷计数初值进入减1计数器⑸每输入一个时钟计数器减1的计数过程⑹计数过程结束基本规则:控制字写入计数器时,所有的控制逻辑电路立即复位,输出端OUT进入初始状态(高电平或低电平);初始值写入后,要经过一个时钟上升沿和下降沿,计数执行部件才开始计数;通常,在时钟CLK的上升沿,门控GATE被采样,门控的触发方式为边沿或电平,边沿触发脉宽可用很窄,且高低电平均可(计数器内部有个边沿触发器,随时检测),电平触发则必须在下一个时钟上升沿前保持高电平;在时钟脉冲的下降沿计数器作减1计数,0是计数器所能容纳的最大初始值,二进制时是216,十进制时是104。(1)方式0:计数结束中断特点:计数过程由软件启动,每设置一次初值,只启动一次计数过程;写入控制字后,OUT初态为低,在计数过程中一直保持为低电平,当计数器减到0时,OUT立即变成高电平。门控GATE为1,正常计数,门控为0,计数暂停,其计数值保持不变,再为1,接着前次继续计数;计数过程中,改变初值立即有效,即重新写入初值时停止计数,当写完初值后,在CLK的下降沿处,开始以新的计数初值计数。GATE门控为1时,方式0的波形。门控GATE对OUT的影响。计数暂停,保持不变改变初值对方式0的影响立即有效方式0计数结束中断①②⑤④⑥GATEOUTCLK

031244方式0WR①设定工作方式②设定计数初值④计数值送入计数器⑤计数过程⑥计数结束(2)方式1:硬件可重触发单稳态方式(可编程单脉冲)特点:计数器只能由门控脉冲GATE的上升沿启动,即计数器只能由硬件启动,不能用软件启动;写入控制字后,OUT初态为高电平,GATE启动后,获得N个CLK宽度的低电平,计数到零后,可再次由外部触发启动,不用再次送入一个计数初值;在OUT输出为低期间,若GATE出现上升沿,计数器从CLK的下降沿开始重新计数,OUT低电平的宽度变长;计数输出期间,改变计数初值不影响本次计数,只有在GATE信号后才重新开始以新的计数初值计数,即计数值是下次有效的。门控触发初态为高开始计数后输出N个CLK宽度的低电平重新启动门控GATE对输出的影响:不用重装初值,上升沿启动又开始新的计数。重装初值对输出的影响:不影响本次计数,在下次GATE上升沿时有效。计数值是下次有效的。方式1可编程单稳脉冲①②⑤④⑥①设定工作方式②设定计数初值③③硬件启动④计数值送入计数器⑤计数过程⑥计数结束GATEOUTCLK

031244方式1WR(3)方式2:周期性负脉冲输出(速率发生器)特点:计数器既可用软件启动,又可用硬件启动;写入控制字后,OUT初态为高电平,装入初值后开始计数(软件启动),计数到1后,输出一个CLK的低电平,接着又从N开始重复计数,输出N-1个高电平,1个低电平的周期信号;在OUT为高期间,若GATE为0,停止计数,直到GATE出现上升沿,计数器重新开始计数输出(硬件启动);在OUT为高期间,改变计数初值,对正在进行的计数过程没有影响,当输出一个周期的CLK脉冲后则按新的计数值开始计数。改变计数是下次有效的。方式2:不用重装初值,输出周期信号,N-1高电平,1个低电平。GATE对输出的影响:为低停止计数,为高后又重新开始输出周期信号。重装初值对输出的影响:不影响本次计数,在输出本次CLK脉冲后按新的计数值开始计数。计数值是下次有效的。(4)方式3:周期性方波输出特点:与方式2类似,输出信号为方波,周期为N个CLK。若初值N为偶数,输出N/2个CLK周期高电平,N/2个CLK周期低电平;若N为奇数,(N+1)/2个高电平,(N-1)/2个低电平。GATE为0停止计数,GATE上升沿重新启动计数周期;重新写入初值,本次OUT不受影响,下一周期按新值输出。计数值下次有效。N=4,方波方式3:不用重装初值,输出周期信号,N为偶数,N/2高电平,N/2个低电平。N为奇数,(N+1)/2个高电平,(N-1)/2个低电平。GATE对输出的影响:为低输出变高,停止计数,为高后又重新开始输出周期信号。重装初值对输出的影响:不影响本次计数,在输出本次半个周期后按新的计数值开始计数。计数值是下次有效的。(5)方式4:单次负脉冲输出(软件触发)特点:与方式0类似,特点2,3不一样计数过程由软件启动,每设置一次初值,只启动一次计数过程;写入控制字后,OUT初态为高,在计数过程中一直保持为高电平,当计数器减到0时,输出为一个周期的CLK低电平,输出接着变成高电平并一直维持。门控GATE为1,正常计数,门控为0,计数停止,再为1,重新从计数初值开始计数;计数过程中,改变初值立即有效,即重新写入初值时停止计数,当写完初值后,在CLK的下降沿处,开始以新的计数初值计数。方式4:写入控制字后,OUT初态为高,在计数过程中一直保持为高电平,当计数器减到0时,输出为一个周期的CLK低电平,输出接着变成高电平并一直维持。GATE对输出的影响:GATE为低,计数停止,为高后,重新开始计数。重装初值对输出的影响:改变初值立即有效。(6)方式5:单次负脉冲输出(硬件触发)特点:与方式1类似,只是输出电平不同计数器只能由门控脉冲GATE的上升沿启动,即计数器只能由硬件启动,不能用软件启动;写入控制字后,OUT初态为高电平,GATE启动后,开始减1计数,计数到零后,OUT出现一个CLK周期的负脉冲,又变为高电平,可以再次由外部触发启动,不用再次送入一个计数初值;在计数中,若GATE出现上升沿,则计数器重新触发,即在下一个时钟周期开始计数;计数输出期间,改变计数初值不影响本次计数,只有在GATE信号后才重新开始以新的计数初值计数,即计数值是下次有效的。门控触发开始计数后输出1个CLK宽度的低电平重新启动门控GATE对输出的影响:不用重装初值,上升沿启动又开始新的计数。重装初值对输出的影响:不影响本次计数,在输出本次CLK脉冲后按新的计数值开始计数。计数值是下次有效的。重装重装下次有效方式2频率发生器(分频器)03124GATEOUTCLK

4方式2031240312403124WR方式3方波发生器03124GATEOUTCLK

4方式3031240312403124WR方式4软件触发选通信号GATEOUTCLK031244方式42233310WR方式5硬件触发选通信号GATEOUTCLK031244方式522333110WR各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2

N/20/N0N01N01N01初始化编程的具体步骤为:1.

写入计数器的控制字,规定其工作方式2.

写入计数初值。若规定只写低8位,则写入的为计数值的低8位,高8位自动置0;若规定只写高8位,则写入的是计数值的高8位,低8位自动置0;若规定写16位计数值,则分两次写入,先写的必是低8位,后写的必是高8位。

五、8253应用举例例1:某微机系统中8253的端口地址为40H~43H,要求计数器0工作在方式0,计数初值为FFH,按二进制计数;计数器1工作在方式2,计数初值为1000H,按BCD码计数。试写出初始化程序段。

解:1.按要求找出所用计数器的控制字计数器0的控制字:

选计数器0只写低8位

选工作方式0二进制计数计数器1的控制字:

选计数器1只写高8位

选工作方式2BCD计数

0

0

0

1

0

0

0

0

0

1

1

0

0

1

0

1

例1:例1:2.初始化程序段MOVAL,10H;写通道0控制字OUT43H,ALMOVAL,

0FFH;写通道0计数初值OUT40H,AL

温馨提示

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

评论

0/150

提交评论