INTERFAZ HMI Assembler
Enviado por Bastian Antonio Miranda Villablanca • 11 de Junio de 2022 • Ensayo • 10.908 Palabras (44 Páginas) • 51 Visitas
INTERFAZ HMI
Laboratorio N°2
Bastian Miranda V.
Est.Ingeniería Civil en Electrónica
Universidad Tecnologica Metropolitana
Diego Camousseight C.
Est.Ingeniería Civil en Electrónica
Universidad Tecnologica Metropolitana
introducción
Se expondrán el desarrollo de aplicaciones utilizando la interfaz hombre-maquina, a través de instrucciones en Assembler de microcontroladores, y el uso de interruptores, teclados matriciales, displays de 7 segmentos y displays LCD
Diagramas eléctricos
Circuito 1
Para el desarrollo del ejercicio1 se utilizarán lo elementos de la figura 1.
[pic 1]
Figura 1
Lista de Materiales.
COMPONENTES | CANTIDAD |
PIC16F887 | 1 |
DISPLAY DE 7 SEGMENTOS | 2 |
RESISTENCIA 220[Ω] | 14 |
RESISTENCIA 10k[Ω] | 1 |
FUENTE DE ALIMENTACION DC | 1 |
CRISTAL 4MHz | 1 |
CONDENSADOR 22pF | 2 |
PROTOBOARD | 1 |
L7805 | 1 |
TECLADO MATRICIAL | 1 |
Circuito 2
Para el desarrollo de los algoritmos de Entrada y de Salidas del microcontrolador, se utilizará el siguiente diagrama electrónico, de la figura 2.
[pic 2]
Figura 2
Lista de Materiales.
COMPONENTES | CANTIDAD |
PIC16F84 | 1 |
TECLADO MATRICIAL | 1 |
FUENTE DE ALIMENTACION DC | 1 |
CRISTAL 4MHz | 1 |
DISPLAY LCD | 1 |
ALGORITMOS Y DIAGRAMAS DE FLUJO
Para este apartado se expresará los algoritmos utilizados y además, el diagrama de flujo que se siguió para cada circuito de la experiencia.
Circuito 1
Diagrama de Flujo.
Se define el diagrama de flujo del circuito 1
[pic 3]
[pic 4]
Circuito 2
Diagrama de Flujo.
Se define el diagrama de flujo del circuito 2.
[pic 5]
Codificación assembler
En esta sección se plasmarán los códigos de assembler que se utilizaron para la experiencia.
Configuración de pines de Salidas
Circuito 1.
;; Donde ;; ;; _A_ | _A_ ;; F| |B | F| |B ;; -G- | -G- ;; E| |C | E| |C ;; --- | --- ;; D | D ;; ;; Catodo Comun -> CC | Anodo Comun -> AC ;; Enviar -> 1 | Enviar -> 0 ;; ;;-------------------------------------------------- ;; DEFINICION DE NUMEROS ;; ;; NUMERO -> 0 ;; MOVLW 0x3f ;b'0011 1111' ;; MOVWF PORTX ;; ;; NUMERO -> 1 ;; MOVLW 0x06 ;b'0000 0110' ;; MOVWF PORTX ; ;; NUMERO -> 2 ;; MOVLW 0x5b ;b'0101 1011' ;; MOVWF PORTX ; ;; NUMERO -> 3 ;; MOVLW 4F ;b'0100 1111' ;; MOVWF PORTX ; ;; NUMERO -> 4 ;; MOVLW 66 ;b'0110 0110' ;; MOVWF PORTX ; ;; NUMERO -> 5 ;; MOVLW 6D ;b'0110 1101' ;; MOVWF PORTX ; ;; NUMERO -> 6 ;; MOVLW 7D ;b'0111 1101' ;; MOVWF PORTX ; ;; NUMERO -> 7 ;; MOVLW 7 ;b'0000 0111' ;; MOVWF PORTX ; ;; NUMERO -> 8 ;; MOVLW 7F ;b'0111 1111' ;; MOVWF PORTX ; ;; NUMERO -> 9 ;; MOVLW 7F ;b'0111 1111' ;; MOVWF PORTX ; ;; NUMERO -> A ;; MOVLW 0x77 ;b'0111 0111' ;; MOVWF PORTX ; ;; NUMERO -> B ;; MOVLW 0x7C ;b'0111 1100' ;; MOVWF PORTX ; ;; NUMERO -> C ;; MOVLW 0x39 ;b'0011 1001' ;; MOVWF PORTX ; ;; NUMERO -> D ;; MOVLW 0x5E ;b'0101 1110' ;; MOVWF PORTX ; ;; NUMERO -> E ;; MOVLW 0x79 ;b'0111 1001' ;; MOVWF PORTX ; ;; NUMERO -> F ;; MOVLW 0x71 ;b'0111 0001' ;; MOVWF PORTX
;;--------------------------------------------------------- ;; CONFIGURACION DE PUERTOS ;; ;; SALIDA ;; ;; CLRF TRISA ; PUERTA -> SALIDA ;; CLRF TRISB ; PUERTB -> SALIDA ;; CLRF TRISC ; PUERTC -> SALIDA ;; CLRF TRISD ; PUERTD -> SALIDA ;; CLRF TRISE ; PUERTE -> SALIDA ; ;; ENTRADA ;; MOVLW B'11111111' ;; MOVWF TRISA ; PUERTA -> ENTRADA ;; MOVWF TRISB ; PUERTB -> ENTRADA ;; MOVWF TRISC ; PUERTC -> ENTRADA ;; MOVWF TRISD ; PUERTD -> ENTRADA ;; MOVWF TRISE ; PUERTE -> ENTRADA ; ;; EJEMPLO ;; ;; BSF STATUS, RP0 ; ;; MOVLW B'11111111' ;; MOVWF TRISA ; ;; CLRF TRISB ; PUERTB -> SALIDA ; ;; BCF STATUS,RP0 ;; ;;--------------------------------------- LIST P = 16F877A include P16F877A.inc
CBLOCK 0x20 Var01 Var02 Var03 Var04 ENDC ORG 0 CALL Teclado_Inicializa
CALL CONFIGURACION CALL Teclear_01 CALL Teclear_02
Cuenta btfss Var03,0 goto Digito_0 nop btfss Var04,0 goto Digito_0_0 nop call Retardo_1s decfsz Var02,7 clrf Var03 clrf Var04 goto Cuenta goto Teclear_01 ;---------------------------------------- ; Digitos Primer Display ;----------------------------------------
Digito_0 btfsc Var02,7 goto Digito_8 nop btfsc Var02,6 goto Digito_4 nop btfsc Var02,5 goto Digito_2 nop btfsc Var02,4 goto Digito_1 nop movlw 0x3F;0 movwf PORTD movlw 0x01 movwf Var03 goto Teclear_01
Digito_1 movlw 0x06;1 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_2 btfsc Var02,4 goto Digito_3 nop movlw 0x5B;2 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_3 movlw 0x4F;3 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_4 btfsc Var02,5 goto Digito_6 nop btfsc Var02,4 goto Digito_5 nop movlw 0x66;4 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_5 movlw 0x6D;5 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta Digito_6 btfsc Var02,4 goto Digito_7 nop movlw 0x7D;6 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_7 movlw 0x07;7 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_8 btfsc Var02,6 goto Digito_C nop btfsc Var02,5 goto Digito_A nop btfsc Var02,4 goto Digito_9 nop movlw 0x7F;8 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_9 movlw 0x6F;9 movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_A btfsc Var02,4 goto Digito_B nop movlw 0x77;A movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_B movlw 0x7C;B movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_C btfsc Var02,5 goto Digito_E nop btfsc Var02,4 goto Digito_D nop movlw 0x39;C movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_D movlw 0x5E;D movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_E btfsc Var02,4 goto Digito_F nop movlw 0x79;E movwf PORTD movlw 0x01 movwf Var03 goto Cuenta
Digito_F movlw 0x71;F movwf PORTD movlw 0x01 movwf Var03 goto Cuenta ;---------------------------------------- ; Digitos Segundo Display ;---------------------------------------- Digito_0_0 btfsc Var02,3 goto Digito_2_8 nop btfsc Var02,2 goto Digito_2_4 nop btfsc Var02,1 goto Digito_2_2 nop btfsc Var02,0 goto Digito_2_1 nop movlw 0x3F movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_1 movlw 0x06 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_2 btfsc Var02,0 goto Digito_2_3 nop movlw 0x5B ; 2 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_3 movlw 0x4F;3 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_4 btfsc Var02,1 goto Digito_2_6 nop btfsc Var02,0 goto Digito_2_5 nop movlw 0x66 ; 4 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_5 movlw 0x6D ;5 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_6 btfsc Var02,0 goto Digito_2_7 nop movlw 0x7D ; 6 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_7 movlw 0x07 ;7 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_8 btfsc Var02,2 goto Digito_2_C nop btfsc Var02,1 goto Digito_2_A nop btfsc Var02,0 goto Digito_2_9 nop movlw 0x7F; 8 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_9 movlw 0x6F; 9 movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_A btfsc Var02,0 goto Digito_2_B nop movlw 0x77 ;A movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_B movlw 0x7C; B movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_C btfsc Var02,1 goto Digito_2_E nop btfsc Var02,0 goto Digito_2_D nop movlw 0x39 ;C movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_D movlw 0x5E ; D movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_E btfsc Var02,0 goto Digito_2_F nop movlw 0x79 ; E movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
Digito_2_F movlw 0x71 ;F movwf PORTC movlw 0x01 movwf Var04 goto Cuenta
;---------------------------------------- ; CONFIGURACION ;---------------------------------------- CONFIGURACION bsf STATUS,RP0 clrf TRISC clrf TRISD bcf STATUS,RP0 clrf PORTC clrf PORTD RETURN ;---------------------------------------- ; Teclear_01 ;---------------------------------------- Teclear_01 movlw 0x00 movwf STATUS call Teclado_LeeOrdenTecla btfsc STATUS,C goto GUARDAR01 goto Teclear_01 ;---------------------------------------- ; Teclear_02 ;---------------------------------------- Teclear_02 movlw 0x00 movwf STATUS call Teclado_LeeOrdenTecla btfsc STATUS,C goto GUARDAR02 goto Teclear_02 ;---------------------------------------- ; GUARDAR01 -> Guardar valor 1 y 2 ;---------------------------------------- GUARDAR01 movwf Var01 movwf Var02 swapf Var02 call Retardo_500ms goto Teclear_02 ;---------------------------------------- ; GUARDAR02 -> Sumar valor 2 y saltar a la cuenta ;---------------------------------------- GUARDAR02 addwf Var02 goto Cuenta goto GUARDAR02 include RETARDOS.INC include KBD877.INC include LCD877.INC
END |
...