;CONTROL REMOTO DE EVOLUPIC DESDE LA PC, USANDO CABLE SERIAL COMUNICACION A 2400 BPS. ;PERMITE LEER LOS MICROSWITCHES, ENCENDER Y APAGAR LOS LEDS Y ACTIVAR O DESACTIVAR ;EL RELEVADOR. USA HYPERMTERMINAL ;COMANDOS "S", "L" 0111xxxx, "RON", "ROFF" 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 RegA equ 0x20 RegB equ 0x21 Cuen1 equ 0x22 Band equ 0x23 L EQU 0x24 M EQU 0x25 P EQU 0x26 Cuen2 equ 0x27 RECEP equ 0x28 INICIO ORG 00H BANCO1 MOVLW 02H ;B1/RX entrada, B2/TX salida MOVWF TRISB MOVLW 019H ;x=25(10)=19(16) en formula de baud rate MOVWF SPBRG ;para 2400 bauds, modo sincrono MOVLW 00H ;TX9=0, TXEN=0, SYNC=0, BRGH=0 MOVWF TXSTA ;8 bits de datos, no Hab.Tx, Asin, baja Vel. movwf VRCON BANCO0 movlw 0x07 movwf CMCON MOVLW 0X00 MOVWF RCREG MOVWF TXREG movwf RegA movwf RegB MOVLW 0X90 MOVWF RCSTA ;bits 7 SPEN y 4 CREN a uno RECIBO BTFSS PIR1,5 GOTO RECIBO MOVFW RCREG ;algo del teclado MOVWF RegB bcf STATUS,Z sublw 0x53 ;valor de S btfsc STATUS,Z goto PARAS movfw RegB sublw 0x4c ;valor de L btfsc STATUS,Z goto PARAL movfw RegB sublw 0x52 ;valor de R btfsc STATUS,Z goto PARAR goto FALLA PARAS movfw RegB ;eco call ENVIO movlw 0x20 ;espacio call ENVIO BANCO1 movlw 0xFF ;sw como entradas movwf TRISA BANCO0 call CONVER movlw 0xD ;CR call ENVIO movlw 0xA ;LF call ENVIO GOTO RECIBO PARAL movfw RegB ;eco call ENVIO movlw 0x20 ;espacio call ENVIO movlw 0x4 movwf Cuen1 clrf RECEP DIGITOS BTFSS PIR1,5 GOTO DIGITOS CANDADO movfw RCREG movwf RegA bcf STATUS,Z sublw 0x30 btfsc STATUS,Z goto SIGUE movfw RegA sublw 0x31 btfsc STATUS,Z goto SIGUE goto DIGITOS SIGUE call CONVIE decfsz Cuen1 goto DIGITOS call RECORRE call CONVINA movlw 0xD ;CR call ENVIO movlw 0xA ;LF call ENVIO goto RECIBO ENVIO MOVWF TXREG ;valor a enviar de aqui pasa a TSR BANCO1 BSF TXSTA,5 ENVI BTFSS TXSTA,1 GOTO ENVI NOP BANCO0 return CONVIE movfw RCREG movwf RegA call ENVIO btfss RegA,0 goto BAJO ALTO bsf STATUS,C rlf RECEP return BAJO bcf STATUS,C rlf RECEP return RECORRE movlw 0x4 movwf Cuen1 VUELTA bcf STATUS,C rlf RECEP decfsz Cuen1 goto VUELTA return CONVINA movfw PORTB andlw B'00001111' iorwf RECEP,w movwf PORTB call RESTO return RESTO movlw 0x4 movwf Cuen2 BIT movlw 0x58 ;X call ENVIO decfsz Cuen2 goto BIT return PARAR NOP BANCO1 movlw 0x3e movwf TRISA BANCO0 movfw RegB ;eco call ENVIO btfss Band,1 goto ACTIVA DESACTI bcf Band,1 bcf PORTA,0 goto CONTIN ACTIVA bsf Band,1 bsf PORTA,0 CONTIN movlw 0xD ;CR call ENVIO movlw 0xA ;LF call ENVIO goto RECIBO FALLA movLw 0X46 ;F call ENVIO movlw 0xD ;CR call ENVIO movlw 0xA ;LF call ENVIO GOTO RECIBO CONVER movlw 0x8 movwf Cuen1 ;los bits que faltan movlw 0x80 movwf Cuen2 ;la mascara movwf RegA MENOS bcf STATUS,Z movfw RegA movwf Cuen2 movfw PORTA andwf Cuen2 btfss STATUS,Z goto UNO goto CERO UNO movlw 0x31 call ENVIO bcf STATUS,C rrf RegA,F decfsz Cuen1 goto MENOS goto RECIBO CERO movlw 0x30 call ENVIO bcf STATUS,C rrf RegA,F decfsz Cuen1 goto MENOS return PAUSA movlw 0x10 ;10.785 ..s movwf L PAL2 movlw 0xFF movwf M PAM2 MOVLW 0XFF MOVWF P PAN2 DECFSZ P,F GOTO PAN2 decfsz M,F goto PAM2 decfsz L,f goto PAL2 return END