程序编写-延时与定时课件

上传人:痛*** 文档编号:241625337 上传时间:2024-07-10 格式:PPT 页数:78 大小:1.59MB
返回 下载 相关 举报
程序编写-延时与定时课件_第1页
第1页 / 共78页
程序编写-延时与定时课件_第2页
第2页 / 共78页
程序编写-延时与定时课件_第3页
第3页 / 共78页
点击查看更多>>
资源描述
第二部分程序编写程序框架结构(背住)整体框架结构具体程序结构 for(初始化表达式;条件表达式;增量表达式)while do while if()else switch.case整体框架结构(背住)#include 宏定义或这全局变量 延时子程序 字符串显示子程序 void main(viod)参量定义与调用子程序中断子程序While(表达式)语句(内部可为空)特点:先执行和判断表达式,后执行语句。原则:若表达式非0,即为真,那么执行语句。否则跳出while 语句。While和dowhile简单小程序实例#include void main(void)unsigned char i,sun;sum=0;i=1;while(i=100)sum=sum+i;i+;P2=sum;While和dowhile#includesbit P2_1=P20;unsigned int a;void main()/主函数while(1!=0)a=50000;P2_1=0;while(a-!=0);P2_1=1;a=50000;while(a-);用while语句控制P2口花样闪烁延时60msi从0到255,指示灯显示数字#include /*函数功能:延时约60ms(3*100*200=60000s)*/void delay60ms(void)unsigned char m,n;for(m=0;m100;m+)for(n=0;n200;n+);void main(void)unsigned char i;while(1)i=0;while(i0 xff)P2=i;delay60ms();i+;dowhile先执行循环体,后判断的类型do 循环体 while(表达式);例子:例子:用用do.while 让让LED花样闪烁花样闪烁程序下载步骤安装MCU-VERSION2使用手册中的USB转串口K340 定义COM4打开应用软件中stc-isp下载点击界面设置下载注意事项务必要断电在变换代码处打勾程序的反汇编复习其他高级操作单步执行设置断点端口查看 查看窗口view_for(初始化表达式;条件表达式;增量表达式)语句块;(背住)执行过程eg:初始化后首先看满足条件 表达式吗?是,执行语句块并 增量;否,退出循环。分号的问题 空语句;永久循环 具体编程应用_P11单片机控制多盏LED实现彩灯显示Void main()unsigned char I,sum;sum=0;for(i=0;i=10;i+)(无分号)sum=sum+I;P0=sum;程序讲解与模仿一 P2=0 xef;for(i=1;i20000;i+);P2=0 xdf;for(i=1;i20000;i+);P2=0 xbf;for(i=1;i20000;i+);P2=0 x7f;for(i=1;i20000;i+);P2=0 xff;for(i=1;i20000;i+);P2=0 x00;for(i=1;i20000;i+);#includevoid main(void)unsigned int i;P2=0 xfe;for(i=1;i20000;i+);P2=0 xfd;for(i=1;i20000;i+);P2=0 xfb;for(i=1;i20000;i+);P2=0 xf7;for(i=1;i20000;i+);思考:能否改成5万、6万、7万、8万等程序如何改进程序改进#include void delay(void)unsigned int i;for(i=1;i20000;i+);void main(void)P2=0 xfe;delay();P2=0 xfd;delay();P2=0 xfb;delay();P2=0 xf7;delay();P2=0 xef;delay();P2=0 xdf;delay();P2=0 xbf;delay();P2=0 x7f;delay();P2=0 xff;delay();P2=0 x00;delay();程序还能不能更简程序还能不能更简利用库函数完成-更简#include#includeunsigned int temp;void delay(void)unsigned int i;for(i=1;i20000;i+);void main()temp=0 xfe;while(1)P2=temp;delay();temp=_irol_(temp,1);程序模仿二#include unsigned char LED;unsigned int i;delay()for(i=0;i5000;i+);main()LED=0 x01;while(1)P2=LED;delay();LED=1;if(LED=0)LED=0X01;时间延时计算时间延时计算 t=N*T(机器周期)机器周期)=(3*5000+2)*1.085uS时间延时多用下面小子程序时间延时多用下面小子程序delay()for(i=0;in;i+)for(i=0;ib)max=a;else max=b;If语句(2)If(表达式1)语句1;else If(表达式2)语句2;else If(表达式3)语句3;else 语句4;用if语句控制p2口灯亮/实例:用if语句控制P0口8位LED的流水方向#include /包含单片机寄存器的头文件sbit S1=P14;/将S1位定义为P1.4sbit S2=P15;/将S2位定义为P1.5/*函数功能:主函数*/void main(void)while(1)if(S1=0)/如果按键S1按下 P2=0 x0f;/P2口高四位LED点亮 if(S2=0)/如果按键S2按下 P2=0 xf0;/P2口低四位LED点亮 Switchcaseswitch(表达式)case常量表达式1;语句1;break;case常量表达式2;语句2;break;.default;语句n+1;实例当i=1,第一个灯亮,依此类推课后练习(独立完成)1.第一个发光管以间隔200ms闪烁2.8个发光管由上至下间隔500ms流动,同时蜂鸣器发声。3.8个发光管来回流动,间隔100ms,蜂鸣器发声。4.8个发光管间隔200ms由上至下,再由下至上,再由上至下,再由下至上,然后全部熄灭再以300ms间隔全部闪烁5次。重复上面过程。蜂鸣器和继电器硬件电路软件编程练习继电器有参和无参函数自己编写延时500ms的程序有参子程序调用#include#define uchar unsigned char#define uint unsigned int sbit buzzer=P34;void delay(uchar z)uchar x,y;for(x=1000;x1;x-)for(y=z;y1;y-);void main()/主函数 while(1)buzzer=0;delay(500);buzzer=1;delay(500);数码管应用课堂练习:用按键计次显示自己的学号 用数码管显示你的学号硬件电路编写显示一个数字的程序独立按键位置:键盘和中断一排下2个按键键盘方向问题:以数码管方向为准,上上下下;与跳线相连,方向外外;硬件电路具体电路独立按键应用防抖动电路#includesbit key1=P10;sbit key2=P11;sbit led1=P20;sbit led2=P21;void delay(unsigned int t)unsigned int i,j;for(i=1000;i0;i-)for(j=t;j0;j-);void main()while(1)if(key1=0)delay(7);if(key1=0)led1=led1;if(key2=0)delay(7);if(key2=0)led2=led2;数码管共阴极共阳极 使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX-1B实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。显示原理共阴数码管码表 0 x3f ,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 1 2 3 4 5 0 x7d,0 x07,0 x7f ,0 x6f,0 x77,0 x7c,6 7 8 9 A B 0 x39,0 x5e,0 x79,0 x71,0 x00 C D E F 无显示Led代码查询软件应用点击界面共阴共阳点击生 成代码 LED数码显示方式及电路数码显示方式及电路 静态显示方式静态显示方式LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。动态显示 动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。这样一来,就没有必要每一位数码管配一个锁存器,从而大大地简化了硬件电路。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。我们实际板子数码管接口位选控制:位选控制:P1_0,P1_1,P1_2段选控制:段选控制:P2口口在驱动芯片上:在驱动芯片上:74HC138 74HC245在驱动方式上:在驱动方式上:动态显示动态显示数码管 优点优点 缺点缺点动态显示:动态显示:代码简洁逻辑清晰代码简洁逻辑清晰 流动显示控制延时流动显示控制延时 静态显示:静态显示:显示稳定显示稳定 调用繁琐调用繁琐74HC138译码器74HC138译码器74HC24574HC245数组一维数组 int a7=0,1,2,3,4,5,6二维数组 unsigned char x34字符数组 char a2=B,E,I char str=“Now,Temerature is:”P12按键计次显示程序3.1 80C51的中断系的中断系统 3.1.1 80C513.1.1 80C51的中断系的中断系统结构构一、中断的概念一、中断的概念 CPUCPU在在处理某一事件理某一事件A A时,发生了另一事件生了另一事件B B请求求CPUCPU迅速去迅速去处理(理(中断中断发生生););CPUCPU暂时中断当前的工作,中断当前的工作,转去去处理事件理事件B B(中断响中断响应和中断服和中断服务););待待CPUCPU将事件将事件B B处理完理完毕后,再回到原来事后,再回到原来事件件A A被中断的地方被中断的地方继续处理事件理事件A A(中断返回中断返回),这一一过程称程称为中断中断 。MCS-51单片机的中断系统结构执行主程序主程序继续执行主程序断点中断请求中断响应执行中断处理程序中断返回引起引起CPU中断的根源,称为中断的根源,称为中断源中断源。中断源向。中断源向CPU提出提出的中断请求。的中断请求。CPU暂时中断原来的事务暂时中断原来的事务A,转去处理事件,转去处理事件B。对事件对事件B处理完毕后,再回到原来被中断的地方(即处理完毕后,再回到原来被中断的地方(即断点断点),),称为中断返回。实现上述中断功能的部件称为称为中断返回。实现上述中断功能的部件称为中断系统中断系统(中断机构)。(中断机构)。随着计算机技术的应用,人们发现中断随着计算机技术的应用,人们发现中断技术不仅解决了快速主机与慢速技术不仅解决了快速主机与慢速I/O设备的数设备的数据传送问题,而且还具有如下优点:据传送问题,而且还具有如下优点:分时操作分时操作。CPU可以分时为多个可以分时为多个I/O设备服设备服务,提高了计算机的利用率;务,提高了计算机的利用率;实时响应实时响应。CPU能够及时处理应用系统的随能够及时处理应用系统的随机事件,系统的实时性大大增强;机事件,系统的实时性大大增强;可靠性高可靠性高。CPU具有处理设备故障及掉电等具有处理设备故障及掉电等突发性事件能力,从而使系统可靠性提高。突发性事件能力,从而使系统可靠性提高。80C51中断系统的结构中断系统的结构 80C51的中断系统有的中断系统有5个中断源个中断源(8052有 6个),2个优先级,可实现二级中断嵌套个优先级,可实现二级中断嵌套。1 1、(P3.2P3.2)可可由由IT0(TCON.0)IT0(TCON.0)选择其其为低低电平平有有效效还是是下下降降沿沿有有效效。当当CPUCPU检测到到P3.2P3.2引引脚脚上上出出现有有效效的的中中断断信信号号时,中中断断标志志IE0(TCON.1)IE0(TCON.1)置置1 1,向,向CPUCPU申申请中断。中断。2 2、(P3.3(P3.3)可可由由IT1(TCON.2)IT1(TCON.2)选择其其为低低电平平有有效效还是是下下降降沿沿有有效效。当当CPUCPU检测到到P3.3P3.3引引脚脚上上出出现有有效效的的中中断断信信号号时,中中断断标志志IE1(TCON.3)IE1(TCON.3)置置1,1,向向CPUCPU申申请中断。中断。3 3、TF0TF0(TCON.5TCON.5),片片内内定定时/计数数器器T0T0溢溢出出中中断断请求求标志志。当当定定时/计数数器器T0T0发生生溢出溢出时,置位,置位TF0TF0,并向,并向CPUCPU申申请中断。中断。4 4、TF1TF1(TCON.7TCON.7),片内定),片内定时/计数器数器T1T1溢溢出中断出中断请求求标志。当定志。当定时/计数器数器T1T1发生溢生溢出出时,置位,置位TF1TF1,并向,并向CPUCPU申申请中断。中断。5 5、RIRI(SCON.0SCON.0)或)或TITI(SCON.1SCON.1),串行口中),串行口中断断请求求标志。当串行口接收完一志。当串行口接收完一帧串行数据串行数据时置位置位RIRI或当串行口或当串行口发送完一送完一帧串行数据串行数据时置位置位TITI,向,向CPUCPU申申请中断。中断。二、中断请求标志二、中断请求标志1、TCON的中断标志的中断标志IT0(TCON.0),外部中断),外部中断0触发方式控制位。触发方式控制位。当当IT0=0时,为电平触发方式。时,为电平触发方式。当当IT0=1时,为边沿触发方式(下降沿有效)。时,为边沿触发方式(下降沿有效)。IE0(TCON.1),外部中断),外部中断0中断请求标志位。中断请求标志位。IT1(TCON.2),外部中断),外部中断1触发方式控制位。触发方式控制位。IE1(TCON.3),外部中断),外部中断1中断请求标志位。中断请求标志位。TF0(TCON.5),定时),定时/计数器计数器T0溢出中断请求标志位。溢出中断请求标志位。TF1(TCON.7),定时),定时/计数器计数器T1溢出中断请求标志位。溢出中断请求标志位。2、SCON的中断标志的中断标志RI(SCON.0),串行口接收中断标志位。当允许),串行口接收中断标志位。当允许串行口接收数据时,每接收完一个串行帧,由硬串行口接收数据时,每接收完一个串行帧,由硬件置位件置位RI。注意,。注意,RI必须由软件清除。必须由软件清除。TI(SCON.1),串行口发送中断标志位。当),串行口发送中断标志位。当CPU将一个发送数据写入串行口发送缓冲器时,就启将一个发送数据写入串行口发送缓冲器时,就启动了发送过程。每发送完一个串行帧,由硬件置动了发送过程。每发送完一个串行帧,由硬件置位位TI。CPU响应中断时,不能自动清除响应中断时,不能自动清除TI,TI必须必须由软件清除。由软件清除。一、中断允许控制一、中断允许控制 CPU对中断系统所有中断以及某个中断源的开放和对中断系统所有中断以及某个中断源的开放和屏蔽是由中断允许寄存器屏蔽是由中断允许寄存器IE控制的。控制的。3.1.3 80C513.1.3 80C51中断的控制中断的控制 EX0(IE.0),外部中断,外部中断0允许位;允许位;ET0(IE.1),定时,定时/计数器计数器T0中断允许位;中断允许位;EX1(IE.2),外部中断,外部中断0允许位;允许位;ET1(IE.3),定时,定时/计数器计数器T1中断允许位;中断允许位;ES(IE.4),串行口中断允许位;,串行口中断允许位;EA(IE.7),CPU中断允许(总允许)位。中断允许(总允许)位。二、中断优先级控制二、中断优先级控制 80C51单片机有两个中断优先级,即可实现二级中单片机有两个中断优先级,即可实现二级中断服务嵌套。每个中断源的中断优先级都是由中断优断服务嵌套。每个中断源的中断优先级都是由中断优先级寄存器先级寄存器IP中的相应位的状态来规定的中的相应位的状态来规定的。PX0(IP.0),外部中断),外部中断0优先级设定位;优先级设定位;PT0(IP.1),定时),定时/计数器计数器T0优先级设定位;优先级设定位;PX1(IP.2),外部中断),外部中断0优先级设定位;优先级设定位;PT1(IP.3),定时),定时/计数器计数器T1优先级设定位;优先级设定位;PS (IP.4),串行口优先级设定位;),串行口优先级设定位;PT2(IP.5),定时,定时/计数器计数器T2优先级设定位。优先级设定位。PX0(IPH.0),外部中断),外部中断0优先级设定位;优先级设定位;PT0(IPH.1),定时),定时/计数器计数器T0优先级设定位;优先级设定位;PX1(IPH.2),外部中断),外部中断0优先级设定位;优先级设定位;PT1(IPH.3),定时),定时/计数器计数器T1优先级设定位;优先级设定位;PS (IPH.4),串行口优先级设定位;),串行口优先级设定位;PT2 (IPH.5),定时,定时/计数器计数器T2优先级设定位。优先级设定位。而而80C52单片机有四个中断优先级,即可实现四级中单片机有四个中断优先级,即可实现四级中断服务嵌套。每个中断源的中断优先级由中断优先断服务嵌套。每个中断源的中断优先级由中断优先级寄存器级寄存器IP和和IPH中的相应位的状态来规定的中的相应位的状态来规定的。同一优先级中的中断申请不止一个时,则有同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排队,由中断系统硬件确定的自然优先级形成,其排列如所示:列如所示:设置设置52单片机的单片机的4个中断源个中断源,使他们的优顺序使他们的优顺序为为T1,INT1,INT0,T0.IPH=0X08;PT1=1;IP =0X40;PX1=1;80C51单片机的中断优先级有三条原则:单片机的中断优先级有三条原则:CPU同时接收到几个中断时,同时接收到几个中断时,首先响应优先级别最高首先响应优先级别最高的中断请求的中断请求。正在进行的中断过程正在进行的中断过程不能被新的同级或低优先级的不能被新的同级或低优先级的中断请求所中断中断请求所中断。正在进行的低优先级中断服务,正在进行的低优先级中断服务,能被高优先级中断能被高优先级中断请求所中断请求所中断。为了实现上述后两条原则,为了实现上述后两条原则,中断系统内部设有中断系统内部设有两个用户不能寻址的优先级状态触发器。两个用户不能寻址的优先级状态触发器。其中一个其中一个置置1,表示正在响应高优先级的中断,它将阻断后来,表示正在响应高优先级的中断,它将阻断后来所有的中断请求;另一个置所有的中断请求;另一个置1,表示正在响应低优先,表示正在响应低优先级中断,它将阻断后来所有的低优先级中断请求。级中断,它将阻断后来所有的低优先级中断请求。3.2 80C51单片机中断处理过程单片机中断处理过程 中断响应条件中断响应条件 中断源有中断请求;中断源有中断请求;此中断源的中断允许位为此中断源的中断允许位为1;CPU开中断(即开中断(即EA=1)。)。以上三条同时满足时,以上三条同时满足时,CPU才有可能响才有可能响应中断应中断。3.2.1 3.2.1 中断响中断响应条件和条件和时间 3.3 80C51的定时的定时/计数器计数器 实现定时功能,实现定时功能,比较方便的办法是利用比较方便的办法是利用单片机内部的定时单片机内部的定时/计数器计数器。也可以采用下面。也可以采用下面三种方法:三种方法:软件定时软件定时:软件定时不占用硬件资源,但占用了:软件定时不占用硬件资源,但占用了CPU时间,降低了时间,降低了CPU的利用率。的利用率。采用时基电路定时采用时基电路定时:例如采用:例如采用555电路,外接必要电路,外接必要的元器件(电阻和电容),即可构成硬件定时电路。的元器件(电阻和电容),即可构成硬件定时电路。但在硬件连接好以后,定时值与定时范围不能由软但在硬件连接好以后,定时值与定时范围不能由软件进行控制和修改,即不可编程。件进行控制和修改,即不可编程。采用可编程芯片定时采用可编程芯片定时:这种定时芯片的定时值及定:这种定时芯片的定时值及定时范围很容易用软件来确定和修改,此种芯片定时时范围很容易用软件来确定和修改,此种芯片定时功能强,使用灵活。在单片机的定时功能强,使用灵活。在单片机的定时/计数器不够用计数器不够用时,可以考虑进行扩展。时,可以考虑进行扩展。3.3.1 3.3.1 定定时/计数器的数器的结构和工作原理构和工作原理 一、定时一、定时/计数器的结构计数器的结构 定时定时/计数器的实质是加计数器的实质是加1计数器(计数器(16位),由高位),由高8位和低位和低8位两个寄存器组成。位两个寄存器组成。TMOD是定时是定时/计数器的工作方式寄存计数器的工作方式寄存器,确定工作方式和功能;器,确定工作方式和功能;TCON是控制寄存器,控制是控制寄存器,控制T0、T1的启动和停止及设置溢出标志的启动和停止及设置溢出标志。二、定时二、定时/计数器的工作原理计数器的工作原理 加加1计数器计数器输入的计数脉冲有两个来源输入的计数脉冲有两个来源,一个是一个是由系统的时钟振荡器输出脉冲经由系统的时钟振荡器输出脉冲经12分频后送来;一分频后送来;一个是个是T0或或T1引脚输入的外部脉冲源。每来一个脉冲引脚输入的外部脉冲源。每来一个脉冲计数器加计数器加1,当加到计数器为全,当加到计数器为全1时,再输入一个脉时,再输入一个脉冲就使计数器回零,且计数器的溢出使冲就使计数器回零,且计数器的溢出使TCON中中TF0或或TF1置置1,向,向CPU发出中断请求(定时发出中断请求(定时/计数器中断计数器中断允许时)。如果定时允许时)。如果定时/计数器工作于定时模式,则计数器工作于定时模式,则表示定时时间已到;如果工作于计数模式,则表示表示定时时间已到;如果工作于计数模式,则表示计数值已满。计数值已满。可见,由溢出时计数器的值减去计数初值才是可见,由溢出时计数器的值减去计数初值才是加加1计数器的计数值计数器的计数值。设置为定时器模式时设置为定时器模式时,加,加1计数器是对内部机器周期计数器是对内部机器周期计数(计数(1个机器周期等于个机器周期等于12个振荡周期,即计数频率个振荡周期,即计数频率为晶振频率的为晶振频率的1/12)。)。计数值计数值N乘以机器周期乘以机器周期Tcy就是就是定时时间定时时间t。设置为设置为计数器模式时计数器模式时,外部事件计数脉冲由,外部事件计数脉冲由T0或或T1引引脚输入到计数器。在每个机器周期的脚输入到计数器。在每个机器周期的S5P2期间采样期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加周期又采样到一低电平时,则计数器加1,更新的计,更新的计数值在下一个机器周期的数值在下一个机器周期的S3P1期间装入计数器。由于期间装入计数器。由于检测一个从检测一个从1到到0的下降沿需要的下降沿需要2个机器周期,因此要个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频求被采样的电平至少要维持一个机器周期。当晶振频率为率为12MHz时时,最高计数频率不超过,最高计数频率不超过1/2MHz,即计数,即计数脉冲的周期要大于脉冲的周期要大于2 s。3.3.2 定时定时/计数器的控制计数器的控制 80C51单片机定时单片机定时/计数器的工作由两个特殊功计数器的工作由两个特殊功能寄存器控制。能寄存器控制。TMOD用于设置其工作方式;用于设置其工作方式;TCON用于控制其启动和中断申请。用于控制其启动和中断申请。一、工作方式寄存器一、工作方式寄存器TMOD 工作方式寄存器工作方式寄存器TMOD用于设置定时用于设置定时/计数器的计数器的工作方式,低四位用于工作方式,低四位用于T0,高四位用于,高四位用于T1。其格式。其格式如下:如下:GATE:门控位。:门控位。GATE0时,只要用软件使时,只要用软件使TCON中的中的TR0或或TR1为为1,就可以启动定时,就可以启动定时/计数器工作;计数器工作;GATA1时,要用时,要用软件使软件使TR0或或TR1为为1,同时外部中断引脚或也为高电平时,同时外部中断引脚或也为高电平时,才能启动定时才能启动定时/计数器工作。即此时定时器的启动条件,加计数器工作。即此时定时器的启动条件,加上了或引脚为高电平这一条件。上了或引脚为高电平这一条件。:定时定时/计数模式选择位。计数模式选择位。0为定时模式;为定时模式;=1为计数模式。为计数模式。M1M0:工作方式设置位。定时:工作方式设置位。定时/计数器有四种工作方式,计数器有四种工作方式,由由M1M0进行设置。进行设置。二、控制寄存器二、控制寄存器TCON TCON的低的低4位用于控制外部中断位用于控制外部中断,已在前面介绍。已在前面介绍。TCON的高的高4位用于控制位用于控制定时定时/计数器的启动和中断申请。其格式如下:计数器的启动和中断申请。其格式如下:TF1(TCON.7):):T1溢出中断请求标志位。溢出中断请求标志位。T1计数溢出时由硬件自动置计数溢出时由硬件自动置TF1为为1。CPU响应中断后响应中断后TF1由硬件自动清由硬件自动清0。T1工作时,工作时,CPU可随时查可随时查询询TF1的状态。所以,的状态。所以,TF1可用作查询测试的标志。可用作查询测试的标志。TF1也可以用软件置也可以用软件置1或清或清0,同硬件置,同硬件置1或清或清0的效果一样。的效果一样。TR1(TCON.6):):T1运行控制位。运行控制位。TR1置置1时,时,T1开始工作;开始工作;TR1置置0时,时,T1停止工作。停止工作。TR1由软件置由软件置1或清或清0。所以,用软件可控制定时。所以,用软件可控制定时/计数器的计数器的启动与停止。启动与停止。TF0(TCON.5):):T0溢出中断请求标志位,其功能与溢出中断请求标志位,其功能与TF1类同。类同。TR0(TCON.4):):T0运行控制位,其功能与运行控制位,其功能与TR1类同。类同。3.3.3 定时定时/计数器的工作方式计数器的工作方式 一、方式一、方式0 方式方式0为为13位计数位计数,由,由TL0的低的低5位(高位(高3位未用)和位未用)和TH0的的8位组成。位组成。TL0的低的低5位溢出时向位溢出时向TH0进位,进位,TH0溢出时,置位溢出时,置位TCON中的中的TF0标志,向标志,向CPU发出中断请求。发出中断请求。定时器模式时定时器模式时有有:Nt/Tcy 计数初值计算的公式为:计数初值计算的公式为:定时器的初值还可以采用计数个数直接取补法获得定时器的初值还可以采用计数个数直接取补法获得。计数模式时,计数脉冲是计数模式时,计数脉冲是T0引脚上的外部脉冲。引脚上的外部脉冲。门控位门控位GATE具有特殊的作用。当具有特殊的作用。当GATE=0时,经反相后使时,经反相后使或门输出为或门输出为1,此时仅由,此时仅由TR0控制与门的开启,与门输出控制与门的开启,与门输出1时,控制开关接通,计数开始;时,控制开关接通,计数开始;当当GATE=1时时,由外中断引,由外中断引脚信号控制或门的输出,此时控制脚信号控制或门的输出,此时控制与门的开启由外中断引脚与门的开启由外中断引脚信号和信号和TR0共同控制共同控制。当。当TR0=1时,外中断引脚信号引脚的时,外中断引脚信号引脚的高电平启动计数高电平启动计数,外中断引脚信号引脚的,外中断引脚信号引脚的低电平停止计数低电平停止计数。这种方式常用来测量外中断引脚上正脉冲的宽度。这种方式常用来测量外中断引脚上正脉冲的宽度。二、方式二、方式1 方式方式1的计数位数是的计数位数是16位,由位,由TL0作为低作为低8位、位、TH0作作为高为高8位,组成了位,组成了16位加位加1计数器计数器 。计数个数与计数初值的关系为:计数个数与计数初值的关系为:三、方式三、方式2 方式方式2为自动重装初值的为自动重装初值的8位计数方式。位计数方式。工作方式2特别适合于用作较精确的脉冲信号发生器。计数个数与计数初值的关系为计数个数与计数初值的关系为:四、方式四、方式3 方式方式3只适用于定时只适用于定时/计数器计数器T0,定时器定时器T1处于方式处于方式3时相当时相当于于TR1=0,停止计数。,停止计数。工作方式工作方式3将将T0分成为两个独立的分成为两个独立的8位计数器位计数器TL0和和TH0。3.3.5 定时定时/计数器应用举例计数器应用举例 初始化程序应完成如下工作:初始化程序应完成如下工作:对对TMOD赋值,以确定赋值,以确定T0和和T1的工作方式。的工作方式。计算初值计算初值,并将其写入并将其写入TH0、TL0或或TH1、TL1。中断方式时,则对中断方式时,则对IE赋值,开放中断。赋值,开放中断。使使TR0或或TR1置位,启动定时置位,启动定时/计数器定时或计数。计数器定时或计数。例例 利用定时利用定时/计数器计数器T1的方式的方式1,产生,产生10ms的定时,的定时,并使并使P1.0引脚上输出周期为引脚上输出周期为20ms的方波,采用中断的方波,采用中断方式,设系统时钟频率为方式,设系统时钟频率为12 MHz。解:解:1、计算计数初值、计算计数初值X:由于晶振为由于晶振为12 MHz,所以机器周期,所以机器周期Tcy为为1 s。所以:所以:Nt/Tcy 10000/110000X655361000055536D8F0H即应将即应将D8H送入送入TH0中,中,F0H送入送入TL0中中 2、求、求T1的方式控制字的方式控制字TMOD:M1M0=01,GATE=0,C/T=0,可取方式控,可取方式控制字为制字为01H;1、利用定时、利用定时/计数器计数器T0从从P1.0输出周期为输出周期为1s的的方波,让发光二极管以方波,让发光二极管以1HZ闪烁,设晶振频率闪烁,设晶振频率为为12MHz。试设计程序。试设计程序。2、利用定时、利用定时/计数器计数器T1产生定时时钟产生定时时钟,由由P1口口控制控制8个发光二极管。编一个程序个发光二极管。编一个程序,使使8个指示个指示灯依次一个一个闪动,闪动频率为灯依次一个一个闪动,闪动频率为10次次/秒秒(8个灯依次亮一遍为一个周期个灯依次亮一遍为一个周期)。4、用定时器以间隔、用定时器以间隔500MS在在6位数码管上依次位数码管上依次显示显示0、1、2、3.C、D、E、F,重复。,重复。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!