characteristics and apps: PIC16F870

Status
Not open for further replies.
sardineta said:
I have my program finished, but when I simulate it in the MPLAB, the TMR0, is not reloaded, does I need to reload it at the end of the ISR before exit? before bcf INTCON T0IF
could you post it.??
 
here is the code, well I would like to know if there is any observation that can be important to change.
For example the definitions of goto's in the ISR routine, and how about the complexity of the ISR routine, and some others at the begining of the code, like ORG 0x00, ORG 0x05, ORG 0x04

well, this code should done the following read 3dip switches at RB7,6,5
111, set a delay of 20ms
110, set a delay of 100ms
101, set a delay of 300ms
100, set a delay of 500ms
011, set a delay of 1000ms=1sec
x, don't care
x
x

RB4, define a manual mode or automatic mode, auto=1 manual=0

RB3 and 2
11 set the ADC to detect 1.25v aprox
10 set the ADC to detect 2.5v
01 set the ADC to detect 3.25v
00 x

RB0 is an external interrupt that will increment C_DF

if C_DF =>31 the system will stop to enclave

AN0 is the analog input
RA1, led system on
RA2, led TM, a TM event occurs
RA3, LED DF, a DF event occurs
RA4, turns on a relay for about 50ms to close an interruptor
RA5, turns on a relay for about 50ms to open an interruptor

TM events occurs without notice, so by polling the firmware a TM event is detected

I think that's all, see you
 

Attachments

  • pic16f870.zip
    4 KB · Views: 164

In your section of code above, the address of MAIN is 0x0005 (as the address of the GOTO ISR is 0x0004 - so 0x0005 is commonly the start address of your actual code, as the reset vector at 0x0000 usually just jumps to 0x0005.
 
returning with one of my last questions

This is what the list file says
Program Memory Words Used: 431
Program Memory Words Free: 1617


I have attached the list file, does I have 1671 adresses available?
what about the free flash memory in PIC?
 

Attachments

  • reconectador00.lst.txt.txt
    64.5 KB · Views: 206
i have attached the list file, does I have 1671 adresses available?
what about the free flash memory in PIC?
yes you have 1617 program locations left...
that IS the flash memory..
 
sardineta said:
This is what the list file says
Program Memory Words Used: 431
Program Memory Words Free: 1617


I have attached the list file, does I have 1671 adresses available?
what about the free flash memory in PIC?

Except for the 'spelling' mistake, you do indeed have 1617 words free.
 
i cut him a break on his spelling because english isnt his first language :wink:
 
Hello.

I found that pin RA4 does not work as a normal output, (I can't read 5 volts) I read the datasheet and it says that as OUTPUT it is open drain, so what you recomment me to do? I am thinking in fixing a resistor of 10k from this pin to Vdd, but correct me if I am wrong, please.

Can I connect the output of an op-amp directly to the RA0/AN0 pin, where I configured it as an input for the ADC?, or I need a resistor from here to VSS.

The pins I am not using from port A and C what do I have to do with them? do them grounded?

Thanks!!
 

No, that's fine, that's what you need to do.

Can I connect the output of an op-amp directly to the RA0/AN0 pin, where I configured it as an input for the ADC?, or I need a resistor from here to VSS.

You can connect it direct.

The pins I am not using from port A and C what do I have to do with them? do them grounded?

You can just leave them, it makes very little difference - it varies from person to person, but some people set them as outputs. Personally I don't pay the slightest attention to how they are set, I just ignore them.
 
Does the stack has to do with the interrupts I am using?
I hahe vonfigured two interrupts one of them is by using timer0 and the other one is by RB0.
Inside the ISR the program saves the W register and the Status register.

When I have a signal in the input at the op amp it works but when there is no signal I see at the output of the op amp a signal that is different from zero, what can I do to get a 0 volts or gnd while there is no signal at the input of the opamp.

I have realized that when the AN0 (analog input) has no signal it behaves as if it sees a voltage different from zero (ground). because I am changing my point of observations I have a deal with this changes.
This pin RA0/AN0 always should be connected to a voltage point?

thanks
 
sardinetta , how have you wired the op amp inputs?
 
This is the circuit I want to connect to the pic 16F870, at pin RA0/AN0.

The problem as I mentioned above is that when there is no signal I have a DC voltage level at the output.

the gain at output is 1.5

Thanks a lot for your help
 

Attachments

  • analog_stage.jpg
    34.1 KB · Views: 402
sardineta said:
This is the circuit I want to connect to the pic 16F870, at pin RA0/AN0.

As you're powering the opamps off +/-9V you MUST add a series resistor between the output of the opamp and the input of the A2D. PIC inputs have clipping diodes between the input pin and Vdd/Vss, to prevent the inputs going outside permitted limits. Feeding directly from the opamp could cause too much current to flow.

The problem as I mentioned above is that when there is no signal I have a DC voltage level at the output.

the gain at output is 1.5

Thanks a lot for your help

It sounds like you have a DC offset at the output of the opamp, you need to correct it - probably using a preset resistor so you can adjust it.
 
Status
Not open for further replies.
Cookies are required to use this site. You must accept them to continue using the site. Learn more…