📄 wds12887.#1
字号:
;参考程序A.汇编程序WDS12887.ASM. 程序功能:读取时钟值,并将时,分,秒显示在
;数码管上. 可以实现时钟初始化(授时)操作.
;运行初始化程序DS12INIT之前,要先用当前时间值(年、月、日、时、分、秒)改
;写DS12887的时间寄存器(0000H~0009H)内的数据,见表XX。要先修改程序中的
;初始化子程序DS12INIT中的当前时间值,并在主程序WDS12887.ASM中将< ; Lcall
;DS12INIT>语句的<;>取消(即运行初始化子程序DS12INIT),主程序即被修改成为时
;钟初始化程序.完成初始化后,再将< ; Lcall DS12INIT>语句的<;>加上(即注销初
;始化子程序),即可恢复主程序WDS12887.ASM.再次运行主程序,就可以实现实时时钟
;在六位数码管上显示.
;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 ;关闭看门狗
MOV WDTCN,#0ADH
MOV 0E3H,#40H; /*使能交叉开关,弱上拉*/
MOV 0B5H,#0C0H ;/*设置P7为推拉模式,P4,P5,P6为漏极开路
MOV 0A3H,#2CH ;/*EMIF工作在地址/数据复用方式,只用外部存储器,
;ALE高/低脉宽占1个SYSCLK周期*/
MOV 0A1H,#6DH ;/*地址建立/保持时间占1个SYSCLK周期,
;/WR和/RD占12个SYSCLK周期*/
ACALL C8255 ;8255初始化
; Lcall DS12INIT ; DS12887初始化,授时:设定初始值:年,月,日,时,分,秒
MAIN: Lcall DS12T ;从DS12887读出当前时钟值:年,月,日,时,分,秒
LCALL EXCHANG ;变换数据存放格式
LCALL DISPLED ;用六位数码管显示时,分,秒
AJMP MAIN
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -