PDA

View Full Version : Blink Programme for 16F876



banjaxxed
- 24th March 2005, 23:58
My first project.

PicBasic Pro + Microcode Studio Plus v2.1.0.8 + Epic Plus Programmer + Prototype Board + XT 4Mhz

Tried first setup with C508 and BLINK.BAS programme no problem.

Selected different processor and successfully loaded programme into F876.

Can turn outputs ON at any pin position, but when i use the PAUSE instruction and any time setting within the programme nothing runs at all.

What am doing wrong?

NavMicroSystems
- 25th March 2005, 00:32
banjaxxed

see: here (http://www.picbasic.co.uk/forum/showthread.php?t=1254)

Melanie
- 25th March 2005, 10:09
1. Read the Datasheet.

2. You will discover the F876 has ADC's (and Comparators I believe in the case of the A version). By default, PortA comes up in Analogue mode. You must set the pins to Digital. See the sections for A/D Convertor Module (and Comparator Module section if it has one) to see how to do this.

I really am trying to force people to read the Datasheets (the solution is very simple) before asking for answers on the forum.

Bruce
- 25th March 2005, 14:26
read the Datasheets
And if it still doesn't work -- take a peek at the "errata sheet"....;o]

Melanie
- 25th March 2005, 15:54
And by the time you've done that, you'll discover the part has been obsoleted by the 'A' version!

banjaxxed
- 25th March 2005, 19:47
after spending a fortune, getting no answers or support from my suppliers... only more questions - in getting this thing going...... i'll be obsolete myself before it's over :)

(should have spent my hundreads of pounds on a decent micro plc)

Bruce
- 25th March 2005, 20:16
Post your code that's not working with a note on your config fuse settings.

banjaxxed
- 29th March 2005, 20:36
<thanks to all for any advice>

After a long hair pulling session, figured out the 16F876 starts with the A/D running. I wanted digital out Pin 22 (RB1). This is turned off by command 'ADCON1=7' line.

Working code below to save someone else fustration:

' Ricky V
' 28 March 2005
' Blink Program
' MCU PIC16F876
' Rev 56,098,345

DEFINE OSC 4

ADCON1=7 'disable analogue to digital converter
TRISB = 0 'set all pins on Port B to outputs
LED VAR PORTB.1 'Sets which PIN the LED is on, Pin 22 +5V

loop:
High LED ' Turn on LED connected to PORTB.1 as Set in VAR LED
Pause 500 ' Delay for .5 seconds
Low LED ' Turn off LED connected to PORTB.1 as Set in VAR LED
Pause 500 ' Delay for .5 seconds
Goto loop ' Go back to loop and blink LED forever

End
=-=-=-=-=-=-=-=-==-=-==-=--=-=-=-=-=-=-==-=-=-=-=-==-

Bruce
- 29th March 2005, 21:52
I'm glad to hear you got it working, but ADCON1 has no affect on PORTB.

PORTA is the 16F876 A/D port.

AN4 = RA5
AN3 = RA3
AN2 = RA2
AN1 = RA1
AN0 = RA0

4Lewis
- 12th April 2006, 22:04
I used your exact code (which I know works just from looking at it) and I get this error "Code Programming error at 0000" - any suggestions, help?

-------------------------------
DEFINE OSC 4

TRISB = 0 'set all pins on Port B to outputs
LED VAR PORTB.1 'Sets which PIN the LED is on, Pin 22 +5V

loop:
High LED ' Turn on LED connected to PORTB.1 as Set in VAR LED
Pause 500 ' Delay for .5 seconds
Low LED ' Turn off LED connected to PORTB.1 as Set in VAR LED
Pause 500 ' Delay for .5 seconds
Goto loop ' Go back to loop and blink LED forever

End
------------------------------

Bruce
- 12th April 2006, 23:24
Your device programmer should have a help file listing several possible causes
for this particular error message. Lots of things can cause this one. Have you
worked through the list in the help file?

4Lewis
- 13th April 2006, 00:03
The problem was simple (once I got the installation documentation)

My Zif programmer is screwed down to a board, so I couldn't turn it around. NOW, I know what was happening and why.

I didn't just put my chip in a different direction, I had to turn aroud the Zif programmer and move the cable connector to the other side as well. So my school gave me a new programmer that was't screwed down so I could do that. It was simple, so I feel silly but all ends well.