程序::#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 跳转至页
回复
有奖活动 | |
---|---|
【EEPW电子工程师创研计划】技术变现通道已开启~ | |
发原创文章 【每月瓜分千元赏金 凭实力攒钱买好礼~】 | |
【EEPW在线】E起听工程师的声音! | |
“我踩过的那些坑”主题活动——第001期 | |
高校联络员开始招募啦!有惊喜!! | |
【工程师专属福利】每天30秒,积分轻松拿!EEPW宠粉打卡计划启动! | |
送您一块开发板,2025年“我要开发板活动”又开始了! | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
stm32f103驱动舵机被打赏20分 | |
汽车+汽车电子电阻解释与分析被打赏5分 | |
STM32F103的I2C驱动OLED动态显示被打赏30分 | |
分享汽车通信和多媒体总线结构被打赏20分 | |
【我踩过的那些坑】结构堵孔导致的喇叭无声问题被打赏50分 | |
NUCLEO-U083RC学习历程38+串口通过队列的方式输出两个字符串被打赏20分 | |
【我踩过的那些坑】分享一下调试一款AD芯片的遇到的“坑”被打赏50分 | |
电流检测模块MAX4080S被打赏10分 | |
【我踩过的那些坑】calloc和malloc错误使用导致跑飞问题排查被打赏50分 | |
分享电控悬架的结构与工作原理(一)被打赏20分 |