找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1694|回复: 3
打印 上一主题 下一主题
收起左侧

我想用AT89C52做个仿真,麻烦懂的人帮我看看主程序前的定义是对的吗?还要加哪些东?

[复制链接]
跳转到指定楼层
楼主
ID:732695 发表于 2020-4-23 16:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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).


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:648281 发表于 2020-4-24 09:02 | 只看该作者
你好!
1、仿真是要结合你要实现的功能来做;
2、你的程序是找来的吧,文件都不全;
3、程序的编写,也是要结合实现功能;
4、慢慢学习吧,踏踏实实来打好基础。
回复

使用道具 举报

板凳
ID:462827 发表于 2020-4-24 12:22 | 只看该作者
不对

函数原型声明不是用宏定义来搞的
回复

使用道具 举报

地板
ID:514901 发表于 2020-4-24 13:57 | 只看该作者
错的,函数声明是函数返回值+函数名+函数参数,不是#define
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表