找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)DS18B20顯示程序的分析,百位是怎么顯示的?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:516297 發(fā)表于 2019-4-19 23:42 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
DS18B20中的定義之后為什么顯示百位調(diào)用第一個,顯示十位調(diào)用第二個,顯示各位調(diào)用第一個???并且用舉例子的方法解釋一下百位是怎么顯示的???


unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                        0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,
                        0x87,0xff,0xef};


void display(uint temp)            //顯示程序
{
   uchar A1,A2,A2t,A3,ser;
   ser=temp/10;
   SBUF=ser;
   A1=temp/100;
   A2t=temp%100;
   A2=A2t/10;
   A3=A2t%10;
   dula=0;
   P0=table[A1];        //顯示百位
   dula=1;
   dula=0;

   wela=0;
   P0=0xfe;
   wela=1;
   wela=0;
   delay(1);

   dula=0;
   P0=table1[A2];        //顯示十位
   dula=1;
   dula=0;

   wela=0;
   P0=0xfd;
   wela=1;
   wela=0;
   delay(1);

   P0=table[A3];        //顯示個位
   dula=1;
   dula=0;

   P0=0xfb;
   wela=1;
   wela=0;
   delay(1);
}

uint tmp()               //get the temperature
{
  float tt;
  uchar a,b;
  dsreset();
  delay(1);
  tmpwritebyte(0xcc);
  tmpwritebyte(0xbe);
  a=tmpread();
  b=tmpread();
  temp=b;
  temp<<=8;             //two byte  compose a int variable
  temp=temp|a;
  tt=temp*0.0625;
  temp=tt*10+0.5;
  return temp;
}


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

使用道具 舉報

沙發(fā)
ID:213173 發(fā)表于 2019-4-20 09:30 | 只看該作者
void display(uint temp)//temp是包含1位小數(shù)的溫度值,放大10倍后成為整數(shù)
{
   uchar A1,A2,A2t,A3,ser;
   ser=temp/10;//把整數(shù)部分賦值給ser
   SBUF=ser;        //串口發(fā)送實際溫度的整數(shù)
   A1=temp/100;//分離百位數(shù)(實際是溫度的十位數(shù))
   A2t=temp%100;//分離百位以下整數(shù)
   A2=A2t/10;//分離十位數(shù)(實際是溫度的個位數(shù))
   A3=A2t%10;//分離個位數(shù)(實際是溫度的小數(shù))
        ......
        ......
}
回復(fù)

使用道具 舉報

板凳
ID:277550 發(fā)表于 2019-4-20 10:00 | 只看該作者
  temp=tt*10+0.5;    放大了10位

A1=temp/100;     百位
   A2t=temp%100; 十位和個位
   A2=A2t/10;       十位
   A3=A2t%10;      個位
回復(fù)

使用道具 舉報

地板
ID:501535 發(fā)表于 2019-4-22 16:34 | 只看該作者
放大了10位
回復(fù)

使用道具 舉報

5#
ID:479806 發(fā)表于 2019-4-25 08:40 | 只看該作者
好像用sprintf語句不用這么麻煩的
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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