原标题: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相关推荐

  1. pt100温度传感器c语言,pt100温度传感器阻值,pt100温度与阻值对照表

    描述 Pt100在用于温度传感器时,是采用温度系数符合特定要求的金属铂制成的,依据物体电阻值随温度变化而变化的原理工作的,电阻式温度传感器中,按照国际温标(国际组织对热力学温度的定义)在热力学温度为2 ...

  2. 使用C语言编写测速程序

    可以使用 C 语言编写测速程序.要实现这个功能,你可以使用 C 语言中的时间函数来计算程序运行的时间. 具体来说,可以使用 clock() 函数来计算程序运行的时间.这个函数返回从程序开始运行到调用 ...

  3. 燃太TN901红外测温模块LCD1602显示

    山远的博客 学以致用 首页 旧版 首页 标签 留言本 单片机 文学 趣闻 美图 C#编程 燃太TN901红外测温模块LCD1602显示 燃太TN901红外测温模块LCD1602显示,可设置高温低温报警 ...

  4. PT100测温 程序+电路 LM358+TL431+PT100+单片机自带AD

    电路 核心程序 int main(void) { u16 adcx;float temp;float y1,y2,y3,y4,y5,y6;NVIC_PriorityGroupConfig(NVIC_P ...

  5. pt100阻值温度c语言,pt100温度传感器阻值,pt100温度与阻值对照表

    Pt100在用于温度传感器时,是采用温度系数符合特定要求的金属铂制成的,依据物体电阻值随温度变化而变化的原理工作的,电阻式温度传感器中,按照国际温标(国际组织对热力学温度的定义)在热力学温度为273. ...

  6. pt100热电阻c语言的程序,单片机+ADC0832热电阻PT100测温程序

    P0 = 0x76; //显示2 du = 1;//打开段选 du = 0;        //关闭段选 delay(2);//延时 if(pay_minus!=pay_minus_scan)   / ...

  7. 单片机热敏电阻测温度c语言,51单片机热敏电阻测温程序.doc

    //本程序是通过热敏电阻测温度(30c-50c #include #include #include #define uchar unsigned char #define uint unsigned ...

  8. c语言ntc程序,单片机NTC测温程序(带小数点) - 啊和的博客

    .C文件#include "ad.h" unsigned int xdata sAD1[10] ; unsigned int xdata AD_Value; unsigned in ...

  9. 基于51单片机的DS18B20测温程序与仿真图

    一.基础介绍 时序介绍就暂不介绍,可以网上搜集资料 二.proteus仿真图 三.程序代码 #include<reg51.h> #include"temp.h"#def ...

最新文章

  1. input 的read only 和 disable的区别
  2. 解决Exchange的Client not authenticated问题
  3. 78oa mysql_78oa系统版本升级方法
  4. MySQL中主键的选择与磁盘性能
  5. 【华为云技术分享】程序员实用JDK小工具归纳
  6. 开发winform程序,在拖拽控件大小时,VS会卡死
  7. Oracle日期操作函数
  8. 知乎高赞!python能做这么多自动化,可开发效率真的有Java高?
  9. 侧馈矩形微带天线设计报告
  10. Android app性能优化解决卡慢顿之布局优化
  11. Lenovo 使用BoMC工具制作微码升级U盘刷新System x
  12. Photoshop CC 2019入门知识手册
  13. 查看数据是否成功发送到kafka
  14. uikit响应式对应屏幕大小
  15. Windows上快速创建一个1G以上的大文件
  16. 【总结】Android的16ms和垂直同步以及三重缓存
  17. Linux 入门第一节
  18. Java学习:创建简单的名片管理系统
  19. Programming Contest Ranking(题解)
  20. vue 的计算属性报错Computed property “disa“ was assigned to but it has no setter.

热门文章

  1. 友盟+联合EB级云数据 实现友盟域和企业私域数据全面融合
  2. 核心系统100%上云!全球最大流量洪峰,阿里云扛住了
  3. 阿里HBase高可用8年“抗战”回忆录
  4. 高并发下Java多线程编程基础
  5. 一张图看懂阿里云网络产品[十一]云托付
  6. Kubernetes 也有局限性吗?
  7. 在 520 这天,竟然有人把 Docker讲清楚了? | 原力计划
  8. 如何使用 SQL Server FILESTREAM 存储非结构化数据?这篇文章告诉你!
  9. 【10.23头条】阿里云存储负责人吴结生:安全可靠是云存储立身之本, 智能技术将激活存储技术新变革...
  10. IT公司老板落水,各部门员工怎么救??