📄 indoor-led.asm
字号:
; ---------------------------------------------------------
;
; LED Functions
;
; ---------------------------------------------------------
; Author: Manfred Langemann
; Begin of project: 11.02.2006
; Latest version generated: 22.02.2006
; Filename: Indoor-LED.asm
; ---------------------------------------------------------
;
; Functions implemented:
; - Initiate the LED Port -> Init_LED
; - Switch LED_x on -> ON_LED_x
; - Switch LED_x off -> OFF_LED_x
; - Toggle LED_x -> Toggle_LED_x
; - Switch all LED off -> OFF_LED
; - Switch all LED on -> ON_LED
;
; ---------------------------------------------------------
; LED Definitions
; ---------------------------------------------------------
;
.equ LED_DDR = DDRC
.equ LED_Port = PORTC
.equ LED_0 = $01
.equ LED_1 = $02
.equ LED_2 = $04
.equ LED_3 = $08
.equ LED_4 = $10
.equ LED_5 = $20
.equ LED_6 = $40
.equ LED_7 = $80
;
; *********************************************************
; Function Init_LED
;
; Purpose:
; Set LED Port Pins as output
; Set outputsto LOW
;
;
; *********************************************************
Init_LED:
;
; Save temporary registers
;
push temp1
; Set LED Port to output
;
ldi temp1, $FF
out LED_DDR, temp1
;
; Set Output to LOW
;
ldi temp1, $00
out LED_PORT, temp1
;
; Retrive temporary registers
;
pop temp1
ret
;
; *********************************************************
; Function ON_LED_0 to ON_LED_7
;
; Purpose:
; Set LED0 to ON
; *********************************************************
ON_LED_0:
push temp1
in temp1, LED_Port
sbr temp1, LED_0
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_1:
push temp1
in temp1, LED_Port
sbr temp1, LED_1
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_2:
push temp1
in temp1, LED_Port
sbr temp1, LED_2
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_3:
push temp1
in temp1, LED_Port
sbr temp1, LED_3
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_4:
push temp1
in temp1, LED_Port
sbr temp1, LED_4
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_5:
push temp1
in temp1, LED_Port
sbr temp1, LED_5
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_6:
push temp1
in temp1, LED_Port
sbr temp1, LED_6
out LED_Port, temp1
pop temp1
ret
;---------------------------
ON_LED_7:
push temp1
in temp1, LED_Port
sbr temp1, LED_7
out LED_Port, temp1
pop temp1
ret
;
; *********************************************************
; Function OFF_LED_0 to OFF_LED_7
;
; Purpose:
; Set LED0 to OFF
; *********************************************************
OFF_LED_0:
push temp1
in temp1, LED_Port
cbr temp1, LED_0
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_1:
push temp1
in temp1, LED_Port
cbr temp1, LED_1
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_2:
push temp1
in temp1, LED_Port
cbr temp1, LED_2
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_3:
push temp1
in temp1, LED_Port
cbr temp1, LED_3
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_4:
push temp1
in temp1, LED_Port
cbr temp1, LED_4
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_5:
push temp1
in temp1, LED_Port
cbr temp1, LED_5
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_6:
push temp1
in temp1, LED_Port
cbr temp1, LED_6
out LED_Port, temp1
pop temp1
ret
;---------------------------
OFF_LED_7:
push temp1
in temp1, LED_Port
cbr temp1, LED_7
out LED_Port, temp1
pop temp1
ret
;
; *********************************************************
; Function Toggle_LED_0 to OFF_LED_7
;
; Purpose:
; Toggle LED 0 to LED 7
; *********************************************************
Toggle_LED_0:
push temp1
in temp1, LED_Port
andi temp1, LED_0
brne Toggle_LED_0_1
call ON_LED_0
rjmp Toggle_LED_0_2
Toggle_LED_0_1:
call OFF_LED_0
Toggle_LED_0_2:
pop temp1
ret
;---------------------------
Toggle_LED_1:
push temp1
in temp1, LED_Port
andi temp1, LED_1
brne Toggle_LED_1_1
call ON_LED_1
rjmp Toggle_LED_1_2
Toggle_LED_1_1:
call OFF_LED_1
Toggle_LED_1_2:
pop temp1
ret
;---------------------------
Toggle_LED_2:
push temp1
in temp1, LED_Port
andi temp1, LED_2
brne Toggle_LED_2_1
call ON_LED_2
rjmp Toggle_LED_2_2
Toggle_LED_2_1:
call OFF_LED_2
Toggle_LED_2_2:
pop temp1
ret
;---------------------------
Toggle_LED_3:
push temp1
in temp1, LED_Port
andi temp1, LED_3
brne Toggle_LED_3_1
call ON_LED_3
rjmp Toggle_LED_3_2
Toggle_LED_3_1:
call OFF_LED_3
Toggle_LED_3_2:
pop temp1
ret
;---------------------------
Toggle_LED_4:
push temp1
in temp1, LED_Port
andi temp1, LED_4
brne Toggle_LED_4_1
call ON_LED_4
rjmp Toggle_LED_4_2
Toggle_LED_4_1:
call OFF_LED_4
Toggle_LED_4_2:
pop temp1
ret
;---------------------------
Toggle_LED_5:
push temp1
in temp1, LED_Port
andi temp1, LED_5
brne Toggle_LED_5_1
call ON_LED_5
rjmp Toggle_LED_5_2
Toggle_LED_5_1:
call OFF_LED_5
Toggle_LED_5_2:
pop temp1
ret
;---------------------------
Toggle_LED_6:
push temp1
in temp1, LED_Port
andi temp1, LED_6
brne Toggle_LED_6_1
call ON_LED_6
rjmp Toggle_LED_6_2
Toggle_LED_6_1:
call OFF_LED_6
Toggle_LED_6_2:
pop temp1
ret
;---------------------------
Toggle_LED_7:
push temp1
in temp1, LED_Port
andi temp1, LED_7
brne Toggle_LED_7_1
call ON_LED_7
rjmp Toggle_LED_7_2
Toggle_LED_7_1:
call OFF_LED_7
Toggle_LED_7_2:
pop temp1
ret
;
; *********************************************************
; Function OFF_LED
;
; Purpose:
; Switch all LED off
; *********************************************************
OFF_LED:
push temp1
ldi temp1, $00
out LED_PORT, temp1
pop temp1
ret
;
; *********************************************************
; Function ON_LED
;
; Purpose:
; Switch all LED on
; *********************************************************
ON_LED:
push temp1
ldi temp1, $FF
out LED_PORT, temp1
pop temp1
ret
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -