程序问题,求助。
时间:10-02
整理:3721RD
点击:
我想在单片机外部中断0处输入一个频率信号,然后用数码管显示出频率来,但是数码管为什么不听话呢?
#include<reg52.h>
sbit WE=P2^1;
sbit DUAN=P2^0;
sbit DS1302=P2^7;
#define uchar unsigned char
#define uint unsigned int
uint t,num1,num2,num3,num4,num5,num6,num7,num8;
uint s,t;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z)
{
uint y,x;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void chushihua()
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
DS1302=0;
}
void display()
{
DUAN=1;
P0=table[num8];
DUAN=0;
WE=1;
P0=0xfe;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num7];
DUAN=0;
WE=1;
P0=0xfd;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num6];
DUAN=0;
WE=1;
P0=0xfb;
WE=0 ;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num5];
DUAN=0;
WE=1;
P0=0xf7;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num4];
DUAN=0;
WE=1;
P0=0xef;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num3];
DUAN=0;
WE=1;
P0=0xdf;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num2];
DUAN=0;
WE=1;
P0=0xbf;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num1];
DUAN=0;
WE=1;
P0=0x7f;
WE=0 ;
P0=0xff;
delay(1);
}
void main()
{
chushihua();
TMOD=0x01;
EA=1;
EX0=1;//开外部中断0
ET0=1;//开定时器中断0
IT0=1;
while(1)
{
display();
num1=s;
num5=num1/10000;
num1%=10000;
num4=num1/1000;
num1%=1000;
num3=num1/100;
num1%=100;
num2=num1/10;
num1%=10;
if(t==20)
{
num1=s;
t=0;
s=0;
}
}
}
void time0() interrupt 0
{
s++;
TR0=1;
}
void time1() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}
#include<reg52.h>
sbit WE=P2^1;
sbit DUAN=P2^0;
sbit DS1302=P2^7;
#define uchar unsigned char
#define uint unsigned int
uint t,num1,num2,num3,num4,num5,num6,num7,num8;
uint s,t;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay(uint z)
{
uint y,x;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void chushihua()
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
DS1302=0;
}
void display()
{
DUAN=1;
P0=table[num8];
DUAN=0;
WE=1;
P0=0xfe;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num7];
DUAN=0;
WE=1;
P0=0xfd;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num6];
DUAN=0;
WE=1;
P0=0xfb;
WE=0 ;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num5];
DUAN=0;
WE=1;
P0=0xf7;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num4];
DUAN=0;
WE=1;
P0=0xef;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num3];
DUAN=0;
WE=1;
P0=0xdf;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num2];
DUAN=0;
WE=1;
P0=0xbf;
WE=0;
P0=0xff;
delay(1);
DUAN=1;
P0=table[num1];
DUAN=0;
WE=1;
P0=0x7f;
WE=0 ;
P0=0xff;
delay(1);
}
void main()
{
chushihua();
TMOD=0x01;
EA=1;
EX0=1;//开外部中断0
ET0=1;//开定时器中断0
IT0=1;
while(1)
{
display();
num1=s;
num5=num1/10000;
num1%=10000;
num4=num1/1000;
num1%=1000;
num3=num1/100;
num1%=100;
num2=num1/10;
num1%=10;
if(t==20)
{
num1=s;
t=0;
s=0;
}
}
}
void time0() interrupt 0
{
s++;
TR0=1;
}
void time1() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
t++;
}
这个问题等于没问,什么叫不听话?
