El microcontrolador STC89C52 utiliza lenguaje C para implementar el tubo digital para mostrar cualquier número de cuatro dígitos, incluido el punto decimal.
#include
#define uchar unsigned char
#define uint unsigned int
sbit wr=P1^ 0;
sbit cs1=P1^1;
sbit cs2=P1^2;
uchar q,w,a[8];
uchar código zm[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
}
void wx(uchar xx)
{
wr=0;
cs2=0;
P0=xx;
wr=1;
cs2=1;
}
void wx(uchar xx)
{
wr=0;
cs1=0;
P0=xx;
wr= 1;
cs1=1;
}
void T0_time() interrupción 1
{
TH0 =(65536-1835)/256;
TL0=(65536-1835)%256;
wx(0xff);
if(q== 1)
{
dx(zm[a[q]]);
}
else
{
dx(zm[a[q]]&0x7f);//Punto decimal;
}
wx(w);
w=w<<1|0x01;
if(++q==8)
{
q=0;
w=0xfe;
}
}
void main()
{
TH0 =(65536-1835)/256;
TL0=(65536-1835)%256;
EA=1;
ET0=1;
p>TR0=1;
mientras(1)
{
a[0]=8;
a[1]=7;
a[2]=6;
a[3]=5;
}
}