📄 led.avr
字号:
.INCLUDE "8515DEF.INC" ;CPU配置文件
.ORG $0000
RJMP RESET ;上电复位跳转到主程序
.ORG $0013 ;代码段定位,跳过中断区
RESET:
LDI R16,LOW(RAMEND) ;设置堆栈指针
OUT SPL,R16
LDI R16,HIGH(RAMEND)
OUT SPH,R16
LDI R16,0B11111111 ;设置PA口为输出端口
OUT DDRA,R16
START:
LDI R17,0B11111110 ;PA0输出低电平,LED0亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B11111101 ;PA1输出低电平,LED1亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B11111011 ;PA2输出低电平,LED2亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B11110111 ;PA3输出低电平,LED3亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B11101111 ;PA4输出低电平,LED4亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B11011111 ;PA5输出低电平,LED5亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B10111111 ;PA6输出低电平,LED6亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
LDI R17,0B01111111 ;PA7输出低电平,LED7亮。
OUT PORTA,R17
LDI R16,50 ;延时1秒
RCALL DELAY
RJMP START ;循环执行
DELAY:
PUSH R16 ;延时子程序,延时时间由R16调整
DELAY0:
PUSH R16
DELAY1:
PUSH R16
DELAY2:
PUSH R16
DELAY3:
DEC R16
BRNE DELAY3
POP R16
DEC R16
BRNE DELAY2
POP R16
DEC R16
BRNE DELAY1
POP R16
DEC R16
BRNE DELAY0
POP R16
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -