用PIC12C671单片机实现冰箱欠压、
过压、来电延时等保护功能

    PIC12C671是8位8脚单片机,可用其构成冰箱保护器,电路简单。
    电路工作原理如附图所示。
    图中PIC12C671单片机的③脚控制冰箱压缩机,②脚为欠压显示,⑤脚为过压显示,⑦脚为A/D模拟电压输入端。A/D转换时分辨率为20mV,当R3、R4精度为0.1%时,欠压、过压的控制误差为0.5%。Vcc随市电按比例变化,经R3、R4分压后,输入到PIC12C671的⑦脚转换为数字量Di。程序中设定欠压的数字量D1,把转换的数字量Di与欠压时的数字量D1比较,若Di≤D1且持续5秒,PIC12C671的③脚清零,②脚为高电平,冰箱压缩机控制电路停止供电,欠压灯亮。5分钟后PIC12C671采集数据,若已恢复正常,置②脚为0,③脚为1,电路回到正常工作状态。当停电后来电时,程序延时5分钟后③脚变为高电平,实现控制作用。
    上电延时程序清单如下:
    list p=12C671
    #include<P12c671.Inc>
       errorlevel  -302
   _CONFIG _CP_OFF &_WDT_ON &_MCLRE_ON&_PWRTE_ON &_INTRC_OSC
  ;***** VARIABLE DEFINITIONS
       W_TEMP        EQU 0x0C
       STATUS_TEMP EQU 0x0D
       PIR1             EQU 0x0C
       LATB            EQU 0x20
       PIE1             EQU 0x8C
       TEMP            EQU 0x22
      COUNT             EQU   0x21
       TMRO               EQU   0x01
       PORTA            EQU   0x05
       ORG               0x00
       GOTO               START
       ORG                 0x04
       GOTO               ADCON
;remaining code goes her
START:BSF STATUS,RP0
         MOVLW 0x01
         MOVWF GPI0
         MOVLW 0X0D6
         MOVWF OPTION_REG
         BCF    STATUS,RP0
         BSF    INTCON,7
         BSF    INTCON,5
         BCF    INTCON,2
         BSF    INTCON,GIE
         CLRF  COUNT
         CLRF   LATB
         CLRF   TMR0
         CLRF   PORTA
MAIN: CLRWDT
         MOVLW  0x0FF
         SUBWF   TMR0,0
         BTFSC  STATUS,Z
         GOTO   TIME2
TIME1:MOVLW  0x0FF
         SUBWF  COUNT,0
         BTFSC  STATUS,2
         GOTO    TIME4
TIME3:MOVLW  0x24
         SUBWF  TEMP,0
         BTFSC  STATUS,2
        BSF       PORTA,2
         GOTO     MAIN
TIME2:INCF    COUNT,1
         CLRF   TMR0
         GOTO    TIME1
TIME4:INCF    TEMP,1
         CLRF    COUNT
         GOTO   TIME3
ADCON:…
         END

    注:限于篇幅,这里只给出上电延时程序,需要全部单片机源程序的读者,请联系作者(0853-4695386。

                                  贵州  王旭东



 PIC单片机 www.pic16.com