|
You have a board which has an AVR microcontroller on it,
the ATMega8. The microcontroller is the soul of the board, you may program
it to do various things. It is the chip at the center of the board. The
micro is connected to a digital thermometer, the DS18B20 and two 7-segment
displays. All these goodies get power from a voltage regulator, whose
responsibility is to provide 5V/500mA DC to the circuit. You will also
find on the board, two LEDs and two buttons. Also, a serial port is available
for connecting the board to a PC.

Our task is to program the micro, to be able to read temperature
measurements from the thermometer by negotiating its protocol (1-wire)
and output these readings to our two digit display.
Where is our thermometer? It stands 15cm off the board,
we will see why ...
Now, in accordance with our public demand,
the micro is not the soul of the board but the brains ...
What is a microcontroller? A micro consists of:
- Flash ROM memory for holding your program, they call it
non-volatile cause it will retain your program even when power goes off.
Next time it powers up, your code will run again. However, it is electrically
erasable so you may use your programmer to program it and re-program it
and …
- RAM memory for holding runtime data, say variables that
change during execution and are not to be remembered forever, they will
be lost when power goes off.
- EEPROM non-volatile memory for those variables that are
to be remembered when power goes off. You may access the micro's EEPROM
either in advance when you program the micro or during runtime.
- CPU/ALU
the processing unit for doing arithmetic and logical operations amongst
other things. Mainly these other things are controlling program flow (yes
these ifs and fors you know from high level languages) but also for transferring
data within the microcontroller.
- Peripherals
that are dedicated for various purposes, e.g the I/O ports are for turning
pins on and off, USART is for communicating serially with another device
(may be a PC), SPI is another serial protocol but for board level communication
(short distance), interrupts are for getting external events asynchronously
with our program flow, timers for measuring time, ADC for measuring analog
quantities and the list goes on …
- Registers
hold 8-bit values and come into two flavors. Dedicated, which are used
for configuring the operation of the micro and its peripherals. General
purpose, working together with the ALU for storing temporarily results.
- Clock
is used by the micro for synchronizing all its operations. The clock is
basically a train of square pulses at certain frequency, in our case 7.3728MHz.
It is usually an external crystal, but one may use the internal
clock.
AVRs
are produced by ATMEL, you may go there and download the datasheet of
ATmega8, have a look at the application notes as well. Be careful not
to be scared by the vast amount of information. Bear also in mind that
for our application only the I/O ports are needed.
|