?? tls6.asm
字號:
;*****鐵路時鐘
; P0M1 DATA 84H ;口0的設置字節
; P0M2 DATA 85H ;
; P1M1 DATA 91H ;口1的設置字節
; P1M2 DATA 92H ;
; WDRST DATA 0A6H ;片內狗的定時設置字節
SDA EQU P1.2 ;
SCK EQU P1.3 ;
ACK BIT 00H ;
;
ORG 0000H ;
AJMP AA ;
;
ORG 000BH ;
AJMP TO ;10毫秒定時中斷
;
ORG 0023H ;****串行通信矢量
LJMP JS ;
;
ORG 0030H ;
DB 88H,0DBH,94H,92H,0C3H ;輸出為高有效0,1,2,3,4
DB 0A2H,0A0H,9BH,80H,83H ; 5,6,7,8,9
; ;
ORG 0040H ;
AA: MOV 0A6H, #0E1H ;喂狗
MOV 0A6H, #1EH ;
MOV 84H, #01H ;置P0口,強上拉
MOV 85H, #0FEH ;
MOV 91H, #0E0H ;
MOV 92H, #0CH ;
MOV P0, #0FFH ;
MOV P1, #0FFH ;
MOV R0, #20H ;
MOV R7, #50H ;
MOV A, #00H ;
AA1: MOV @R0, A ;
INC R0 ;
DJNZ R7, AA1 ;
MOV SP, #70H ;
MOV TH0, #070H ;10毫秒定時(11.0596M時鐘)
MOV TL0, #00H ;
MOV TMOD, #21H ;
MOV SCON, #50H ;
MOV TH1, #0FAH ;2400bit
MOV TL1, #0FAH ;
MOV 0A8H, #92H ; MOV IE, #92H ;
MOV 0B8H, #02H ; MOV IP, #02H ;
;
SETB EA ;允許中斷; SETB ET0 ;允許定時器0中斷
SETB TR0 ;啟動定時器0
SETB ES ;允許接收
CLR RI ;清接收標志
SETB ET0 ;
SETB TR1 ;啟動定時器1
;
MOV P0, #7FH ;
MOV P1, #0FFH ;
CLR P0.7 ;
;
MOV 0A7H, #07H ;2.1秒片內狗啟動
MOV 4FH, #19H ;
SETB P0.4 ;
SETB P1.0 ;
SETB P1.1 ;
SETB 22H.1 ;置寫保護標志
LCALL CW ;
;
LCALL READ ;
;
LCALL CW ;
;
LCALL READ ;
MOV A, 45H ;
ANL A, #3FH ;
ORL A, #80H ;
MOV B, A ;
LCALL SZCS ;
;
AAA: SETB ES ;
CLR RI ;
JB P0.0, AAA1 ;***向左鍵
LCALL YSQ ;
JB P0.0, AAA1 ;
JB 20H.1, AAA11 ;
SETB 20H.1 ;
JB 20H.5, AAA02 ;
SETB 20H.5 ;置時鐘修改標志
AAA02: MOV 2EH, #09H ;修改操作延時
SETB 21H.1 ;
MOV A, #11H ;
CLR C ;
SUBB A, 2FH ;
JNC AAA03 ;
MOV 2FH, #11H ;
AJMP AAAED ;
AAA03: INC 2FH ;
AJMP AAAED ;
;
AAA1: CLR 20H.1 ;清按鍵標志
AAA11: JB P1.7, AAA2 ;***加1鍵
LCALL YSQ ;
JB P1.7, AAA2 ;
JB 20H.2, AAA21 ;
SETB 20H.2 ;
JB 20H.5, AAA12 ;
AJMP AAAED ;
AAA12: MOV 2EH, #09H ;
LCALL UCL ;
AJMP AAAED ;
;
AAA2: CLR 20H.2 ;清按鍵標志
AAA21: JB P1.6, AAA3 ;***減1鍵
LCALL YSQ ;
JB P1.6, AAA3 ;
JB 20H.3, AAA31 ;
SETB 20H.3 ;
JB 20H.5, AAA22 ;
AJMP AAAED ;
AAA22: MOV 2EH, #09H ;
LCALL DCL ;
AAA23: AJMP AAAED ;
;
AAA3: CLR 20H.3 ;清按鍵標志
AAA31: JB P1.5, AAA4 ;***向右鍵
LCALL YSQ ;
JB P1.5, AAA4 ;
JB 20H.4, AAA23 ;
SETB 20H.4 ;
JB 20H.5, AAA32 ;
SETB 20H.5 ;
AAA32: MOV 2EH, #09H ;
SETB 21H.1 ;
MOV A, 2FH ;
CLR C ;
SUBB A, #02H ;
JNC AAA33 ;
MOV 2FH, #01H ;
AJMP AAAED ;
AAA33: DEC 2FH ;
AJMP AAAED ;
;
AAA500: LCALL XAQ ;
AJMP AAA6 ;
;
AAA501: MOV 49H, B ;
AJMP AAA500 ;
;
AAA502: MOV 48H, B ;
AJMP AAA500 ;
;
AAA4: CLR 20H.4 ;清按鍵標志
;
AAA5: JNB 21H.5, AAA6 ;
JB 21H.6, AAA6 ;
SETB 21H.6 ;置安全操作標志
INC 49H ;加個位
MOV A, 49H ;
ANL A, #0FH ;
MOV B, A ;保存個位
CLR C ;
SUBB A, #0AH ;
JC AAA500 ;保存數據
MOV A, 49H ;
ANL A, #0F0H ;
ADD A, #10H ;
MOV B, A ;
CLR C ;
SUBB A, #0A0H ;
JC AAA501 ;保存十位
MOV 49H, #00H ;
INC 48H ;
MOV A, 48H ;
ANL A, #0FH ;
CLR C ;
SUBB A, #0AH ;
JC AAA500 ;保存百位
MOV A, 48H ;
ANL A, #0F0H ;
ADD A, #10H ;
MOV B, A ;
CLR C ;
SUBB A, #0A0H ;
JC AAA502 ;
MOV 48H, #00H ;
AJMP AAA500 ;
;
AAA6: JNB 22H.2, AAAED ;
JB 22H.3, AAAED ;
SETB 22H.3 ;
CLR C ;
MOV A, 4CH ;
JZ AAA65 ;
;
AAA60: MOV 28H, 4EH ;保存當前溫度數據;
LCALL PMWD ;
AAA65: CLR 22H.2 ;清溫度變化標志
AAAED: AJMP AAA ;主程序結束,
;
PMWD: CLR C ;
MOV A, 4EH ;
ANL A, #0F0H ;
SWAP A ;
MOV B, #0AH ;
MUL AB ;
MOV B, A ;
MOV A, 4EH ;
ANL A, #0FH ;
ADD A, B ;
MOV 29H, A ;29H保存溫度轉換值
CLR C ;
MOV A, 29H ;
;
CLR C ;
SUBB A, #20 ;-21度基準值
JC PMWDD ;
CLR C ;
MOV B, #2 ;
DIV AB ;
JZ PMWDE1 ;
CLR C ;
MOV B, A ;
MOV A, 50H
SUBB A, B ;
AJMP PMWDCL ;
;
PMWDD: CLR C ;
MOV A, #20 ;
SUBB A, 29H ;
MOV B, #2 ;
DIV AB ;
JZ PMWDE1 ;
MOV B, A ;
MOV A, 50H ;
SUBB A, B ;
AJMP PMWDCL ;
;
PMWDE1: MOV 4CH, 50H ;
AJMP PMWDE2 ; ;
;
PMWDCL: MOV 4CH, A ;
PMWDE2: LCALL XPM ;
PMWDED: RET ;
;
CW: SETB P1.4 ;
LCALL INT ;
MOV A, #0CCH ;
LCALL FSWD ;
MOV A, #44H ;
LCALL FSWD ;
LCALL YS500 ;
lcall ys60 ;
LCALL YS60 ;
lcall ys60 ;
LCALL INT ;
MOV A, #0CCH ;
LCALL FSWD ;
MOV A, #00BEH ;
LCALL FSWD ;
LCALL RDWD ;
MOV A, 61H ;
SWAP A ;
ANL A, #0FH ;
MOV B, A ;
MOV A, 60H ;
SWAP A ;
ORL A, B ;
MOV B, #0AH ;
CLR C ;
DIV AB ;
SWAP A ;
ORL A, B ;
MOV 4EH, A ;
RET ;
;
UCL: LCALL WG1 ;****加處理
MOV A, 2FH ;
CJNE A, #01H, UCL0A ;安全個位
MOV A, 49H ;
ANL A, #0FH ;
INC A ;
CLR C ;
SUBB A, #0AH ;
JC UCL01 ;
MOV A, 49H ;
ANL A, #0F0H ;個位=0
MOV 49H, A ;
AJMP UCL02 ;
;
UCL01: INC 49H ;個位+1
UCL02: AJMP UCLED1 ;
;
UCL0A: CJNE A, #02H, UCL2 ;安全十位
MOV A, 49H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
SUBB A, #0A0H ;
JC UCL0A1 ;
MOV A, 49H ;
ANL A, #0FH ;十位=0
MOV 49H, A ;
AJMP UCL0A2 ;
;
UCL0A1: MOV A, 49H ;
CLR C ;
ADD A, #10H ;十位+1(10)
MOV 49H, A ;
UCL0A2: AJMP UCLED1 ;
;
UCL2: CJNE A, #03H, UCL3 ;安全百位
MOV A, 48H ;
ANL A, #0FH ;
INC A ;
CLR C ;
SUBB A, #0AH ;
JC UCL21 ;
MOV A, 48H ;
ANL A, #0F0H ;百位=0
MOV 48H, A ;
AJMP UCL02 ;
;
UCL21: INC 48H ;百位+1
UCL22: AJMP UCLED1 ;
;
UCL3: CJNE A, #04H, UCL4 ;
MOV A, 48H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
SUBB A, #0A0H ;
JC UCL31 ;
MOV A, 48H ;
ANL A, #0FH ;十位=0
MOV 48H, A ;
AJMP UCL32 ;
;
UCL31: MOV A, 48H ;
CLR C ;
ADD A, #10H ;十位+1(10)
MOV 48H, A ;
UCL32: AJMP UCLED1 ;
;
UCL4: CJNE A, #05H, UCL5 ;秒個位
MOV A, 47H ;
ANL A, #0FH ;
INC A ;秒個位+1
CLR C ;
MOV B, A ;
SUBB A, #0AH ;>9?
JC UCL41 ;
MOV B, #00H ;>9,=0
;
UCL41: MOV A, 47H ;
ANL A, #0F0H ;
ORL A, B ;
MOV 2DH, #30H ;
MOV 2CH, A ;
MOV 47H, A ;
LJMP UCLED ;
;
UCL5: CJNE A, #06H, UCL6 ;秒十位
MOV A, 47H ;
ANL A, #0F0H ;
ADD A, #10H ;秒十位+10
CLR C ;
MOV B, A ;
SUBB A, #60H ;>6*?
JC UCL51 ;
MOV B, #00H ;>60,=0*
;
UCL51: MOV A, 47H ;
ANL A, #0FH ;
ORL A, B ;
MOV 2DH, #30H ;
MOV 2CH, A ;
MOV 47H, A ;
LJMP UCLED ;
;
UCL6: CJNE A, #07H, UCL7 ;分個位
MOV A, 46H ;
ANL A, #0FH ;
INC A ;
CLR C ;
MOV B, A ;
SUBB A, #0AH ;>9?
JC UCL61 ;
MOV B, #00H ;
;
UCL61: MOV A, 46H ;
ANL A, #0F0H ;
ORL A, B ;
MOV 2DH, #31H ;
MOV 2CH, A ;
MOV 46H, A ;
LJMP UCLED ;
;
UCL7: CJNE A, #08H, UCL8 ;分十位
MOV A, 46H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
MOV B, A ;
SUBB A, #60H ;
JC UCL71 ;
MOV B, #00H ;
;
UCL71: MOV A, 46H ;
ANL A, #0FH ;
ORL A, B ;
MOV 2DH, #31H ;
MOV 2CH, A ;
MOV 46H, A ;
LJMP UCLED ;
;
UCL8: CJNE A, #09H, UCL9 ;時個位
MOV A, 45H ;
ANL A, #0FH ;
INC A ;
CLR C ;
MOV B, A ;
SUBB A, #0AH ;
JC UCL81 ;
MOV B, #00H ;
;
UCL81: MOV A, 45H ;
ANL A, #0F0H ;
ORL A, B ;
MOV 2DH, #32H ;
MOV 2CH, A ;
MOV 45H, A ;
LJMP UCLED ;
;
UCL9: CJNE A, #0AH, UCLA ;時十位
MOV A, 45H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
MOV B, A ;
SUBB A, #0E0H ;
JC UCL91 ;
MOV B, #80H ;
;
UCL91: MOV A, 45H ;
ANL A, #0FH ;
ORL A, B ;
ORL A, #80H ;
MOV 2DH, #32H ;
MOV 2CH, A ;
MOV 45H, A ;
LJMP UCLED ;
;
UCLA: CJNE A, #0BH, UCLB ;星期+
MOV A, 41H ;
ANL A, #07H ;
INC A ;
CLR C ;
MOV B, A ;
SUBB A, #07H ;
JC UCLA1 ;
MOV B, #00H ;
;
UCLA1: MOV A, 41H ;
ANL A, #00H ;
ORL A, B ;
MOV 2DH, #36H ;
MOV 2CH, A ;
MOV 41H, A ;
LJMP UCLED ;
;
UCLB: CJNE A, #0CH, UCLC ;日個位+
MOV A, 44H ;
ANL A, #0FH ;
INC A ;
CLR C ;
MOV B, A ;
SUBB A, #0AH ;
JC UCLB1 ;
MOV B, #00H ;
;
UCLB1: MOV A, 44H ;
ANL A, #0F0H ;
ORL A, B ;
MOV 2DH, #33H ;
MOV 2CH, A ;
MOV 44H, A ; ;
LJMP UCLED ;
;
UCLC: CJNE A, #0DH, UCLD ;日十位
MOV A, 44H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
MOV B, A ;
SUBB A, #40H ;
JC UCLC1 ;
MOV B, #00H ;
;
UCLC1: MOV A, 44H ;
ANL A, #0FH ;
ORL A, B ;
MOV 2DH, #33H ;
MOV 2CH, A ;
MOV 44H, A ;
LJMP UCLED ;
;
UCLD: CJNE A, #0EH, UCLE ;月個位
MOV A, 43H ;
ANL A, #0FH ;
INC A ;
CLR C ;
MOV B, A ;
SUBB A, #0AH ;
JC UCLD1 ;
MOV B, #00H ;
;
UCLD1: MOV A, 43H ;
ANL A, #0F0H ;
ORL A, B ;
MOV 2DH, #34H ;
MOV 2CH, A ;
MOV 43H, A ;
LJMP UCLED ;
;
UCLE: CJNE A, #0FH, UCLF ;月十位
MOV A, 43H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
MOV B, A ;
SUBB A, #20H ;
JC UCLE1 ;
MOV B, #00H ;
;
UCLE1: MOV A, 43H ;
ANL A, #0FH ;
ORL A, B ;
MOV 2DH, #34H ;
MOV 2CH, A ;
MOV 43H, A ;
LJMP UCLED ;
;
UCLF: CJNE A, #10H, UCL10 ;年個位
MOV A, 42H ;
ANL A, #0FH ;
INC A ;
CLR C ;
MOV B, A ;
SUBB A, #0AH ;
JC UCLF1 ;
MOV B, #00H ;
;
UCLF1: MOV A, 42H ;
ANL A, #0F0H ;
ORL A, B ;
MOV 2DH, #35H ;
MOV 2CH, A ;
MOV 42H, A ;
LJMP UCLED ;
;
UCL10: CJNE A, #11H, UCLED2 ;年十位
MOV A, 42H ;
ANL A, #0F0H ;
ADD A, #10H ;
CLR C ;
MOV B, A ;
SUBB A, #0A0H ;
JC UCL101 ;
MOV B, #00H ;
;
UCL101: MOV A, 42H ;
ANL A, #0FH ;
ORL A, B ;
MOV 2DH, #35H ;
MOV 2CH, A ;
MOV 42H, A ;
LJMP UCLED ;
;
UCLED1: LCALL XAQG ;
AJMP UCLED2 ;
;
UCLED: LCALL XGX ;
NOP ;
UCLED2: LCALL XSCL ;
MOV 40H, #00h ;
MOV 4FH, #00H
CLR 21H.4
RET ;
;
DCL: ;****減處理
RET ;
;
XGX: MOV 0A6H, #0E1H ;喂狗
MOV 0A6H, #1EH ;
JB 21H.7, XGXDD ;
SETB 21H.7 ;
LCALL XSZT ;****修改寫
LCALL ST ;
MOV A, #0DEH ;
LCALL SJFS ;
LCALL CACK ;
JNB ACK, XGXED ;
MOV A, #00H ;
LCALL SJFS ;
LCALL CACK ;
MOV A, 2DH ;
LCALL SJFS ;
LCALL CACK ;
MOV A, 2CH ;
LCALL SJFS ;
LCALL CACK ;
XGXED: LCALL STOP ;
CLR 21H.7 ;
XGXDD: RET ;
;
INT: SETB P1.4 ;****1820初始化
NOP ;
CLR P1.4 ;
LCALL YS500 ;500US
SETB P1.4 ;
NOP ;
NOP ;
NOP ;
NOP ;
MOV R3, #25H ;
INT01: JNB P1.4, INTED ;
DJNZ R3, INT01 ;300US
AJMP INT02 ;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -