程序编译发生错误
时间:10-02
整理:3721RD
点击:
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsingned int
sbit T_CLK=P1^3;
sbit T_IO=P1^2;
sbit T_RST=P1^4;
sbit RS=P1^7;
sbit RW=P1^6;
sbit EN=P1^5;
sbit ACC7= ACC^7;
sbit ACC0=ACC^0;
uchar datechar[] = {"DATE: "};
uchar timechar[] = {"TIME:"};
uchar datebuffer[10]={0x32,0x30,0,0,0x2d,0,0,0x2d,0,0}; //定义日历显示缓冲区
uchar timebuffer[8]={0,0,0x3a,0,0,0x3a,0,0,}; //定义时间缓冲区
uchar weekbuffer={0x30};
//往DS1302写入一个字节
void writeB(uchar ucDa)
{
uchar i;
ACC=ucDa;
for(i=8;i>0;i--)
{
T_IO=ACC0;
T_CLK=1;
T_CLK=0;
ACC=ACC>>1;
}
}
//从DS1302读取一个字节
uchar ReadB(void)
{
uchar i;
for(i=8;i>0;i--)
{
ACC=ACC>>1;
ACC7= T_IO;
T_CLK=1;
T_CLK=0;
}
return(ACC);
}
//向DS1302某地址写入命令,数据
void v_W1302(uchar ucAddr,uchar ucDa)
{
T_RST=0;
T_CLK=0;
_nop_();
_nop_();
T_RST=1;
_nop_();
_nop_();
writeB(ucAddr);
writeB(ucDa);
T_CLK=1;
T_RST=0;
}
//读取DS1302某地址的数
uchar uc_R1302(uchar ucAddr)
{
uchar ucDa=0;
T_RST=0;
T_CLK=0;
T_RST=1;
writeB(ucAddr);
ucDa=ReadB();
T_CLK=1;
T_RST=0;
return(ucDa);
}
//检查忙函数
void fbusy()
{
P2=0xff;
RS=0;
RW=1;
EN=1;
EN=0;
while(( P2&0x80))
{
EN=0;
EN=1;
}
}
//写命令函数
void wc51r(uchar j)
{
fbusy();
EN=0;
RS=0;
RW=0;
EN=1;
P2=j;
EN=0;
}
//写数据函数
void wc51ddr(uchar j)
{
fbusy();
EN=0;
RS=1;
RW=0;
EN=1;
P2=j;
EN=0;
}
//LCD1602初始化
void init()
{
wc51r(0x01);
wc51r(0x38);
wc51r(0x0c);
wc51r(0x06);
}
//延时函数
void delay(uint i)
{
uint y,j;
for (j=0;j<i;j++){
for (y=0;y<0xff;y++){;}
}
}
void main (void)
{
uchar i;
uchar data temp;
SP=0x50;
delay(10);
init();
wc51r(0x80);
for(i=0;i<5;i++)
wc51ddr(datechar);
wc51r(0xc0);
for(i=0;i<5;i++)
wc51ddr(timechar);
v_W1302(0x8e,0);
v_W1302(0x8c,0x11);
v_W1302(0x8A,0x03);
v_W1302(0x88,0x06);
v_W1302(0x86,0x29);
v_W1302(0x84,0x16);
v_W1302(0x82,0x25);
v_W1302(0x80,0x30);
v_W1302(0x8e,0x80);
}
while(1)
{
temp=uc_R1302(0x8d); 、、// 读年
datebuffer[2]=0x30+temp/16;
datebuffer[3]=0x30+temp%16;
temp=uc_R1302(0x8B); // 读星期
weekbuffer[2]=0x30+temp
temp=uc_R1302(0x89); // 读月
datebuffer[5]=0x30+temp/16;
datebuffer[6]=0x30+temp%16;
temp=uc_R1302(0x87); // 读日
datebuffer[8]=0x30+temp/16;
datebuffer[9]=0x30+temp%16;
temp=uc_R1302(0x85); // 读小时
temp=temp & 0x7f;
timebuffer[0]=0x30+temp/16;
timebuffer[1]=0x30+temp%16;
temp=uc_R1302(0x83); // 读分
timebuffer[3]=0x30+temp/16;
timebuffer[4]=0x30+temp%16;
temp=uc_R1302(0x81); // 读秒
temp=temp & 0x7f;
timebuffer[6]=0x30+temp/16;
timebuffer[7]=0x30+temp%16;
wc51r(0x86); // 第一行后面显示日历
for (i=0;i< 10;i++) wc51ddr(datebuffer);
wc51r(0xc6); // 第二行后面显示时间
for (i=0;i< 8;i++) wc51ddr(timebuffer);
wc51ddr(0x20);
wc51ddr(weekbuffer); // 显示星期
}
#include <absacc.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsingned int
sbit T_CLK=P1^3;
sbit T_IO=P1^2;
sbit T_RST=P1^4;
sbit RS=P1^7;
sbit RW=P1^6;
sbit EN=P1^5;
sbit ACC7= ACC^7;
sbit ACC0=ACC^0;
uchar datechar[] = {"DATE: "};
uchar timechar[] = {"TIME:"};
uchar datebuffer[10]={0x32,0x30,0,0,0x2d,0,0,0x2d,0,0}; //定义日历显示缓冲区
uchar timebuffer[8]={0,0,0x3a,0,0,0x3a,0,0,}; //定义时间缓冲区
uchar weekbuffer={0x30};
//往DS1302写入一个字节
void writeB(uchar ucDa)
{
uchar i;
ACC=ucDa;
for(i=8;i>0;i--)
{
T_IO=ACC0;
T_CLK=1;
T_CLK=0;
ACC=ACC>>1;
}
}
//从DS1302读取一个字节
uchar ReadB(void)
{
uchar i;
for(i=8;i>0;i--)
{
ACC=ACC>>1;
ACC7= T_IO;
T_CLK=1;
T_CLK=0;
}
return(ACC);
}
//向DS1302某地址写入命令,数据
void v_W1302(uchar ucAddr,uchar ucDa)
{
T_RST=0;
T_CLK=0;
_nop_();
_nop_();
T_RST=1;
_nop_();
_nop_();
writeB(ucAddr);
writeB(ucDa);
T_CLK=1;
T_RST=0;
}
//读取DS1302某地址的数
uchar uc_R1302(uchar ucAddr)
{
uchar ucDa=0;
T_RST=0;
T_CLK=0;
T_RST=1;
writeB(ucAddr);
ucDa=ReadB();
T_CLK=1;
T_RST=0;
return(ucDa);
}
//检查忙函数
void fbusy()
{
P2=0xff;
RS=0;
RW=1;
EN=1;
EN=0;
while(( P2&0x80))
{
EN=0;
EN=1;
}
}
//写命令函数
void wc51r(uchar j)
{
fbusy();
EN=0;
RS=0;
RW=0;
EN=1;
P2=j;
EN=0;
}
//写数据函数
void wc51ddr(uchar j)
{
fbusy();
EN=0;
RS=1;
RW=0;
EN=1;
P2=j;
EN=0;
}
//LCD1602初始化
void init()
{
wc51r(0x01);
wc51r(0x38);
wc51r(0x0c);
wc51r(0x06);
}
//延时函数
void delay(uint i)
{
uint y,j;
for (j=0;j<i;j++){
for (y=0;y<0xff;y++){;}
}
}
void main (void)
{
uchar i;
uchar data temp;
SP=0x50;
delay(10);
init();
wc51r(0x80);
for(i=0;i<5;i++)
wc51ddr(datechar);
wc51r(0xc0);
for(i=0;i<5;i++)
wc51ddr(timechar);
v_W1302(0x8e,0);
v_W1302(0x8c,0x11);
v_W1302(0x8A,0x03);
v_W1302(0x88,0x06);
v_W1302(0x86,0x29);
v_W1302(0x84,0x16);
v_W1302(0x82,0x25);
v_W1302(0x80,0x30);
v_W1302(0x8e,0x80);
}
while(1)
{
temp=uc_R1302(0x8d); 、、// 读年
datebuffer[2]=0x30+temp/16;
datebuffer[3]=0x30+temp%16;
temp=uc_R1302(0x8B); // 读星期
weekbuffer[2]=0x30+temp
temp=uc_R1302(0x89); // 读月
datebuffer[5]=0x30+temp/16;
datebuffer[6]=0x30+temp%16;
temp=uc_R1302(0x87); // 读日
datebuffer[8]=0x30+temp/16;
datebuffer[9]=0x30+temp%16;
temp=uc_R1302(0x85); // 读小时
temp=temp & 0x7f;
timebuffer[0]=0x30+temp/16;
timebuffer[1]=0x30+temp%16;
temp=uc_R1302(0x83); // 读分
timebuffer[3]=0x30+temp/16;
timebuffer[4]=0x30+temp%16;
temp=uc_R1302(0x81); // 读秒
temp=temp & 0x7f;
timebuffer[6]=0x30+temp/16;
timebuffer[7]=0x30+temp%16;
wc51r(0x86); // 第一行后面显示日历
for (i=0;i< 10;i++) wc51ddr(datebuffer);
wc51r(0xc6); // 第二行后面显示时间
for (i=0;i< 8;i++) wc51ddr(timebuffer);
wc51ddr(0x20);
wc51ddr(weekbuffer); // 显示星期
}
编译就会出现TEST1.C(175): error C141: syntax error near 'for'
TEST1.C(175): error C141: syntax error near '=', expected ')'
TEST1.C(175): error C129: missing ';' before '<'
Target not created
符号错~
在175行附近,我不造那里是第175行哇,这里太多了,你双击这个错误就会跳转过去~