找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19372|回复: 68
打印 上一主题 下一主题
收起左侧

[原创]超简单电子钟程序 C语言+汇编+原理图+学习心得

  [复制链接]
跳转到指定楼层
楼主
ID:19383 发表于 2009-11-24 12:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
超简单电子钟程序 C语言+汇编+原理图+学习心得

全套资料在压缩包里

;********************************
;单片机电子钟汇编程序
;MCU:AT89C2051 晶振:12M
;编写:舒新生 日期:2007.11.08
;手机:13073399262  QQ:625608148
;********************************
 MIAO BIT P1.2;秒点位
 HOU_S BIT P3.0 ;时十位
 HOU_G BIT P3.1 ;时个位
 MIN_S BIT P3.2 ;分十位
 MIN_G BIT P3.3 ;分个位
 H_KEY BIT P3.4 ;时调整键
 M_KEY BIT P3.5 ;分调整键
 SHAN BIT 0 ;秒点闪烁
 LEDBUS EQU P1 ;显示数据总线
 SECOND  EQU 30H ;秒寄存器
 MINUTE  EQU  31H ;分寄存器
 HOUR  EQU  32H ;时寄存器
 TIM_1 EQU 33H ;定时器0中断次数
 TIM_2 EQU 34H ;定时器0中断次数
;********************************
 ORG  0000H  ;程序开始
 LJMP  INIT  
 ORG  000BH  ;定时器0中断入口地址  
 LJMP  TIMER0
 ORG  0030H  ;程序从30H开始
;********************************
; 单片机初始化
INIT: MOV  SECOND, #0 ;秒置0
 MOV  MINUTE, #0 ;分置0
 MOV  HOUR,  #0 ;开机后显示0点
 MOV  TIM_1,  #10 ;中断10次为0.5秒
 MOV  TIM_2,  #2 ;0.5*2=1秒
 MOV  SP,  #60H ;堆栈指针指向60H
 MOV  TMOD,  #01H ;定时器0为模式1(16位)
 MOV  TH0,  #03CH
 MOV  TL0,  #0B0H ;50毫秒初值(晶振12M)
 SETB ET0  ;定时器0中断允许
 SETB  TR0  ;启动定时器0
 SETB EA  ;开总中断
;********************************
; 主程序
MAIN: JNB  H_KEY,  HT ;时调整键按下转到HT
 JNB  M_KEY,  MT ;分调整键按下转到MT
 ACALL  DISP  ;调用显示子程序
 AJMP  MAIN  ;转LOOP继续检测按键状态
;********************************
; 时间调整
;-----  分调整  ----------------- 
MT: ACALL  DISP  ;调用显示子程序
 JNB  M_KEY,  MT ;判断按键是否松开
 INC  MINUTE  ;分加一
 MOV  A,  MINUTE 
 CJNE  A,#60,  MAIN ;判断分是否加到60
 MOV  MINUTE, #0 ;分到60变为0
 MOV SECOND, #0 ;秒置0
 AJMP  MAIN
;-----  时调整  -----------------
HT: ACALL  DISP  ;调用显示子程序
 JNB  H_KEY,  HT ;判断按键是否松开
 INC  HOUR  ;时加1
 MOV  A,  HOUR
 CJNE  A,#24,  MAIN
 MOV  HOUR,  #0 ;判断时是否到24,时到24变0
 AJMP  MAIN
;********************************
; 显示子程序
DISP: MOV  DPTR,  #LEDTAB ;数码管段码表首地址送DPTR 
 MOV  A,  MINUTE  ;分放入ACC
 MOV  B,  #10 ;B放入10
 DIV  AB  ;A/B,商在A余数在B
 MOVC A,  @A+DPTR ;查表取分十位段码 
 MOV  LEDBUS, A ;段码送LEDBUS口显示
 MOV C, SHAN
 MOV MIAO, C ;秒点闪烁
 CLR  MIN_S  ;打开分十位显示
 ACALL  D1MS  ;延时1毫秒
 SETB  MIN_S  ;关闭分十位显示
 MOV  A,  B
 MOVC  A,  @A+DPTR ;查表取分个位段码
 MOV  LEDBUS, A
 MOV C, SHAN
 MOV MIAO, C ;秒点闪烁
 CLR  MIN_G  ;打开分个位显示
 ACALL  D1MS  ;延时1毫秒
 SETB  MIN_G  ;关闭分十位显示
 MOV  A,  HOUR 
 MOV  B,  #10
 DIV  AB  ;拆分小时的十位和个位
 JZ DISP0  ;十位为0不显示十位
 MOVC  A,  @A+DPTR
 MOV  LEDBUS, A
 CLR  HOU_S  ;打开时十位显示
DISP0: ACALL  D1MS  
 SETB  HOU_S  ;关闭时十位显示
 MOV  A,  B
 MOVC  A,  @A+DPTR
 MOV LEDBUS, A 
 CLR  HOU_G  ;打开时个位显示
 ACALL  D1MS
 SETB  HOU_G  ;关闭时个位显示
 RET
;********************************
; 定时器0中断服务程序
TIMER0: MOV  A,  #0B1H ;定时器0中断服务子程序
 ADD  A,  TL0 ;同步修正(参考本人的<如何是自制的单片机电子钟走时精准>)
 MOV  TL0,  A
 MOV  TH0,  #03CH ;重装定时器0初值
 PUSH  ACC  ;入栈保护ACC和PSW  
 PUSH  PSW  
 DJNZ  TIM_1,  RETI_1
 MOV  TIM_1,  #10 ;中断10次为0.5秒
 CPL  SHAN  ;取反闪烁位
 DJNZ  TIM_2,  RETI_1
 MOV  TIM_2,  #2 ;1秒时间到

 INC  SECOND  ;秒加1
 MOV  A,  SECOND
 CJNE  A,#60,  RETI_1
 MOV  SECOND, #0 ;秒到60变0

 INC  MINUTE  ;分加1
 MOV  A,  MINUTE
 CJNE  A,#60,  RETI_1 
 MOV  MINUTE, #0 ;分到60变0

 INC  HOUR  ;时加1
 MOV  A,  HOUR
 CJNE  A,#24,  RETI_1
 MOV  HOUR,  #0 ;时到24变0 
RETI_1: POP  PSW  ;出栈
 POP  ACC
 RETI
;******************************** 
; 延时子程序     
D1MS: MOV  R7,  #2 ;延时1毫秒子程序
D_1: MOV  R6,  #250 ;延时时间估算250*2*2=1000微秒=1毫秒
 DJNZ  R6,  $
 DJNZ  R7,  D_1
 RET
;********************************
; 数码管段码表 
LEDTAB: DB  14H,0D7H,4CH,45H,87H
  ; 0   1    2  3   4
 DB 25H,024H,57H,04H,05H
  ; 5   6    7  8   9
 END 


 

电子钟.part01.rar (100 KB, 下载次数: 1023)
电子钟.part02.rar (100 KB, 下载次数: 898)
电子钟.part03.rar (100 KB, 下载次数: 823)
电子钟.part04.rar (100 KB, 下载次数: 799)
电子钟.part05.rar (100 KB, 下载次数: 819)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:18723 发表于 2009-11-28 18:02 | 只看该作者

文件六 在这里 我联系作者给大家补上了

电子钟.part06.rar (39.82 KB, 下载次数: 381)

回复

使用道具 举报

板凳
ID:18843 发表于 2009-11-29 22:04 | 只看该作者
呵呵呵!感谢呀
回复

使用道具 举报

地板
ID:19617 发表于 2009-12-4 00:38 | 只看该作者

谢谢啊,楼主

 

回复

使用道具 举报

5#
ID:20037 发表于 2009-12-14 09:34 | 只看该作者
谢谢楼主
回复

使用道具 举报

6#
ID:20056 发表于 2009-12-14 17:17 | 只看该作者

我怎么用不起来,是不是需要PART6

回复

使用道具 举报

7#
ID:18699 发表于 2009-12-15 15:27 | 只看该作者

先看一下、、、、

回复

使用道具 举报

8#
ID:20106 发表于 2009-12-15 20:53 | 只看该作者
PART 6?少一个包
回复

使用道具 举报

9#
ID:20047 发表于 2009-12-16 11:51 | 只看该作者

很好

呵呵谢谢

 

回复

使用道具 举报

10#
ID:20454 发表于 2009-12-25 11:30 | 只看该作者
少了一个包哦哦
回复

使用道具 举报

11#
ID:20559 发表于 2009-12-30 17:18 | 只看该作者
kanyikan
回复

使用道具 举报

12#
ID:20692 发表于 2010-1-2 15:56 | 只看该作者
学习了,谢谢楼主
回复

使用道具 举报

13#
ID:21009 发表于 2010-1-12 11:46 | 只看该作者

可惜是汇编语言不是C语言,不过还是要谢谢版主辛勤劳作。

回复

使用道具 举报

14#
ID:21122 发表于 2010-1-14 13:46 | 只看该作者

少一个包呀~~~楼主辛苦罗

回复

使用道具 举报

15#
ID:21697 发表于 2010-2-17 13:53 | 只看该作者

少了我不要啊,谢谢

回复

使用道具 举报

16#
ID:21691 发表于 2010-2-17 20:42 | 只看该作者

6在哪里

 

回复

使用道具 举报

17#
ID:21767 发表于 2010-2-24 02:01 | 只看该作者
very good
回复

使用道具 举报

18#
ID:18004 发表于 2010-3-5 17:19 | 只看该作者
  谢谢!
回复

使用道具 举报

19#
ID:21518 发表于 2010-3-24 10:56 | 只看该作者

多谢!!

回复

使用道具 举报

20#
ID:20805 发表于 2010-3-27 10:04 | 只看该作者
正在试验了~~~~
回复

使用道具 举报

21#
ID:19914 发表于 2010-4-11 07:03 | 只看该作者
学习参考!
回复

使用道具 举报

22#
ID:23004 发表于 2010-4-24 11:27 | 只看该作者
真是汗呀!!咋可以不把全部发完呢?真是吊人胃口
回复

使用道具 举报

23#
ID:23338 发表于 2010-4-24 22:31 | 只看该作者
x想学习!
回复

使用道具 举报

24#
ID:23632 发表于 2010-5-7 12:09 | 只看该作者
感谢楼主,希望能向您求教。
回复

使用道具 举报

25#
ID:22650 发表于 2010-6-21 15:10 | 只看该作者
支持下!!!
回复

使用道具 举报

26#
ID:4089 发表于 2010-6-21 15:57 | 只看该作者
谢谢啦!!!!
回复

使用道具 举报

27#
ID:24515 发表于 2010-6-21 21:22 | 只看该作者
6呢?楼主为什么不上传?
回复

使用道具 举报

28#
ID:17294 发表于 2010-6-29 22:52 | 只看该作者
读汇编真痛苦啊
回复

使用道具 举报

29#
ID:25288 发表于 2010-7-27 14:20 | 只看该作者
]超简单电子钟程序 C语言+汇编+原理图+学习心得
回复

使用道具 举报

30#
ID:26618 发表于 2010-10-30 10:41 | 只看该作者
谢谢,呵呵
回复

使用道具 举报

31#
ID:27482 发表于 2010-12-23 19:24 | 只看该作者
 

谢谢啊,楼主

!!!!!!!!!
回复

使用道具 举报

32#
ID:27078 发表于 2011-6-4 13:18 | 只看该作者

谢谢!学学学习哦

 

回复

使用道具 举报

33#
ID:29773 发表于 2011-7-27 14:03 | 只看该作者
谢谢啦!!!!
回复

使用道具 举报

34#
ID:30437 发表于 2011-8-17 14:25 | 只看该作者
好……正要这个…… 
回复

使用道具 举报

35#
ID:30552 发表于 2011-8-20 11:49 | 只看该作者
好东东,谢谢!
回复

使用道具 举报

36#
ID:17012 发表于 2011-9-16 14:51 | 只看该作者
好东东,谢谢!
回复

使用道具 举报

37#
ID:40848 发表于 2012-5-25 19:17 | 只看该作者

有仿真图吗

回复

使用道具 举报

38#
ID:40910 发表于 2012-5-27 00:40 | 只看该作者
支持,多谢多谢!
回复

使用道具 举报

39#
ID:41067 发表于 2012-5-30 11:29 | 只看该作者
顶起…………
回复

使用道具 举报

40#
ID:34392 发表于 2012-6-1 14:07 | 只看该作者

不错 板子看起来很漂亮

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表