21ic电子技术开发论坛 已关闭版块 万利电子 c51程序问题
发新帖我要提问
返回列表
打印

c51程序问题

[复制链接]
1013|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yybj|  楼主 | 2012-6-10 12:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
为什么c51程序中总会出现 syntax error near 'int'
#include"reg51.h"
#include"string.h"
#include"intrins.h"
#include"absacc.h"
#include"stdlib.h"
#include"math.h"
typedef unsigned char uchar;
sbit BEEP=P1^1; //蜂鸣器
sbit KEY=P1^2;//LED
uchar table[17]={0x28,0x7e,0xa2,0x62,0x74,0x61,0x21,0x7a,0x20,0x60,0x30,0x25,0xa9,0x26,0xa1,0xb1};
uchar disbuff;//显示缓存
uchar key;
void display(unsigned char disp);
void beep();
void keyscan(void);
void keydown(void);
void delay0(unsigned char x);
void delay(unsigned char x);
void main (void)
{
P0=0xff;
P1=0xff;
P2=0xff;
disbuff=0xbf;
while(1)
{
keyscan();
keydown();
display(disbuff);
delay(2);
}
}
void keyscan(void)
{
P2=0xFE;
key=P2;
unsigned int i;//总是在这里出错
for (i=0;i<4;i++)
{ if(P2<key)
{
if(P2.6==0)
key=i+i*3+2;
else if(P2.5==0)
key=i+1+i*3;
else key=i+i*3;
break;
}
P2=P2<<1;
}
disbuff=table[key];
}

相关帖子

沙发
火箭球迷| | 2012-6-10 12:15 | 只看该作者
定义成全局变量 在最上面

使用特权

评论回复
板凳
dfsa| | 2012-6-10 12:26 | 只看该作者
gcc中可以这样使用,其他的有时候就会出错

使用特权

评论回复
地板
pkat| | 2012-6-10 12:34 | 只看该作者
写到每个函数开头就不会了

使用特权

评论回复
5
无冕之王| | 2012-6-10 12:37 | 只看该作者
LZ应该是VC、VS、GCC这类编译器用得多,51的编译器,ADS估计没怎么碰过吧。
一般函数定义的内部,需要把所有的自动变量和局部静态变量都声明了(定义了也可),然后才能进行后续的代码书写,否者某些遵循老的C标准的编译器会报错。

使用特权

评论回复
6
269152492| | 2012-6-10 22:40 | 只看该作者
啥功能啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

175

主题

2496

帖子

1

粉丝
关闭 热门推荐
快速回复 在线客服 返回列表 返回顶部