Академический Документы
Профессиональный Документы
Культура Документы
1. Revise los contenidos del curso asociados al Manejo de salidas a una LCD.
2. Consulte informacin para profundizar sobre el funcionamiento y programacin de las LCD.
Temas asociados
Entregas
Para este anlisis, puede utilizar la gua que aparece a continuacin para desarrollar los siguientes
productos:
1. Comentarios de las lneas de programacin del cdigo suministrado por el proveedor de
servicios.
2. Descripcin de los pines de entrada y salida utilizados para el sistema automatizado
3. Diagrama de flujo del programa de automatizacin.
Una vez finalizada, comprima el archivo en formato .zip o .rar, dando clic derecho al archivo, Enviar a,
Carpeta comprimida. Luego envela a su facilitador a travs del medio utilizado para
tal fin en el curso.
DOCUMENTO GU A
Dise o de productos electr nicos con microcontroladores
Comentarios de lneas de cdigo. Escriba los comentarios relacionados con cada bloque de cdigo.
INCLUDE
<P16F628A.INC>; Definicion del microprocesador a utilizar
CBLOCK0X20
R0C,R0D,R0E,R13,loops,loops2,REG_RX,CONTE,MEMORIA,RX_COMP,RX_ID1,RX_ID2,RX_PRO1,
M ENS_CONT,CON_USER,DATA_IN,CONT_USER,
CONT_INTS,MEM_STATUS,DATA_RUP,DATA_COMP,ID1_SAVE,ID2_SAVE,ID3_SAVE
ENDC
E
RS
RETARDO
CLRWDT pone a
cero el watchdog
MOVLW D'15';tiempo
de permanencia en milsegundos
MOVWF loops ;subrutina
de retardos en lilisegundos
top2_1,pregunta si
termino retardo
MOVLW D'25' tiempo de permanencia de encendido 25 ms
MOVWF loops2 top_1
CLRWDT NOP NOP
NOP NOP NOP NOP
DECFSZ
loops2,1
GOTO top_1 DECFSZ
loops,1 GOTO
top2_1
RETARDO_1
CLRWDT MOVLW D'100',tiempo de permanencia de encendido
MOVWF loops top2_2
MOVLW D'200',tiempo de permanencia de encendido 200 ms
MOVWF loops2
CLRW
DT
NOP;ci
clo de
maqui
na de
un
micros
egund
o
NOP
ciclo
de
maqui
na de
un
micros
egund
o
NOP
ciclo
de
maqui
na de
un
micros
egund
o
NOP
ciclo
de
maqui
na de
un
micros
egund
o
NOP
ciclo
de
maqui
na de
un
micros
egund
o
NOP
ciclo
de
maqui
na de
un
micros
egund
o
DECFSZ
loops2,1
;pregunta si
termino ya un
milisegundo
GOTO top_2
;llamamos a la
subrutina
DECFSZ;decre
menta en 1 si
esta en loops
loops,1
GOTO
top2_2;salta a
la subrutina
top2 si esta en
dos
RETLW 0,pone el registro w en 0
CONTROL
CLRWDT,pone
en cero el
registro
watchdog
BCF
PORTB,RS
,pone el LCD
en modo
escritura
GOTO
R0E,W
A
N
D
L
W
0
F
0
H
S
e
c
a
r
g
a
el registro w
con Oh
IORWF PORTB,
1
Operacion
logica or entre
el acumulador
w y el registro f
del puerto B.
CALL RETARDO
Llama retardo
BCF
PORTB,E
Pone en cero el bit
E del puerto B
CALL RETARDO
Llama a retardo
BSF
PORTB,E
Pone en uno el bit E del puerto B
MOVLW
0FH
Mueve el dato
0fh al
acumulador
ANDWFPORTB,1
Operacion
logica and entre
el acumulador y
el registro f y
pone el puerto
B en 1
SWAPF R0E,W
Intercambio de
niveles mas
significativo y
menos
significativo.
ANDLW 0F0H
Operacion
IORWF
PORTB,1
Operacion
logica or entre
el acumulador
w y el registro f
del puerto B.
CALL RETARDO
L
l
a
m
a
a
r
e
t
a
r
d
o
B
C
F
P
O
R
T
B
,
E
P
o
n
e
e
n
c
e
r
o
e
l
b
i
t
E del B
CALL RETARDO
lama a retardo
L
INICIO
BSF
STATUS,5
Pone en 1 el bit 5 del
registro status
CLRF
TRISB,blanquea el
puerto B
MOVLW
.255,mueve el valor .255 al acumulador
MOVWF
TRISA,mueve el registro f al acumulador
BCF
STATUS,5
ENTRADAS
BTFSC
PORTA,0
Prueba el bit 0
del puerto A, si
es cero salta a
mensaje 1
GOTO
MENSAJE_1
Salta al mensaje
1
BTFSC
PORTA,1
Prueba el bit 1
del puerto A si
es uno salta al
mensaje 2
GOTO
MENSAJE_2
Salta al mensaje
2
BTFSC
PORTA,2
Prueba el bit 2
del Puerto A si
es dos salta al
mensaje 3
GOTO
MENSAJE_3
Salta al mensaje
3
GOTO
BORRA_LCD
Salta y borra La
LCD
MENSAJE_1
MOVLW
01H
Carga el valor
01h en el
acumulador
CALL CONTROL
Llama a control
CALL RETARDO
Llama a retardo
MOVLW
""
Carga el valor
01h en el
acumulador
CALL DATO
Llama a dato
MOVLW
""
Carga el valor
01h en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el valor
01h en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el valor
01h en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el valor
01h en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el valor
01h en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
"N"
Carga el valor N
en el
acumulador
CALL DATO
Salta a la
subrutina dato
4
MOVLW
"A
"
Carga el valor
"A" en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
"
"T
Carga el
acumulador con
la letra T
CALL DATO
Salta a la
subrutina dato
MOVLW
"
"U
Carga el
acumulador con
la letra U
CALL DATO
Llama a la
subrutina dato
MOVLW
"
"R
Carga el
acumulador con
la letra R
CALL DATO
Salta a la
subrutina dato
MOVLW
"
"A
Carga el
acumulador con
la letra A
CALL DATO
Salta a la
subrutina dato
MOVLW
"L"
Carga el
acumulador con
la letra L
CALL DATO
Salta a la
subrutina dato
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
MOVLW
""
CALL DATO
LED
INTERMITENTE
BSF
PORTB,0
Pone en cero el
puerto B
CALL RETARDO_1
BCF
Salta a retardo y
pone 0
PORTB,0
CALL RETARDO_1
Salta a la subrutina
1 del retardo
GOTO ENTRADAS
Salta a las entradas
MENSAJE_2
MOVLW
01H
Carga el
acumulador con
el dato 01h
CALL CONTROL
Salta a la
subrutina
control
CALL RETARDO
Salta alretardo
MOVLW
" "
Carga el dato
en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el dato
en el
acumulador
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
el dato
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
5
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
"L"
Carga el
acumulador con
el dato L
CALL DATO
Salta a la
subrutina dato
MOVLW
"I"
Carga el
acumulador con
el dato I
CALL DATO
Salta a la
subrutina dato
MOVLW
"
"M
Carga el
acumulador con
el dato M
CALL DATO
Salta a la
subrutina dato
MOVLW
"O"
Carga el
acumulador con
el dato O
CALL DATO
Salta a la
subrutina dato
MOVLW
"N"
Carga el
acumulador con
el dato N
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a
la subrutina
dato
LED INTERMITENTE
BSF
PORTB,0
Pone en el
PUERTOB
CALL RETARDO_1
BCF; genera un
retardo de 1 ms
PORTB,0
CALL RETARDO_1
GOTO
ENTRADAS; salta a
las entradas
MENSAJE_3
MOVLW
01H
Carga el
acumulador con
la cifra 01H
CALL CONTROL
Salta a la
subrutina
control
CALL RETARDO
Salta a la
subrutina
retardo
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
6
Salta a la
subrutina
retardo
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina sato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
"B
"
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
"B
"
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
"Q
"
Carga el
acumulador con
la cifra Q
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
Salta a la
subrutina dato
MOVLW
""
Carga el
acumulador con
la cifra
CALL DATO
;LED INTERMITENTE
BSF
PORTB,0
Coloca en cero el
puerto B
CALL RETARDO_1
BCF
PORTB,0
Llama a retardo y
pone 1 en el puerto
b
CALL RETARDO_1
Salta al retardo de a
ms
GOTO ENTRADAS;
salta a las entradas
PINES DE ENTRADA
PINES DE SALIDA
2. RA0/AN0
2. RA0/AN0
3. RA1/AN1
3. RA1/AN1
4. RA2/AN2 Vref 4. RA2/AN2 Vref 5. RA3/AN3 Vref +
5. RA3/AN3 Vref +
6. RA4/TOCK1 entrada
7. RA5/SS/AN5, Entrada salida
de Reloj.
digital.
7.RA5/SS/AN5, Entrada salida 10. OSC2/CLKOUT, Salida
digital.
oscilador cristal. Oscilador
8 Ref de voltaje GND.
RC.
9. OSC1/CLKIN,Entrada
11. RCO/T10S0/TICK1, E/S
oscilador cristal/ entrada
digital. Salida del oscilador
fuente de reloj externa.
taimer 1.
11. RCO/T10S0/TICK1, E/S
13. E/S digital; entrad
digital. Salida del oscilador captura1;salida
taimer 1.
compara1;salida pwm 1.
12. RC1/T1OSI/CCP2, E/S
14. RC3/SCK/SCL; E/S Digital.
digital, entrada del oscilador Lnea de reloj serial asncrono
taimer1. Entrada captura2; en el modo SPI y el modo IC.
Salida compara 2;Salida
15. RC4/SDI/SDA; E/S Digital.
PWM.
Lnea de datos en el modo SPI
13 . E/S digital; entrad
o en el modo IC.
captura1;salida
16. RC5/SDO; E/S Digital.
compara1;salida pwm 1.
17. RC6/TX/CK; E/S Digital.
14. RC3/SCK/SCL; E/S Digital.
Transmisin asncrona
Lnea de reloj serial asncrono
(USART) o reloj sncrono
en el modo SPI y el modo IC.
(SSP).
15. RC4/SDI/SDA; E/S Digital.
Lnea de datos en el modo SPI o 18. RC7/RX/DT; E/S Digital.
Recepcin asncrona (USART)
en el modo IC.
16. RC5/SDO; E/S Digital.
o lnea de datos (SSP).
17. RC6/TX/CK; E/S Digital.
21. . RB0/INT; Bit 0 del puerto B
Transmisin asncrona (USART) o (E/S bidireccional). Buffer E/S:
reloj sncrono (SSP).
TTL/ST. Tambin se usa como
entrada de interrupcin externa
18. RC7/RX/DT; E/S Digital.
Recepcin asncrona (USART) (INT).
22. RB1; Bit 1 del puerto B
o lnea de datos (SSP).
21. RB0/INT; Bit 0 del puerto B
2
4
2
5