成人做爰黄A片免费视频网站野外,成人免费看片APP下载,成人做爰A片免费看黄冈白狐影院,成人做爰黄级A片免费看土方,成人做爰A片AAA毛真人,成人做爰A片免费看网站性晶

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開(kāi)發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開(kāi)發(fā)工具

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

PIC16F7x 單片機(jī)和 I2C master mode

更新時(shí)間: 2019-03-23
閱讀量:2848

十年專注單片機(jī)方案開(kāi)發(fā)的方案公司英銳恩,分享PIC16F7x 單片機(jī)和 I2C master mode。英銳恩現(xiàn)提供服務(wù)產(chǎn)品涉及主控芯片:8位單片機(jī)、16位單片機(jī)、32位單片機(jī)及各類運(yùn)算放大器等。

#define SCL TRISC3 //I2c數(shù)據(jù)通訊頻率口

#define SDA TRISC4 //I2c數(shù)據(jù)通訊數(shù)據(jù)口

//================================================================================================= //i2c操作 部分 /*八個(gè)子程序組成 i2c 基本操作單元 等待子程序 delay_4us() 啟動(dòng)i2c總線 start_i2c() 關(guān)閉i2c總線 stop_i2c() 發(fā)送應(yīng)答位 send_ack() 發(fā)送單字節(jié) send_byte() 接收單字節(jié) receive_byte() i2c多字節(jié)讀 read_i2c(uchar sla,uchar suba,uchar *s,uchar no) i2c多字節(jié)寫(xiě) write_i2c(uchar sla,uchar suba,uchar *s,uchar s_add,uchar no) */ /*------------------------------------------------------------------------------ 等待4us */

delay_4us() {uchar i;i=4; while(i--){;}} /*------------------------------------------------------------------------------

起動(dòng)總線函數(shù)啟動(dòng)波形

SDA

SCL

*/

void start_i2c() { SDA=1; delay_4us(); SCL=1; delay_4us(); SDA=0; delay_4us(); SCL=0; delay_4us(); }

/*--------------------------------------------------------------------------------- 停止總線函數(shù)函數(shù)原型: void stop_i2c(); Function: stop the I2C bus */ void stop_i2c() {

SDA=0; //發(fā)送結(jié)束條件的數(shù)據(jù)信號(hào) delay_4us();

SCL=1; delay_4us(); SDA=1; delay_4us(); }

/*--------------------------------------------------------------------------------- 發(fā)送ACK 函數(shù)原型: void send_ack(); Function: */ void send_ack() { SDA=0;//發(fā)送ack信號(hào) delay_4us(); SCL=1;//鉗住I2C總線,準(zhǔn)備發(fā)送數(shù)據(jù)或接收數(shù)據(jù) delay_4us(); SCL=0; }

/*--------------------------------------------------------------------------------- 字節(jié)數(shù)據(jù)傳送函數(shù)函數(shù)原型: void send_byte(uchar c); Function: 將數(shù)據(jù)C發(fā)送出去,可以是地址,也可以是數(shù)據(jù),發(fā)完后等待回應(yīng),并對(duì)此狀態(tài)位進(jìn)行操作(不應(yīng)答或非應(yīng)答都使ack=0 ),發(fā)送數(shù)據(jù)正常,ack=1;ack=0 表示被控器無(wú)應(yīng)答或損壞。 */ void send_byte(uchar c) { uchar bit_count; for (bit_count=0;bit_count<8;bit_count++) { if ((c<<bit_count)&0x80) {sda="1;}" scl="1;">

SDA=1; delay_4us();

SCL=1; delay_4us();

if (RC4==1) ack=0; else ack=1; //用ACK=1為有應(yīng)答信號(hào) SCL=0; delay_4us();

}

/* 字節(jié)數(shù)據(jù)接收函數(shù)函數(shù)原型:uchar receive_byte(); FUNCTION: 用來(lái)接收從器件傳來(lái)的數(shù)據(jù),并判斷總線錯(cuò)誤(不發(fā)應(yīng)答信號(hào)),發(fā)完后請(qǐng)用應(yīng)答函數(shù)。 ===================================================================*/ uchar receive_byte() { uchar retc,bit_count; retc=0;

SDA=1; for(bit_count=0;bit_count<8;bit_count++) { delay_4us(); SCL=0; delay_4us(); SCL=1; delay_4us(); retc=retc<<1; if (RC4==1)retc=retc+1; delay_4us(); } SCL=0; delay_4us(); return (retc); }

/*-----------------------------------------------------------------------------

*/ write_i2c(uchar sla,uchar suba,uchar *s,uchar s_add,uchar no) { uchar i; no=no+s_add; start_i2c(); //啟動(dòng)i2c總線 send_byte(sla); //發(fā)送寫(xiě)命令和器件地址 send_byte(suba); //發(fā)送數(shù)據(jù)地址 s=s+s_add; for(i=s_add;i<no;i++)>

*/

read_i2c(uchar sla,uchar suba,uchar *s,uchar no) { uchar i; start_i2c(); //啟動(dòng)i2c總線 send_byte(sla); //發(fā)送寫(xiě)命令和器件地址 send_byte(suba); //發(fā)送數(shù)據(jù)地址 start_i2c(); //重新啟動(dòng)總線。 send_byte(sla+1); //發(fā)送讀命令和器件地址DEVICE ADDRESS。 *s=receive_byte(); //讀當(dāng)前地址數(shù)據(jù) for(i=1;i<no;i++) *s="receive_byte();">

} //i2c操作部分結(jié)束 //=================================================================================================

(文源網(wǎng)絡(luò),侵刪)

欢迎光临: 宁德市| 安丘市| 三都| 平乐县| 建昌县| 马鞍山市| 会昌县| 宣威市| 东辽县| 新乡市| 平泉县| 井冈山市| 大英县| 灯塔市| 鹤壁市| 资中县| 双柏县| 西吉县| 扎兰屯市| 龙门县| 泾源县| 封丘县| 沙坪坝区| 肃南| 澳门| 三都| 沙河市| 苏尼特右旗| 沂南县| 巴中市| 乐业县| 澄江县| 蒲江县| 香河县| 肥乡县| 拉孜县| 陆丰市| 和平县| 宜黄县| 永安市| 南靖县|