Programacion de Contador Ascendente de 0 a 99 Con Display en Assembler Con Pic 16f8777a

UNIVERSIDAD CATÓLICA DE SANTA MARÍA FACULTAD DE CIENCIAS E INGENIERAS FÍSICAS Y FORMALES ESCUELA PROFESIONAL DE INGENIER

Views 122 Downloads 0 File size 843KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

UNIVERSIDAD CATÓLICA DE SANTA MARÍA FACULTAD DE CIENCIAS E INGENIERAS FÍSICAS Y FORMALES ESCUELA PROFESIONAL DE INGENIERÍA ELECTRÓNICA

MICROPROCESADORES Y MICROCONTROLADORES PROGRAMACION EN ASSEMBLER CONTADOR CON DISPLAY DE 0 A 99 ALUMNO:  Escarcena Apaza Anderson Fredy

DOCENTE: ING. PEDRO ALEX RODRIGUEZ GONZALES

GRUPO DE PRACTICA: MIERCOLES 09:00 A 11:00 AM

Arequipa – Perú 2019

PROGRAMACION DE CONTADOR ASCENDENTE DE 0 A 99 CON DISPLAY EN ASSEMBLER CON PIC 16F8777A

La finalidad de esta sesión en la práctica de laboratorio del curso de microprocesadores y microcontroladores es el hacer una programación en lenguaje assembler de un contador de 0 a 99 de manera ascendente usando como microcontrolador el pic 16f877a, primero se hará el estructurado del programa creando un archivo Hex usando el software MplabXIDE y después como quemador el software Pickit2. COMPONENTES A UTILIZAR: MICROCONTROLADOR PIC 16F877A: Los microcontroladores poseen memoria interna de 2 tipos: las instrucciones y los registros, este microcontrolador se programa en assembler, este microcontrolador es fabricado por Microchip, este PIC posee varias características que lo hacen muy versátil eficiente y práctico para ser empleado en la aplicación que mencionamos anteriormente. Este PIC soporta modo de comunicación serial, amplia memoria para datos y programa y su memoria es reprogramable denominada FLASH este tipo de memoria borra electrónicamente el programa y tiene un set de instrucciones reducido (modelo RISC).

Figura N°1 INTEGRADO 74LS47: El circuito integrado 7447 es un circuito que decodifica señales binarias de 4 bits en unas lineas de salida que posteriormente pueden ser representadas por un display de 7 segmentos mostrando los dígitos decimales. Los pines 7,1,2 y 6 funcionan como entradas de un numero binario, mientras los pines 9,10,11,12,13,14,15 pertenecen a las lineas de salida y a cada uno de estos pines le corresponde un segmento del display. También se encuentran los pines de alimentación 16+ y 8- y los pines de control.

Figura N°2 DISPLAY 7 SEGMENTOS: Es un dispositivo que cuenta como su nombre lo dice con siete segmentos cada uno con un diodo led, los diodos led van unidos en un punto común que puede ser de cátodo o ánodo, cuando el display es de cátodo común los segmentos se prenderán con señales positivas y si es de ánodo común con señales negativas. Estos displays cuentan con diez pines 7 para los segmentos numéricos, uno para el punto y dos de alimentación, los pines se distribuyen como lo muestra el datasheet de abajo.

Figura N°3

OSCILADOR DE CRISTAL: es un oscilador electrónico que utiliza la resonancia mecánica de un cristal vibratorio de material piezoeléctrico para crear una señal eléctrica con una frecuencia precisa. Esta frecuencia se utiliza comúnmente para controlar el tiempo, como en los relojes de cuarzo, para proporcionar una señal de reloj estable para circuitos integrados digitales y para estabilizar las frecuencias en esta sesión lo utilizaremos para la frecuencia de nuestro circuito y controlar el tiempo en el contador que se mostrara en los display.

Figura N°4

PROGRAMACION EN ASSEMBLER CONTADOR DE 0 A 99 __CONFIG _CP_OFF & _PWRTE_ON & _LVP_OFF & _WDT_OFF & _HS_OSC list P=16F877A include CBLOCK 0X20 D1 D2 D3 CONTADOR ENDC ORG 0X00 ;CONFIGURACION BSF STATUS ,RP0 CLRF PORTB CLRF PORTC BCF STATUS,RP0 CLRF PORTB MOVLW 0X00 MOVWF CONTADOR CALL RETARDO_250ms ;PROGRAMA PRINCIPAL CUENTA INCF CONTADOR,F MOVF CONTADOR,W ANDLW 0X0F SUBLW 0X09 BTFSC STATUS,W GOTO MOSTRAR MOVLW PORTB ADDWF CONTADOR,F MOSTRAR MOVF CONTADOR,W SUBLW 0X99 BTFSS STATUS,C CLRF CONTADOR MOVF CONTADOR,W MOVWF PORTB CALL RETARDO_250ms GOTO CUENTA

RETARDO_250ms MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF Delay_0 DECFSZ GOTO DECFSZ GOTO DECFSZ GOTO GOTO GOTO NOP RETURN END

0x8A D1 0xBA D2 0x03 D3 D1, f $+2 D2, f $+2 D3, f Delay_0 $+1 $+1

Según el programa se ve que decidimos programar las salidas mediante el puerto B del PIC para el primer display en BCD desde B0 a B3 y del B4 al B7 para el segundo display ESTRUCTURA DEL CIRCUITO EN PROTEUS

El oscilador de cristal a utilizar es de 16MHz

Como lo mencionamos anteriormente programamos en el puerto B del pic 16F877A a continuación se muestra su diagrama de bloque.

CIRCUITO SIMULADO EN PROTEUS CON EL CODIGO INTRODUCIDO YA EN EL PIC EN FORMATO HEX

CIRCUITO ARMADO EN PROTOBOARD