Hallo to all,
i am a student in university in greece(Computer engineering) and now its time to start learning microcontrollers.

So i need help from more experienced guys.
The characherestics that the microcontroller want to have is:

1)be popular
(That means that there are lots of information on internet like tutorials,examples,books with its architecture)

2)Free development tools and simulator
(i dont know if simulator is so important i think it is when you program in assembly whats your opinion?)

3)I want to start from low level in parallel with hi-level.
I want to write some simple assembly programs at first because i like to know what happens in hardware and then move to abstract c,or do it in parallel(so ii need a free assembler to do that and the assembly not to be so complex)
Also i would like to understand its architecture so i wouldn t like a mcu with very complex architecture.

From what i have read on internet i think that a 8 bit AVR or PIC would be good.But which model and which for my needs??

The experience that i have right now is:logical disign,basic electronics,architecture,c programming and little assemply(these experiences are not about microcontrollers but in general)

Hiya. I use a lot of PIC processors, both personally and professionally. I do admit to being biased towards them, and there are lots of other good choices.

1)be popular
There is much information online about the PIC processors. The only drawback is some of it is quite dated using obsolete devices. Still... you can get all of it for free.

2)Free development tools and simulator
The IDE is free, it has a built in assembler, and the C compilers are also a free download.

3)I want to start from low level in parallel with hi-level.
I really don't see the need to learn assembly, though it is nice to know, it's not essential. Writing in C is still pretty minimal: you make the same register settings just in a different (easier) way.

4)Also i would like to understand its architecture so i wouldn t like a mcu with very complex architecture.

The PIC16 series and below only have 33 instructions to learn. The PIC18 and higher devices are much harder to do assembly on (and I never have bothered to do so unlike the lower types).

I conclude to go for a pic series 18F????
What is the most popular,with tons of examples 18f series which fit my needs?

Do you know any very good kit ?
**i wouldnt like all components in one pcb.Only the programmer and the μC.
If the kit has any very good guide with some examples or how to do my first steps it would be helpfull.

To some extent, you should not be intimidated by the number of pins.
Most MCUs incorporate a basic core and then they add peripherals (devices).
You only need to learn and use what you need. You can begin by just learning how to output to a bunch of pins.

As tshuck says maybe its better to start with a very simple μC.i said that because the goad is to understand how the prossesor that the μC have communicate with the peripherals like timer,how they do an interupt and after understand these to a degree then move and program to some simple assembly and c and then connect and the other components like an lcd and a keypad.

So i dont want very peripherals which many the internal circuit complicated.

I think it is good to understand how a μC works inside to a degree because it is a small computer and you understand how computers work,how they communicate with lcd,keypad,timer,how interups work,how you program them(things that i dont know) and then you go to more abstract like a c program and to work with libraries.

This is the reason that i dont want to start with arduino which is very abstract and you dont need to know what happens in hardware a lot.

As tshuck says maybe its better to start with a very simple μC.i said that because the goal is to understand how the prossesor that the μC have communicate with the peripherals like timer,how they do an interupt and after understand these to a degree then move and program to some simple assembly and c and then connect and the other components like an lcd and a keypad.

So i dont want very peripherals which many the internal circuit complicated.

I think it is good to understand how a μC works inside to a degree because it is a small computer and you understand how computers work,how they communicate with lcd,keypad,timer,how interups work,how you program them(things that i dont know) and then you go to more abstract like a c program and to work with libraries.

This is the reason that i dont want to start with arduino which is very abstract and you dont need to know what happens in hardware a lot.

I don´t think that is true, or at least not in the sense that a uC with 40 pins is harder to comprehend than a uC with 8 pins. Within a given family, the basic core, timers and interrupts and assembly will be the same. You don´t need to care about the fancier peripherals like ADCs and pwm channels and what not in the beginning, but as you get better you will want the chip to do more.
This is when buying a larger chip in the first place is better, because you already have all the pripherals you might want and they just wait for you to use them, but they don´t pose any hinderance by being there.

It is like having lots of usb devices hooked up in your computer, you can still learnprogramming the cpu without even noticing they are there, until you want to use them.

I don´t think that is true, or at least not in the sense that a uC with 40 pins is harder to comprehend than a uC with 8 pins. Within a given family, the basic core, timers and interrupts and assembly will be the same. You don´t need to care about the fancier peripherals like ADCs and pwm channels and what not in the beginning, but as you get better you will want the chip to do more.
This is when buying a larger chip in the first place is better, because you already have all the pripherals you might want and they just wait for you to use them, but they don´t pose any hinderance by being there.

It is like having lots of usb devices hooked up in your computer, you can still learnprogramming the cpu without even noticing they are there, until you want to use them.

Click to expand...

I'd have to agree here. I only picked the 12F683 because my cheap, not even a real Pickit clone, listed this as one of the very few microcontrollers it could program(the chip was cheap too). It would seem to be less intimidating with only 8 pins as opposed to 40, but the result is the same.

The datasheet for the 12F683 is smaller and less intimidating for a beginner since you don't have to worry about what a DAC, FVR, I2C, SPI, etc. is, so that may be a factor in your choice.

I also know the 16F84A is really popular for beginners.

like kubeek said, if you don't want the peripheral module, don't enable it. The initial pin assignments from Microchip are such that the peripherals are, in my experience, disabled at reset.

Could you suggest me any nice and tested good kit to start out with a very good guide or tutorial how i can start step by step?

**i want to add that:
i dont start uC because i want to be professional and i dont search about the uC which i could make more money.
I just start because it will help me to undestand how a pc works.How the cpu co-opperates with the peripherals,what each one of the peripherals do,how the communicate,what is an interupt and how we handle and program it.So i want it for education reasons.
And then to make same simple projects and if i want more i will have the experience to choose a new uC if i want.