开始制作一个简易电压表:使用到的元器件和模块。

主控芯片采用了 STC89C52RC,时钟电路:12MHz 晶振,30pf 瓷片电容 2 个,显示电路:OLED 7针,复位电路:10uf 电解 电容,100K 电阻。指示灯电路:LED0805,1K电阻。采集电路:ADS1115,1K电阻,3K电阻。以及其余原件若干。

思路:

51内部是没有集成ADC的,如果需要测量外部模拟信号,那么是要用到ADC的,为了保证精度,这边用了ADS1115(16位的ADC)。如果直接用ADS1115进行电压读取,那么读的外部电压最大只有ADS1115的内部基准电压:4.096V。

为了解决这个问题:我才用了简单的电阻分压电路,用来讲测量的电压进行分压。之后乘以两个电阻之间的分压系数。

电路仿真部分:

使用软件:proteus 8.6

RP1使用10K排阻做上拉,因为51P0口的驱动能力不够,需要上拉驱动。

P1.1和P1.2作为ADC的IIC信号口。之后通过R1和R2进行电压的分压部分。

P2.0、2.1、2.2作为液晶的三个控制口。

分析:仿真中通过 LCD1602显示对应的采样电压转换后的值,ADC采用PCF8591作为ADC的采样芯片,因为PCF8591和ADS1115一样都是使用IIC作为协议的一种ADC,因此可以使用PCF8591模拟电压的数值,但是PCF8591是8位(精度有点低,不过凑活也能用,看要求)的ADC不符合,但是可以用来作为电路的仿真,验证电路的实现合理性。

程序设计部分:

代码部分分为:主程序,OLED的驱动部分,以及ADS1115读取数据部分。其中主程序负责进行OLED上的显示部分,数据的计算,滤波和误差处理等,ADS1115负责数据的采样和转换。OLED的显示部分,负责对于OLED进行读写指令来驱动和初始化OLED的显示,在初始化之后,通过对应的函数来进行数字和字母的显示

                            

仿真验证结果

电路原理图绘制:

使用软件立创EDA(支持国产,立创YYDS)

PCB布局:

                  

实物效果验证:

个人信息部分都打了码。

测量数据:

注意事项:

从最初的使用当ADS1115采样电压只能达到4.096V时,之后想到通过分压电阻分压的方式来进行数据电压测量的上限,在之后通过进行测量的时候发现了测量电压始终不准,最后发现是因为ADS1115并不是简单的16位的ADC,ADS1115的转换数据是15位,有一位是符号位,因此要除以不是2的16次方,而是2的15次方,其次在进行ADS1115进行测量时发现他的基准电压是4.096V,而且具有4个模式基准电压都是4.096V。

具体程序如下链接:

简易的电压表(ADC1115和OLDE显示).zip-硬件开发文档类资源-CSDN下载

简易电压表(51)教程相关推荐

  1. htc+one+m7+linux驱动,HTC One M7简易刷Recovery教程

    HTC One M7作为当下HTC旗下的旗舰热门机,用户们对于刷机的需求都比较强烈,对于刷ROM的前提就是要刷入Recovery,当然作为安卓智能手机HTC one而言也不例外,最近有些用户在刷机啦论 ...

  2. Linux简易DDNS配置教程

    Linux简易DDNS配置教程 DDNS与其在Linux系统上的应用 1.1 DDNS是什么,其作用是什么 ​ DDNS(Dynamic Domain Name System,动态域名系统)是一种网络 ...

  3. 通过模数转换芯片ADC0809和51单片机实现简易电压表仿真

    网上很多文章在使用ADC0809时都是采用查询的方法来设计的,这里采用中断的方法. 中断的方法,写出的代码量小,而且对单片机的负荷小,单片机在中断来临之前可以去处理别的事情,具有较高的实用价值. 电路 ...

  4. 51单片机外接ADC0808制作简易电压表

    main.c #include<reg52.h>#define uchar unsigned char #define uint unsigned intsbit Start = P3^0 ...

  5. 【教程】简易CDQ分治教程学习笔记

    前言 辣鸡蒟蒻__stdcall终于会CDQ分治啦!       CDQ分治是我们处理各类问题的重要武器.它的优势在于可以顶替复杂的高级数据结构,而且常数比较小:缺点在于必须离线操作. CDQ分治的基 ...

  6. 24小时切换简易时钟-51单片机

    24小时切换简易时钟 简介 1.本设计主要介绍用单片机内部的定时/计数器来实现电子时钟的方法,本设计由单片机STC89C51单片机和LED数码管为核心,辅以必要的电路,构成了一个单片机电子时钟. 2. ...

  7. Django搭建简易博客教程(四)-Models

    原文链接: http://www.jianshu.com/p/dbc4193b4f95 Django Model 每一个Django Model都继承自django.db.models.Model 在 ...

  8. 简易计算机android教程视频,制作视频,你也可以!——小白视频编辑制作简易教程...

    10月份我们六班组织连接时空,共同朗诵的活动,以视频的形式进行展示.我认为视频是一种最直观形象的形式,使得我们可以快速认识战友. 视频编辑和制作,对于非专业的我来说,也只能是边学边用.所以,这个教程也 ...

  9. 简易黑客初级教程:黑客技术,分享教学

    前言 第一节,伸展运动.这节操我们要准备道具,俗话说:"工欲善其事,必先利其器"(是这样吗?哎!文化低--)说得有道理,我们要学习黑客技术,一点必要的工具必不可少. 1,一台属于自 ...

最新文章

  1. HDU OJ 5437 Alisha’s Party 2015online A
  2. 5 网络层----IP协议相关技术
  3. [Java基础]Map集合的遍历
  4. 收藏 | 超详细的Oracle19c安装步骤
  5. tpp letter
  6. UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 46: ordinal
  7. (4) ebj学习:ejb发布web service
  8. 【IntelliJ】IntelliJ IDEA常用设置及快捷键以及自定义Live templates
  9. 自定义报错返回_MybatisPlus基础篇学习笔记(五)------自定义sql及分页查询
  10. zookeeper基础整理
  11. Reactor网络编程模型
  12. ROS入门-9.订阅者Subscriber的编程实现
  13. 有趣的java小项目------猜拳游戏
  14. Android Button 实现透明 + 圆角按钮效果
  15. Java商城秒杀系统的设计与实战视频教程(SpringBoot版)_汇总贴
  16. 计算机基础知识及键盘熟悉实验报告,实验报告-实验一计算机的认识与指法练习.doc...
  17. 软件测试计划和测试方案区别
  18. shipyard安装不迷茫
  19. Angular:失焦校验和失焦方法冲突的解决方案 事件循环
  20. xml文件格式化脚本

热门文章

  1. 2020年全球及中国显示驱动芯片行业产业链、出货量及竞争格局分析「图」
  2. 技术人员的横向纵向发展
  3. java formula one 用法_使用Formula One生成Excel报表-
  4. 隐藏百度地图导航菜单栏
  5. 单细胞测序流程(八)单细胞的marker基因转化和​GO富集分析
  6. jsoup api 用法
  7. 愤怒是可以控制的,火爆脾气也是可以改变的,关键在于掌握方法。
  8. Everyone Piano v2.2.10.16 WiN 电脑键盘钢琴模拟软件
  9. Surfer网格文件的VC读写代码​
  10. php对plc的TCP通信,西门子S7-1200PLC之间TCP通信实例步骤