到底是哪里出错了 下载到实验板上没反应啊 高手帮忙
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar num,num1,shi,ge;
uchar code table[ ]={
0x02/*0*/,0x9f/*1*/,0x24/*2*/,
0x0c/*3*/,0x98/*4*/,0x48/*5*/,
0xc0/*6*/,0x1e/*7*/,0x00/*8*/
};/*共阳数码管0 8编码*/
delay(uint x)
{
uint i,j;
for(i=x;i>0;i--)
for(j=125;j>0;j--);
}
void display(uchar shi,uchar ge)
{
P3=0XFE;
P0=table[ge];
delay(10);
P3=0XFd;
P0=table[shi];
delay(10);
}
void main()
{
TMOD=0X01;
TH1=(65535-5000)/ 256;
TL0=(65535-5000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
void display(uchar shi,uchar ge);
}
}
void time1() interrupt 1
{
TH1=(65535-5000)/ 256;
TL0=(65535-5000)%256;
if(num++==20)
{ num=0;
num1++;
if(num1==60)
num1=0;
shi=num1/10;
ge=num1%10;
}
}
坐等民间高手
while(1)
{
void display(uchar shi,uchar ge);
}
很明显的错误
TH1=(65535-5000)/ 256;
TL0=(65535-5000)%256;
把TH1改为TH0;
ivoid time1() interrupt 1
{
TH1=(65535-5000)/ 256;
TL0=(65535-5000)%256;
if(num++==20)
{ num=0;
num1++;
if(num1==60)
num1=0;
shi=num1/10;
ge=num1%10;
}
}
错误点很多啊,前面都提到过。这里这个NUM什么时候才会等于20呢?
详细点 好吗 ?
都来找错吗
改了 调试还是不成功啊
那个num好像起循环的作用吧 错误不会在那吧 劳烦再帮我找找看
我用杜邦线插p3.2口但并不能实现中断 而其一上电后led灯就被点亮 跟d1这句语句写在主函数中没什么区别 这是什么原因啊 还有我的单片机p3.2口为什么初始状态就是低电平呢?难道我的单片机与网上教学的不一样吗?劳烦高手指
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit d1=P1^0;
sbit D2=P2^0;
uchar code table[ ]={0x02/*0*/,0x9f/*1*/,0x24/*2*/,0x0c/*3*/,
0x98/*4*/,0x48/*5*/,0xc0/*6*/,0x1e/*7*/,0x00/*8*/};/*共阳数码管0 8编码*/
delay(uint x)
{ uint i,j;
for(i=x;i>0;i--)
for(j=125;j>0;j--);
}
uchar k,g;
void main()
{ D2=1;
EA=1;
EX0=1;
IE0=0;
while(1)
{k=0;
P3=0X00;
for(g=0;g<=8;g++)
{P0=table[g];
delay(50);
}
}
}
void TO1() interrupt 0
{
d1=0;
}
PCB打样找华强 http://www.hqpcb.com 样板2天出货
先不管定时器中断,把shi,ge赋个初值,看是否显示正常,还有对shi ,ge这两上变量作超范围处理
建议用代码标志括住代码,好看点。
