基于51单片机的数字电压表(PCF8591)(Proteus仿真+程序)

news2024/11/18 7:35:58

编号:32

基于51单片机的数字电压表(PCF8591)

功能描述:

        本设计由51单片机最小系统+PCF8591模块+四路模拟量输入模块+一路DA输出+液晶1602显示模块
1、主控制器是89C82单片机。
2、PCF8591模数转换器进行A/D转换,读取四路电压数据,电压检测范围0-5V 精度(8位);实现一路数模转换(D/A)输出电压范围0-5V(8位)。
3、利用四个个电位器模拟 模拟量输入,D/A输出电压。
3、液晶1602显示四路电压值。

Proteus7.8以上版本均可使用

视频演示链接:

32、基于51单片机的数字电压表(PCF8591)

仿真图:

程序源码:

#include "reg52.h"
#include "LCD1602.h"
#include "delay.h"
#include "PCF8591.h"


void main(void)
{
	
	unsigned char BUF[4];              	//接收数据缓存区 

	unsigned int Voltage0 = 0;
	unsigned int Voltage1 = 0;
	unsigned int Voltage2 = 0;
	unsigned int Voltage3 = 0;
	
	Lcd1602_Init();		  //LCD1602液晶初始化
	Lcd1602_String(0,0,"             ");
	Lcd1602_String(0,1,"             ");
	while(1)
	{			
		PCF8591_DAC(PCF8591_DAC,128);
		BUF[0] = PCF8591_Read_ADC(PCF8591_ADC_Channel0);//ADC0 模数转换
		BUF[1] = PCF8591_Read_ADC(PCF8591_ADC_Channel1);//ADC1 模数转换
		BUF[2] = PCF8591_Read_ADC(PCF8591_ADC_Channel2);//ADC2 模数转换
		BUF[3] = PCF8591_Read_ADC(PCF8591_ADC_Channel3);//ADC3 模数转换
			
		Voltage0 = (long)BUF[0] * 500/ 255;  //转换为电压值
		Voltage1 = (long)BUF[1] * 500/ 255;  //转换为电压值
		Voltage2 = (long)BUF[2] * 500/ 255;  //转换为电压值
		Voltage3 = (long)BUF[3] * 500/ 255;  //转换为电压值

		Lcd1602_String(0,0,"V0:");	  		//显示电压
		Lcd1602_Write_Data(Voltage0/100+0x30);
		Lcd1602_Write_Data('.');
		Lcd1602_Write_Data(Voltage0%100/10+0x30);
		Lcd1602_Write_Data(Voltage0%100%10+0x30);


		Lcd1602_String(8,0,"V1:");	  		//显示电压
		Lcd1602_Write_Data(Voltage1/100+0x30);
		Lcd1602_Write_Data('.');
		Lcd1602_Write_Data(Voltage1%100/10+0x30);
		Lcd1602_Write_Data(Voltage1%100%10+0x30);


		Lcd1602_String(0,1,"V2:");	  		//显示电压
		Lcd1602_Write_Data(Voltage2/100+0x30);
		Lcd1602_Write_Data('.');
		Lcd1602_Write_Data(Voltage2%100/10+0x30);
		Lcd1602_Write_Data(Voltage2%100%10+0x30);


		Lcd1602_String(8,1,"V3:");	  		//显示电压
		Lcd1602_Write_Data(Voltage3/100+0x30);
		Lcd1602_Write_Data('.');
		Lcd1602_Write_Data(Voltage3%100/10+0x30);
		Lcd1602_Write_Data(Voltage3%100%10+0x30);

		delay_ms(100);


	}
}

软件免费下载地址:

1、Proteus仿真软件
文件内容:Proteus7.8安装包、Proteus8.6安装包、Proteus.8.10安装包、Proteus Professional 8.11 SP0安装包

链接:https://pan.baidu.com/s/11LNUZ9BJXWvXf1C4dPc3_w 
提取码:2756 

2、KEIL4 C51软件安装包

链接:https://pan.baidu.com/s/1CTZBqDsPsyIbjCIjI_birA 
提取码:sy2a 

文件下载:

https://pan.baidu.com/s/1VQnVV2sl2etj209QY5QQQA?pwd=gsrr

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/128608.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java中常见的文件操作

作者:~小明学编程 文章专栏:JavaEE 格言:热爱编程的,终将被编程所厚爱。 目录 操作文件 File类 属性 构造方法 常见方法 重要方法的操作演示 文件内容的读写 FileInputStream OutputStream 按照字符读入 按照字符写入…

『分分钟玩转VueRouter●中』少开一把王者荣耀掌握VueRouter的基本使用

文章目录一、编程式路由导航二、缓存路由组件三、两个新的声明周期钩子四、路由守卫五、路由器的两种工作模式本篇博客会介绍Vue中的VueRouter的基本使用,编程式路由导航增加了我们进行路由跳转的灵活性,缓存路由组件保障了我们使用路由时的便捷性&#…

【高阶数据结构】搜索二叉树 经典习题讲解

🌈欢迎来到数据结构专栏~~搜索二叉树 (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是Scort目前状态:大三非科班啃C中🌍博客主页:张小姐的猫~江湖背景快上车🚘,握好方向盘跟我有一起打天下嘞!送给自己的一句…

【OpenFOAM】-olaFlow-算例6- waveFloatingObject

算例路径: olaFlow\tutorials\waveFloatingObject 算例描述: 波浪作用下的浮体的刚体运动,属于流固耦合(FSI)问题 学习目标: 动网格设置和使用,网格变形控制,浮体的物理参数设置&…

23种设计模式(二)——享元模式【对象性能】

文章目录意图什么时候使用享元享元模式的实现内部状态和外部状态享元模式的优缺点与其他模式的关系亦称: 缓存、Cache、Flyweight 意图 享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相…

数图互通房产管理系统架构分析

数图互通高校房产管理系统V5.0 使用JAVA、Canvas、H5等技术开发的图形数据交互技术架构平台;本系统满足XX大学房屋管理系统需求,高校房产综合管理信息系统平台V5.0遵循高校房产“分级授权、分类管理、网络化、图形化、精细化、流程化”的管理理念&#x…

关于新冠的几点总结

关于新冠的几点总结一、前言:二、病程阶段1. 第一阶段 反复发热2. 第二极端 退烧虚弱3. 第三阶段 咳嗽嗜睡三、处置措施:1. 思想准备2. 药/物准备3. 退烧方式4. 保持体温5. 通则不痛,痛则不通6. 营养补充7. 恢复关键期写在最后一、前言: 所写内容,为个人…

磊科路由器后门蜜罐捕获的事件分布情况

重点物联网 漏洞利用情况本节我们选取了两个漏洞进行分析。UPnP 相关的漏洞我们将在 4.4.3 进行分析,除去 UPnP 相关漏 洞外,被利用最多的是 Eir D1000 路由器的一个漏洞 [44](CVE-2016-10372),我们将对其进行分析。 …

Apollo浅解2

目录 用户、角色、权限 三者间的关系 权限Permission 新增一个应用时 新增一个命名空间时 角色Role 新增一个应用时 新增一个命名空间时 第三方应用 用户、角色、权限 三者间的关系 apollo也采用经典的三层权限设计,用户关联角色,角色关联权限…

DOM基础

一、DOM的概念 文档对象模型(DOM,Document Object Module)是W3C组织推荐的处理可扩展标志语言的标准编程接口,它允许程序和脚本动态的访问和更新文档的内容、结构和样式。 HTML的DOM操作是将文档里所有的内容(包括标签、标签里的内容、标签属性甚至注释等)都当做一…

51单片机入门 第一篇:LED灯

文章目录前言一、LED原理图二、创建keil5工程三、代码的编写四、程序的烧录总结前言 本篇文章讲正式带大家开始学习51单片机,希望这些文章能够很好的帮助到大家学习51单片机。 一、LED原理图 一般的51单片机上都带有8个LED灯,这里8个LED灯分别接到了板…

JS逆向——工信部ICP、IP、域名信息备案管理平台

问题:(1)数据列表接口token参数验证(2)authKey参数加密生成 1、页面中请求接口,观察请求头可发现,校验参数token为加密的字符串,根据该字符串并不能直观得到所用的加密方式是什么。 …

数据库大小写不敏感后,值也不敏感了

现象:我有一个账号admin,结果莫名多了一个ADMIN、Admin、AdMin等一些列账号;细品你的密码就算密文签名,是不是在你不知情的情况下也有很多。 原因:数据库安装的时候设置的大小写不敏感导致 解决:建议第三…

Spark 的学习笔记

Spark 的学习笔记 文章目录Spark 的学习笔记1. 概述Spark 优势及特点优秀的数据模型和丰富计算抽象Spark 生态圈Spark 特点Spark 与 HadoopSpark与MRSpark Streaming与StormSpark SQL与HiveSpark 运行模式2. 快速入门使用 Spark Shell 进行交互式分析基础Dataset 上的更多操作缓…

【机器学习】LDA算法原理

问题 线性判别分析(Linear Discriminant Analysis,LDA)是机器学习中常用的降维方法之一,本文旨在介绍LDA算法的思想,其数学推导过程可能会稍作简化。 LDA的思想 ● LDA是一种线性的、有监督的降维方法,即…

销售流程标准化重要吗?

各行各业都存在销售,但并不是每个销售都可以成为优秀的销售,优秀的销售往往有一套完整的销售流程,为了保证销售新人销售工作的顺利进行,销售流程标准化很有必要。 前言 各行各业都存在销售,但并不是每个销售都可以成为…

前端面试题之计算机网络篇--WebSocket基本使用

WebSocket 普通的包的请求和响应过程 1. 对 WebSocket 的理解 WebSocket是HTML5提供的一种浏览器与服务器进行全双工通讯的网络技术,属于应用层协议。它基于TCP传输协议,并复用HTTP的握手通道。浏览器和服务器只需要完成一次握手,两者之间…

HDLBits练习汇总-13-时序逻辑设计测试--状态机(一)

简单摩尔状态机1(Fsm1) 是一个摩尔状态机,具有两种状态,一种输入,一种输出。实现此状态机。请注意,重置状态为 B。使用异步复位。 模块声明 module top_module(input clk,input areset, // Asynchrono…

基础数学复习(3)——曲线拟合

文章目录基础概念曲线拟合的流程极小化损失函数线性最小二乘超定方程组的最小二乘解(必考)例题(必考)使用法方程计算拟合方程使用最小二乘法求解总结基础概念 曲线拟合的流程 选取函数类选取参数的准则:极小化损失函…

实习-------数据库基础

检索数据 1、如果使用DISTINCT关键字,它必须直接放在列名的前面。不能部分使用DISTINCT,DISTINCT关键字应用于所有列而不仅是前置它的列 例如:SELECT DISTINCT vend_id告诉MySQL只返回不同(唯一)的vend_id行 2、带一…