Juan tiene el siguiente problema al simular..."He escrito el programa, lo compila bien pero al simular los valores del puerto no cambian."
Escribir el siguiente programa en el compilador Keil:
"Decodificador 3x8 (Switch)"
//definimos los puertos a utilizar, teniendo en cuenta el micro las direcciones serán distintas
// aquí utilizamos un micro genérico Atmel T89C51.
sfr P2=0XA0;sfr P3=0XB0;
//empieza el programa
void main (void)
{
unsigned char val;
//while(1) es un bucle infinito, "1" siempre es TRUE
while(1) {
val= P3&0x07;
//con el switch comprobamos los distintos casos posibles de la variable 'val'
switch(val)
{
case 0: P2=0x01;break;
case 1: P2=0X02;break;
case 2: P2=0X04;break;
case 3: P2=0X08;break;
case 4: P2=0X10;break;
case 5: P2=0X20;break;
case 6: P2=0X40;break;
case 7: P2=0X80;break;
}}}
El programa lee el valor del puerto P3 (configurado como entrada), se queda con los 3 bits menos significativos (hemos aplicado la máscara 0x07 = 0000-01111) y en función del valor leído, saca otro valor por el puerto P2 (configurado como salida).
Compila el programa con Keil y utilizando la herramienta de depuración, comprueba como cambia el valor del puerto P2 en función del valor del puerto P3.
Recuerda: No olvides desactivar la casilla de verificación "Define 8051 SFR names" del proyecto y activa la casilla de verificación "Create Hex file" para generar el fichero hexadecimal que será el que grabarás en el microcontrolador.
No hay comentarios:
Publicar un comentario