Pic Assembly programming

  • #1
2
0
Hi. I'm learning how to program in assembly to PICs and I'm stuck quite a while in a problem trying to figure out how to read an input value. I've been googling a lot and it seems that my code it's fine but as I'm beginning to learn I would like to know if any of you guys could tell me if its really ok.

Code:
#include <P16F688.inc>

ORG 	0x00
goto 	main

main:
	banksel		TRISC
	movlw 		B'00000100'
	movwf		TRISC
	
loop:
	banksel		PORTC
	btfsc		PORTC, RC2
	call 		blinkRed
	
	btfss		PORTC, RC2
	call 		blinkGreen	
goto 	loop

blinkRed:
	banksel		PORTC
	bsf			PORTC, 1
	bcf			PORTC, 0
	;movlw 		B'00000010'
	;movwf		PORTC		
return

blinkGreen:
	banksel		PORTC
	bcf			PORTC, 1
	bsf			PORTC, 0
	;movlw 		B'00000001'
	;movwf		PORTC	
return

end

Thank you very much.
 
  • #2
Hey rsegecin and welcome to the forums.

I'm not familiar with this kind of assembler, but is the information you are trying to read meant to be coming from a hardware port?
 
  • #3
Hi chiro thank your very much for the reply. I've just found out that if I left the code the way I mentioned in the post above the ports were configured by default as analog inputs therefore to get a discrete value 0, 1 wouldn't work as an analog input has to have some others configurations to work properly. So I just needed to set them as digitals IO.

I'm posting the code for future reference to others:

Code:
#include <P16F688.inc>

ORG 	0x00
goto 	main

main:
	banksel		ANSEL
	movlw 		B'00000000'
	movwf		ANSEL
		
	banksel		TRISC
	movlw 		B'00000100'
	movwf		TRISC

loop:
	banksel		PORTC

	btfsc		PORTC, 2
	call 		blinkRed	

	btfss		PORTC, 2	
	call 		blinkGreen
goto 	loop

blinkRed:
	banksel		PORTC
	movlw 		B'00000010'
	movwf		PORTC		
return

blinkGreen:
	banksel		PORTC
	movlw 		B'00000001'
	movwf		PORTC	
return

end
 

Suggested for: Pic Assembly programming

Replies
33
Views
1K
Replies
4
Views
914
Replies
3
Views
864
Replies
4
Views
885
Replies
1
Views
531
Replies
11
Views
879
Replies
1
Views
2K
Replies
2
Views
875
Replies
11
Views
976
Back
Top