00_了解PCF8591
????蓝桥杯的PCF8591是ADC/DAC驱动芯片,大家一定熟看手册,因为考试的时候是没有书籍和程序参考的,只能看手册来编写。 PCF8591芯片手册
01_PCF8591手册主要部分解读
????上图是fixed part 为PCF8591的器件地址,固定为0x90,后面A2-A0为可编程部分,在蓝桥杯比赛中可以不用管,因为给的单片机开发板是固定为000,如下图;所以我只用关心R/|W来实现读写。由芯片手册可以看出来,R/|W位为高电平时是读操作,低电平时是写操作。
控制字节
????控制字节一共八位,主要用来控制A/D and D/A 转换,选择所输入输出的通道,别的作用在竞赛中大可不必了解,也没必要。我们得秉承一个原则,“有用的我们学,没用的就只看看”。从左往右,我把各位编号为D1-D8,从下图可以看出,D1和D5被固定设置为0,所以现在我们只用关心没有被固定设置的部分。
02_程序部分
ADC部分程序
unsigned char PCF8591_ADC(void){
unsigned char temp;
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x03);
IIC_WaitAck();
IIC_Start();
IIC_SendByte(0x91);
IIC_WaitAck();
temp = IIC_RecByte();
IIC_SendAck(1);
IIC_Stop();
return temp;
}
DAC部分程序
void PCF8591_DAC(unsigned char dac){
IIC_Start();
IIC_SendByte(0x90);
IIC_WaitAck();
IIC_SendByte(0x43);
IIC_WaitAck();
IIC_SendByte(dac);
IIC_WaitAck();
IIC_Stop();
}
03_总结
????蓝桥杯中,对PCF8591的考察不难,我们只用知道器件地址,通道设置,读写设置等主要部分,其他的位只用了解即可。除此之外,我们最重要的还是要了解IIC的工作流程,才能学会如何调用函数。大家动手做一遍吧!
|