【蓝桥杯单片机程序开发|蓝桥杯单片机——PCF8591 ADC/DAC模块】本篇讲的单片机是第十一届蓝桥杯单片机实训的硬件设备。
蓝桥杯单片机硬件基础
PCF8591电路图:
文章图片
PCF8591是具有IIC总线接口的8位A/D及D/A转换器,有4路A/D转换输入,1路D/A模拟输出,信息传输仅靠时钟线SCL和数据线SDA就可以实现。
模拟电压输入电路图:
文章图片
硬件上旋动Rb2旋钮,即可改变模拟电压的输入值。
光强电阻电压输入电路图:
文章图片
光敏电阻值的改变,影响该模拟电压通道的输入值。
ADC/DAC模块驱动配置
- PCF8591采用IIC总线接口器件寻址方法,器件地址和引脚地址如下:
文章图片
可知写入的第一个字节为0x90; - 控制字节格式配置如下:
文章图片
因此,模拟电压控制字为0x43;光敏电阻电压输入控制字为0x41;
相关代码编写:
- ADC读取函数
u8 ADC(u8 channal)
{
u8 dat;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x40+ch);
IIC_WaitAck();
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
dat = IIC_RecByte();
IIC_SendAck(1);
//不应答
IIC_Stop();
return dat;
}
- DAC输出函数(电压输出)
void DAC(u8 dat)
{
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x43);
IIC_WaitAck();
IIC_SendByte(dat);
IIC_WaitAck();
IIC_Stop();
Delay5ms();
}
函数的使用方法,这里就不展示了,欢迎提问和咨询 ~
推荐阅读
- 蓝桥杯模块|蓝桥杯单片机模块代码(PCF8591)(代码+注释)
- 蓝桥杯单片机|蓝桥杯单片机 | 特训案例【进阶04】24C02存储按键触发次数
- 蓝桥杯单片机|蓝桥杯单片机 | 特训案例【进阶05】采样光敏电阻与可调电阻的电压
- 蓝桥杯单片机|蓝桥杯单片机 | 特训案例【进阶06】基于PCF8591的DAC模拟电压输出
- 蓝桥杯单片机|蓝桥杯单片机-DAC-用板载板载PCF8591芯片在D/A引脚上输出指定的电压
- 蓝桥杯单片机|蓝桥杯单片机-ADC-A/D转换-测量PCF8591中AIN1通道(光敏电阻RD1)的电压
- stm32|STM32F4定时器CH3和CH4通道进行PWM捕获问题
- 笔记|使用STM32cubemx进行定时器单多路pwm输入捕获
- 计算机网络|计算机网络---物理层实验