单片机学习之项目1流水灯2定时器.ppt
《单片机学习之项目1流水灯2定时器.ppt》由会员分享,可在线阅读,更多相关《单片机学习之项目1流水灯2定时器.ppt(39页珍藏版)》请在三一办公上搜索。
1、任务三 利用硬件定时实现流水灯,常用延时方法,非精确延时For(i=0;i)利用定时器进行定时,定时/计数器(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、数器的内部结构及工作原理 单片机内部设有2个16位的可编程的定时器/计数器。简称为定时器0(T0)、定时器1(T1)。可编程是指其功能(如工作模式、定时时间等)均可通过指令来确定或改变。,单片机定时器/计数器结构图,定时器的工作原理:定时器/计数器是一个加“1”计数器,来一个脉冲即进行加1计数,直至计数器的各位全为“1”,再来一个脉冲,计数器回0(即溢出),且使TF0(定时器0)或TF1(定时器1)置1,表示时间到,计数值乘以脉冲周期就是定时时间。输入的脉冲来源有2个:一个是单片机晶体振荡器经12分频;另一个是T0/T1端的外部输入脉冲。作定时器用时,应采用晶体振荡器经12分频的脉冲。,定时器
3、功能,两个寄存器:TMOD和TCON4个计数寄存器:TH0,TL0;TH1,TL1方式1:定时时间=(65536-初值)*12/振荡频率 初值=65536-定时时间*振荡频率/12,例如定时1ms:,初值=65536-1s*12*103Hz/12=65536-1000=64536=0 xFC18,TMOD寄存器,GATE,C/T,M1,M0,GATE,C/T,M1,M0,控制T1,控制T0,M1M0:00:方式001:方式110:方式211:方式3,GATE:0:软件控制定时器工作1:外部中断控制定时器工作,不可位寻址,GATE:门控位,控制计数器的启动/停止操作方式。当GATE=0时,外部中
4、断信号不参与控制,计数器只有TR0和TR1位软件控制启动和停止。TR1、TR0为1时,计数器启动开始工作;为0时,计数器停止工作。当GATE=1时,计数器的启动要由外部中断信号和TR0、和TR1共同控制。只有当外部中断引脚为高电平,TR0/TR1置1时才能启动计数器工作。,:功能选择位。当=0时选择定时功能,计数脉冲由内部提供,计数周期等于机器周期。当=1时选择为计数功能,计数脉冲为外部引脚T0、T1引入的外部脉冲信号。,M1和M0:T0和T1工作方式控制位。定时/计数器的工作方式有M1M0两位状态决定,这两位有四种编码方式,对应于四种工作方式。四种方式定义如表所示:,TCON,TF1,TR1
5、,TF0,TR0,IE1,IP1,IE0,IP0,可位寻址,也可字节寻址,M1M0,00:方式0,13位计数寄存器01:方式1,16位计数寄存器,用于定时和计数10:方式2,自动重装载8位计数寄存器,用于波特率发生器11:方式3,2个8位计数寄存器,定时器使用步骤,1.设置TMOD,使之工作在需求状态;TMOD=0 x01;或TMOD=0 x10;2.设置计数寄存器初值,精确设定好定时时间;TH0=0 xff;TL0=0 x00;或TH1=0 xff;TL1=0 x00;3.设置TCON,打开TR使定时器工作;TR0=1;或TR1=1;4.检测定时器溢出(TF=1),溢出时:复位TF,计数寄存
6、器赋初值,定时到触发的动作。if(1=TF0)TH0=0 xff;TL0=0 x00;TF0=0;P1_0=P1_0;,或if(1=TF1)TH1=0 xfc;TL1=0 x18;TF1=0;P1_0=P1_0;,定时1ms 初值=65536-1000=0 xFC18,#includesbit P1_0=P10;void main()TMOD=0 x01;TH0=0 xfc;TL0=0 x18;TR0=1;/此位可位操作 while(1)if(1=TF0)TH0=0 xfc;TL0=0 x18;TF0=0;/此位可位操作 P1_0=P1_0;/此位可位操作,定时时间=(65536-初值)*12
7、/振荡频率65536s,#includesbit P1_0=P10;void main()TMOD=0 x01;TH0=0;TL0=0;TR0=1;/此位可位操作 while(1)if(1=TF0)/TH0=0;TL0=0;TF0=0;/此位可位操作 P1_0=P1_0;/此位可位操作,定时1s,#includesbit P1_0=P10;void main()unsigned int counter;TMOD=0 x01;TH0=0 xb1;TL0=0 xe0;TR0=1;/此位可位操作 while(1)if(1=TF0)TH0=0 xb1;TL0=0 xe0;TF0=0;counter+;
8、if(50=counter)counter=0;P1_0=P1_0;,=50*20ms,20ms 初值=45536=0 xB1E0,复习,定时器定时功能的使用TMOD:选择T0还是T1TCON:选择方式1设置初值放置于TH0,TL0或TH1,TL1中,方式1:定时时间=(65536-初值)*机器周期 初值=65536-定时时间/机器周期,时间间隔0.5s=10*50ms的流水灯;,#includevoid main()unsigned int i,j,value,dec;TMOD=0 x01;TH0=0 x3c;TL0=0 xb0;TR0=1;/此位可位操作 while(1)value=254
9、;dec=1;for(i=0;i8;i+)P1=value;for(j=0;j10;j+)/10次*50ms/次 while(TF0!=1);TH0=0 x3c;TL0=0 xb0;TF0=0;value=value-dec;dec=dec*2;,50ms 初值=15536=0 x3CB0,书上程序,操作练习1,请用定时器0实现:时间间隔50ms的流水灯;时间间隔1s的流水灯;,操作练习2,请用硬件定时器实现:任选三个LED灯,分别作为红、黄、绿交通灯,实现绿灯亮1s,然后黄灯快闪3次,再红灯亮2s,黄灯快闪3次,绿灯亮1s,,#includevoid main()unsigned int i
10、,value,dec;TMOD=0 x01;TH0=0 x3c;TL0=0 xb0;TR0=1;/此位可位操作 while(1)value=254;dec=1;for(i=0;i8;i+)while(TF0!=1);TH0=0 x3c;TL0=0 xb0;TF0=0;P1=value;value=value-dec;dec=dec*2;,时间间隔50ms的流水灯;,50ms 初值=15536=0 x3CB0,书上方法,时间间隔1s=20*50ms的流水灯;,#includevoid main()unsigned int i,j,value,dec;TMOD=0 x01;TH0=0 x3c;TL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 学习 项目 流水 定时器

链接地址:https://www.31ppt.com/p-5937901.html