Professional Documents
Culture Documents
p=16f84 #include "P16F84.INC" ; Include header file #define bank0 bcf STATUS, RP0 #define bank1 bsf STATUS, RP0 #define #define #define #define #define ileri geri saga sola dur H'000c' H'000d' H'000e' H'000f' h'0010' h'0011' h'0012' h'0013' h'0014' h'0015' h'0016' h'0017' h'0018' h'0019' h'0020' h'0021' h'0022' h'0023' 0 INTCON main 0x05 0x0A 0x06 0x09 0x00 ; ; ; ; ; 00000101 00001010 00000110 00001001 00000000
sayac1 sayac2 sessur depo pbmask ledsay eepsay eskib flag sesfrek ldrval sagval solval timer flag2 timsay statemp wtemp
EQU EQU EQU EQU equ equ equ equ equ equ equ equ equ equ equ equ equ equ org
start
intvec movwf movf movwf btfss goto bcf banksel incf btfsc incf pop movf movwf swapf swapf retfie
wtemp STATUS,w statemp INTCON,T0IF pop INTCON,T0IF PORTB timsay STATUS,Z timer statemp,w STATUS wtemp,f wtemp,w
; save off current W register contents ; move status register into W register ; save off contents of STATUS register ; Timer0 interrupt? ; Clear the Timer0 interrupt flag
; retrieve copy of STATUS register ; restore pre-isr STATUS register contents ; restore pre-isr W register contents
main banksel TRISB movlw b'11111110' movwf TRISB movlw movwf call b'00000000' TRISA init ; PORTB giri, -- 7. biti k (ses iin) ; PORTA k
banksel PORTB clrf bcf clrf PORTB OPTION_REG,7 flag ; Enable portb pullups
isikara sagsol call movlw movwf call movlw movwf call call movwf call movlw movwf call movlw movwf call call movlw movwf call movlw movwf call call movwf
carptimi saga PORTA azbekle dur PORTA azbekle ldrbak sagval carptimi sola PORTA azbekle dur PORTA azbekle carptimi sola PORTA azbekle dur PORTA azbekle ldrbak solval
call movlw movwf call movlw movwf call call movfw subwf btfss goto solak sol1 btfsc call bsf bcf movlw movwf call movlw movwf call call call call goto salak sag1 btfsc call bsf bcf movlw movwf call movlw movwf call call call goto gitgit movlw movwf call call movlw movwf call return
carptimi saga PORTA azbekle dur PORTA azbekle carptimi sagval solval,0 STATUS,C salak flag,1 gitgit flag,2 flag,1 sola PORTA azbekle dur PORTA azbekle carptimi snd snd sagsol flag,2 gitgit flag,1 flag,2 saga PORTA azbekle dur PORTA azbekle carptimi snd sagsol ileri PORTA bekle bekle dur PORTA bekle
;**************************** init movlw 0x8F ; Set the timer prescaler. banksel OPTION_REG movwf OPTION_REG banksel TMR0 movlw 0x00 movwf TMR0 bsf INTCON,T0IE ; Enable the timer interrupt. bsf INTCON,GIE ; Enable global interrupts. return ;**************************** bibibip call snd call bekle call snd call bekle call snd call bekle return ;**************************** carptimi btfss PORTB,2 call sagcarp btfss PORTB,1 call solcarp return ;**************************** ldrbak banksel TRISA bcf TRISA,4 banksel PORTA bcf PORTA,4 nop nop banksel TRISA bsf TRISA,4 banksel PORTA movlw movwf testet movfw sublw btfss incf btfsc goto goto birdir bcf rrf bcf rrf bcf rrf movfw sublw ldrval d'255' STATUS,2 ldrval,1 PORTA,4 birdir testet STATUS,0 ldrval,1 STATUS,0 ldrval,1 STATUS,0 ldrval,1 ldrval d'255' 0 ldrval
; RA4 input
andlw b'00011111' movwf ldrval return ;----------------------------------------sagcarp movlw d'100' call efekt movlw geri movwf PORTA call bekle call bekle movlw sola movwf PORTA call bekle call bekle return ;----------------------------------------solcarp movlw d'100' call efekt movlw geri movwf PORTA call bekle call bekle movlw saga movwf PORTA call bekle call bekle return ;----------------------------------------;----------------------------------------efekt movwf sessur efktlop movfw movwf bsf slop1 sessur sesfrek PORTB,0
slop2
decfsz sessur goto efktlop return ;----------------------------------------snd movlw 0ffh movwf sessur sndlop bsf call bcf call PORTB,0 lbek PORTB,0 lbek
decfsz sessur goto sndlop return lbek lbek2 movlw movwf 0xf1 sesfrek
azbek1 decfsz sayac1 goto azbek1 decfsz sayac2 goto azbek1 return bekle loop1 loop bsf clrf clrf incf nop nop nop btfss goto nop nop nop incf btfss goto bcf return end PORTA,4 sayac1 sayac2 sayac2
sayac2,7 loop