无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

解析PCF8591的IIC信號

2023-05-19 06:57 作者:e小白官方  | 我要投稿

e小白網(wǎng)址:www.e-xiaobai.com

1.PCF8591模塊原理圖及引腳定義


2.PCF8591的IIC通訊地址

模塊上A2,A1,A0都連接GND,那么PCF8591的地址/寫是0X90,地址/讀是0x91。

3.PCF8591的控制字節(jié)


由此可知,讀取1通道的AD值的控制字節(jié)為0x41or0x01;DA輸出的控制字節(jié)為0x4?(此時(shí)“?”可以表示0,1,2,3,因?yàn)槭荄A輸出與AD輸入無關(guān),一般直接寫0x40即可)

4.PCF8591的讀時(shí)序


5.PCF8591的寫時(shí)序

6.代碼

6.1讀AD

//channel可取0x00,0x01,0x02,0x03或0x40,0x41,0x42,0x43

u8 ADCconversion(u8 channel)

{

? ?u8 data;

? ?PCF8591_IIC_Start(); ? ?//發(fā)送IIC開始信號

? ?PCF8591_IIC_Send_Byte(0x90); ? ?//IIC發(fā)送一個(gè)字節(jié)

? ?PCF8591_IIC_Wait_Ack();

? ?PCF8591_IIC_Send_Byte(channel);

? ?PCF8591_IIC_Wait_Ack();

PCF8591_IIC_Start();

? ?PCF8591_IIC_Send_Byte(0x91);

? ?PCF8591_IIC_Wait_Ack();

data=PCF8591_IIC_Read_Byte(0);? ? ? //IIC讀取一個(gè)字節(jié)

? ?PCF8591_IIC_Stop(); ? ? ?//發(fā)送IIC停止信號

return(data);

}

下圖為邏輯分析儀解析的IIC讀時(shí)序(channel的值為0x03):

其中,0XB0為讀取到的AD值,轉(zhuǎn)化為10進(jìn)制為176,與OLED顯示的數(shù)字一致。

6.2寫DA

//DA?

//V的范圍是0-5

void DACconversion(float V)

{

float a;

a=(u8)(V*255/5);

? ?PCF8591_IIC_Start(); ? ?//發(fā)送IIC開始信號

? ?PCF8591_IIC_Send_Byte(0x90); ? ?//IIC發(fā)送一個(gè)字節(jié)

? ?PCF8591_IIC_Wait_Ack();

? ?PCF8591_IIC_Send_Byte(0x40);

? ?PCF8591_IIC_Wait_Ack();

? ?PCF8591_IIC_Send_Byte(a);

? ?PCF8591_IIC_Wait_Ack();

? ?PCF8591_IIC_Stop(); ? ? ?//發(fā)送IIC停止信號

}

下圖為邏輯分析儀解析的IIC寫時(shí)序(V為3.5):

其中,0XB2為輸出電壓的數(shù)字值。


解析PCF8591的IIC信號的評論 (共 條)

分享到微博請遵守國家法律
搜索| 西畴县| 南开区| 绥滨县| 理塘县| 偏关县| 宝鸡市| 宜川县| 阳山县| 榕江县| 瑞丽市| 镇康县| 新建县| 铜山县| 岱山县| 濉溪县| 铜鼓县| 依安县| 突泉县| 天津市| 蕲春县| 连江县| 东丰县| 呼和浩特市| 安岳县| 商水县| 蚌埠市| 运城市| 疏勒县| 遂宁市| 龙泉市| 桃园市| 龙川县| 山阴县| 海淀区| 易门县| 广灵县| 德钦县| 平利县| 宁乡县| 天津市|