ZKX's LAB

c51单片机定时 计数器原理及应用归纳 80C51单片机内部有几个定时计数器?它们由哪些功能寄存器组成?怎样实现定时功能和计数功能?

2020-08-11知识12

用AT89C51单片机定时/计数器0的定时功能构成一简单的方波发生器 这是我的一个程序:includedefine uchar unsigned chardefine uint unsigned int名称:Time0_Init()功能:定时器的初始化,11.0592MZ晶振,50ms输入:无输出:无void Time0_Init(){TMOD=0x01;16位定时模式IE=0x82;TH0=0xfe;延时400usTL0=0x70;TR0=1;}名称:Time0_Int()功能:定时器中断,中断中实现 Count 加一输入:无输出:无void Time0_Int()interrupt 1{TH0=0xfe;TL0=0x70;P1=~P1;P1口电平交替变换}名称:Main()功能:主函数输入:无输出:无void main(){Time0_Init();while(1);}单片机定时器 计数器的工作原理,及如何实现定时 计数功能 定时\\计数器的2113原理:16位的定时器/计数器实质上就是一5261个加1计数器,其4102控制电路受软件控制、切换。1653 当定时器/计数器为定时工作方式时,计数器的加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。虽然对外部输入信号的占空比无特殊要求,但为了确保某给定电平在变化前至少被采样一次,外部计数脉冲的高电平。简单描述AT89C51单片机的定时计数器的设置 var projection=d3.geo.albers()center([0,55.4])rotate([4.4,0])parallels([50,60])scale(6000)translate([width/2,height/2]).单片机c51编程。系统晶振频率为12Mhz,利用定时计数器T0的方式1,并使用p1.0引脚上输出周 每隔 250ms 翻转一次,就是输出周期500ms的方波。

#定时器#机器周期#状态寄存器#at89c51#控制寄存器

qrcode
访问手机版