The following is an assembly program for making an LED flash. The comments are written in C, which is very clear.
**********************************************************************
//CPU: mega32
//Compiler: iar
#include
NAME main
PUBLIC main
ORG RESET_vect ; Reset interrupt vector
RJMP main
ORG INT0_vect ; External interrupt 0 interrupt vector
rjmp eint0
main
ldi r16,0x99
out DDRD,r16
lds r1,DDRD
cli
ldi r16,high(RAMEND) ;get the high byte of the highest address of internal RAM
out SPH,r16 ;put into the high position of SP
ldi r16,low(RAMEND) ;get the low byte of the lowest address of internal RAM
out SPL,r16 ;put into the low position of SP
;DDRD |= (1 << 7);//PD7 is set as outputin
r16,DDRD
sbr r16,1<<7
out DDRD,r16
;eint0_init();
call eint0_init
;sei();
sei
;while(1);
s: rjmp s
;#pragma vector = INT0_vect
;__interrupt void eint0(void) //INT0 interrupt service
routineeint0:
;PORTD ^= 1<<7;//PD7 is invertedin
r16,PORTD
sbrs r16,7
ldi r17,1<<7
eor r16,r17
out PORTD,r16
reti
;void eint0_init(void)
eint0_init:
;DDRD &= ~(1 << 2);//INT0 pin inputin
r16,DDRD
cbr r16,1<<2
out DDRD,r16
;PORTD |= (1 << 2);//INT0 internal pull-up resistor is validin
r16,PORTD
sbr r16,1<<2
out PORTD,r16
;SFIOR &= ~(1<
cbr r16,1<
;MCUCR |= (1 << ISC01) | (1 << ISC00);//INT0 falling edge triggerin
r16,MCUCR
sbr r16,(1 << ISC01) | (1 << ISC00)
out MCUCR,r16
;GICR |= (1 << INT0);//Enable INT0
in r16,GICR
sbr r16,1 << INT0
out GICR,r16
ret
END main
************************************************ *********************
Previous article:AVR MCU Getting Started Series (17) AVR IO Input Matrix Key Scanning Program
Next article:AVR MCU and GCC Programming Methods
Recommended ReadingLatest update time:2024-11-16 15:43
- Popular Resources
- Popular amplifiers
- Principles and Applications of Single Chip Microcomputers 3rd Edition (Zhang Yigang)
- Metronom Real-Time Operating System RTOS for AVR microcontrollers
- Learn C language for AVR microcontrollers easily (with video tutorial) (Yan Yu, Li Jia, Qin Wenhai)
- ATmega16 MCU C language programming classic example (Chen Zhongping)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- Innolux's intelligent steer-by-wire solution makes cars smarter and safer
- 8051 MCU - Parity Check
- How to efficiently balance the sensitivity of tactile sensing interfaces
- What should I do if the servo motor shakes? What causes the servo motor to shake quickly?
- 【Brushless Motor】Analysis of three-phase BLDC motor and sharing of two popular development boards
- Midea Industrial Technology's subsidiaries Clou Electronics and Hekang New Energy jointly appeared at the Munich Battery Energy Storage Exhibition and Solar Energy Exhibition
- Guoxin Sichen | Application of ferroelectric memory PB85RS2MC in power battery management, with a capacity of 2M
- Analysis of common faults of frequency converter
- In a head-on competition with Qualcomm, what kind of cockpit products has Intel come up with?
- Dalian Rongke's all-vanadium liquid flow battery energy storage equipment industrialization project has entered the sprint stage before production
- Allegro MicroSystems Introduces Advanced Magnetic and Inductive Position Sensing Solutions at Electronica 2024
- Car key in the left hand, liveness detection radar in the right hand, UWB is imperative for cars!
- After a decade of rapid development, domestic CIS has entered the market
- Aegis Dagger Battery + Thor EM-i Super Hybrid, Geely New Energy has thrown out two "king bombs"
- A brief discussion on functional safety - fault, error, and failure
- In the smart car 2.0 cycle, these core industry chains are facing major opportunities!
- The United States and Japan are developing new batteries. CATL faces challenges? How should China's new energy battery industry respond?
- Murata launches high-precision 6-axis inertial sensor for automobiles
- Ford patents pre-charge alarm to help save costs and respond to emergencies
- New real-time microcontroller system from Texas Instruments enables smarter processing in automotive and industrial applications
- Suspicious signal from outer space
- Download gift: USB Type C related development and test materials, read it when you have nothing to do, and you will become a master by accident
- Qorvo explains WIFI and 5G clearly
- SPIN3201 (STSPIN32F0) three-resistance control board: FOC motor drive schematic/code/debugging documents and other detailed information...
- Should segment display screens be backlit? How to add it?
- Installation and setup of CCS StarterWare, successfully compiling a project with CCS7.3
- EEWORLD University ---- Operational Amplifier Video Tutorial
- Have you ever encountered the problem of USB drive repair? Is there any good tool you can recommend?
- Several major wireless technologies
- How to modify the video recorder startup screen