基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统
基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统
///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦。最近比较闲,带做毕设,带学生参加省级或以上比赛///
设计要求
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显示电压值1.84V
图中可以看出,LCD显示AD转换通道IN0电压(Voltage)的大小为1.84V,用Proteus软件自带的电压表(Volts)测量的结果为1.85V,两者偶有0.01V的偏差,属于仿真正常现象。
通过点击滑动变阻器RP2上下红色箭头,模拟被测电压值的改变(0~5V之间),LCD实时跟踪显示电压的变化。
下图为调整滑动变阻器后,LCD显示的电压值为4.25V,与Volts电压表显示结果一致。
电压测量值均为4.25V
综上所述,数字电压表Proteus仿真设计运行效果满足设计要求。
部分C代码
#include"include.h"#define TIME0H 0x3C#define TIME0L 0xB0ucharuc_Clock=0;//定时器0中断计数bitb_DATransform=0;
voidvShowVoltage(uintuiNumber){
ucharucaNumber[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('.');
}}
voidmain(){
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)参考资料;
分享如下
基于Atmel 51单片机开发平台和自动控制原理的数字电压表系统相关推荐
- MATLAB设计控制系统仿真实验,基于MATLAB的自动控制原理实验仿真系统的设计
一.引言<自动控制原理>是自动化专业的基础课程,是控制科学与工程学科的一门方法论课程,主要培养学生掌握控制系统的分析和设计方法,其内容之多,理论性之强,决定了课程学习的难度.而实验课作为课 ...
- matlab创新开放性实验,基于MATLAB 的自动控制原理实验仿真系统的设计
基于MATLAB 的自动控制原理实验仿真系统的设计 基于MATLAB 的自动控制原理实验仿真系统的设计 田晴,张茁 (河北联合大学电气工程学院,河北唐山063000) 摘要:MATLAB的图形用户界面 ...
- 【网络收录】基于51单片机开发音乐播放器
[网络收录]基于51单片机开发音乐播放器 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Thu, 22 May 2014 18:14:00 +0800 特别声明:本资料来源 ...
- 基于51单片机的指纹解锁自动开门
基于51单片机的指纹解锁自动开门 目录 基于51单片机的指纹解锁自动开门 一.设计说明 二.总体设计思路 三.系统硬件设计 四.系统软件设计 五. 实物制作与现象 七.体会 一.设计说明 指纹解锁:手 ...
- hc05与单片机连接图_基于proteus的51单片机开发实例37-DAC0832
学习手记 1. 基于proteus的51单片机开发实例37-DAC0832 1.1. 实验目的 之前我们学习了数模转换芯片DAC0808,今天我们继续学习另一种D/A转换芯片DAC0832. 1.2. ...
- hc05与单片机连接图_基于proteus的51单片机开发实例(13)-LED指示那个按键被按下
1. 基于proteus的51单片机开发实例(13)-LED指示那个按键被按下 1.1. 实验目的 本实例将实现两路外部中断的检测和识别,让我们能够更好地理解51单片机的外部中断以及中断优先级的概念. ...
- c++程序设计_基于proteus的51单片机开发实例30-模块化程序设计
1. 基于proteus的51单片机开发实例30-模块化程序设计 1.1. 实验目的 模块化程序设计 不知不觉我们的51单片机开发实例已经进行到第三十篇了,是时候进行一个总结和反思了,总结什么?反思什 ...
- c51中断优先级c语言,基于proteus的51单片机开发实例(14)中断嵌套和中断优先级...
1. 基于proteus的51单片机开发实例(14)中断嵌套和中断优先级 1.1. 实验目的 在前面实例中我们已经学习了51单片机的定时器/计数器中断,外部中断,通过这些实例,知道了中断电路的设计,中 ...
- 基于51单片机智能浇花自动浇水灌溉
基于51单片机智能浇花自动浇水灌溉(源程序+原理图+论文+实物图) 资料编号:004 功能介绍: 51单片机控制的自动浇水系统,实现室内盆花浇水的自动化系统. 该系统可对土壤的湿度进行监控,并对作物进 ...
最新文章
- SSL剥离工具sslstrip
- mysql 存储过程 invoker invoker
- 介绍KeyTool GUI工具2款
- 不会三种编程语言的不算程序员 走近阿里云 MVP烁淼吐槽大佬
- 小程序页面跳转的几个方法和区别
- 显示菜单栏_mac菜单栏不显示了,如何设置?
- java 获取字符串_详解Java String字符串获取每一个字符及常用方法
- python3学习之元组
- BestCoder Round #90 Kblack loves flag
- T-Sql(二)事务(Transaction)
- (日常搬砖)ubuntu18.04风扇断断续续响,提示 ‘GPU fan error‘
- Linux中bond的七种网卡绑定模式详解
- 数字通信计算机仿真问题汇总,燕山大学数字通信计算机仿真课设模板.doc
- java md5加密 32位 小写
- 车靓靓·微水上门洗车项目介绍
- 【哈佛公开课】积极心理学笔记-05环境的力量
- Activiti工作流之任务的运行/查询/完成
- 微软官方硬盘备份软件SyncToy
- 【基础】代码操作Word时,自动更新目录(一)
- 适合刚起步的创业项目有哪些?