设计要求
1.以MCS-51系列单片机为核心器件,设计一个简单的直流数字电压表;
2.电压量程:0~5V;
3.最小分辨率:0.01V;
4.所用元器件较少,成本低,且测量精度和可靠性较高;

系统概述
本设计是基于Atmel 51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。

该系统采用AT89C51单片机作为控制核心,以ADC0809为模数转换芯片,实现量程0到5V的被测电压数据采样;LCD1602字符液晶显示被测电压值。

同时,数字电压表测量精度为0.01V,能够满足一般测量要求,系统框架如下图所示。

仿真电路图


原理图

PCB图

仿真结果分析
打开Proteus仿真文件,文件后缀名为DSN.双击单片机,加载DianYa.hex文件(位于C程序文件夹中),运行仿真,结果如下图所示。

图中可以看出,LCD显示AD转换通道IN0电压(Voltage)的大小为1.84V,用Proteus软件自带的电压表(Volts)测量的结果为1.85V,两者偶有0.01V的偏差,属于仿真正常现象。

通过点击滑动变阻器RP2上下红色箭头,模拟被测电压值的改变(0~5V之间),LCD实时跟踪显示电压的变化。

下图为调整滑动变阻器后,LCD显示的电压值为4.25V,与Volts电压表显示结果一致。

综上所述,数字电压表Proteus仿真设计运行效果满足设计要求。

部分C代码

#include"include.h"
#define TIME0H 0x3C
#define TIME0L 0xB0
uchar uc_Clock=0;      //定时器0中断计数
bit b_DATransform=0;void vShowVoltage(uint uiNumber)
{uchar ucaNumber[3],ucCount;if(uiNumber>999)                 uiNumber=999;ucaNumber[0]=uiNumber/100;                               //把计算数字的每个位存入数组。ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;                          ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];for(ucCount=0;ucCount<3;ucCount++){vShowOneChar(ucaNumber[ucCount]+48);             //从首位到末位逐一输出。if(ucCount==0)vShowOneChar('.');}
}
void main()
{TMOD=0x01;            //定时器0,模式1。TH0=TIME0H;TL0=TIME0L;TR0=1;               //启动定时器。ET0=1;             //开定时器中断。EA=1;             //开总中断vdInitialize();vWriteCMD(0x84);      //写入显示起始地址(第一行第4个位置)vShowChar("voltage");vWriteCMD(0xC9);     vShowChar("(V)");while(1){if(b_DATransform==1){b_DATransform=0;vWriteCMD(0xC4);vShowVoltage(uiADTransform());}}
}

分享的内容

(1)基于51单片机的数字电压表设计论文完整版;
(2)C程序;
(3)Proteus仿真文件;
(4)原理图及PCB文件;
(5)Visio流程图;
(6)元器件清单;
(7)参考资料;

内容如图





重要的事情说一遍!!!

获取数字电压表设计全套设计资料!

请微信搜索关注我的公众号:交院小智

AT89C51单片机的数字电压表开发,量程0~5V,proteus仿真,原理图PCB和C程序等相关推荐

  1. 基于51单片机的水温温度PID算法控制系统proteus仿真原理图PCB

    1.本系统采用STC89C52作为单片机 2.采用液晶LCD1602液晶实时显示相关数据 3.采用矩阵键盘可设置PID相关参数 4.采用L298驱动功率电阻模拟加热过程 5.当温度超过设定值的一定范围 ...

  2. 基于51单片机的多路热电偶测温系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前检测的温度值 2.循环显示多路热电偶检测值 3.当温度超过设定温度值一定范围以后,蜂鸣器报警,同时启动升温或降温装置 ...

  3. T047基于51单片机全自动智能洗衣机烘干脱水浸泡proteus仿真原理图PCB

    功能: 0.本项目采用STC89C52作为单片机系统的控制MCU 1.系统支持速洗.标准洗.浸泡洗.脱水和烘干五种模式 2.按下开关键显示"FF",此时按下启动键可进入水位设置,再 ...

  4. 基于51单片机的时钟闹钟温度计LCD1602显示proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示时间/当前温度 2.按键可进行闹钟设置和温度上下限设置 3.到达闹钟时间或温度超过阈值范围,蜂鸣器报警 4.到达闹钟 ...

  5. 基于51单片机的时钟电子秤称重系统proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.采用LCD1602液晶显示当前时间和检测重量 2.按键可更改时间和设置超重报警阈值 3.采用HEX711和称重支架传感器获取物体重量信息,传入 ...

  6. 基于51单片机的智能蓝牙路灯街灯控制系统proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.液晶实时显示时间/环境光强/工作模式 2.每隔5s向蓝牙串口发送一次信息 3.支持路灯故障检测 4.工作时间18~24时,两个路灯同时点亮,24时 ...

  7. 基于51单片机声音噪声分贝检测采集显示proteus仿真原理图PCB程序设计

    硬件设计 (末尾附文件) 功能说明: 1.基于STC89C51/52(与AT89S51/52.AT89C51/52通用)单片机作为主控制器 2.采用LCD1602液晶显示屏实时显示分贝值: 3.使用小 ...

  8. 基于51单片机太阳能风能太阳能风光互补路灯proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.手动模式下,由手动开关控制小灯的亮灭 2.自动模式下,由光强决定小灯的亮灭 3.本系统具备太阳能和风能两种方式给系统的锂电池充电,锂电池再经过升压 ...

  9. 基于51单片机的智能水表水流量计流量报警器proteus仿真原理图PCB

    功能: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示水流量/累计流量/累计流量阈值 2.按'清零'键清除累计流量,按'加''减'设置累计流量报警阈值,按'启停'启动停止水泵 3 ...

  10. 基于51单片机的模拟心率电子脉搏器proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.系统可检测心率脉搏值,通过LCD1602液晶实时显示测量值 2.心率脉搏超过设定阈值,蜂鸣器将报警 3.四个功能按键可修改心率脉搏上下限阈值 ...

最新文章

  1. 为什么我们总认为开源不挣钱?
  2. kafka-manager安装
  3. 《系统集成项目管理工程师》必背100个知识点-57沟通管理
  4. teechart绘制实时曲线_关于PIII曲线
  5. 【机器学习】二次规划
  6. 【收藏】2004年最值得推荐的管理类书籍
  7. Git下载、安装及环境配置(超详细)
  8. 如何在word中的图片上画圈标注_word图片上画圈 如何在word图片中进行画圈标示...
  9. uniapp实现上传图片
  10. 疯狂的架构——著名科技公司组织结构图一览
  11. 10 行代码,集算器实现写诗机器人
  12. pytorch 冻结参数
  13. rss订阅地址汇总_好的,所以我只是汇总了自己的RSS提要,然后将其重新发布在itnbsp俗气的oughnbsp中...
  14. Leetcode-892. 三维形体的表面积
  15. 求100米赛跑运动员的成绩
  16. 银行系统软件测试的目的,商业银行软件缺陷管理与风险评估
  17. Vue3 + Ant Design Vue Modal 对话框可拖拽指令
  18. 06-2017.07-中兴通讯认识实习《LTE复杂项目》
  19. 23款免费web图标任你选择
  20. zcmu 暑假训练赛6 ABH题解

热门文章

  1. Coding?是不是Coder思维模式
  2. 小米智能家庭套装为什么选择ZigBee协议?
  3. python矩阵点乘和叉乘_【python笔记】1.3numpy矩阵点乘与叉乘
  4. DVWA全等级通关教程(完结)
  5. 为了保证页面输出安全,我们经常需要对一些特殊的字符进行转义,请写一个函数escapeHtml,将, , , “进行转义
  6. 自制 Windows 小工具 ———— 智能截屏工具
  7. python词频统计 生成词云
  8. C语言实训——经典小游戏马里奥开发day 1
  9. 易语言拖拽文件获取文件路径
  10. JS中的事件基础知识