lunes, 10 de noviembre de 2008

RS-232: SUMA DE DOS NUMEROS

DESCRPCION:

Este programa utiliza la comunicacion serial del pic16f877. La hiperterminal simulada o de una pc primero pide el primer sumando y despues pide el segundo sumando, y de inmediato te regresa el resultado, y despues sigue con el mismo procedimiento.

nota:la comunicacion es a 19200 bauds

MATERIALES:

- PIC16F877A
- Resistencias de 4.7K
- Cristal de 20MHZ
- Push Botton
- Fuente de DC de 5 volts
- Protoboard

RUTINAS IMPORTANTES DEL PROGRAMA:
;------------------------------------------------------------------------------
Configuracion de comunicacion:

bcf STATUS,RP0 ;Vamos al banco 0
bsf RCSTA,SPEN ;Habilitamos el puerto serial
bsf RCSTA,CREN ;Habilitamos recepción continua
bsf STATUS,RP0 ;Vamos al banco 1
movlw d'64' ;Valor del BRG para 19200 baud a 20MHz
movwf SPBRG
movlw b'00100100' ;Habilitamos transmision, modo asincrono y alta velocidad
movwf TXSTA
bcf STATUS, RP0 ;Vamos al banco 0
;------------------------------------------------------------------------------
CALL LETRERO ;despliega en hiperterminal "DATO 1"
CALL Recepcion ;espera recepcion decena del 1 dato
MOVWF VARIABLE1H ; lo guarda en la variable
CALL Recepcion ;espera recepcion unidad del 1 dato
MOVWF VARIABLE1L ; lo guarda en la variable
CALL LETRERO2 ;despliega en hiperterminal "DATO 2"
CALL Recepcion ;espera recepcion decena del 2 dato
MOVWF VARIABLE2H ; lo guarda en la variable
CALL Recepcion ;espera recepcion unidad del 2 dato
MOVWF VARIABLE2L ; lo guarda en la variable
MOVLW 0X0A
CALL Transmicion
MOVLW 0X0D
CALL Transmicion
MOVLW 'R'
CALL Transmicion
MOVLW '='
CALL Transmicion
;------------------------------------------------------------------------------
Recepcion:
bcf STATUS,RP0 ;Vamos al banco 0
btfss PIR1,RCIF ;Verificamos la bandera de recepción
goto $-1 ;Regresamos a la linea anterior
movf RCREG,W ;Movemos lo que se recibió en RCREG a W
bcf PIR1,RCIF ;Limpiamos la bandera de recepción
return
;------------------------------------------------------------------------------
Transmicion:
bcf STATUS,RP0 ;Vamos al banco 0
movwf TXREG ;Copiamos W a TXREG
btfss PIR1, TXIF ;Verificamosla bandera de transmisión
goto $-1 ;Regresamos a la linea anterior
bcf PIR1, TXIF ;Limpiamos la bandera de transmision
return



Puede descargar el programa completo en la seccion de Desgargas de este blog.

No hay comentarios: