
用AT89C51单片机设计利用AD590传感器和ADC0809转换器的温度计。现在用keil编译C程序出现missing';'before
主程序#include<reg51.h>#include<adc0809.h>#defineucharunsignedcharsbitbit1=P1^1;sbitbit2...
主程序
#include <reg51.h>
#include <adc0809.h>
#define uchar unsigned char
sbit bit1=P1^1;
sbit bit2=P1^2;
sbit bit3=P1^3;
sbit bit4=P1^4;
#define P_2 P2
#define P_0 P0
Unsigned char numb[]={0x3f,0x30,0x5b,0x79,0x74,0x6d,0x6f,0x38,0x7f,0x7d,0x8f,0x40,0xff,0x00};
Int numb1,numb2,numb3,numb4;
void delay(unsigned int k,unsigned int i,unsigned int j)
{
for(;k>0;k--)
{
for(;i>0;i--);
{
for(;j>0;j--);
}
}
}
void sendled(int numb1,int numb2,int numb3)
{
P_1=numb[10];
bit4=0;
delay(100,50,10);
bit4=1;
P_1=numb[numb3];
bit3=0;
delay(100,50,10);
bit3=1;
P_1=numb[numb2];
bit2=0;
delay(100,50,10);
bit2=1;
P_1=numb[numb1];
bit1=0;
delay(100,50,10);
bit1=1;
}
void testled()
{
bit1=bit2=bit3=bit4=0;
P_1=numb[12];
delay(10000,10000,10000);
bit1=bit2=bit3=bit4=1;
}
Void two_ten(int num)
{
numb1=num/100;
num=num%100;
numb2=num/10;
num=num%10;
numb3=num;
return;
}
Void InitIO()
{
PinData = 0xff;
//PinA = 0;
//PinB = 0;
//PinC = 0;
PinSTART = 1;
PinOE = 1;
PinEOC = 1;
}
void int1(void) interrupt 1 using 1
{
CLK=~CLK;
}
void main()
{
unsigned int Data;
TMOD=0X02;
TH0=245;
TL0=0Xf0;
IE=0X82;
TR0=1;
testled();
for(;;)
{
//Data=P_0;
InitIO();
StartADC();
Data = ReadData();
if(Data>55)
{
Data=Data-55;
two_ten(Data);
if(numb1==0&&numb2==0)
{
numb1=13;
numb2=13;
}
else if(numb1==0) numb1=13;
}
else if(Data==55)
{
Data=0;
numb1=numb2=13;
numb3=0;
}
else
{
Data=55-Data;
two_ten(Data);
if(numb2==0)
{
numb2=11;
numb1=13;
}
else {numb1=11;}
}
sendled(numb1,numb2,numb3);
}
}
ADC0809程序
#include <reg51.h>
#include "ADC0809.h"
#define uchar unsigned char
Void nNop(uchar i)
{
for(;i>0;i--);
}
void StartADC()
{
//PinC=(bit)(Address&0x04);
//PinB=(bit)(Address&0x02);
//PinA=(bit)(Address&0x01);
PinSTART=0;
nNop(1);
PinSTART=1;
}
void WaitADCEnd(void)
{
while(PinEOC);
}
uint ReadData(void)
{
uint Data;
WaitADCEnd();
PinOE=0;
nNop(2);
Data=PinData & 0xff;
PinOE=1;
return(Data);
}
ADC0809.h程序
#ifndef _ADC0809_H_
#define _ADC0809_H_
#define uint unsigned int
#define uchar unsigned char
sbit PinSTART=P1^5;
sbit PinOE=P1^6;
sbit PinEOC=P1^7;
sbit CLK=P1^0;
#define PinData P0
void nNop(uchar x);
void StartADC();
void WaitADCEnd(void);
uint ReadData(void);
#endif
求高手找出哪里有错啊 !!!!非常急 展开
#include <reg51.h>
#include <adc0809.h>
#define uchar unsigned char
sbit bit1=P1^1;
sbit bit2=P1^2;
sbit bit3=P1^3;
sbit bit4=P1^4;
#define P_2 P2
#define P_0 P0
Unsigned char numb[]={0x3f,0x30,0x5b,0x79,0x74,0x6d,0x6f,0x38,0x7f,0x7d,0x8f,0x40,0xff,0x00};
Int numb1,numb2,numb3,numb4;
void delay(unsigned int k,unsigned int i,unsigned int j)
{
for(;k>0;k--)
{
for(;i>0;i--);
{
for(;j>0;j--);
}
}
}
void sendled(int numb1,int numb2,int numb3)
{
P_1=numb[10];
bit4=0;
delay(100,50,10);
bit4=1;
P_1=numb[numb3];
bit3=0;
delay(100,50,10);
bit3=1;
P_1=numb[numb2];
bit2=0;
delay(100,50,10);
bit2=1;
P_1=numb[numb1];
bit1=0;
delay(100,50,10);
bit1=1;
}
void testled()
{
bit1=bit2=bit3=bit4=0;
P_1=numb[12];
delay(10000,10000,10000);
bit1=bit2=bit3=bit4=1;
}
Void two_ten(int num)
{
numb1=num/100;
num=num%100;
numb2=num/10;
num=num%10;
numb3=num;
return;
}
Void InitIO()
{
PinData = 0xff;
//PinA = 0;
//PinB = 0;
//PinC = 0;
PinSTART = 1;
PinOE = 1;
PinEOC = 1;
}
void int1(void) interrupt 1 using 1
{
CLK=~CLK;
}
void main()
{
unsigned int Data;
TMOD=0X02;
TH0=245;
TL0=0Xf0;
IE=0X82;
TR0=1;
testled();
for(;;)
{
//Data=P_0;
InitIO();
StartADC();
Data = ReadData();
if(Data>55)
{
Data=Data-55;
two_ten(Data);
if(numb1==0&&numb2==0)
{
numb1=13;
numb2=13;
}
else if(numb1==0) numb1=13;
}
else if(Data==55)
{
Data=0;
numb1=numb2=13;
numb3=0;
}
else
{
Data=55-Data;
two_ten(Data);
if(numb2==0)
{
numb2=11;
numb1=13;
}
else {numb1=11;}
}
sendled(numb1,numb2,numb3);
}
}
ADC0809程序
#include <reg51.h>
#include "ADC0809.h"
#define uchar unsigned char
Void nNop(uchar i)
{
for(;i>0;i--);
}
void StartADC()
{
//PinC=(bit)(Address&0x04);
//PinB=(bit)(Address&0x02);
//PinA=(bit)(Address&0x01);
PinSTART=0;
nNop(1);
PinSTART=1;
}
void WaitADCEnd(void)
{
while(PinEOC);
}
uint ReadData(void)
{
uint Data;
WaitADCEnd();
PinOE=0;
nNop(2);
Data=PinData & 0xff;
PinOE=1;
return(Data);
}
ADC0809.h程序
#ifndef _ADC0809_H_
#define _ADC0809_H_
#define uint unsigned int
#define uchar unsigned char
sbit PinSTART=P1^5;
sbit PinOE=P1^6;
sbit PinEOC=P1^7;
sbit CLK=P1^0;
#define PinData P0
void nNop(uchar x);
void StartADC();
void WaitADCEnd(void);
uint ReadData(void);
#endif
求高手找出哪里有错啊 !!!!非常急 展开
1个回答
展开全部
Unsigned char numb[]={0x3f,0x30,0x5b,0x79,0x74,0x6d,0x6f,0x38,0x7f,0x7d,0x8f,0x40,0xff,0x00};
改成:
unsigned char numb[]={0x3f,0x30,0x5b,0x79,0x74,0x6d,0x6f,0x38,0x7f,0x7d,0x8f,0x40,0xff,0x00};
void InitIO()//你写成Void了
{
PinData = 0xff;
//PinA = 0;
//PinB = 0;
//PinC = 0;
PinSTART = 1;
PinOE = 1;
PinEOC = 1;
}
void two_ten(int num)//你写成Void
{
numb1=num/100;
num=num%100;
numb2=num/10;
num=num%10;
numb3=num;
//return;这里是void不能有返回
}
Void nNop(uchar i)改成void nNop(uchar i)
改成:
unsigned char numb[]={0x3f,0x30,0x5b,0x79,0x74,0x6d,0x6f,0x38,0x7f,0x7d,0x8f,0x40,0xff,0x00};
void InitIO()//你写成Void了
{
PinData = 0xff;
//PinA = 0;
//PinB = 0;
//PinC = 0;
PinSTART = 1;
PinOE = 1;
PinEOC = 1;
}
void two_ten(int num)//你写成Void
{
numb1=num/100;
num=num%100;
numb2=num/10;
num=num%10;
numb3=num;
//return;这里是void不能有返回
}
Void nNop(uchar i)改成void nNop(uchar i)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询