我真的盡力了,請幫我看下問題出在哪,這是一個38譯碼器的數碼管。謝謝了。
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uint i,a;
uint dis[4];
sbit aa=P2^2;
sbit bb=P2^3;
sbit cc=P2^4;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
void delays(uchar xms)
{
uchar i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display()
{
for(a=0;a<3;a++)
{
switch(a)
{
case 0:aa=0;bb=0;cc=0;break;
case 1:aa=1;bb=0;cc=0;break;
case 2:aa=0;bb=1;cc=0;break;
}
P0=dis[a];
delays(10);
}
}
void datapros()
{
dis[0]=table[i/100];
dis[1]=table[i/100%10];
dis[2]=table[i%10];
}
void main()
{
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
ET0=1;
EA=1;
TR0=1;
while(1)
{
datapros();
display();
}
}
void T0_time()interrupt 1
{
uchar k;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
k++;
if(k==20)
{k=0;i++;}
}
|