?? dianji1.asm
字號(hào):
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
ADDR8279_1 EQU 0BFFFH
ADDR8279_2 EQU 0BFFEH
MOV DPTR,#ADDR8279_1
MOV A,#0D1H
MOVX @DPTR,A
WAIT:MOVX A,@DPTR
JB ACC.7,WAIT
MOV A,#00H
MOVX @DPTR,A
MOV A,#2CH
MOVX @DPTR,A
CLR 00H
CLR 01H
CHAXUN:LCALL SEACH
JBC 00H,MAIN1
SJMP CHAXUN
MAIN1:SETB IT1
SETB EA
SETB EX1
ADC0809:MOV DPTR,#8100H ;;ADC0809首址
MOVX @DPTR,A ;;啟動(dòng)AD轉(zhuǎn)換
HERE:SETB P1.0
JNB P1.0,SEVER1
SJMP HERE
SEVER1:MOVX A,@DPTR
MOV R3,A
MOV DPTR ,#8000H ;D/A口地址
MOVX @DPTR,A
MOV R2,#00H
MOV R7,#60H
MOV R6,#09H
LCALL MULD
MOV R7,#0FFH
LCALL DV31
MOV A,R4
MOV R6,A
MOV A,R5
MOV R7,A
LCALL HB2
MOV 35H,R5
MOV 34H,R4
ACALL TRANS
LCALL LED
LCALL SEACH
JBC 01H ,NEXT
AJMP ADC0809
NEXT:MOV DPTR,#8000H
MOV A,#00H
MOVX @DPTR,A
AJMP MAIN
TRANS: MOV R0,#35H
MOV R1,#30H
MOV R6,#02H
LAST:MOV A,@R0
ANL A,#0FH
MOV @R1,A
MOV A,@R0
ANL A,#0F0H
SWAP A
INC R1
MOV @R1,A
INC R1
DEC R0
DJNZ R6,LAST
RET
KEY:MOV DPTR ,#ADDR8279_1
MOV A,#40H
MOVX @DPTR,A
MOV DPTR,#ADDR8279_2
MOVX A,@DPTR
ANL A,#3FH
CJNE A,#0AH,KEY1
SETB 00H
AJMP RETUN
KEY1:CJNE A,#0BH,RETUN
SETB 01H
RETUN:RET
;;; (5) 標(biāo)號(hào): MULD 功能:雙字節(jié)二進(jìn)制無(wú)符號(hào)數(shù)乘法
;;入口條件:被乘數(shù)在R2、R3中,乘數(shù)在R6、R7中。
;;出口信息:乘積在R2、R3、R4、R5中。
;;;影響資源:PSW、A、B、R2~R7 堆棧需求: 2字節(jié)
MULD: MOV A,R3 ;;;計(jì)算R3乘R7
MOV B,R7
MUL AB
MOV R4,B ;; ;暫存部分積
MOV R5,A
MOV A,R3 ;; ;計(jì)算R3乘R6
MOV B,R6
MUL AB
ADD A,R4 ;;;;累加部分積
MOV R4,A
CLR A
ADDC A,B
MOV R3,A
MOV A,R2 ;;;;計(jì)算R2乘R7
MOV B,R7
MUL AB
ADD A,R4 ;;;;累加部分積
MOV R4,A
MOV A,R3
ADDC A,B
MOV R3,A
CLR A
RLC A
XCH A,R2 ;;;;計(jì)算R2乘R6
MOV B,R6
MUL AB
ADD A,R3 ;;;;累加部分積
MOV R3,A
MOV A,R2
ADDC A,B
MOV R2,A
RET
;; (9) 標(biāo)號(hào): DV31 功能:三字節(jié)二進(jìn)制無(wú)符號(hào)數(shù)除以單字節(jié)二進(jìn)制數(shù)
;;;入口條件:被除數(shù)在R3、R4、R5中,除數(shù)在R7中。
;;出口信息:OV=0 時(shí),雙字節(jié)商在R4、R5中,OV=1 時(shí)溢出。
;;影響資源:PSW、A、B、R2~R7 堆棧需求: 2字節(jié)
DV31: CLR C
MOV A,R3
SUBB A,R7
JC DV30
SETB OV ;;;商溢出
RET
DV30: MOV R2,#10H ;;;求R3R4R5/R7-→R4R5
DM23: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV F0,C
CLR C
SUBB A,R7
ANL C,/F0
JC DM24
MOV R3,A
INC R5
DM24: DJNZ R2,DM23
MOV A,R3 ;;四舍五入
ADD A,R3
JC DM25
SUBB A,R7
JC DM26
DM25: INC R5
MOV A,R5
JNZ DM26
INC R4
DM26: CLR OV
RET ;;; ;商在R4R5中
; (17) 標(biāo)號(hào): HB2 功能:雙字節(jié)十六進(jìn)制整數(shù)轉(zhuǎn)換成雙字節(jié)BCD碼整數(shù)
;入口條件:待轉(zhuǎn)換的雙字節(jié)十六進(jìn)制整數(shù)在R6、R7中。
;出口信息:轉(zhuǎn)換后的三字節(jié)BCD碼整數(shù)在R3、R4、R5中。
;;影響資源:PSW、A、R2~R7 堆棧需求: 2字節(jié)
HB2: CLR A ;;BCD碼初始化
MOV R3,A
MOV R4,A
MOV R5,A
MOV R2,#10H ;;轉(zhuǎn)換雙字節(jié)十六進(jìn)制整數(shù)
HB3: MOV A,R7 ; ;從高端移出待轉(zhuǎn)換數(shù)的一位到CY中
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5 ;;BCD碼帶進(jìn)位自身相加,相當(dāng)于乘2
ADDC A,R5
DA A ;;;;;;十進(jìn)制調(diào)整
MOV R5,A
MOV A,R4
ADDC A,R4
DA A
MOV R4,A
MOV A,R3
ADDC A,R3
MOV R3,A ;;雙字節(jié)十六進(jìn)制數(shù)的萬(wàn)位數(shù)不超過(guò)6,不用調(diào)整
DJNZ R2,HB3 ; ;處理完16bit
RET
LED:MOV DPTR,#ADDR8279_1
MOV A,#90H
MOVX @DPTR,A
MOV R1,#30H
MOV R7,#04H
MOV DPTR,#ADDR8279_2
LOOP:MOV A,@R1
ADD A,#05H
MOVC A,@A+PC
MOVX @DPTR,A
INC R1
DJNZ R7,LOOP
RET
DB 3FH,06H,5BH,4FH,66H,6DH
DB 7DH,07H,7FH,6FH
SEACH:MOV DPTR,#ADDR8279_1
MOVX A,@DPTR
ANL A,#07H
JZ RETUN4
LJMP KEY
RETUN4:RET
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -