标题:
error C141: syntax error near '}' keil4报错 简易超市收银机 单片机程序
[打印本页]
作者:
CL123da
时间:
2017-5-25 01:01
标题:
error C141: syntax error near '}' keil4报错 简易超市收银机 单片机程序
LEIL4报错:IIC.H(107): error C141: syntax error near '}' (说的是这个 bitcounter--})
请问为什么?
#include<intrins.h>
#define uchar unsigned char
#define sda P3_6 //定义SDA口
#define scl P3_7 //定义SCL口
//-----------------------------------------------------
void delay(uchar a) //24C64和其他一些地方需要的延时函
{
uchar b,c;
for(b=0;b<a;b++)
for(c=0;c<225;c++);
}
//-----------------------------------------------------
void start(void) //开始总线的活动
{
sda=1;
scl=1;
_nop_();_nop_(); _nop_(); _nop_();
sda=0;
_nop_();_nop_();_nop_(); _nop_();
}
//-----------------------------------------------------
void stop(void) //停止总线活动,器件进入低功耗状态
{
sda=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
sda=1;
_nop_();_nop_();_nop_();_nop_();
}
//-----------------------------------------------------
void ack(void) //应答信号
{
sda=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
//允许从器件改变当前SDA的状态,以便于下一次的读入
}
//-----------------------------------------------------
void noack(void) //无应答信号
{
sda=1;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
//-----------------------------------------------------
void checkack(void)
{
_nop_();_nop_();_nop_();_nop_();
scl=1;
if(sda)
{
scl=0;
}
else
{
_nop_();_nop_();_nop_();_nop_();
scl=0;
}
}
//-----------------------------------------------------
void send(uchar kk) //写入一个字节
{
uchar bitcounter=8;
uchar temp;
do
{
temp=kk;
scl=0;
_nop_();_nop_();_nop_();_nop_();
if((temp&0x80)==0x80) //数据的发送为高位在前,低位在后
sda=1;
else
sda=0;
scl=1;
temp=kk<<1;
kk=temp;
bitcounter--;
}
while(bitcounter);
scl=0;
}
uchar read(void) //读出一个字节
{
uchar temp=0;
uchar temp1=0;
uchar bitcounter=8;
sda=1;
do
{
scl=0;
_nop_();_nop_();_nop_();_nop_();
scl=1;
_nop_();_nop_();_nop_();_nop_();
if(sda)
temp=temp|0x01; //数据的读入为高位在前,低位在后
else
temp=temp&0xfe;
if(bitcounter-1)
{ temp1=temp<<1;
temp=temp1;
}
bitcounter--}
while(bitcounter); //读入8位
return temp;
}
//发送命令和操作对象给24c64
void writenbyte(uchar *adata,uchar address)
{
uchar bb; //定义'写字节数'变量bb
for(bb=0;bb<16;bb++) //写入16个字节
{ start(); //器件地址
send(0xa0);
checkack();
send(0x00); //从器件内部高地址
checkack();
send(address+bb); //从器件内部地址低位
checkack();
send(adata[bb]);
checkack();
stop();
delay(40);
}
}
void readnbyte(uchar *adata,uchar address)
{
uchar i; //定义'读字节数'变量i
for(i=0;i<16;i++)
{
start();
send(0xa0);
ack();
send(0x00); //从器件内部高地址
ack();
send(address+i); //从器件内部地址低位
ack();
start();
send(0xa1);
ack();
adata[i]=read(); //读取操作数
scl=0;
noack();
stop();
}
}
/********************************结束************************************/
复制代码
作者:
不倒翁.WZT
时间:
2017-5-26 17:20
标题:
RE: error C141: syntax error near '}' keil4报错 简易超市收银机 单片机程序
意思是,第110行“}”号附近有错误,具体是语句bitcounter--缺少“;”号。加上‘:’号,该错误即消除。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1