pt100温度传感器c语言,pt100测温程序-LCD1602
原标题:pt100测温程序-LCD1602
#include"at89X52.h"
sbit LCD_RS =P2^0;
sbit LCD_RW =P2^1;
sbit LCD_E =P2^2;
sbit ADC_CS =P2^3;
sbit ADC_WR =P3^6;
sbit ADC_RD =P3^7;
#define LCD_DATA P0
unsigned char LcdBuf1[10]="";
unsigned char code Bmp001[][8]=
{
{0x06,0x09,0x09,0x06,0x00,0x00,0x00,0x00},
{0x06,0x09,0x10,0x10,0x10,0x09,0x06,0x00}
};
void dellay(unsigned int h)
{
while(h--); //0.01MS
}
void WriteDataLcd(unsigned char wdata)
{
LCD_DATA=wdata;
LCD_RS=1;
LCD_RW=0;
LCD_E=0;
dellay(1000);
LCD_E=1;
}
void WriteCommandLcd(unsigned char wdata)
{
LCD_DATA=wdata;
LCD_RS=0;
LCD_RW=0;
LCD_E=0;
dellay(1000);
LCD_E=1;
}
void lcd_init(void)
{
LCD_DATA=0;
WriteCommandLcd(0x38);
dellay(1000);
WriteCommandLcd(0x38);
dellay(1000);
WriteCommandLcd(0x01);
WriteCommandLcd(0x0c);
}
void display_xy(unsigned char x,unsigned char y)
{
if(y==1)
x+=0x40;
x+=0x80;
WriteCommandLcd(x);
}
void display_string(unsigned char x,unsigned char y,unsigned char *s)
{
display_xy(x,y);
while(*s)
{
WriteDataLcd(*s);
s++;
}
}
void Write_CGRAM(unsigned char add,unsigned char *char_num)
{
unsigned i;
add=add<<3;
WriteCommandLcd(0x40|add+8);
for(i=0;i<8;i++)
{
WriteDataLcd(*char_num++);
}
}
void delayms()
{
int i;
for(i=110;i>0;i--);
}
void delay1s()
{
int i,j;
for(i=1000;i>0;i--);
for(j=110;j>0;j--);
}
void convert()
{
unsigned long value;
char i;
unsigned long res;
int temp,temp2;
int w;
P1=0xff;
ADC_RD=0;
for(i=0;i<10;i++);
value=P1;
res=(float)(2550000+110000*value/30)/(2550-11*value/30);
temp=(float)(res*10000-10000000)/3851-545;
temp2 = temp;
if(temp >= 0)
{
for(i=6;temp>0;i--)
{
LcdBuf1[i]=temp%10+48;
temp/=10;
}
}
if(temp < 0 )
{
w= -temp;
for(i=6;w>0;i--)
{
LcdBuf1[i]=w%10+48;
w/=10;
}
}
if(i>=0&&temp<0)
{
if(temp > -10)
{
LcdBuf1[i] = '0';
i--;
}
LcdBuf1[i] = '-';
i--;
/* if(i==5)
{
LcdBuf1[5] = '0';
i --;
}
LcdBuf1[4] = '-';
i--; */
}
for(;i>=0;i--)
LcdBuf1[i]=' ';
for(i=0;i<5;i++)
LcdBuf1[i]=LcdBuf1[i+1];
if(LcdBuf1[4]==' ')LcdBuf1[4]='0';
LcdBuf1[5]='.';
LcdBuf1[7]=1;
LcdBuf1[8]='C';
WriteCommandLcd(0x84);
display_string(3,0,LcdBuf1);
ADC_RD=1;
ADC_WR=0;
for(i=0;i<10;i++)
ADC_WR=1;
delayms();
}
main()
{
unsigned char i;
lcd_init();
for(i=0;i<2;i++)
Write_CGRAM(i,Bmp001[i]);
ADC_CS=0;
ADC_WR=0;
for(i=0;i<10;i++);
ADC_WR=1;
while(1)
{
convert();
delay1s();
}
}
责任编辑:
pt100温度传感器c语言,pt100测温程序-LCD1602相关推荐
- pt100温度传感器c语言,pt100温度传感器阻值,pt100温度与阻值对照表
描述 Pt100在用于温度传感器时,是采用温度系数符合特定要求的金属铂制成的,依据物体电阻值随温度变化而变化的原理工作的,电阻式温度传感器中,按照国际温标(国际组织对热力学温度的定义)在热力学温度为2 ...
- 使用C语言编写测速程序
可以使用 C 语言编写测速程序.要实现这个功能,你可以使用 C 语言中的时间函数来计算程序运行的时间. 具体来说,可以使用 clock() 函数来计算程序运行的时间.这个函数返回从程序开始运行到调用 ...
- 燃太TN901红外测温模块LCD1602显示
山远的博客 学以致用 首页 旧版 首页 标签 留言本 单片机 文学 趣闻 美图 C#编程 燃太TN901红外测温模块LCD1602显示 燃太TN901红外测温模块LCD1602显示,可设置高温低温报警 ...
- PT100测温 程序+电路 LM358+TL431+PT100+单片机自带AD
电路 核心程序 int main(void) { u16 adcx;float temp;float y1,y2,y3,y4,y5,y6;NVIC_PriorityGroupConfig(NVIC_P ...
- pt100阻值温度c语言,pt100温度传感器阻值,pt100温度与阻值对照表
Pt100在用于温度传感器时,是采用温度系数符合特定要求的金属铂制成的,依据物体电阻值随温度变化而变化的原理工作的,电阻式温度传感器中,按照国际温标(国际组织对热力学温度的定义)在热力学温度为273. ...
- pt100热电阻c语言的程序,单片机+ADC0832热电阻PT100测温程序
P0 = 0x76; //显示2 du = 1;//打开段选 du = 0; //关闭段选 delay(2);//延时 if(pay_minus!=pay_minus_scan) / ...
- 单片机热敏电阻测温度c语言,51单片机热敏电阻测温程序.doc
//本程序是通过热敏电阻测温度(30c-50c #include #include #include #define uchar unsigned char #define uint unsigned ...
- c语言ntc程序,单片机NTC测温程序(带小数点) - 啊和的博客
.C文件#include "ad.h" unsigned int xdata sAD1[10] ; unsigned int xdata AD_Value; unsigned in ...
- 基于51单片机的DS18B20测温程序与仿真图
一.基础介绍 时序介绍就暂不介绍,可以网上搜集资料 二.proteus仿真图 三.程序代码 #include<reg51.h> #include"temp.h"#def ...
最新文章
- input 的read only 和 disable的区别
- 解决Exchange的Client not authenticated问题
- 78oa mysql_78oa系统版本升级方法
- MySQL中主键的选择与磁盘性能
- 【华为云技术分享】程序员实用JDK小工具归纳
- 开发winform程序,在拖拽控件大小时,VS会卡死
- Oracle日期操作函数
- 知乎高赞!python能做这么多自动化,可开发效率真的有Java高?
- 侧馈矩形微带天线设计报告
- Android app性能优化解决卡慢顿之布局优化
- Lenovo 使用BoMC工具制作微码升级U盘刷新System x
- Photoshop CC 2019入门知识手册
- 查看数据是否成功发送到kafka
- uikit响应式对应屏幕大小
- Windows上快速创建一个1G以上的大文件
- 【总结】Android的16ms和垂直同步以及三重缓存
- Linux 入门第一节
- Java学习:创建简单的名片管理系统
- Programming Contest Ranking(题解)
- vue 的计算属性报错Computed property “disa“ was assigned to but it has no setter.
热门文章
- 友盟+联合EB级云数据 实现友盟域和企业私域数据全面融合
- 核心系统100%上云!全球最大流量洪峰,阿里云扛住了
- 阿里HBase高可用8年“抗战”回忆录
- 高并发下Java多线程编程基础
- 一张图看懂阿里云网络产品[十一]云托付
- Kubernetes 也有局限性吗?
- 在 520 这天,竟然有人把 Docker讲清楚了? | 原力计划
- 如何使用 SQL Server FILESTREAM 存储非结构化数据?这篇文章告诉你!
- 【10.23头条】阿里云存储负责人吴结生:安全可靠是云存储立身之本, 智能技术将激活存储技术新变革...
- IT公司老板落水,各部门员工怎么救??