LAB08 Grupo4
LAB08 Grupo4
LAB08 Grupo4
Laboratorio 8
“Comunicación serial”
Profesor:
Alumnos:
Sección: 5C16-B
2019-I
Objetivos
Fundamento teórico
;*****************************************************
;Ejemplo de comunicación serial
;*****************************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
endc
org 0000h
;---------------------------------
banco 1
clrf trisb ;comentar:
banco 0
clrf portb ;comentar:
call RS232_Inicializa ;comentar:
repite
call RS232_LeeDato ;comentar:
movf RS232_Dato,0 ;comentar:
movwf portb ;comentar:
goto repite
;---------------------------------
include<electronicpic16f877.asm>
include<rs232_16f877.asm> ;comentar:
end
;****************************************************
;Ejemplo de comunicación serial
;****************************************************
list p=16f877a
include<p16f877a.inc>
include<macro16f877.inc>
__config 0x3f32
cblock 0x20
endc
org 0000h
;---------------------------------
call RS232_Inicializa ;comentar:
repite
movf portb,0 ;comentar:
call RS232_EnviaDato ;comentar:
delay_seg .1
goto repite
;---------------------------------
include<electronicpic16f877.asm>
include<rs232_16f877.asm> ;comentar:
end
Figura: Simulación de comunicación serial.
Fuente: Elaboración propia.
- Envía los datos binarios del puerto B a la PC, transformándolos en código ASCII.
- Se transmite a 8 bits.
Observaciones y conclusiones
- El bit6 “RX9” sirve para elegir la cantidad de bits de recepción de datos, que
pueden ser 8 o 9 datos, el primero representado por “0” y el segundo por “1”.
- Es importante leer las librerías para poder entender el funcionamiento de cada
código que se coloca.
APLICACIÓN DE LO APRENDIDO
Grupo 4:
Diseñe e implemente una cerradura electrónica con 4 dígitos, al tercer error, este
debe de bloquearse por 30 segundos y nuevamente se podrá a ingresar los códigos.
La lectura de datos se hace a través de Bluetooth aplicando UART.
Código:
list P=16f877a
include<p16f877A.inc>
include<macro16f877.inc> ;comentar:
__CONFIG 3f32
cblock 0x20 ;comentar:
clave1
clave2
clave3
clave4
intento
endc ;comentar:
org 0000h
;------------------------------------------------------
;Programa principal
bsf STATUS,RP0 ;comentar:
clrf TRISB
bcf STATUS,RP0 ;comentar:
clrf PORTB ;comentar:
clrf intento
call RS232_Inicializa ;comentar:
repite
clrf clave1
clrf clave2
clrf clave3
clrf clave4
call RS232_LeeDato ;comentar:
movf RS232_Dato,0 ;comentar:
movwf clave1 ;comentar:
delay_ms .250
csme clave1,.47,repite
csi clave1,'1',compara1
goto errado
compara1
csi clave2,'2',compara2
goto errado
compara2
csi clave3,'3',correcto
goto errado
compara3
csi clave4,'4',correcto
goto errado
correcto
BSF PORTB,RB0
delay_seg .10
BCF PORTB,RB0
errado
incf intento
csi intento,.3,bloqueo
goto repite
bloqueo
clrf intento
BSF PORTB,RB1
delay_seg .30
BCF PORTB,RB1
;------------------------------------------------------
;Librerias
include<electronicpic16f877.asm> ;comentar:
include<rs232_16f877.asm>
end
Simulación:
Implementación:
Conclusiones: