;******************************************************************************* ;* ;* Titel: USART-Empfaenger (C209_EIA232_receiver_char_2.asm) ;* Datum: 01/10/07 Version: 0.1 ;* Autor: WEIGU ;* ;* Informationen zur Beschaltung: ;* ;* Prozessor: ATmega32 Quarzfrequenz: 16MHz ;* Eingaenge: Port D Pin O (RxD) an Pegelwandler anschliessen ;* Ausgaenge: PORTC 4 LEDs ;* ;******************************************************************************* ;------------------------------------------------------------------------------- ; Assembler Direktiven (u.a. Definitionsdatei einbinden) ;------------------------------------------------------------------------------- .NOLIST ;List-Output ausschalten .INCLUDE "m32def.inc" ;AVR-Definitionsdatei einbinden .LIST ;List-Output wieder einschalten .CSEG ;was ab hier folgt kommt in den Flash-Speicher ;------------------------------------------------------------------------------- ; Startadresse 0x0000 und ueberspringe ISR Vektoren ;------------------------------------------------------------------------------- .ORG 0x0000 ;Programm beginnt an der SRAM-Adresse 0h RESET: rjmp INIT ;springe nach INIT ;------------------------------------------------------------------------------- ; Initialisierungen und eigene Definitionen ;------------------------------------------------------------------------------- .ORG INT_VECTORS_SIZE ;Platz fuer ISR Vektoren lassen INIT: .DEF Tmp1 = r16 ;Register 16 dient als erster Zwischenspeicher .EQU LEDPort = PORTC ldi Tmp1,HIGH(RAMEND) out SPH,Tmp1 ldi Tmp1,LOW(RAMEND) out SPL,Tmp1 sbi UCSRB,RXEN ldi Tmp1,0x00 out UBRRH,Tmp1 ldi Tmp1,0x33 out UBRRL,Tmp1 ldi Tmp1,0x87 out DDRC,Tmp1 ;------------------------------------------------------------------------------- ; Hauptprogramm ;------------------------------------------------------------------------------- MAIN: sbis UCSRA,RXC rjmp MAIN in Tmp1,UCSRA andi Tmp1,0b00011100 brne ERROR in Tmp1,UDR cpi Tmp1,'L' breq CHRL cpi Tmp1,'E' breq CHRE cpi Tmp1,'D' breq CHRD rjmp MAIN CHRL: sbi LEDPort,0 rjmp MAIN CHRE: sbic LEDPort,0 sbi LEDPort,1 rjmp MAIN CHRD: sbis LEDPort,0 rjmp MAIN sbic LEDPort,1 sbi LEDPort,2 rjmp MAIN ERROR: sbi LEDPort,7 in Tmp1,UDR rjmp MAIN ;------------------------------------------------------------------------------- .EXIT ;Ende des Quelltextes