基于51单片机数字电压表仿真设计

您所在的位置:网站首页 电压表基本原理图片 基于51单片机数字电压表仿真设计

基于51单片机数字电压表仿真设计

2024-01-15 15:48| 来源: 网络整理| 查看: 265

基于51单片机数字电压表仿真设计_LCD显示(仿真+程序+原理图+PCB+设计报告+讲解)

原理图:Altium Designer

仿真版本:proteus 7.8

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0006

51单片机数字电压表仿真设计_LCD显示(仿真+程序+原理图+PCB+设计报告+讲解) 讲解视频1 功能要求:2 仿真图:3 原理图:4 PCB:5 程序设计:6 设计报告:7 资料清单 &&下载链接:

讲解视频

基于51单片机数字电压表仿真设计

1 功能要求:

芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

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

2、此次设计的是数字电压表,要求的电压范围是0~5v。

3、系统设计主要包括四个部分:

分别是电源模块、AD模数转换部分、51单片机最小系统部分、数码管显示部分。

首先由单片机初始化ADC0809模数转换芯片和共阴数码管显示,当外接被测电压后,ADC0809将模拟电压信号转换为数字信号输入到单片机的I/O口,通过单片机处理后将电压的大小显示在LCD1602液晶上面。

仿真51单片机芯片是通用的,AT89C51,AT89C52都是51单片机的具体型号,内核是兼容的。原理图不变的情况下,主控芯片可以替换成STC89C52/STC89C51/AT89C52/AT89C51/8051等51单片机芯片。

2 仿真图:

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602显示当前的电压值,通过调整滑动变阻器的阻值大小改变测量的电压值。

img

3 原理图:

AD绘制的。

img

元器件清单

CommentDescriptionDesignatorFootprintQuantity10uF电容C1EC-100130pF电容C2, C3CAP-10025V2P排针J1SIP2120R电阻R1RES-200122K电阻R2, R3, R4, R5, R6, R7, R8, R9RES-20081K排阻RP1SIP31AT89C51单片机U1DIP401ADC0809数模转换U2DIP281LCD1602液晶U3SIP16112M晶振Y1XTAL-2001 4 PCB:

img

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

5 程序设计:

可使用Keil4/5打开工程文件,程序有关键注释结合视频理解。

img

//:数字电压表 ** //:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。 ** #include"includes.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 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()); } } } //>>>>>> //> //>>>>>> void t0() interrupt 1 { if(uc_Clock==0) { uc_Clock=5; b_DATransform=1; } else uc_Clock--; TH0=TIME0H; //恢复定时器0。 TL0=TIME0L; } 6 设计报告:

该系统由延时子函数、LCD1602液晶忙检测子函数、LCD1602液晶写命令/写数据子函数、汉字显示子函数、LCD1602液晶显示字符串子函数、LCD1602液晶初始化子函数、ADC0809转换子函数、主函数和数据定义这几部分组成。

img

7 资料清单 &&下载链接:

0.常见使用问题及解决方法–必读!!!!

1、源程序

2、仿真

3、原理图

4、PCB图

5、开题报告

6、设计报告

7、元器件清单

9、硬件框图

10、讲解视频

Altium Designer 安装破解

filename.bat

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

目录清单.txt

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

资料清单

资料下载链接(可点击):



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3