该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
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;
}