Uitleg
Deze webpagina bevat bestanden met Register en Bitnamen die de AVR programmeur kan gebruiken voor het schrijven van assembleer (ASM) programma's. De bestanden zijn eenvoudig te gebruiken in de broncode door deze simpelweg aan het begin ervan te vermelden. De bestanden worden op de volgende wijze aangegeven:

 <AVR typenummer> def.inc

Als voorbeeld, de AT90S8515 programma's hebben de volgende assembleer aanduiding nodig:

 .include "8515def.inc"

Verders worden de aanwijzer registers R26 - R31 aangeduidt aan de hand van de volgende tabel:

Tabel 1. Aanwijzer Definitie namen

RegisterNaam
R26 XL
R27 XH
R28 YL
R29 YH
R30 ZL
R31 ZH

 Notitie:  Voor de AT90S1200 of gelijken, de
 enige gedefinieerde aanwijzer is R30 - ZL.


Voor controller's met SRAM, de constante "RAMEND" is gedefineerd. Voor alle andere AVR's, de constanten "FLASHEND" en "EEPROMEND" zijn gedefineerd. Dit is handig om de Stack-aanwijzer te wijzen naar het hoogste interne SRAM adres. Ook de interrupt adressen zijn gedefineerd, en kunnen samen worden gebruikt met de ".org" aanduiding in the assembler, om een interrrupt vector te laten wijzen naar de juiste geheugen locatie. Zie bestandenlijst voor de details.


Om te voorkomen dat instructies niet voorkomen in de toegepaste microcontroller, bevatten alle bestanden een ".device" aanduiding. Als er nieuwe AVR's op de markt komen, worden er ook nieuwe bestanden beschikbaar gemaakt. Gebruikte Bitnamen in de bestanden worden gedefinieerd met de nummers 0-7. De programmeur moet opletten op het verschil tussen bitnamen met instructies die bitmaskers gebruiken als operanden, dit zijn de instructies die bitnummers gebruiken als operanden.
Instructies die bitmaskers gebruiken zijn:

  • CBR- Clear Bit in Register
  • SBR - Set Bit in Register


  • Instructies die gebruik maken van bitnummers zijn:

  • CBI - Clear Bit in I/O register
  • SBI - Set Bit in I/O register
  • SBIC- Skip if Bit in I/O Register Cleared
  • SBIS- Skip if Bit in I/O Register Set
  • SBRC- Skip if Bit in Register Cleared
  • SBRS- Skip if Bit in Register Set
  • BLD- Bit LoaD from T-flag
  • BST- Bit STore to T-flag


  • Om een bitnummer om te zetten naar een bitmasker kan je de shift-left bewerking van de assembler gebruiken ("<<") Merk op dat de "+" operator voorrang heeft over "<<".
    Bekijk het volgende programma voorbeeld:

     sbr  r16,(1<<SE)+(1<<SM) ; zet SE en SM
     out  MCUCR,r16   ; in MCUCR




    Klik HIER om alle AVR definitiebestanden op te halen. (inc = include)
    De inhoud van het AVR000.zip bestand bevat de volgende AVR typen:

  • 1200def.inc - AT90S1200
  • 2313def.inc - AT90S2313
  • 2323def.inc - AT90S2323
  • 2343def.inc - AT90S2343
  • 4414def.inc - AT90S4414
  • 4433def.inc - AT90S4433
  • 4434def.inc - AT90S4434
  • 8515def.inc - AT90S8515
  • 8535def.inc - AT90S8535
  • m103def.inc - ATMEGA103
  • m128def.inc - ATMEGA128
  • m161def.inc - ATMEGA161
  • m162def.inc - ATMEGA162
  • m163def.inc - ATMEGA163
  • m165def.inc - ATMEGA165
  • m168def.inc - ATMEGA168
  • m169def.inc - ATMEGA169
  • m16def.inc - ATMEGA16
  • m2560def.inc - ATMEGA2560
  • m2561def.inc - ATMEGA2561
  • m323def.inc - ATMEGA323
  • m3250def.inc - ATMEGA3250
  • m325def.inc - ATMEGA325
  • m3290def.inc - ATMEGA3290
  • m329def.inc - ATMEGA329
  • m32def.inc - ATMEGA32
  • m406def.inc - ATMEGA406
  • m48def.inc - ATMEGA48
  • m469def.inc - ATMEGA469
  • m64def.inc - ATMEGA64
  • m8515def.inc - ATMEGA8515
  • m8535def.inc - ATMEGA8535
  • m88def.inc - ATMEGA88
  • m8def.inc - ATMEGA8
  • pwm2def.inc - PWM2
  • pwm3def.inc - PWM3
  • tn11def.inc - ATTINY11
  • tn12def.inc - ATTINY12
  • tn13def.inc - ATTINY13
  • tn15def.inc - ATTINY15
  • tn22def.inc - ATTINY22
  • tn2313def.inc - ATTINY2313
  • tn26def.inc - ATTINY26
  • tn28def.inc - ATTINY28
  • tn45def.inc - ATTINY45
  • tn861def.inc - ATTINY861