新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)控制時(shí)鐘顯示源程序

單片機(jī)控制時(shí)鐘顯示源程序

作者: 時(shí)間:2012-10-31 來(lái)源:網(wǎng)絡(luò) 收藏

這是我在大學(xué)的時(shí)候編的. 記得當(dāng)時(shí)我們開(kāi)發(fā)小組從下午5點(diǎn)調(diào)試到11點(diǎn)多才成功, 最有成就感的一天!

;=======================================
; 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 ;定義秒個(gè)位
Second_1 EQU 41H ;定義秒十位
LED2 EQU 42H ;
Minute_0 EQU 43H ;定義分個(gè)位
Minute_1 EQU 44H ;定義分十位
LED5 EQU 45H
Hour_0 EQU 46H ;定義小時(shí)個(gè)位
Hour_1 EQU 47H ;定義小時(shí)十位
SECOND EQU 48H ;定義秒
MINUTE EQU 49H ;定義分
HOUR EQU 50H ;定義小時(shí)

ORG 0000H
AJMP MAIN
ORG 000BH
AJMP INT_CLOCK ;中斷入口
ORG 0100H
;============主程序開(kāi)始=======================
MAIN:
MOV R7,#00H ;賦初值
MOV SECOND, #00H ;賦初值
MOV MINUTE, #00H ;賦初值
MOV HOUR, #00H ;賦初值
ACALL Separate ;拆分子程序
ACALL DISPLAY ;顯示子程序
;----------------------------
MOV TMOD,#01H ;設(shè)定時(shí)器0為定時(shí)方式1(16位)
MOV TH0, #0DBH ;定時(shí)初值高8位
MOV TL0, #0F0H ;定時(shí)初值低8位
SETB EA ;開(kāi)總中斷允許
SETB ET0 ;開(kāi)定時(shí)器0允許中斷
SETB TR0 ;啟動(dòng)定時(shí)器
AJMP $

;================中斷服務(wù)子程序=====================
INT_CLOCK:
MOV TH0, #0DBH ;定時(shí)初值高8位
MOV TL0, #0F0H ;定時(shí)初值低8位
INC R7
CJNE R7,#100, EXIT ;每次中斷時(shí)間是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 ;小時(shí)1
MOV A,HOUR
CJNE A,#24, LP
MOV HOUR, #00H ;小時(shí)清0
LP: ACALL Separate ;拆分子程序
ACALL DISPLAY ;顯示子程序
; ACALL DELAY_1* ;延時(shí)約一秒
**IT: RETI
;===主程序結(jié)束===


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉