Architektury pota a paralelnch systm Atmega 32 Zpracoval

  • Slides: 90
Download presentation
Architektury počítačů a paralelných systémů Atmega 32 Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Architektury počítačů a paralelných systémů Atmega 32 Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti mikrokontroleru ATmega 32 • 8 -bitový RISC mikrokontroler. • Výkon - 16 MIPS/16

Vlastnosti mikrokontroleru ATmega 32 • 8 -bitový RISC mikrokontroler. • Výkon - 16 MIPS/16 MHz - 12 x rychlejší než standardní x 51 na stejné taktovací frekvenci. • Plně statická funkce. Interní kalibrovaný RC oscilátor. • Dvou-cyklová násobička na čipu. • 131 výkonných instrukcí, většinou jedno-cyklových. • 32 osmibitových registrů pro obecné použití. • 32 k. B programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10. 000 zápisových/mazacích, cyklů s volitelnou velikostí bootloader sekce.

Vlastnosti mikrokontroleru ATmega 32 • 1 k. B EEPROM paměť, 100. 000 zápisových/mazacích cyklů.

Vlastnosti mikrokontroleru ATmega 32 • 1 k. B EEPROM paměť, 100. 000 zápisových/mazacích cyklů. • 2 k. B interní SRAM paměť. • JTAG rozhraní s možností programování a ladění. • 8 -kanálový 10 -bitový A/D převodník, analogový komparátor. • Bytově orientované sériové rozhraní (TWI). • Dvě programovatelné USART komunikační rozhraní. • Master/slave SPI sériové rozhraní. • Dva 8 -bitové a jeden 16 -bitové čítače, s vlastní předděličkou.

Vlastnosti mikrokontroleru ATmega 32 • Dva 8 -bitové PWM kanály. • 4 PWM kanálů

Vlastnosti mikrokontroleru ATmega 32 • Dva 8 -bitové PWM kanály. • 4 PWM kanálů s programovatelným rozlišením 2 -16 bitů. • Programovatelný Watch-dog časovač s oscilátorem na čipu. • Čítač reálného času RTC s odděleným oscilátorem. • 6 režimů snížené spotřeby. • 32 programovatelných I/O vývodů. • Napájecí napětí 4. 5 -5. 5 V.

ATmega 32

ATmega 32

Zapojení AVR-KITu

Zapojení AVR-KITu

Podpora 1. 2. Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také

Podpora 1. 2. Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také systém AVR Studio – volné dostupné na stránkách firmy Atmel. Programování lze provádět volně dostupný softwarem.

Po rozbalení archívu „avrkit. zip“ vznikne adresář s. /avrkit. exe >obsahem Program programování. /avr-kit.

Po rozbalení archívu „avrkit. zip“ vznikne adresář s. /avrkit. exe >obsahem Program programování. /avr-kit. /avrkit. /leds diody. /i 2 c AVR Kitu > Skupina projektů pro AVR Studio 5 > Adresář s knihovnou avrkit > Adresář s projektem pro LED > Adresář s projektem pro sběrnici

Obsah adresáře - avrkit. /avrkit. c > Zdrojový kód knihovny avrkit. /avrkit. h >

Obsah adresáře - avrkit. /avrkit. c > Zdrojový kód knihovny avrkit. /avrkit. h > Hlavičkový soubor knihovny avrkit

Obsah adresáře - leds. /leds. avrgccproj > Projekt AVR Studia. /leds. c > Zdrojový

Obsah adresáře - leds. /leds. avrgccproj > Projekt AVR Studia. /leds. c > Zdrojový kód programu leds. /Debug > Adresář pro výstupní soubory. /Release > Adresář pro výstupní soubory

Obsah adresáře - i 2 c. /i 2 c. avrgccproj > Projekt AVR Studia.

Obsah adresáře - i 2 c. /i 2 c. avrgccproj > Projekt AVR Studia. /i 2 c. c > Zdrojový kód programu i 2 c. /Debug > Adresář pro výstupní soubory. /Release > Adresář pro výstupní soubory

Obsah adresáře - demo. /demoleds. hex > Demo program pro LEDky. /demo 8 x

Obsah adresáře - demo. /demoleds. hex > Demo program pro LEDky. /demo 8 x 8. hex > Demo program pro led displej. /demoi 2 c. hex > Demo program pro sbìrnici i 2 c

ATmega 32 - 4 V/V porty (PA, PB, PC a PD) Konfigurace portů (A,

ATmega 32 - 4 V/V porty (PA, PB, PC a PD) Konfigurace portů (A, B, C a D) pomoci registrů: n n n DDRx - zápisem log. 1 na konkrétní bit tohoto registru určíme, že daný pin bude výstupní a pří log. 0 bude vstupní. PORTx - když je pin definovaný jako vstupní a v reg. PORTx je definována log. 1 je tento pin udržován v klidovém stavu na hodnotu 1. Při log. 0 zapsané do reg. PORTx a když je pin definován jako výstupní určuje reg. PORTx log. hodnotu na konkrétním pinu. PINx - Zapsáním log. 1 na pin tohoto registru nastaví log. 1 na konkrétním pinu nezávisle na

Postup při programování mikropočítače AVR-KITu • • • Aktivace BOOTLoader - stlačením tlačítka PIND

Postup při programování mikropočítače AVR-KITu • • • Aktivace BOOTLoader - stlačením tlačítka PIND 4, pak stlačením a uvolnění tlačítka RESET - procesor se uvede do módu programování paměti FLASH - Sviti LED dioda připojenou na PIND 2. Restart procesoru - stlačení a uvolnění tlačítka RESET. Po ukončení programování program avrkit. exe zůstává aktivní a je připraven vypisovat data, které bude mikropočítač zapisovat na sériový port pomocí funkce printf. Nechcete-li tuto funkci

§ Programování AVR-KITu program avrkit. exe (archív avrkit. exe -h avrkit. zip). • •

§ Programování AVR-KITu program avrkit. exe (archív avrkit. exe -h avrkit. zip). • • • § -h show this help -d serial port device (def: 'COM 1') -e erase AVR flash only -l list available COM ports -n no terminal mode after programming -s show AVR flash only -t terminal mode only -v verify AVR flash memory only -x show HEX file only avrkit. exe -d COM 3 demoleds. hex

Architektury počítačů a paralelných systémů Cvičení na: Atmel EVMS-mega 128 Zpracoval: Doc. Ing. Lačezar

Architektury počítačů a paralelných systémů Cvičení na: Atmel EVMS-mega 128 Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojové desky • Obsahuje RISC MCU Atmel ATmega 128 -16 AI TQFP 64

Vlastnosti vývojové desky • Obsahuje RISC MCU Atmel ATmega 128 -16 AI TQFP 64 • Pro vytváření programového kódu - Atmel AVR Studio • Napájení: • Power konektor (např. z wall adapteru) • USB (chráněno SMD tavnou vyměnitelnou pojistkou) • Možnosti programování mikrokontroleru: • ISP či JTAG programovací rozhraní (JTAG ladění kódu) • USB komunikační rozhraní (bootloader-u MCU)

Vlastnosti vývojové desky Uživatelská rozhraní: • 4 LED diody • 8 tlačítek • Multiplexovaný

Vlastnosti vývojové desky Uživatelská rozhraní: • 4 LED diody • 8 tlačítek • Multiplexovaný sedmisegmentový LED display (4 digity) • LCD display (2 x 16 znaků, podsvětlený, odnímatelný) • Komunikační rozhraní: • RS-232 (canon 9 konektor) • USB (konektor typu B) • SPI (pinová lišta) • I 2 C (pinová lišta)

Vlastnosti vývojové desky Ostatní rozhraní: • 7 univerzálních vstupů/výstupů (pinová lišta) • 2 ADC

Vlastnosti vývojové desky Ostatní rozhraní: • 7 univerzálních vstupů/výstupů (pinová lišta) • 2 ADC vstupy/výstupu ref. napětí (pinová lišta) • Rozhraní pro připojení externí paměti • Piny umožňující napájení připojených modulů napětím +5 V

Vlastnosti vývojové desky Deska dále obsahuje: • 5 V napěťový regulátor • Nastavitelnou napěťovou

Vlastnosti vývojové desky Deska dále obsahuje: • 5 V napěťový regulátor • Nastavitelnou napěťovou referenci pro interní AD • Krystal 14. 74567 MHz v patici - hlavní zdroj hod. signálu • Krystal 32. 768 k. Hz pro RTC • Piezoměnič bez vlastního budiče (beeper) • Trimr pro nastavení kontrastu LCD displeje • Resetovací tlačítko • Rozměry desky(v x š x d): 25. 0 mm x 146. 4 mm x 68. 0 mm

Vlastnosti mikrokontroleru ATmega 128 -16 AI TQFP 64 • 8 -bitový RISC mikrokontroler. •

Vlastnosti mikrokontroleru ATmega 128 -16 AI TQFP 64 • 8 -bitový RISC mikrokontroler. • Výkon - 16 MIPS/16 MHz - 12 x rychlejší než standardní x 51 na stejné taktovací frekvenci. • Plně statická funkce. Interní kalibrovaný RC oscilátor. • Dvou-cyklová násobička na čipu. • 133 výkonných instrukcí, většinou jedno-cyklových. • 32 osmibitových registrů pro obecné použití. • 128 k. B programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10. 000 zápisových/mazacích, cyklů s volitelnou velikostí bootloader sekce.

Vlastnosti mikrokontroleru ATmega 128 -16 AI TQFP 64 • 4 k. B EEPROM paměť,

Vlastnosti mikrokontroleru ATmega 128 -16 AI TQFP 64 • 4 k. B EEPROM paměť, 100. 000 zápisových/mazacích cyklů. • 4 k. B interní SRAM paměť. • JTAG rozhraní s možností programování a ladění. • 8 -kanálový 10 -bitový A/D převodník, analogový komparátor. • Bytově orientované sériové rozhraní (TWI). • Dvě programovatelné USART komunikační rozhraní. • Master/slave SPI sériové rozhraní. • Dva 8 -bitové a dva 16 -bitové čítače, s vlastní předděličkou.

Vlastnosti mikrokontroleru ATmega 128 -16 AI TQFP 64 • Dva 8 -bitové PWM kanály.

Vlastnosti mikrokontroleru ATmega 128 -16 AI TQFP 64 • Dva 8 -bitové PWM kanály. • 6 PWM kanálů s programovatelným rozlišením 2 -16 bitů. • Programovatelný Watch-dog časovač s oscilátorem na čipu. • Čítač reálného času RTC s odděleným oscilátorem. • 6 režimů snížené spotřeby. • 53 programovatelných I/O vývodů. • Napájecí napětí 4. 5 -5. 5 V.

Podpora 1. 2. Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také

Podpora 1. 2. Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také systém AVR Studio – volné dostupné na stránkách firmy Atmel. Programování lze provádět volně dostupný softwarem.

Stručný popis 1. 2. Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR firmy Atmel

Stručný popis 1. 2. Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR firmy Atmel s označením Atmel EVMS-mega 128. Maximálním výkon.

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Atmel EVMS-mega 128

Blokové schéma

Blokové schéma

Napájení

Napájení

Jumper JP PWR

Jumper JP PWR

Sériové rozhraní RS-232 JP UART – 1

Sériové rozhraní RS-232 JP UART – 1

Význam vývodů konektoru RS 232 (UART)

Význam vývodů konektoru RS 232 (UART)

Logická vazba mezí tlačítky a MCU

Logická vazba mezí tlačítky a MCU

LED - display

LED - display

Řídící signály a pozicí LED display

Řídící signály a pozicí LED display

LCD display a vývody MCU

LCD display a vývody MCU

Vývody ISP a JTAG

Vývody ISP a JTAG

Nahrávání programu do MCU Vlastnosti vývojové desky

Nahrávání programu do MCU Vlastnosti vývojové desky

Programování MCU

Programování MCU

Hlavička - 1 ; ********************** ; Program : counter 0 ; Version : v

Hlavička - 1 ; ********************** ; Program : counter 0 ; Version : v 1. 0 ; Hardware : atmega 128 -16 ai TQFP 64 ; Xtall : 14. 7456 MHz ; Author : ; **********************

Hlavička – 2. 1 Evms-mega 128 v 1. 0 board congiguration ; ********************************* ;

Hlavička – 2. 1 Evms-mega 128 v 1. 0 board congiguration ; ********************************* ; Jumpers: ; Power ; depends on power supply used (REG or USB ; VREF ; Don`t care (for example 2. 5 v) ; LEE ; Don`t care ; UART 1 ; Don`t care ; ; Connectors: ; ;

Hlavička – 2. 2 Evms-mega 128 v 1. 0 board congiguration ; ********************************* ;

Hlavička – 2. 2 Evms-mega 128 v 1. 0 board congiguration ; ********************************* ; Connectors: ; LCD display ; Don`t care ; Ext. memory ; Don`t care ; ADC ; Don`t care ; SPI ; Don`t care ; I 2 C ; Don`t care ; Misc ; Don`t care ; ;

Sekce include ; ====== Includes =====. NOLIST. include “m 128 def. inc”. LIST

Sekce include ; ====== Includes =====. NOLIST. include “m 128 def. inc”. LIST

Sekce konstant ; ====== Constants =====. EQU Baud. Const = 7 ; Baudova rychlost.

Sekce konstant ; ====== Constants =====. EQU Baud. Const = 7 ; Baudova rychlost. EQU Buff. Len = 8 ; Velikost bufferu

Sekce pojmenování registrů ; ======= Register definitions =====. def Zero. Reg = r 1.

Sekce pojmenování registrů ; ======= Register definitions =====. def Zero. Reg = r 1. def FFReg = r 2. def PDel. Reg = r 16. .

Sekce pamětí SRAM ; ===== Data Segment =====. DSEG. Var. BYTE 1 ; 1

Sekce pamětí SRAM ; ===== Data Segment =====. DSEG. Var. BYTE 1 ; 1 bytova prom. na adr. Var 1. Buffer. BYTE 8 ; 8 bytova prom. na adr. Buffer

Sekce EEPROM ; ==== EEPROM segment =======. ESEG Const. Arr. DB 0 x 00,

Sekce EEPROM ; ==== EEPROM segment =======. ESEG Const. Arr. DB 0 x 00, 0 x 00 ; definuje tabulku constant 0 x 00, 0 x 00 na adrese Const. Arr

Sekce MAKER ; ====== MACROs =====. MACRO INC_Z 16 add ZL, @0 adc ZH,

Sekce MAKER ; ====== MACROs =====. MACRO INC_Z 16 add ZL, @0 adc ZH, @1. ENDM

Programová sekce ; ===== Program segment ======. CSEG. org 0 x 0000 ; určení

Programová sekce ; ===== Program segment ======. CSEG. org 0 x 0000 ; určení adresy. ldi Tmp. Reg, 0 ; instrukce Char. Tab. db 0 x 10, 0 x 02 ; definuje tab. konstant

Assembler n n n ARITHMETIC AND LOGIC INSTRUCTIONS: ADD Rd, Rr Add Two Registers

Assembler n n n ARITHMETIC AND LOGIC INSTRUCTIONS: ADD Rd, Rr Add Two Registers Rd + Rr Z, C, N, V, H 1 ADC Rd, Rr Add with Carry Two Registers Rd + Rr + C Z, C, N, V, H 1 SUB Rd, Rr Subtract Two Registers Rd - Rr Z, C, N, V, H 1 SUBI Rd, K Subtract Constant from Register Rd - K Z, C, N, V, H 1 n… n n BRANCH INSTRUCTIONS : RJMP k Relative Jump PC + k + 1 RCALL k Relative Subroutine Call PC + k + 1 RET Subroutine Return PC STACK …

Assembler n n n DATA TRANSFER INSTRUCTIONS: LD Rd, Z Load Register Indirect Rd

Assembler n n n DATA TRANSFER INSTRUCTIONS: LD Rd, Z Load Register Indirect Rd (Z) ST Z, Rr Store Register Indirect (Z) Rr MOV Rd, Rr Move between Registers Rd Rr … BIT AND BIT-TEST INSTRUCTIONS: SBI P, b Set Bit in I/O Register I/O(P, b) 1 CBI P, b Clear Bit in I/O Register I/O(P, b) 0 LSL Rd Logical Shift Left Rd(n+1) Rd(n), Rd(0) 0 Z, C, N, V 1 LSR Rd Logical Shift Right Rd(n) Rd(n+1), Rd(7) 0 Z, C, N, V 1 …

Výuková deska EVMS-mega 128 v 1. 0 – Výukové příklady 1. 0 - LEDs

Výuková deska EVMS-mega 128 v 1. 0 – Výukové příklady 1. 0 - LEDs rotating light 0 1. 1 - LEDs rotating light 1 2. 0 - Buttons 0 3. 0 - Beeper 0 3. 1 - Beeper 1 4. 0 - LED display 0 5. 0 - LCD display 0 5. 1 - LCD display 1 6. 0 - UARTs 0

Architektury počítačů Cvičení na: EVM – ATmega 8535 v 1. 0 Zpracoval: Doc. Ing.

Architektury počítačů Cvičení na: EVM – ATmega 8535 v 1. 0 Zpracoval: Doc. Ing. Lačezar Ličev, CSc.

Vlastnosti vývojového modulu 1. 2. 3. 4. 5. Obsahuje RISC-ový mikrokontroler Atmel ATmega 8535

Vlastnosti vývojového modulu 1. 2. 3. 4. 5. Obsahuje RISC-ový mikrokontroler Atmel ATmega 8535 -16 JC(JI). Programování je možné provádět volně dostupným vývojovým softwarem. Mikrokontroler se programuje přímo na základové desce progr. kabelem. Modul obsahuje 4 sedmi-segmentové LED displeje, 8 LED diod a 8 tlačítek. Modul dále obsahuje odpojitelné sériové rozhraní RS-232.

Vlastnosti vývojového modulu 6. 7. 8. 9. 10. Většina I/O vývodů MCU je přístupná,

Vlastnosti vývojového modulu 6. 7. 8. 9. 10. Většina I/O vývodů MCU je přístupná, je možné připojit rozšiřující hardware. Zdrojem hodinového signálu je krystal 14. 7456 MHz umístěný v patici. Pro vnitřní RTC obvod mikrokontroleru je na desce umistěný odpojitelný krystal 32. 768 k. Hz. Mikrokontroler je možné resetovat tlačítkem RESET. Rozměry (v x š x d): 27 mm x 114 mm x 74 mm

Vlastnosti mikrokontroleru ATmega 8535 -16 JI 1. 2. 3. 4. 5. 8 -bitový RISC

Vlastnosti mikrokontroleru ATmega 8535 -16 JI 1. 2. 3. 4. 5. 8 -bitový RISC mikrokontroler. Výkon - 16 MIPS / 16 MHz - 12 x rychlejší než standardní x 51 na stejné taktovací frekvenci. Plně statická funkce. Dvou-cyklová násobička na čipu. 130 výkonných instrukcí, většinou jednocyklových.

Vlastnosti mikrokontroleru ATmega 8535 -16 JI 6. 7. 8. 9. 10. 32 osmibitových registrů

Vlastnosti mikrokontroleru ATmega 8535 -16 JI 6. 7. 8. 9. 10. 32 osmibitových registrů pro obecně použití. 8 k. B programová FLASH paměť, programovatelná přímo v aplikaci s možností uzamknutí, 10. 000 zápisových/mazacích cyklů. 512 B EEPROM paměť, 100. 000 zápisových/mazacích cyklů. 512 B interní SRAM paměť. 8 -kanálový 10 -bitový A/D převodník, analogový komparátor.

Vlastnosti mikrokontroleru ATmega 8535 -16 JI 12. 13. 14. 15. 16. 17. 18. 19.

Vlastnosti mikrokontroleru ATmega 8535 -16 JI 12. 13. 14. 15. 16. 17. 18. 19. Programovatelný USART. Master/slave SPI sériové rozhraní. Dva 8 -bitové čítače, jeden 16 -bitový. Programovatelní Watch-dog časovač. Čítač reálného času RTC. Tři režimy snížení spotřeby: active, idle a power-down. 32 programovatelných I/O vývodů. Napájecí napětí 4. 5 -5. 5 V

Použití základové desky 1. 2. 3. 4. Výuka mikroprocesorové techniky. Vestavěné řídící systémy (měření,

Použití základové desky 1. 2. 3. 4. Výuka mikroprocesorové techniky. Vestavěné řídící systémy (měření, řízení a regulace). Komunikace. Řízení motorů.

Podpora 1. 2. Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také

Podpora 1. 2. Pro vývoj aplikací lze použít vývojová prostředí různých výrobců a také systém AVR Studio – volné dostupné na stránkách firmy Atmel. Programování lze provádět volně dostupný softwarem.

Stručný popis 1. 2. Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR firmy Atmel

Stručný popis 1. 2. Vývojový modul obsahuje RISC mikrokontroler vývojové řady AVR firmy Atmel s označením ATmega 8535. Maximálním výkon 16 MIPS.

Blokové schéma

Blokové schéma

Rozmístění konektorů a propojek

Rozmístění konektorů a propojek

Napájení

Napájení

Vývody rozšiřujících konektorů

Vývody rozšiřujících konektorů

Význam vývodů konektorů

Význam vývodů konektorů

Rozšiřující konektory CONx

Rozšiřující konektory CONx

Programovací rozhraní ISP

Programovací rozhraní ISP

Používání LED-display

Používání LED-display

RS-232

RS-232

Další použití 1. 2. 3. 4. Používání 8 LED diod. Používání tlačítek. Používání 4

Další použití 1. 2. 3. 4. Používání 8 LED diod. Používání tlačítek. Používání 4 sedmi-segmentových LED displejů. Používání sériového rozhraní RS-232.

Programování MCU

Programování MCU

Hlavička ; ********************** ; Program : Counter 0 ; Version : v 1. 0

Hlavička ; ********************** ; Program : Counter 0 ; Version : v 1. 0 ; Hardware : EVM-ATmega 8535 v 1. 0 ; (Xtall 14. 7456 MHz) ; Author : ; **********************

Short description ; *********************** ; Short description ; --------; Program shows on LED diodes

Short description ; *********************** ; Short description ; --------; Program shows on LED diodes actual state of all buttons (button down = lighting LED).

Výpis používaných souborů Includes ; ===== Includes ======. NOLIST. include "m 8535 def. inc".

Výpis používaných souborů Includes ; ===== Includes ======. NOLIST. include "m 8535 def. inc". LIST

Constants

Constants

Register definitions ; ==== Register definitions =====. DEF Zero. Reg = r 1. DEF

Register definitions ; ==== Register definitions =====. DEF Zero. Reg = r 1. DEF Tmp. Reg = r 16. DEF Disp. Pos = r 2. DEF PDel. Reg = r 21

Data segment ; =====DATA segment =====. DSEG

Data segment ; =====DATA segment =====. DSEG

EEPROM segment ; ===== EEPROM segment =======. ESEG

EEPROM segment ; ===== EEPROM segment =======. ESEG

MACRO segment ; ====== MACROs ======

MACRO segment ; ====== MACROs ======

PROGRAM segment ; ===== PROGRAM segment =======. CSEG

PROGRAM segment ; ===== PROGRAM segment =======. CSEG

Interrupt vectors ; ******** Interrupt vectors *******. ORG 0 x 0000 rjmp RESET ;

Interrupt vectors ; ******** Interrupt vectors *******. ORG 0 x 0000 rjmp RESET ; Reset Handler rjmp EXT_INT 0 ; External Interrupt … rjmp EXT_INT 1 ; External Interrupt …. .

Reset ; ********** Reset **********. ORG 0 x 0015 Reset: clr Zero. Reg ldi

Reset ; ********** Reset **********. ORG 0 x 0015 Reset: clr Zero. Reg ldi Tmp. Reg, low(RAMEND) ; Initialize … out. SPL, Tmp. Reg. .

Unused interrupt vectors ; ******* Unused interrupt vectors ******* EXT_INT 0: EXT_INT 1: TIM

Unused interrupt vectors ; ******* Unused interrupt vectors ******* EXT_INT 0: EXT_INT 1: TIM 2_COM: TIM 2_OVF: TIM 1_CAP: TIM 1_COMA: . . SPM_RDY: reti

MAIN ; *********** M A I N *********** Main: rcall Test. Buttons ; Call

MAIN ; *********** M A I N *********** Main: rcall Test. Buttons ; Call subroutine Test. Buttons com Buttons ; Buttons <= not(Buttons) out Port. C, Buttons ; Port. C <= Buttons rjmp Main ; Jmp to Main

Podprogram - Delay ; ****** Delay (PDel. Reg[ms]) ******** Delay 1 m: mov PDel.

Podprogram - Delay ; ****** Delay (PDel. Reg[ms]) ******** Delay 1 m: mov PDel. Reg 2, PDel. Reg ; PDel. Reg 2<=PDel. Reg ; Repeat Delay 1 m 2: dec PDel. Reg 0 ; Dec(PDel. Reg 0) brne Delay 1 m 2 ; Until PDel. Reg 0 = 0 dec PDel. Reg 1 ; Dec(PDel. Reg 1) brne Delay 1 m 0 ; Until

Assembler n n n ARITHMETIC AND LOGIC INSTRUCTIONS: ADD Rd, Rr Add Two Registers

Assembler n n n ARITHMETIC AND LOGIC INSTRUCTIONS: ADD Rd, Rr Add Two Registers Rd + Rr Z, C, N, V, H 1 ADC Rd, Rr Add with Carry Two Registers Rd + Rr + C Z, C, N, V, H 1 SUB Rd, Rr Subtract Two Registers Rd - Rr Z, C, N, V, H 1 SUBI Rd, K Subtract Constant from Register Rd - K Z, C, N, V, H 1 n… n n BRANCH INSTRUCTIONS : RJMP k Relative Jump PC + k + 1 RCALL k Relative Subroutine Call PC + k + 1 RET Subroutine Return PC STACK …

Assembler n n n DATA TRANSFER INSTRUCTIONS: LD Rd, Z Load Register Indirect Rd

Assembler n n n DATA TRANSFER INSTRUCTIONS: LD Rd, Z Load Register Indirect Rd (Z) ST Z, Rr Store Register Indirect (Z) Rr MOV Rd, Rr Move between Registers Rd Rr … BIT AND BIT-TEST INSTRUCTIONS: SBI P, b Set Bit in I/O Register I/O(P, b) 1 CBI P, b Clear Bit in I/O Register I/O(P, b) 0 LSL Rd Logical Shift Left Rd(n+1) Rd(n), Rd(0) 0 Z, C, N, V 1 LSR Rd Logical Shift Right Rd(n) Rd(n+1), Rd(7) 0 Z, C, N, V 1 …