用51单片机,AT89C52写一个简单闹钟(C语言)

1、利用开发板的八位数码管实现显示时钟,当电源按钮按下,数码管(时钟模式)显示为
00.00.00CL , 且开始自动走时,每秒加一,并正确进位。
2、选择按钮1,按钮2,按钮3
当按钮1按下,循环选择小时位,分钟位,秒钟位。
当按钮2按下,所选择的位加1,加到上限则循环,如选择小时位,23+1=00
当按钮3按下,所选择的位减1,减到下限则循环,如选择小时位,00-1=23
3、选择按钮4
当按钮4按下,进入闹钟模式,数码管(闹钟模式)最开始显示为00.00.00AL,
在此状态下:
----------------------------------------------------------------
当按钮1按下,循环选择小时位,分钟位,秒钟位。
当按钮2按下,所选择的位加1,加到上限则循环,如选择小时位,23+1=00
当按钮3按下,所选择的位减1,减到下限则循环,如选择小时位,00-1=23
----------------------------------------------------------------
当再次按下按钮4,切换到时钟模式 00.00.00CL,注意,在调节设定闹钟时,
时钟模式继续计时,只是未显示在前台。
当时钟模式的时间与闹钟模式的设定时间吻合时,蜂鸣器发声一分钟。
4、当时钟模式走到整点时,蜂鸣器发声n次短声,n为整点时间

现在来个人解答一下,那个循环选择怎么做。可以直接给文件,但是要有注释(新手尽量简单一点,毕竟我们是过了基本就不用的那一种)。我们是实训内容
邮箱986700476@qq.com

没做过单片机 不过猜测的话 显示可以用循环 设置i为妙的参数 计数从1 m为分钟参数 n为小时参数 赋值的话i%=60 m=i/60 m%=60 n=m/60 n%=24
单片机的计数 我不太清楚 不过要是清楚单片机的运行原理的话 下面的东西应该不难
以上只是猜测 没看过单片机 比如循环while(scanf("%d",&i)){printf("%2d.%2d.%2d",i,m,n)
应该是可以显示的
如果你得到了程序 私信我一份呗 我邮箱996673400@qq.com 谢谢啦!
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-06-14
参考《吴鉴鹰单片机项目实战精讲》里面的资料,百度文库有
相似回答