Topic outline
Introduction
The "Principles of microprocessor systems" course is dedicated to people who have at least little experience in programming microcontrollers (e.g. Arduino board) or know the basics of electronics. The course can be carried out on the free simulIDE simulator or using any ATmega32 board (the list of necessary elements is below). During the course, programs will be written in the C language. If you do not know it, start with "The C language for microcontrollers" course.
Before you start your adventure with ATmega32, install the necessary software. Below you will find instructions depending on your operating system.
The course is divided into two parts: a theoretical background and a practical background. Both two parts interpenetrate each other. In order to facilitate the realization of the course, the table below shows the suggested sequence of the lessons. Reserve about 1 hour for the lecture part, while the exercises take about 2-3 hours.
Week 1st 2nd 3rd 4th 5th 6th 7th 8th 9th 10th Lecture No. 1+2 3 - - 4 - - 5 - 6 Exercise No. 1 2 3 4 5 6 7 8 9* 10* Before you start, please fill pre-test.Please complete the questionnaire before starting the course. The survey is anonymous. We ask for honest answers.
Theoretical background
This section provides the theoretical backgroud necessary to understand the practical exercises.Practical exercises
- Main topics:
- I/O ports (DDR, PORT and PIN registers)
- Bitwise operations
- Stepper motor
Components: ATmega32, 8x LED diode, 8x resistors \( (220 - 330) \Omega \), switch, stepper motor with driver and wires. - I/O ports (DDR, PORT and PIN registers)
- Main topics:
- External interrupts
Components: ATmega32, 8x LED diode, 8x resistor \( 220 \Omega \) and 1x\( 10 k\Omega \) and switch. Main topics:
- Displaying string on the LCD display
- Displaying the text stored in the program's memory on the LCD display (pgmspace.h library)
- Displaying special characters in the LCD display
- Displaying floating point numbers in the LCD display
Components: ATmega32 and LCD screen.- Main topics:
- Timer/Counter1 in normal mode
- Timer/Counter1 in compare match mode
- Seven-segment display
Components: ATmega32, switch, LED diode, \( 220 \Omega \) resistor and 4x seven-segment display. Main topics:
- RS232 interface
- RPN calculator
Components: ATmega32, LED diode and \( 220 \Omega \) resistor.Main topics:
- PWM signal,
- Servo,
- Servo control via RS232.
Components: ATmega32, servo motor, LED diode and \( 220 \Omega \) resistor.Main topics:
- I2C/TWI bus
- Real time clock (RTC)
- LCD RGB display via TWI bus
- EEPROM
Components: ATmega32, RTC (PCF8563), LCD RGB Waveshare, EEPROM (AT24C128C)This activity is supplementary for those who have a hardware. Unfortunately, SimulIde software does not contain any elements communicating via the 1-wire bus, but we encourage you to watch at least the movie to understand the idea.
Main topic:
- 1-wire bus
Components: ATmega32, DS18B20 sensor.This activity is supplementary for those who have a hardware. Unfortunately, SimulIde software does not contain any SD card module, but we encourage you to watch at least the movie to understand the idea.
Main topic:
- SD card
Components: ATmega32, DS18B20 sensor, SD card module.Please complete the questionnaire after completing the course. The survey is anonymous. We ask for honest answers.