那个时差就是你程序运行消耗掉了的,你可以用系统时间来确定是否到时间了这是我写的一个用千千静听当闹钟的一个程序h>#include<timeh>voidmain(){inth,m,s,hl,ml,sl,ht,mt,st;time_tt;tm*tp;printf("设定闹钟时间(hhmmss):\n");scanf("%d%d%d",&h,&m,&s);t=time(NULL);tp=localtime(&t);printf("%8s------%8s\n","现在时间","剩余时间");while(tp->tm_hour!=h||tp->tm_min!=m||tp->tm_sec!=s){t=time(NULL);tp=localtime(&t);ht=h;mt=m;st=s;if(ht<tp->tm_hour||(ht==tp->tm_hour&&mt<tp->tm_min)||(ht==tp->tm_hour&&mt==tp->tm_min&&st<tp->tm_sec))ht+=24;if(st<tp->tm_sec){st+=60;mt-=1;}sl=st-tp->tm_sec;if(mt<tp->tm_min){mt+=60;ht-=1;}ml=mt-tp->tm_min;hl=ht-tp->tm_hour;printf("\r%2d:%2d:%2d------%2d:%2d:%2d",tp->tm_hour,tp->tm_min,tp->tm_sec,hl,ml,sl);Sleep(900);//降低cpu使用}printf("\n");ShellExecute(NULL,"open","E:\\music\\new\\日不落路径根据你的具体设定}这个东西总不能太准确,我自己用了也感觉那样。放在那里几天,时钟就出偏差了,目前我也找不到什么原因,应该不是程序问题,因为关机的时候只有电池在供电,晶振出错的可能性也比较小,估计是芯片的问题。输出响应时间有延迟本回答被提问者采纳eegfsdfds
DS1302程序:
#include"ds1302sina.com 我邮件用附件发给你
ds1302是不带闹钟功能的。向楼上那位说的,在主程序放一个检测子程序,那样也不好。如果一上电,闹钟就没了。修改也很不方便,不能保存。如果用单片机的话,单片机内部自带有EEROM,可以把闹钟数据写入EEROM中,那样即使掉电也不会丢失数据。这样是最好的办法~在主程序中放入一个检测子程序,可用swicth语句实现。读取1302的小时寄存器的数值与设定的闹钟时间中的小时数值比较,如果相等则用同样的方法继续检测分、秒是否相等。秒值相等了就响铃,swicth中的判断变量赋回初值。本回答被网友采纳
做过1602的,数码管的话用138做位选,573做段选追问
可以给数码管的那个程序吗追答
需要根据电路去写程序本回答由提问者推荐没有详细的!电子设计杂志上应该有!这个问题太复杂了。不知道怎么说追问
我看了好几个程序 可是不会改 也不知道怎么驱动8个数码管
俺可以代做,一切给你做完:980100952本回答由提问者推荐我看我行我能
毕业论文 闹钟 电子