电压、电流、功率是表征电信号能量大小的三个基本参量。在电子电路中,只要测量出其中一个参量就可以根据电路的阻抗求出其它二个参量。考虑到测量的方便性、安全性、准确性等因素,几乎都用测量电压的方法来测定表征电信号能量大小的三个基本参量。此外,许多参数,例如频率特性、谐波失真度、调制度等都可视为电压的派生量。所以电压的测量是其它许多电参量,也包括非电量测量的基础。

功能描述

1、采用51单片机做为主控制器;

2、采用ADC0832模数转换芯片测量电压值;

3、采用四位数码管进行显示;

4、测量量程为0~5V,精度到0.02V;

整体方案

硬件电路设计由6个部分组成:A/D转换电路、单片机、显示器、时钟电路、复位电路以及测量电压输入电路。

电路设计

采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。

单片机管脚说明:

P0端口(P0.0-P0.7):P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口,用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。P3口同时为闪烁编程和编程校验接收一些控制信号。

VCC(40):供电电压,其工作电压为5V。
GND(20):接地。

RST(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个引脚保持高电平,51芯片便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。

ALE/PROG (30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,则置位无效。

PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指令期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。

XTAL1(19):来自反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2(18):来自反向振荡器的输出。

EA/VPP(31):当EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V的编程电源(VPP)。

仿真设计

采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

程序设计

unsigned char adc0832(unsigned char CH)
{unsigned char i,test,adval;adval = 0x00;test = 0x00;Clk = 0;       //初始化DATI = 1;_nop_();CS = 0;_nop_();Clk = 1;_nop_();if ( CH == 0x00 )      //通道选择{Clk = 0;DATI = 1;      //通道0的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 0;      //通道0的第二位_nop_();Clk = 1;_nop_();} else{Clk = 0;DATI = 1;      //通道1的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 1;      //通道1的第二位_nop_();Clk = 1;_nop_();}Clk = 0;DATI = 1;for( i = 0;i < 8;i++ )      //读取前8位的值{_nop_();adval <<= 1;Clk = 1;_nop_();Clk = 0;if (DATO)adval |= 0x01;elseadval |= 0x00;}for (i = 0; i < 8; i++)      //读取后8位的值{test >>= 1;if (DATO)test |= 0x80;else test |= 0x00;_nop_();Clk = 1;_nop_();Clk = 0;}if (adval == test)      //比较前8位与后8位的值,如果不相同舍去。若一直出现显示为零,请将该行去掉dat = test;nop_();CS = 1;        //释放ADC0832DATO = 1;Clk = 1;return dat;
}

源文件获取

关注公众号【电子开发圈】,首页回复“电压”获取;

基于51单片机的电压检测系统设计(#0412)相关推荐

  1. 基于51单片机的废气检测I2Cproteus仿真

    目录 文章目录 前言 二.设计步骤 1.proteus设计 2.keil5代码编程设计 总结 前言 前段时间高中同学让我帮忙给她做一个数电课设,反正也没事做就随便做了做,现在总结一下,话不多说直接上效 ...

  2. 基于51单片机酒精浓度检测报警系统

    具体实现功能 由STC89C51单片机+MQ-3酒精传感器+ADC0832模块+LCD1602模块+报警模块+电源构成. 具体功能: 1.LCD1602实时显示酒精浓度: 2.可以按键设置报警值,实现 ...

  3. 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解)

    文章目录 资料下载(可点击) 功能说明 仿真图 复位电路 晶振电路 程序 原理图: 设计报告: 器件清单: 基于51单片机甲醛浓度检测系统仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altiu ...

  4. matlab ds18b20 单片机,基于51单片机ds18b20温度检测————设计报告.doc

    基于51单片机ds18b20温度检测----设计报告 课程名称: 微机原理课程设计 题 目: 温度检测课程设计 摘要 随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为 ...

  5. 基于51单片机的温度检测报警系统

    目录 具体实现功能 设计背景 硬件设计 软件设计 原理图 程序 仿真实现 全部资料 具体实现功能 系统由STC89C51单片机+液晶1602显示+DS18B20温度传感器+按键模块+报警模块构成. 具 ...

  6. 实物设计|基于51单片机的温湿度检测报警系统

    目录 具体实现功能: 设计介绍 51单片机简介 设计方案 资料内容 原理图和PCB(AD19) 仿真实现(protues8.7) 程序(Keil5) 全部资料(压缩文件) 具体实现功能: 由STC89 ...

  7. 步进电机的计算机控制系统设计,基于.51单片机的步进电机控制系统设计.doc

    基于51单片机的步进电机控制系统设计 中文摘要 步进电机是一种受,并且能将相应的或者的电动机.由于步进电机具有步距误差不积累.运行可靠.结构简单.惯性小.成本低等优点,因此,被广泛使用于计算机外围电路 ...

  8. 基于51单片机多路温度检测proteus仿真 ds18b20

    本设计是基于51单片机多路温度检测proteus仿真_ds18b20(仿真+程序+原理图) 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:C0042 ...

  9. 基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告)

    本设计: 基于51单片机的火灾检测设计(仿真+程序+原理图+论文报告) Proteus仿真版本:proteus7.8 原理图:Altium Designer 程序编译器:keil 4 编程语言:C语言 ...

最新文章

  1. 便利vector_C++面试题之list和vector的区别
  2. Cs231n课堂内容记录-Lecture 5 卷积神经网络介绍
  3. 关于使用indexedDB的本地存储(2)
  4. Apollo进阶课程㊳丨Apollo平台的快速入门
  5. pyDes vs pycrypto
  6. 启动菜单(Boot Menu)快捷键列表
  7. 不推荐使用getResources()。getColor()[重复]
  8. 计算机打出音乐小樱,《火影忍者》插曲——小樱主题曲
  9. 有关PHP的可变函数
  10. itools苹果录屏大师_如何录制ZOOM视频会议?实用的录屏软件
  11. 跳步游戏2--返回最小跳步数
  12. 如何打造高质量的网页内容呢?
  13. 【测开实战】adb+python自动化刷快手/抖音视频来赚金币
  14. DOS下Debug工具使用
  15. excel切片器联动
  16. Oracle-第4章 单行函数
  17. 简谈python正则表达式
  18. 1-SII--SharedPreferences完美封装
  19. 【计算机网络】HTTP协议中post和get的区别
  20. 无为第一中2021高考成绩查询,2017无为多个中学发布高考成绩喜报!

热门文章

  1. Ubuntu18.04重启后无法进入图形化界面
  2. 移动桌面到其他盘:C盘不够用,如何【修改桌面存储位置】
  3. [转]Android开源项目收藏分享
  4. 前端-表格英文单词不换行问题
  5. 《Get Started with WebRTC》文档学习
  6. Oracle SQL的多表查询 看这一篇文章就够了~
  7. 中断系统的相关知识(五)(外部中断)
  8. 处理器排行_2020新电脑处理器排行榜
  9. Spring概述及IOC(控制反转) Part I
  10. 圣诞节购物季:我们可以花加密货币购买礼物