




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务三利用硬件定时实现流水灯常用延时方法非精确延时For(i=0;i<100;i++);i=0;while(i--);精确延时利用库函数_nop_();//延时一个机器周期(需要include<intrins.h>)利用定时器进行定时定时/计数器(Timer/Counter,简称T/C)
80C51有2个16位定时/计数器:T0、T1
80C52有3个16位定时/计数器:T0、T1、T2定时/计数器(Timer/Counter,简称T/C)定时器:来一个机器脉冲计数器的值加1。当计数器值溢出(全1)时回0,定时时间到,中断标志TF置1.1个机器周期=12*1/振荡频率计数器:在机器周期内采样T0(或T1)脉冲的下降沿,来一个下降沿计数器的值加1。当计数器值溢出(全1)时回0,中断标志TF置1.
1。定时器知识(1)定时器/计数器的内部结构及工作原理单片机内部设有2个16位的可编程的定时器/计数器。简称为定时器0(T0)、定时器1(T1)。可编程是指其功能(如工作模式、定时时间等)均可通过指令来确定或改变。
单片机定时器/计数器结构图
定时器的工作原理:定时器/计数器是一个加“1”计数器,来一个脉冲即进行加1计数,直至计数器的各位全为“1”,再来一个脉冲,计数器回0(即溢出),且使TF0(定时器0)或TF1(定时器1)置1,表示时间到,计数值乘以脉冲周期就是定时时间。输入的脉冲来源有2个:一个是单片机晶体振荡器经12分频;另一个是T0/T1端的外部输入脉冲。作定时器用时,应采用晶体振荡器经12分频的脉冲。
定时器功能两个寄存器:TMOD和TCON4个计数寄存器:TH0,TL0;TH1,TL1方式1:定时时间=(65536-初值)*12/振荡频率初值=65536-定时时间*振荡频率/12例如定时1ms:初值=65536-1s*12*103Hz/12=65536-1000=64536=0xFC18TMOD寄存器GATEC/TM1M0GATEC/TM1M0控制T1控制T0M1M0:00:方式001:方式110:方式211:方式3C/T0:定时器1:计数器GATE:0:软件控制定时器工作1:外部中断控制定时器工作不可位寻址
GATE:门控位,控制计数器的启动/停止操作方式。当GATE=0时,外部中断信号不参与控制,计数器只有TR0和TR1位软件控制启动和停止。TR1、TR0为1时,计数器启动开始工作;为0时,计数器停止工作。当GATE=1时,计数器的启动要由外部中断信号和TR0、和TR1共同控制。只有当外部中断引脚为高电平,TR0/TR1置1时才能启动计数器工作。
:功能选择位。当=0时选择定时功能,计数脉冲由内部提供,计数周期等于机器周期。当=1时选择为计数功能,计数脉冲为外部引脚T0、T1引入的外部脉冲信号。
M1和M0:T0和T1工作方式控制位。定时/计数器的工作方式有M1M0两位状态决定,这两位有四种编码方式,对应于四种工作方式。四种方式定义如表所示:M1M0方式说明00方式0TL的低5位和TH的8位构成13位计数器01方式1TL的8位和TH的8位构成16位的计数器10方式2具有自动重装功能的8位计数器11方式3T0分成两个独立的计数器,T1可工作在方式0~方式2TCONTF1TR1TF0TR0IE1IP1IE0IP0可位寻址,也可字节寻址M1M000:方式0,13位计数寄存器01:方式1,16位计数寄存器,用于定时和计数10:方式2,自动重装载8位计数寄存器,用于波特率发生器11:方式3,2个8位计数寄存器定时器使用步骤1.设置TMOD,使之工作在需求状态;TMOD=0x01;或TMOD=0x10;2.设置计数寄存器初值,精确设定好定时时间;TH0=0xff;TL0=0x00;或TH1=0xff;TL1=0x00;3.设置TCON,打开TR使定时器工作;TR0=1;或TR1=1;4.检测定时器溢出(TF==1),溢出时:复位TF,计数寄存器赋初值,定时到触发的动作。
if(1==TF0){TH0=0xff;TL0=0x00;TF0=0;P1_0=~P1_0;}或if(1==TF1){TH1=0xfc;TL1=0x18;TF1=0;P1_0=~P1_0;}定时1ms
初值=65536-1000=0xFC18#include<reg52.h>sbitP1_0=P1^0;voidmain(){TMOD=0x01;TH0=0xfc;TL0=0x18;TR0=1;//此位可位操作
while(1){if(1==TF0){TH0=0xfc;TL0=0x18;TF0=0;//此位可位操作P1_0=~P1_0;//此位可位操作}}}定时时间=(65536-初值)*12/振荡频率≤65536μs#include<reg52.h>sbitP1_0=P1^0;voidmain(){TMOD=0x01;TH0=0;TL0=0;TR0=1;//此位可位操作
while(1){if(1==TF0){//TH0=0;TL0=0;TF0=0;//此位可位操作P1_0=~P1_0;//此位可位操作}}}定时1s#include<reg52.h>sbitP1_0=P1^0;voidmain(){unsignedintcounter;TMOD=0x01;TH0=0xb1;TL0=0xe0;TR0=1;//此位可位操作
while(1){if(1==TF0){TH0=0xb1;TL0=0xe0;TF0=0;counter++;}if(50==counter){counter=0;P1_0=~P1_0;}}}=50*20ms20ms初值=45536=0xB1E0复习定时器定时功能的使用TMOD:选择T0还是T1TCON:选择方式1设置初值放置于TH0,TL0或TH1,TL1中方式1:定时时间=(65536-初值)*机器周期初值=65536-定时时间/机器周期时间间隔0.5s梦=10*朵50ms的流水灯弦;#inc名lude椒<reg蝴52.h眠>voi愧dm位ain才(){u医nsi筛gne钓di碧nt批i,j顿,va顺lue叹,de量c;TMOD橡=0x0滨1;TH0矿=0x冲3c;形T洽L0=黎0xb胸0;TR0语=1;并/虑/此位可钉位操作whil厚e(1){va溉lue=追254;dec=嗓1;for抄(i=虹0;i尚<8;飞i++粉){P1岛=va拨lue月;for筹(j=丸0;j撕<10虎;j+乡丰+)享//也10次*50m漆s/次{whi校le(剧TF0鱼!=1砖);TH0好=0x扬3c;广TL面0=0修xb0怎;铅TF0决=0;着}valu藏e=va卡lue-趟dec;dec=锋dec*铜2;}}}50ms初值=155帅36=0枯x3CB后0书上程序操作练厕习1请用定陈时器0实现:时间间候隔50ms的流水灯佩;时间间隔1s的流水灯鸽;操作练受习2请用硬件幕定时器实夹现:任选三个LED灯,分别作为普红、黄、已绿交通灯,实现绿灯亮1s,然后黄灯快闪3次,再红灯亮2s,黄灯快闪3次,绿灯亮1s,……#inc枯lude耀<reg乡丰52.h蹄>void佣mai么n(){u尸nsi读gne款di舟nt价i,v它alu园e,d贸ec;TMO摘D=0思x01掀;TH0脏=0x科3c;搬T炭L0=河0xb奸0;TR0绕=1;翁/楼/此位可近位操作whil报e(1){包valu吃e=25蜂4;dec=痰1;for枣(i=朵0;i译<8;拖i++滚){whil速e(TF款0!=1单);TH0=拦0x3c灶;勉TL0溜=0xb役0;顷TF0居=0;P1=v象alue裳;val爪ue=鸭val招ue-挂dec舟;dec咱=de桃c*2葱;辨}}}时间间隔50ms的流水灯姐;50ms初值=155棵36=0与x3CB狭0书上方撇法时间间狮隔1s=2散0*50竞ms的流水灯宏;#in咽clu劈燕de<发reg尼52.岁h>voi对dm顶ain很(){u贼nsi链gne总di坛nt昂i,j续,va絮lue差,de签c;TMOD孤=0x0稳1;TH0坐=0x喇3c;倚T烟L0=抽0xb唐0;TR0=弦1;桌/区/此位可位殿操作whil健e(1){v祸alu施e=2项54;dec=拾1;for托(i=它0;i蜘<8;趁i++沾){f父or(暂j=0乞;j<戒20;姻j++花)傲//2否0次*50m瞧s/次{whil胆e(TF仓0!=1多);TH0丽=0x叠3c;悄TL神0=0蹦xb0男;俩TF0些=0;瓣}P1=v吸alue替;valu及e=va梳lue-交dec;dec=泡dec*票2;}}}50ms初值=155各36=0折x3CB夫0书上方吗法时间间隔1s的双向流同水灯;#in级clu占de<跑reg碎52.屋h>void图mai妄n(){u急nsi造gne惯dc福har腾i,太j,v校alu赤e,d东ec;TMOD从=0x0塌1;TH0=舍0x3c腔;快TL擦0=0x学b0;径TR狐0=1;头//此位可举位操作whi座le(半1){v朋alu昏e=2寒54;dec启=1;for(压i=0;税i<14如;i++酸){fo估r(j=侨0;j<赠20;j俯++)真/堵/20次*50m冈s/次{胸wh间ile附(TF披0!=艘1);TH0=厌0x3c翅;浓TL0碗=0xb铸0;翻T汇F0=0赔;}P1=疼val施ue;if(俭i<7茅){va眠lue=确valu盒e-de含c;农de知c=de帅c*2;妄}els尽e{dec丢=dec轰/2;山val绸ue=v尸alue杨+dec茄;}}}}书上方法#in魔clu佳de<责reg哗52.瞧h>voi墓dm破ain副(){un浅sign减edi胁nti逝,val迹ue;TMO岂D=0劣x01尾;TH0所=0x怪3c;尝T步L0=值0xb桥0;TR0=穴1;凉/竹/此位可行位操作whil咏e(1){val配ue=亮0x0内1;for草(i=徒0;i橡<8;柜i++迫){w串hil裕e(T馅F0!恳=1)捡;TH0熊=0x锻3c;富TL野0=0遍xb0待;TF0羽=0;P1=壶~va旅lue垦;valu过e=va昂lue<监<1;}}}时间间辣隔50ms的流水灯却;50ms初值=15炮536纲=0x及3CB卷0方法2#inc址lude哲<reg斗52.h梅>void宽mai温n(){un末sign弱edi邀nti锣,j,v交alue铅;TMO逝D=0晋x01似;TH0=罗0x3c碧;袄TL天0=0x猴b0;TR0缸=1;仔/稀/此位可位童操作whi摇le(悠1){valu择e=0x底01;for(焦i=0;药i<8;粱i++){for颠(j=悟0;j知<20垦;j+贺+)阶/哲/20次*50m钞s/次{wh材ile(劳TF0!屠=1);TH0喜=0x旺3c;碎TL书0=0屠xb0框;搜TF0师=0;非}P1=馅~va腹lue荷;val导ue=展val春ue<朴<1;}}}时间间隔1s=砌20*桶50m虹s的流水快灯;50m别s初值=155荐36=0枯x3CB起0方法2#inc歼lude陶<reg度52.h责>void汁mai险n(){unsi冰gned节int膊i,j狮,val仪ue;TMOD蓬=0x0置1;TH0=圆0x3c沾;依TL淋0=0x妨b0;TR0稿=1;棉/跳/此位可俭位操作whil词e(1){唇val乡丰ue=帐0x0东1;for越(i=淹0;i炎<14啦;i+订+){for脊(j=藏0;j硬<20梦;j+语+){w附hil姓e(T望F0!织=1)颜;TH0消=0x移3c;淘TL阔0=0坑xb0区;趋TF0锣=0;掏}P1=倍~va圆lue寇;if(打i<7会)v姑alu题e=v泄alu洞e<<费1;else斗val府ue=v歉alue塌>>1;}}}时间间隔1s的双向睁流水灯楼;50ms初值=15却536况=0x秩3CB炕0方法2#in付clu盈de<陆reg侦52.枣h>voi批dm乓ain足(){unsi描gned仓int沫val学ue=0匀x01;TMO披D=0彼x01术;TH0拴=0x脂3c;储T绑L0=历0xb再0;TR0牺=1;毒/逆/此位可穴位操作whi滚le(辆1){if(1贵==TF晋0){TH0抬=0x3副c;妖TL晒0=0x圾b0;TF0=戒0;P1=举~va介lue冲;val肿ue=落val本ue<知<1;if(思val丙ue=晃=25劲6)糖val材ue=灭0x0傲1;}}}时间间隔50ms的流水腐灯;50ms初值=15乘536素=0x养3CB戚0方法3#in裂clu祥de<伤reg拘52.锻h>voi置dm背ain款(){unsi河gned波int曾cou心nter弃,val胳ue=0她x01;TMOD疯=0x0凯1;TH0宴=0x桑3c;袄T军L0=微0xb焰0;TR0=环1;萍/芹/此位可塑位操作whil尤e(1){if(1穷==TF脱0){TH板0=0削x3c脉;娘T券L0=惜0xb膊0;震TF蜻0=0代;cou混nte薪r++颠;}if(脱20=挖=co尼unt思er){cou歇nter围=0;P1=~泡valu篇e;val砌ue=绵val呢ue<津<1;if(v锁alue逝==25缓6)v糠alue觉=0x0考1;}}}时间间纸隔1s=背20*薯50m汽s的流水灯汗;50m生s初值=15引536惧=0x旷3CB犁0方法3#inc变lude尊<reg序52.h其>void宵mai融n(){unsi债gned尝int闻i=0刺,val级ue=0蓬x01;TMO扰D=0塔x01此;TH0沙=0x华3c;雨T酬L0=昼0xb贵0;TR0斧=1;锄/夫/此位可誉位操作whil宏e(1){i毛f(1朴==T榨F0){TH光0=0澡x3c解;膏T扭L0=送0xb鲜0;TF0弟=0;P1=~素valu懂e;赠i额++;if(雷i<8递)宰va威lue籍=va斗lue铅<<1艰;else重val匹ue=v撒alue杠>>1;if(壤i==煎15)寒{v禽alu额e=0惧x01圾;i=佳0;}}}}时间间微隔50ms的双向流医水灯;50ms初值=155墙36=0齐x3CB先0方法3时间间困隔1s=批20*忍50m妹s的流水漫灯;#in帅clu补de<说reg绞52.猴h>voi矩dm倡ain醉(){uns合ign割ed立int宴co蜘unt盟er,工x=0秆;TMOD央=0x0夫1;TH0叫=0x屑3c;从T协L0=鞋0xb孙0;TR0割=1;摄/追/此位可位则操作whil群e(1){if炼(1==咬TF0){TH0蚕=0x3够c;游T墨L0=0惧xb0;蒙TF蚀0=0;cou依nte队r++恩;}if(2纵0==c采ount妨er){cou庙nter僻=0;P1=~菜(1<<碰x++)青;if(x登==8)只x=0就;}}}50ms初值=155齿36=0进x3CB坡0方法4操作练习2请用硬件号定时器实君现:任选三卷个LED灯,分别作为勤红、黄、唱绿交通灯,实现绿灯亮1s,然后黄灯快闪3次,再红灯亮2s,黄灯快闪3次,绿灯亮1s,……#in臂clu宗de<维reg适52.惧h>void愉mai序n(){un宴sign傅edi服nti悠,j,a狮;TMOD诉=0x0排1;TH0=杯0x3c锡;匹TL震0=0x窄b0;whil获e(1){P1=乓0xf历e;毕TR0凡=1;for(燥j=0;械j<20摆;j++淋)读//绿灯亮20次*50m神s/次{况whil逮e(TF脾0!=1瞧);TH0小=0x尾3c;游TL控0=0刮xb0渣;层TF0唯=0;木}TR0=尘0;P1=0叠xff;颗fo叛r(i=言0;i<惭1000因0;i+斤+);for休(a=蓝0;a叹<3;数a++锈)醉/数/黄灯闪三容次{P物1=0宜xfd请;呜fo豆r(i坟=0;茄i<1征000笔0;i昌++)扶;P1=0悼xff;能f址or(i贝=0;i案<100跑00;i妇++);着}罩//若}P1=什0xf欲b;T越R0=葵1;for(块j=0;量j<40悉;j++俱)爸//红灯亮40次*50m鞠s/次{证whil夏e(TF蛾0!=1哨);TH0=茧0x3c辜;演TL0叔=0xb俭0;问T族F0=0旷;}TR0=援0;P1=0债xff;雄for赏(i=0泡;i<1贞0000典;i++内);for彩(a=匀0;a概<3;绢a++寄)锡//黄灯闪灰三次{秋P1=种0xf扔d;典f系or(捧i=0忘;i<俱100旧00;订i++质);P1=0揭xff;毫f置or(i消=0;i衡<100琴00;i爹++);寒}}}作业P52酱2、3#in宾clu狱de<匠reg披52.旗h>voi海dm岛ain职(){unsi社gned佣int管val膜ue,d汁ec;valu增e=25匹4;该dec=灶1;TMO秤D=0惧x01承;TH0他=0x裙3c;脾T盐L0=照0xb篮0;TR0扶=1;皂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版企业注销代理服务合同细则
- 二零二五年度货运代理服务质量保证合同样本
- 2025版城市地下综合管廊建设项目承包协议书
- 二零二五年度大型场馆消防系统安装工程承包合同
- 2025版智慧城市项目设计、开发与运维服务合同
- 2025版建筑劳务木工分包合同施工图纸与技术交底范本
- 二零二五年度智能车库设施买卖及安装服务协议书
- 二零二五年度高端钢材定制购销合同
- 二零二五年度乡村振兴项目申报代理合同
- 驻马店市重点中学2026届初中语文毕业考试模拟冲刺卷含解析
- 钢结构厂房施工组织设计技术标
- 压力容器日常安全检查记录
- 许晓峰版电机拖动电子教案(全)课件
- 新课标高考英语词汇表3500
- 人教版高一数学必修1课件【全册】
- 城市建设各行业编制定员试行标准
- excel培训课件(精编版)
- 超声检查报告单模板
- 太阳能与空气源热泵热水系统应用技术规程
- 小学体育评价方案
- 工作人员轮岗交流动员会上的讲话
评论
0/150
提交评论