PDA

View Full Version : 16f88



Maurice
- 19th May 2005, 15:41
Hi,
I am migrating to the 16F88 from the 16F84A and was wondering what code I have to put in the header to make it exactly like a 16F84A. I want only to have to stock the newer cheaper chip.

thanks
Maurice

mister_e
- 19th May 2005, 17:49
not sure that 16F84a is the cheapest you can have against the 16F88... 16F627, 16F628 will probably be cheapest than 16F84, and if your application permit, you'll be able to use the internal oscillator and have two free i/o. If you post your code here we can help to convert from one to another. Should be straightforward...

Maurice
- 19th May 2005, 20:19
Hi Mr_e thanks for your response. What I want to do is to use 16F88s from now on but I'm finding it hard to find all the info on how I make a 16f88 into an all digital PIC and make it behave like the 16F84A (when I need it to).

all best

Spencer

mister_e
- 19th May 2005, 21:42
make an F88 all digital will be done by using this simple line...
ANSEL=0 ' disable all ADCs

if you feel safe to disable analog comparator that are already disable at POR
CMCON=7 ' disable all analog comparator

That's it that's all... basketball!

darkman
- 15th June 2005, 18:02
steve do you send full config word exempla here for 16F88 ?

mister_e
- 16th June 2005, 00:31
config??? Fuses? registers?

Sorry i need more words to post words ;)

darkman
- 16th June 2005, 09:52
I need how to write fuses :)

Melanie
- 16th June 2005, 10:54
There's a long and detailed FAQ Thread on the subject... go look...

darkman
- 16th June 2005, 17:09
heheheh :)
I'm receive in 1 second answer for to my question in : www.edaboard.com

:

Hi !

You can use the line in the beginning of your basic program:

@ DEVICE PIC16F88, followed by the fuses options:

EXTRC_OSC_CLKOUT equ 3FEC0013h ; XX XXXX XXX1 XX11
EXTRC_OSC_NOCLKOUT equ 3FEC0012h ; XX XXXX XXX1 XX10
EXTRC_OSC equ 3FEC0012h ; XX XXXX XXX1 XX10
INTRC_OSC_CLKOUT equ 3FEC0011h ; XX XXXX XXX1 XX01
INTRC_OSC_NOCLKOUT equ 3FEC0010h ; XX XXXX XXX1 XX00
INTRC_OSC equ 3FEC0010h ; XX XXXX XXX1 XX00
EXTCLK_OSC equ 3FEC0003h ; XX XXXX XXX0 XX11
EC_OSC equ 3FEC0003h ; XX XXXX XXX0 XX11
HS_OSC equ 3FEC0002h ; XX XXXX XXX0 XX10
XT_OSC equ 3FEC0001h ; XX XXXX XXX0 XX01
LP_OSC equ 3FEC0000h ; XX XXXX XXX0 XX00
WDT_ON equ 3FFB0004h ; XX XXXX XXXX X1XX
WDT_OFF equ 3FFB0000h ; XX XXXX XXXX X0XX
PWRT_ON equ 3FF70000h ; XX XXXX XXXX 0XXX
PWRT_OFF equ 3FF70008h ; XX XXXX XXXX 1XXX
MCLR_ON equ 3FDF0020h ; XX XXXX XX1X XXXX
MCLR_OFF equ 3FDF0000h ; XX XXXX XX0X XXXX
BOD_ON equ 3FBF0040h ; XX XXXX X1XX XXXX
BOD_OFF equ 3FBF0000h ; XX XXXX X0XX XXXX
LVP_ON equ 3F7F0080h ; XX XXXX 1XXX XXXX
LVP_OFF equ 3F7F0000h ; XX XXXX 0XXX XXXX
CPD_ON equ 3EFF0000h ; XX XXX0 XXXX XXXX
CPD_OFF equ 3EFF0100h ; XX XXX1 XXXX XXXX
WRT_1FOURTH equ 39FF0000h ; XX X00X XXXX XXXX
WRT_HALF equ 39FF0200h ; XX X01X XXXX XXXX
WRT_3FOURTHS equ 39FF0400h ; XX X10X XXXX XXXX
WRT_OFF equ 39FF0600h ; XX X11X XXXX XXXX
DEBUG_ON equ 37FF0000h ; XX 0XXX XXXX XXXX
DEBUG_OFF equ 37FF0800h ; XX 1XXX XXXX XXXX
CCPMX_ON equ 2FFF0000h ; X0 XXXX XXXX XXXX
CCPMX_OFF equ 2FFF1000h ; X1 XXXX XXXX XXXX
PROTECT_ON equ 1FFF0000h ; 0X XXXX XXXX XXXX
PROTECT_OFF equ 1FFF2000h ; 1X XXXX XXXX XXXX
FCMEN_OFF equ 3FFE0000h ; XX XXXX XXXX XXX0
FCMEN_ON equ 3FFE0001h ; XX XXXX XXXX XXX1
IESO_OFF equ 3FFD0000h ; XX XXXX XXXX XX0X
IESO_ON equ 3FFD0002h ; XX XXXX XXXX XX1X

for example:

@ DEVICE PIC16F88, XT_OSC,WDT_ON,PWRT_ON,MCLR_OFF, etc

It will generate the bits config fuses to be burned on your PIC.


@mel : I love your answers :) your answers always go and read datasheet :)

Melanie
- 16th June 2005, 17:38
No, my answer was that you go look in the FAQ section of THIS FORUM where your question (which has been asked many times before) was answered in great detail, not only with the answer which you have received which is good for the PM Assembler, but also for the MPASM Assembler that comes with MPLAB. Not only that, but there's a host of other information there which you may not have received. Do you now know where to look to find them, or when you change your PIC are you going to ask somebody for the CONFIG definitions for that chip too?

Like the old saying, "if you feed somebody, they'll be fed for a day, but if you teach them to fish, you'll feed them for a lifetime". I'm trying to stop people asking for handouts all the time, and trying to get them to fish. In your case I directed you to the EXACT SPOT where you would have found what you needed. But to click on the FAQ section and then to look down the list is obviously too difficult, so instead of following two mouse-clicks you asked the question elsewhere - obviously the easier choice from your perspective.

But since you mention it, if more people made the effort to SEARCH the posts (and if you did that then you would also have found the answers) on this forum FIRST (and also look at the Datasheet), then they would have the answers... but that of course is too difficult to do. It's much easier to ask a question and have an answer served up on a plate.

Urmish Mehta
- 16th July 2006, 21:34
I read the datasheet and don't find it.
However, when someone points out that it is there in the datasheet,
I read it again and I find it.
It is strange but it is true becuase now I know for sure it is there.

ntege
- 12th November 2007, 10:04
hi guys can anyone help me with assembly code for dimming an led with pwm.i have tried reading the datasheet and i have come up with some code but it still doesnt work.

here is the code can anyone please tell me wats wrong with this code

list p=16f88
INCLUDE "p16f88.inc"


_;****Set up the Constants****

STATUS equ 03h
TRISA equ 85h ;Address of the STATUS register
TRISB equ 86h
PORTA equ 05h ;Address of the tristate register for port A
PORTB equ 06h ;Address of Port A
COUNT1 equ 20h ;First counter for our delay loops
COUNT2 equ 21h ;Second counter for our delay loops
ANSEL equ 9Bh
OSCCON equ 8Fh
CCP1CON equ 17h
T2CON equ 12h
TMR2 equ 11h
CCPR1L equ 15h
PR2 equ 92h
PIR1 equ 0Ch
PIE1 equ 8Ch


movlw B'00000000' ; 8Mhz 4Mhz = B'01100000'31.25khz
bsf STATUS, 5
movwf OSCCON
nop
nop
nop
bcf STATUS, 5
movlw b'00111100'
movwf CCP1CON ;Move 00000 onto TRISA – all pins set to output

bsf 03h,5 ;Go to Bank 1
movlw 00h ;Put 00000 into W
movwf TRISA ;Move 00000 onto TRISA – all pins set to output

movlw 00h ;Set the Port B pins
movwf TRISB ;to output. ;Put 00000 into W

movlw 00h
movwf ANSEL ;Move 00000 onto TRISA – all pins set to output

movlw b'11111111'
movwf PR2

bcf 03h,5 ;Come back to Bank 0
movlw b'00001111'
movwf TMR2



Start
movlw b'00001111'
movwf CCPR1L ;Move 00000 onto TRISA – all pins set to output
Loop1
decfsz CCPR1L ;This second loop keeps the LED
goto Loop1 ;turned off long enough for us to goto Start
end