久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5276|回復(fù): 10
收起左側(cè)

大神們 小白一枚 程序報(bào)錯(cuò) 解決不了 求助

[復(fù)制鏈接]
ID:127278 發(fā)表于 2016-6-19 23:24 | 顯示全部樓層 |閱讀模式
#include <at89x51.h>
#include <intrins.h>  
#define uint unsigned int
#define uchar unsigned char
uchar wr_com;

sbit DQ=P2^3;//ds18b20與單片機(jī)連接口
sbit RS=P2^5;
sbit RW=P2^6;
sbit EN=P2^7;
uchar data disdata[5];
uint tvalue,CurrentT=0;//溫度值
uchar tflag;//溫度正負(fù)標(biāo)志
#define LCD_BUS P0
sbit SetKey = P2^2;
sbit UpKey  = P2^1;
sbit DnKey  = P2^0;
sbit BEEP   = P2^4;
sbit Heat  = P1^0;
sbit Cool   = P1^1;
unsigned char AlarmTempLow=10,AlarmTempTop=40,Set=0,NG=0;
void delayms(uint ms)   //延時(shí)xx毫秒
{
uchar i;  while(ms--)
{
for(i=0;i<120;i++);  } }
void command(uint com)   
{
RS=0;     
LCD_BUS=com;
delayms(5);  
EN=1;
delayms(5);
EN=0;  }
void write_dat(uchar dat)   
{        RS=1;     
LCD_BUS=dat;
delayms(5);  
EN=1;
delayms(5);
EN=0;  }
void writestring (uchar x ,uchar y,uchar s)
{ if (y == 0)  command(0x80 + x);   
   else  command(0xC0 + x);
   while( s)  
{       
   write_dat( s);      } }
void writeChar (uchar x ,uchar y,uchar s)
{ if (y == 0)  command(0x80 + x);   
   else  command(0xC0 + x);
   {
   write_dat( s);
   } }

void LCD_Initial()  
{
EN=0;   
RW=0;     
command(0x38);
command(0x0c);
command(0x06);
command(0x01);
command(0x80+0x02);  }
void delay_18B20(unsigned int i)
{while(i--);}
void ds1820rst(void)
{unsigned char x=0;
DQ=1;
delay_18B20(4);
DQ=0;
delay_18B20(4);
DQ=1;
delay_18B20(4);
}
uchar ds1820rd(void)
{unsigned char i=0;unsigned char dat=0;for(i=8;i>0;i--)
{DQ=0;dat>>=1;DQ=1;if(DQ)dat|=0x80;delay_18B20(10);}
return(dat);}
void ds1820wr(uchar wdata)
{unsigned char i=0;
for(i=8;i>0;i--)
{DQ=wdata&0x01;
delay_18B20(10);
DQ=1;wdata>>=1;}
}
unsigned int Read_Temperature(void)

{uchar a,b;          
ds1820rst();
ds1820wr(0xcc);
ds1820wr(0x44);
ds1820rst();
ds1820wr(0xcc);
ds1820wr(0xbe);
a=ds1820rd();
b=ds1820rd();
tvalue=b;
tvalue<<=8;  
tvalue=tvalue|a;
if(tvalue<0x0fff)  
tflag=0;
else {tvalue=~tvalue+1;tflag=1;}
tvalue=tvalue*(0.625);
CurrentT=tvalue;
return(tvalue);
}
void Display_Temperature()

{
uchar flagdat;
disdata[0]=tvalue/1000+0x30;
disdata[1]=tvalue%1000/100+0x30;
disdata[2]=tvalue%100/10+0x30;
disdata[3]=tvalue%10+0x30;
if(tflag==0)
flagdat=0x20;
else
flagdat=0x2d;//負(fù)溫度顯示負(fù)號:-    //
if(disdata[0]==0x30)
{
disdata[0]=0x20;
if(disdata[1]==0x30)
disdata[0]=0x20; }

if(tflag==1)
{
writeChar(10,0,flagdat); //
wr_com (0x8a); wr_dat(flagdat);//顯示符號位   
writeChar(11,0,disdata[0]); //
wr_com (0x8b); wr_dat(disdata[0]);//顯示百位  
writeChar(12,0,disdata[1]);//
wr_com (0x8c);wr_dat(disdata[1]);//顯示十位   
  writeChar(13,0,disdata[2]);//
  wr_com(0x8d);        wr_dat(disdata[2]);//顯示個(gè)位   
  writeChar(14,0,0X2E);//
  wr_com (0x8e);wr_dat(0x2e);//顯示小數(shù)點(diǎn)   
  writeChar(15,0,disdata[3]);//
  wr_com (0x8f); wr_dat(disdata[3]);//顯示小數(shù)位
   }  
  else  {writeChar (10,0,disdata[0]);//
  wr_com(0x8a);wr_dat(disdata[0]);//顯示百位  
   writeChar(11,0,disdata[1]);//
   wr_com(0x8b);wr_dat(disdata[1]);//顯示十位   
   writeChar(12,0,disdata[2]);//
   wr_com(0x8c);
   wr_dat(disdata[2]);//顯示個(gè)位   
   writeChar(13,0,0X2e);
   wr_com(0x8d);
   wr_dat(0x2e);//顯示小數(shù)點(diǎn)   
    writeChar(14,0,disdata[3]);
        wr_com(0x8e);
        wr_dat(disdata[3]);//顯示小數(shù)位
         } }

void SetFun(void)
{
unsigned char i1=0,i2=0,i3=0,i4=0,i5=0,i6=0;
if(SetKey==0)
{   delayms(20);   if(SetKey==0)   
{   if(Set<2) Set++;    else Set=0; }
switch(Set)
  {   
case 0:  writestring(0,1," ");  
writestring(8,1," ");
break;   
case 1: writestring(0,1,">");
writestring(8,1," ");
break;   
case 2: writestring(0,1," ");
writestring(8,1,">");
break;   }  
while(SetKey==0);  }
if((UpKey==0)&&(Set!=0))
{  
delayms(20);  
if(UpKey==0)  
{   
switch(Set)   
{  
case 1: if(AlarmTempLow<99)
AlarmTempLow++;
else AlarmTempLow=99;
break;   
  case 2: if(AlarmTempTop<99) AlarmTempTop++;
else AlarmTempTop=99; break;    }   
i1 = AlarmTempLow/100;  
i2 = AlarmTempLow%100/10;  
i3 = AlarmTempLow%10;   
  i4 = AlarmTempTop/100;
i5 = AlarmTempTop%100/10;  
i6 = AlarmTempTop%10;  
writestring(5,1,"   ");
writestring(13,1,"     ");  
if(i1!=0) writeChar(5,1,i1+'0');
if((i1==0)&&(i2!=0)) writeChar(5,1,i2+'0');
if(i1!=0) writeChar(6,1,i2+'0');
if((i1==0)&&(i2==0)) writeChar(5,1,i3+'0');  
else if((i1==0)&&(i2!=0)) writeChar(6,1,i3+'0');  
if((i1!=0))  writeChar(7,1,i3+'0');
if(i4!=0) writeChar(13,1,i4+'0');
if((i4==0)&&(i5!=0))
writeChar(13,1,i5+'0');   
if(i4!=0) writeChar(14,1,i5+'0');
if((i4==0)&&(i5==0)) writeChar(13,1,i6+'0');  
else if((i4==0)&&(i5!=0)) writeChar(14,1,i6+'0');
if((i4!=0)) writeChar(15,1,i6+'0');  
while(UpKey==0);   }  }
if((DnKey==0)&&(Set!=0))
{   
delayms(20);   
if(DnKey==0)  
{   
switch(Set)   
{   
case 1: if(AlarmTempLow>0) AlarmTempLow--;
else AlarmTempLow=0;
break;  
case 2: if(AlarmTempTop>0) AlarmTempTop--;
else AlarmTempTop=0; break;    }   
i1 = AlarmTempLow/100;  
i2 = AlarmTempLow%(10,0,disdata[0]);
i3 = AlarmTempLow%10;   //獲得溫度值的個(gè)位
i4 = AlarmTempTop/100;   //獲得溫度值的百位
i5 = AlarmTempTop%100/10;  //獲得溫度值的十位
i6 = AlarmTempTop%10;   //獲得溫度值的個(gè)位
writestring(5,1,"   ");
writestring(13,1,"     ");
if(i1!=0) writeChar(5,1,i1+'0');
if((i1==0)&&(i2!=0)) writeChar(5,1,i2+'0');
if(i1!=0) writeChar(6,1,i2+'0');
if((i1==0)&&(i2==0)) writeChar(5,1,i3+'0');
else if((i1==0)&&(i2!=0)) writeChar(6,1,i3+'0');
if((i1!=0))
writeChar(7,1,i3+'0');
if(i4!=0) writeChar(13,1,i4+'0');
if((i4==0)&&(i5!=0))
writeChar(13,1,i5+'0');
if(i4!=0) writeChar(14,1,i5+'0');
if((i4==0)&&(i5==0))
writeChar(13,1,i6+'0');
else if((i4==0)&&(i5!=0))
writeChar(14,1,i6+'0');
if((i4!=0))
writeChar(15,1,i6+'0');

writeChar(4,1,i1+'0');
writeChar(5,1,i2+'0');
writeChar(6,1,i3+'0');
writeChar(12,1,i4+'0');
writeChar(13,1,i5+'0');
writeChar(14,1,i6+'0');
while(DnKey==0);   }  } }
void Alarm(void)
{
if((CurrentT>(AlarmTempTop*10))||(CurrentT<(AlarmTempLow*10))||(tflag==1))  
  {    BEEP=0;   }
  else  
{    BEEP=1;   } }
void main(void)
{
unsigned char i=0;
P3=0xef;
P2=0xef;P1=0x00;BEEP=1;   
LCD_Initial();
Read_Temperature();
writestring(1,0,"DS18B20 Alarmer");   //顯示“DS18B20 Alarmer”  delayms(1000);  //延時(shí)1S

writestring(0,0,"Current T=      ");   //顯示“Current T= ”
}
writestring(0,1," Low=10  Top=40 ");   //顯示“ Low=10  Top=40
NG=0; while(1)
{
Read_Temperature(); // //讀取溫度值  
Display_Temperature();  //顯示溫度值
SetFun();
Alarm();
if((CurrentT<(AlarmTempTop*10))&&(CurrentT>(AlarmTempLow*10)))
{   Cool=0;Heat=0;  }  
else if((CurrentT>(AlarmTempTop*10)))
{   Cool=1;Heat=0;  }
else if((CurrentT<(AlarmTempLow*10))||(tflag==1))  
{   Cool=0;Heat=1;  } }


一直這兩個(gè)報(bào)錯(cuò)
.C(128): error C211: call not to a function
C(128): error C208: 'function': too many actual parameters
Target not created

回復(fù)

使用道具 舉報(bào)

ID:127343 發(fā)表于 2016-6-20 09:15 | 顯示全部樓層
chengxunhaochanga
回復(fù)

使用道具 舉報(bào)

ID:99130 發(fā)表于 2016-6-20 19:09 | 顯示全部樓層
你用的編譯軟件包含這個(gè)頭文件嗎?頭文件有沒有寫錯(cuò)?很多時(shí)候頭文件沒有正確調(diào)用錯(cuò)誤是一大堆的
回復(fù)

使用道具 舉報(bào)

ID:127278 發(fā)表于 2016-6-20 23:43 | 顯示全部樓層
越快樂越墮落 發(fā)表于 2016-6-20 19:09
你用的編譯軟件包含這個(gè)頭文件嗎?頭文件有沒有寫錯(cuò)?很多時(shí)候頭文件沒有正確調(diào)用錯(cuò)誤是一大堆的

軟件應(yīng)該問題不大      用keil編譯的  主要是小白  看不懂程序
回復(fù)

使用道具 舉報(bào)

ID:110895 發(fā)表于 2016-6-21 06:31 | 顯示全部樓層
報(bào)什么錯(cuò)貼出來。那么長的程序,不知道什么錯(cuò)誤;沒有人有時(shí)間和耐心一句一句的分析程序的。
回復(fù)

使用道具 舉報(bào)

ID:127532 發(fā)表于 2016-6-21 11:16 | 顯示全部樓層
看下字符是否有錯(cuò)漏
回復(fù)

使用道具 舉報(bào)

ID:99130 發(fā)表于 2016-6-21 16:18 | 顯示全部樓層
944201454 發(fā)表于 2016-6-20 23:43
軟件應(yīng)該問題不大      用keil編譯的  主要是小白  看不懂程序

。。。。軟件不能有問題 就算你看不懂 但是軟件它看得懂啊 你錯(cuò)了一點(diǎn)都不行的 就比如那個(gè)頭文件 沒有包含它還真不行 就算下面的程序都是對的 也不行
回復(fù)

使用道具 舉報(bào)

ID:135253 發(fā)表于 2016-8-5 17:08 | 顯示全部樓層
wr_com()函數(shù)聲明
回復(fù)

使用道具 舉報(bào)

ID:136098 發(fā)表于 2016-8-5 23:28 | 顯示全部樓層
 你用的編譯軟件包含這個(gè)頭文件嗎?頭文件有沒有寫錯(cuò)?很多時(shí)候頭文件沒有正確調(diào)用錯(cuò)誤是一大堆的
回復(fù)

使用道具 舉報(bào)

ID:111634 發(fā)表于 2016-8-6 09:51 | 顯示全部樓層
本帖最后由 zl2168 于 2016-8-6 09:52 編輯

實(shí)例97  一線式DS18B20測溫


Proteus仿真一下,確認(rèn)有效。
實(shí)例97 DS18B20測溫.rar (51.78 KB, 下載次數(shù): 6)
回復(fù)

使用道具 舉報(bào)

ID:114189 發(fā)表于 2016-8-6 15:20 | 顯示全部樓層
這個(gè)程序不知道誰寫的 問題很多 你那個(gè)是沒有wr_com 這個(gè)函數(shù) 而且也沒有wr_dat這個(gè)函數(shù) 里面又有許多應(yīng)該是在中文下輸入的字符  建議你還是重新找一個(gè)程序吧 這個(gè)改起來很累 而且中文字符 不知道 還要重新寫一遍
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩国产一区二区三区 | 国产精品久久久久久久久久免费看 | 国产成人精品一区二 | 一区二区高清 | 久久国产精品99久久久大便 | 亚洲精品一区二区三区免 | 精品视频一区二区三区四区 | 欧美精品在线观看 | 亚洲视频在线一区 | 色天天综合 | 伊人春色在线 | 日韩免费1区二区电影 | 欧美日韩亚洲系列 | 久草资源 | 日韩国产一区二区 | 免费久久视频 | 免费视频一区二区 | 国产1区2区 | h视频在线免费观看 | 91精品国产日韩91久久久久久 | 色性av| 一级毛片免费完整视频 | 欧美激情国产日韩精品一区18 | 欧美又大粗又爽又黄大片视频 | 国产成人福利 | 日韩一区二区三区av | 秋霞电影一区二区 | 日韩成人在线观看 | a精品视频| 国产精品美女www爽爽爽视频 | 免费在线观看一区二区 | 国产成人精品一区二区 | av一区二区三区四区 | 日韩在线精品 | 精品国产乱码久久久久久牛牛 | 拍真实国产伦偷精品 | 亚洲成人黄色 | 久久久久久久久久久久久久av | 国产精品久久久久久久久污网站 | 午夜免费视频 | 另类 综合 日韩 欧美 亚洲 |