                                Pic16f84    

                . 
   ""    -    ,   . 
 :http://p-lab.hit.bg/ohrana.gif
 

         .  " " (,2007,N6,.57). 
   2    RB0  Pic16f84. 
      -  2   RB0    4 - 6 . 
     VD2.     RC . 

       .     SLEEP. 
""    RB0.      1 
(""      ),    ( 3), 
   40   ""   ( 2). 
    . 
    11105  5 . 
      [2]. 

               . 
      .      .
 :http://p-lab.hit.bg/detect.gif
 

           : 

1.    -    1  2 ()

2.   -    ,   ,    . 
                  -  4  , 
                 -   .     .  
               
3.   -   3 ( ).  ,    
                       3 -
                  4 (. 7).

4.   -      (  ). 
                    8  L1 ()  L2 (). 
                     .
                    30  10. 
               L2   L1   .   
                    20 - 30 .

4.   -         
                (VD4)  .  
                      "".

    :
1.  .   - , 2007,  6, . 56, 57
2.  .        - , 2007,  8, . 53. 

           ;   ohrana.asm

           LIST    p=16F84 ; PIC16F844 is the target processor

           #include 
        __CONFIG   _WDT_OFF & _RC_OSC 

        CBLOCK H'C'     ;  
         NaHi
         NaLo
         NbHi
         NbLo
         kolko
         W_TEMP
         STATUS_TEMP
        ENDC

        org 0x0000      ;  
        goto main

        org 4           ;  
        BCF              INTCON, INTE  ;    RB0
        BCF              INTCON, INTF  ;    RB0

        clrf  kolko

        bsf PORTA, 0    ;   

        movlw  02h
        movwf  kolko
        call Delay
        bsf PORTB, 1    ;     
        movlw  06h       
        movwf  kolko
        call Delay
        bcf  PORTB, 1

        bsf PORTB, 3    ;  
        movlw  04h         
        movwf  kolko
        call Delay
        bcf  PORTB, 3

        movlw  60h      ;   
        movwf  kolko
        call   Delay
        bsf PORTB, 2
        movlw  06h         
        movwf  kolko
        call Delay
        bcf PORTB, 2     
 
        bcf PORTA, 0    ;   

        movlw  02h      
        movwf  kolko
        call Delay
                        ;  
        BSF             INTCON, INTE    ;  RB0
        retfie

init                            ;  
        movlw b'00000000'       ; all port pins = low
        movwf PORTA
        movlw b'00000000'
        movwf PORTB

        bsf STATUS,RP0          ; set RAM Page 1 for TRIS registers
        movlw b'00000000'       
        movwf TRISA
        movlw b'00000001'       ; RB0 
        movwf TRISB
        bcf STATUS,RP0          ; back to RAM page 0
        return

Delay                           ;   
        movlw 01h
        movwf NbHi
        movf  kolko, w
        movwf NbLo
        movlw 8Ah
        movwf NaHi
        movlw 5Bh
        movwf NaLo

DeLoop0

        decfsz NaLo,F
        goto DeLoop0
        decfsz NaHi,F
        goto DeLoop0
        decfsz NbLo,F
        goto DeLoop0
        decfsz NbHi,F
        goto DeLoop0
        ;
        return

main
       call init
                        ;  
       BSF              INTCON, GIE
       BSF              INTCON, INTE    ;  RB0

LOOP                    ;  
       SLEEP
       GOTO             LOOP
       END

  (misho@pochta.ru)
. 

