Documentos de Académico
Documentos de Profesional
Documentos de Cultura
OBJETIVOS.
COMPETENCIAS.
INTRODUCCIÓN.
Microcontrolador: PIC16F877A
Fabricante: MICROCHIP TECHNOLOGY INC.®
1
Microsex N° 17 – Programación de Microcontroladores.
(1) Cambio entre fuente de alimentación a través de USB o fuente de alimentación externa.
(2) Módulos LCD 128*64 y LCD 16*2
(3) Se proporciona 32 LED.
(4) Módulo de teclado matricial 4×4
(5) Se proporciona 8 botones.
(6) Potenciómetros para simular entrada de tensión analógica.
(7) Módulo de comunicación IIC (24C01/02 EEPROM)
(8) Módulo de comunicación SPI (93C46 EEPROM)
(9) Reloj de tiempo real DS1302. (La batería no está incluida)
(10) Circuito de reinicio.
(11) Conector ICD2 para clientes que quieran utilizarlo.
(12) Módulo de programación integrado (Comunicación USB)
(13) Chip socket y selección de reloj del sistema
(14) Pantalla LED digital con 6 visores de 7 segmentos
(15) Módulo receptor y descodificador de control remoto
(16) Termómetro digital DS1820 para medición de temperatura de -55°C a 125°C.
(17) Módulo experimental Beeper
(18) Comunicación RS-232 para conexión con PC o cualquier otro dispositivo con conector DB9
2
Microsex N° 17 – Programación de Microcontroladores.
(19) Conversor serial de voltaje DA (TLC5615) de 10 bits para aplicaciones en dispositivos de medición
y regulación.
(20) Todos los pines se extraen de los conectores IDC10 para que estén disponibles para futuras
conexiones.
(21) Módulo de controlador de motor paso a paso
(22) Módulo de lectura/escritura de tarjeta SD/MMC
(23) Chip PIC16F877A-I/P
3
Microsex N° 17 – Programación de Microcontroladores.
ACTIVIDADES.
LABORATORIO.
4
Microsex N° 17 – Programación de Microcontroladores.
5
Microsex N° 17 – Programación de Microcontroladores.
o Colocar el Project Name por ejemplo “Parpadeo”, en Browse direccionar la carpeta donde
se guardará el proyecto y dar clic en “Finish”.
6
Microsex N° 17 – Programación de Microcontroladores.
o En File Name colocar el nombre del programa (puede tener el mismo nombre del
proyecto), por ejemplo “Parpadeo”, luego clic en “Finish”.
7
Microsex N° 17 – Programación de Microcontroladores.
8
Microsex N° 17 – Programación de Microcontroladores.
Compilar el código.
9
Microsex N° 17 – Programación de Microcontroladores.
10
Microsex N° 17 – Programación de Microcontroladores.
11
Microsex N° 17 – Programación de Microcontroladores.
INFORME.
Establezca conclusiones.
El estudio de una carrera luego de haber superado las materias básicas se convierte, en parte,
en entrenamiento para la vida laboral. Desarrolla tu metodología de estudio pensando en la
información que recibes y lees como parte de un entrenamiento profesional. Sácale el gusto al
estudio.
MR
12
Microsex N° 17 – Programación de Microcontroladores.
PROCESSOR 16F877a
#include <xc.inc>
; PIC16F877A Configuration Bit Settings
; Assembly source line config statements
; CONFIG
CONFIG FOSC = XT ; Oscillator Selection bits (HS oscillator)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG BOREN = ON ; Brown-out Reset Enable bit (BOR enabled)
CONFIG LVP = OFF ; Low-Voltage (Single-Supply) In-Circuit Serial
CONFIG CPD = OFF ; Data EEPROM Memory Code Protection bit
CONFIG WRT = OFF ; Flash Program Memory Write Enable bits
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
;VARIABLES
PSECT udata
R_CONTA:
DS 1
R_CONTB:
DS 1
R_CONTC:
DS 1
PROGRAMA:
PAGESEL PRINCIPAL ;Selecciona la página PRINCIPAL
GOTO PRINCIPAL
PSECT code ;"code" debe estar anotado con letras minúsculas
PRINCIPAL:
BCF STATUS,6 ;Configuraciones de registros de BANK 1
BSF STATUS,5
MOVLW 0x06 ;Entradas analógicas desactivadas
MOVWF ADCON1
CLRF TRISB ;Configura puerto B como salida
BSF TRISA,0 ;Configura RA0 como entrada
BSF TRISA,1 ;Configura RA1 como entrada
BCF STATUS,5 ;Configuraciones de registros de BANK 0
MOVLW 0X01 ;Puerto B con un bit encendido
MOVWF PORTB ;Limpia bandera C
BCF STATUS,0
BUCLE:
BTFSS PORTA,0 ;Si se presiona RA0 rota a la izquierda
CALL ROTA_IZQUIERDA
BTFSS PORTA,1 ;Si se presiona RA1 rota a la derecha
CALL ROTA_DERECHA
GOTO BUCLE
13
Microsex N° 17 – Programación de Microcontroladores.
RETARDO_1ms: ;Retardo de 1 ms
MOVLW 1
RETARDO_1DECIMA:
MOVWF R_CONTC
R1DECIMA_BUCLEEXTERNO2:
MOVLW 100
MOVWF R_CONTB
R1DECIMA_BUCLEEXTERNO:
MOVLW 249
MOVWF R_CONTA
R1DECIMA_BUCLEINTERNO:
NOP
DECFSZ R_CONTA,1
GOTO R1DECIMA_BUCLEINTERNO
DECFSZ R_CONTB,1
GOTO R1DECIMA_BUCLEEXTERNO
DECFSZ R_CONTC,1
GOTO R1DECIMA_BUCLEEXTERNO2
RETURN
END PROGRAMA
14
Microsex N° 17 – Programación de Microcontroladores.
Programa que lee un teclado matricial 4x4 y muestra en número de tecla pulsada
en el puerto B.
PROCESSOR 16F877a
#include <xc.inc>
; PIC16F877A Configuration Bit Settings
; Assembly source line config statements
; CONFIG
CONFIG FOSC = XT ; Oscillator Selection bits (HS oscillator)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG BOREN = ON ; Brown-out Reset Enable bit (BOR enabled)
CONFIG LVP = OFF ; Low-Voltage (Single-Supply) In-Circuit Serial
CONFIG CPD = OFF ; Data EEPROM Memory Code Protection bit
CONFIG WRT = OFF ; Flash Program Memory Write Enable bits
CONFIG CP = OFF ; Flash Program Memory Code Protection bit
;VARIABLES
PSECT udata
PROGRAMA:
PAGESEL PRINCIPAL ;Selecciona la página PRINCIPAL
GOTO PRINCIPAL
PSECT code ;"code" debe estar anotado con letras minúsculas
PRINCIPAL:
BCF STATUS,6 ;Configuraciones de registros de BANK 1
BSF STATUS,5
MOVLW 0x06 ;Entradas analógicas desactivadas
MOVWF ADCON1
BCF TRISE,4 ;Puerto D configurado como I/O de propósito general
CLRF TRISB ;Puerto B como salida
CLRF TRISD ;Puerto D como salida
MOVLW 0XF0 ;RC0 a RC3 como salida y
MOVWF TRISC ;RC4 a RC7 como entrada
BCF STATUS,5 ;Configuraciones de registros de BANK 0
BCF STATUS,2 ;Limpia bandera Z
BCF STATUS,0 ;Limpia bandera C
CLRF PORTB ;Puerto B en cero (leds apagados)
CLRF PORTC ;Puerto C en cero
CLRF PORTD ;Puerto D en cero
BUCLE:
CLRF CONT1 ;Limpia el contador1
CLRF CONT2 ;Limpia el contador2
MOVLW 0X03
MOVWF CONT3 ;Carga valor para retardo aproximado de 0.5 seg
BCF PORTD,4 ;Limpia indicador de tecla pulsada
SIGFILA:
CLRF TECLA ;Tecla actual = 0
BCF STATUS,2 ;Limpia bandera Z
MOVLW 0X0E
MOVWF PORTC ;Saca 0 a la fila 1, para testearla
15
Microsex N° 17 – Programación de Microcontroladores.
LEETECL:
BTFSS PORTC,4 ;Chequea la columna 0 en busca de un '0'
GOTO NUMTECLA ;si encuentra un 0 muestra el número de tecla pulsada
INCF TECLA ;si no encuentra el 0, incrementa el número de tecla
BTFSS PORTC,5 ;Chequea la columna 1 en busca de un '0'
GOTO NUMTECLA ;si encuentra un 0 muestra el número de tecla pulsada
END PROGRAMA
16
Microsex N° 17 – Programación de Microcontroladores.
PROCESSOR 16F877a
#include <xc.inc>
; PIC16F877A Configuration Bit Settings
; Assembly source line config statements
; CONFIG
CONFIG FOSC = XT ; Oscillator Selection bits (HS oscillator)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = ON ; Power-up Timer Enable bit (PWRT disabled)
CONFIG BOREN = OFF ; Brown-out Reset Enable bit (BOR enabled)
CONFIG LVP = OFF ; Low-Voltage (Single-Supply) In-Circuit Serial Programming Enable
; bit (RB3 is digital I/O, HV on MCLR must be used for programming)
CONFIG CPD = OFF ; Data EEPROM Memory Code Protection bit
; (Data EEPROM code protection off)
CONFIG WRT = OFF ; Flash Program Memory Write Enable bits (Write protection off
; all program memory may be written to by EECON control)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
;VARIABLES
PSECT udata
PROGRAMA:
PAGESEL PRINCIPAL ;Selecciona la página PRINCIPAL
GOTO PRINCIPAL
PSECT code ;"code" debe estar anotado con letras minúsculas
PRINCIPAL:
BCF STATUS,6 ;Configuraciones de registros de BANK 1
BSF STATUS,5
CLRF TRISC ;Puerto C somo salida
CLRF TRISB ;Puerto B como salida
BSF TRISA,0 ;Puerto RA0 como entrada
MOVLW 0x8E ;ADRESH:ADRESL con justificación derecha, frec. de
MOVWF ADCON1 ;conversión a Fosc/32 y AN0 activado
BCF STATUS,5 ;Configuraciones de registros de BANK 0
MOVLW 0x81 ;Clock de conversión Fosc/32, Seleccionamos canal AN0,
MOVWF ADCON0 ;modo espera para iniciar la conversión y módulo ADC activado
BUCLE:
BSF ADCON0,2 ;Inicio de conversión
ESPERA:
BTFSC ADCON0,2 ;Terminó la conversión?
GOTO ESPERA ;No, espera
MOVF ADRESH,0 ;Byte alto del valor binario en puerto C
MOVWF PORTC
BSF STATUS,5 ;Cambio al Bank 1
MOVF ADRESL,0 ;Byte bajo del valor binario en puerto B
17
Microsex N° 17 – Programación de Microcontroladores.
BCF STATUS,5
MOVWF PORTB
CALL RETARDO_1ms ;Retardo de 1 ms
GOTO BUCLE
END PROGRAMA
18