新闻中心

EEPW首页>嵌入式系统>设计应用> 单片机控制时钟显示源程序

单片机控制时钟显示源程序

作者: 时间:2012-10-31 来源:网络 收藏

这是我在大学的时候编的. 记得当时我们开发小组从下午5点调试到11点多才成功, 最有成就感的一天!

;=======================================
; Clock programe
; Create date: 2004_05_12
; First Modify: 2004_05_13
; First Modify: 2004_05_13
; Last Modify: 2004_05_20
; Author: Dengjingyue
;=======================================
SDA BIT P0.1 ;定义
SCL BIT P0.0 ;定义
Second_0 EQU 40H ;定义秒个位
Second_1 EQU 41H ;定义秒十位
LED2 EQU 42H ;
Minute_0 EQU 43H ;定义分个位
Minute_1 EQU 44H ;定义分十位
LED5 EQU 45H
Hour_0 EQU 46H ;定义小时个位
Hour_1 EQU 47H ;定义小时十位
SECOND EQU 48H ;定义秒
MINUTE EQU 49H ;定义分
HOUR EQU 50H ;定义小时

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP INT_CLOCK ;中断入口
ORG 0100H
;============主程序开始=======================
MAIN:
MOV R7,#00H ;赋初值
MOV SECOND, #00H ;赋初值
MOV MINUTE, #00H ;赋初值
MOV HOUR, #00H ;赋初值
ACALL Separate ;拆分子程序
ACALL DISPLAY ;显示子程序
;----------------------------
MOV TMOD,#01H ;设定时器0为定时方式1(16位)
MOV TH0, #0DBH ;定时初值高8位
MOV TL0, #0F0H ;定时初值低8位
SETB EA ;开总中断允许
SETB ET0 ;开定时器0允许中断
SETB TR0 ;启动定时器
AJMP $

;================中断服务子程序=====================
INT_CLOCK:
MOV TH0, #0DBH ;定时初值高8位
MOV TL0, #0F0H ;定时初值低8位
INC R7
CJNE R7,#100, EXIT ;每次中断时间是0.1秒, 100次是1秒.
MOV R7,#00 ;到1秒, R7清零
;-----------------------------------
INC SECOND ;秒加1
MOV A,SECOND
CJNE A,#60, LP
MOV SECOND, #00H ;秒清0
INC MINUTE ;分加1
MOV A,MINUTE
CJNE A,#60, LP
MOV MINUTE, #00H ;分清0
INC HOUR ;小时1
MOV A,HOUR
CJNE A,#24, LP
MOV HOUR, #00H ;小时清0
LP: ACALL Separate ;拆分子程序
ACALL DISPLAY ;显示子程序
; ACALL DELAY_1* ;延时约一秒
**IT: RETI
;===主程序结束===


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭