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

📄 indoor-main.asm

📁 sd card input,output source program
💻 ASM
字号:
; ---------------------------------------------------------
;
; Indoor Unit Programm
;
; ---------------------------------------------------------
; Author:					Manfred Langemann
; Begin of project:			20.01.2006
; Latest version generated:	22.02.2006:
; Filename:					Indoor-Main.asm
; ---------------------------------------------------------
; Comments for ISP Programming:
;	- Disabe JTAG interface fuse in order to use Port C (Pin:2,3,4,5)
;	- Set external high frequency crystal oscillator flag fuse for 8MHz;
;	  CKSEL=1111, SUT=10
;	  which refers to start up time: 16K CK + 4 ms
;
; ---------------------------------------------------------
; Assembler and Processor definitions
; ---------------------------------------------------------
;
	.NOLIST
	.include "m32def.inc"; ATmega32
	.LIST
;
; ---------------------------------------------------------
; General purpuse definitions
; ---------------------------------------------------------
;
	.def	temp1 			= r16			; Temporary register
	.def	temp2 			= r17			; Temporary register
	.def	temp3 			= r18			; Temporary register
	.def	temp4 			= r19			; Temporary register

	.def	delay1			= r20			; Register used for delay
	.def	delay2			= r21			; Register used for delay
	.def	delay3			= r22			; Register used for delay

	.equ	Timeout_10		= 10			; Timeout value
	.equ	Timeout_20		= 20			; Timeout value
	.equ	Timeout_100		= 100			; Timeout value
	.equ	Timeout_200		= 200			; Timeout value
	.equ	Timeout_1000	= 1000			; Timeout value
;
; ---------------------------------------------------------
; Data Segment
; Define the data in data segment (max SRAM_SIZE Bytes = 2048 for ATmega32)
; ---------------------------------------------------------
;
.DSEG
;
; ---------------------------------------------------------
; SD Card Variables in SRAM
; ---------------------------------------------------------
SDCard_Command_00:		.BYTE 6		; Reserve 6 bytes in SRAM for SD Card Command 00: Reset card
SDCard_Command_01:		.BYTE 6		; Reserve 6 bytes in SRAM for SD Card Command 01: Activate card
SDCard_Command_16:		.BYTE 6		; Reserve 6 bytes in SRAM for SD Card Command 16; Read a block of bytes
SDCard_Command_24:		.BYTE 6		; Reserve 6 bytes in SRAM for SD Card Command 24; Write a block of bytes
SDCard_DataBuffer:		.BYTE 512	; Reserve 512 bytes in SRAM for tranfer of bytes to and from SD Card
SDCard_Block_Index:		.BYTE 4		; 512 byte block index number on SD card
;
; ---------------------------------------------------------
; Code Segment
; ---------------------------------------------------------
;
.CSEG
.ORG $0000
	jmp		RESET		; RESET			Reset Handler
	jmp		RESET		; EXT_INT0		IRQ0 Handler
	jmp		RESET		; EXT_INT1		IRQ1 Handler
	jmp		RESET		; EXT_INT2		IRQ2 Handler
	jmp		RESET		; TIM2_COMP		Timer2 Compare Handler
	jmp		RESET		; TIM2_OVF		Timer2 Overflow Handler
	jmp		RESET		; TIM1_CAPT		Timer1 Capture Handler
	jmp		RESET		; TIM1_COMPA	Timer1 CompareA Handler
	jmp		RESET		; TIM1_COMPB	Timer1 CompareB Handler
	jmp		RESET		; TIM1_OVF		Timer1 Overflow Handler
	jmp		RESET		; TIM0_COMP		Timer0 Compare Handler
	jmp		RESET		; TIM0_OVF		Timer0 Overflow Handler
	jmp		RESET		; SPI_STC		SPI Transfer Complete Handler
	jmp		RESET		; USART_RXC		USART RX Complete Handler
	jmp		RESET		; USART_UDRE	UDR Empty Handler
	jmp		RESET		; USART_TXC		USART TX Complete Handler
	jmp		RESET		; ADC			ADC Conversion Complete Handler
	jmp		RESET		; EE_RDY		EEPROM Ready Handler
	jmp		RESET		; ANA_COMP		Analog Comparator Handler
	jmp		RESET		; TWI			Two-wire Serial Interface Handler
	jmp		RESET		; SPM_RDY		Store Program Memory Ready Handler	
;
; Initialization after power on (reset)
;
RESET:
;
; Do not allow any interrupt
;
	cli
;
; Stop any Counter
;
	ldi		temp1, 0
	out		TIFR, temp1
;
; Set stack pointer
;	
	ldi 	temp1,HIGH(RAMEND)				; Set Stack Pointer to top of RAMEND
	out		SPH,temp1
	ldi		temp1,LOW(RAMEND)
	out		SPL,temp1
;
; Initiate LEDs
;
	call	Init_LED
	sei
	call	Test_SDC

Loop:
	nop	
	jmp 	Loop
;
; ---------------------------------------------------------
; Include here the SD Card Interface Subroutines
; ---------------------------------------------------------
	.include "Indoor-SDCard.asm"
; ---------------------------------------------------------
; Include here the LED Interface Subroutines
; ---------------------------------------------------------
	.include "Indoor-LED.asm"
; ---------------------------------------------------------
; Include here the Test SD Card Interface Subroutines
; ---------------------------------------------------------
	.include "Test-SDCard.asm"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -