关于单片机的定时问题

王朝知道·作者佚名  2010-08-20
窄屏简体版  字體: |||超大  
 
分類: 教育/科學 >> 科學技術 >> 工程技術科學
 
問題描述:

我想用51单片机定时

方式1最大只能定时到65536us

如果要定时1分钟或更长,如何实现呢?循环?

如果有高手知道,能简单的用汇编语言帮我描述一下么?

參考答案:

可以用定时器中断时现

比如用定时器1

通过写TMOD寄存器进行如下设置:

C/T=0 定时/计数器1工作于定时方式

M1=1;M0=0--选择工作模式1,构成最大定时器

GATE=0

再通过写TL1和TL0指定定时时间,

比如定时50ms可设为

TL1 = 0x13; TH1 = 0x2C; //指定定时时间为50ms

//65536-50/(11.0592/12)=11283=2C13h

然后开定时器中断

ET1 = 1

当计时满后会进入定时器中断服务程序

在中断服务程序中这样设计:

TL1 = 0x13; TH1 = 0x2C; //重新赋值

timer_count++;//定时器计数器加1

timer_count为自己定义的一个变量,每进入一次中断,对变量加1,然后再退出中断,这样可以实现任意时间的定时,比如定时1s,即当timer_count等于20时时定时时间即为1s。

我是用C语言写的,你可以转为汇编语言。

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航