samarth123
Newbie level 6
i am trying to do a simple stuff with 16f877. thing is that PORTB shud start toggling as soon as PORTA.0 is made high. I am posting the code please go through it.
Code:
list p=16F877A,r=hex
#include <P16F877A.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF ; config suitable for 20 meg hz crystal
cblock 0x20 ;***** VARIABLE DEFINITIONS
d1 ; delay routine work files
d2
d3
endc
org 0x00
goto start
start
banksel ADCON1
movlw 0x06
movwf ADCON1
banksel TRISB
movlw 0x00
movwf TRISB
banksel TRISA
movlw 0x3f
movwf TRISA
banksel PORTA
clrf PORTB
here
btfss PORTA,0
goto here
up
comf PORTB
call delay500
goto up
delay500 ; delay of 500ms using 20meg hz crystal
movlw 0x16
movwf d1
movlw 0x74
movwf d2
movlw 0x06
movwf d3
Delay_0
decfsz d1, f
goto $+2
decfsz d2, f
goto $+2
decfsz d3, f
goto Delay_0
return
end