?? 溫度值處理模塊.txt
字號:
;***********************************************************************
;工作內(nèi)存及常數(shù)定義
;***********************************************************************
DATAL DATA 26H
DATAH DATA 27H
DATAA DATA 70H
DATAB DATA 71H
DATAC DATA 72H
DATAD DATA 73H
TEMPHC DATA 28H
TEMPLC DATA 29H
DATAHEAD EQU 36H
;***********************************************************************
;引腳定義
;***********************************************************************
TEMPDIN BIT P3.0
SDDIN BIT P3.1
SDCS BIT P3.2
SDCLOCK BIT P3.3
TSDISTING BIT P3.4
;***********************************************************************
;中斷向量區(qū)
;***********************************************************************
ORG 0000H
LJMP START
;***********************************************************************
;系統(tǒng)初始化
;***********************************************************************
ORG 100H
START: SETB TSDISTING
MOV R0,#20H
MOV R1,#60H
CLSMEM: MOV @R0,#00H
INC R0
DJNZ R1,CLSMEM
;***********************************************************************
;主程序
;***********************************************************************
MAIN:
LCALL PROCESSTEMP
LCALL DISPBCD
LCALL DISPLAY
LJMP MAIN
NOP
NOP
NOP
LJMP START
;***********************************************************
PROCESSTEMP: MOV DATAH,#08H
MOV DATAL,#91H
MOV A,DATAH
ANL A,#80H
JZ TEMPC11
CLR C
MOV A,DATAL
CPL A
ADD A,#01H
MOV DATAL,A
MOV A,DATAH
CPL A
ADDC A,#00H
MOV DATAH,A
MOV TEMPHC,#0b0H
SJMP TEMPC11
TEMPC11: MOV A,TEMPHC
SWAP A
MOV TEMPHC,A
MOV A,DATAL
ANL A,#0FH
MOV DPTR,#TEMPDOTTAB
MOVC A,@A+DPTR
MOV TEMPLC,A
MOV A,DATAL
ANL A,#0F0H
SWAP A
MOV DATAL,A
MOV A,DATAH
ANL A,#07H
SWAP A
ORL A,DATAL
LCALL HEX2BCD1
MOV DATAL,A
ANL A,#0F0H
ORL A,TEMPHC
SWAP A
MOV TEMPHC,A
MOV A,DATAL
ANL A,#0FH
SWAP A
ORL A,TEMPLC
MOV TEMPLC,A
MOV A,R7
JZ TEMPC12
ANL A,#0FH
SWAP A
MOV R7,A
MOV A,TEMPHC
ANL A,#0FH
ORL A,R7
MOV TEMPHC,A
TEMPC12: RET
;***********************************************************************
;小數(shù)部分碼表
;***********************************************************************
TEMPDOTTAB: DB 00H,01H,01H,02H,03H,03H,04H,04H,05H,06H
DB 06H,07H,08H,08H,09H,09H
;***********************************************************************
;顯示區(qū)BCD碼溫度值刷新子程序
;***********************************************************************
DISPBCD: MOV A,TEMPLC
ANL A,#0FH
MOV 70H,A
MOV A,TEMPLC
SWAP A
ANL A,#0FH
MOV 71H,A
MOV A,TEMPHC
ANL A,#0FH
MOV 72H,A
MOV A,TEMPHC
SWAP A
ANL A,#0FH
MOV 73H,A
RET
;***********************************************************************
DISPLAY: CPL TSDISTING
MOV R1,#70H
MOV R5,#0FEH
PLAY: MOV P0,#0FFH
MOV A,R5
MOV P2,A
MOV A,@R1
MOV DPTR,#TAB
MOVC A,@A+DPTR
MOV P0,A
MOV A,R5
JB ACC.1,LOOP5
CLR P0.7
LOOP5: LCALL DL1MS
INC R1
MOV A,R5
JNB ACC.3,ENDOUT
RL A
MOV R5,A
AJMP PLAY
ENDOUT: RET
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H,0BFH
DL1MS: MOV R6,#14H
DL1: DJNZ R7,DL2
DL2: DJNZ R6,DL1
RET
;***********************************************************************
;單字節(jié)十六進制轉(zhuǎn)換為BCD
;***********************************************************************
HEX2BCD1: MOV B,#64H
DIV AB
MOV R7,A
MOV A,#0AH
XCH A,B
DIV AB
SWAP A
ORL A,B
RET
;***********************************************************************
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -