7519|8

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

c语言写的单片机时钟日历,有闹钟、秒表功能。我想让秒表以10ms为单位进行计时,但秒表走得很慢,不是10ms [复制链接]

我的工程文件和电路图的下载地址。
[url=http://dldx.eeworld.net/fd.php?i=576024092586541&s=34a779c087db9a0a779fc99f81bb6e01][/url]





从左到右,从上到下依次命名为
key1,key2,key3,key4
key5…………………
1、key1键: 菜单功能选择按键
第一次按下:进入计时器界面
第二次按下:返回时钟界面
2、key2键: 时钟调整选择按键
第一次按下:调整秒
第二次按下:调整分钟
第三次按下:调整小时
第四次按下:调整日
第五次按下:调整月份
第六次按下:调整年
第七次按下:返回时钟界面
3、key3键: 第一次按下开启闹钟,第二次按下确定闹钟时间,第三次按下关闭闹钟
4、key4键:
5、key5键: 按一下加1
6、key6键: 按一下减1

7. key7键:设置闹钟按键,第一、二次按下分别调节分、时 
8. key8键:  
9. key9键:计时器开始/暂停计时
10. key10键:按住该键显示时间,松开继续显示计时
11. key11键:按下后清零
12. key12键:按下后清零并重新计时
13. key13键:
14. key14键
15. key15键
16. key16键:
  时钟
1、初始化时钟时间为2010-05-26 Wed
  12:00:00
2、时间变量:seconds,minute,hour, week, day, month, year;  
3、时间的设置:根据按下key2键的次数将光标移到相应的位置进行闪烁,
,然后根据key5 key6键的按下对相应的时间变量进行增或减1、

  闹钟
功能:设置闹钟,时间到了后响铃,三分钟后若无取消闹钟,则自动关闭闹钟。
实现方法:
当第一次按下key3键时,alarmOn = 1.,进行闹钟时间设置, 在屏幕右下角显示字符串“Set”。第二次按下时开启闹钟定时,在屏幕右下角显示字符串“On” ,第三次按下时关闭闹钟。根据按下key7键的次数将光标移到相应的位置进行闪烁,,然后根据key5 key6键的按下进行增或减1,每增减一次调用相对应的屏幕刷新函数.。设置好后,将该时间值存在变量alarmMinute, alarmHour里,。此后不断检测系统时间与所设闹钟时间是否相等,当相等时让蜂鸣器发声。此时如果再次按下key8键则,alarmOn = 0,关闭蜂鸣器,消除字符串“On”,恢复时钟界面。如果没有按下key8键,则3分钟后蜂鸣器自动关闭,消除字符串“On”。
功能:精确到10ms,计时范围:0~60:00:00,即1小时。
按下key9键:计时器开始/暂停计时
key10键:按住该键显示时间,松开继续显示计时
key11键:按下后清零
key12键:按下后清零并重新计时

  1. *我写到计时器这里就卡住了。我想以10ms进行计时,但运行结果确不是我想要的,秒表走得很慢,不知道怎么回事。不是以10ms为单位。
  2. 不是以10ms进行计时,,是不是程序太大了,写太多了,到反应中断时10ms已经过去了,来不及显示
复制代码
此帖出自编程基础论坛

最新回复

那啥,中断冲突,则要设置一下优先级。 当然,中断本身存在优先级,这说的是51  详情 回复 发表于 2011-12-13 13:21
点赞 关注
 

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
AT89C52,10毫秒大约可执行1万条指令. 如果程序结构合理,完全来得及进行处理.
此帖出自编程基础论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
引用 1 楼 great_bug 的回复:
AT89C52,10毫秒大约可执行1万条指令. 如果程序结构合理,完全来得及进行处理.

哦。那就不是这个问题了。。不知道哪里出问题了。。时钟部份是正常的。。
此帖出自编程基础论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

4
 
你的项目,有定时器,矩阵扫描,还有LCD点阵显示,相对51来说,10ms是有点紧张了。不妨将单片机的晶振换大点试试,理论上,24M都可以的。
此帖出自编程基础论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 peasant_lee 的回复:
你的项目,有定时器,矩阵扫描,还有LCD点阵显示,相对51来说,10ms是有点紧张了。不妨将单片机的晶振换大点试试,理论上,24M都可以的。

唉。不行啊。。不知道怎么回事。。
此帖出自编程基础论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

6
 
问题解决了。是两个中断冲突了。。
此帖出自编程基础论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

7
 

1

楼主能给我发下你修改后的文件吗
此帖出自编程基础论坛
 
 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

8
 

回复 6楼 junxibj 的帖子

还真是......

定时器用的时候有个细节
进中断以后立马重新设置初值,但不要开中断允许——但是定时器已经在动
此帖出自编程基础论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复

7815

帖子

56

TA的资源

裸片初长成(中级)

9
 
那啥,中断冲突,则要设置一下优先级。
当然,中断本身存在优先级,这说的是51
此帖出自编程基础论坛
 
个人签名

强者为尊,弱者,死无葬身之地

 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表