⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 indoor-led.asm

📁 sd card input,output source program
💻 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 + -