完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
使用STC12C5A60S2进行检压功能实现时,延迟函数代码一直报错,根据报错提示去修改无法解决,写其他延迟函数也同样报错,暂时没有发现语法有问题,求帮忙康康程序!!!使用的是kiel5编程(stc12c5a60s5),感激不尽!!
------------------贴代码------------------ #include #include #define uchar unsigned char #define uint unsigned int #define Delay4us(){_nop_();_nop_();_nop_();_nop_();} ***it LEDA=P2^2; ***it LEDB=P2^3; ***it LEDC=P2^4; ***it LCD_RS=P2^6; ***it LCD_RW=P2^5; ***it LCD_EN=P2^7; ***it SCL=P2^0; ***it SDA=P2^1; uchar Recv_Buffer[4]; //数据接收缓冲 uint Voltage[]={'0','0','0','0'}; //数据分解为电压 bit bdata IIC_ERROR; //I2C错误标志位 uchar LCD_Line_1[]={" "} /*-----------延时111(这个延迟函数一直在报错)--------*/ void Delay20us() //@11.0592MHz { unsigned char i; _nop_(); i = 52; while (--i); } /*---------LCD忙检测----------*/ bit LCD_BUSY_CHeck() { bit Result; LCD_RS=0;LCD_RW=1; LCD_EN=1;Delay4us();Result=(bit)(P0&0x80); LCD_EN=0; return Result; } //写指令 void LCD_Write_Command(uchar cmd) { while(LCD Busy Check()); LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_(); P0=cmd;Delay4us();LCD_EN=0; } //写数据 void LCD_Write_Data(uchar dar) { while(LCD_Busy_Check()); LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;Delay4us(); LCD_EN=1;Delay4us();LCD_EN=0; } //LCD初始化 void LCD_Initialise() { LCD_Write_Command(0x38);delay(5); LCD_Write_Command(0x0c);delay(5); LCD_Write_Command(0x06);delay(5); LCD_Write_Command(0x01);delay(5); } //设置显示位置 void LCD_Set_Position(uchar)pos { LCD_Write_Command(post|0x80); } //显示一行 void LCD_Display_A_Line(uchar_Addr,uchar s[]) { uchar i; LCD_Set_Position(Line_Addr); for(i=0;i<16;i++)LCD_Write_Data(s); } //void Delay(uint n) //{ // unsigned int x; // while (n--) // { // x = 5000; // while (x--); // } //} //讲模数转化后得到的值分解存入缓存 void Convert_To_Voltage(uchar val) { uchar Tmp; //最大值为255,对应100L,255/100=val=val*; Voltage[2]=val/100+'0'; // Tmp=val%100; // Voltage[1]=Tmp/10+'0'; Tmp=Tmp%10; Voltage[0]=Tmp+'0'; } //启动I2C总线 void IIC_Start() { SDA=1;SCL=1; Delay4us(); SDA=0; Delay4us(); SCL=0; } //停止I2C总线 void IIC_Stop() { SDA=0; SCL=1; Delay4us(); SDA=1; Delay4us(); SCL=0; } //从机发送应答位 void Slave_ACK() { SDA=0; SCL=1; Delay4us(); SCL=0; SDA=1; } //从机发送非应答位 void Slave_NOACK() { SDA=1; SCL=1; Delay4us(); SCL=0; SDA=0; } //发送一字节 void IIC_SendByte(uchar wd) { uchar i; for(i=0;i<8;i++) //循环移入8位 { SDA=(bit)(wd&0x80); _nop_();_nop_(); SCL=1;Delay4us(); SCL=0; wd<<=1; } Delay4us(); SDA=1; //释放总线并准备读取应答 Delay4us(); IIC_ERROR=SDA; //IIC_ERROR=1表示无应答 SCL=0; Delay4us(); } //接收一字节 uchar IIC_ReceiveByte() { uchar i,rd=0x00; for(i=0;i<8;i++) { SCL=1; rd<<=1; rd|=SDA; Delay4us(); SCL=0; Delay4us(); } SCL=0; Delay4us(); return rd; } //连续读入4路通道的A/D转换结果并保存到Recv_Buffer void ADC_PCF8591(uchar CtrlByte) { uchar i; IIC_Start(); IIC_SendByte(0x90); //发送写地址 if(IIC_ERROR==1)return; // IIC_SendByte(CtrlByte); //发送控制字节 //if(IIC_ERROR==1)return; IIC_Start(); //重新发送开始命令 IIC_SendByte(0x91); //发送读地址 if(IIC_ERROR==1)return; IIC_ReceiveByte(); //空读一次,调整读顺序 Slave_ACK(); //收到一字节后发送一个应答位 for(i=0;i<4;i++) { Recv_Buffer[i++]=IIC_ReceiveByte(); Slave_ACK(); //收到一个字节后发送一个应答位 } Slave_NOACK(); IIC_Stop(); //收到一个字节后发送一个非应答位 } //向PCF8591发送1字节进行AD转换 /************************************************************************************** 主函数main ***************************************************************************************/ void main() { //LEDA=0; LEDB=0; LCD_Initialise(); //LEDC=0; while(1) { ADC_PCF8591(0x04); if(Recv_Buffer[0]<26) { // LEDA=0; LCD_Display_A_Line(0x00,"Oil Low!") LEDB=1; // LEDC=1; } else { Convert_To_Voltage(Recv_Buffer[0]); LCD_Line_1[2]=Voltage[2]; LCD_Line_1[3]=Voltage[1]; LCD_Line_1[4]=Voltage[0]; LCD_Display_A_Line(0x00,LCD_Line_1); // LEDA=0; LEDB=0; // LEDC=0; } Delay(50); } } ---------------报错提示(附贴图)---------- (26): error C141: syntax error near 'void' (27): error C141: syntax error near '{' (30): error C141: syntax error near 'for' (30): error C141: syntax error near '=', expected ')' (30): error C129: missing ';' before '>'
|
|
相关推荐
2个回答
|
|
上面那行差了一个分号;
|
|
|
|
uchar LCD_Line_1[]={" "}这句没有,看那个void都出问题了,所以要往上看问题
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
238 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
629 浏览 0 评论
【RA-Eco-RA2E1-48PIN-V1.0开发板试用】(第三篇)ADC采集+PWM输出
552 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第四十五章 人脸识别实验
552 浏览 0 评论
1074 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11763 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 23:31 , Processed in 0.645739 second(s), Total 74, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号