NTC热敏电阻高精度温度计程序

NTC热敏电阻高精度温度计程序

ID:39466613

大小:68.00 KB

页数:12页

时间:2019-07-04

NTC热敏电阻高精度温度计程序_第1页
NTC热敏电阻高精度温度计程序_第2页
NTC热敏电阻高精度温度计程序_第3页
NTC热敏电阻高精度温度计程序_第4页
NTC热敏电阻高精度温度计程序_第5页
资源描述:

《NTC热敏电阻高精度温度计程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、NTC热敏电阻高精度温度计程序[日期:2009-08-17][来源:东哥单片机学习网作者:admin][字体:大中小](投递新闻)STC12C5406AD晶振频率为12MHz本程序已调试完成:功能说明:采用廉价的NTC热敏电阻设计高精度温度计的方案,根据NTC热敏电阻的温度特性,采用了较具新意程序算法;摆脱了传统的查表显示温度的方法,特点:程序中无须查表,打破了常规的查表显示温度的方法。//NTC敏电阻温度显示。//DS18B20温度显示。#include"stc12c5410ad.h"//头文件#include"intrins.h"#defineucharunsignedch

2、ar//宏定义#defineuintunsignedint//宏定义sbitRS=P3^4;//定义I/O的硬件接口sbitE=P3^7;sbitA_B=P3^2;sbitCP=P3^3;sbitRT=P1^3;//外接NTCsbitR_100K=P1^4;//sbitD_J=P1^6;//检测sbitDQ=P1^5;////定义I/O的硬件接口--温度uintTemperature;//温度暂存单元uintNegative_Temperature;//负温度暂存单元bitNegative_sign=1;//负温度标志unsignedlongTEMP_1;//长整形单元floa

3、tTime_RT,Time_R;ucharaa,cc,ee;uintbb[11];floatdd,temp5;ucharcodeDispTab_1[]={’0’,’1’,’2’,’3’,’4’,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’};//1602:0-9数字ucharcodeDispTab_2[]={0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00};//温度符号ucharDispBuf[6];//6字节的显示缓冲区voiddelay(uintz)//1ms延时{ucharx,x1;for(;z>0

4、;z--){for(x=0;x<114;x++){for(x1=0;x1<1;x1++);}}}voiddelay1(ucharx2)//经精准计算,该段程序1次延时时间为19.53us;多次调用需要重新计算。{while(x2>0){x2--;}}voidwrite_Directive(uchara)//写指令{uchari,temp;for(i=0;i<8;i++){temp=a;temp&=0x80;if(temp==0x80)A_B=1;elseA_B=0;a=a<<1;delay1(1);CP=0;delay1(1);CP=1;delay1(1);CP=0;}RS=0

5、;delay(3);E=0;delay(3);E=1;delay(3);E=0;delay(3);}voidwrite_Data(uchara)//写数据{uchari,temp;for(i=0;i<8;i++){temp=a;temp&=0x80;if(temp==0x80)A_B=1;elseA_B=0;a=a<<1;delay1(1);CP=0;delay1(1);CP=1;delay1(1);}RS=1;delay(3);E=0;delay(3);E=1;delay(3);E=0;delay(3);}voidinit()//初始化{TMOD=0x10;//定时器T1工作

6、于方式1,16位计数器TH1=0x00;TL1=0x00;EA=1;//开总中断允许ET1=1;//开定时器T1允许控制//PT1=1;//开定时器T1中断为最高优先级TR1=0;//T1开始运行P1M1=0x80;P1M0=0x80;//aa=TH1;//aa=aa<<8;//aa

7、=TL1;//Time_RT=aa;//Time_RT=Time_RT

8、TL1;_nop_();delay(15);write_Directive(0x38);delay(5);write_Directive(0x38);delay(5);write_Directive(0x38);write_D

9、irective(0x01);write_Directive(0x02);///初始化后数据地址为0x80;即第一行,第一个位置write_Directive(0x0c);}voidTemperature_symbol()//温度符号{uchari;for(i=0;i<8;i++){write_Directive(0x40+i);//写入温度符号write_Data(DispTab_2[i]);}}voidwrite_Data_String()//显示时间函数{uchari;uintmm,m

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。