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

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

编号: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)

仿真图:

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

程序源码:

#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文章来源地址https://www.toymoban.com/news/detail-447288.html

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

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

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

相关文章

  • 51单片机_电压采集器&电压表

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

    2024年01月19日
    浏览(54)
  • 单片机——C51实验含Proteus仿真(AD转换器(数字电压表),DA转换器(波形发生器))

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

    2024年02月08日
    浏览(50)
  • 基于STM32的简易数字电压表仿真设计

    本设计 基于STM32的数字电压表仿真设计(仿真+程序+设计报告+讲解) 仿真图proteus 8.9 程序编译器:keil 5 编程语言:C语言 设计编号:C0080 结合实际情况,基于STM32F103单片机设计一个数字电压表仿真设计。该设计应满足的功能要求为: 1、以STM32单片机为控制核心设计数字电压表

    2024年02月07日
    浏览(41)
  • 基于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单片机的数字时钟设计

    目录 一、总体概述 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)
  • 基于51单片机的数字温度计【开源】

    (1)温度实时显示(LCD2864) (2)温度上限下线调节 (3)万年历功能 (4)超温报警 (5)年月日时分秒可调节 (6)温度测量精度0.0625℃ (7)节日自动判定 STC89c52,DS18B20,DS1302,按键模块。LCD12864 main.c LCD12864.c ( 主要一些延时和LCD12864的驱动) LCD12864.h (主要一些函数的声

    2024年02月10日
    浏览(46)
  • 122、仿真-基于51单片机的电量监测电压电流和温度报警系统设计(Proteus仿真+程序+流程图+配套资料等)

    方案选择 单片机的选择 方案一:STM32系列单片机控制,该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也就是说代码量可以写到128k字

    2024年02月16日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包