Red de conocimientos turísticos - Información de alquiler - Pantalla dinámica de tubo digital MCU

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

{

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

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

}

}