本文目录一览

1,单片机中的定时器应用问题

/************************************************************************ 定时器0初始化 ************************************************************************/ void Et0_Init() P1^=0x01; TH0 = 0xfc; TL0 = 0x60; } main() Et0_Init(); }

单片机中的定时器应用问题

2,求一个单片机定时器程序用汇编

ORG 0000H AJMP START ORG 0040H START:MOV SP,#60H ABC:MOV DPTR,#TABLE CLR A STA:MOV R1,A MOVC A,@A+DPTR MOV P1,A ACALL DELA INC R1 MOV A,R1 CJNE A,#05H,STA AJMP ABC DELA:MOV R7,#250 DEL: MOV R6,#250 DJNZ R6,$ DJNZ R7,DEL RET TABLE:DB 05H,0AH,50H,0A0H,0FFH,00H END

求一个单片机定时器程序用汇编

3,怎样通俗的理解单片机定时器

打个比方你就是CPU,你很忙,不停的干活着不能分心去看时间,你可以设置个闹钟来每一分钟提醒你一下,这个闹钟就相当个定时器,你定时了一分钟. 要是开了中断,就每一分钟你就可以停下你手里的工作去中断里面干点别的.这样CPU的效率就会很高,也就是你的工作效率会很高.就不用你不停的看下时间了.
从来也没有人说过:在串口通信时,89c51依靠检查tf1的置位清零的次数来计算溢出率。楼主的疑问,在硬件设计的时候,intel已经解决了,内部肯定有检查的方法。
定时器,准确的讲应该叫“定时/计数器”。定时器的本质就是计数器,就是计算从晶振过来的脉冲有多少个,由于晶振的频率是定的,所以数了多少个脉冲,就能算出过了多长时间,所以又叫作定时器。
比如说定时器下面连一个灯泡,当通电的时候灯泡亮,当定时器设置的时间到了以后灯泡就灭了,,

怎样通俗的理解单片机定时器

4,单片机定时器的问题程序

#include<reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int void main()uchar T_Count=0;P0=0xfe;P2=0xfe;TMOD=0x02; //定时器0 工作方式2 TH0=256-100; //100us定时 好像有这句不用的 工作方式2下 TH0没有用 不知道对不对TL0=256-100; TR0=1; //启动定时器while(1)if(TF0==1)TF0=0;//我记的工作方式2是自动重装载的 不需要在给定时器赋值如果不是 要自己加下 if(++T_Count==5)P0=_crol_(P0,1);P2=_crol_(P2,1);T_Count=0;}}}} 用P0 和P2 接LED灯 2个一起做流水的 你自己选一个接好了 都接也可以

5,单片机计时器

//1:用AT89C51单片机的定时/计数器T0产生一秒的 //定时时间,作为秒计数时间,当一秒产生时,秒 //计数加1,秒计数到60时,自动从0开始。单片机 //晶振频率为12MHZ //由于是刚刚注册,积分没有多少,请大家帮个忙,谢谢! #include&lt;reg52.h&gt; #define uchar unsigned char #define uint unsigned int uchar code table[]= 0x6f}; void display(uchar fen,uchar miao); uchar a,fen,miao,shu; void delay(uint z); void init(); void main() init(); while(1) display(fen,miao); } } void timer0() interrupt 1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; a++; if(a==20) a=0; shu++; fen=shu/10; miao=shu%10; if(shu==60) shu=0; } } void init() TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1; } void display(uchar fen,uchar miao) P1=0xFe; P2=table[fen]; delay(5);//延时5毫秒 P1=0xFf; P2=table[miao]; delay(5);//延时5毫秒 } void delay(uint z) uint x,y; for(x=z;x&gt;0;x--) for(y=110;y&gt;0;y--); } //P2口接数码管,然后数码管位选通过74HC138来控制 //我可是刚学,弄了好久才弄出来的哦 //要图的话加980100952 //这个软件是调通过了的,也加载到我的实验扳上试过的

6,单片机定时器 计数器的工作原理及如何实现定时 计数功能

原理: 16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。 当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。两个字节最大数据为65536(十进制),或者0FFFFH(十六进制)高字节为TH0=(65536-X)/256,就是除以256后的整数部分;低字节为TL0=(65536-X)%256,减去高字节后余下的部分;定时/计数器定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。以上内容参考:百度百科-定时器中断
动画效仿定时器原理,生动有趣
定时\计数器的原理: 16位的定时器/计数器实质上就是一个加1计数器,其控制电路受软件控制、切换。 当定时器/计数器为定时工作方式时,计数器的加1信号由振荡器的12分频信号产生,即每过一个机器周期,计数器加1,直至计满溢出为止。显然,定时器的定时时间与系统的振荡频率有关。因一个机器周期等于12个振荡周期,所以计数频率fcount=1/12osc。如果晶振为12MHz,则计数周期为:T=1/(12×106)Hz×1/12=1μs 这是最短的定时周期。若要延长定时时间,则需要改变定时器的初值,并要适当选择定时器的长度(如8位、13位、16位等)。 当定时器/计数器为计数工作方式时,通过引脚T0和T1对外部信号计数,外部脉冲的下降沿将触发计数。计数器在每个机器周期的S5P2期间采样引脚输入电平。若一个机器周期采样值为1,下一个机器周期采样值为0,则计数器加1。此后的机器周期S3P1期间,新的计数值装入计数器。所以检测一个由1至0的跳变需要两个机器周期,故外部事年的最高计数频率为振荡频率的1/24。例如,如果选用12MHz晶振,则最高计数频率为0.5MHz。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平与低电平保持时间均需在一个机器周期以上。 当CPU用软件给定时器设置了某种工作方式之后,定时器就会按设定的工作方式独立运行,不再占用CPU的操作时间,除非定时器计满溢出,才可能中断CPU当前操作。CPU也可以重新设置定时器工作方式,以改变定时器的操作。由此可见,定时器是单片机中效率高而且工作灵活的部件。 综上所述,我们已知定时器/计数器是一种可编程部件,所以在定时器/计数器开始工作之前,CPU必须将一些命令(称为控制字)写入定时/计数器。将控制字写入定时/计数器的过程叫定时器/计数器初始化。在初始化过程中,要将工作方式控制字写入方式寄存器,工作状态字(或相关位)写入控制寄存器,赋定时/计数初值。下面我们就提出的控制字的格式及各位的主要功能与大家详细的讲解。 控制寄存器 定时器/计数器T0和T1有2个控制寄存器-TMOD和TCON,它们分别用来设置各个定时器/计数器的工作方式,选择定时或计数功能,控制启动运行,以及作为运行状态的标志等。其中,TCON寄存器中另有4位用于中断系统。

文章TAG:单片机定时器  单片机中的定时器应用问题  
下一篇