📄 12887的初始化程序——89c51.txt
字号:
12887的初始化程序——89C51
12887的初始化程序:
XSDATA1 DATA 30H
XSDATA2 DATA 31H ;初始定义
ORG 0000H
LJMP START
ORG 0003H
LJMP INT0
ORG 0100H
START: MOV P1,#0FFH
MOV P2,#1FH
MOV P3,#0FFH
MOV R3,#200
MOV XSDATA1,#89
MOV XSDATA2,#51 ;开始显示8951,说明显示、初始正确
BEGINK:
LCALL DIS
DJNZ R3,BEGINK
LCALL TIME
LJMP MAIN
MAIN: LCALL DIS
AJMP MAIN
TIME: MOV DPTR,#000AH ;停止12887计时
MOV A,#70H
MOVX @DPTR,A
MOV DPTR,#000BH ;禁止芯片内部更新周期
MOV A,#0A6H
MOVX @DPTR,A
MOV DPTR,#0000H ;秒时标单元及报警单元
MOV A,#06H
MOVX @DPTR,A
INC DPTR
MOV A,#0FFH
MOVX @DPTR,A
INC DPTR ;分时标单元及报警单元
MOV A,#34H
MOVX @DPTR,A
INC DPTR
MOV A,#0FFH
MOVX @DPTR,A
INC DPTR ;时时标单元及报警单元
MOV A,#09H
MOVX @DPTR,A
INC DPTR
MOV A,#0FFH
MOVX @DPTR,A
INC DPTR ;星期时标单元
MOV A,#05H
MOVX @DPTR,A
INC DPTR ;日时标单元
MOV A,#1AH
MOVX @DPTR,A
INC DPTR ;月时标单元
MOV A,#03H
MOVX @DPTR,A
INC DPTR ;年时标单元
MOV A,#04H
MOVX @DPTR,A
MOV DPTR,#000EH ;年度的高位,解决千年问题
MOV A,#14H
MOVX @DPTR,A
MOV DPTR,#000AH ;初始化寄存器单元A
MOV A,#20H
MOVX @DPTR,A
MOV DPTR,#000CH ;清状态寄存器C
MOVX A,@DPTR
MOV DPTR,#000DH ;
MOVX A,@DPTR
MOV DPTR,#000BH ;初始化寄存器单元B
MOV A,#26H
MOVX @DPTR,A
MOV IE,#81H ;8951开中断
RET
XIN: MOV DPTR,#000AH ;更新周期判断
MOVX A,@DPTR
JBC ACC.7,XIN
SETB 20H
RET
INT0: CPL P2.0
LCALL XIN
JB 20H,READ ;中断服务程序
AJMP INT0
READ: MOV DPTR,#0002H ;分单元
MOVX A,@DPTR
MOV XSDATA2,A
INC DPTR
INC DPTR
;时单元
MOVX A,@DPTR
MOV XSDATA1,A
MOV DPTR,#000CH ;清状态寄存器C
MOVX A,@DPTR
RETI
RET
DIS: MOV A,XSDATA2 ;显示子程序,将数据送显示单元,再调用
LCALL MBCD1 ;数据处理子程序
MOV A,XSDATA1
LCALL MBCD2
DIS1:
MOV DPTR,#TAB
MOV R0,#5FH
SETB P2.4
SETB P2.3
SETB P2.2
CLR P2.1
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
INC R0
ACALL DL1MS
SETB P2.4
SETB P2.3
SETB P2.1
CLR P2.2
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
INC R0
ACALL DL1MS
SETB P2.4
SETB P2.1
SETB P2.2
CLR P2.3
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
INC R0
ACALL DL1MS
SETB P2.1
SETB P2.3
SETB P2.2
CLR P2.4
MOV A,@R0
MOVC A,@A+DPTR
MOV P1,A
INC R0
ACALL DL1MS
RET
TAB: DB 21H,77H,0A2H,62H,74H,68H,28H,73H
DB 20H,70H
MBCD1: MOV B,#0AH ;数据处理子程序
DIV AB
MOV 60H,A
MOV 5FH,B
RET
MBCD2: MOV B,#0AH
DIV AB
MOV 62H,A
MOV 61H,B
RET
DL1MS: MOV R2,#0AH ;延时子程序
DL2: MOV R4,#019H
DL3: DJNZ R4,DL3
DJNZ R2,DL2
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -