蓝桥杯单片机
PCF8591是拥有IIC接口的8位A/D和D/A转换芯片,具备4路模拟输入、1路DAC输出和一个IIC接口。其设备地址包含固定和可编程部分,通过硬件引脚A0、A1、A2设置,最后一位用于确定数据传输方向,即读/写位。1表示读取,0表示写入。
在蓝桥杯单片机板上,固定通道有01和03。
IIC总线由SDA数据线和SCK时钟线组成,两者高电平时,任一器件输出低电平会使总线信号变低。所有具有IIC接口的设备都有唯一地址,称为设备地址。
IIC所有函数的操作流程包括主设备访问从设备的通用过程:当主设备希望向从设备发送数据时,主发送器发送START条件并寻址从接收器,然后发送数据,最后以STOP条件终止传输。若主设备想要从从设备读取数据,则需发送START条件并寻址从接收器,接收器发送请求读取的寄存器,主接收器从从发送器接收数据,最后以STOP条件中止传输。
PCF8591的模块代码以A/D转换01通道的光敏电阻为例进行编写。
AT24C02是2kBit的串行EEPROM存储器,包含256字节。具有8字节的页写缓冲器。其容量为2kBit,地址分为写地址和读地址,写地址为0xa0,读地址为0xa1。芯片寻址范围为00~FF,共256个寻址单位。
AT24C02的读写操作分为写操作和读操作。写操作实现数据的写入,读操作则用于随机读取数据。
编写AT24C02的读写模块代码包括写模块和读模块。
练习题目要求在CT107D综合训练平台上,利用提供的IIC底层驱动代码实现以下功能:在系统上电后,通过采样PCF8591通道1中光敏电阻RD1的实时数据,并根据该数据控制8个LED灯的亮灭情况。灯光控制分为5个等级,分别对应不同光照数据范围,LED灯点亮情况与等级相对应。灯光控制等级和光敏数据实时显示在数码管上,并提供按键操作功能,以实现数据的存储和读取。
核心代码部分包括基础的底层驱动编写,如有需要,可联系我获取代码。相关代码如有错误,欢迎各位大佬指出并提供修正建议。共同进步,共享知识,也欢迎关注微信公众号:Danny的学习日常记录,获取更多源程序资源。
多重随机标签