AD转换(IIC总线)

本文介绍了一个项目,通过PCF8591的AN2口接收到0~5V的模拟电压,经过AD转换后,利用IIC总线由单片机读取并量化数据,最终在LCD1602显示器上实时展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目描述:
在PCF8591的AN2口输入一个模拟的电压值(可变电位器控制),电压范围为0 ~ 5V;经过AD转换后,单片机通过IIC总线将数据读取出来,并将其量化,实时显示在LCD1602上。
仿真原理图:
参考上一篇博客ADC仿真原理图
C语言代码如下:

/*------------------------
FileName: ADC.h
Function: 头文件
Author: Zhang Kaizhou
Date: 2019-6-13 12:13:20
------------------------*/
#include <reg52.h>
#include <intrins.h>
#include <string.h>
#define uchar unsigned char
#define uint unsigned int
#define FACTOR 0.01953125 // 量化单位(用一个字节来量化表示5V的电压值,共为256个量化等级; FACTOR = 5 / 256)
	
/*IIC总线端口定义*/
sbit SDA = P2^0;
sbit SCL = P2^1;

/*LCD1602显示模块端口定义*/
sbit lcdrs = P1^0;
sbit lcdrw = P1^1;
sbit lcden = P1^2;

/*IIC总线模块函数声明*/
void initIIC();
void startIIC();
void responseIIC();
void stopIIC();
void writeDataIIC(uchar dat);
void readDataIIC(uchar * dat);

/*ADC模块函数声明*/
void readData8591(uchar channel, uchar * dat);

/*LCD1602显示模块函数声明*/
void 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值