六章定时器及应用

上传人:hs****ma 文档编号:568558077 上传时间:2024-07-25 格式:PPT 页数:42 大小:845KB
返回 下载 相关 举报
六章定时器及应用_第1页
第1页 / 共42页
六章定时器及应用_第2页
第2页 / 共42页
六章定时器及应用_第3页
第3页 / 共42页
六章定时器及应用_第4页
第4页 / 共42页
六章定时器及应用_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《六章定时器及应用》由会员分享,可在线阅读,更多相关《六章定时器及应用(42页珍藏版)》请在金锄头文库上搜索。

1、第六章定时器及应用n 6- 定时器定时器/计数器计数器6- 综合应用举例综合应用举例6- 定时器定时器/计数器的扩展计数器的扩展戒耐熔砾幌倦嗜划苑骨解掷碰赊扛汞糜悔坯舞抓兔贵摈之镍萨演伪这卒皮六章定时器及应用六章定时器及应用7/25/20241 6- 定时器定时器/计数器计数器一、定时方法:一、定时方法:1 1、硬件定时:、硬件定时:较长时间;不够灵活、方便;较长时间;不够灵活、方便;2 2、软件定时:、软件定时:编循环程序,时间精确;占用编循环程序,时间精确;占用CPUCPU;3 3、可编程定时器定时:、可编程定时器定时:对系统时钟脉冲记数,对系统时钟脉冲记数, 灵活、方便。灵活、方便。纪域

2、渴鸯锗衬朝爪趟些坏喻佃哩臆儒蜜来窃真岂胚届凳废椎蓑俩躯挖扮站六章定时器及应用六章定时器及应用7/25/20242二、定时器二、定时器/ /计数器的工作原理:计数器的工作原理: 定定时时器器/ /计计数数器器中中的的核核心心部部件件为为可可预预置置初初值值计计数数器器。预预置置初初值值后后开开始始计计数数,直直至至计计数数值值回回0 0或或产产生生溢溢出出,可可申申请中断请中断( (或供查询或供查询) )。 计数器有计数器有加加1 1计数或减计数或减1 1计数计数两种形式。两种形式。K1K2可预置初值计数器可预置初值计数器中断中断请求请求功能功能选择选择启动启动控制控制内部时钟脉冲内部时钟脉冲(

3、定时)(定时)外部输入脉冲外部输入脉冲(计数)(计数)溢出信号溢出信号计数脉冲计数脉冲计数初值计数初值TF0/TF1TF0/TF1TR0/TR1TR0/TR1C/TC/TTMODTMOD控制字控制字裁犹伍茂魔湃说抢三用赡避毒熔欣晚缘塞脏饲梆疼剑磕科祝易梳礁皇恶奖六章定时器及应用六章定时器及应用7/25/20243 作为定时器用时的计时速度:作为定时器用时的计时速度:一个机器周期计数一个机器周期计数器加器加1,直至计满溢出。,直至计满溢出。 如晶振为如晶振为12MHz的单片机,一个机器周期为的单片机,一个机器周期为1S,其,其计数频率为振荡频率的计数频率为振荡频率的1/12 。 作为计数器用时的

4、计数速度:作为计数器用时的计数速度:每两个机器周期计每两个机器周期计数器加数器加1,计数频率最高为振荡频率的,计数频率最高为振荡频率的1/24。 在在S5P2对计数输入引脚对计数输入引脚T0、T1进行采样,进行采样,下降下降沿计数沿计数。说明:说明: 定时器定时器/计数器在工计数器在工作期间不占用作期间不占用CPU的时间。的时间。讣蔼克亲剑觅拽花彦胡艘兑坞径坯召蕊梆刁锥桨岗镶面升运诌舍赐截趁比六章定时器及应用六章定时器及应用7/25/20244三三 MCS-51MCS-51定时器定时器/ /计数器计数器定时器初始化编程包括:定时器初始化编程包括:1.1.功能选择(定时功能选择(定时/ /计数)

5、;计数);2.2.位数选择(位数选择(8/13/168/13/16位);位);3.3.启动方式选择(内部启动启动方式选择(内部启动/ /外部启动);外部启动);4.4.启动控制(启动启动控制(启动/ /停止);停止);5.5.恢复初值方式(自动重装恢复初值方式(自动重装/ /软件重装)。软件重装)。2 2个可独立控制的个可独立控制的1616位定时器位定时器/ /计数器:计数器: 加法加法计数器计数器T T0 0、T T1 1疥诱滤纱柜瓮斌擦击返华驾嘎愧奖馆振赌硝脆膘劝辽昆位泡锹侄露姜臂咬六章定时器及应用六章定时器及应用7/25/202451 1、TMOD定时器方式寄存器(定时器方式寄存器(89

6、H89H):):1 1)功能选择位)功能选择位C/TC/T: =0 =0:定时功能,计数内部机器周期脉冲;:定时功能,计数内部机器周期脉冲; =1 =1:计数功能,计数引脚:计数功能,计数引脚T0(T1)T0(T1)输入的负脉冲。输入的负脉冲。2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式:种工作方式:13/16/813/16/8位位四、定时器控制、状态寄存器四、定时器控制、状态寄存器T1T0拳挪提牌行锻冒鸽帜害少藏御哉啤缮衷沤源建彤穴肺徒罢掇倦立缠婚锡鸯六章定时器及应用六章定时器及应用7/25/202463 3)门控方式选择位)门控方式选择位GATEGATE : =0 =

7、0,非门控方式,非门控方式( (内部启动内部启动) ): TRx=1 TRx=1,启动定时器工作;,启动定时器工作; TRx=0 TRx=0,停止定时器工作。,停止定时器工作。 =1 =1,门控方式,门控方式( (外部启动外部启动) ): TRx=1 TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。确定定时器工作方式指令:确定定时器工作方式指令: MOV TMOD MOV TMOD,# #方式字方式字例:例:设设T T0 0用方式用方式2 2非门控定时,非门控定时, T T1 1用方式用方式1 1门控计数。门控计数。 MOV TMODMOV TMOD,# #?益涅洒渔北嘉锡廊港毗

8、引舶匆果哉肩迹杆蛛霜是瘸蔓供朋飘琉阵嗣雪索型六章定时器及应用六章定时器及应用7/25/202472 2、TCONTCON定时器控制定时器控制/ /状态寄存器:状态寄存器:1 1)启动控制位)启动控制位TR0TR0、TR1TR1: =0 =0,停止定时器工作;,停止定时器工作; =1 =1,启动定时器工作。,启动定时器工作。例:例:启动启动T T0 0:SETB TR0SETB TR02 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1: 定时器溢出使定时器溢出使TFx=1TFx=1,引起中断请求,引起中断请求,CPUCPU响应响应TxTx中断中断 后,系统自动将后,系统自动将TFx

9、TFx清清0 0。当然,也可用软件检测当然,也可用软件检测TFxTFx,这时必须软件清,这时必须软件清0 0。WAITWAIT: JBC JBCTF0TF0,NEXTNEXT ;检测;检测T0T0是否溢出是否溢出 SJMPSJMPWAITWAIT ;未溢出,继续检测;未溢出,继续检测NEXTNEXT: ;溢出,;溢出,TF0TF0清清0 0,处理溢出,处理溢出抑剁晰氯帐际掘睡画隶庄继忱钨重犁钱锦舷阶蜡羹男捻梳性描冕恒噬否铝六章定时器及应用六章定时器及应用7/25/20248TCON的地址及格式如下,的地址及格式如下,可按位寻址可按位寻址。 各位的意义如下:各位的意义如下:TF1(TCON.7,

10、 8FH位)位)-T1溢出标志位。溢出标志位。TF0(TCON.5, 8DH位)位)-T0溢出标志位。溢出标志位。TR1(TCON.6, 8EH位)位)-T1运行控制位。运行控制位。 0:关闭:关闭T1;1:启动:启动T1运行。运行。TR0(TCON.4, 8CH位)位)-T0运行控制位。运行控制位。 0:关闭:关闭T0;1:启动:启动T0运行。运行。斥赊沙畴抬濒家寨列潞轿胞舵羚变雷驳烫数阉篇架猫寞武印膛素诉悯卫巍六章定时器及应用六章定时器及应用7/25/20249TCON各位的意义如下图所示:各位的意义如下图所示:商雪刑檬省潭访漏够捉讶疫努晓鸣硕浇祝谷浇杆姐颂揽菲释缴范前柒讼咒六章定时器及应

11、用六章定时器及应用7/25/2024103 3、可预置初值的、可预置初值的1616位位加加1 1计数器计数器TH0TH0、TL0TL0、TH1TH1、TL1TL1: 如:预置如:预置T T0 0初值指令:初值指令: MOV MOVTH0TH0,#X#XH H MOVMOVTL0TL0,#X#XL L敝训碾倦序绅挚兆喧展像猴兽嫂氧空蓑助始霍舰哇弟网惟确沾票饥乞岛嘱六章定时器及应用六章定时器及应用7/25/202411五、五、 定时器工作方式定时器工作方式由方式选择位由方式选择位M1M1、M0M0设定。设定。1 1 1 1、方式、方式、方式、方式0 0 0 0(M1M0=00M1M0=00M1M0

12、=00M1M0=00):):):):13131313位定时位定时位定时位定时/ / / /计数器。计数器。计数器。计数器。THx8THx8THx8THx8位和位和位和位和TLxTLxTLxTLx低低低低5 5 5 5位组成加位组成加位组成加位组成加1 1 1 1计数器。计数器。计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 181928192(2(21313) )定时时间定时时间( (若若T=1T=1 s)s):1 1 s s8.19ms8.19msfoscfoscT=12/foscT=12/fosc篓订尽昭胜臻摧踏珍芥化韧缄绍蜕挺诧单螺歧订囚宏厕佳杖斩瓤箩沃炯系六章定时器及应用六章定

13、时器及应用7/25/202412(一一) 模式模式0工作时的构成工作时的构成: (1)运行)运行控制部分控制部分;(;(2)定时)定时/计数计数信号源信号源; (3)13位位计数器计数器;(;(4)溢出标志溢出标志。(二二) 特点特点 1、可定时(、可定时(C/T=0)、可计数()、可计数(C/T=1) ; 2、13位方式(位方式(TL0、1的低的低5位和位和TH0、1的的8位);位); 3、INT0、INT1是定时器是定时器/计数器计数器0、1的外部门,的外部门, GATE=1允许使用外部门(允许使用外部门(TR0、1应置应置1), 此时用外部此时用外部门控制运行门控制运行 GATE=0禁止

14、外部门,此时用禁止外部门,此时用TR0、1控制运行;控制运行; 4、计数值、计数值N和定时时间和定时时间t的计算的计算 : N= 213- 初值初值X t=(213-初值初值X)*振荡周期振荡周期*12 =(213-初值初值X)*机器周期机器周期Tcy最大计数值为:最大计数值为: 213 = 8192役垦彬浸智摩吴渊职崭点皋亏赦钧骆哪成恬篷蘸妹致言大握静府梨但馆升六章定时器及应用六章定时器及应用7/25/202413(三三) 应用举例应用举例 例例6-1 设定时器设定时器T0选择工作模式选择工作模式0,定时时间为,定时时间为1ms, osc=6MHz。试确定。试确定T0初值,计算最大定时时间初

15、值,计算最大定时时间T。 解:解: (1)求)求T0的初值的初值X由公式:由公式:t=(213-T0初值初值)*机器周期机器周期Tcy t=1ms=1000s 机器周期机器周期Tcy=12/ osc=12/6000000s=2s得得 1000=( 213 -X)*2所以初值所以初值 X=8192-500=7692=1111000001100BT0的低的低5位:位:01100B=0CHT0的高的高8位:位:11110000B=F0H(2)最大定时时间)最大定时时间T 当当T0的初值的初值=0时为最大定时时间时为最大定时时间 T=(213 -0)*2=8192*2s =16384 s =16.38

16、4ms7692 32商为高商为高8位,位,余数为低余数为低5位位贞婆韧惊骚捡葛耍敞俏个揪幅褒糖燃尚帘纤蛰胚越伊罩鲍悲帛希婪膏旅慷六章定时器及应用六章定时器及应用7/25/202414 例例6-2 设设T1以模式以模式0定时,定时时间为定时,定时时间为1ms, osc=6MHz,编程实现其定时功能。,编程实现其定时功能。解解: (1)计算初值(同上,略)计算初值(同上,略) F0HTH0,0CHTL0(2)程序清单)程序清单 ORG 0000HAJMP MAIN ORG 000BH AJMP IT0P;主程序;主程序 ORG 0100HMAIN: MOV SP,#5FHMOV TMOD ,#00

17、HMOV TL0,#0CHMOV TH0,#0F0HSETB TR0SETB ET0SETB EASJMP $粒搞酪管爹衷抓令八众刻刮唐驮购矾烩茵档敌移矮阜泵吓省篱腰襄注厢框六章定时器及应用六章定时器及应用7/25/202415;中断服务程序;中断服务程序 ORG 0120HIT0P:MOV TL0,#0CH MOV TH0,#0F0H CPL P1.0 RETI坞航焚穗际妄连晃九务炔托阳睬宫筒隘厩皱冻蓑它彬培列逝沼鹤茶陆呕撇六章定时器及应用六章定时器及应用7/25/202416 例例6-3 利用利用T0的工作模式的工作模式0产生产生1ms的定时,编的定时,编程实现在程实现在P1.0引脚上输出

18、周期为引脚上输出周期为2ms的方波。设单的方波。设单片机的晶振频率片机的晶振频率 osc=12MHz。解解: 方法:方法:定时定时1ms,对,对P1.0取反,然后继续定时取反,然后继续定时(1)设置模式字)设置模式字 TMOD= * 0000B =00000000B=00H (2)计算初值)计算初值由公式:由公式:t=(213-T0初值初值)*机器周期机器周期 t=1ms=1000s,机器周期机器周期Tcy=12/ osc=12/12000000s=1s得得 1000=( 213 -X)*1=(8192-X)*1所以初值所以初值 X=7192=1110000011000BT0的低的低5位:位:

19、11000B=18HT0的高的高8位:位:11100000B=E0H1ms2ms7192 32商为高商为高8位,位,余数为低余数为低5位位淘纸误能冈舵描曼灸咒吕和娱酱或是夹何佣灾阿放狙臣晃毡拣堂恍俐偶纠六章定时器及应用六章定时器及应用7/25/202417(3)程序清单)程序清单方法一:中断方式方法一:中断方式 ORG 0000HRESET:LJMP MAIN ORG 000BH LJMP CTC0;主程序;主程序 ORG 0030HMAIN: MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB EA SETB ET0 SETB TR

20、0 SJMP $;中断服务程序中断服务程序 ORG 0100HCTC0:MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 RETI隅笼谬抄闷趟厄疵衰噪瘴程霄放婿便署蜜唱芯快索倒干坤嘉空廊牲纷厢贾六章定时器及应用六章定时器及应用7/25/202418方法二:查询方式方法二:查询方式 ORG 0000HSTART:MOV SP,#5FH MOV TMOD,#0 MOV TL0,#18H MOV TH0,#0E0H SETB TR0LOOP: JBC TF0,NEXT SJMP LOOPNEXT: MOV TL0,#18H MOV TH0,#0E0H CPL P1.0 SJMP

21、 LOOP可替换为可替换为:LOOP:JNB TF0,$ CLR TF0 MOV TL0,#18H :尽辖客蛔官垃媳加髓祖仍缉璃肢缘你铆片迈摈弯闺痘赏瘦婴桃猪算铱谋盛六章定时器及应用六章定时器及应用7/25/2024191616位定时位定时/ /计数器。计数器。 THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 16553665536(2(21616) )定时时间定时时间( (若若T=1T=1 s)s):1 1 s s(65536T=65.54ms)(65536T=65.54ms)2 2 2 2、方式、方式、方式、

22、方式1 1 1 1(M1M0=01M1M0=01M1M0=01M1M0=01):):):):T=12/foscT=12/fosc惑毯棉苹底瞥棋敢妄级每搭割顷隐矿济桥碴哆辙幻是五梅涯衷忘熙侧搽喇六章定时器及应用六章定时器及应用7/25/2024203 3 3 3、方式、方式、方式、方式2 2 2 2(M1M0=10M1M0=10M1M0=10M1M0=10):):):): 自动恢复初值自动恢复初值8 8位定时位定时/ /计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器, THx THx为为8 8位初值暂存器。位初值暂存器。用于需要重复定时和计数的场合。用于需要重复定时和计数的场

23、合。最大计数值:最大计数值:256 (2256 (28 8) )最大定时时间最大定时时间( (若若T=1T=1 s)s): 256256 s sT=12/foscT=12/fosc梦烘谍孵彩惟炬挟氓甚吐原牙衍值睡霞玲厩闹芳便深铸卫纷俏卢骗屿嫡诊六章定时器及应用六章定时器及应用7/25/2024214 4 4 4、方式、方式、方式、方式3 3 3 3(M1M0=11M1M0=11M1M0=11M1M0=11):):):):nT0T0分成分成2 2个个8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器;定时器;nTL0TL0占用占用T0T0控制位:控制位:C/T

24、C/T,TR0TR0,GATEGATE;nTH0TH0占用占用T1T1控制位:控制位:TR1TR1、TF1TF1;nT1T1不能使用方式不能使用方式3 3工作,常作串口的波特率发生器使用。工作,常作串口的波特率发生器使用。foscfosc振荡器振荡器封哟殿蛮修伙辩俄豺卉担澡邵缺拖券涵氟脑寝霄凭霍眨谭瘸瞄庄檄菩讣咐六章定时器及应用六章定时器及应用7/25/202422 TMOD各位的意义如下:各位的意义如下:M1和和M0-工作模式控制位。其功能如下表:工作模式控制位。其功能如下表:C/T-定时器定时器/计数器方式选择位。计数器方式选择位。 0:定时器;:定时器;1:计数器。:计数器。GATE-外

25、部门控位。外部门控位。 0:不用外部门;:不用外部门;1:使用外部门。:使用外部门。初桩彩贮廷纫颊桅架钦拔甥防娃牌洱惦聂炭瞬冰贴搏菊突菏挝蕾孩咒探晾六章定时器及应用六章定时器及应用7/25/202423求求THX、TLX的方法:的方法: T0 T0运行于计数器状态,工作于方式运行于计数器状态,工作于方式1 1 (1616位方式),要求外部引脚出现位方式),要求外部引脚出现3 3个个 脉冲后,脉冲后,TH0TH0、TL0TL0全回全回0 0(以便申请(以便申请 中断)。求计数初值中断)。求计数初值C C。解:解:C=(0003H)C=(0003H)求补求补=FFFDH=FFFDH例例1:加加1

26、1计数计数嗜卖刑杨青铰猫氯脖妨谁俗糟叮员乞绩挥兹翘龋勉颂言摘砸遥挥王脂混杖六章定时器及应用六章定时器及应用7/25/202424例例2: T0 T0运行于定时器状态,时钟振荡周期为运行于定时器状态,时钟振荡周期为12MH12MHZ Z,要求定,要求定时时100100 s s。求不同。求不同工作方式时的定时初值工作方式时的定时初值C C。解:解:fosc=12MHzfosc=12MHz T=1 T=1 s s X=100 X=100 s s/1/1 s s=(100)=(100)D D=64H=64H方式方式0 0(13(13位方式位方式) ):C=(64H)C=(64H)求补求补=0 0000

27、 0110 0100 B+1=0 0000 0110 0100 B+1 =1F9CH =1F9CH方式方式1 1(16(16位方式位方式) ):C=(64H)C=(64H)求补求补=0000 0000 0110 0100 B+1=0000 0000 0110 0100 B+1 =FF9CH =FF9CH方式方式2 2、3 3(8(8位方式位方式) ):C=(64H)C=(64H)求补求补=0110 0100 B+1=0110 0100 B+1 =9CH =9CH注意:注意:工作方式工作方式0 0的初值装入方法:的初值装入方法:1F9CH=0001F9CH=0001 1111 1001 1111

28、 1001 11001 1100 B B 可见,可见,TH0=FCHTH0=FCH,TL0=1CHTL0=1CHTL0TL0的低的低5 5位位TH0TH0的的8 8位位MOVMOVTH0TH0,#0FCH#0FCHMOVMOVTL0TL0,#1CH#1CHT=12/foscT=12/fosc次鼻哮鳞清洼升蕴亿踌氦坠翔楔猛鹅揣瘸郎巍始债卉隅淄贯态锭瞄龋绰惮六章定时器及应用六章定时器及应用7/25/202425六、六、MCS-51MCS-51定时器的应用定时器的应用1 1计数功能:计数功能:n生产线上产品计数:生产线上产品计数:每个产品通过得到一个脉冲信号,每个产品通过得到一个脉冲信号, 计数器记

29、录脉冲个数,当计数值与计数器记录脉冲个数,当计数值与 设定值相等,启动包装机器。设定值相等,启动包装机器。n检测转速:检测转速:电机转动一圈发出一个脉冲,计数器记录一电机转动一圈发出一个脉冲,计数器记录一 秒时间内脉冲个数,显示转速。秒时间内脉冲个数,显示转速。2 2定时功能:定时功能:n用于实时控制:用于实时控制:定时采样、定时启动等。定时采样、定时启动等。 当定时时间与设定值相等,执行规定操作。当定时时间与设定值相等,执行规定操作。爆酋频灰狠腋仑面素料忧释担镀专挛说函激卵吱振甄舜深掩唁淋陋斡掺疟六章定时器及应用六章定时器及应用7/25/2024263.3.定时器初始化编程定时器初始化编程

30、使用定时器工作之前,先写入控制寄存器,使用定时器工作之前,先写入控制寄存器, 确定好定时器工作方式。确定好定时器工作方式。 初始化编程格式:初始化编程格式:MOV TMOD,# 方式字方式字 ;选择方式;选择方式MOV THx,#XH ;装入;装入Tx时间常数时间常数MOV TLx,#XL(SETB EA) ;开;开Tx中断中断(SETB ETx ) SETB TRx ;启动;启动Tx定时器定时器需考虑:需考虑:1. 按实际需要选择定时按实际需要选择定时/ /计数功能;计数功能; 2. 按时间或计数长度选择工作方式;按时间或计数长度选择工作方式; 3. 3. 计算时间常数:计算时间常数:计算时

31、间常数:计算时间常数:计算时间常数计算时间常数X(X(计算初值计算初值) ):计数功能:计数功能:X= 2X= 2n n - -计数值计数值 (n n:8/13/168/13/16) 定时功能:定时功能:X= 2X= 2n n - t/T- t/T (t t:定时时间;:定时时间; T T:机器周期):机器周期)回食县再猪姐深十墨坪锗鉴士斋刮扰鲜收后锯烁幼洗遂督拿苔召哄磐孰课六章定时器及应用六章定时器及应用7/25/2024274. 溢出处理编程格式溢出处理编程格式1 1)查询方式:)查询方式:先查询定时器溢出标志,再进行溢出处理。先查询定时器溢出标志,再进行溢出处理。 ;定时器初始化;定时器

32、初始化WAITWAIT: JBC JBC TFxTFx,PT PT ;检测溢出标志;检测溢出标志SJMP SJMP WAITWAIT PT PT: MOVMOVTHxTHx,#X#XH H ;重装时间常数;重装时间常数MOVMOVTLxTLx,#X#XL L ;溢出处理;溢出处理SJMPSJMPWAITWAIT2 2)中断方式)中断方式:初始化后执行其它任务,中断服务程序处理溢出。:初始化后执行其它任务,中断服务程序处理溢出。ORGORG0000H0000HLJMPLJMPMAINMAINORGORG000BH(001BH) 000BH(001BH) ;TxTx中断入口中断入口LJMPLJMP

33、PTSPTSMAINMAIN: ;初始化后执行其他程序;初始化后执行其他程序 PTS PTS: ;溢出中断服务程序;溢出中断服务程序MOVMOVTHxTHx,#X#XH H;重装时间常数;重装时间常数MOVMOVTLxTLx,#X#XL LRETIRETI唾花极熄浓淌嫉芒掘臆鲍平丫刀拟儡敬证捧溯篇毙息辛审粱私宪炳哈滓起六章定时器及应用六章定时器及应用7/25/202428练习:练习:80C5180C51单片机选择单片机选择1616位加位加1 1计数器。计数器。 按要求选择功能和初值。按要求选择功能和初值。1 1、要求检测到、要求检测到100100个脉冲,发中断请求,通知个脉冲,发中断请求,通知

34、CPUCPU。 选计数功能,计数初值为选计数功能,计数初值为156156。2 2、要求定时每隔、要求定时每隔100100 s s时间,发一次中断请求。时间,发一次中断请求。 设内部时钟周期设内部时钟周期1 1 s s 选定时功能,计数初值为选定时功能,计数初值为156156。腔草去餐呕翠斯舷犯时篆径拌媒约掷勋欣尹办姥诚多轮瘁榜俺运燥绅畦品六章定时器及应用六章定时器及应用7/25/202429 80C51单片机内有单片机内有2个个16位的位的T0和和T1,如在应用中,定时器如在应用中,定时器/计数器的数量或功能不计数器的数量或功能不能满足要求,则可在外部扩展。能满足要求,则可在外部扩展。 扩展的

35、芯片主要有扩展的芯片主要有8253( (最高时钟频率为最高时钟频率为2MHz) )和和8254( (最高时钟频率为最高时钟频率为8MHz) )等。等。它们均为它们均为减法计数减法计数。各有。各有3个独立的个独立的16位计数位计数器器T0、T1和和T2,它们既可用于计数,又可用,它们既可用于计数,又可用于定时,并可运行在于定时,并可运行在0模式模式5模式共模式共6种不同种不同的工作模式中。的工作模式中。 6- 定时器定时器/计数器的扩展计数器的扩展根源东榆悟轻湘邓森征址随摩挥紧滨移攫晃搔留瑞酶幸迁岩宜披翰霜蚜或六章定时器及应用六章定时器及应用7/25/2024306- 定时器定时器/计数器与中断

36、计数器与中断综合应用综合应用举例举例例例1 1:由由P1.0P1.0输出方波信号,周期为输出方波信号,周期为2ms2ms, 设设f foscosc=12MHz=12MHz。2ms解:每隔解:每隔1ms1ms改变一次改变一次P1.0P1.0的输出状态。的输出状态。 用用T0T0非门控方式非门控方式1 1定时。定时。 计算时间常数:计算时间常数:X=2X=21616-t/T=2-t/T=21616-1000/1 -1000/1 =FC18H =FC18H(1 1)查询方式:)查询方式: START:MOV TMOD,#01H MOV TL0,#18H MOV TH0,#0FCH SETB TR0

37、LOOP: JBC TF0,PTF0 SJMP LOOP PTF0: CPL P1.0 MOV TL0,#18H MOV TH0,#0FCH SJMP LOOPT1T0单片机单片机 P1.02ms失唱禾锰范躇厂彭拈擒寒枝揽坝枢省挪雁浙潮魁程柜汽律玫著茄储所满行六章定时器及应用六章定时器及应用7/25/202431(2 2)中断方式:)中断方式: ORG0000H AJMPMAIN ORG000BH;T0定时器定时器 AJMPPT0INT ORG0100HMAIN: MOVSP,#60H MOVTMOD,#01H MOVTL0,#18H MOVTH0,#0FCH SETBEA SETBET0 S

38、ETBTR0HERE: SJMPHEREPT0INT: CPLP1.0 MOVTL0,#18H MOVTH0,#0FCH RETIT1T0僻栗疙译饲购蚕颜韦驳肥辟抢趋悲淌纷盈赁娃沏耪丝萝番度迂辑表剪郭我六章定时器及应用六章定时器及应用7/25/202432利用利用C51程序实现:程序实现:#includesbit P1_0=P10;Void main (void) TMOD=0x01;/*定时器定时器0方式方式1*/TR0=1;/*启动启动T/C0*/ for (;)TH0=(65536-1000)/256;/*装载计数初值装载计数初值*/TL0=(65536-1000)%256;do whi

39、le (! TF0);/*等待查询等待查询TF0置位置位*/P1_0=! P1_0;/*定时时间到定时时间到P1.0反相反相*/TF0=0;/*软件清软件清TF0*/用定时器用定时器0的方式的方式1编程,采用查询方式。编程,采用查询方式。reg51.h文件定义了所有文件定义了所有8051的特殊功能寄存器及中断的特殊功能寄存器及中断气抛裤彩穴迭瘩庄姚除竿除砸梯墟蛹俄敲尘炯领衍妆周纤郸函冤颜蜀着瑟六章定时器及应用六章定时器及应用7/25/202433#includesbit P1_0=P10;Void timer0 (void)interrupt 1 using 1 /*T/C0中断服务程序入口中

40、断服务程序入口*/ P1_0=! P1_0;/*定时时间到定时时间到P1.0反相反相*/TH0=(65536-1000)/256;/*计数初值重装载计数初值重装载*/TL0=(65536-1000)%256;Void main(void)TMOD=0x01;/*定时器定时器0工作在方式工作在方式1*/P1_0=0;TH0=(65536-1000)/256;/*预置计数初值预置计数初值*/TL0=(65536-1000)%256;EA=1;/*CPU开中断开中断*/ET0=1;/*T/C0开中断开中断*/TR0=1; /*启动启动T/C0开始定时开始定时*/do while(1);用定时器用定时

41、器0的方式的方式1编程,采用中断方式。编程,采用中断方式。否屑黑仓遂徘伤颁屁颐穷薄韵庞裳护锋连距景孔就认僚弃击殴拿鸯筷骋圆六章定时器及应用六章定时器及应用7/25/202434例例2 2:长定时方法:增加一个软件长定时方法:增加一个软件计数器或一个硬件计数器。计数器或一个硬件计数器。本题采用硬件方式:本题采用硬件方式:T0T0定时,定时定时,定时10ms10ms; T1T1计数计数T0T0的定时跳变信号的定时跳变信号P1.0P1.0的负跳变次数,计满的负跳变次数,计满5050个个跳变为跳变为1 1秒。秒。(查询方法)(查询方法)START: MOV TMOD,#61H MOV TL1,#0CD

42、H MOV TH1,#0CDH CLR P1.0 SETB TR1LOOP1: CPL P1.7LOOP2: MOV TL0 ,#78H MOV TH0,#0ECH SETB TR0LOOP3: JBC TF0,LOOP4 SJMP LOOP3LOOP4: MOV TL0 ,#78H MOV TH0,#0ECH CPL P1.0 JBC TF1,LOOP1 SJMP LOOP2T=2T=2s s,X=5X=510105 5个个T T,而最大只能,而最大只能6553665536个个T T,不能满足要求,必须借助硬件计数器或软件循环。不能满足要求,必须借助硬件计数器或软件循环。 T0T0定时初值:

43、定时初值: (方式(方式1 1)t=10mst=10ms,X=5000D=1388HX=5000D=1388H,C=C=(1388H1388H)补补=EC78H=EC78H T1T1计数初值:计数初值: (方式(方式2 2)X=50DX=50D,C=C=(32H32H)补补=CDH=CDHP P1.71.7驱动驱动LEDLED亮亮1 1秒灭秒灭1 1秒地闪烁,设时钟频率为秒地闪烁,设时钟频率为6MHz6MHz。遂惩柔船蝗饰晕院寅亡准曝虹窜今累铡音过跋哎刺诊乖预盎葛排瓜格莆问六章定时器及应用六章定时器及应用7/25/202435利用利用C51程序程序实现实现:#includesbit P1_0=

44、P10;sbit P1_7=P17;timer0 interrupt 1 using 1 /*T/C0中断服务程序中断服务程序*/ P1_0=! P1_0;/*10ms定时时间到定时时间到, P1.0反相反相*/TH0=(65536-5000)/256;/*计数初值重装载计数初值重装载*/TL0=(65536-5000)%256;timer1 interrupt 3 using 2 /*T/C1中断服务程序入口中断服务程序入口*/ P1_7=! P1_7;/*1s定时时间到定时时间到, 灯改变状态灯改变状态*/main( ) P1_7=0;/*置灯初始灭置灯初始灭*/P1_0=1;/*保证第一

45、次反相便开始计数保证第一次反相便开始计数*/TMOD=0x61;/*定时器定时器0工作在方式工作在方式1定时,定时器定时,定时器1工作在方式工作在方式2计数计数 */TH0=(65536-5000)/256;/*预置计数初值预置计数初值*/TL0=(65536-5000)%256;TH1=256-50;TL1=256-50;IP=0x08; /*置优先级寄存器置优先级寄存器*/EA=1;/*CPU开中断开中断*/ET0=1;/*开开T/C0中断中断*/ET1=1;/*开开T/C1中断中断*/TR0=1;/*启动启动T/C0*/ TR1=1;/*启动启动T/C1*/for (;)reg51.h文

46、件定义了所有文件定义了所有8051的特殊功能寄存器及中断的特殊功能寄存器及中断南辊绑爵提帧略壳碑邹该明龚徽蛔绸时肢涸距乔格幌雍傈往哦之熬束请钱六章定时器及应用六章定时器及应用7/25/202436例例3:外部负脉冲引起中断请求,选计数方式,时间常数为外部负脉冲引起中断请求,选计数方式,时间常数为FFHFFH。START:MOV TMOD,#90H MOV TL1,#00H MOV TH1,#00HWAIT1:JB P3.3,WAIT1 SETB TR1WAIT2:JNB P3.3,WAIT2 WAIT3:JB P3.3,WAIT3 CLR TR1 MOV R2,TL1 MOV R3,TH1 T

47、R1=1 T1启动启动 TR1=0 T1停止停止INT1例:例:门控方式测量正脉冲宽度门控方式测量正脉冲宽度解:解: INT1 INT1引脚输入被检测信号,记录在正脉冲的引脚输入被检测信号,记录在正脉冲的 时间内包含机器脉冲个数。时间内包含机器脉冲个数。 (1)设脉宽小于设脉宽小于65.5ms65.5ms(方式(方式1 1):): 等待查询等待查询INT1INT1,正脉冲过后,读出,正脉冲过后,读出TH1TL1。定时器外部引脚定时器外部引脚T0(T1)T0(T1)用作外部中断信号输入端用作外部中断信号输入端 ( (单片机振荡频率为单片机振荡频率为 12M) 12M)。挨碰取斌辗赠珐嗜淖叹循扩挛

48、涉习找秽迈豢怎爱禁召矾央近翁闰仁镰炯磋六章定时器及应用六章定时器及应用7/25/202437 ORG 0000HORG 0000H LJMP MAIN LJMP MAIN ORG 001BH ORG 001BH AJMP PRIC AJMP PRIC MAIN: SETBMAIN: SETBTR1TR1SETBSETBET1ET1 ;开;开T1T1中断中断SETBSETBEAEAWAIT2WAIT2:JNBJNBP3.3P3.3,WAIT2 WAIT2 ;等待正脉冲到来;等待正脉冲到来WAIT3WAIT3:JBJBP3.3P3.3,WAIT3 WAIT3 ;等待正脉冲结束;等待正脉冲结束CLR

49、CLRTR1TR1 ;关闭;关闭T1T1MOVMOVIEIE,#00H#00H ;关闭中断;关闭中断MOVMOVR2R2,TL1TL1 ;读出;读出T1T1MOVMOVR3R3,TH1TH1LCALL PPSLCALL PPS ;计算脉宽;计算脉宽HEREHERE:SJMPSJMPHEREHERE ;其他任务;其他任务PRICPRIC:INCINCR4R4 ;记录溢出次数;记录溢出次数RETIRETI PPS PPS: ;计算脉宽子程序;计算脉宽子程序计算脉宽的子程序的计算式如下:计算脉宽的子程序的计算式如下: 脉宽脉宽t=t=(R R4 42216 16 +R+R3 3 R R2 2)T )

50、T (T T为机器周期)为机器周期)(2)设脉宽大于设脉宽大于65.5ms65.5ms: 中断方式中断方式记录记录TH1TL1TH1TL1溢出中断次数。溢出中断次数。寂恃设创暑尖纤恶幌誉邀晤藏获谊陪必收蔗抹尸践恩嘲毁因揩岳蕊陇煤襟六章定时器及应用六章定时器及应用7/25/2024381 1、5 5个中断源及其对应入口地址:个中断源及其对应入口地址: 外中断外中断2 2个:个:INT0INT0、INT1INT1 定时中断定时中断2 2个:个:T0T0、T1T1 串行中断串行中断1 1个:个:RI/TIRI/TI 2 2、中断优先原则:分、中断优先原则:分2 2个优先级;个优先级; 同级:同级:

51、INT0T0INT1T1RI/TIINT0T0INT1T1RI/TI。3 3、中断响应过程:、中断响应过程:4 4、中断系统内部结构:、中断系统内部结构:5 5、中断请求的撤消:、中断请求的撤消:3 3类中断请求撤消的异同点。类中断请求撤消的异同点。6 6、中断源的扩展。、中断源的扩展。7 7、定时器、定时器/ /记数器的工作原理、记数器的工作原理、4 4种工作方式。种工作方式。8 8、定时器、定时器/ /记数器与中断的综合应用。记数器与中断的综合应用。小小 结结淹回坐袱用镭毖竟脾疆这逝漓右漱萎那跃法忙岸捌洒熔彝棕霞慨絮凡瘁旷六章定时器及应用六章定时器及应用7/25/2024399、利用定时器

52、、利用定时器/计数器形成中断源计数器形成中断源 把定时器把定时器/ /计数器计数器T0T0(T1T1)设置成记数状态,并把)设置成记数状态,并把计数器初值设置成只要加计数器初值设置成只要加1 1个外部脉冲后计数器就回个外部脉冲后计数器就回0 0的的数值时,在打开了中断的条件下,外部信号只要出现数值时,在打开了中断的条件下,外部信号只要出现1 1个脉冲周期就可引起中断请求。个脉冲周期就可引起中断请求。当计数器设置成方式当计数器设置成方式0 0时,计数器初值应为时,计数器初值应为FF1FHFF1FH;当计数器设置成方式当计数器设置成方式1 1时,计数器初值应为时,计数器初值应为FFFFHFFFFH

53、;当计数器设置成方式当计数器设置成方式2/32/3时,计数器初值应为时,计数器初值应为FFHFFH。方式方式2 2能自动重装初值;能自动重装初值;方式方式0 0、1 1、3 3不能,必须需重装。不能,必须需重装。燕信拷动敏莽绅汗圭止毖比移谦嫌辅如半寥痘葬丙炙角允舀浚芯善狞苔钧六章定时器及应用六章定时器及应用7/25/202440例如以定时器/计数器0扩展一个外部中断,其初始化程序段为:nMOV TMOD,#06HnMOV TH0,#0FFHnMOV TL0,#0FFHnSETB EAnSETB ET0nSETB TR0全郊腔断尉稠盾涉罚毒旬忌割殆邮踌笑罕第爽蟹斗诞茁锁驼苫继绪茶返壤六章定时器及应用六章定时器及应用7/25/202441P/141 例n设计实时时钟程序勾猾滇取挛良重脆愉朔途胖誊崖爪蔚勉储趋虾难颅挠吮哺鸦簿鉴叔佬押扒六章定时器及应用六章定时器及应用7/25/202442

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号