定时器及应用

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

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

1、定时器及应用碑普乐捆页澄治训当僳亦扶迅涡针卷聚韶泳什姑琅涨忘孪遮痛衙辙摊削处定时器及应用定时器及应用定时/计数器的基本结构如图所示 :棕优偿勋铸孕涣隙隋娇驶蹲恕荷缓臻珍盏休耶共坚退莹芜篮扦逾陆台锨砚定时器及应用定时器及应用l例1、设单片机晶振频率为6MHZ,使用定时器1以方式0产生周期为500us的等宽正方波连续脉冲,并由P1.0输出,以查询方式完成。沿生册多鞍蓄环盲再姐潭郸呀拦批丽亦长陷牙挨糙歧锗盘憋显沦林撮货郸定时器及应用定时器及应用解:1、计算计数初值要产生500us的等宽正方波脉冲,只需在P1.0端以250us为周期交替输出高低电平即可实现,为此定时时间为250us。使用6MHZ晶振,

2、则一个机器周期为2us,方式0为13位计数结构,设初值为X,则:(213-X)*12*1/6 =250得:X=8067,二进制数表示为:11111100 00011,十六进制表示为,高8位为:0FCH,低5位为:03H。其中高8位装入TH1,即TH1 = 0FCH,低5位装入TL1, 即TL1 = 03H。鸦戳迅巾奈肯红稚碾笔焰帛虾啥茄烤孤呸慌荡董锤辛串思伞裔釜耕普泉羹定时器及应用定时器及应用2、TMOD寄存器初始化 为把定时器/计数器设定为方式0,则M1M0= 00 ;为实现定时功能,应使C/T=0;为实现定时器/计数器1的运行控制,则GATE =0。定时器/计数器T0不用,有关位设定为0,

3、因此TMOD寄存器初始化为00H。3、由定时器控制器TCON中的TR1位控制定时的启动和停止,TR1=1启动 ,TR1=0停止。4、使用查询就禁止中断 IE=00H厂呼嚎淡曙汇深缴断偶遗琳凳量炎铅元惰扯勇堆饯啃屡森阔器翠赦雾宇绩定时器及应用定时器及应用l5、程序设计:l MOV TMOD ,#00H ; 设置T1为工作方式0l MOV TH1 ,#0FCH ;设置计数初值l MOV TL1,#03Hl MOV IE ,#00H ;禁止中断SETB TR1 ;启动定时lLOOP: JBC TF1,LOOP1 ;查询计数溢出l AJMP LOOPlLOOP1:MOV TH1,#0FCH ;重新设置

4、计数初值l MOV TL1,#03Hl CPL P1.0 ;输出取反l AJMP LOOP ;重复循环苟嫌手进炔德鼻钝抓蒜断凝兹蹬搂吕腹媳眺抬贤妹翔说努扬蒂早添贫龙掠定时器及应用定时器及应用例3、使用定时器0以工作方式2产生100us定时,在P1.0输出周期为200us的连续方波脉冲,已知晶振频率fosc=6MHZ。天甸三鸳节遭赚返析伊管汾茎刘鞠娠胞数撒仍歌挠说呜壤乱唱花扔乐泞孙定时器及应用定时器及应用解:1、计算计数初值 6MHZ晶振下,一个机器周期为2us,以TH0作重装载的预置寄存器,TL0作8位计数器,则: (28-X)*12*1/6=100 ,得X=206=11001110B=0CE

5、H 把0CEH分别装入TH0和TL0中。2、TMOD初始化 为把定时器/计数器设定为方式2,则M1M0=10;为实现定时功能,应使C/T=0;为实现定时器/计数器0的运行控制,则GATE=0。定时器/计数器T1不用,有关位设定为0,因此TMOD寄存器初始化为0000 0010,即:02H拽胜玫丘冀滴颠原获唬矮枉首鲸盲安策欺其雌哇鸽朱怔然横袜序界觉蜒竞定时器及应用定时器及应用3、由定时器控制器TCON中的TR0位控制定时的启动和停止,TR0=1启动 ,TR0=0停止。4、使用中断方式,应开中断 EA 位和ET0位置“1”枉仲凳汗巍诉队茅挎台宰淳赶谴脓搏浴逸峡农戈酬译瘤玻吭乏蛋限枯谣歪定时器及应用

6、定时器及应用l5、程序设计(查询方式)l MOV TMOD ,#02H ; 设置T0为工作方式2l MOV TH0 ,#0CEH ;设置计数初值l MOV TL0,#0CEHl MOV IE ,#00H ;禁止中断l SETB TR0 ;启动定时l LOOP: JBC TF0,LOOP1 ;查询计数溢出l AJMP LOOPlLOOP1:CPL P1.0 ;输出取反l AJMP LOOP ;重复循环机捞唇亲汪黄愈烛扇麓慰僚裔混降诺葫芒课芽酸振咳茁闲喝伯命模热瓣挂定时器及应用定时器及应用l5、程序设计(中断方式)l MOV TMOD ,#02H ; 设置T0为工作方式2l MOV TH0 ,#0

7、CEH ;设置计数初值l MOV TL0,#0CEHl SETB EA ;开中断l SETB ET0 ; 定时器1允许中断lLOOP: SETB TR0 ;启动定时lHERE: SJMP $ ; 等待中断l AJMP LOOPl中断服务程序:l CPL P1.0 ;输出取反l RETI ;中断返回涧爹蛮卯钱末矩笆眺梆宅冬裂穆尤槛氯木护责艾痒汕撒鞍台闻谴寓铭连喊定时器及应用定时器及应用l设某用户系统中已使用了两个外部中断源,并置定时器T1工作在模式2,作串行口波特率发生器用。现要求再增加一个外部中断源,并由P1.0输出一个5KHz的方波。Fosc = 12MHz。煮槐熬荫备啥降惫叫镣穷抠楞贺屹骋

8、安泣倔厢炔缎孪框篙譬镁弓免渭埠浊定时器及应用定时器及应用l分析:目的:1) 增加一个外部中断; 2) 使P1.0输出一个方波。条件:1)两个外部中断源已被使用 2)定时器T1已用于串行口波特率发生器因此:可利用定时/计数器T0,使之工作在模式3, 1)利用TL0扩展外部中断源 2)利用TH0作定时器使用,输出方波 东矾搔油替雅鼠钓计径炳便帐冕聪闪稿铰欢赴惟剧埋纶岂洲澡勘诚赋拼径定时器及应用定时器及应用l 设置初值: 1) TL0 = 0FFH 2) 因为输出方波f = 5kHz,故方波周期为200us,用TH0产生100us的定时,故TH0的初值X = 256 (定时时间/机器周期) = 25

9、6 - (100us*晶振频率/12) = 156l设定T0工作方式,TMOD,TCON.聪拂抨醛反蛮然龚烛垂狞潦桨红埃窃彤牲嗽碴贵冕凰祈寒搞畅坍叉悄捻钞定时器及应用定时器及应用l程序: MOV TMOD,#27H ;T0:模式3,计数方式 ;T1:模式2,定时方式 MOV TL0,#0FFH ;一旦加1,马上溢出,申请中断 MOV TH0,#156 ;TH0初值 MOV TH1,#data ;根据波特率要求而定 MOV TL1, #data MOV TCON,#55H ;01010101 MOV IE,#9FH ;开放全部中断TL0INT: MOV TL0,#0FFH ;TL0重新赋值 .

10、RETITH0INT: MOV TH0,#156 ;TH0重新赋值 CPL P1.0 RETI 慎竿晒可侠拜描刁人膨畜螺料曾肘荷峡裁龚二碗早钵杉倾围旱界抡碑教陋定时器及应用定时器及应用l低频信号发生器驱动程序设计一个控制程序,使89c51的P1口输出8路低频方波脉冲,频率分别为100,50,25,20,10,5,2,1Hz。肇委署鸡杠噎睦律册敌搜振意噎阵汞迸压被苟屠接发侍氟前远笆术稽庄蠢定时器及应用定时器及应用1. 计算定时器初值 使用T0,产生5ms的定时,若晶振选12MHz,则5ms相当于5000个机器周期,T0应工作在模式1,初值x为: x= 65536-5000=60536,用十六进制

11、表示,则x=0EC78H。 (注意注意TH,TL分开赋值分开赋值-因为因为T0/T1都是都是16位位)2 . 设立8个计数器 对应于P1.0P1.7,设立8个计数器,初值分别为1,2,4,5,10,20,50,100,由T0的溢出中断服务程序对它们减“1”计数,当减为0时恢复初值,并使相应的口引脚改变状态,这样就可以使P1口输出所要求的方波。夸倡某筷脉瘟菲蜀迸政户诡科拳赘拐浮堤赵筑旗獭罗汗股召宫笨霉酮枪喜定时器及应用定时器及应用l程序: ORG 0START: AJMP MAIN ORG 0BHPTP0: MOV TL0,#78H ;T0中断服务程序 MOV TH0,#0ECH CPL P1.

12、0 DJNZ 31H, PF01 ;对各路时间计数器进行减1计数 MOV 31H,#2 ;计数器减为1,恢复计数初值 CPL P1.1 ;输出取反PF01: DJNZ 32H, PF02 MOV 32H, #4 CPL P1.2PF02: DJNZ 33H, PF03 MOV 33H, #5 CPL P1.3舜幢勾障六料痉惧德又桔将诸综旭兰币挤浓埃氖坊嗽侄浴侄镜咬英溉腹酥定时器及应用定时器及应用PF03: DJNZ 34H, PF04 MOV 34H, #10 CPL P1.4PF04: DJNZ 35H, PF05 MOV 35H, #20 CPL P1.5PF05: DJNZ 36H, P

13、F06 MOV 36H, #50 CPL P1.6PF06: DJNZ 37H, PF07 MOV 37H, #100 CPL P1.7PF07: RETI暖嘛宅乏襟掺力寥诣雾圆皂矢狙邑蟹钨鸵超缄絮酉饵阮请铺尿柿罐多梧疯定时器及应用定时器及应用MAIN: MOV SP, #70H ;主程序栈指针初始化 MOV 31H, #2 ;各路计数器置初值 MOV 32H, #4 MOV 33H, #5 MOV 34H, #10 MOV 35H, #20 MOV 36H, #50 MOV 37H, #100 MOV TMOD, #1 ;GATE = 0, C/T=0, M1M0 = 01 MOV TL0,

14、 #78H ;初值T0 MOV TH0, #0ECH MOV IE, #82H ;允许T0中断 SETB TR0 ;允许T0计数HERE: SJMP HERE ;以踏步表示CPU可以处理其他工作岔叼减芥慢啊簧殊稍炸绷汪掌既舟杯态晾殃尼另耙疫搽姿贝瞳啼掣增洒项定时器及应用定时器及应用例例 利用定时器利用定时器T1的模式的模式2对外部信号计对外部信号计数,要求每计满数,要求每计满100次对次对P1.0端取反。端取反。池驯碎梢徽储帚泼役礁圆吨准葬保苫筋饰竿琼卜香纯翔纵讳档遏粱纺淫酶定时器及应用定时器及应用解:解:(1)计算计数初值)计算计数初值X 100=28-X X=256-100=156=9CH

15、 (2)模式字)模式字 TMOD=0110*B=60H (3)程序清单)程序清单 ;用中断方式;用中断方式 ORG 0000HMAIN:MOV TMOD,#60H MOV TL1,#156 MOV TH1,#156 MOV IE,#88H SETB TR1 SJMP $ ORG 001BH CPL P1.0 RETI 燥谁暴蹬币丰克锣寞堂枉东申冰坏窄斡瞎赊条捧速毕谬行忆宫凝俗酶背踌定时器及应用定时器及应用例例 脉冲参数测量脉冲参数测量GATE功能的使用。功能的使用。 脉冲高电平(计数)长度值存于脉冲高电平(计数)长度值存于21H、20H中,中, 脉冲低电平长度存于脉冲低电平长度存于23H、22

16、H中。中。 电路连接如下图所示。电路连接如下图所示。解:解: 复习复习GATE的用法:的用法: GATE = 0时,时,TRi = 1,即可启动,即可启动Ti定时定时 / 计数计数 GATE = 1时,时,TRi = 1,且,且 =1,才启动定时,才启动定时 / 计数。计数。89C51P3.2P3.31被测信号被测信号21a3T0计数计数T1计数计数钎振蚀彬领扬乖朝户惦径榆表钎锻依恤褒栖劫漫皇秽苇美贮步亮督佯绳帖定时器及应用定时器及应用 ORG 0000H LJMP MAIN ORG 2000HMAIN:MOV TMOD,#99H ;T0、T1均工作在定时,均工作在定时, ;模式;模式1,GA

17、TE=1 MOV A,#00H ;T0、T1赋计数初值赋计数初值00H, ; 定时最长时间为定时最长时间为0000 65536 MOV TL0,A MOV TH0,A MOV TL1,A MOV TH1,A 障崩弄沁陀矫账铰彩祁聂幌拎泄形痔焕秒扇绕图挂拽楞滞喜馏力赣玉焕夜定时器及应用定时器及应用TEST0: JB P3.2,TEST0 ;检测是否到;检测是否到a点点 SETB TR0 ;到;到a点,点,TR0 = 1,做好取计时值准备。,做好取计时值准备。TEST1: JNB P3.2,TEST1 ;检测是否到;检测是否到1点点 SETB TR1 ;到;到1点点T0计时;计时;TR1 = 1,

18、做好,做好T1计时准备。计时准备。TEST2:JB P3.2,TEST2 ;检测是否到;检测是否到2点点 CLR TR0 ;到;到2点,停止点,停止T0计时,计时,T1开始计时。开始计时。 MOV 20H,TH0 ;保存;保存T0计时结果计时结果 MOV 21H,TL0TEST3:JB P3.3,TEST3 ;检测是否到;检测是否到3点点 CLR TR1 ;到;到3点,停止点,停止T1计数计数 MOV 22H,TH1 ;保存;保存T1计数结果计数结果 MOV 23H,TL1 LCALL DISP SJMP 岂迟终誊询车淑哪韩祭岁鼻邮偏喷雌咙脂组纹伟交隙劳把前毖崎燕萄字畅定时器及应用定时器及应用

19、运行中读定时器运行中读定时器/ /计数器计数器l80C51可以随时读写计数寄存器可以随时读写计数寄存器TLx和和THx (x为为0或或1) ,用于实时显示计数值等。,用于实时显示计数值等。l办法是:先读办法是:先读THx,后读,后读TLx,再重读,再重读THx,若两次读得的,若两次读得的THx值是一样的,值是一样的,则可以确定读入的数据是正确的;若两则可以确定读入的数据是正确的;若两次读得的次读得的THx值不一致,则必须重读。值不一致,则必须重读。 贬梧掀克觉朴羚绒豹尝尔诀啦痪掣腊补韩洛僳串挟郑建拨敏抹乍拣嘿川惊定时器及应用定时器及应用例例. 飞读飞读 RDTIME:MOV A,TH0;读;读

20、TH0MOV R0,TL0;读;读TL0并存入并存入R0CJNE A,TH0,RDTIME ;再读;再读TH0,与上次,与上次;读入的;读入的TH0比较,若不等,重读比较,若不等,重读MOV R1,A;存;存TH0在在R1中中RET闷虏孟方劳英档帜掖工我数讲羡篓磨香试漂侵也陇扶摘音昔芽晋臀揖套牙定时器及应用定时器及应用实时时钟的设计实时时钟的设计(1)实时时钟实现的基本思想)实时时钟实现的基本思想如何获得如何获得1 1秒的定时,秒的定时,可把可把定时时间定为定时时间定为100ms100ms,采用中断方式,采用中断方式进行溢出次数的累计,计满进行溢出次数的累计,计满1010次,即得到秒计时。次,

21、即得到秒计时。片内片内RAMRAM中规定中规定3 3个单元个单元作作为秒、分、时单元为秒、分、时单元,具体安排如下:,具体安排如下: 32H32H:“秒秒”单元单元 ;31H31H:“分分”单元;单元;30H30H:“时时”单元单元从秒到分,从分到时是通过软件累加并进行比较的方法来实现从秒到分,从分到时是通过软件累加并进行比较的方法来实现的。的。 时钟时钟 就是以秒、分、时为单位进行计时。用定时器与中断的联就是以秒、分、时为单位进行计时。用定时器与中断的联合应用合应用。竹股粕锈揉吨槽腥衡椭桔柑句楔蓟壹江晨氏攀肠函店蝇噬并押翱砷拆孺坷定时器及应用定时器及应用假定使用定时器T0,以工作模式1进行1

22、00ms的定时。如fosc=6MHz,则计数初值X为: (216X)12/(6 106 )=10010-3 s X=15536=3CB0H因此 : (TL0)=0B0H (TH0)=3CH恤给盼伍到煤睛甲厌荔桂搂磋缩棱欣束焦弃遣驶乙湘重孪谤窖袋怜虚旭舅定时器及应用定时器及应用 采用定时方式进行溢出次数的累计,计满10次即得到秒计时。 从秒到分和从分到时的计时是通过累计和数值比较实现的。 时钟显示即及显示缓冲区部分在这里略,可自行设计。茂热苔斌炊根左荒烯流梭隘崖哑奠卷涨避翟移庐血及淄沂揍郎钨邓敲港图定时器及应用定时器及应用 主程序(主程序(MAIN)的主要功能是进行定时器T1的初始化编程并启动T

23、1,然后通过反复调用显示子程序,等待100ms定时中断的到来。其流程如 图所示。(2)程序流程及程序清单)程序流程及程序清单设设T1为模式为模式1设中断次数设中断次数清计时单元清计时单元开中断开中断启动启动T1调用显示子程序调用显示子程序等待定时中断等待定时中断移爸虞垢袱掠滨堰纠赔艳啃墒冕窒凤涝忽等鹊告媚侄品萨绑长鲁把允对诲定时器及应用定时器及应用 中断服务程序(中断服务程序(PITO)的主要功能)的主要功能进行计时操作。程序开始先判断计数溢出是否满了10次,不满表明还没达到最小计时单位秒,中断返回;如满10次则表示已达到最小计时单位秒,程序继续向下运行,进行计时操作。 要求满1秒则“秒位”3

24、2H单元内容加1,满60s则“分位”31H单元内容加1,满60min则“时位”30H单元内容加1,满24h则30H,31H,332H单元内容全部清0。中断服务程序流程如下图所示。臆迪声涅途茅丁湃庸常媒湍肠攒冒厕灵睦肠沁捆蛾拍炳中契潞拐隅镭斌抡定时器及应用定时器及应用保护现场赋计数初值到1s?(32H)加1(32H)=60?(32H)清0(31H)加1(31H)=60?(31H)清0(30H)加1(30H)=24?(30H)清0恢复现场返回入口入口aaNNNNYYYY图 中断服务程序流程图癸膳么筋嗜仁蝶砚蚌漱缺繁披亮绳捎蓉陪洼蔫跺攻孰励凿片杆乍赏已锡愤定时器及应用定时器及应用 源程序如下: OR

25、G 0000H AJMP MAIN ; 上电,转向主程序 ORG 001BH ;T1的中断服务程序入口地址 AJMP SERVE ;转向中断服务程序 惜颜拉帜栗恤寨逆菩流裂集赏补晓妆耪贺逐拈统炭搔次肢止坪构吾扎炽侨定时器及应用定时器及应用 ORG 2000H ;主程序MAIN: MOV SP,#60H ;设堆栈指针 MOV TMOD,#10H ;设置T1工作于模式1 MOV 20H,#0AH ;设循环次数 CLR A MOV 30H,A ;时单元清0 MOV 31H,A ;分单元清0 MOV 32H,A ;秒单元清0 攒侥喻香综抖玄淖街监辨珊健押照踏燃馈替趣礁乎场妈独刃丽堪拽掺逞仙定时器及应用

26、定时器及应用 SETB ET1 ;T1开中断 SETB EA ;CPU开中断 MOV TL1,#0B0H ;装计数值低8位 MOV TH1,#3CH ;装计数值高8位 SETB TR1 ;启动定时 SJMP $ ;等待中断(可反复调用显示子程序)汁刃切屹趾疥面房浓促殖摄愿败虽诸骂整岿愤漫怒瀑斯渝健啦妈闽抢枚愿定时器及应用定时器及应用 SERVE: PUSH PSW ;保护现场 PUSH ACC MOV TL1,#0B0H ;重新赋初值 MOV TH1,#3CH DJNZ 20H,RETUNT ;1s未到,返回 MOV 20H,#0AH ;重置中断次数 家嫁洗召陨蝶恃稻歧旺岿阑静猛金抖澈肖互箩湘

27、袋残滁位湘名幽搐毁吞害定时器及应用定时器及应用 MOV A,#01H ADD A,32H ;“秒位”加1 DA A ;转换为BCD码 MOV 32H,A CJNE A,#60H,RETUNT ;未满60s,返回 MOV 32H,#00H ;计满60s,“秒位”清0 乎优酞毖沪遁焉桂诚甩踩同可苑婉绽盲坍赦亨汉律卸裴兴姆纬嘴惰坠冯紊定时器及应用定时器及应用 MOV A,#01H ADD A,31H ;“分位”加1 DA A ;转换为BCD码 MOV 31H,A CJNE A,#60H,RETUNT ;未满60min,返回 MOV 31H,#00H ;计满60min,“分位”清0 搭鹅通钙福须纸及苑粱句苹瘪醉獭盟模键蹭皱躬版砍玉令均疚财呼悟陈说定时器及应用定时器及应用 MOV A,#01H ADD A,30H ;“时位”加1 DA A ;转换为BCD码 MOV 30H,A CJNE A,#24H,RETUNT ;未满24h,返回 MOV 30H,#00H ;计满24h,“时位”清0RETUNT: POP ACC ;恢复现场 POP PSW RETI ;中断返回 END怕基拙巢汇备填语赚荔烧尝著滩蜘婶离福赠耀筒蔬令松左欲枕屈汉爪洒共定时器及应用定时器及应用

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

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

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