找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3242|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

哪位幫看看這程序怎么回事,為什么temp總是等于0xffff?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:53274 發(fā)表于 2013-8-20 13:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit DQ=P2^2;   //溫度數(shù)據(jù)
uint temp;
float ftemp; float tt;
uchar timecount;
uchar tflag,sflag;
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                         0x07,0x7f,0x6f,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,};
void delay(uint x)
{
while(x--);
}
/*
delay(1)   延時(shí) 7us
delay(7)   延時(shí)63us
delay(100)  延時(shí) 611us
*/
void delay1(uint x)
{
uint i,j;
for(i=x;i>0;i--)
  for(j=110;j>0;j--);
}
void init_18b20()
{
uint i;
i=3000;
DQ = 1;
delay(1);
DQ = 0;      
delay(100);   
DQ=1;
while(DQ==0&&i>0) i--;
delay(80);
DQ=1;
}
//讀字節(jié)
uchar readonebyte( )
{
bit flag = 0;

uchar i = 0, temp2 = 0;

for(i = 0; i < 8; i++)
{
  temp2=temp2>>1;
  DQ=1;
  _nop_();
  DQ = 0;
  delay(1);
  DQ = 1;   
  delay(1);  
  flag = DQ;  
  if(flag == 1)
   temp2= temp2|0x80;
  delay(7);  
  DQ = 1;   
  _nop_();  
  _nop_();
}
return temp2;
}

//寫(xiě)字節(jié)
void writeonebyte(uchar date)
{
uchar temp1= 0, i = 0;
temp1= date;
for(i = 0; i < 8; i++)
{
  DQ = 0;
  delay(2);     
  DQ = temp1 & 0x01;  
  delay(7);   
  DQ = 1;      
  temp1= temp1>>1;
}
}
void readtemp()
{
uchar a=0,b=0;
init_18b20();
writeonebyte(0xcc);
writeonebyte(0x44);
delay1(1000);
init_18b20();
writeonebyte(0xcc);
writeonebyte(0xbe);

a=readonebyte();
delay1(5);
b=readonebyte();
temp=b;
temp<<=8;
temp=temp|a;
tt=temp*0.0625;
}

void display(uint temp1)   //顯示程序
{
dula=1;
P0=table[temp1/1000];
dula=0;
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
delay(5);

dula=1;
P0=table[temp%100/10+10];
dula=0;
P0=0xff;
wela=1;
P0=0xfd;
wela=0;
delay(5);
dula=1;
P0=table[temp%100%10];
dula=0;
P0=0xff;
wela=1;
P0=0xfb;
wela=0;
delay(5);
}
void main()
{
while(1)
{
  readtemp();
  display(temp);
}
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:32572 發(fā)表于 2013-8-22 23:12 | 只看該作者
你的代碼不整潔,不好看!
回復(fù)

使用道具 舉報(bào)

板凳
ID:53968 發(fā)表于 2013-9-2 20:48 | 只看該作者
注意變量類(lèi)型,char,uint轉(zhuǎn)換的時(shí)候出問(wèn)題了
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表