http://www.51hei.com/bbs/dpj-126017-1.html

以下介绍的这个方法是用没有 ADC 功能的芯片来检测模拟量,采集温度:

1. 温度检测电路图 :
 
2. 温度检测步骤 :
第一步:放电
P85 和 P86 设置为高阻态, P87 输出“1”,电容放电

第二步:测标准电阻
P85 和 P87 设置为高阻态, P86 输出“0”,电容充电,并对充电时间计时
计时功能说明:计时最小时基为 30US,用定时器中断来实现。每 30US 中断一次,
计时器+1。 计时器长度=16BIT, 高字节的 BIT4 代表溢出位。 所以实际有效长度为 12 位,
超出则判为溢出,可能是被测电阻开路和电容短路等故障引起的。

第三步:放电
P85 和 P86 设置为高阻态, P87 输出“1”,电容放电

第四步:测温度电阻
P86 和 P87 设置为高阻态, P85 输出“0”,电容充电,并对充电时间计时
计时功能说明:(同第二步)

第五步:计算电阻比率
计算公式:
电阻比率=温度电阻÷标准电阻
=温度电阻充电时间÷标准电阻充电时间

第六步:查表求温度
根据电阻比率查表求温度摄氏值
为了提高查表时的分辨率,在上一步骤计算比率时应该将比率值乘以一定系数(在本
项目中该系数=256*64=16384).在表格中的数据也应该同步乘以该系数

第七步:温度单位转换
如果是温度单位=华氏值,则将摄氏值转化为华氏值;否则跳过
温度转换公式:
华氏值 = 摄氏值×1.8+32
摄氏值 = (华氏值-32)÷1.8

第八步:数字滤波
采用递推中位平均滤波方法:保留最新 10 个采样值,去掉一个最大值,去掉一个最小
值,剩余 8 个采样值取平均数

用单片机普通IO口(不用ADC功能)采集模拟量相关推荐

  1. STC15W408AS单片机通过ADC端口采集模拟量并从串口打印数值

    STC15W408AS单片机通过ADC端口采集模拟量并从串口打印数值 0-1023数据采集 STC15W408AS引脚功能图 STC15系列单片机的A/D转换器 A/D转换器的结构 STC15系列单片 ...

  2. 合泰单片机入门——IO口操作

    文章目录 背景 一.HT-IDE3000创建工程 二.根据芯片数据手册初始化IO口 1.数据手册介绍 2.初始化IO口 总结 背景 国产单片机的生态本身就比较差,不像STM32被广泛使用和学习,虽然单 ...

  3. 如何使用一个单片机的IO口控制两个LED?

    简 介: 本文介绍了一种使用单个IO口独立控制两个LED点亮的方案.并对于不同颜色的LED和不同工作电压下的MCU进行了讨论.给出了在不同的颜色组合.工作电压的情况下不同的驱动方案. 关键词: IO, ...

  4. 8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8。

    8255总线实验 编写程序利用8255扩展单片机的IO口,控制8位数码管显示1-8. 程序: #include<reg51.h> #include<absacc.h> #def ...

  5. stm32的IO口的复用功能(即AFIO)

    关于stm32的IO口的复用功能,可以参考这篇博客,写的不错. https://blog.csdn.net/u013082827/article/details/77543394

  6. 51单片机之IO口扩展——74HC165芯片并行转串行实验

    我们都知道通信从大的方面有两种:串行和并行.串行的最大优点是占用总线少,但是传输速率低:并行恰恰相反,占用总线多,传输速率高.市面上有很多这样的芯片,有串入并出的(通俗讲就是 一个一个进,最后一块出来 ...

  7. hc05与单片机连接图_单片机科普:单片机的IO口不够用了怎么办?如何扩展单片机的IO口...

    单片机是一种可编程器件,在各种消费类电子.工业电子.汽车电子等行业应用广泛,目前开发产品的构架就是以单片机为核心,根据不同的功能搭建不同的外设电路.同样的功能,每个人.每个团队所做的技术方案都不会相同 ...

  8. 笔记:STM32——IO口的复用功能外部中断

    在STM32里面一般有五组寄存器分别是A--E组,每组寄存器的端口基本都有复用功能,这样可以使得端口的不被浪费,而达到极致利用. 使用复用端口的时候需要打开AFIO的时钟才能使用IO口的复用端口.每个 ...

  9. 51单片机之IO口扩展——74HC595芯片串行转并行实验

    我们都知道通信从大的方面有两种:串行和并行.串行的最大优点是占用总线少,但是传输速率低:并行恰恰相反,占用总线多,传输速率高.市面上有很多这样的芯片,有串入并出的(通俗讲就是 一个一个进,最后一块出来 ...

最新文章

  1. linux 查看java进程_Linux进程查看及管理工具(ps, vmstat, dstat, glances等)
  2. [Xcode 实际操作]八、网络与多线程-(19)使用RunLoop使PerformSelector方法延迟动作的执行...
  3. ESP32-CAM使用过程中可能会遇到的问题
  4. python需要安装的库_使用python学习【机器学习】需要安装的库~
  5. QQ协议调试器 QQDebugger
  6. IO_ADDRESS()的实现【转】
  7. vue学习笔记-02-前端的发展历史浅谈mmvm设计理念
  8. wdatepicker使用指南
  9. Python学习笔记——输入与输出用法
  10. 上传身份证照片js_html+css+js 实现拍照预览上传图片功能
  11. ionic 上拉加载更多
  12. Metasploit介绍
  13. ASP.NET——C#文件夹创建与文件存在判断
  14. LeetCode经典算法精解-字符串编辑距离
  15. 龙门上下料样本程序,四轴。用台达AS228T和台达触摸屏编写
  16. xtu oj 1355
  17. 【数据结构】【王道】【树与二叉树】中序二叉线索树的实现及基本操作(可直接运行)
  18. STM32调试出现Cannot access Memory的情况
  19. 【无线通信协议笔记】蓝牙篇:BLE HID协议
  20. 浅谈Linux就业前景

热门文章

  1. 重装系统后需要安装的软件
  2. xamarin学习之路 一、vs2015 环境搭建
  3. layer.js 使用
  4. autocad.net中ResultBuffer相关的常量值
  5. HDU 1394 Minimum Inversion Number(线段树的单点更新)
  6. syslog-ng 正确配置udp接受端口
  7. 深入浅出ES6(一):ES6是什么
  8. java args包_Java Args.positive方法代码示例
  9. asic面试题目 英伟达_英伟达一面总结
  10. 【Matlab】绘制热力图和三维热力图