现功能,1L水由1KW电炉加热,要求水温在一定范围内人工设定,并能随着环境温度改变自动调节,以维持设定的温度不变。

矩阵键盘输入设定温度,LCD1602显示温度值,VB上位机绘制温度曲线

/*******************************************************************************

* 实验名                           :温度显示实验

* 使用的IO             :

* 实验效果       :1602显示温度

*        注意                                         :

*******************************************************************************/

#include

#include "uart.h"

#include"lcd.h"

#include "juzhen.h"

#include"temp.h"

void LcdDisplay(int);

void show_zi();

/*******************************************************************************

* 函数名         : main

* 函数功能                   : 主函数

* 输入           : 无

* 输出                  : 无

*******************************************************************************/

extern int key_value;

void main()

{

UsartConfiguration();

LcdInit();                         //初始化LCD

show_zi();

while(1)

{

LcdDisplay(Ds18b20ReadTemp());

//Delay1ms(1000);//1s钟刷一次

key_touch();

LcdDisplay_input();

compare_temp();

}

}

/*******************************************************************************

* 函数名         : LcdDisplay()

* 函数功能                   : LCD显示读取到的温度

* 输入           : v

* 输出                  : 无

*******************************************************************************/

unsigned char dates[] = {0, 0, 0, 0, 0}; //定义数组

void LcdDisplay(int temp)          //lcd显示

{

float tp;

//        if(temp< 0)                                //当温度值为负数

//  {

//          LcdWriteCom(0x80);                //写地址 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的就

//                //算加上0.5,还是在小数点后面。

//

//  }

//  else

//{

LcdWriteCom(0x85);                //写地址 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,还是在小数点后面。

//}

dates[0] = temp / 10000;

dates[1] = temp % 10000 / 1000;

dates[2] = temp % 1000 / 100;

dates[3] = temp % 100 / 10;

dates[4] = temp % 10;

LcdWriteCom(0x86);                  //写地址 80表示初始地址

LcdWriteData('0'+dates[0]); //百位

LcdWriteCom(0x87);                 //写地址 80表示初始地址

LcdWriteData('0'+dates[1]); //十位

SBUF = '0'+dates[1];        //将接收到的数据放入到发送寄存器

while (!TI);                            //等待发送数据完成

TI = 0;

LcdWriteCom(0x88);                //写地址 80表示初始地址

LcdWriteData('0'+dates[2]); //个位

SBUF = '0'+dates[2];        //将接收到的数据放入到发送寄存器

while (!TI);                            //等待发送数据完成

TI = 0;

LcdWriteCom(0x89);                //写地址 80表示初始地址

LcdWriteData('.');                 //显示 ‘.’

LcdWriteCom(0x8A);                 //写地址 80表示初始地址

LcdWriteData('0'+dates[3]); //显示小数点

LcdWriteCom(0x8B);                 //写地址 80表示初始地址

LcdWriteData('0'+dates[4]); //显示小数点

LcdWriteCom(0x8C);                //写地址 80表示初始地址

LcdWriteData('C');

}

void show_zi()

{

char temp[6]={"Temp:"};

char temp2[6]={"Hope:"};

int i;

for(i=0;i<6;i++)

{

LcdWriteCom(0x80+i);                //写地址 80表示初始地址

LcdWriteData(temp[i]);

}

for(i=0;i<6;i++)

{

LcdWriteCom(0xC0+i);                //写地址 80表示初始地址

LcdWriteData(temp2[i]);

}

}

关键字:

51单片机

水温控制

LCD显示

温度曲线

编辑:什么鱼 引用地址:

http://news.eeworld.com.cn/mcu/ic510475.html

本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

单片机 c语言百位加上小数点,51单片机水温控制LCD显示加VB上位机温度曲线绘制...相关推荐

  1. 51单片机c语言的秒表设计,基于51单片机的计时器设计

    描述 用51单片机的定时器0的方式1计时,结果用4位数码管显示,分别为秒十位,秒个位,毫秒百位,毫秒十位.所以总共最大计时为1分钟,精确到了0.01s.同时,加上3个独立按键,分别控制秒表的清零,暂停 ...

  2. 单片机C语言流水灯花样编程,51单片机学习之陆 —— 1.3 流水灯的花样玩法

    原标题:51单片机学习之陆 -- 1.3 流水灯的花样玩法 上一次我们点亮了一个1,其实仅仅点亮一个流水灯还是有些单调的. 这一次让我们试着尝试些别的花样 1 多个流水灯的点亮 a 打开将原来的c文件 ...

  3. 单片机c语言计数器测速,基于51单片机的光电编码器测速.doc

    课程设计报告 课程名称: 微机原理课程设计 题 目: 基于51单片机的光电编码器测速 摘要 光电编码器是高精度位置控制系统常用的一种位移检测传感器.在位置控制系统中,由于电机既可能正转,也可能反转,所 ...

  4. 单片机c语言100例 的案例,51单片机C语言100个实例 [推荐下载】

    51单片机c语言100例 ,墙裂推荐下载 附上目录 ************************************************************函数的使用和熟悉****** ...

  5. 51单片机c语言编程的头文件,51单片机编程的头文件reg51.h详解

    我们在用c语言编程时往往第一行就是头文件,51单片机为reg51.h或reg52.h,51单片机相对来说比较简单,头文件里面内容不多,像飞思卡尔.ARM系列的单片机头文件往往内容就非常多,尽管如此,对 ...

  6. 单片机c51语言实训总结,大学生51单片机实训心得体会

    <大学生51单片机实训心得体会>由会员分享,可在线阅读,更多相关<大学生51单片机实训心得体会(1页珍藏版)>请在人人文库网上搜索. 1.大学生51单片机实训心得体会实践是检验 ...

  7. 单片机c语言程序开发洗衣机,基于51单片机洗衣机控制器的设计(附程序)☆

    基于51单片机洗衣机控制器的设计(附程序)☆(任务书,开题报告,中期检查表,毕业论文21000字,程序) 摘  要 洗衣机是人们日常生活中常见的一种家电,已经成为人们生活中不可缺少的家用电器.在工业生 ...

  8. 单片机c语言reti的用法,基于51单片机中断跳出指令“RETI”浅议

    原标题:基于51单片机中断跳出指令"RETI"浅议 =RET指令+通知CPU中断服务已结束. 最近在基于编程的过程中出现了个很奇怪的问题"程序执行中在寄存器EA=1,ET ...

  9. 单片机C语言头文件如何写,51单片机头文件怎么写

    本文收集整理关于51单片机头文件怎么写的相关议题,使用内容导航快速到达. 内容导航: Q1:51单片机的头文件究竟该如何写 举个例子先判断是否被定义过,没定义就先定义好,主要就是防止重复包含 #ifn ...

最新文章

  1. Instagram个性化推荐工程中三个关键技术是什么?
  2. css 商城 两列_如何使用css伪元素实现超实用的图标库(附源码)
  3. inv(a) matlab,设A为矩阵,b为列向量,则Matlab中运算A\b 和运算inv(A)*b
  4. python----面向对象:1类的定义
  5. 小米暑期实习在线笔试2015-04-25
  6. linux 0755,linux audit审计(7-1)--读懂audit日志
  7. 如何设计可自学习的五子棋 AI?
  8. Hadoop环境搭建(单机)
  9. 就业swot分析计算机,程序员应聘SWOT分析法
  10. android网易课堂app,网易云课堂
  11. 移动铁通宽带上网设置教程
  12. 曙光服务器如何重新设置u盘启动_u盘装曙光服务器 曙光服务器进bios设置u盘启动...
  13. HTML5 2D平台游戏开发#8指令技
  14. ubuntu 开机进不去桌面问题
  15. 使用百度网盘下载ed2k文件
  16. [Unity]实现按住WASD角色移动
  17. CentOS 7 yum 安装 pip3 和 python3.6
  18. 如何在Windows下创建Ramdisk
  19. 【relativistic GAN :细节注入】
  20. Docker搭建企业内部私有云盘/开源网盘系统

热门文章

  1. python机器学习系列教程——深度学习框架比较TensorFlow、Theano、Caffe、SciKit-learn、Keras
  2. Java实现模拟银行系统
  3. SDU暑期集训排位(3)
  4. 编写一个程序,将 d:\java 目录下的所有.java 文件复制到 d:\jad 目录下,并将原来文件的扩展名从.java 改为.jad。...
  5. metasploit连接postgresql的问题(U盘启动kali linux)
  6. [Win系统][临时方案]系统任务管理器不能使用临时性解决方案
  7. [转]导出数据到Excel的几种方法
  8. 项目案例模板之jdbc两种连接方式
  9. day31(GIL锁)
  10. 使用 RemObjects SDK 建立 WebService 应用