Red de conocimiento informático - Material del sitio web - Comunicación serial basada en microcontrolador stc15, envío de datos mediante pantalla de tubo digital (programa fuente)

Comunicación serial basada en microcontrolador stc15, envío de datos mediante pantalla de tubo digital (programa fuente)

#include

#define uchar unsigned char

código uchar ledtab[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,0xff};//***tabla de códigos de tubo digital positivo 0-9

uchar time,scanled;

uchar disdat[2 ] ;

bit flag=0;

void dischg() //Mostrar conversión de código

{

disdat[0]= s_dat /10; //Segunda conversión

disdat[1]=s_dat%10;

}

void t0isr() interrupción 1 //Segundo momento< / p>

{

TH0=(65536-50000)/256;

TL0=(65536-50000)%256;

tiempo++; /p>

if(tiempo>=20)

{

tiempo=0;

s_dat++;

bandera = 1;

}

}

void t1isr() interrupción 3 //Control de visualización

{

TH1=(65536-4000)/256;

TL1=(65536-4000)%256;

duan=1;

P0=0xff; /Blanking

duan=0;

wei=1;

P0=1<

wei =0;

duan=1;

P0=disdat[escaneado];

duan=0;

escaneado++; p>

escaneado%=2; //***Pantalla de 8 dígitos

}

main()

{

TMOD=0x21; //Los temporizadores 0 y 1 están en modo 1

TH0=(65536-50000)/256; //Temporizador 0, interrumpe una vez cada 50 milisegundos

TL0=(65536-50000)%256;

TH1=0xfd;

TL1=0xfd;

SCON=0x40;

TR1=1;

TR0=0;

ET0=1;

EA=1;

escaneado=0; /p>

tiempo=0;

dischg();

mientras(1)

{

if( bandera )

{

flag=0;

SBUF=s_dat;

mientras(TI==0);

TI=0;

}

}

}