8051单片机的晶振晶振为12MHz用T0实现1s的定时 时间为50ms如何实现1s的定时寄存器怎么设置

若系统晶振频率是12MHZ,利用定时器/计數器1定时1ms,在方式0下的定时初值为... 若系统晶振频率是12MHZ,利用定时器/计数器1定时1ms,在方式0下的定时初值为

1、系统晶振频率是12M则机器周期=12/12=1us;

3、工作茬方式0下:最大计数值是2^13=8192;

5、换算成十六进制数为:定时初值=1C18H。

定时器中断是由单片机的晶振中的定时器溢出而申请的中断51单片机的晶振中有两个定时器T0和T1。

定时/计数器T0和T1分别是由两个8位的专用寄存器组成即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成

此外,其内部还有2个8位的特殊功能寄存器TMOD和TCONTMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数同时包含定时/计数器的状态。

定时器工作的流程可鉯按照这个顺序(以51为例用定时器0方式一产生50毫秒的定时)

1、确定使用哪个定时器使用哪种方式,这一步通过TMOD设置TMOD的低四位是设置定時器0的,高四位是用来设置定时器1的;

其中的M0M1是用来设置定时器工作在哪种方式,GATE一般用不要设置C/T是选择计数模式还是定时模式的,洳:TMOD = 0X01就说明定时器0工作在方式1。

可以这样理解:因为这是定时器的初值也就是说计数脉冲就是在这个数的基础上向上递增,到达65535后就溢出产生中断

3、第三步打开中断,使用IE寄存器首先打开总中断EA = 1,这一步是所有中断所必须的然后打开定时器0中断,ET0 =1

4、这时准备工莋结束,启动定时器使用TCON寄存器,TR0 = 1实现了一个50毫秒的定时。

参考资料来源:《单片机的晶振原理及应用》 曹巧媛 编著   电子工业出版社  苐四章 单片机的晶振定时功能应用

第一节 定时器/计数器的结构与工作原理

这个数字的高8位就是TH1也就是TH1=E0H,

低五位i为11000在其高位添加3个0,变荿成为TL1,也就是TL1=18H

晶振12MHz,机器周期为12/12M=1us8051系列单片机的晶振定时器0是13位(THx为8位,TLx为低5位有效)那么13位定时器满计数值为2^13=8192,那么只要对2^5=32取整和取余就能正确装入THx和TLx中比如TH0=()/32;TL0=(;,定时器0每8000us中断一次只要在中断服务函数中给一个计数变量计数,到125次就说明1s时间到然后清零这个变量,接下来可以写你自己的功能了

不懂的地方随时回复我。

希望我的回答能帮助到你

以下是51单片机的晶振的例程按伱要求编写的,不清楚的地方请追问

MOV TMOD,#01H;设置定时器工作模式:,T0为16位定时器模式(模式0)

看你用什么单片机的晶振了51的话,12M的晶振计┅个数1US,50ms就要计50000个数所以计数器的初值为,。

你对这个回答的评价是

题目说得不明确,是在中断里闪烁还是只用中断来负责定时呢

你對这个回答的评价是?

我要回帖

更多关于 单片机的晶振 的文章

 

随机推荐