hola bueno sobre tu pregunta la prograamcion en labwie es solo para escribir daotos en este caso el pic tienes k configurar para la recepcion y tx comunicacion asincrona duplexx
Follow along with the video below to see how to install our site as a web app on your home screen.
Nota: This feature currently requires accessing the site using the built-in Safari browser.
list p=16f877a ;Tipo de procesador
INCLUDE"P16F877a.Inc" ;Librerias de Registros del PIC
#DEFINE SALIDA PORTB,0
#DEFINE SALIDA1 PORTB,1
#DEFINE SALIDA2 PORTB,2
#DEFINE SALIDA3 PORTB,3
;**************************** DEFINICION DE REGISTROS***********************************
CBLOCK 20H
LEIDO_COMP
MAYON
PDel0
PDel1
endc
;****************************************************************************************
org 00
goto inicio
org 04
GOTO INTER_RX
inicio
BSF RCSTA,SPEN
BSF STATUS,5
BSF SALIDA
BSF SALIDA1
BSF SALIDA2
BSF SALIDA3
clrf PORTA ;Inicializa el puerto A
movlw 0X07 ;Apaga los comparadores y
movwf CMCON ;Activa los pines como I/O
BSF TRISC,7 ;RX
BCF TRISC,6 ;TX
MOVLW b'00100100'
MOVWF TXSTA
MOVLW .25
MOVWF SPBRG
BSF PIE1,RCIE
BCF STATUS,5
BSF RCSTA,SPEN ;ACTIVA USART
MOVLW b'10010000' ;configuracion de la usart
MOVWF RCSTA
MOVLW b'11000000'
MOVWF INTCON ;Permiso Interrupciones generales GIE<7>
;Permiso perifericos que NO se controlan con INTCON
BSF STATUS,5
BSF TXSTA,TXEN ;HABILITACION LA TRANSMISION
BCF STATUS,5
MOSTAR
BCF STATUS,Z
MOVF LEIDO_COMP,W
SUBWF B'00000001'
BTFSS STATUS,Z
GOTO ssssss
GOTO PRIMER_DISPO
PRIMER_DISPO
BTFSS SALIDA
GOTO ERORR
GOTO MENSAJE_OK
MENSAJE_OK
MOVLW 31
CALL tx_reg
GOTO BUCLE
CALL OKAS
ERORR
MOVLW 30
CALL tx_reg
goto BUCLE
OKAS
MOVLW 33
CALL tx_reg
GOTO BUCLE
ssssss
MOVF RCREG,W
MOVWF MAYON
CALL tx_reg
GOTO BUCLE
tx_reg
BCF INTCON,GIE ;SE DESABILITA LAS INTERRUPCIONES GEENRALES
MOVWF TXREG ;SE ENVIA EL DATO ALA PC
BSF STATUS,5
tx_on
BTFSS TXSTA,TRMT ; COMPRUEBA SI ACABO DE TX
GOTO tx_on
bcf STATUS,5
RETURN
INTER_RX
BTFSS PIR1,RCIF ;Interrupcion producida por recepcion?
GOTO INTER_RX ;No. Otro tipo de interrupción
BCF PIR1,RCIF ;Si. Bajar bandera
MOVF RCREG,W ;Lectura dato recibido
MOVWF LEIDO_COMP ;carga valor leido del computador a este registro
GOTO inicio
;,,,,,,,,,,,,,,,,,,,,,,,,,,call TX_REG ;llama subrutina para enviar el dato
BUCLE
NOP
NOP
NOP
NOP
NOP
NOP
BTFSS PIR1,RCIF
GOTO BUCLE
GOTO INTER_RX
;-------------------------------------------------------------
; Generado con PDEL ver SP r 1.0 el 30/11/2011 Hs 1:25:22
; Descripcion: Delay 500000 ciclos
;-------------------------------------------------------------
DEMORA movlw .239 ; 1 set numero de repeticion (B)
movwf PDel0 ; 1 |
PLoop1 movlw .232 ; 1 set numero de repeticion (A)
movwf PDel1 ; 1 |
PLoop2 clrwdt ; 1 clear watchdog
PDelL1 goto PDelL2 ; 2 ciclos delay
PDelL2 goto PDelL3 ; 2 ciclos delay
PDelL3 clrwdt ; 1 ciclo delay
decfsz PDel1, 1 ; 1 + (1) es el tiempo 0 ? (A)
goto PLoop2 ; 2 no, loop
decfsz PDel0, 1 ; 1 + (1) es el tiempo 0 ? (B)
goto PLoop1 ; 2 no, loop
PDelL4 goto PDelL5 ; 2 ciclos delay
PDelL5 goto PDelL6 ; 2 ciclos delay
PDelL6 goto PDelL7 ; 2 ciclos delay
PDelL7 clrwdt ; 1 ciclo delay
return ; 2+2 Fin.
;-------------------------------------------------------------
END
#include <16f877a.h>
#fuses XT,NOWDT
#device adc=8
#use delay(clock=4M)
#use rs232( baud=9600 , xmit=pin_c6, rcv=pin_c7)
#byte porta=0x05
#byte portb=0x06
#byte portc=0x07
#byte portD=0x08
#define LED1 PIN_D0
#define LED2 PIN_D1
#define LED3 PIN_D2
#define LED4 PIN_D3
#define LED5 PIN_D4
#define LED6 PIN_D5
#define LED7 PIN_D6
#define LED8 PIN_D7
char VALOR;
#int_rda
void serial_isr()
{
VALOR=getchar();
}
void main()
{
set_tris_D(0);
set_tris_C(0x80);
portd=0;
while(true)
{
while (!kbhit());
if (VALOR==1)portd=1;
if (VALOR==2)portd=2;
}
}