毕设--基于51单片机数字电压表的设计

这篇具有很好参考价值的文章主要介绍了毕设--基于51单片机数字电压表的设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

1、PCB原理图

毕设--基于51单片机数字电压表的设计

2、Proteus 仿真图

毕设--基于51单片机数字电压表的设计
毕设--基于51单片机数字电压表的设计

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液晶显示电路、模数转换器电路这五个模块。

毕设--基于51单片机数字电压表的设计

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

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

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

单片机最小系统原理图

毕设--基于51单片机数字电压表的设计
单片机最小系统说明:

时钟信号的产生:在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)模数转换电路

毕设--基于51单片机数字电压表的设计

6、软件设计的组成

该系统由延时子函数、LCD1602液晶忙检测子函数、LCD1602液晶写命令/写数据子函数、汉字显示子函数、LCD1602液晶显示字符串子函数、LCD1602液晶初始化子函数、ADC0809转换子函数、主函数和数据定义这几部分组成。
毕设--基于51单片机数字电压表的设计
毕设--基于51单片机数字电压表的设计
毕设--基于51单片机数字电压表的设计

7、元件清单

毕设--基于51单片机数字电压表的设计

8、程序源码

//<程序名>:数字电压表															
//<功能>:使用LCD显示被检测电压,精度为0.05V,范围是0~5V。							
#include"includes.h"
#define TIME0H 0x3C
#define TIME0L 0xB0
uchar uc_Clock=0;		//定时器0中断计数
bit b_DATransform=0;
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<把电压显示在LCD上>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
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());
		}
	}
}
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<定时器0中断函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
void t0() interrupt 1
{
	if(uc_Clock==0)
	{
		uc_Clock=5;
		b_DATransform=1;
	}
	else
		uc_Clock--;
	TH0=TIME0H;		   //恢复定时器0。
	TL0=TIME0L;
}

9、资源获取

毕设--基于51单片机数字电压表的设计
项目的仿真和PCB工程已经放在下面公众号里面,可以关注公众号:Kevin的学习站,输入关键字:“数字电压表”,就可以免费获取啦!创作不易,但您的点赞、关注、收藏就是对我最大的鼓励!
毕设--基于51单片机数字电压表的设计文章来源地址https://www.toymoban.com/news/detail-403447.html

到了这里,关于毕设--基于51单片机数字电压表的设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 单片机——C51实验含Proteus仿真(AD转换器(数字电压表),DA转换器(波形发生器))

    分为两部分:AD转换器实现数字电压表,DA转换器实现波形发生器(在仿真部分详细说明) 所用到的原理图:  AD转换器实现数字电压表部分         需要打开main函数中LCD_init(),ADC(),display()三个注释其中电压的输出显示用到了LCD1602关于这部分详情见(96条消息) 单片机——

    2024年02月08日
    浏览(50)
  • 51单片机_电压采集器&电压表

    实物演示效果: https://www.bilibili.com/video/BV1My4y1F7xY/?vd_source=6ff7cd03af95cd504b60511ef9373a1d         利用51单片机作为主控芯片,3段式电压采集。模拟量经A/D(ADC0809)模数转换芯片,把模拟量转换为数字量输入到单片机的P0口,再由单片机控制LCD1602液晶显示模拟量输入的电压值。

    2024年01月19日
    浏览(54)
  • 基于51单片机的电压采集(ADC0809)

    1.ADC0809简介 IN0~IN7 : 8路模拟量输入端; D0~D7:8位数字量输出端; ADDA、ADDC、ADDC:3位地址输入线,用于选择8路模拟通道中的一路; ALE:地址锁存允许信号,输入,高电平有效; START:A/D转换启动信号,输入,高电平有效; EOC:A/D转换结束信号,输出。当启动转换时,高引脚为低电

    2023年04月18日
    浏览(46)
  • 基于51单片机的电压采集(ADC0804)

    1.ADC0804简介 工作电压:+5V,即VCC=+5V。 模拟转换电压范围:0~+5V,即0≤Vin≤+5V。 分辨率:8位,即分辨率为1/(2^8)=1/256,转换值介于0~255之间。 转换时间:100us(fCK=640KHz时)。 转换误差:±1LSB。 参考电压:2.5V,即Vref/2=2.5V。 Vin(+)、Vin(-):两个模拟信号输入端,可以接

    2023年04月08日
    浏览(36)
  • 【51毕设案例】【003】篮球计分器-基于51单片机

    目录 功能介绍: 整体功能简述: 硬件框图: 软件流程图: 原理图: 仿真图: 元器件清单: 主要部分代码展示: 工程管理展示: 下载内容展示: 更详细代码视频讲解及代码下载请看B站视频: (视频置顶评论有下载链接) 1. 3位数比分 A B两队 2. 24秒倒计时,期间加分 则对

    2024年02月09日
    浏览(38)
  • 【51毕设案例】基于51单片机-定时喂食供氧智能鱼缸

    目录 功能介绍: 整体功能简述: 硬件框图: 软件流程图: 原理图: 仿真图: 元器件清单: 主要部分代码展示:void main() 工程管理展示: 下载内容展示:  更详细代码视频讲解及代码下载请看B站视频: (视频置顶评论有下载链接) 1.自动定时供氧 2.自动定时投食 3.浑浊度

    2024年02月05日
    浏览(77)
  • 毕设分享|基于51单片机DDS信号发生器设计

    在电子通信技术日益发展的时代潮流下,直接式(DFS)和锁相式(PLL)已经不能满足生活和科研方面对于频率技术的需求。经过科研人员的不断攻坚下,直接数字频率合成器(DDS)应运而生。它现在广泛运用于移动通信、电子雷达、航天等方面。本次设计主要通过FPGA模块+单片机最小

    2024年02月03日
    浏览(55)
  • 基于51单片机的数字时钟设计

    目录 一、总体概述 1、计时控制方案 2、主控制器模块 3、显示电路模块 4、调试按键模块 5、电源模块 6、闹钟声光报警模块 二、系统总体结构 1.电路图 三、系统的硬件设计与实现 1、电源电路 2、显示电路 3、单片机基本电路 4、按键电路 四、功能测试及结果分析 五、程序附

    2024年02月07日
    浏览(41)
  • 【基于51单片机的数字钟】

    掌握单片机 C 语言判断语句、分支语句以及子程序调用等编程知识 此程序调试时间方式为先暂停再调时,故有调秒的功能。 (1) 实现正确稳定地显示小时(两位数)、分钟(两位数)、秒钟(两位数),同时数 码管应无闪烁问题 (2) 通过按键分别实现时、分、秒信息的调整,方便用户

    2024年02月11日
    浏览(47)
  • 基于51单片机的数字电子钟

    目录 摘  要 1.课程设计任务 1.1课程设计题目 1.2设计的要求  2.设计总体方案 2.1初步设计方案 2.2芯片的选型 2.2.1时钟芯片的选择 2.2.2温度传感器的选择 2.2.3显示电路的选择 2.2.4输入按键的选择 2.2.5控制电路芯片的选择 2.3总体方案 3.单元模块设计 3.1显示模块 3.2按键模块 3.3蜂

    2024年02月12日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包