标题:
求助帮看下这单片机程序,无法编译,谢了
[打印本页]
作者:
QQQQ987
时间:
2022-9-4 23:14
标题:
求助帮看下这单片机程序,无法编译,谢了
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit D0=P2^0; //三个位控制
sbit D1=P2^1;
sbit D2=P2^2;
uchar subf[3]={8,8,8};
uchar dispdata[10]={0,1,2,3,4,5,6,7,8,9,}
void delay(uint t)
{
uint i;
while(t--)
{
for(i=0;i<150;i++)
{}
}
}
//定时显示程序
void time0_int(void) interrupt1
{
uchar i,;
TH0=0;
TL0=0;
display();
}
//主函数
void main(void)
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=0;
TL0=0;
TR0=1;
while(1)
{
uchar i,j;
for(i=0;i<=9;i++)
{
for(j=0;j<=2;j++)
sub[ i]=dispdata[j]
}
}
}
//显示子函数
void display(void)
{
P0=subf[0];
D0=1;
delay(20)
D0=0;
P0=subf[0];
D1=1;
delay(20);
D1=0;
P0=subf[0];
D2=1;
delay(20);
D2=0;
}
//那位大佬帮看下,程序那里错了,我编绎不过关,
作者:
liqingb
时间:
2022-9-4 23:37
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit D0=P2^0; //?????
sbit D1=P2^1;
sbit D2=P2^2;
uchar subf[3]={8,8,8};
uchar dispdata[10]={0,1,2,3,4,5,6,7,8,9,};
void display(void);
void delay(uint t)
{
uint i;
while(t--)
{
for(i=0;i<150;i++)
{
}
}
}
//??????
void time0_int(void) interrupt 1 using 2
{
TH0=0;
TL0=0;
display();
}
//???
void main(void)
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=0;
TL0=0;
TR0=1;
while(1)
{
uchar i,j;
for(i=0;i<=9;i++)
{
for(j=0;j<=2;j++)
subf[i]=dispdata[j];
}
}
}
//?????
void display(void)
{
P0=subf[0];
D0=1;
delay(20);
D0=0;
P0=subf[0];
D1=1;
delay(20);
D1=0;
P0=subf[0];
D2=1;
delay(20);
D2=0;
}
复制代码
虽然不知道你从哪里cop的单你的C语言基础不是很好
作者:
xxxevery
时间:
2022-9-4 23:56
把编译错误信息发上来看啊,反正你这程序一眼就看到好几个地方没加“;”。
作者:
名字不是重点
时间:
2022-9-5 00:15
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit D0=P2^0; //三个位控制
sbit D1=P2^1;
sbit D2=P2^2;
uchar subf[3]={8,8,8};
uchar dispdata[10]={0,1,2,3,4,5,6,7,8,9} ;//====!
void display(void);//====!
void delay(uint t)
{
uint i;
while(t--)
{
for(i=0;i<150;i++);//====!
//{} //====!
}
}
//定时显示程序
void time0_int(void) interrupt 1 //====!
{
//uchar i; //====!
TH0=0;
TL0=0;
display();
}
//主函数
void main(void)
{
EA=1;
ET0=1;
TMOD=0X01;
TH0=0;
TL0=0;
TR0=1;
while(1)
{
uchar i,j;
for(i=0;i<=9;i++)
{
for(j=0;j<=2;j++)
subf[i]=dispdata[j];//====!
}
}
}
//显示子函数
void display(void)
{
P0=subf[0];
D0=1;
delay(20); //====!
D0=0;
P0=subf[0];
D1=1;
delay(20);
D1=0;
P0=subf[0];
D2=1;
delay(20);
D2=0;
}
复制代码
你这代码是自己敲的,还是COPY来的?一大堆错误,都是书写问题!
看看上面这个,有//====!所在的行都是错的,对比一下你的代码。
作者:
hhdsdy
时间:
2022-9-5 00:16
太粗心了,有好几个地方漏写了“;”,定时显示的程序里i后面多了个“,”,主函数循环里的sub应为subf,其实编译不通过都有错误提示的,可以查看错误的类型以及行号(有的在上一行)。
另外,subf赋值3个,dispdata赋值10个,但在主程序的循环里,范围是南辕北辙根本对不上的。
作者:
liucan2020
时间:
2022-9-5 14:49
还需要多练习一下
作者:
QQQQ987
时间:
2022-9-5 23:33
hhdsdy 发表于 2022-9-5 00:16
太粗心了,有好几个地方漏写了“;”,定时显示的程序里i后面多了个“,”,主函数循环里的sub应为subf,其 ...
我这是抄书上一的——不知乍不过
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1