STC89C52单片机计算自然时间【数秒】,晶振12mhz,

过程:通过两个外部中断0/1,其分别是启动定时,停止定时,我想要里面的时间值,要这个时间值置于一个除法运算程序中,请高手帮忙提示一下程序设计思路,方便的话给我写写程序构架,谢~
我想要的关键是如何得出这个自然秒数,这个波特率是什么关系~ 【一定得是拿C语言编写】
【这个问题的回答,我要两个外部中断,其中一个是开始启动计时,另外一个是停止计时,然后得到其中的时间值,希望能帮我解答下,小弟谢了】

第1个回答  推荐于2016-12-02
计算自然时间干嘛用两个中断?用一个外部中断就行了,加一个计时器。
思路就是给计时器付初值(控制时间长短),没计一秒就进入中断,中断中就把显示的时间加一,然后又计一秒,又中断显示加一,循环就行了。
写个大概结构吧:

void main()
{
TMOD=0x00;//设置定时器0为工作方式1
TL0=(65536-5000)/256;//计时器低四位附初值
TH0=(65536-5000)%256;//计时器高四位赋值,12MHz晶振,那么这样计时
溢出时刚好为50ms。重复20次就为1s。
EA=1;//开总中断
ET0=1;//开定时器0中断
TRO=1;//启动定时器
display();//控制显示程序
}
接下来每计满一次就会进入中断,在中断中就可以这样写:
{
num++
if(num==20)
{
num=0;//清零,为下一秒记时准备
miao++
}
}
那么每计20次刚好一秒,miao就加1。在dispaly中显示就可以了。记得把计时器付初值放在循环里就行了。
大概思路就这样,希望能帮到。本回答被提问者采纳
相似回答