Decodificador micro-controlador at89s52
Practica #1 DECODIFICADOR AT89S52
José Abel Menchaca Martínez Marissa Salazar Aguirre
225611 225652
Micro-procesadores
Introducción
En estedocumento se explicara el uso los puertos I/O del micro (AT89S52) que se utilizaron así como la forma de uso de los displays.
Objetivo Manejo de puertos de entrada y salida y el manejo de un bit decontrol. La práctica consta de insertar en el puerto de entrada (P1) valores ASCII (del 30h – 39h) y mostrar en decimales en la pantalla del display. Como extra se manejara el bit de control el botón (P3^3)cuando este no este presionado (1) solo decodificara la señal para mostrarla en el display de siete segmentos. Si se presiona el botón (0) este decodificara y se le sumara una unidad (ejemplo si sele manda el 30h = 0 se mostrara en la pantalla un uno).
Desarrollo de la Práctica
Diagrama de flujo
Cuerpo del programa
Función decodifocador
Código
#include int ac(); //esta funcionnos regresara un entero que sera el indice a buscar en el array numeroOut[] sbit led = P2^7; //la declaracion de este puerto se utiliza para activarel anodo del display sbit button = P3^3; //el botons2 sera utilizado como el bit de control para realizar la suma (+1) //si el boton no esta presionado el programa funcionara como decodificador. unsigned char const numeroInto[]= {12, 140, 76, 204, 44,172, 108, 236, 28, 156, 92, 220, 60, 188, 124, 252}; unsigned char const numeroOut[]={40, 235, 50, 162, 225, 164, 36, 234, 32, 224, 150}; // en el main se utilizan los puertos P0 //el puerto 0 esutilizado como salida hacia el display de 7 segmentos
void main (void){ while (1){ led =0;
//activación del ánodo del display 1
if (button==1){ //si el botón no está presionado en el arreglollamaremos la funcion que nos regresara P0=numeroOut[ac()]; //el valor (índice) del arreglo que vamos a mostrar } if (button==0) { funcion int acum; (9) acum=ac(); if (acum==9) //si es nueve el indice...
Regístrate para leer el documento completo.