標題:
求助幫看下這單片機程序,無法編譯,謝了
[打印本頁]
作者:
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
把編譯錯誤信息發(fā)上來看啊,反正你這程序一眼就看到好幾個地方沒加“;”。
作者:
名字不是重點
時間:
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后面多了個“,”,主函數循環(huán)里的sub應為subf,其實編譯不通過都有錯誤提示的,可以查看錯誤的類型以及行號(有的在上一行)。
另外,subf賦值3個,dispdata賦值10個,但在主程序的循環(huán)里,范圍是南轅北轍根本對不上的。
作者:
liucan2020
時間:
2022-9-5 14:49
還需要多練習一下
作者:
QQQQ987
時間:
2022-9-5 23:33
hhdsdy 發(fā)表于 2022-9-5 00:16
太粗心了,有好幾個地方漏寫了“;”,定時顯示的程序里i后面多了個“,”,主函數循環(huán)里的sub應為subf,其 ...
我這是抄書上一的——不知乍不過
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1