专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

交流稳压电源模拟采样stc单片机程序

作者:刘大允   来源:本站原创   点击数:  更新时间:2014年03月25日   【字体:

采用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

 

关闭窗口

相关文章