;****************************************** http://www.x-robotics.com ******* ; PROGRAMA : tx-rs232.asm ; Funcion : Transmite 2 bytes por el puerto serie del pic en intervalos de ; 1 segundo. ; Serial port config: 9600 baudios,8 bits,paridad = none ; ; Revision : 1.0 7/2/2002 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 ;<<<<<<----------------- 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 movlw b'10111111' ;RC7/Rx entrada, movwf TRISC ;RC6/Tx salida. movlw b'00100100' ;Configuracion USART movwf TXSTA ;y activacion de transmision movlw .25 ;9600 baudios movwf SPBRG bcf STATUS,RP0 ;Cambio al banco 0 ------------- bsf RCSTA,SPEN ;se activa la USART bsf STATUS,RP0 ;Cambio al banco 1 ------------- bcf STATUS,RP1 bsf TXSTA,TXEN ;Habilita la transmision bcf STATUS,RP0 ;Cambio al banco 0 ------------- bucle call PDelay movlw h'49' ;Envia el caracter, valor hex movwf TXREG ; del codigo ascii bsf STATUS,RP0 ;Cambio al banco 1 ------------- bcf STATUS,RP1 COMP_TX btfss TXSTA,TRMT ;comprueba si acabo de Tx. goto COMP_TX bcf STATUS,RP0 ;Cambio al banco 0 ------------- movlw .50 ;caracter ASCII en decimal movwf TXREG goto bucle ;<<<<<<----------------------- 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