![]() |
Tutorial for learning assembly language for the AVR-Single-Chipprocessor AT90Sxxxx of ATMEL with practical examples. Simple introduction examples, Tutorial |
HTML- Format | ASM- Format | What to learn here ... |
---|---|---|
Test1 | Test1 | Learn to handle the board, output to the board LEDs via a port, basic structure of the assembly language, assembler directives and command. The LEDs will go on and off with 800 Hertz (what a useful example). |
Test2 | Test2 | Reading input from a port, call a subroutine, setup and use of the stack by subroutines, binary math operations (AND, OR, ROL, etc.), branching and conditions (SBIx, BRxx). Pressing key 0 and 1 on the board should light up the LEDs 0 and 1, one of the other keys the LEDs 2 to 6, pressing key 7 shuts all the LEDs down (also a rather useful program). |
Test3 | Test3 | Read the timer in polling mode, use the MOV command. A loop in the main program reads the hardware counter until it reaches zero, increments a software counter and displays its content in hex on the LEDs of the board (at least something like a clock). |
Test4 | Test4 | Timer in interrupt mode, use interrupts, interrupt vectors, BCD-arithmetic. The main program loop waits until the upper byte of a software counter reaches hex 3D. Then it waits until the timer low byte reaches 09 (one second = 15625 decimal = 3D09 hex counter pulses). The counters are reset to zero and the second counter is incremented. The seconds are displayed on the LEDs as packed BCD digits (one digit=4 bits, one byte represents two digits). The seconds are reset to zero, if 60 is reached. The seconds are output for the LEDs. |