Avr Assembly LED Blink

Category: Miscellaneous

Designer: RANA MUHAMMAD ADNAN KHALIL

Notes

This is a simple LED blink demo project in assembly language for AVR microcontrollers. In this project ATMEGA16 is used. Nowadays, mostly programmers and developers used High level languages like C, C# (C-sharp) etc. But if you write your code in assembly language for microcontroller (which is not very easy) you will have full control on your code, espacially with respect to consumption of clock cyles (timing). The code for assembly language is given below. .INCLUDE "m16def.inc" .ORG 0X0000 RJMP MAIN MAIN: LDI R17,0XFF OUT DDRB,R17 OUT DDRA,R17 LDI R16,0X0F ;LDI R19,0X02 LOOP: ;ADD R16,R19 SWAP R16 COM R17 OUT PORTA,R17 CALL DELAY OUT PORTB,R16 RJMP LOOP DELAY: LDI R24,0X00 LDI R21,0XFF L1: LDI R22,0X0F L2: LDI R23,0X2F L3: NOP DEC R23 CP R23,R24 ;BREQ L2 BRNE L3 DEC R22 CP R22,R24 ;BREQ L1 BRNE L2 DEC R21 CP R21,R24 BRNE L1 RET

Back to all circuits