找回密码
 立即注册

QQ登录

只需一步,快速开始

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

哪位帮看看这程序怎么回事,为什么temp总是等于0xffff?

[复制链接]
跳转到指定楼层
楼主
ID:53274 发表于 2013-8-20 13:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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;   //温度数据
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)   延时 7us
delay(7)   延时63us
delay(100)  延时 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;
}
//读字节
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;
}

//写字节
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空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:32572 发表于 2013-8-22 23:12 | 只看该作者
你的代码不整洁,不好看!
回复

使用道具 举报

板凳
ID:53968 发表于 2013-9-2 20:48 | 只看该作者
注意变量类型,char,uint转换的时候出问题了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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