doolitle15
02.11.2005, 13:20
Hallo!
ich habe einen pic16f873. habe eine serielle schnittstelle und konnte auch schon daten zum pic senden!! jetzt will ich aber das etwas zum pic schicken und wenn der pic den befehl bekommen hat soll er mir den selben befehl wieder zurück schicken!!
ich habe schon etwas in assembler geschrieben aba das funktioniert nicht!!
list p=16f873
#include <P16f873.INC>
init
bsf STATUS,RP0
movlw B'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf PORTB ; alle LEDs ausschalten
bsf STATUS,RP0 ; Bank1
bcf PORTC, 6 ; PortC output 6 (tx COM)
bsf PORTC, 7 ; PortC input 7 (rx COM)
bcf STATUS,RP0
; USART initialisieren
BCF STATUS,RP0 ; Bank1
MOVLW 0x20 ; Sender: RS232
MOVWF TXSTA ;
MOVLW 0x90 ; Empfänger: RS232
MOVWF RCSTA
BCF STATUS,RP0 ;
; USART Baudrate einstellen
BSF STATUS,RP0 ; Bank1
MOVLW d'25' ; Set Baud rate 2,4 kBPS bei 4 MHz
MOVWF SPBRG
BCF TXSTA, BRGH ; BRGH=0
BCF STATUS,RP0 ; Bank 0
RS232in
btfss PIR1,RCIF ; sind Daten da ?
goto RS232in ; nein, noch keine Daten da
bcf PIR1,RCIF
movfw RCREG ; RS232-Register auslesen
movwf PORTB ; und nach 'PORTB' schreiben
bsf PIR1,TXIF
goto RS232out
RS232out
btfss PIR1,TXIF ; ist Sender leer ?
goto RS232out ; nein, noch nicht leer
bcf PIR1,TXIF
movfw PORTB ; nächstes Byte holen
movwf TXREG ; und in den RS232-Sender schreiben
goto RS232in
end
ich hoffe es kann mir bitte jemand weiter helfen!! ich bin für jeden ratschlag dankbar!!!
mfg doolitle
ich habe einen pic16f873. habe eine serielle schnittstelle und konnte auch schon daten zum pic senden!! jetzt will ich aber das etwas zum pic schicken und wenn der pic den befehl bekommen hat soll er mir den selben befehl wieder zurück schicken!!
ich habe schon etwas in assembler geschrieben aba das funktioniert nicht!!
list p=16f873
#include <P16f873.INC>
init
bsf STATUS,RP0
movlw B'00000000' ; PortB alle output
movwf TRISB
bcf STATUS, RP0 ; auf Bank 0 zurückschalten
clrf PORTB ; alle LEDs ausschalten
bsf STATUS,RP0 ; Bank1
bcf PORTC, 6 ; PortC output 6 (tx COM)
bsf PORTC, 7 ; PortC input 7 (rx COM)
bcf STATUS,RP0
; USART initialisieren
BCF STATUS,RP0 ; Bank1
MOVLW 0x20 ; Sender: RS232
MOVWF TXSTA ;
MOVLW 0x90 ; Empfänger: RS232
MOVWF RCSTA
BCF STATUS,RP0 ;
; USART Baudrate einstellen
BSF STATUS,RP0 ; Bank1
MOVLW d'25' ; Set Baud rate 2,4 kBPS bei 4 MHz
MOVWF SPBRG
BCF TXSTA, BRGH ; BRGH=0
BCF STATUS,RP0 ; Bank 0
RS232in
btfss PIR1,RCIF ; sind Daten da ?
goto RS232in ; nein, noch keine Daten da
bcf PIR1,RCIF
movfw RCREG ; RS232-Register auslesen
movwf PORTB ; und nach 'PORTB' schreiben
bsf PIR1,TXIF
goto RS232out
RS232out
btfss PIR1,TXIF ; ist Sender leer ?
goto RS232out ; nein, noch nicht leer
bcf PIR1,TXIF
movfw PORTB ; nächstes Byte holen
movwf TXREG ; und in den RS232-Sender schreiben
goto RS232in
end
ich hoffe es kann mir bitte jemand weiter helfen!! ich bin für jeden ratschlag dankbar!!!
mfg doolitle