用51系列单片机做一个硬件时钟

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:50:39
想实现如下功能
一天24小时中,有12小时处于工作状态,有12小时处于非工作状态。
我的初步设想是做一个周期为24小时的方波,但不知道51单片机有没有这么大的容量。
如果没有的话,这个功能该如何实现。

另一个问题就是51单片机的两个定时器能不能同时工作。
我就是设想使用循环嵌套的方法,定时值设为50ms,那么软件计数器要实现12小时的循环,就要把寄存器的初值设为12*3600*1000/50=864000,即软件计数器初值为864000,我的问题是寄存器有这么大容量么。

你这样来考虑吧:当定时器溢出(或者中断)一次,你就把某个寄存器或者字节的内容加以,如果这个字节都装满了,就把再用一个字节来继续计数……这样容量该大了吧?比如使用3个字节,再加上一个16位的计数器,那计数的最大值就是16+3*8=40位,即可以记录2的40次方个机器周期……够用了把?你说的864000比2的40次方小的多了吧?

一个DS1302才1元钱,你买一个同这个单片机做一个时钟就行了。我这个有现成的原理图和电路图,还有用C51写的程序。

可以使用软件循环,循环嵌套是可以实现输出长周期方波的!直接肯定不行!

864000算不上大,不一定要用寄存器.
你用汇编吗