Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
HAROLD STIVEN AMAYA VILLAMIL COD. 38260, JULIE MARGARITA GUZMAN SALDAA COD. 5188,
CESAR DAVID TREJOS COD. 31310, VICTOR MANUEL CHACIN LOPEZ COD. 31595
microcontrolador,
cronometro, bluetooth, Android, RS232,
display, USART
INTRODUCCIN
Este trabajo tiene como objeto el diseo y
construccin de un cronometro digital
controlado por una aplicacin Android, a
travs de bluetooth, en el diseo se destaca la
programacin y el montaje circuital. Como
elemento
principal
se
emplea
el
microcontrolador PIC 18F452. Para la
construccin del cronometro se debe
seleccionar el tiempo que se desea controlar,
para este caso sern 59 minutos con 59
segundos, que sern visualizados en cuatro
displays de siete segmentos, y la puesta en
marcha se realizara por medio de una seal
enviada desde una aplicacin Android usando
el bluetooth de un Smartphone y un mdulo
bluetooth HC05, al igual que las seales de
pausa y reset. Ya que el microcontrolador PIC
18F452 es el elemento esencial en este
diseo, su programacin requiere mayor
dedicacin para que se realice la
comunicacin serial entre el Smartphone y el
microcontrolador, mientras muestra los datos
en los displays.
MARCO TERICO
Microcontrolador
Un microcontrolador (abreviado C, UC o
MCU) es un circuito integrado programable,
capaz de ejecutar las rdenes grabadas en su
memoria. Est compuesto de varios bloques
funcionales, los cuales cumplen una tarea
especfica. Un microcontrolador incluye en su
interior las tres principales unidades
funcionales de una computadora: unidad
central de procesamiento, memoria y
perifricos de entrada/salida.
Microchip proporciona un entorno de
desarrollo freeware llamado MPLAB que
incluye un simulador software y un
ensamblador. Otras empresas desarrollan
compiladores C y BASIC. Microchip tambin
vende compiladores para los PIC de gama alta
("C18" para la serie F18 y "C30" para los dsPIC)
y se puede descargar una edicin para
estudiantes del C18 que inhabilita algunas
opciones despus de un tiempo de
evaluacin.
Protocolo RS232
RS-232 (Recommended Standard 232), en
espaol: Estndar Recomendado 232,
tambin conocido como EIA/TIA RS-232C, es
una interfaz que designa una norma para el
intercambio de una serie de datos binarios
entre un DTE (Data Terminal Equipment,
Equipo Terminal de Datos) y un DCE (Data
Communication Equipment, Equipo de
Comunicacin de Datos), aunque existen
otras en las que tambin se utiliza la interfaz
RS-232.
Las UART o U(S)ART (Transmisor y Receptor
Asncrono Universal) se disearon para
convertir las seales que maneja la CPU y
transmitirlas al exterior. Las UART deben
resolver problemas tales como la conversin
de tensiones internas del DCE con respecto al
METODOLOGA
El primer diseo que se describe, se trata de
realizar diseo del programa encargado de
gestionar como elemento de salida los cuatro
displays de 7 segmentos (con punto decimal)
de nodo comn y como elemento de entrada
la seal de recepcin del mdulo bluetooth
HC05. Este cronometro debe mostrar minutos
y segundos desde 00.00 hasta 59.59 en los
displays. Fig.1
CBLOCK0x0A
;configuracion
necesaria para el uso del modulo
TAQ
BUFFER_ENVIO
ENDC
code 0x002A
START
clrf
registro TRISA
clrf
TRISA ;limpia
el
PORTA ;limpia
el
TRISB ;limpia
el
PORTB ;limpia
el
TRISD ;limpia
el
PORTD ;limpia
el
PORTA
list p=18f452
include "p18f452.inc".const
CREACION DE VARIABLES
clrf
registro TRISB
clrf
LL
PORTD
JJ
clrf
registro TRISB
KK
DIG1
PORTD
DIG2
DIG3
movlw
CONFIGURA PORTC
DIG4
clrf
movwf
b'10000000'
TRISC
movlw
al registro w
0x00
;asigna ceros
movwf
salida el PORTD
TRISA ;configura de
movwf
ceros PORTD
PORTA ;carga
movwf
salida el PORTD
TRISB ;configura de
movwf
ceros PORTD
PORTB ;carga
movwf
DYSPLAYS
DIG1
movwf
DIG2
movwf
DIG3
movwf
DIG4
CONF_USART
;76543210
con
movlw
b'00100110'
movwf
TXSTA
movlw
b'10010000'
movwf
RCSTA
movlw
d'20'
movwf
SPBRG
;76543210
con
;REINICIA
return
MOVLW
B'01111111'
MOVWF
TRISD
TABLA
el display
RLNCF
ADDWF PCL,F
movlw
al registro w
.80
;asigna ceros
movwf
salida el PORTD
LL
;configura de
RETLW B'00010000';;;;RETORNA EL 0
DECODIFICADO
RETLW B'01110011';;;;RETORNA EL 1
DECODIFICADO
; VA ACONFIGURAR EL
COMUNICACION SERIAL
rcall
;;*EDGCBAF
MODULO
DE
CONF_USART
goto Main
;----------------------------------------------------------;
CONFIGURA
EL
MODULO
DE
COMUNICACION SERIAL, SEGUN DATASHEET
RETLW B'00001001';;;;RETORNA EL 2
DECODIFICADO
RETLW B'01000001';;;;RETORNA EL 3
DECODIFICADO
RETLW B'01100010';;;;RETORNA EL 4
DECODIFICADO
RETLW B'01000100';;;;RETORNA EL 5
DECODIFICADO
RETLW B'00000100';;;;RETORNA EL 6
DECODIFICADO
RETLW B'01110001';;;;RETORNA EL 7
DECODIFICADO
RETLW B'00000000';;;;RETORNA EL 8
DECODIFICADO
RETLW B'01100000';;;;RETORNA EL 9
DECODIFICADO
MOVWF PORTA
;*GFEDCBA
MOVF DIG1,W
CALL
MOVWF PORTB
movlw D'5'
movwf JJ
rcall
TABLA
;define el valor de JJ
RETURN
retardo
movlw D'20'
; define KK
movwf KK
MOVLW B'11110010'
decfsz JJ,F
; decremento JJ
bra
; va a lapso
lapso
MUESDISP2
;MUESTRA EL CARACTER EN
EL DYSPLAY 2
return
MOVWF PORTA
;*GFEDCBA
MOVF DIG2,W
CALL
lapso
TABLA
MOVWF PORTB
nop
; linea vacia
nop
movlw D'5'
movwf JJ
nop
rcall
decfsz KK,F
bra
lapso
bra
retardo
; decrementa KK
MUESDISP1
;MUESTRA EL CARACTER EN
EL DYSPLAY 1
MOVLW B'11110001'
RETURN
MUESDISP3
;MUESTRA EL CARACTER EN
EL DYSPLAY 3
BCF
;define el valor de JJ
PORTD,7
MOVLW B'11110100'
MOVWF PORTA
;*GFEDCBA
MOVF DIG3,W
CALL
TABLA
MOVWF PORTB
RCALL LEER
EL BLUETOOH
RETURN
movlw D'5'
movwf JJ
;define el valor de JJ
rcall
BSF
PORTD,7
RETURN
MUESDISP4
;MUESTRA EL CARACTER EN
EL DYSPLAY 4
MOVLW B'11111000'
MOVWF PORTA
;*GFEDCBA
;rutina de incremento x
clrf DIG3
incf DIG4
de miles
;incrementa el contador
movf DIG4, w
conteo de los miles
xorlw 06h
quedara en cero
;carga en work el
;si work era 10, entonces
btfsc STATUS, Z
queda alto
MOVF DIG4,W
CALL
TABLA
GOTO
MOVWF PORTB
START
return
movlw D'5'
movwf JJ
rcall
;define el valor de JJ
RETURN
ss1000
1000
movlw
;rutina de incremento x
09h
movwf DIG3
centenas
VISUALIZAR
;LLAMA LAS RUTINAS PARA
MOSTRAR LOS DYSPLAYS
decf DIG4
de miles
;incrementa el contador
RCALL MUESDISP1
RCALL MUESDISP2
RCALL MUESDISP3
RCALL MUESDISP4
DECFSZ LL
BRA
VISUALIZAR
movf DIG4, w
conteo de los miles
xorlw .255
quedara en cero
;carga en work el
;si work era 10, entonces
btfsc STATUS, Z
queda alto
GOTO
miles
STARTN
;inicializa los
s10
return
;rutina de incremento x 10
clrf DIG1
incf DIG2
de decenas
;incrementa el contador
;rutina de incremento x
clrf DIG2
movf DIG2, w
conteo de las decenas
incf DIG3
de centenas
;incrementa el contador
s100
100
movf DIG3, w
conteo de las centenas
xorlw 0ah
quedara en cero
;carga en work el
ss10
10
;rutina de incremento x
movlw
ss100
100
;rutina de incremento x
movwf DIG2
decenas
;incrementa el contador
movf DIG3, w
conteo de las centenas
;carga en work el
btfsc STATUS, Z
queda alto
call ss1000
09h
movwf DIG1
unidades
decf DIG2
de decenas
05h
xorlw .255
quedara en cero
return
return
call s100
return
call s1000
decf DIG3
de centenas
btfsc STATUS, Z
queda alto
btfsc STATUS, Z
queda alto
movlw
xorlw 06h
quedara en cero
;carga en work el
;incrementa el contador
movf DIG2, w
conteo de las decenas
xorlw .255
quedara en cero
;carga en work el
btfsc STATUS, Z
queda alto
call ss100
return
;si es cero, el flag z
;incrementa los miles
subir
incf DIG1
de unidades
;rutina de incremento
;incrementa el contador
movf DIG1, w
conteo de las unidades
xorlw 0ah
quedara en cero
;carga en work el
btfsc STATUS, Z
queda alto
call s10
return
PAUSA
RCALL VISUALIZAR
LOS DYSPLAYS
;VISUALIZA
BTFSS LECT,3
SI FINALIZA LA PAUSA
;PREGUNTA
return
CONTANDO
;CONTINUA
BRA
RCALL VISUALIZAR
LOS DYSPLAYS
;MUESTRA
BTFSS LECT,3
PAUSA EL CRONOMETRO
;REVIZA SI SE
RCALL PAUSA
RUTINA DE PAUSA
;VA
BTFSS LECT,4
REINICIA E; CRONOMETRO
;REVIZA SI SE
BRA
START
CRONOMETRO
;REINICIA EL
RCALL subir
E;L CONTADOR
;AUMENTA
BRA
LA
Main
End
PAUSA
LEER
MOVFF
RCREG,LECT ;LEE EL
VALOR QUE RECIBE EL BLUETOOH
RETURN
Main
BTFSC LECT,2
INICIA EL CRONOMETRO
;REVIZA SI SE
BRA
Main
;SE
MANTIENE A LA ESPERA DEL INICIO
MOVLW
.80
;INICIA EL CONTADOR DEL RETARDO
MOVWF
LL
Pausa: 8
Reset: 16
La aplicacin cuenta con dos partes, una es la
interfaz y los bloques de programacin. La
interfaz cuenta con cinco botones con las
siguientes labels:
Botn 1: Seleccionar Bluetooth, conecta el
Smartphone al mdulo bluetooth HC05
Botn
2:
Desconectar
Bluetooth,
desconecta el mdulo Smartphone del
mdulo Bluetooth
Botn 3: Inicio, pone en marcha el
cronometro
Botn 4: Pausa, pausa el conteo
Botn 5: Reset, pone en ceros el
cronometro
Conclusiones