Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

about pic compiler

Status
Not open for further replies.

Navid

New Member
hello i use pbpdemo compiler but when i compile my program too hex and write it to chip program doesnt work properly i use epic for write hex file my basic program and my hex file are here, is it true compile for this basic program? i think my compiler doesent work properly.( i writ program for 16F84 or 16F84A )

'
'FIRST BASIC PROGRAM TO WINK TWO LED'S CONNECTED TO PORT B
LOOP:HIGH 0 'TURN ON LED CONNECTED TO PIN RB0
PAUSE 500 'DELAY FOR .5 SECONDS
LOW 0 'TURN OFF LED CONNECTED TO PIN RBO
PAUSE 500 'DELAY FOR .5 SECOND
GOTO LOOP 'GO BACK TO LOOP AND BLINK & WINK LED'S FOREVER
END

:1000000028288F018E00FF308E07031C8F07031CEA
:10001000232803308D00DF300F2003288D01E83EB8
:100020008C008D09FC30031C18288C070318152838
:100030008C0764008D0F15280C181E288C1C222894
:1000400000002228080083130313831264000800B1
:10005000061483160610831201308F00F43002203C
:10006000061083160610831201308F00F430022030
:0600700028286300392876
:02400E00FD3F74
:00000001FF

thank you
 
I've never used PIC Basic, so I could be wrong. But just taking a look at the code, I'm seeing things missing that I would think would need to be present in any language for the pic. There is no where that you tell it to set up any Port B pins as output. All pins are defaulted to input until explicitly told to be output. Secondly, when you issue the command HIGH 0 and LOW 0, are those supposed to have pin numbers specified? Like should it be HIGH RB0, LOW RB0? just saying HIGH 0 and LOW 0 seems ambiguous, as Port A and Port B both have pin 0's. It goesn't look like you are specifying anything at all for ports.
 
Navid
I haven't tried this but it did compile OK. Try the following code.

Code:
DEVICE = 16F84A		'tell the compiler what device you are using
XTAL = 4		'tell the compiler what crystal you are using

OUTPUT PORTB		'set portb to output

LOW PORTB.0		'set portb bit 0 low
LOW PORTB.1		'set portb bit 1 low


BLINK:
	HIGH PORTB.0	'set portb bit 0 high turning on led
	DELAYMS 500	'delay for 1/2 sec	
	LOW PORTB.0	'set portb bit 0 high turning off led
	HIGH PORTB.1	'set portb bit 1 high turning on led
	DELAYMS 500	'delay for 1/2 sec
	LOW PORTB.1	'set portb bit 1 high turning off led
	DELAYMS 500	'delay for 1/2 sec
	GOTO BLINK	'go back and loop forever

END

Hope this helps
 
Navid,
Your Picbasic code is OK.
high 0 sets portB.0 high, etc.
Note: This method only applies to portB pins.
PortA must be set by defining and using the portA/trisA registers.
You haven't set the two pins used as outputs.
To set b0 & b1 as outputs simply add "dirs = %00000011" before the start of the action. ( 0 = input, 1 = output)
PortB pins could also be set up using the same method as portA - i.e. using portB/trisB registers - but it's simpler to use "dirs =% ........ " .

Your code only sets b0 - there is no mention of b1, except in your circuit.

Try this:

dirs = %00000011 ' set b0,b1 as outputs
loop:
high 0 ' turn on LED1
pause 500 ' delay 500ms
low 0 ' turn off LED1
high 1 ' turn on LED2
pause 500 ' delay 500ms
low 1 ' turn off LED2
goto loop ' do it all over again forever
end

hope that helps,
kenmac
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top