SCL_Output(0); delay1(DELAY_TIME); SDA_Output_Mode();2.代码
void iic_24c02_write(unsigned char* buff,unsigned char ucAddr, unsigned char num) { I2CStart(); I2CSendByte(0xa0); I2CWaitAck(); I2CSendByte(ucAddr); I2CWaitAck(); while(num--) { I2CSendByte(*buff++); I2CWaitAck(); } I2CStop(); delay1(500); } void iic_24c02_read(unsigned char* buff,unsigned char ucAddr, unsigned char num) { I2CStart(); I2CSendByte(0xa0); I2CWaitAck(); I2CSendByte(ucAddr); I2CWaitAck(); I2CStart(); I2CSendByte(0xa1); I2CWaitAck(); while(num--) { *buff++ = I2CReceiveByte(); if (num) I2CSendAck(); else I2CSendNotAck(); } I2CStop(); } void write_Msp4017(unsigned value) { I2CStart(); I2CSendByte(0x5E); I2CWaitAck(); I2CSendByte(value); I2CWaitAck(); I2CStop(); } unsigned char read_Msp4017() { unsigned char value; I2CStart(); I2CSendByte(0x5F); I2CWaitAck(); value = I2CReceiveByte(); I2CSendNotAck(); I2CStop(); return value; }3.应用
unsigned char Buff_24c02_write[5] = {0x01,0x02,0x03,0x04,0x05};//IIC要写入的数据 unsigned char Buff_24c02_read[5]; //读数据放的位置 I2CInit(); //初始化 iic_24c02_write(Buff_24c02_write,0,5); //写入Buff_24c02_write中的数据到E2PROM,从0个位置开始写,写入5个数据 iic_24c02_read(Buff_24c02_read,0,5); //从E2PROM里读数据到Buff_24c02_read中 write_Msp4017(0x77); //将可编程电阻设置成0x77 res = read_Msp4017(); //读取可编程电阻的值,转换为真实值需要乘以0.78744.注意事项(重要)
在定义要写入的数据的时候定义可成十六进制方便读写,在屏幕上显示的时候可用%x
函数iic_24c02_write(Buff_24c02_write,0,5);和iic_24c02_read(Buff_24c02_read,0,5);之间如果挨着写,需要delay一毫秒的时间,否则会出错,如果没有挨着写,则根据距离远近来判断是否需要delay,一般隔得远就不用delay,因为中间执行的其他函数就相当于是delay了。
在我写的LCD显示函数中我不是一直去扫描LCD而是隔一段时间去扫描一次,具体见下面代码:
void Lcd_Func() { if (uwTick - Lcd_Delay_uwTick < 417) return; Lcd_Delay_uwTick = uwTick; iic_24c02_read(Buff_24c02_read,0,5); sprintf((char *)Lcd_Disp_arr," %x,%x,%x,%x,%x ",Buff_24c02_read[0],Buff_24c02_read[1],Buff_24c02_read[2],Buff_24c02_read[3],Buff_24c02_read[4]); LCD_DisplayStringLine(Line0, Lcd_Disp_arr); }
TMD这里的扫描时间不能小于417,否者显示出来的数组不止之前定义的5个数,后面还有ff这个鬼,但是可以在后面加空格给它挤出去解决问题,但是扫描时间如果大于417的话也不会出现这个问题。所以最好LCD扫描时间在500往上。
可编程电阻里面是分为127小份的,由上图可得
故在由读取值转换为真实值的过程需要乘以100000/127=0.78740
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)