关于51单片机DS18B20温度计的问题

有没有大神知道下列程序每一行是什么意思,帮忙修改一下,能提前一位显示。voidDisp_Temperature()//显示温度{if(qian==0){if(fuhao=... 有没有大神知道下列程序每一行是什么意思,帮忙修改一下,能提前一位显示。
void Disp_Temperature() //显示温度
{
if(qian==0)
{
if(fuhao==1)
P0=0x7f; //1011 1111
else
P0=0xff;
P2=0xfd;
Delay(10);
P2 = 0xff;
}
else if(qian!=0)
{
P0 =~led[qian];
P2 = 0xfd;
Delay(10);
P2 = 0xff;
}
if((bai==0)&&(qian==0))
{
P0=0xff; //
P2=0xf7;
Delay(10);
P2=0xff;
}
else if((bai==0)&&(qian!=0))
{
P0=~led[bai];
P2=0xf7;
Delay(10);
P2=0xff;
}
else if(bai!=0)
{
P0=~led[bai]; //
P2=0xf7;
Delay(10);
P2=0xff;
}
P0=~led_dian[shi]; //
P2=0xdf;
Delay(10);
P2=0xff;
P0=~led[ge]; //显示符号
P2=0x7f;
Delay(10);
P2=0xff; //关闭显示
}
展开
 我来答
  • 你的回答被采纳后将获得:
  • 系统奖励15(财富值+成长值)+难题奖励50(财富值+成长值)+提问者悬赏100(财富值+成长值)
CHQIC
推荐于2016-06-22 · TA获得超过781个赞
知道小有建树答主
回答量:1362
采纳率:50%
帮助的人:445万
展开全部
void Disp_Temperature() //显示温度
{
if(qian==0)//千位为0时做正负显示
{
if(fuhao==1)//兆行正负判断
P0=0x7f; //1011 1111显示"-"
else
P0=0xff;//无负号为正
P2=0xfd;//送位码显示
Delay(10);
P2 = 0xff;//关显示
}
else if(qian!=0)//千位不为0,显示数据
{
P0 =~led[qian];//千位数据送段码
P2 = 0xfd;//送位码显示
Delay(10);
P2 = 0xff;关显示
}
if((bai==0)&&(qian==0))//千,百都为0时
{
P0=0xff; //送段码
P2=0xf7;//送位码
Delay(10);
P2=0xff;//关显示
}
else if((bai==0)&&(qian!=0))/穗昌/千不为0,百为0
{
P0=~led[bai];//百位数据送段码
P2=0xf7;
Delay(10);
P2=0xff;
}
else if(bai!=0)//百不为0
{
P0=~led[bai]; //百位数据送段码
P2=0xf7;
Delay(10);
P2=0xff;
}
P0=~led_dian[shi]; //十位与小数点
P2=0xdf;
Delay(10);
P2=0xff;
P0=~led[ge]; //显示个位.
P2=0x7f;
Delay(10);
P2=0xff; //关闭显示
}

但此程序族族哗确实有问题.比如他把十位跟小数点放同一位了.正常是个位后才到小数点.
追问
如果要前推一位是不是只需要把前段删除一部分,然后将后面的数位前推?
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式