标题:
51单片机的DS18B20测温程序带12864显示
[打印本页]
作者:
不知所言
时间:
2017-6-28 14:51
标题:
51单片机的DS18B20测温程序带12864显示
51mcu做的DS18B20测温源码带lcd12864液晶显示,,,,,,,,,
0.png
(60.59 KB, 下载次数: 33)
下载附件
2017-6-28 18:06 上传
单片机源程序如下:
/*******************************************************************************
*
* 普中科技
--------------------------------------------------------------------------------
* 实 验 名 : 18B20温度显示试验
* 实验说明 : LCD1602显示温度值。
* 连接方式 : 见连接图
* 注 意 :
*******************************************************************************/
#include <reg52.h>
#include "lcd.h"
#include "temp.h"
#include "juzhenkeys.h"
#include <caidan.h>
void LcdDisplay(int);
/*******************************************************************************
* 函数名 : main
* 函数功能 : 主函数
* 输入 : 无
* 输出 : 无
*******************************************************************************/
void main()
{
// lcd_init();
init(); //初始化LCD12864
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
keys();
caidanfuzhi();
Lcd_Num1(3,0,Ds18b20ReadTemp());
Lcd_Display(3,5,"度");
// Delay1ms(1000);
}
}
/*******************************************************************************
* 函数名 : LcdDisplay()
* 函数功能 : LCD显示读取到的温度
* 输入 : v
* 输出 : 无
*******************************************************************************/
//void LcdDisplay(int temp) //lcd显示
//{
//
// unsigned char datas[] = {0,0,0,0,0}; //定义数组
// float tp;
// if(temp< 0) //当温度值为负数
// {
// weizhi(3,0); //写地址 80表示初始地址
// LcdWriteData('-'); //显示负
// //因为读取的温度是实际温度的补码,所以减1,再取反求出原码
// temp=temp-1;
// temp=~temp;
// tp=temp;
// temp=tp*0.0625*100+0.5;
// //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
// //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
// //算由?.5,还是在小数点后面。
//
// }
// else
// {
// weizhi(3,0); //写地址 80表示初始地址
// LcdWriteData('+'); //显示正
// tp=temp;//因为数据处理有小数点所以将温度赋给一个浮点型变量
// //如果温度是正的那么,那么正数的原码就是补码它本身
// temp=tp*0.0625*100+0.5;
// //留两个小数点就*100,+0.5是四舍五入,因为C语言浮点数转换为整型的时候把小数点
// //后面的数自动去掉,不管是否大于0.5,而+0.5之后大于0.5的就是进1了,小于0.5的就
// //算加上0.5,还是在小数点后面。
// }
// datas[0] = temp / 10000;
// datas[1] = temp % 10000 / 1000;
// datas[2] = temp % 1000 / 100;
// datas[3] = temp % 100 / 10;
// datas[4] = temp % 10;
//
// weizhi(3,1); //写地址 80表示初始地址
// LcdWriteData(0x30+datas[0]); //百位
//
// weizhi(3,2); //写地址 80表示初始地址
// LcdWriteData(datas[1]+0x30); //十位
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
DS18B20-LCD.zip
(101.47 KB, 下载次数: 50)
2017-6-28 14:51 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1