c语言中错误提示c129是什么,求助C语言(单片机)!!程序出现一个错误!

本文讨论了在C语言单片机编程中遇到的错误C129,即'missing ';' before 'int''。通过分析代码,发现错误出现在类型定义之前缺少分号。文章提供了修正此错误的方法,并展示了如何优化相关代码,包括MAX6675驱动函数的实现,温度转换和数据显示的处理过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

CHENGXU.C(16): error C129: missing ';' before 'int'

#include

#include

#define SCK_DELAY 10

#define error10 0xffff

#define error20 0xfffe

#define   unsigned char uchar

#define uint unsigned int

char bit_tab[]={0xfe,0xfd,0xfb,0xf7};   //P2.0-2.3

char code led_tab[]={0x14,0xbe,0x85,0x86,0x2e,0x46,0x44,0xb6,0x04,0x06}; // 0~9

//MAX6675管脚定义

sbit SO=P1^6;

sbit CS=P1^4;

sbit SCK=P1^7;

//程序函数定义

void main();

uint getcurrent_temp(uint currentvalue);

uint MAX6675(void); //6675驱动函数

void delay(unsigned int c);

void display();

void divide(uchar disdata);

/*************************主函数***************************/

void main()

{

uchar temdata;

P0=0xff;

P1=0xff;

P2=0xff;

TMOD=0x11;

TH0=(65536-1700)/256;

TL0=(65536-1700)%256;

TH1=(65536-11000)/256;     //预置高8位定时初值

TL1=(65536-11000)%256;

EA=1;IP=0x02;           //    T0中断为最高优先级

ET0=1;TR0=1;

while(1)

{

temdata=getcurrent_temp(MAX6675()) ;

divide(temdata);

display();

}

}

/****************************Max6675 驱动程序*************************/

uint MAX6675(void)

{

uchar i;

uint value=0;

uchar count;

CS=0;

SCK=0;

for(count=0;count<3*SCK_DELAY;count++)

{;}

for(count=0;count<16;count++)

{

value<=1;

SCK=1;

for(i=0;i

if(S0)

value=0x01;

SCK=0;

}

CS=1;

Delay(10)

return value;

}

/***************************温度转换函数********************************/

uint getcurrent_temp(uint currentvalue)

{

uint tempvalue;

tempvalue=currentvalue;

if(tempvalue&0x8000)

return error10;

if(tempvalue&0x0004)

return error20;

tempvalue&=0x7ffb;

tempvalue>=3;

return tempvalue;

}

/****************************分离函数***********************************/

void divide(uchar disdata)

{

uchar dis_buf[];

dis_buf0=disdata%10;      //显示缓冲区值,定时更新 个位

dis_buf1=disdata%100/10;    //十位

if(disdata>99)

dis_buf2=disdata/100%10;    //百位

else dis_buf2=0x10;    //空格

if(disdata>999)

dis_buf3=disdata/1000;    //千位

else dis_buf3=0x10;

}

/****************************显示函数***********************************/

void display()

{

int i;

P0&=0xff;

P2&=0xff;

if(P2&0xef)

{

for(i=4;i<8;i++)

{

P2=bit_tab[i];

switch( P2&bit_tab[i])

{

case 0xef:{P0=dis_buf0;}break;

case 0xdf:{P0=dis_buf1;}break;

case 0xbf:{P0=dis_buf2;}break;

case 0x7f:{P0=dis_buf3;}break;

default:break;

}

}

}

else

P2=0xef;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值