标题: 我想用AT89C52做个仿真,麻烦懂的人帮我看看主程序前的定义是对的吗?还要加哪些东? [打印本页]

作者: wdx_ccc    时间: 2020-4-23 16:17
标题: 我想用AT89C52做个仿真,麻烦懂的人帮我看看主程序前的定义是对的吗?还要加哪些东?
#include <reg52.h>
#include <math.h>
#define uchar unsigned char
#define _18B20_work()
#define _18B20_read()
#define _18B20_init()
#define Adc0832()


void main()
{
uchar i,ad_data;
_18B20_init();   //
while(1)
{
  _18B20_work(_18B20_read());  //
  ad_data = Adc0832(0) ;
  data_pro(); /
  for (i=0;i<100;i++)
  leddisp();        //
  alarm();         //
  keycontrol();         //

}
}
//LED???????:
uchar dispbuf[8],dispcount;
uchar code dispbitcode[]=
{
0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f
}; //?????

uchar code dispcode[]=
{
0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x00,0x7C,
0x39,0x5E,0x79,0x71,
0x40,0x00,0x76
}; //?????
//0,1,2,3,4,5,6,7,8,9,A,b,C,d,E,F,-,NULL,H
void leddisp()
{
dispbuf[0]=display[2];
dispbuf[1]=display[1];
dispbuf[2]=display[0];
dispbuf[3]=12;
dispbuf[4]=temp1/100; dispbuf[5]=(temp1%100)/10; dispbuf[6]=temp1%10;  
dispbuf[7]=18;
WEI=0xff; DUAN=dispcode[dispbuf[dispcount]]; if(dispcount==1)  
  DUAN |= 0X80;
WEI=dispbitcode[dispcount]; dispcount++;
if(dispcount==8)
    dispcount=0;
}

//
_18B20_work(unsigned int tem)
{
unsigned char n=0;
if(tem>6348)        // ???????
  {
  tem=65536-tem;
  n=1;
  }        
display[4]=tem&0x0f;     
display[0]=ditab[display[4]];  
display[4]=tem>>4;         
display[3]=display[4]/100;   
display[1]=display[4]%100;  
display[2]=display[1]/10;   
display[1]=display[1]%10;  
if(!display[3])
{
  display[3]=0x0a;   
  if(!display[2])
   display[2]=0x0a;   
}
if(n)
  display[3]=0x0b; //?????????"-"
}

//??????????
void alarm()
{
if(temp1<=100)  
ALARM1=0;
else  ALARM1=1;
if(display[4]<=59)  
ALARM2=0;
else ALARM2=1;
}
keycontrol()
{
if (KEY==0)
  {
  conflag=~conflag;
  while(!KEY);
  }
if(conflag)
ALARM2=~ALARM2;
}   

以下是目前的编译错误:
adx.c(15): error C141: syntax error near ';'
adx.c(15): warning C307: macro 'Adc0832': parameter count mismatch
adx.c(57): warning C307: macro '_18B20_work': parameter count mismatch
adx.c - 1 Error(s), 2 Warning(s).



作者: 51hei**1140    时间: 2020-4-24 09:02
你好!
1、仿真是要结合你要实现的功能来做;
2、你的程序是找来的吧,文件都不全;
3、程序的编写,也是要结合实现功能;
4、慢慢学习吧,踏踏实实来打好基础。
作者: hantu    时间: 2020-4-24 12:22
不对

函数原型声明不是用宏定义来搞的
作者: 郑汉松    时间: 2020-4-24 13:57
错的,函数声明是函数返回值+函数名+函数参数,不是#define




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1