?? wds12887.#1
字號:
;參考程序A.匯編程序WDS12887.ASM. 程序功能:讀取時鐘值,并將時,分,秒顯示在
;數(shù)碼管上. 可以實現(xiàn)時鐘初始化(授時)操作.
;運行初始化程序DS12INIT之前,要先用當(dāng)前時間值(年、月、日、時、分、秒)改
;寫DS12887的時間寄存器(0000H~0009H)內(nèi)的數(shù)據(jù),見表XX。要先修改程序中的
;初始化子程序DS12INIT中的當(dāng)前時間值,并在主程序WDS12887.ASM中將< ; Lcall
;DS12INIT>語句的<;>取消(即運行初始化子程序DS12INIT),主程序即被修改成為時
;鐘初始化程序.完成初始化后,再將< ; Lcall DS12INIT>語句的<;>加上(即注銷初
;始化子程序),即可恢復(fù)主程序WDS12887.ASM.再次運行主程序,就可以實現(xiàn)實時時鐘
;在六位數(shù)碼管上顯示.
;WDS12887.ASM.
$INCLUDE (C8051F020.inc)
CS12887 EQU 8300H ;時鐘DS12887的端口地址
CS12887A EQU 830AH ;
CS12887B EQU 830BH
CS12887C EQU 830CH
PPA EQU 8000H ;8255的端口地址
PPB EQU 8001H
PPC EQU 8002H
CWR EQU 8003H
ORG 0
STAR: MOV WDTCN,#0DEH ;關(guān)閉看門狗
MOV WDTCN,#0ADH
MOV 0E3H,#40H; /*使能交叉開關(guān),弱上拉*/
MOV 0B5H,#0C0H ;/*設(shè)置P7為推拉模式,P4,P5,P6為漏極開路
MOV 0A3H,#2CH ;/*EMIF工作在地址/數(shù)據(jù)復(fù)用方式,只用外部存儲器,
;ALE高/低脈寬占1個SYSCLK周期*/
MOV 0A1H,#6DH ;/*地址建立/保持時間占1個SYSCLK周期,
;/WR和/RD占12個SYSCLK周期*/
ACALL C8255 ;8255初始化
; Lcall DS12INIT ; DS12887初始化,授時:設(shè)定初始值:年,月,日,時,分,秒
MAIN: Lcall DS12T ;從DS12887讀出當(dāng)前時鐘值:年,月,日,時,分,秒
LCALL EXCHANG ;變換數(shù)據(jù)存放格式
LCALL DISPLED ;用六位數(shù)碼管顯示時,分,秒
AJMP MAIN
end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -