《微机原理第五章 定时计数器幻灯片.ppt》由会员分享,可在线阅读,更多相关《微机原理第五章 定时计数器幻灯片.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理第五章 定时计数器2023/4/101第1页,共32页,编辑于2022年,星期六授课教师授课教师:殷代红殷代红制制 作作 者者:殷代红殷代红 邮箱:2023/4/102第2页,共32页,编辑于2022年,星期六第五章第五章 定时与计数器定时与计数器2023/4/103第3页,共32页,编辑于2022年,星期六5.1 概述概述5.1.1 定时与计数问题的提出定时与计数问题的提出定时与计数是计算机经常面临的工作,它不仅应用在计算机内部,定时与计数是计算机经常面临的工作,它不仅应用在计算机内部,同时,也广泛应用在各种不同领域的实际系统中,如定时中断、同时,也广泛应用在各种不同领域的实际系统中
2、,如定时中断、定时检测、定时扫描等等,还有些场合要求能对外部事件计数。定时检测、定时扫描等等,还有些场合要求能对外部事件计数。实现定时与计数的方法通常有实现定时与计数的方法通常有两种两种:软件方法和硬件方法。:软件方法和硬件方法。软件方法软件方法:通过用户编制的程序来完成,如延时子程序,软件定时占:通过用户编制的程序来完成,如延时子程序,软件定时占用用CPU,降低了,降低了CPU的利用率。的利用率。硬件方法硬件方法:通过完全的硬件连接或软:通过完全的硬件连接或软/硬件的结合来完成,包含硬件的结合来完成,包含简单硬件定时和可编程硬件定时简单硬件定时和可编程硬件定时两种两种方式。方式。简单硬件定时
3、简单硬件定时可以采用小规模集成电路器件(例如可以采用小规模集成电路器件(例如555),外接部),外接部分定时部件(电阻和电容)构成。这样的定时电路简单而且通过分定时部件(电阻和电容)构成。这样的定时电路简单而且通过改变电阻和电容,可以使定时在一定的范围内改变,但不能由指改变电阻和电容,可以使定时在一定的范围内改变,但不能由指令来控制和改变。令来控制和改变。可编程定时器可编程定时器电路的定时值及其范围,可以很容易地由软件来确电路的定时值及其范围,可以很容易地由软件来确定和改变,所以使用灵活,功能更强。定和改变,所以使用灵活,功能更强。2023/4/104第4页,共32页,编辑于2022年,星期六
4、5.1.2 端口的概念端口的概念接口电路:接口电路:微机可以通过接口电路接收外部设备送微机可以通过接口电路接收外部设备送来的信息或将信息发送给外部设备。来的信息或将信息发送给外部设备。分类分类:可以提供使微机正常工作所需要的:可以提供使微机正常工作所需要的辅助电路辅助电路;输入输入/输出接口输出接口电路包括并行接口、串行接口、专电路包括并行接口、串行接口、专用接口等,用接口等,提供提供CPU与接口直接进行操作的与接口直接进行操作的“通道通道”每个部件或接口内部都包含有一组寄存器,这些每个部件或接口内部都包含有一组寄存器,这些寄存器通常称为寄存器通常称为端口端口,每个端口有一个,每个端口有一个端
5、口地址端口地址。2023/4/105第5页,共32页,编辑于2022年,星期六端口通常分为端口通常分为三类三类:用来传输数据的称为用来传输数据的称为数据端口数据端口;用来存放设备或者部件状态的称为用来存放设备或者部件状态的称为状态端口状态端口;用来存放用来存放CPU发出的命令的称为发出的命令的称为控制端口控制端口。CPU通过数据端口完成数据传输,因此,数据端口一般是通过数据端口完成数据传输,因此,数据端口一般是可读可写可读可写的;的;CPU通过状态端口可以检测外设和接口部件当前的状态,因通过状态端口可以检测外设和接口部件当前的状态,因此,状态端口一般是此,状态端口一般是只读只读的;的;CPU通
6、过控制端口传输命令以便控制接口和设备的动作,通过控制端口传输命令以便控制接口和设备的动作,因此,控制端口一般是因此,控制端口一般是只写只写的。的。2023/4/106第6页,共32页,编辑于2022年,星期六5.2 可编程定时器可编程定时器/计数器计数器8253一、计数一、计数/定时的工作原理定时的工作原理计数计数/定时的功能定时的功能对外部事件发生次数进行计数对外部事件发生次数进行计数计算机系统经常用到定时信号,如计算机系统经常用到定时信号,如DRAM刷新定时刷新定时计数和定时本质上是相同的,它们都是对一个输入脉冲进行计数,如计数和定时本质上是相同的,它们都是对一个输入脉冲进行计数,如果输入
7、脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应果输入脉冲的频率一定,那么记录脉冲的个数与所需的时间是一一对应的关系。的关系。例如输入脉冲频率为例如输入脉冲频率为2MHz,那么计数,那么计数2 106 计时计时1秒秒使用同一个芯片,既能计数,又能定时使用同一个芯片,既能计数,又能定时定时器定时器/计数器计数器2023/4/107第7页,共32页,编辑于2022年,星期六一、计数一、计数/定时的工作原理定时的工作原理控制寄存器控制寄存器初始值寄存器初始值寄存器计数器计数器计数输出寄存器计数输出寄存器状态寄存器状态寄存器CLKGATEOUT组成组成:控制寄存器控制寄存器决定工作模式决定工作
8、模式状态寄存器状态寄存器反应工作状态反应工作状态初值寄存器初值寄存器计数的初值计数的初值计数输出寄存器计数输出寄存器CPU从中读从中读当前计数值当前计数值计数器计数器执行计数操作,执行计数操作,CPU不能访问不能访问2023/4/108第8页,共32页,编辑于2022年,星期六一、计数一、计数/定时的工作原理定时的工作原理工作原理:对工作原理:对CLK信号进行减信号进行减1计数计数首先,首先,CPU把控制字写入控制寄存器,计数初始值写入初值寄把控制字写入控制寄存器,计数初始值写入初值寄存器存器计数从初值开始,每当计数从初值开始,每当CLK信号出现一次,计数值减信号出现一次,计数值减1当计数值减
9、到当计数值减到0,从,从OUT端输出规定的信号端输出规定的信号CLK信号出现时,计数器是否减信号出现时,计数器是否减1,由门控信号,由门控信号GATE控制控制2023/4/109第9页,共32页,编辑于2022年,星期六5.2.1 8253的功能与结构的功能与结构 18253的主要功能有3个独立的16位计数器通道。每个计数器都可以按照二进制或二十进制(BCD码)计数。每个计数器的计数速率可高达2MHz。每个通道有6种工作方式,可由程序设置和改变。所有的输入输出都与TTL兼容。2023/4/1010第10页,共32页,编辑于2022年,星期六一、计数一、计数/定时的工作原理定时的工作原理CLK是
10、计数输入信号,计数器对是计数输入信号,计数器对CLK端出现的脉冲个数进端出现的脉冲个数进行计数行计数CLK端可以输入外部事件端可以输入外部事件CLK端可以接入固定频率的时钟信号,从而实现计端可以接入固定频率的时钟信号,从而实现计时时OUT信号在计数结束时发生变化信号在计数结束时发生变化可将可将OUT作为外部设备的控制信号作为外部设备的控制信号可将可将OUT作为向作为向CPU申请中断的信号申请中断的信号CPU可以从计数输出寄存器可以从计数输出寄存器读出读出当前计数值。当前计数值。读前,应向控制寄存器发送锁存命令读前,应向控制寄存器发送锁存命令2023/4/1011第11页,共32页,编辑于202
11、2年,星期六二、二、8253的内部结构的内部结构1片片8253内部有三个计数器,结构完全相同内部有三个计数器,结构完全相同8253的内部结构的内部结构8253的内部结构如图的内部结构如图5-2所所示,主要由以下部分组示,主要由以下部分组成:成:(1)数据总线缓冲器数据总线缓冲器(2)读读/写控制逻辑。写控制逻辑。(3)控制字寄存器。控制字寄存器。(4)计数器计数器0,计数器,计数器1,计数,计数器器2。2023/4/1012第12页,共32页,编辑于2022年,星期六(1)数据总线缓冲器数据总线缓冲器。是是8253与与CPU数据总线连接的数据总线连接的8位、双向、三态缓冲器。位、双向、三态缓冲
12、器。CPU用输入输出指令对用输入输出指令对8253进行读写的所有信息进行读写的所有信息都是通过该缓冲器传送的,都是通过该缓冲器传送的,内容包括:内容包括:CPU在初始化编程时写入在初始化编程时写入8253的的控制字控制字。CPU向向8253的某一通道写入的某一通道写入的的计数值计数值。CPU从某一个通道读取的从某一个通道读取的计计数值。数值。2023/4/1013第13页,共32页,编辑于2022年,星期六(2)读读/写控制逻辑写控制逻辑。8253内部操作的控制部分。内部操作的控制部分。它接收输入的信号它接收输入的信号.实现片选、内部通道选择实现片选、内部通道选择(见表(见表5-1)以及对相关
13、端)以及对相关端口的读口的读/写操作。写操作。A1 A0 端口端口 0 0 通道通道0 0 1 通道通道1 1 0 通道通道2 1 1 控制端口控制端口2023/4/1014第14页,共32页,编辑于2022年,星期六(3)控制字寄存器控制字寄存器。在对。在对8253进行初进行初始化编程时,该寄存器存放由始化编程时,该寄存器存放由CPU写入的控制字,由此控制字写入的控制字,由此控制字来决定所选中通道的工作方式。来决定所选中通道的工作方式。此寄存器此寄存器只能写入不能读出。只能写入不能读出。(4)计数器计数器0,计数器,计数器1,计数器,计数器2。是三个是三个独立独立的计数器的计数器/定时器通道
14、,定时器通道,各自可按不同的工作方式工作。各自可按不同的工作方式工作。2023/4/1015第15页,共32页,编辑于2022年,星期六38253的引脚功能的引脚功能 8253的引脚按功能可分的引脚按功能可分为两组为两组:一组面向三总线一组面向三总线数据总线、控制总线和地数据总线、控制总线和地址总线,址总线,另一组面向外部操作。另一组面向外部操作。CLK、GATE、OUT2023/4/1016第16页,共32页,编辑于2022年,星期六5.2.2 8253的初始化编程对对8253某一通道的初始化编程涉及两个内容某一通道的初始化编程涉及两个内容:首先向控制端口首先向控制端口写入通道控制字写入通道
15、控制字,由此控制字确定,由此控制字确定选中哪个通道、采用什么工作方式和计数方式、选中哪个通道、采用什么工作方式和计数方式、如何写入计数初值等内容,如何写入计数初值等内容,然后向选中的通道端口然后向选中的通道端口写入计数初值写入计数初值。2023/4/1017第17页,共32页,编辑于2022年,星期六18253的控制字2023/4/1018第18页,共32页,编辑于2022年,星期六8253的编程命令的编程命令初始化初始化1)写入控制字)写入控制字2)按控制字要求写入计数初值)按控制字要求写入计数初值计数器初值计算:计数器初值计算:N=fCLK/fOUT例:设三个计数器的端口地址为例:设三个计
16、数器的端口地址为70H、71H、72H,控制端口地址,控制端口地址73H。计数器。计数器0,工作模式工作模式2,仅使用低,仅使用低8位,初值为位,初值为100,计数值使用二进制。,计数值使用二进制。MOV AL,14HOUT 73H,ALMOV AL,100OUT 70H,AL2023/4/1019第19页,共32页,编辑于2022年,星期六8253的编程命令的编程命令例:设三个计数器的端口地址为例:设三个计数器的端口地址为70H、71H、72H,控制寄存,控制寄存器端口地址器端口地址73H。计数器。计数器1,工作模式,工作模式1,使用,使用16位,初值为位,初值为1234,计数值使用,计数值
17、使用BCDMOV AL,73HOUT 73H,ALMOV AX,1234HOUT 71H,ALMOV AL,AHOUT 71H,AL2023/4/1020第20页,共32页,编辑于2022年,星期六3读取通道当前的计数值读取通道当前的计数值8253任一通道的当前计数值,任一通道的当前计数值,CPU都可用输入指令读取。都可用输入指令读取。8253的通的通道计数器是道计数器是16位的,要分两次读至位的,要分两次读至CPU,为避免在,为避免在CPU的两次读出的两次读出过程中出错,在进行读出操作前必须对相应通道进行锁存,锁存的过程中出错,在进行读出操作前必须对相应通道进行锁存,锁存的办法有办法有两种两
18、种:利用利用GATE信号使计数过程暂停。信号使计数过程暂停。向向8253的控制口写入一个令通道锁存器锁存的控制字。的控制口写入一个令通道锁存器锁存的控制字。例:设三个计数器的例:设三个计数器的CR/OL端口地址为端口地址为70H、71H、72H,控制寄存,控制寄存器端口地址器端口地址73H。读出计数器。读出计数器0的当前计数值,放在的当前计数值,放在BX中中MOV AL,0HOUT 73H,ALIN AL,70HMOV BL,ALIN AL,70HMOV BH,AL2023/4/1021第21页,共32页,编辑于2022年,星期六5.2.3 8253的工作方式的工作方式工作方式决定以下内容:工
19、作方式决定以下内容:1)门控信号的影响)门控信号的影响高电平允许,当高电平允许,当GATE=0,即使出现,即使出现CLK,也不计数,也不计数方式方式0,2,3,4上升沿允许(上升沿触发)上升沿允许(上升沿触发)方式方式1,52)OUT信号的状态信号的状态写入控制字后,写入控制字后,OUT的状态的状态计数过程中,计数过程中,OUT的状态的状态计数终了,计数终了,OUT的状态的状态3)计数操作可否重复)计数操作可否重复不可重复不可重复方式方式0,4自动重复自动重复方式方式2,3条件重复条件重复方式方式1,52023/4/1022第22页,共32页,编辑于2022年,星期六8253的工作方式的工作方
20、式六种工作方式六种工作方式计数初值写入初值寄存器后,要经过一个计数初值写入初值寄存器后,要经过一个CLK输入后才开始计数输入后才开始计数(或,经过一个(或,经过一个CLK后,计数初值才到达计数执行部件)后,计数初值才到达计数执行部件)计数器在计数器在CLK的下降沿使计数值减的下降沿使计数值减12023/4/1023第23页,共32页,编辑于2022年,星期六8253的工作方式的工作方式方式方式0:计数初值写入计数初值写入CR后,后,OUT由由0到到1跳变出现在跳变出现在n+1个时钟脉冲个时钟脉冲之后之后延迟时间延迟时间TD=(n+1)TCLK方式方式1:单脉冲宽度单脉冲宽度T=n TCLK方式
21、方式2:对输入端对输入端n个时钟脉冲,在输出端仅出现一个时钟脉冲个时钟脉冲,在输出端仅出现一个时钟脉冲N分频计数器分频计数器2023/4/1024第24页,共32页,编辑于2022年,星期六8253的工作方式的工作方式方式方式3:例:计数器工作方式例:计数器工作方式3,计数器初值,计数器初值15,时钟脉冲频率为,时钟脉冲频率为2MHz,确定,确定OUT端输出方波的特性。端输出方波的特性。解:解:TCLK=1/2MHz=500ns计数器初值计数器初值15为奇数,输出分频波高电平宽度为奇数,输出分频波高电平宽度 TCLK(N+1)/2=4 s输出分频波低电平宽度输出分频波低电平宽度 TCLK(N-
22、1)/2=3.5 s方式方式4、5:触发后触发后n+1个时钟脉冲之后输出端产生选通脉冲信号个时钟脉冲之后输出端产生选通脉冲信号2023/4/1025第25页,共32页,编辑于2022年,星期六8253的工作方式的工作方式例:计数器例:计数器0工作方式工作方式4,初始化计数器,初始化计数器,使装入计数器使装入计数器10 s后产生选通后产生选通信号信号(设时钟频率设时钟频率2MHz,8253端口地址为端口地址为50H53H)。解:解:n+1=T/TCLK=10/0.5=20 n=19=13HMOV AL,18HOUT 53H,ALMOV AL,13HOUT 50H,AL2023/4/1026第26
23、页,共32页,编辑于2022年,星期六5.2.4 8253 的应用的应用例例2 在以在以8088CPU为核心的系统中,扩展一片为核心的系统中,扩展一片8253芯片,要求通道芯片,要求通道0对外部脉冲进行计数,计满对外部脉冲进行计数,计满400个脉冲后向个脉冲后向CPU发出一个中断请求,发出一个中断请求,完成软硬件设计。完成软硬件设计。分析:首先完成硬件设计。分析:首先完成硬件设计。8253与系统总线的连接如下:与系统总线的连接如下:2023/4/1027第27页,共32页,编辑于2022年,星期六题目要求的输出波形题目要求的输出波形 经分析选择经分析选择方式方式0。计数初值为计数初值为400确
24、定控制字:确定控制字:00110000B 初始化程序:初始化程序:MOV AL,30HOUT 03H,AL ;控制字写入控制口;控制字写入控制口MOV AX,400 ;二进制形式的数据;二进制形式的数据OUT 00H,AL ;先写低;先写低8位,写入通道位,写入通道0MOV AL,AHOUT 00H,AL ;后写高;后写高8位,写入通道位,写入通道02023/4/1028第28页,共32页,编辑于2022年,星期六5.2.4 8253 的应用的应用1.以以2MHz输入输入8253,实现每,实现每5秒定时中断秒定时中断(设(设8253端口地址端口地址40H43H)分析:分析:8253最大初值最大
25、初值65536,CLK=2MHz可实现最大时间间隔可实现最大时间间隔65536(2 106)=32.769ms所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输所以需要两个计数器串联,一个计数器的输出作为另一个计数器的输入入2023/4/1029第29页,共32页,编辑于2022年,星期六8253的应用的应用计数器计数器1:方式:方式2,OUT1每每5ms输出一个脉冲输出一个脉冲初值初值(2 106)/(1/0.005)=10000计数器计数器0:方式:方式2,OUT0每每5s输出一个脉冲输出一个脉冲初值初值(1/0.005)/(1/5)=1000OUT0GATE0CLK0OUT1G
26、ATE1CLK1+5V+5V2MHz每每5秒产生一个秒产生一个脉冲脉冲2023/4/1030第30页,共32页,编辑于2022年,星期六8253的应用的应用程序:程序:MOV AL,74HOUT 43H,ALMOV AX,10000OUT 41H,ALMOV AL,AHOUT 41H,ALMOV AL,74H MOV AL,34HOUT 43H,ALMOV AX,1000OUT 40H,ALMOV AL,AHOUT 40H,AL2023/4/1031第31页,共32页,编辑于2022年,星期六作业作业1什么叫端口什么叫端口?端口通常有哪几种端口通常有哪几种?各有什么特点?各有什么特点?2试说明
27、试说明8253的内部结构包括哪几个主要功能模块?的内部结构包括哪几个主要功能模块?38253芯片共有几种工作方式?每种工作方式各有什么特点?芯片共有几种工作方式?每种工作方式各有什么特点?4若选用若选用8253通道通道2,工作在方式,工作在方式1,按二进制计数,计数值为,按二进制计数,计数值为5432。设端口地址为设端口地址为D8HDBH,完成初始化编程。如果计数值改为,完成初始化编程。如果计数值改为65536呢呢?如果此时又增选?如果此时又增选8253通道通道0,工作在方式,工作在方式0,按,按BCD码计数,计数值码计数,计数值为为2000,再完成对通道,再完成对通道0的初始化编程。的初始化编程。5.设设8253的端口地址同的端口地址同4,编写程序片段,读出计数器,编写程序片段,读出计数器2的内容,并的内容,并把读出的数据装入寄存器把读出的数据装入寄存器AX.6.设计数器的时钟输入频率为设计数器的时钟输入频率为1.91MHz,为产生,为产生25KHZ的的 方波输方波输出信号,应向计数器装入的计数初值为多少?出信号,应向计数器装入的计数初值为多少?。2023/4/1032第32页,共32页,编辑于2022年,星期六
限制150内