选用STC12C2052单片机自带的ad做的 程序如下:
;==自制造全自动沟通稳压电源操控线路板程序=
P1M0 EQU 91H ;端口设置寄存器
P1M1 EQU 92H ;端口设置寄存器
AK EQU 0C5H ;A/D转化操控寄存器
ADATA EQU 0C6H ;保存转化数据的高8位
ADATAD EQU 0BEH ;保存转化数据的低2位
ORG 00H
JMP MAIN
;====================================== MAIN: MOV P1,#00H
MOV P3,#00H
MOV TMOD,#01H
MOV TH0,#0FCH
MOV TL0,#17H
MOV 8EH,#00H
MOV PCON,#00H
MOV P1,#00H
MOV P3,#0FFH
MOV P1M0,#4H ;设置端口为A/D形式
MOV P1M1,#4H ;设置端口为A/D形式
MOV ADATA,#00H
MOV AK,#80H ;翻开A/D电源
;==================================================
MOV AK,#0E2H ;挑选通道P1。2为A/D输入端
;==================================================
LOOP_22: ORL Ak,#08H ;发动转化
LOOP_0: MOV A,#10H
ANL A,AK ;判别是否转化完结
JZ LOOP_0
;================================================
ANL AK,#0E7H ;把标志位清零
MOV A,ADATA
CALL DDD ;调用调压服务子程序
JMP MAIN
;=======降压操控程序=============================
DDD:
MOV R2,#0011B
XRL A,R2
CJNE A,#0010B,LOOP_11
NOP
NOP
NOP
SETB P1.4
CALL T2MS
CLR P1.5
CALL T2MS
;========升压操控程序=============================
LOOP_11:CJNE A,#0100B,LOOP_66
NOP
NOP
NOP
SETB P1.5
CALL T2MS
CLR P1.4
CALL T2MS
;========降压操控程序==============================
LOOP_66:CJNE A,#0001B,LOOP_33
NOP
NOP
NOP
SETB P1.4
CALL T2MS
CLR P1.5
CALL T2MS
;=======升压操控程序================================
LOOP_33:CJNE A,#0110B,LOOP_44
NOP
NOP
NOP
SETB P1.5
CALL T2MS
CLR P1.4
CALL T2MS
;======稳压操控程序================================
LOOP_44:CJNE A,#00B,LOOP_55
NOP
NOP
NOP
CLR P1.4
CALL T2MS
CLR P1.5
CALL T2MS
LOOP_55: RET
;=======延时子程序=========================
T2MS: MOV TH0,#0FCH
MOV TL0,#17H
SETB TR0
JNB TF0,$
CLR TF0
DJNZ 65H,T2MS
RET
;=============================================
END