?? 模數轉換adc0832.asm
字號:
;本程序為數字電壓表
;輸入電壓經89k電阻和10k精密電位器分壓
;測試電壓為0~51v,可用表校對
DO BIT P3.6
DI BIT P3.7
CLK BIT P3.5
CS BIT P3.4
MOV DPTR,#TABLE
MOV R4,#30
MAIN:DJNZ R4,LOOD
MOV R4,#30
CALL CADB ;調用轉換程序
MOV 36H,A
CALL L1
CALL L3
CALL DISP
LOOD:CALL SCAN ;調用顯示掃描
JMP MAIN
CADB:CLR CS
MOV A,#03h
MOV R7,#03h ;寫3位指令
LOOPB1:CLR CLK
RRC A
MOV DI,C
NOP
SETB CLK
DJNZ R7,LOOPB1
CLR CLK
NOP
SETB CLK
MOV R7,#08H ;讀8位數據
LOOPB2:CLR CLK
MOV C,DO
RLC A
SETB CLK
DJNZ R7,LOOPB2
SETB CS
RET
L1: CLR C ;十進制轉換
MOV 30H,#00
MOV 31H,#00
MOV R2,#08H
NEXT:RLC A
MOV R3,A
MOV A,30H
ADDC A,30H
DA A
MOV 30H,A
MOV A,31H
ADDC A,31H
MOV 31H,A
MOV A,R3
DJNZ R2,NEXT
L2: MOV A,30H
ADD A,30H
DA A
MOV 30H,A
MOV A,31H
ADDC A,31H
DA A
MOV 31H,A
RET
L3:MOV A,31H
MOV B,#10H
DIV AB
MOV 21H,A
MOV 22H,B
MOV A,30H
MOV B,#10H
DIV AB
MOV 23H,A
MOV 24H,B
RET
SCAN:mov p2,#11110111b ;掃描子程序
mov a,24H
MOVC A,@A+DPTR
mov p0,a
call delay1
mov p2,#11111011b
mov a,23H
movc a,@a+dptr
ORL A,#80H
mov p0,a
call delay1
MOV P2,#11111101B
MOV A,22H
MOVC A,@A+DPTR
MOV P0,A
CALL DELAY1
MOV P2,#11111110B
MOV A,21H
MOVC A, @A+DPTR
MOV P0,A
CALL DELAY1
RET
DISP:
RET
DELAY1:MOV R6,#5 ;掃描延時
D3: MOV R7,#248
DJNZ R7,$
DJNZ R6,D3
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共陽字碼表
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -