Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
I was a PIC user, and now an AVR / ARM7 user.
The main differeces are:
AVR has linear memory, PIC is banked. These means that it's more optimal the AVR memory magment.
AVR has 132 instrucction in average, PIC is less
AVR instrucctions runs at 1 cicle, PIC at 2 or 4. With these AVR reaches 1MIPS per MHz, and PIC 0.25MIPS per MHz.
AVR can address 4MBytes of memory, and the biggest AVR now has 256KBytes of Flash, PIC cannot reaches this number.
AVR and PIC has many DIP ICs, both are very easy to use, but AVR's biggest devices are mor SMD-oriented.
Really, there are a lot of more advantages that AVR has over PIC. PIC is just for hobbist, eventhough many people use it. But AVR is more powerful, and it's nearly the most C-friendly microcontroller in 8bits.
A Motorola FAE tells me a short time ago that their HC08 cannot compete with AVR, and the HC08S may have the same performace, but to be sure, he recomends me to use a 16bits Motorola MCU, which of course will be better than an 8bits.
Everything depends on what you expect from a microcontroller in a particular application ..
If, for example, you need to operate a couple of LEDs and ON/OFF switches then you really don't need MIPSes and all of that stuff, and a simple reduced-pin PIC with almost no memory will be more than sufficient ..
this topic has been discussed a number of times at numerous discussion boards and it turns out that there are more PIC users than AVR users.
as far as the instruction set is concerned, the PIC18 series has a C-compiler freindly instruction set. the PIC16 and PIC12 werent designed for use with a C-compiler but even then you can use a compiler like Hitech's PICC or CCS to code these devices with C.
the biggest misconception in such discussions is that people say that ABC microcontroller is this much fast and XYZ is a slow microcontroller. well, the fact is that in control applications you dont need speed at all. most of the time the microcontroller will be wasting cycles or waiting for something to happen (like an interrupt). so speed is not the deciding factor at all. if you need speed then you should go for SiLab's 8051s that go upto 100MIPS !!!!!!!!!
people have different views over the issue of the number of instructions in an instruction set. some think that small instruction sets are better and some think that bigger instruction sets are better. but if you are going to code in C then you need not worry about the instruction set.
the best thing that i like about PICs is that you can get lots of free samples of it. and they are constantly expanding their line of devices, like the new PIC24 and the new dsPIC series.
This topic is lot of time up here and one of my loving friend and big fan of avr Uc ME discussed lot, i think speed is not matter in normal application unless you are using a Uc in image processing application or making to drive RGb led then avr is best.
but in other all way pic is best for hobbiest now The new PIC18 sereis has better memory mangement then the old PIC16 and PIC12 series also the speed is great some day back i designed the tempature controller on pic16 series, but when i transfor my code to Pic18 sereis processing speed increase and result was remarkable i love with PIC micro so in my point of view pic is best then avr
i think that it depends on you!
if you are brilliant in programming AVR then it is the best, and if you are skillfull in programming PIC then it is the best.
any of the apple and Orange has its benefits