项目描述:
在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