毕设 您所在的位置:网站首页 电压表在电路中是什么 毕设

毕设

2023-08-22 22:32| 来源: 网络整理| 查看: 265

目录 基于51单片机数字电压表的设计1、PCB原理图2、Proteus 仿真图3、设计目标3.1、基本功能3.2、主要技术参数 4、总设计框图5、硬件设计分析5.1、电源的设计5.2、单片机最小系统5.3、模数转换 6、软件设计的组成7、元件清单8、程序源码9、资源获取

注:本毕设资源可在微信公众号:“Kevin的学习站” 中获取!

基于51单片机数字电压表的设计 1、PCB原理图

2、Proteus 仿真图

3、设计目标 3.1、基本功能

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

3.2、主要技术参数

测量电压范围:0v至5v

A/D转换器:ADC0809(8位模数转换器)。

显示方式: LCD1602液晶

4、总设计框图

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

以AT89C51单片机为核心,起着控制作用。系统包括LCD1602液晶显示电路、复位电路、时钟电路、模数转换电路电路。设计思路分为五个模块:复位电路、晶振电路模块、AT89C51、LCD1602液晶显示电路、模数转换器电路这五个模块。

5、硬件设计分析 5.1、电源的设计

系统电源使用直流5伏。

由电脑USB接口提供电源。

USB是通用串行总线(Universal Serial Bus)接口的简称。它是目前使用比较广泛的电脑接口之一,主要版本有1.0、1.1和最新的2.0三种版本。根据USB总线的工业标准,它可以提供额定功率为5V/500mA的电源供USB设备使用。

5.2、单片机最小系统

51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片内集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机内包含以下几个部件:

一个8位CPU;一个片内振荡器及时钟电路;

4KB的ROM程序存储器;

一个128B的RAM数据存储器;

寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路;

32条可编程的I/O口线;

两个16位定时/计数器;

一个可编程全双工串行口;

5个中断源、两个优先级嵌套中断结构。

如图2-2-1所示为AT89C51单片机基本构造,其基本性能介绍如下: AT89C51本身内含40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中端口,3个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,但不可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

AT89C51的主要特性如下表所示:

兼容MCS—51指令系统32个可编程I/O线4k字节可编程闪烁存储器可编程UARL通道三个16位可编程定时/计数器中断时钟频率0-24MHz2个外部中断源,共8个中断源256×8bit内部RAM2个读写中断口线可直接驱动LED软件设置睡眠和唤醒功能低功耗空闲和掉电模式

单片机最小系统原理图

单片机最小系统说明:

时钟信号的产生:在MCS-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟振荡电路。

时钟电路产生的振荡脉冲经过触发器进行二分频之后,才成为单片机的时钟脉冲信号。

一般地,电容C2和C3取30pF左右,晶体的振荡频率范围是1.2-12MHz。如果晶体振荡频率高,则系统的时钟频率也高,单片机的运行速度也就快。

单片机复位使CPU和系统中的其他功能部件都处在一个确定的初始状态下,并从这个状态开始工作。单片机复位条件:必须使9脚加上持续两个机器周期(即24个振荡周期)的高电平。

5.3、模数转换

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式AD转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

(1)主要特性:

1)8路输入通道,2位A/D转换器,即分辨率为8位。    2)具有转换起停控制端。    3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)     4)单个+5V电源供电    5)模拟输入电压范围0~+5V,不需零点和满刻度校准。    6)工作温度范围为-40~+85摄氏度    7)低功耗,约15mW。

(2)模数转换电路

6、软件设计的组成

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

7、元件清单

8、程序源码 //:数字电压表 //:使用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; } 9、资源获取

项目的仿真和PCB工程已经放在下面公众号里面,可以关注公众号:Kevin的学习站,输入关键字:“数字电压表”,就可以免费获取啦!创作不易,但您的点赞、关注、收藏就是对我最大的鼓励! 在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有