程序::#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
sbit DQ=P1^0;
bdata uchar dat;
sbit dat0=dat^0;
sbit dat7=dat^7;
uchar dp[16]={0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9};
uchar code segtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0xef,0xbf};
uchar dbuf[4]={0,0,0,0};
void disp(void)
{ uchar i,n,wx;
wx=0xfe;
for(n=0;n<4;n++)
{ P2=wx;
P0=segtab[dbuf[n]];
if(n==1) P0=P0&0x7f;
wx=(wx<<1)+1;
for(i=1;1<200;i++);
P0=0xff;
}
}
void delay(unsigned int i)
{ unsigned int j;
for(j=i;j>0;j--);
}
bit reset(void)
{ bit flag;
DQ=0;
delay(60);
DQ=1;
delay(3);
flag=DQ;
delay(25);
return(flag);
}
void ds18b20_init(void)
{
while(1)
{
if(!reset())
{
DQ=1;
delay(30);
break;
}
else
reset();
}
}
void wrbyte(uchar t)
{
uchar i,dat;
dat=t;
for(i=8;i>0;i--)
{
DQ=0;
_nop_();
DQ=dat&0x01;
dat=dat>>1;
delay(5);
DQ=1;
delay(1);
}
}
uchar rdbyte(void)
{ uchar i;
uchar dat=0;
DQ=1;_nop_();
for(i=8;i>0;i--)
{
DQ=0;
dat>>=1;
DQ=1;_nop_();_nop_();
if(DQ) dat|=0x80;
delay(30);
DQ=1;
_nop_();
}
return(dat);
}
void convert(void)
{
ds18b20_init();
wrbyte(0xcc);
wrbyte(0x44);
delay(40);
}
int readt(void)
{ uchar h,l;
ds18b20_init();
wrbyte(0xcc);
wrbyte(0x44);
l=rdbyte();
h=rdbyte();
return(h*256+l);
}
void tdatacl(int x)
{
bit zf;
zf=0;
if(x<0)
{zf=1;
x=-x;
}
dbuf[0]=dp[x&0x0f];
x=x>>4;
dbuf[3]=x/100;
x=x%100;
dbuf[2]=x/10;
dbuf[1]=x%10;
if(zf==1)
{ if(dbuf[2]==0)
{ dbuf[3]=0xff;
dbuf[2]=0xbf;
}
else
dbuf[3]=0xbf;
}
else
{ if(dbuf[3]==0)
if(dbuf[2]==0)
{dbuf[2]=0xff;
dbuf[3]=0xff;
}
else dbuf[3]=0xff;
}
}
void main()
{
int t;
uchar i;
while(1)
{ convert();
t=rdbyte();
tdatacl(t);
for(i=50;i>0;i--)
disp();
}
仿真图搞不上来!!下楼继续
共4条
1/1 1 跳转至页
求助关于ds18b20温度显示的问题恳求个位人士帮忙解决
只看楼主 1楼
关键词: 求助 关于 ds18b20 温度 显示 问题 恳求
2楼
仿真时数码管只亮不显示数字!一直停留在0000!仿真图搞不上来!!帮忙看看程序有没有错误!!如有帮忙改正一下万分感谢!!!
共4条
1/1 1 跳转至页
回复
我要赚赏金打赏帖 |
|
|---|---|
| OK1126B-S开发板下以导航按键控制云台/机械臂姿态调整被打赏¥29元 | |
| 【树莓派5】便携热成像仪被打赏¥36元 | |
| 【树莓派5】环境监测仪被打赏¥35元 | |
| OK1126B-S开发板下多时段语音提示型电子时钟被打赏¥27元 | |
| OK1126B-S开发板下函数构建及步进电机驱动控制被打赏¥25元 | |
| 【S32K3XX】LPI2C 参数配置说明被打赏¥20元 | |
| OK1126B-S开发板的脚本编程及应用设计被打赏¥27元 | |
| 5v升压8.4v两节锂电池充电芯片,针对同步和异步的IC测试被打赏¥35元 | |
| 【S32K3XX】S32DS LPI2C 配置失败问题解决被打赏¥22元 | |
| 【S32K3XX】FLASH 的 DID 保护机制被打赏¥19元 | |
我要赚赏金
