利用硬件定时实现流水灯.ppt

利用硬件定时实现流水灯.ppt

ID:51609700

大小:1.60 MB

页数:39页

时间:2020-03-25

利用硬件定时实现流水灯.ppt_第1页
利用硬件定时实现流水灯.ppt_第2页
利用硬件定时实现流水灯.ppt_第3页
利用硬件定时实现流水灯.ppt_第4页
利用硬件定时实现流水灯.ppt_第5页
资源描述:

《利用硬件定时实现流水灯.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、任务三利用硬件定时实现流水灯常用延时方法非精确延时For(i=0;i<100;i++);i=0;while(i--);精确延时利用库函数_nop_();//延时一个机器周期(需要include)利用定时器进行定时定时/计数器(Timer/Counter,简称T/C)80C51有2个16位定时/计数器:T0、T180C52有3个16位定时/计数器:T0、T1、T2定时/计数器(Timer/Counter,简称T/C)定时器:来一个机器脉冲计数器的值加1。当计数器值溢出(全1)时回0,定时时间到,中断标志TF置1.1个机器周期=12*1/振荡频率

2、计数器:在机器周期内采样T0(或T1)脉冲的下降沿,来一个下降沿计数器的值加1。当计数器值溢出(全1)时回0,中断标志TF置1.1。定时器知识(1)定时器/计数器的内部结构及工作原理单片机内部设有2个16位的可编程的定时器/计数器。简称为定时器0(T0)、定时器1(T1)。可编程是指其功能(如工作模式、定时时间等)均可通过指令来确定或改变。单片机定时器/计数器结构图定时器的工作原理:定时器/计数器是一个加“1”计数器,来一个脉冲即进行加1计数,直至计数器的各位全为“1”,再来一个脉冲,计数器回0(即溢出),且使TF0(定时器0)或TF1(定时器1)置1,表示时间到

3、,计数值乘以脉冲周期就是定时时间。输入的脉冲来源有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:方

4、式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时选择为计数功能,

5、计数脉冲为外部引脚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位计数寄存器,用于定时和

6、计数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==TF

7、1){TH1=0xfc;TL1=0x18;TF1=0;P1_0=~P1_0;}定时1ms初值=65536-1000=0xFC18#includesbitP1_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#includesbitP1_0=P1^0;v

8、oidma

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。