Tarea #2 Digitales -Javier Alejandro Gutierrez de León-
Slides do conjunto (7)
-
- Transmisión Tx con módulo UART
- Utilizando teclado matricial
- pic18F4620 (implementado),
- formulario
- Implementa el teclado matricial mostrando
- el dígito presionado desde el teclado a un
- formulario realizado desde embarcadero
- RAD-STUDIO
- -Javier Alejando Gutierrez de León-

-
- El campo de los microcontroladores tiene sus principios de desarrollo en la tecnología de los circuitos integrados, en la cual es posible almacenar miles de transistores dentro de un solo chip. Esto fue un prerrequisito para la producción de los microprocesadores.
-
- Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de microelectrónica de General Instrument.
-
- Entrenadora
- PIC 16F84A
- Pic Kit 3
- Computadora con Assembler
-


- Legenda: Terminal de hecha en RAD-Studio donde se reciben los datos
- Legenda: Implementación
-
- ;*****************Tipo de microcontrolador******************
- LIST P=18F4620;Tipo de microcontrolador
- INCLUDE <P18F4620.INC>;Llama a la libreria del microcontrolador
- ;*****************Configuracion de bits**********************
- CONFIG OSC = INTIO67
- CONFIG FCMEN = OFF
- CONFIG IESO = OFF
- CONFIG PWRT = ON
- CONFIG BOREN = OFF
- CONFIG BORV = 3
- CONFIG WDT = OFF
- CONFIG WDTPS = 1
- CONFIG CCP2MX = PORTBE
- CONFIG PBADEN = OFF
- CONFIG LPT1OSC = OFF
- CONFIG MCLRE = OFF
- CONFIG STVREN = OFF
- CONFIG LVP = OFF
- CONFIG XINST = OFF
- CONFIG CP0=OFF,CP1=OFF,CP2=OFF,CP3=OFF
- CONFIG CPB = OFF
- CONFIG CPD = OFF
- CONFIG WRT0=OFF,WRT1=OFF,WRT2=OFF,WRT3=OFF
- CONFIG WRTC = OFF
- CONFIG WRTB = OFF
- CONFIG WRTD = OFF
- CONFIG EBTR0 = OFF
- CONFIG EBTR1 = OFF
- CONFIG EBTR2 = OFF
- CONFIG EBTR3 = OFF
- CONFIG EBTRB = OFF
- ;****************Declaracion de variables*********************
- CBLOCK 0X100
- TIEMPO
- TIEMPO1
- TIEMPO2
- TIEMPO3
- TIEMPO4
- TIEMPO5
- CONT
- CONDICION
- ESCRIBE_DATO
- LEE_DATO
- CONTADOR
- NUM1
- CONVL
- CONVH
- TIEMPO6
- ENDC
- #DEFINE _TX PORTA,RA0;DECLARACION DE ETIQUETAS
- #DEFINE _RX PORTA,RA1;DECLARACION DE ETIQUETAS
- ORG 0X00;Indica al ensamblador la direccion de memoria, inicio del pc "Vector de Inicio"
- ;************************Comandos***************************
- ;Zona de codigo ;Columna 1 Columna 2 Columna 3 Columna 4
- ;Etiquetas Operacion Operandos Comentarios
- ; Operacion Y datos
- CALL _ALLDIGITAL
- CALL _TRIS
- CALL _OSCILADOR
- CALL _BAUDIOS
- BEGIN
- CALL botones
- FIN
- GOTO BEGIN
- _ALLDIGITAL
- MOVLW B'00001111'
- MOVWF BSR
- BCF ADCON0,ADON
- BSF ADCON1,PCFG3
- BSF ADCON1,PCFG2
- BSF ADCON1,PCFG1
- BCF ADCON1,PCFG0
- BSF CMCON,CM2
- BSF CMCON,CM1
- BSF CMCON,CM0
- BCF CVRCON,CVREN
- RETURN
- _TRIS
- MOVLW B'00001111'
- MOVWF BSR
- BSF TRISA,RA0
- BCF TRISA,RA1
- MOVLW .255
- MOVWF TRISB
- ;CLRF TRISC
- CLRF TRISD
- ;CLRF TRISE
- BSF TRISE,RE0
- RETURN
- _OSCILADOR
- MOVLW B'00001111'
- MOVWF BSR
- BCF OSCCON,IDLEN
- BSF OSCCON,IRCF2
- BSF OSCCON,IRCF1
- BCF OSCCON,IRCF0
- BSF OSCCON,SCS1
- BSF OSCCON,SCS0
- BCF OSCTUNE,INTSRC
- BCF OSCTUNE,PLLEN
- BCF OSCTUNE,TUN4
- BCF OSCTUNE,TUN3
- BCF OSCTUNE,TUN2
- BCF OSCTUNE,TUN1
- BCF OSCTUNE,TUN0
- RETURN
- _BAUDIOS
- MOVLW .15
- MOVWF BSR
- MOVLW .0
- MOVWF SPBRGH
- MOVLW .25
- MOVWF SPBRG
- ;*********************** CONFIGURACION TX *************************
- BCF TXSTA,CSRC
- BCF TXSTA,TX9
- BSF TXSTA,TXEN
- BCF TXSTA,SYNC
- BSF TXSTA,BRGH
- BCF TXSTA,BRG16
- BCF TXSTA,TRMT
- BCF TXSTA,TX9D
- ;*********************** CONFIGURACION RX *************************
- BSF RCSTA,SPEN
- BCF RCSTA,RX9
- BCF RCSTA,SREN
- BSF RCSTA,CREN
- BCF RCSTA,ADEN
- ; BCF RCSTA,BRG16
- ; BCF RCSTA,TRMT
- BCF RCSTA,RX9D
- ;*********************** LIMPIAR BUFFER ***************************
- CLRF RCREG
- RETURN
- ;*********************** TRANSMISION **********************************
- __TX
- ;MOVLW 'A'
- MOVWF TXREG
- AUN_NO BTFSS TXSTA,TRMT ;INFORMA CUANDO SE EVIA EL ULTIMO DATO
- GOTO NO_ENVIADO
- GOTO ENVIADO
- NO_ENVIADO
- GOTO AUN_NO
- ENVIADO
- RETURN
- botones
- call boton_inicio;Estado inicial
- call boton_1;
- call boton_2;
- call boton_3;
- call boton_4;
- call boton_5;
- call boton_6;
- call boton_7;
- call boton_8;
- call boton_9;
- call boton_0;
- call boton_A;
- call boton_B;
- call boton_C;
- call boton_D;
- call boton_E;
- call boton_F;
- CALL BOTON_BORRAR
- return
- ;************************Estado inicial***************************
- boton_inicio
- MOVF PORTB,W;w=portB
- XORLW .255 ;W XOR 255
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_1
- MOVLW .64
- MOVWF PORTD;TRASLADAR A PORTA
- ; MOVLW '0'
- ; CALL __TX
- GOTO _NO
- return
- ;************************Tecla 1***************************
- boton_1
- MOVF PORTB,W;w=portB
- XORLW .119 ;W XOR 1
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_2
- MOVLW .6
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '1'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 2***************************
- boton_2
- MOVF PORTB,W;w=portB
- XORLW .123;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_3
- MOVLW .91
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '2'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 3***************************
- boton_3
- MOVF PORTB,W;w=portB
- XORLW .125 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_4
- MOVLW .79
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '3'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 4***************************
- boton_4
- MOVF PORTB,W;w=portB
- XORLW .183 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_5
- MOVLW .102
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '4'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 5***************************
- boton_5
- MOVF PORTB,W;w=portB
- XORLW .187 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_6
- MOVLW .109
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '5'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 6***************************
- boton_6
- MOVF PORTB,W;w=portB
- XORLW .189 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_7
- MOVLW .125
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '6'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 7***************************
- boton_7
- MOVF PORTB,W;w=portB
- XORLW .215 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_8
- MOVLW .7
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '7'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 8***************************
- boton_8
- MOVF PORTB,W;w=portB
- XORLW .219 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_9
- MOVLW .127
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '8'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 9***************************
- boton_9
- MOVF PORTB,W;w=portB
- XORLW .221 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_0
- MOVLW .103
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '9'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla 0***************************
- boton_0
- MOVF PORTB,W;w=portB
- XORLW .235 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_A
- MOVLW .63
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW '0'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla A***************************
- boton_A
- MOVF PORTB,W;w=portB
- XORLW .126 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_B
- MOVLW .119
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW 'A'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla B***************************
- boton_B
- MOVF PORTB,W;w=portB
- XORLW .190 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_C
- MOVLW .124
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW 'B'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla C***************************
- boton_C
- MOVF PORTB,W;w=portB
- XORLW .222 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_D
- MOVLW .57
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW 'C'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla D***************************
- boton_D
- MOVF PORTB,W;w=portB
- XORLW .238 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_E
- MOVLW .94
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW 'D'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla E***************************
- boton_E
- MOVF PORTB,W;w=portB
- XORLW .231 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_F
- MOVLW .121
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW 'E'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- ;************************Tecla F***************************
- boton_F
- MOVF PORTB,W;w=portB
- XORLW .237 ;W XOR 2
- BTFSS STATUS,Z ;SI ES VERDADERO SALTAR UNA LINEA
- GOTO boton_inicio
- MOVLW .113
- MOVWF PORTD;TRASLADAR A PORTA
- MOVLW 'F'
- CALL __TX
- CALL DELAY_500MS
- GOTO _NO
- return
- BOTON_BORRAR
- BTFSS PORTE,RE0 ;COUT=1?
- GOTO _NO_COM
- GOTO _SI_COM
- _NO_COM
- GOTO _FIN_COM
- _SI_COM
- MOVLW 'S'
- CALL __TX
- CALL DELAY_500MS
- _FIN_COM
- RETURN
- _NO
- GOTO _FIN
- _FIN
- RETURN
- ;------------------------SECCION DE RETARDOS---------------------------------
- _DELAY_100us
- MOVLW D'12'
- MOVWF TIEMPO
- NOP
- NOP
- LOOP__ DECFSZ TIEMPO,F
- GOTO RETARDOS
- RETURN
- RETARDOS
- NOP
- NOP
- NOP
- GOTO LOOP__
- ;-----------------------1MS---------------------------------------------------
- DELAY_1MS
- MOVLW D'62'
- MOVWF TIEMPO
- NOP
- NOP
- LOOP_ DECFSZ TIEMPO,F
- GOTO RETARDO_
- RETURN
- RETARDO_
- NOP
- NOP
- NOP
- GOTO LOOP_
- ;-----------------------5_MS-----------------------------------------------
- DELAY_5MS
- MOVLW D'6'
- MOVWF TIEMPO2
- NOP
- NOP
- LOOP1_ DECFSZ TIEMPO2,F
- GOTO RETARDO1_
- RETURN
- RETARDO1_
- CALL DELAY_1MS
- GOTO LOOP1_
- ;-----------------------10_MS-----------------------------------------------
- DELAY_10MS
- MOVLW D'3'
- MOVWF TIEMPO3
- NOP
- NOP
- LOOP2_ DECFSZ TIEMPO3,F
- GOTO RETARDO2_
- RETURN
- RETARDO2_
- CALL DELAY_5MS
- GOTO LOOP2_
- ;-----------------------100_MS-----------------------------------------------
- DELAY_100MS
- MOVLW D'11'
- MOVWF TIEMPO4
- NOP
- NOP
- LOOP3_ DECFSZ TIEMPO4,F
- GOTO RETARDO3_
- RETURN
- RETARDO3_
- CALL DELAY_10MS
- GOTO LOOP3_
- ;-----------------------1_S-----------------------------------------------
- DELAY_1S
- MOVLW D'11'
- MOVWF TIEMPO5
- NOP
- NOP
- LOOP4_ DECFSZ TIEMPO5,F
- GOTO RETARDO4_
- RETURN
- RETARDO4_
- CALL DELAY_100MS
- GOTO LOOP4_
- ;-----------------------5_S-----------------------------------------------
- DELAY_5S
- MOVLW D'6'
- MOVWF TIEMPO6
- NOP
- NOP
- LOOP5_ DECFSZ TIEMPO6,F
- GOTO RETARDO5_
- RETURN
- RETARDO5_
- CALL DELAY_1S
- GOTO LOOP5_
- DELAY_500MS
- CALL DELAY_100MS
- CALL DELAY_100MS
- CALL DELAY_100MS
- CALL DELAY_100MS
- CALL DELAY_100MS
- RETURN
- END
-

- Legenda: Visto bueno del profesor
Informações
- Descrição
- Comunicación serial del PIC18F4620
- Criado por
- Javier Alejandro Gutierrez de León · mar 2019
- Atualizado
- 22 mar 2019
- Visualizações
- 22
- Tags
- Avaliação