Contador De 0 A 99 Y Reloj De 60 Minutos
En esta práctica el objetivo a seguir es la construcción de un contador de 0 a 99, en el cual emplearemos el pic de costumbre y 2 displays de 7 segmentos de ánodo común.
Para estoaplicaran los nuevos conocimientos adquiridos los cuales harán de esta tarea algo más sencillo tanto para el programador como para el que hace uso del código, debido a que el proceso se va tornando unpoco más complejo se darán indicaciones precisas en partes cruciales de el programa creado.
Desarrollo.
Para este contador se siguieron los parámetros establecidos en programas anteriores, acontinuación se mostrara el programa y en breve las anotaciones o sentencias nuevas.
#include <16F84A.h>
#fuses XT, NOWDT
#use delay (clock=4000000) // reloj de 4MHZ//
#BYTE TRISA = 0x85// TRISA EN 85H//
#BYTE PORTA = 0x05 //PORTA EN 05H.//
#BYTE TRISB = 0x86 // TRISAB EN 86H.//
#BYTE PORTB = 0x06 //PORTB EN 06H.//
byte CONST DISPLAY [10] ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void main()
{
byte unidades=0, decenas=0,retardo=0;
TRISA=0b00000000;
TRISB=0b00000000;
PORTA=3;
while(1)
{for(decenas=0;decenas<10;decenas++)
{
for(unidades=0;unidades<10;unidades++)
{
for(retardo=0;retardo<10;retardo++)
{
PORTA=1;
PORTB=DISPLAY[unidades];delay_ms(50);
if (decenas==0)
PORTA=3;
else
PORTA=2;
PORTB= DISPLAY[decenas];
delay_ms(50);
}
}}
}
}
Lo primero que hace diferente este programa de los demás es que se omite el estar escribiendo los números que se mostraran en el display(ejemplo portb=0b00111001), esto selogra creando una constante con la siguiente leyenda: byte CONST DISPLAY [10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};lo que nos está diciendo esta instrucción es que nuestra constante...
Regístrate para leer el documento completo.