• 大小: 35KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-26
  • 语言: 其他
  • 标签: ds18b20  数码管  

资源简介

单片机实验板ds18b20控制,数码管显示温度

资源截图

代码片段和文件信息


#include
#include“temp.h“

sbit baiweix=P2^4;
sbit shiweix=P2^5;
sbit geweix=P2^6;
sbit xiaoweix=P2^7;

unsigned char code table[]={0xc00xf90xa40xb00x990x920x820xf80x800x90} ;

unsigned char DisplayData[4];
//用来存放要显示的4位数的值
void LcdDisplay(int);
void DigDisplay();

void main()
{
while(1)
{
LcdDisplay(Ds18b20ReadTemp());
}
}



// LCD显示读取到的温度
void LcdDisplay(int temp)   //lcd显示
{
    float tp;  
if(temp< 0) //当温度值为负数
   {
DisplayData[0] = 0xbf; //显示负号
//因为读取的温度是实际温度的补码,所以减1,再取反求出原码
temp=temp-1;
temp=~temp;
tp=temp;
temp=tp*0.0625*10+0.5;
//留yi个小数点就*10,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算由?.5,还是在小数点后面。
 
   }
  else
   {
tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
//如果温度是正的那么,那么正数的原码就是补码它本身
temp=tp*0.0625*10+0.5;
//留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
//后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
//算加上0.5,还是在小数点后面。
}
DisplayData[1] = table[temp / 1000];
DisplayData[2] = table[temp % 1000 / 100];
DisplayData[3] = table[temp % 100 / 10] & 0x7f;
DisplayData[4] = table[temp % 10 ];
// DisplayData[5] = DIG_CODE[temp % 10];
  DigDisplay();    //扫描显示
}


//  使用数码管显示

void DigDisplay()
{
unsigned char i;
unsigned int j;
for(i=1;i<5;i++)
{
switch(i)  //位选,选择点亮的数码管,
{
case(1):
 baiweix=0;
 P0=DisplayData[i];
  j=50;  //扫描间隔时间设定
while(j--);
P0=0xff;//消隐
baiweix=1;
 break;//显示第1位
case(2):
shiweix=0;
 P0=DisplayData[i];
  j=50;  //扫描间隔时间设定
while(j--);
P0=0xff;//消隐
shiweix=1;
 break;//显示第2位
case(3):
geweix=0;
 P0=DisplayData[i];
  j=50;  //扫描间隔时间设定
while(j--);
P0=0xff;//消隐
geweix=1;
 break;//显示第3位
case(4):
 xiaoweix=0;
 P0=DisplayData[i];
  j=50;  //扫描间隔时间设定
while(j--);
P0=0xff;//消隐
xiaoweix=1;
 break;//显示第4位
   }
}
}


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2354  2016-12-29 12:12  数码管显示\main.c

     文件       6367  2016-12-29 12:09  数码管显示\main.LST

     文件       4522  2016-12-29 12:09  数码管显示\main.OBJ

     文件      10428  2016-12-29 12:09  数码管显示\pro

     文件       4380  2016-12-29 12:09  数码管显示\pro.hex

     文件         53  2016-12-29 12:09  数码管显示\pro.lnp

     文件      15106  2016-12-29 12:09  数码管显示\pro.M51

     文件       1035  2016-12-29 12:12  数码管显示\pro.plg

    .......     57394  2016-12-29 12:12  数码管显示\pro.uvopt

     文件      13556  2013-09-02 13:54  数码管显示\pro.uvproj

    .......     57433  2016-12-28 20:33  数码管显示\pro_uvopt.bak

     文件       6376  2009-05-07 14:37  数码管显示\STARTUP.A51

     文件      14048  2016-12-29 12:09  数码管显示\STARTUP.LST

     文件        749  2016-12-29 12:09  数码管显示\STARTUP.OBJ

     文件       3974  2016-12-28 20:14  数码管显示\temp.c

     文件        448  2016-12-29 12:05  数码管显示\temp.h

     文件       7925  2016-12-29 12:09  数码管显示\temp.LST

     文件       5652  2016-12-29 12:09  数码管显示\temp.OBJ

     目录          0  2016-12-29 12:12  数码管显示

----------- ---------  ---------- -----  ----

               211800                    19


评论

共有 条评论