Pantalla dinámica de tubo digital MCU
El siguiente es un programa de visualización dinámica de tubos digitales que utiliza selección de segmentos y selección de bits. Puede consultar el siguiente método de escritura
#include lt;
unsigned char dispbitcnt; //Variable de escaneo de código de bits de tubo digital
unsigned char second;
//Segunda variable
unsigned char minite;
p>//Variable de minutos
hora de carácter sin firmar;
//variable de tiempo
tcnt de carácter sin signo;
/ /Variable de generación de segunda señal
unsigned char mstcnt
//Variable de tiempo de escaneo
const unsigned char dispcode[10]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, lt ;brgt; lt; brgt; lt; brgt; 0x92, 0x82, 0xf8, 0x80, 0x90};
//0123456789 código de segmento
const unsigned char dispbitcode [6]={ 0xfe, 0xfd, 0xfb, 0xf7, lt; brgt; brgt; brgt; 0xef, 0xdf};
//123456 código de bits
char dispbuf[6] ={0, 0, 0, 0, 0, 0};
//Matriz de búfer
//********** ********TMR0 Interrumpe el escáner de tubo digital **********************
void Timer0() interrupción 1 p>
{
P2=dispcode[dispbuf[dispbitcnt]];//código de segmento
P1=dispbitcode[dispbitcnt];//código de bits
dispbitcnt;
if(dispbitcnt==6)
{dispbitcnt=0;lt;brgt;}
tcnt;
//La interrupción genera una segunda señal p>
if(tcnt==244)
{tcnt=0;lt;brgt;lt;brgt;segundo;lt;brgt;lt;brgt ;si(segundo==60) lt; lt; lt; lt; lt; lt; lt; ; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; lt; >
}
}
dispbuf[4]=segundo10
dispbuf[5]=segundo/10;
dispbuf[2]=minite10;
dispbuf[3]=minite/10; =hora10;
dispbuf[1]=hora/10;
}
TMOD=0x01;
TL0=0x10;
TH0=0xf0;
}
///****************Programa de retraso de 1 ms** * ***************
void delay_1ms(unsigned char i)
{
unsigned char j;< / p>
for(i=0;ilt;144;i)
for(j=0;jlt;144;j);
}
//***************Programa principal************************
void main ( nulo)
{
TMOD=0x01
TL0=0x10
TH0=0xf0; > while(1)
{
dispbitcnt=0;
P1=0x00
//Código de apertura
P2=0x00;
//Abrir código de bits
delay_1ms(200);
//Retraso
delay_1ms ( 200);
//Retraso
retardo_1ms(200);
//Retraso
retardo_1ms(200); >
//Retraso
P2=0xff;
//Código de bit apagado
EA=1;
ET0= 1;
TR0=1
mientras(1
}
}