找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 9910|回复: 19
收起左侧

51单片机数字电压表毕业设计(论文)下载 含仿真 PCB文件 原理图 源代码

  [复制链接]
ID:192529 发表于 2017-4-22 23:04 | 显示全部楼层 |阅读模式
51单片机做的数字电压表设计, 包含有word格式的可编辑的毕业论文和仿真等非常详细的资料.
0.png

毕业论文的目录
前  言    1
第一章  工作原理    2
1.1设计目标    2
1.1.1基本功能    2
1.1.2主要技术参数    2
1.2设计原理    2
第二章  硬件设计与原理    3
2.1 总设计框图    3
2.2 硬件设计分析    3
2.2.1 电源的设计    3
2.2.2 单片机最小系统    4
2.2.3 显示系统    10
2.2.4 模数转换    10
第三章  软件设计与分析    13
3.1 软件设计的组成    13
3.2  源程序    15
第四章  软件仿真    24
4.1 PROTEUS简介    24
4.2仿真图    26
4.3原理图    27
4.4 元件清单    28
总结    29
致  谢    30
参考文献    31
0.png
0.png

数字电压表的原理图和pcb工程文件:
0.png

数字电压表proteus仿真原理图:
0.png
0.png

数字电压表元件清单:
元件参数 元件序号 元件名称
1K RP1 电位器
5V J1 电源接口
10uF C1 铝电解电容器
12M Y1 晶振
20 R1 电阻
22K R7 电阻
22K R6 电阻
22K R9 电阻
22K R8 电阻
22K R5 电阻
22K R2 电阻
22K R3 电阻
22K R4 电阻
30pF C2 瓷片电容器
30pF C3 瓷片电容器
ADC0809 U2 模数转换芯片
AT89C51 U1 51单片机芯片
LCD1602 U3 液晶

1.1.1基本功能
利用51单片机作为主控芯片,模拟量输入范围直流0v-5v。模拟量经A/D(ADC0809)模数转换芯片,把模拟量转换为数字量输入到单片机的P0口,再由单片机控制LCD1602液晶显示模拟量输入的电压值。

1.1.2主要技术参数
测量电压范围:0v至5v
A/D转换器:ADC0809(8位模数转换器)。
显示方式: LCD1602液晶

1.2设计原理
此次设计的是数字电压表,要求的电压范围是0~5v。系统设计主要包括四个部分:分别是电源模块、AD模数转换部分、51单片机最小系统部分、数码管显示部分。首先由单片机初始化ADC0809模数转换芯片和共阴数码管显示,当外接被测电压后,ADC0809将模拟电压信号转换为数字信号输入到单片机的I/O口,通过单片机处理后将电压的大小显示在LCD1602液晶上面。

单片机源程序:
  1. //<程序名>:数字电压表
  2. //<功能>:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。                                                                         **
  3. #include"includes.h"
  4. #define TIME0H 0x3C
  5. #define TIME0L 0xB0
  6. uchar uc_Clock=0;                //定时器0中断计数
  7. bit b_DATransform=0;
  8. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  9. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把电压显示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  10. //<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  11. void vShowVoltage(uint uiNumber)
  12. {
  13.         uchar ucaNumber[3],ucCount;
  14.         if(uiNumber>999)                                       
  15.                 uiNumber=999;
  16.         ucaNumber[0]=uiNumber/100;                                                                //把计算数字的每个位存入数组。
  17.         ucaNumber[1]=(uiNumber-100*(int)ucaNumber[0])/10;                                                        
  18.         ucaNumber[2]=uiNumber-100*(int)ucaNumber[0]-10*ucaNumber[1];
  19.         for(ucCount=0;ucCount<3;ucCount++)
  20.         {
  21.                 vShowOneChar(ucaNumber[ucCount]+48);                                //从首位到末位逐一输出。
  22.                 if(ucCount==0)
  23.                         vShowOneChar('.');
  24.         }
  25. }
  26. //*************************************************************************************************
  27. //*                                                                                                                                                                                                  *
  28. //*                          ********************************主函数******************************                                  *
  29. //*                                                                                                                                                                                                  *
  30. //*************************************************************************************************
  31. void main()
  32. {
  33.         TMOD=0x01;                        //定时器0,模式1。
  34.         TH0=TIME0H;
  35.         TL0=TIME0L;
  36.         TR0=1;                                //启动定时器。
  37.         ET0=1;                                //开定时器中断。
  38.         EA=1;                                //开总中断
  39.         vdInitialize();
  40.         vWriteCMD(0x84);           //写入显示起始地址(第一行第4个位置)
  41.         vShowChar("voltage");
  42.         vWriteCMD(0xC9);     
  43.         vShowChar("(V)");
  44.         while(1)
  45.         {
  46.                 if(b_DATransform==1)
  47.                 {
  48.                         b_DATransform=0;
  49.                         vWriteCMD(0xC4);


  50. …………限于本文篇幅 余下代码请从51黑电子论坛下载附件…………
复制代码

所有资料下载:
51 digital voltmeter design.zip (1.07 MB, 下载次数: 667)
回复

使用道具 举报

ID:137767 发表于 2017-4-23 06:52 | 显示全部楼层
谢谢分享。
回复

使用道具 举报

ID:306850 发表于 2018-5-12 11:13 | 显示全部楼层
需要啊 谢谢!
回复

使用道具 举报

ID:278026 发表于 2018-5-12 12:58 | 显示全部楼层
非常好
回复

使用道具 举报

ID:359465 发表于 2018-6-26 16:19 | 显示全部楼层
感谢楼主 提供了非常大的帮助
回复

使用道具 举报

ID:359465 发表于 2018-6-26 16:22 | 显示全部楼层
很需要 感谢楼主
回复

使用道具 举报

ID:435737 发表于 2018-11-29 18:18 | 显示全部楼层
很好用 谢谢楼主
回复

使用道具 举报

ID:435796 发表于 2018-11-30 08:52 | 显示全部楼层
好用 谢谢楼主
回复

使用道具 举报

ID:439922 发表于 2018-12-5 16:29 | 显示全部楼层
好评好评  学习用
回复

使用道具 举报

ID:438003 发表于 2018-12-5 16:29 来自手机 | 显示全部楼层
感谢分享,
回复

使用道具 举报

ID:319517 发表于 2018-12-10 23:11 | 显示全部楼层
这个可以导入protel吗?
回复

使用道具 举报

ID:532362 发表于 2019-5-10 11:45 | 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

ID:303735 发表于 2019-5-10 14:34 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:532513 发表于 2019-5-10 15:36 | 显示全部楼层
大家好 真好
回复

使用道具 举报

ID:530813 发表于 2019-5-12 18:20 来自手机 | 显示全部楼层
为啥给的hex文件和程序再编译出来的hex文件效果不一样,求解答
回复

使用道具 举报

ID:677809 发表于 2019-12-30 20:06 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:648066 发表于 2021-7-26 21:39 | 显示全部楼层
有没有人会这个实物,可支付
回复

使用道具 举报

ID:923532 发表于 2021-7-27 17:06 | 显示全部楼层
可以俩个加起来弄成0到10v吗?
回复

使用道具 举报

ID:992042 发表于 2021-12-18 21:02 | 显示全部楼层
楼主设计的太好了,学习到了很多。
回复

使用道具 举报

ID:1011897 发表于 2022-4-14 15:41 | 显示全部楼层
你好  量程怎么修改呢  我不会了  来请教一下你
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表