Professional Documents
Culture Documents
Integrado HIN232CP: Los circuitos con letra T son "Transmitters", que trasladan nivel TTL/CMOS en
su entrada a nivel RS232 en su salida. Los circuitos con letra R son "Receivers", que trasladan
seales RS232 en su entrada (que pueden ser de hasta +30/-30 V) a nivel TTL/CMOS en su salida.
16F628A
Memoria programa
1K
2K
Memoria datos
68 bytes
224 bytes
EEPROM
64 bytes
128 bytes
Timers
PWM
Reg. comparacin/captura
Comparadores
Referencias de voltaje
37 KHz / 4 MHz
13
16
Programa
;
*********************************************
**********************
; INTERFAZ SERIE RS232 - ECO Y DISPLAY EN
LEDS
; CONVERTIDOR SERIE RS232 - PARALELO 8 BITS
;
*********************************************
**********************
LIST P=16F628, R=DEC
PIC16F628 y sistema decimal
#include "P16F628A.INC"
datos de PIC16F628A
; Usar el
; Incluye
CONFIG
_CP_OFF & _WDT_OFF & _LVP_OFF
& _PWRTE_ON & _INTRC_OSC_NOCLKOUT &
_MCLRE_OFF
;
*********************************************
**********************
; CONFIGURACION
;
*********************************************
**********************
; El PIC es configurado para usar todas las
entradas y salidas
; posibles = 16. Por eso no se usa el
oscilador con cristal externo,
; lo que deja libres las patas 15 y 16 para
usar como bits de puerto.
; Se define el clock interno a 4 MHz. No se
usa el master reset
; (pata 4), que queda convertida en el Puerto
A, bit 5 (entrada).
;
*********************************************
**********************
; VARIABLES
;
*********************************************
**********************
contador
dato_serie
la PC
EQU
EQU
0x28
0x29
; variable
; dato serie desde
;
*********************************************
**********************
ORG
0x000
empieza en 0x000
; El programa
;
*********************************************
**********************
; Inhibe comparadores
;
*********************************************
**********************
movlw 7
movwf CMCON
los comparadores
;
; CMCON=7 inhibir
*********************************************
**********************
; Inicializar Puertos
;
*********************************************
**********************
movlw b'00000000'
; valor inicial
portA
movwf PORTA
movlw b'00000000'
inicial portB
movwf PORTB
; valor
bsf STATUS,RP0
; Pg 1 RAM
movlw b'00000000'
movwf TRISA
;
mostrar el dato en LEDS)
;
no usaremos
;
tiene salida open drain, y
;
puede ser entrada
salidas (para
de estas salidas,
PORTA 4, que
PORTA 5, que slo
;
; habilita la
; RAM PAGE 0
; habilita de
;
*********************************************
**********************
; TIEMPO DE ESTABILIZACION
;
*********************************************
**********************
clrf contador
estab decfsz contador,F
goto estab
movf RCREG,W
movf RCREG,W
movf RCREG,W
buffer de recepcin
call Bienvenida
mensaje de bienvenida
; vaca el
; enva
;
*********************************************
**********************
; LAZO PRINCIPAL
;
*********************************************
**********************
loop
clrw
btfss PIR1,RCIF
; (5) se fija
si hay dato RS232
goto loop
; no, no lleg
call recibeRS232
; s, hay
movwf dato_serie
; guarda dato (para
uso de cualquier rutina)
call enviaRS232
; enva el
eco a la PC
call muestra
; muestra el
caracter recibido en LEDS
goto loop
;
*********************************************
**********************
; RECIBE CARACTER SERIE - RS232 - DESDE LA PC
;
*********************************************
**********************
recibeRS232
movf RCREG,W
recibido en acumulador
return
; guarda dato
;
*********************************************
**********************
; ENVIA CARACTER SERIE - RS232 - A LA PC Y
ESPERA A QUE HAYA SALIDO
;
*********************************************
**********************
enviaRS232
movwf TXREG
; envo el dato
en acunulador w
bsf STATUS,RP0
; Pg 1 RAM
Espere
btfss TXSTA,TRMT
;
transmision completa si es alto
goto Espere
bcf STATUS,RP0
; Pg 0
RAM
return
;
*********************************************
**********************
; MUESTRA DATO
;
*********************************************
**********************
muestra
movf dato_serie,w
guardado
movwf PORTA
LEDS en PORTA
; recupera el dato
; exhibe el dato en
movlw
call
movlw
call
movlw
call
movlw
call
movlw
call
'a'
enviaRS232
'm'
enviaRS232
'i'
enviaRS232
'g'
enviaRS232
'o'
enviaRS232
movlw
call
movlw
goto
0x0D
enviaRS232
0x0A
enviaRS232
msgCR
END
Bajar el programa en formato ASM (puede usar el botn derecho
de su mouse)
Bajar el programa en formato HEX (puede usar el botn derecho
de su mouse)
Por las dudas, el archivo incluido P16f628a.inc (puede usar el
botn derecho de su mouse)
Bits de datos = 8
Paridad = Ninguna
Bits de parada = 1
Datos adicionales:
PIC 16F628A
El microcontrolador PIC 16F828A lo compr en Cika, donde
cuesta us$ 3 ms 10,5% de IVA.
HIN232CP
El integrado HIN232CP lo compr en Cika, donde cuesta us$
1,1 ms 10,5% de IVA.