;TINFRA628 ;PROGRAMA USADO EN EL MODULO TRASMISOR INFRARROJO ;CONECTAR EL MODULO TRASMISOR AL EVOLUPIC 16F628, CONECTOR PARA LCD ;PARA ENVIAR EL MENSAJE, DEBE OPRIMIRSE EL BOTON DE RESET. EL MENSAJE ;ENVIA 1 BYTE CON EL CODIGO DE LOS 4 MICROSWITCHES. SI EL CODIGO ;ES 1001, ENTONCES EN EL MODULO RECEPTOR, SE ENCIENDE Y APAGA EL ;RELEVADOR. LA SEŅAL SE EMITE HASTA UNA DISTANCIA DE 3 A 4 METROS ;LOS MODULOS TRASMISOR Y RECEPTOR DEBEN DE ESTAR UNO FRENTE AL OTRO ;CON LA SEŅAL EMITIDA EN LINEA RECTA. ;EL PROGRAMA TAMBIEN FUNCIONA CON UN EDUPIC, SIEMPRE Y CUANDO ;SE UTILICE UN MICROCONTROLADOR 16F628 EN LUGAR DEL 16F84 processor 16F628 include __config _XT_OSC & _WDT_OFF & _PWRTE_OFF & _MCLRE_ON & _BODEN_OFF & _LVP_OFF BANCO0 MACRO BCF STATUS,RP0 BCF STATUS,RP1 ENDM BANCO1 MACRO BSF STATUS,RP0 BCF STATUS,RP1 ENDM CONT1 EQU 20H L EQU 21H M EQU 22H P EQU 23H CONT2 EQU 24H BAND EQU 25H SIGNO EQU 26H CARA1 EQU 27H CARA2 EQU 28H ORG 00H INICIO clrf PORTA clrf PORTB clrf BAND BANCO1 movlw b'00011110' ;RA1..RA4 entradas movwf TRISA ;salida RA0,1 ; entrada RA2 movlw 0x4 MOVWF VRCON ;deshabilita referencia movlw b'00000010' ;B1/RX entrada, B2/TX salida, movwf TRISB ;B3/CCP1 salida movlw D'25' movwf PR2 ;T de PWM MOVLW 0xcf ;x=207(10)=cf(16) en formula de baud rate MOVWF SPBRG ;para 300 bauds, modo sincrono MOVLW 00H ;BRG=0, SYNC=0, TXEN=0, TX9=0 MOVWF TXSTA ;baja Vel., Asin, no Hab. Tx, 8 bits de datos BANCO0 MOVLW 0X7 MOVWF CMCON ;deshabilita comparador movlw D'13' movwf CCPR1L ;? movlw B'00001100' movwf CCP1CON ;modo PWM movlw B'00000100' movwf T2CON ;prescala 1:1, Timer2 ON MOVLW 0X00 MOVWF RCREG MOVWF TXREG MOVLW 0X80 MOVWF RCSTA ;bit 7 SPEN a uno, no necesita recibir movfw PORTA ;envia estado de SW en puerto A movwf CARA1 rrf CARA1 swapf CARA1,W movwf CARA2 movfw CARA1 andlw B'00001111' movwf CARA1 movfw CARA2 andlw B'11110000' iorwf CARA1,W MOVWF TXREG ;valor a enviar de aqui pasa a TSR call ENVIAR goto FIN ENVIAR BANCO1 bsf TXSTA,5 ENVIO BTFSS TXSTA,1 GOTO ENVIO BANCO0 return FIN GOTO FIN end