51 ADC0809八路NTC温度采集系统(代码+仿真,OLED SPI)
ADC0809和51八路NTC温度采集系统
目录
- ADC0809和51八路NTC温度采集系统
- 1.NTC负温度
- 2.ADC0809
- 3.51最小系统连接图(proteus8)
- 4.Keil代码
- 5.踩坑注意
- (1)proteus8仿真ADC0809
- (2) proteus8仿真OLED
- 相应引脚接线
- 5.效果演示图
1.NTC负温度
网络上很多NTC温度转换方式,有查表之类的。由于我的这个项目对于温度准确度要求并不高,所以用一下公式转化即可满足显示要求,如需要更精确的数值,还请看看数据手册查表分析。
这里引用这位大佬的经验,转换公式也是从此的来。(所谓站在巨人肩膀上才能看的更远)感激这位大佬的分享。
https://blog.csdn.net/u013866683/article/details/79391849
2.ADC0809
仿真替代方案
proteus仿真里面用ADC0808代替ADC0809,只需要把名字给改一下就可以了,引脚也是适用的。
3.51最小系统连接图(proteus8)
4.Keil代码
这里放出关键的NTC温度转换代码
main.c
/*
const float Rp =10.0; //10K
const float Temp2 = (273.15+25.0); //T2
const float Bx = 3950.0;//B
const float Ka = 273.15;
*/
float Get_Temp(uchar channel)
{float Rt;float temp;float vol;float tempBuff=0;//返回值缓存int showTemp; vol = (float)(AD())*(5.04/256); //NTC电压vol = (float)(AD())*(5.04/256); //NTC电压,ad转换要多转换一次,因为第二次读取的数才是本次使用的数值Rt = (vol*10)/(5.04-vol); //当前温度阻值temp = Rt/Rp; temp = log(temp);//ln(Rt/Rp)temp/=Bx;//ln(Rt/Rp)/Btemp+=(1/Temp2);temp = 1/(temp);temp-=Ka+0.5;tempBuff = temp; //返回值缓存if(temp<0){temp = -temp; //变正取数minFlag=1; //负值标志位}else{ temp = temp;minFlag=0;}showTemp = 100*temp; disbuff[channel*4+0]=showTemp/1000; //分别取千百十个位,后面添加 '+' '-' '.';数据格式+xx.xx(-xx.xx)disbuff[channel*4+1]=showTemp%1000/100;disbuff[channel*4+2]=showTemp%100/10;disbuff[channel*4+3]=showTemp%10;return tempBuff;
}
链接:https://pan.baidu.com/s/1O64KxTIM1UwWvrY0eVqCQg
提取码:qost
如果需要代码和仿真源文件,可以留言个邮箱。
5.踩坑注意
(1)proteus8仿真ADC0809
这里我就不重复说明了,感激这位大佬的分享。简单说就是ADC0808的输出引脚序号与实际数据的高低位是相反的,即OUT8对应输出数据的最低位(LSB),OUT1对应输出数据的最高位(MSB)
https://blog.csdn.net/weixin_42098782/article/details/86503628
(2) proteus8仿真OLED
proteus器件输入LY190-128064
相应引脚接线
特此说明,由于我接的是P0口,所以用上拉电阻。
5.效果演示图
51 ADC0809八路NTC温度采集系统(代码+仿真,OLED SPI)相关推荐
- 51单片机 八路抢答器+Proteus仿真
51单片机 八路抢答器+Proteus仿真 Proteus仿真 实例代码1 直观,任意看懂 #include <reg52.h> unsigned char code led[17]={0 ...
- 基于51单片机多路温度检测proteus仿真 ds18b20
本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...
- 基于单片机串口远程多路温湿度采集仿真-基于单片机ADC0809八路电压采集系统设计-基于单片机16x32点阵多模式显示仿真设计-基于单片机餐厅呼叫控制系统仿真设计-基于STM32单片机的智能水杯设计
1220基于单片机ADC0809八路电压采集系统设计-毕设课设资料 数码管显示,测量八路电压表. #define addo (5.0/255.0) #define zero 0.005 //用于校准A ...
- (含代码仿真)51单片机+DHT22+LCD1602温湿度检测计+温湿度达阈值控制用电器
系列文章目录 (仿真模拟)51单片机+DHT22+LCD1602温湿度检测计+温湿度达阈值控制用电器 文章目录 系列文章目录 文章目录 制作要求 一.整体说明 二.电路仿真 三.使用介绍 四.部件说明 ...
- 基于51单片机的温度采集系统的设计四位数码管显示温度
资源链接:加我QQ:1271370903 一.摘要 随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的温度采集系统与控制系统的研发与应用在很大程度上提高了生产生活中对温度的控制水平.本设计论 ...
- 【001】基于51单片机的DS18B20温度检测与报警装置的proteus仿真设计
一.设计资料内容(私信获取) 1. 包含proteus仿真一份: 2. keil源代码一份: 3. 包含基于51单片机的DS18B20温度监测与报警的proteus仿真设计课程报告一份: 4. 包含基 ...
- 51系列—基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全)
基于51单片机的校园教室打铃系统(代码+仿真+电路图超级全) 本文主要介绍基于51单片机实现的校园打铃系统设计,实现了基本的上下课打铃功能.本设计基于51单片机,使用单片机定时计数器及LCD1602接 ...
- 基于互联网的温度采集系统
1 绪论... 1 1.1 课题背景... 1 1.2 研究内容... 1 1.3 发展前景... 1 1.4 研究意义... 2 2. 开发平台介绍... 2 2.1 开发环境... 2 2.2 操 ...
- 基于单片机的压力流量报警器(附代码+仿真+论文)
基于单片机的压力流量报警器(附代码+仿真+论文) **==完整论文+代码+仿真可关注我在主页私我==** 摘要 关键字 第一章绪论 1.1课题背景及其意义 1.2 国内外的研究状况 1.3本文的主要研 ...
- 基于51单片机智能导盲拐杖Proteus仿真
功能介绍: 采用51单片机作为主控CPU,采用HC-SR04超声波模块测量障碍物距离,LCD1602显示屏显示当前的障碍物距离,并且可以设置报警的阈值,通过传感器测量障碍物的距离的远近来进行相关报警, ...
最新文章
- leveldb源码分析:数据查询
- 【Python-ML】SKlearn库逻辑斯蒂回归(logisticregression) 使用
- TensorFlow2-神经网络基础
- 如何删除SQL Server下注册的服务器
- JAVA入门级教学之(方法重写/方法重载)
- mysql事务和非事物_mysql事务型与非事务型表1.8.5.3. 事务和原子操作
- python安装时没有选path怎么办,环境变量是个啥? 没有勾选Add to Path怎么办?
- react新生命周期
- 减速箱箱体尺寸是怎样计算的_手把手教你解剖减速机
- table 条数过大优化_MySQL 数据库优化,看这篇就够了 | 不长不短,2000 字小结
- bilstmcrf词性标注_BiLSTM+CRF 的实现详解
- Java常用的工具类库介绍
- Trace32 simulator调试以及简单实用命令介绍
- Q - 统计硬币 HDU - 2566(母函数)
- LNMP 配置漏洞系列解读
- #10019. 「一本通 1.3 例 2」生日蛋糕
- 大天使黎明服务器维护,金山猎豹大天使之剑全服4月17日维护公告
- coturn mysql_Coturn / turnserver:错误437:不匹配的分配:错误的事务ID(WebRTC)
- 字节-测试开发-面试
- 学会读懂traceback,处理Python异常