采用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
因篇幅问题不能全部显示,请点此查看更多更全内容