?? ad convert.asm
字號:
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 ;串行靜態顯示“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 ;啟動A/D
JNB P3.3,$ ;等待轉換結果
MOVX A,@DPTR ;讀入結果
MOV P1,A ;轉換結果送入發光二極管
MOV B,A ;累加器內容存入B中
SWAP A ;A的內容高四位與低四位交換
ANL A,#0FH ;A的內容高四位清零
XCHD A,@R0 ;A/D轉換結果高四位送入DBUF3
INC R0
MOV A,B ;取出A/D轉換后的結果
ANL A,#0FH ;A的內容高四位清零
XCHD A,@R0 ;結果低位送入DBF4中
ACALL DISP1 ;串行靜態顯示“AD XX”
ACALL DELAY ;延時
AJMP START
DISP1: MOV R0,#DBUF0 ;靜態顯示子程序
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 ;段碼字節數
DP12: MOV R2,#8 ;移位次數
MOV A,@R0 ;取段碼
DP13: RLC A ;斷碼左移
MOV DIN,C ;輸出一位段碼
CLR CLK ;發送一個位移脈沖
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
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -