第8章定时器-计数器_第1页
第8章定时器-计数器_第2页
第8章定时器-计数器_第3页
第8章定时器-计数器_第4页
第8章定时器-计数器_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

1、2022-3-21第第8章章 定时器定时器计数器计数器8.1 概述8.2 定时/计数器的结构和工作原理8.3 定时/计数器的控制8.4 定时/计数器的功能扩展2022-3-22实现定时常用的三种方法:软件定时不可编程的硬件定时可编程芯片定时8.1 概述 2022-3-231. 软件定时软件定时执行指令所花费的时间来构成一定的时间间隔,从而达到定时的目的。 例如: MOV R0,50H DELAY:NOP DJMZ R0, DELAY 优点:不需要专门的硬件设备。 缺点:浪费了宝贵的CPU资源,效率低。2022-3-242.不可编程的硬件定时不可编程的硬件定时 如555电路,外接必要的元器件,即

2、可构成硬件定时电路。但硬件连接好后,定时不能由软件控制,即不可编程。3.可编程芯片定时可编程芯片定时 定时值和定时范围容易用软件来确定和修改,使用灵活。在单片机的定时/计数器不够用时,需另外扩展。2022-3-25第第8章章 定时器定时器计数器计数器8.1 概述8.2 定时定时/计数器的结构和工作原理计数器的结构和工作原理8.3 定时/计数器的控制8.4 定时/计数器的功能扩展2022-3-268.2 定时/计数器的结构和工作原理 1、51单片机内部有2个16位的定时/计数器,结构如下: 2022-3-27 2、定时/计数器的工作原理计数器脉冲来源:T0或T1引脚输入的外部事件脉冲信号,每来一

3、个脉冲,计数器加1。计数器溢出:计数器全1时,再来1个脉冲就计满回零,并产生溢出中断请求。计数值计数值N = 计数器当前值计数器当前值Nc - 计数初值计数初值x (1)计数原理计数值计数值N = 溢出时计数器值溢出时计数器值(2n) - 计数初值计数初值x 2022-3-28定时时间定时时间 t 计数值计数值N x 计数脉冲周期计数脉冲周期T 若 MCS-51主频为12MHz,机器周期为1s,即12MHz晶振时,每1s定时器完成加1操作。(2)定时原理定时器脉冲来源:系统时钟振荡器。定时时间:定时器对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。2022

4、-3-29第第8章章 定时器定时器计数器计数器8.1 概述8.2 定时/计数器的结构和工作原理8.3 定时定时/计数器的控制计数器的控制8.4 定时/计数器的功能扩展2022-3-2108.3 定时/计数器的控制 51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。2022-3-211 M1、M0:工作方式设置位 1、工作方式寄存器TMOD TMOD (89H)M1 M0 工作方式说 明0 0013 位定时器(TH的 8 位和TL的低 5 位) 0 1116 位定时器/计数器 1 02自动重装入初值的 8 位计数器 1 13 T0

5、 分成两个独立的 8 位计数器, T1 停止工作 2022-3-212C/T :计数器/定时器选择位 = 0, 定时器(内部时钟信号) = 1, 计数器(外部计数脉冲)GATE:门控位 = 0,启动/停止仅由软件对TRx位写“1”/“0”控制 = 1,启动/停止由软件对TRx位写“1”/“0” 和在外中断INTx引脚出现信号的高/低共同控制TMOD (89H)2022-3-213(1)TFx定时器的溢出标志位 =0,计数未满。=1,计数溢出 溢出中断服务程序时会自动清零;但查询时必须软件清零。(2)TRx定时器运行控制位 =0,停止计数。=1,启动计数 低4位与外部中断有关。2、控制寄存器TC

6、ON 2022-3-214(1)IT0选择外部中断请求0为跳沿触发方式还是电平触发方式: IT0=0(电平触发),IT0=1(脉冲触发),可由软件设置。(2)IE0外部中断请求0的中断请求标志位。 IE0=0,无中断请求。IE0=1,有中断请求。(3)IT1与IT0类似。(4)IE1与IE0类似。各标志位的功能:复习2022-3-215(1)EA:中断允许总控制位(总开关)0:CPU屏蔽所有的中断请求(CPU关中断);1:CPU开放所有中断(CPU开中断),但中断请求是否允许,还要由IE中的5个中断请求允许控制位决定。(2)ES:串行口中断允许位(0:禁止,1:允许)(3)ET1ET0:定时器

7、/计数器T1T0的溢出中断允许位(4)EX1EX0:外部中断10的中断允许位复习中断允许寄存器IE,CPU对中断源的开放或屏蔽。2022-3-216(1)方式0(13位计数器)3. 定时器计数器的工作方式 方式 0(13位计数器) 2022-3-217计数个数:Nt / Tcy 初值:a213N=8192-N GATE=0时,仅由TR0控制与门的开启; GATE=1时,与门开启,由INTx引脚信号和TR0共同控制。通常用于测量外部输入信号的脉冲宽度。注意门控位GATE的作用:2022-3-218(2)方式1(16位计数器)方式 1(16位计数器) 计数初值:a216N=65536-N2022-

8、3-219(3)方式2(自动装载的8位计数器)方式 2(初值自动重装的8位计数器) 计数初值:a28N=256-N2022-3-220(4)方式3(2个独立的8位计数器) T0分成为两个独立的8位计数器TL0和TH0 。此时T1无中断可用。2022-3-221方式0:1-8192;方式1:1-65536;方式2:1-256;定时时间定时时间 t 计数值计数值N x 计数脉冲周期计数脉冲周期T计数值计数值N的取值范围的取值范围:计数值计数值N = 溢出时计数器值溢出时计数器值(2n) - 计数初值计数初值x 计数初值计数初值Ttxn22022-3-222定时/计数器初始化程序:确定工作方式(对T

9、MOD赋值)计算初值(写入TH0、TL0或TH1、TL1)开中断(对IE赋值)启动定时/计数器(TR0或TR1置位)4. 定时/计数器应用举例2022-3-223例:用T0的方式0产生10ms的定时,并使P1.0引脚上输出周期为20ms的方波。采用中断方式,设系统时钟频率为6 MHz。20ms2022-3-224解:1、计算计数初值X 晶振为6MHz,故机器周期T为2s。 Nt/ T 1010-3/210-6= 5000 a213500031920C78H 即应将63H(高8位)送入TH0中,18H(低5位)送入TL0中. 2、求T0的方式控制字TMOD M1M0=00,GATE=0,C/T=

10、0,所以TMOD设为00H.2022-3-225 ORG 0000H LJMP MAIN ORG 000BH;T0溢出中断入口 LJMP DVT0 ORG 0100H MAIN:MOV TMOD,#00H MOV TH0,#63H MOV TL0,#18H SETB ET0;T0溢出中断允许 SETB EA;中断总允许位 SETB TR0;启动T0计数 SJMP $ DVT0:CPL P1.0;输出值取反 MOV TH0,#63H MOV TL0,#18H RETI;溢出后重新装入初值 END采用中断方式:2022-3-226 ORG 0000H LJMP MAIN ORG 0100HMAIN

11、:MOV TMOD,#00H ;设置T0 LOOP: MOV TH0,#63H ;计数初值 MOV TL0,#18H MOV IE,#00H ;禁止中断 SETB TR0 ;启动定时 JNB TF0,$ ;查询计数溢出 CLR TF0 ;清溢出标志 CPL P1.0 ;取反输出 SJMP LOOP ;重复循环 END 采用查询方式:2022-3-227第一章第一章 概述概述 例:已知某生产线的传送带上不断地有产品单向传送, 产品之间有较大间隔。使用光电开关统计一定时间内的产品个数。 假定红灯亮时停止统计, 红灯灭时才在上次统计结果的基础上继续统计, 试用单片机定时器 /计数器T1的方式1完成该

12、项产品的计数任务。 2022-3-228方式 1(16位计数器) GATE=1、TR0=1时, INT0=1时启动计数。 INT0=0停止计数。2022-3-229第一章第一章 概述概述 (1) 初始化: TMOD=11010000B=0D0H (GATE=1, C/T=1, M0M1=01)(2) T1在方式1时, 溢出产生中断, 且计数器回零, 故在溢出中断服务程序中, 需用R0记录溢出中断次数, 以保护累积计数结果。 (3) 启动T1计数, 开T1中断。2022-3-230 SETB ET1; 开T1中断 SETB EA ; 开总中断 SETB TR1 ; 启动T1 MAIN: ACAL

13、L DISP ; 主程序, 调显示子程序 ORG 0A00H T1INT: INC R0 ; 中断服务子程序 RETI DISP: ; 显示子程序 RET 2022-3-231例:用于外部中断扩展假设有一个用户系统中已使用了两个外部中断源。现要求再增加一个外部中断源, 并由 P1.0 口输出一个 5KHz的方波(假设晶振频率为 6 MHz)。 分析:T0 置于工作方式3,把 TL0 预置为 0FFH, 当T0 端出现由1至0 的负跳变时, TL0 立即溢出, 申请中断, 相当于边沿触发的外部中断源。 在方式3下, TH0 总是作 8 位定时器用, 可以靠它来控制由 P1.0 输出的 5KHz方

14、波。 2022-3-232 程序编写: ORG 0000H AJMP START ; 复位入口 ORG 000BH AJMP TL0INT ; TL0中断入口ORG 001BH AJMP TH0INT ; TH0中断入口 ORG 0100H START: MOV TMOD, 27H ; T0为方式3,TI为方式2 MOV TL0, 0FFH MOV TH0, 9CH2022-3-233 MOV TCON,#55H; 外部中断,边沿触发,启动T0、T1 MOV IE,#9F ; 开放全部中断 ORG 1000H TL0INT: MOV TL0,#0FFH ; TL0重装初值 RETI TH0IN

15、T : MOV TH0,#9CH ; TH0重装初值 CPL P1.0 RETI 2022-3-234第第8章章 定时器定时器计数器计数器8.1 概述8.2 定时/计数器的结构和工作原理8.3 定时/计数器的控制8.4 定时定时/计数器的功能扩展计数器的功能扩展2022-3-2358.4 定时/计数器的功能扩展 一、一、8253的主要功能的主要功能具有3个独立的16位计数器;每个计数器都可按二进制或BCD码进行计数;每个计数器有6种工作方式;2022-3-236第一章第一章 概述概述 1. 8253内部结构图内部结构图图:8253的内部结构2)缓冲器。8253与CPU数据总线连接的8位双向三态

16、缓冲器3)读/写逻辑。8253内部操作的控制部分。读数据由8253传向CPU,写数据由CPU传向8253。4)控制寄存器。在8253初始化编程时,由CPU写入控制字以决定计数器的工作方式。此寄存器只能写入而不能读出1)计数器0、1、2。三个独立的16位可预置值的减1计数器2022-3-237CLK:输入脉冲线,计数器就是对:输入脉冲线,计数器就是对这个脉冲计数。这个脉冲计数。GATE:控制计数的启动、禁止。:控制计数的启动、禁止。OUT:输出引脚,当计数减到:输出引脚,当计数减到0时,时,该引脚有输出。该引脚有输出。2. 8253外部引脚外部引脚2022-3-2383. 8253的控制字的控制

17、字SC1SC0RL1RL0M2M1M0BCDD7D6D5D4D3D2D1D0BCD1二进制二进制0方式方式5101方式方式4001方式方式311方式方式201方式方式1100方式方式0000先读写低位字节先读写低位字节后读写高位字节后读写高位字节11只读写高位字节只读写高位字节01只读写低位字节只读写低位字节10计数器锁存操作计数器锁存操作00非法非法11计数器计数器201计数器计数器110计数器计数器0002022-3-239例:设8253的端口地址是8000h-8003h,计数器1工作在方式0,按二进制计数,计数初值为4。写出初始化程序。1.控制字为01010000B=50H。2.计数初值

18、为4。3.初始化程序为: MOV DPTR,#8003H ;控制寄存器地址送DPTR MOV A,#50H ;设置控制字 MOVX DPTR,A ;送控制寄存器 MOV DPTR,#8001H ;T1计数器地址送DPTR MOV A,#4 ;设置计数初值 MOVX DPTR,A ;送计数器1,启动计数2022-3-2404. 8253的工作方式的工作方式方式0 计数结束中断方式方式1 可编程单拍脉冲方式方式2 频率发生器(n分频器)方式3 方波发生器方式4 软件触发选通工作方式方式5 硬件触发选通工作方式2022-3-2415. 8253的初始化编程的初始化编程 (1) 写入每个计数器的控制字

19、,规定计数器的工作方式; (2) 写入计数初值。 若规定只写低8位,则写入的为计数值的低8位,高8位自动置0; 若规定只写高8位,则写入的为计数值的高8位,低8位自动置0; 若是16位计数值,则分两次写入,先写入低8位,再写入高8位。2022-3-242例:设8253计数器1工作于方式0,按BCD码计数,计数初值为400,端口地址为8000H-8003H。写出8253的初始化程序。解:1)控制字为01110001B=71H。写入控制寄存器,端口地址为8003H。2)计数初值为400,由于采用BCD码计数,故按BCD码方式组成0400H,送入计数器1的数据端口,地址为8001H,16位数送两次,

20、先送低00H,再送高8位04H。2022-3-2433)初始化程序 MOV DPTR,#8003H MOV A,#71H MOVX DPTR,A ;把控制字写入端口 MOV DPTR,#8001H MOV A,#00H MOVX DPTR,A ;先写低8位计数值 MOV A,#04H MOVX DPTR,A ;然后写高8位计数值2022-3-2441、重点掌握51系列单片机内部2个16位的定时计数器,有四种不同的工作方式。2、了解8253的功能、工作方式及应用等。本章小结2022-3-245方式0计完最后一个数时中断当CPU写控制字之后,OUT输出端变低,但计数器没有赋予初值,也没开始计数。要

21、开始计数,GATE信号必须为高电平,并在写入计数初值后,通道开始计数,在计数过程中 OUT一直维持为低,直到计数到“0”时。OUT输出变高。2022-3-246方式0的基本时序2022-3-247当CPU写控制字之后,输出为高。当CPU写完计数值后,计数器并不开始计数,直到GATE的上升沿出现时,输出OUT变低。因整个计数过程中,OUT都维持为低,直到计数到0,输出为高,因此输出为一个单拍脉冲。若外部再次启动GATE,则可以再产生一个单拍脉冲。方式1可编程的单拍脉冲2022-3-248方式1的基本时序GATE43210OUTPUT34210 CLKGATEOUTPUT234WRGATE上升沿后

22、的上升沿后的下一个CLK脉冲的下降沿开始计数。GATE每启动一次,就重新开始计数。2022-3-249在计数过程中,若GATE变为低电平,停止计数,OUT保持为高电平。GATE恢复到高电平时,计数器装入初值重新开始计数,计数到1时,输出低电平,经过一个CLK周期,输出恢复为高,且计数器自动开始重新计数。方式2速率发生器2022-3-250方式2的基本时序4321 0(3)OUTGATEOUT CLKn=4n=3 0(4)3212100(3)3210(3)210(3)210WR当GATE为低电平时,计数停止。计数器自动开始重新计数。2022-3-251方式3和方式2的输出都是周期性的,主要区别:方式3输出有一半时间为高,另一半时间为低。(1)当计数值n为偶数时,输出对称方波,在前n/2计数值时输出高电平,后n/2计数值时输出

温馨提示

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

评论

0/150

提交评论