;***********************************************************************
*****
; Includedatei für den 16F877a einbinden
;***********************************************************************
*****
include "p16F877a.inc"
;***********************************************************************
*****
; Konstanten-Deklaration
;***********************************************************************
*****
DatenSindDa equ 0x24
Zeichen equ 0x22
org 0x00 ;Reset-Adresse fuer PIC16F877A
RESET ;Initialisierung für den Bootloader
clrf STATUS
movlw 0x00
movwf PCLATH
goto main ;Springe zum Label "main"
org 0x04 ;Interrupt-Adresse fuer PIC16F877A
goto Timer0_ISR ;springe zum Label "Timer0_ISR"
;***********************************************************************
*****
; Timer0 Interrupt Service Routine
;***********************************************************************
*****
Timer0_ISR
bcf INTCON,GIE ;Alle INT verhindern
retfie ;Ende der TMR0-ISR
;***********************************************************************
*****
; Initialisierung
;***********************************************************************
*****
init
clrf DatenSindDa
bsf STATUS, RP0 ; auf Bank 1 umschalten
movlw B'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf PORTB ; alle LEDs ausschalten
; USART initialisieren
BSF STATUS,RP0 ; Bank1
MOVLW 0x20 ; Sender: RS232
MOVWF TXSTA ;
BCF STATUS,RP0 ; Bank 0
MOVLW 0x90 ; Empfänger: RS232
MOVWF RCSTA ;
; USART Baudrate einstellen
BSF STATUS,RP0 ; Bank1
MOVLW 6 ; Set Baud rate 9600 BPS bei 4 MHz
MOVWF SPBRG
BCF TXSTA, BRGH ; BRGH=0
BCF STATUS,RP0 ; Bank 0
RETURN
;***********************************************************************
*****
; Hauptprogramm
;***********************************************************************
*****
main
CALL init
CALL autor_senden
movwf Zeichen
CALL RS232out
goto $
;***********************************************************************
*****
; Autor senden
;***********************************************************************
*****
autor_senden
;CLRW
addwf Zeichen
dt "autor",0
RETURN
RS232out
btfss PIR1,TXIF ; ist Sender leer ?
goto RS232out ; nein, noch nicht leer
banksel TXREG
movwf TXREG ; und in den RS232-Sender schreiben
RETURN
;***********************************************************************
*****
;Ende des Programms
;***********************************************************************
*****
END
------------------------------------------------------------------------
------
Wiso schickt er mir anstatt des Zeichen a ein ß?