?? ad convert.asm
字號(hào):
DBUF0 EQU 30H
TEMP EQU 40H
DIN BIT 0B0H
CLK BIT 0B1H
ORG 0000H
START: MOV R0,#DBUF0 ;顯示緩沖器存放0AH,0DH,—,0XH,0XH
MOV @R0,#0AH ;串行靜態(tài)顯示“AD XX”XX表示0--F
INC R0
MOV @R0,#0DH
INC R0
MOV @R0,#10H
INC R0
MOV DPTR,#0FEF3H ;A/D地址
MOV A,#0 ;清零
MOVX @DPTR,A ;啟動(dòng)A/D
JNB P3.3,$ ;等待轉(zhuǎn)換結(jié)果
MOVX A,@DPTR ;讀入結(jié)果
MOV P1,A ;轉(zhuǎn)換結(jié)果送入發(fā)光二極管
MOV B,A ;累加器內(nèi)容存入B中
SWAP A ;A的內(nèi)容高四位與低四位交換
ANL A,#0FH ;A的內(nèi)容高四位清零
XCHD A,@R0 ;A/D轉(zhuǎn)換結(jié)果高四位送入DBUF3
INC R0
MOV A,B ;取出A/D轉(zhuǎn)換后的結(jié)果
ANL A,#0FH ;A的內(nèi)容高四位清零
XCHD A,@R0 ;結(jié)果低位送入DBF4中
ACALL DISP1 ;串行靜態(tài)顯示“AD XX”
ACALL DELAY ;延時(shí)
AJMP START
DISP1: MOV R0,#DBUF0 ;靜態(tài)顯示子程序
MOV R1,#TEMP+4
MOV R2,#5
DP10: MOV DPTR,#SEGTAB ;表頭地址
MOV A,@R0
MOVC A,@A+DPTR ;取段碼
MOV @R1,A ;到TEMP中
INC R0
DEC R1
DJNZ R2,DP10
MOV R0,#TEMP ;段碼地址指針
MOV R1,#5 ;段碼字節(jié)數(shù)
DP12: MOV R2,#8 ;移位次數(shù)
MOV A,@R0 ;取段碼
DP13: RLC A ;斷碼左移
MOV DIN,C ;輸出一位段碼
CLR CLK ;發(fā)送一個(gè)位移脈沖
SETB CLK
DJNZ R2,DP13
INC R0
DJNZ R1,DP12
RET
SEGTAB: DB 3FH,6,5BH,4FH,66H,6DH
DB 7DH,7,7FH,6FH,77H,7CH
DB 58H,5EH,79H,71H,0,40H
DELAY: MOV R4,#0AFH
AA1: MOV R5,#0FFH
AA: NOP
NOP
NOP
DJNZ R5,AA
DJNZ R4,AA1
RET
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -