|
采用adc0804來進行模數轉換.
由于算法原因,顯示到160v時,數碼管動態顯示會很不穩定,所以將其量程限制到150v,誤差精度為(±1v),誤差原因:adc0804 參考電壓懸空,導致其測量精度為19.53mv,為了計算方便,選取19.5mv,導致誤差~
匯編程序如下:
- AD_RD BIT P3.3
- AD_WR BIT P3.4
- AD_INTR BIT P3.5
- ORG 00H
- SETUP:
- MOV R6,#0
- MOV 30H,#0
- MOV 31H,#0
- MOV 32H,#0
- MAIN:
- MOV P1,#0FFH
- CLR AD_WR
- SETB AD_WR
- D5:
- JB AD_INTR,D5
- CLR AD_RD
- MOV A,P1
- CALL START
- CALL DIS
- SETB AD_RD
- JMP MAIN
- START:
- MOV A,P1
- MOV B,#195
- MUL AB
- MOV R0,A
- MOV R1,B
- MOV R2,#0
- AA:
- CLR C
- MOV A,R0
- SUBB A,#200
- MOV R0,A
- MOV A,R1
- SUBB A,#0
- MOV R1,A
- JC BB
- INC R2
- JMP AA
- BB:
- MOV A,R2
- MOV B,#100
- DIV AB
- MOV 30H,A
-
- MOV A,B
- MOV B,#10
- DIV AB
- MOV 31H,A
- MOV 32H,B
-
- RET
- DIS:
- MOV DPTR,#TAB
- MOV A,30H
- CJNE A,#0,D9
- INC R6
- JMP D10
- D9: MOVC A,@A+DPTR
- MOV P0,A
- CLR P2.0
- CALL DEL
- D10: SETB P2.0
- MOV A,31H
- CJNE R6,#1,D8
- CJNE A,#0,D8
- JMP D7
- D8: MOVC A,@A+DPTR
- MOV P0,A
- CLR P2.1
- CALL DEL
- D7: SETB P2.1
- MOV R6,#0
-
- MOV A,32H
- MOVC A,@A+DPTR
- MOV P0,A
- CLR P2.2
- CALL DEL
- SETB P2.2
- MOV A,#0C1H
- MOV P0,A
- CLR P2.3
- CALL DEL
- SETB P2.3
- RET
- DEL:
- MOV R7,#20
- DJNZ R7,$
- RET
-
- TAB:
- DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
- END
復制代碼
|
-
-
數字電壓表代碼與圖.zip
2016-9-2 03:09 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
20.99 KB, 下載次數: 38, 下載積分: 黑幣 -5
|