list p=16F88 #include __CONFIG _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_ON & _PWRTE_ON & _WDT_OFF & _INTRC_IO ERRORLEVEL -302 baud EQU .9600 takt EQU .4000000 alarm EQU 0x20 org 0x00 goto INIT org 0x04 INIT bsf STATUS,RP0 ;auf Registerbank 1 schalten movlw takt/(.16*baud)– 1 ;Baudrate einstellen (takt/(.16*baud)– .1) movwf SPBRG bcf TXSTA,BRGH ;löscht das Bit BRGH = hohe Baudrate bsf TRISB,5 ;RX für aktivieren (default) bsf TRISB,2 ;TX für aktivieren (default) movlw B'11000000' ;Port A Eingänge / Ausgänge definiert movwf TRISA movlw 0x24 ;Sender ein movwf TXSTA bcf STATUS,RP0 ;auf Registerbank 0 schalten movlw 0x90 ;Empfänger ein movwf RCSTA clrf PORTA ;alle LEDs auf Port A ausschalten clrf alarm ;alarm löschen main btfsc PORTA,7 ;Taster 1 sendet an call an btfsc PORTA,6 ;Taster 2 sendet aus call aus goto main holen btfss PIR1,RCIF ;Schleife bis RCIF gesetzt wird goto holen movfw RCREG ;Daten abholen movwf alarm ;Daten in Alarm schreiben bsf PORTA,0 ;LED RA0 an senden btfss PIR1,TXIF ;Schleife bis TXIF gesetzt wird goto senden movwf TXREG ;Daten senden return an movlw 0x7E call senden movlw 0x00 call senden movlw 0x10 call senden movlw 0x17 call senden movlw 0x01 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0xFF call senden movlw 0xFF call senden movlw 0xFF call senden movlw 0xFE call senden movlw 0x02 call senden movlw 0x50 call senden movlw 0x30 call senden movlw 0x05 call senden movlw 0x65 call senden goto main aus movlw 0x7E call senden movlw 0x00 call senden movlw 0x10 call senden movlw 0x17 call senden movlw 0x01 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0x00 call senden movlw 0xFF call senden movlw 0xFF call senden movlw 0xFF call senden movlw 0xFE call senden movlw 0x02 call senden movlw 0x50 call senden movlw 0x30 call senden movlw 0x04 call senden movlw 0x66 call senden goto main END