资源简介
单片机实验板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
相关资源
- 单片机与温度传感器DS18B20的程序设计
- 毕业论文之温度传感器DS18B20(源码
- stm32 ds18b20 温度传感器 测试通过
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- 25.数码管显示0-99
- DS18B20分布式多点测温的Proteus仿真
- STC12C5A60S2 CH4521 驱动数码管 显示
- 单片机 DS18B20 温度控制系统
- 课程设计蔬菜大棚自动控制系统,包
- CH454键盘与数码管显示程序
- 基于EWB软件的数码管显示控制器
- 单片机电子琴 数码管显示
- 74hc244驱动数码管显示电路及程序
- ds18b20温度传感是什么传感器
- 数码管字体
- STM32F407实时时钟_DS1302实时时钟模块和
- 基于STM32F103的实时时钟程序,采用D
- 51单片机_DS1302时钟芯片_共阴数码管
- 倒计时与选手数码管编号显示的四人
- 基于STM32+TM1638芯片的共阳极数码管驱
- 第五章 畅学多功能实验箱4位一体数码
- 畅学ARM多功能实验箱数码管显示源码
- DS18B20_Serial_println.ino
- 51单片机数码管滚动显示hello
- 米字数码管取模
- DXP元件库、封装库,常用LED库、数码
- 红外遥控数码管显示.zip
- 51单片机交通灯 源代码+proteus仿真图
评论
共有 条评论