keil编程教程问题,错误代码C231怎么办啊,求大神帮改改,能运行出来

小木虫 --- 500万硕博科研人员喜爱的学术科研平台
&&查看话题
用keil编程 有错误 小女子求帮忙 急急急!~
/****显示函数****/
write_sfm(uchar add,uchar getdata)& & & & & & & & & & & & //显示程序
{& & & & uchar getdata1,getdata2;& &
& & & & getdata1=getdata*256/51;
& & & & getdata2=getdata*256/51;
& & & & if(getdata2&10000)
& & & & {red=1;
& & & & green=0;
& & & & }else
& & & & {red=0;
& & & & green=1;
& & & & & & & & if(getdata!=0)
& && &Shu=getdata1%10;
& & & & & & & & getdata1=getdata1/10;
& && & add++;
& & & && &&&write_sfm(add,getdata1);
LCD_writecom(0xc0+add);
for(i=5;i&=0;i--)
LCD_writedata(0x30+shu);
& & & & delay(100);
& & init();
&&& & & & LCD_init();
& & & & while(1)
& && && & ST=0;ST=1;ST=0;
& & & & & & & && &while(EOC==0);
& & & & & & & && &OE=1;
& & & & & & & && &getdata=P3;
& & & & & & & && &add=4;
& & & & & & & && &write_sfm(add,getdata);
& & & & & & & && &OE=0;
1.c(91): warning C235: parameter 1: different types
1.c(91): warning C235: parameter 2: different types
1.c(92): error C163: 'shu': unknown array size
1.c(107): error C141: syntax error near ']'
#include &reg51.h&
#define uchar unsigned char
#define uint unsigned int
uint getdata=0;//这里定义的uint,但是函数形参是uchar ,不匹配;& && && && && && && && && && && && &
sbit EOC=P2^4;& && && && && && && && && && && && &
sbit OE=P2^5;& && && && && && && && && && && && &
sbit CLK=P2^6;& && && && && && && && && && && && &
sbit ADDA=P1^0;& && && && && && && && && && && && &
sbit ADDB=P1^1;& && && && && && && && && && && && &
sbit ADDC=P1^2;& && && && && && && && && && && && &
sbit RS=P2^2;& && && && && && && && && && && && &
sbit RW=P2^1;& && && && && && && && && && && && &
sbit E=P2^0;& && && && && && && && && && && && &
sbit red=P1^3;& && && && && && && && && && && && && && && && && && &&&
sbit green=P1^4;& && && && && && && && && && && && && && && && &
void delay(uint z);& && && && && && && && && && && &
void init();& && && && && && && && && &
void LCD_init();& && && && && && && && && && && && &
void LCD_writedata(uchar getdata);& && && && && &
void LCD_writecom(uchar com);& && && && && && && && &
write_sfm(add,getdata);//函数声明需要指定形参类型,不能直接给实参,改为write_sfm(uchar add,uchar getdata)
uchar table=& The ppm is &;
uchar getdate,//getdate没用,你是不是想声明getdata?
/*****????****/
void delay(uint z)
&&uint i,j;
&&for(i=z;i&0;i--)
&&for(j=z;j&0;j--);& &
/****?????****/
void init()
{ TMOD=0x02;& && && && && && && && && && && && && && && &
& & TH0=216;& && && && && && && && && && && &
& & TL0=216;
& & EA=1;& && && && && && && && && && && && && && && && && && &
& & ET0=1;& && && && && && && && && && && && && && && &&&
& & TR0=1;
& && &&&ST=0;
& && &&&OE=0;
void LCD_init()
& && &&&WR=0;
& && &&&LCD_writecom(0x38);
& && &&&LCD_writecom(0x0c);
& && &&&LCD_writecom(0x06);
& && &&&LCD_writecom(0x01);
& && &&&LCD_writecom(0x80);& && && && && && && && &
& && &&&delay(5);
& && &&&for(a=0;a&11;a++)& && && && && && &
& && && && &&&LCD_writedata(table);
& && && && &&&delay(5);& && && && && &
& & delay(5);& && && && && && && && && &
void t0(void) interrupt 1 using 0
& &CLK=~CLK;
void LCD_writecom(uchar com)
& && &&&P0=
& && &&&E=0;
& && &&&delay(1);
& && &&&E=1;
& && &&&delay(1);
& && &&&E=0;
void LCD_writedata(uchar temp)
{&&RW=0;& && && && && && && && &&&
& && &&&RS=1;
& && &&&P0=
& && &&&E=0;
& && &&&delay(5);
& && &&&E=1;
& && &&&delay(5);
& && &&&E=0;
//这个函数肯定是不能正常工作的,你又是迭代又是递归,你是想显示一个数吧?要么用迭代,要么递归,推荐迭代
write_sfm(uchar add,uchar getdata)& && && && && && && && &
{& && &&&uchar getdata1,getdata2;& &
& && &&&//ui?uint吧?还有,必须指定数组大小
& && &&&getdata1=getdata*256/51;getdata1和getdata2都声明为uchar,小心溢出
& && &&&getdata2=getdata*256/51;
& && &&&if(getdata2&10000)
& && &&&{red=1;
& && &&&green=0;
& && &&&else
& && && && && & red=0;
& && &&&green=1;
& && && && && & if(getdata!=0)
& && &shu=getdata1%10;//这里需要指定下标 shu
& && && && && & getdata1=getdata1/10;
& && & add++;
& && && && &write_sfm(add,getdata1);
LCD_writecom(0xc0+add);
for(i=5;i&=0;i--)
LCD_writedata(0x30+shu);这里应该是shu
& && &&&delay(100);
{& && && &
& & init();
& && && & LCD_init();
& && &&&while(1)
& && && & ST=0;ST=1;ST=0;
& && && && && && &while(EOC==0);
& && && && && && &OE=1;
& && && && && && &getdata=P3;
& && && && && && &add=4;
& && && && && && &write_sfm(add,getdata);
& && && && && && &OE=0;
编辑一下吧,刚刚那个有错
#include &reg51.h&
#define uchar unsigned char
#define uint unsigned int
uint getdata=0;//这里定义的uint,但是函数形参是uchar ,不匹配;& && && && && && && && && && && && &
sbit EOC=P2^4;& && && && && && && && && && && && &
sbit OE=P2^5;& && && && && && && && && && && && &
sbit CLK=P2^6;& && && && && && && && && && && && &
sbit ADDA=P1^0;& && && && && && && && && && && && &
sbit ADDB=P1^1;& && && && && && && && && && && && &
sbit ADDC=P1^2;& && && && && && && && && && && && &
sbit RS=P2^2;& && && && && && && && && && && && &
sbit RW=P2^1;& && && && && && && && && && && && &
sbit E=P2^0;& && && && && && && && && && && && &
sbit red=P1^3;& && && && && && && && && && && && && && && && && && &&&
sbit green=P1^4;& && && && && && && && && && && && && && && && &
void delay(uint z);& && && && && && && && && && && &
void init();& && && && && && && && && &
void LCD_init();& && && && && && && && && && && && &
void LCD_writedata(uchar getdata);& && && && && &
void LCD_writecom(uchar com);& && && && && && && && &
write_sfm(add,getdata);//函数声明需要指定形参类型,不能直接给实参,改为write_sfm(uchar add,uchar getdata)
uchar table=& The ppm is &;
uchar getdate,//getdate没用,你是不是想声明getdata?
/*****????****/
void delay(uint z)
&&uint i,j;
&&for(i=z;i&0;i--)
&&for(j=z;j&0;j--);& &
/****?????****/
void init()
{ TMOD=0x02;& && && && && && && && && && && && && && && &
& & TH0=216;& && && && && && && && && && && &
& & TL0=216;
& & EA=1;& && && && && && && && && && && && && && && && && && &
& & ET0=1;& && && && && && && && && && && && && && && &&&
& & TR0=1;
& && &&&ST=0;
& && &&&OE=0;
void LCD_init()
& && &&&WR=0;
& && &&&LCD_writecom(0x38);
& && &&&LCD_writecom(0x0c);
& && &&&LCD_writecom(0x06);
& && &&&LCD_writecom(0x01);
& && &&&LCD_writecom(0x80);& && && && && && && && &
& && &&&delay(5);
& && &&&for(a=0;a&11;a++)& && && && && && &
& && && && &&&LCD_writedata(table);
& && && && &&&delay(5);& && && && && &
& & delay(5);& && && && && && && && && &
void t0(void) interrupt 1 using 0
& &CLK=~CLK;
void LCD_writecom(uchar com)
& && &&&P0=
& && &&&E=0;
& && &&&delay(1);
& && &&&E=1;
& && &&&delay(1);
& && &&&E=0;
void LCD_writedata(uchar temp)
{&&RW=0;& && && && && && && && &&&
& && &&&RS=1;
& && &&&P0=
& && &&&E=0;
& && &&&delay(5);
& && &&&E=1;
& && &&&delay(5);
& && &&&E=0;
//这个函数肯定是不能正常工作的,你又是迭代又是递归,你是想显示一个数吧?要么用迭代,要么递归,推荐迭代
write_sfm(uchar add,uchar getdata)& && && && && && && && &
{& && &&&uchar getdata1,getdata2;& &
& && &&&//ui?uint吧?还有,必须指定数组大小
& && &&&getdata1=getdata*256/51;getdata1和getdata2都声明为uchar,小心溢出
& && &&&getdata2=getdata*256/51;
& && &&&if(getdata2&10000)getdata2被定义为uchar,肯定不能大于10000
& && &&&{red=1;
& && &&&green=0;
& && &&&else
& && && && && & red=0;
& && &&&green=1;
& && && && && & if(getdata!=0)
& && &shu=getdata1%10;//这里需要指定下标
& && && && && & getdata1=getdata1/10;
& && & add++;
& && && && &write_sfm(add,getdata1);
LCD_writecom(0xc0+add);
for(i=5;i&=0;i--)
LCD_writedata(0x30+shu);这里需要指定下标
& && &&&delay(100);
{& && && &
& & init();
& && && & LCD_init();
& && &&&while(1)
& && && & ST=0;ST=1;ST=0;
& && && && && && &while(EOC==0);
& && && && && && &OE=1;
& && && && && && &getdata=P3;
& && && && && && &add=4;
& && && && && && &write_sfm(add,getdata);
& && && && && && &OE=0;
研究生必备与500万研究生在线互动!
扫描下载送金币keil 编程出现下面问题,求解释_百度知道
keil 编程出现下面问题,求解释
hiphotos://c.hiphotos.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http&nbsp://c.baidu
提问者采纳
出错提示不是说的很明白了么?等号左边的表达式不可修改。看看你的ping[]数组的定义去。
其他类似问题
为您推荐:
keil的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁大家帮我看看这个单片机的c语言编程吧,不知道怎么的用keil编译总是说中断服务程序附近有错误,谢谢啦!_百度知道
大家帮我看看这个单片机的c语言编程吧,不知道怎么的用keil编译总是说中断服务程序附近有错误,谢谢啦!
#define uchar unsigned char#define uint unsigned intuchar code table_dula[]={0x3f; wela=1; P0=table_dula[8]; P0=0 P0=table_dula[shi%10]; P0=table_wela[1]; wela=1; dula=1; dula=0; P0=table_wela[4]; wela=0; wela=1; wela=0; P0=table_dula[fen%10];
if(shi == 24)
shi = 0; delay(5); dula=0; P0=0 wela=0,0x79;}void init(){ dula=1; dula=0;
miao++; P0=table_wela[1],0xf7; algorithm(); P0=0 P0=0 timer0init(); delay(5); dula=0; dula=0; wela=0; P0=table_dula[shi&#47,0x07;
miao = 0; delay(5); P0=table_dula[8]; wela=0; wela=1; P0=table_wela[2]; dula=1; P0=table_wela[3]; wela=0;}void main(){ init(),0x06,0x6f;sbit wela=P2^7; P0=table_dula[8].h&gt,0x7c;
if(count == 20)
count = 0; P0=table_dula[fen&#47;10]; P0=table_wela[6]; P0=0
}}void timer0init(){ TOMD=0x01; wela=0; P0=table_wela[5]; dula=0,0 P0=table_wela[4];reg52; ET0=1; P0=0 P0=table_wela[6],0x5e; delay(5);}void disp_shumaguan(){ dula=1; delay(5);x& P0=table_dula[8]; wela=1,0x71}; dula=0; delay(5);uchar code table_wela[]={0uchar count=0,0x77,0x66;10];0,0x6d;y&void delay(uint z){ wela=0; wela=1; EA=1; P0=table_dula[miao%10]; P0=0 dula=0; P0=0 P0=table_dula[miao&#47; TR0=1; delay(5);y--),0xdf}; P0=table_dula[8]; dula=1; wela=1; P0=table_dula[8]; TL0=()%256;sbit dula=P2^6; TH0=()&#47, dula=1,0x7d; dula=0; P0=table_wela[2]; wela=1,0x5b,0x7f;0,0 P0=0 dula=1, wela=1; delay(5); dula=0,0x4f,0 delay(5); dula=1; delay(5); delay(5); wela=1;
fen = 0; dula=1;}void algorithm(){ count++; dula=1; P0=0 wela=1; for(x=z;x--)
for(y=110,0x39; dula=1;256; wela=0; dula=0,0
if(miao == 60)
fen++; P0=table_wela[3]; }}void timer0() interrupt 1 { TH0=()&#47; P0=010]; delay(5); P0=table_wela[5];256; wela=1; wela=0; wela=0; dula=1; P0=0
if(fen == 60)
shi++; dula=0; wela=0#include& while(1) {
disp_shumaguan(); TL0=()%256
提问者采纳
应修改为TMOD。你看看你的。void timer0init() 函数中 TMOD输入错误、。是TOMDvoid algorithm() 函数中少了几个
结尾符号。说明缺少对应的
结尾符号、。这个不对。这个程序挺强大、。
使用keil4软件可以直观的看到
符号是红色的
呵呵,谢谢啦,可是我又看了一遍也没看出来时哪个却啦啊。还有,你在帮我看看我传的那张图片吧,显示是在中断服务程序里有错啊!再帮我找找到底是哪里错啦,谢谢啦!
我用的是KEIL 4 。出现的提示是 void timer0init() 函数之前有错误。我看了下发现就是缺少结尾符号。你用的是哪个KEIL?near xxxxx的意思差不多就是xxxx之前的编程有错误。或者是编写时候的笔误,或者是缺少一些符号。
其他类似问题
为您推荐:
其他2条回答
#include&reg52.h&
#define uchar unsigned char
#define uint unsigned int
uchar code table_dula[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code table_wela[]={0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
sbit dula=P2^6;
sbit wela=P2^7;
uchar shi,fen,
uchar count=0;
void delay(uint z)
for(x=z;x&0;x--)
for(y=110;y&0;y--);
void init()
P0=table_dula[8];
P0=table_wela[1];
P0=table_dula[8];
P0=table_wela[2];
dula=1;...
1.void algorithm()最后缺两个 } }2.TMOD和楼上的一样,改了就没错了
中断服务程序的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁Keil4编程C51单片机的时候为什么总是出现这些错误呢?我真的不知道错哪了,求大神帮我解答下!_百度知道
Keil4编程C51单片机的时候为什么总是出现这些错误呢?我真的不知道错哪了,求大神帮我解答下!
//c这个我我编写的一个头文件.baidu.hiphotos.hiphotos://c.com/zhidao/wh%3D600%2C800/sign=8ba698b6c8ef91eed8ff4/09fa513d269759eeba3ffce0b1fb43166d22dfaa.jpg" />这个是报错的内容麻烦各位大神告诉我是怎么回事 &/zhidao/pic//zhidao/wh%3D450%2C600/sign=2bfd87c6a0cc7cd9fa783cdd0c310d09/09fa513d269759eeba3ffce0b1fb43166d22dfaa.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><a href="http.baidu.jpg" esrc="/zhidao/pic//zhidao/wh%3D450%2C600/sign=0206b62bea24b899de1a3/d31b0ef41bd5ad6ef7faf8c182cb39dbb6fd3c9d://d.com/zhidao/wh%3D450%2C600/sign=f3e12b90a51ea8d38a777c00a23a1c78/0dd7912397dda9b1b7d0a20cf486f3:///zhidao/pic//zhidao/wh%3D600%2C800/sign=ac9a2ec65d0eccb2bb8a26/0dd7912397dda9b1b7d0a20cf486f3./zhidao/wh%3D600%2C800/sign=d42ac/8718367adab44aed4d2822cfb01c8701a18bfbb3://d.baidu.jpg" esrc="http
全局搜一下,EN1有重复定义,感觉{和 }数目不对应啊。然后117行是啥看不见个人愚见首先左边电机调速那边
其他类似问题
为您推荐:
其他2条回答
把sbit EN1和sbit EN2那两行都删掉,113行好像漏了个},你检查一下报错的那几行是不是少了分号
闹什么呢?
逗我开心呢?
是病毒不我都不知道 !!
keil4的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁用C语言在keil的AT89S52中编程,有一点问题,谁能帮我指出_百度知道
用C语言在keil的AT89S52中编程,有一点问题,谁能帮我指出
void main(void){
P3=0x55.h&80!=0)
while(count--#define uchar unsigned char#define uint unsigned int#include &void DelayX1ms(uint count)
DelayX1ms(1000)
DelayX1ms(1000)
while(1);reg52
提问者采纳
h&reg52#include &80;}}void main(void){P3=0x55;#define uchar unsigned char#define uint unsigned intvoid DelayX1ms(uint count){while(count--;j&lt!=0){for(j=0;j++);while(1);DelayX1ms(1000);DelayX1ms(1000);P3=~P3
提问者评价
是不是问题就在缺了分号?
其他类似问题
为您推荐:
keil的相关知识
其他2条回答
伪人不成把人丧伪人不成把人丧
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 keil模块化编程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信