;****************************************** http://www.x-robotics.com ******* ; PROGRAMA : rx-rs232.asm ; Funcion : Escucha puerto serie rs232 y cuando recibe un dato salta la ; interrupcion y lo muestra en PortB durante 2 segundos. ; Serial port config: 9600 baudios,8 bits,paridad = none ; ; Revision : 0.0 27/12/2001 Programa para : PIC16F873 ; CPU Clock : 4 MHz Reloj instruccion : 1 MHz = 1 us ; WDT : Deshabilitado Tipo de reloj : XT ; Code Prot : OFF ;****************************************** http://www.x-robotics.com ******* LIST P=16F873 ;Se indica el modo de procesador RADIX HEX ;Sistema de numeracion hexadecimal INCLUDE ;se incluye la definicion de los ;registros internos CounterA EQU 20h CounterB EQU 21h CounterC EQU 22h ;<<<<<<---------------------- VECTOR DE RESET ------------------------>>>>>>> ORG 0x00 ;Inicio en el Vector de Reset goto INICIO ;Va a la primera instruccion del ;programa ;<<<<<<------------------- VECTOR DE INTERRUPCION -------------------->>>>>>> ORG 0x04 ;Vector de interrupcion INTER btfss PIR1,RCIF ;¿Interrupcion por recepcion? goto VOLVER ;No. Falsa interrupcion bcf PIR1,RCIF ;Si. Reponer Flag movf RCREG,W ;Lectura dato recibido movwf PORTB ;Visualiza dato recibido call PDelay ;espera 2 segundos call PDelay clrf PORTB ;Borra el dato en PortB VOLVER retfie ;retorna de la interrupcion. goto BUCLE ;esto no es necesario... (borrarlo) ;<<<<<<----------------- INICIO PROGRAMA PRINCIPAL ------------------->>>>>>> INICIO clrf PORTB ;Limpia salidas clrf PORTC bsf RCSTA,SPEN ;se activa la USART bsf STATUS,RP0 ;Cambio al banco 1 ------------------ bcf STATUS,RP1 clrf TRISB ;Puerta B como salida clrf TRISB ;Puerta B como salida movlw b'10011111' ;RC7/Rx entrada, movwf TRISC ;RC6/Tx salida y RC5 Salida. movlw b'00000100' ;Configuracion USART movwf TXSTA ;y activacion de transmision movlw .25 ;9600 baudios movwf SPBRG bsf PIE1,RCIE ;Habilitacion interrupcion RX bcf STATUS,RP0 ;Cambio al banco 0 ----------------- bsf RCSTA,SPEN ;se activa la USART movlw b'10010000' ;Configuracion de la usart movwf RCSTA ;para recepcion continua movlw b'11000000' ;Habilitacion para las movwf INTCON ;interrupciones generales BUCLE goto BUCLE ;espera aqui hasta que salte la int. ;<<<<<<----------------------- OTRAS RUTINAS ------------------------->>>>>>> ;PIC Time Delay = 1,0000020 s with Osc = 4 MHz PDelay movlw D'6' movwf CounterC movlw D'24' movwf CounterB movlw D'168' movwf CounterA loop decfsz CounterA,1 goto loop decfsz CounterB,1 goto loop decfsz CounterC,1 goto loop return ;<<<<<<\\\\\\\\\\\THE\\\\\\\\\\\\\\\\////////////////END//////////////>>>>>>> END