日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]用c語言實(shí)現(xiàn)24LC256讀寫(非軟件模擬方式)#include unsignedCHARi=0; unsignedCHARreceive=0x00; void i2c_start() { SEN=1;//啟動(dòng) do{ }while(SSPIF==0); SSPIF=0; } void i2c_stop() { PEN=1;//

用c語言實(shí)現(xiàn)24LC256讀寫(非軟件模擬方式)

#include
unsignedCHARi=0;
unsignedCHARreceive=0x00;

void i2c_start()
{
SEN=1;//啟動(dòng)
do{
}while(SSPIF==0);
SSPIF=0;
}

void i2c_stop()
{
PEN=1;//產(chǎn)生停止條件
do{
;
}while(SSPIF==0);
SSPIF=0;
}

void i2c_restart()
{
RSEN=1;//啟動(dòng),反復(fù)啟動(dòng)
do{
;
}while(SSPIF==0);
SSPIF=0;
}

void i2c_dataout()//數(shù)據(jù)發(fā)送等待過程
{
do{
;
}while(SSPIF==0);
SSPIF=0;
}

void i2c_datain()//讀取24LC256時(shí),不是讀的最后一個(gè)字節(jié)時(shí)使用
{
RCEN=1;
do{
;
}while(SSPIF==0);
SSPIF=0;
receive=SSPBUF;
ACKDT=0;
ACKEN=1;
do{
;
}while(SSPIF==0);
SSPIF=0;
}

void i2c_datainlast()//讀取最后一個(gè)字節(jié),或只讀取24LC256中一個(gè)字節(jié)
{
SSPIF=0;
RCEN=1;
do{
;
}while(SSPIF==0);
SSPIF=0;
receive=SSPBUF;
ACKDT=1 ;
ACKEN=1;
do{
;
}while(SSPIF==0);
SSPIF=0;

}

void i2c_error()
{
i2c_stop();
return;
}

void write(unsigned int addr,unsignedCHARdata,unsigned int n)//向iic寫入一字節(jié)數(shù)據(jù) 地址,數(shù)據(jù),字節(jié)個(gè)數(shù)
{
i2c_start();
SSPBUF=0xA0;//EEPROM尋址碼和寫操作命令碼
i2c_dataout(); //發(fā)送

if(ACKSTAT)
i2c_error();//無應(yīng)答,錯(cuò)誤!
else if(!ACKSTAT)
SSPBUF=addr/256;
//高eeaddr/256,取EEPROM數(shù)據(jù)地址高字節(jié)
i2c_dataout(); //發(fā)送

if(ACKSTAT)
i2c_error();//無應(yīng)答,錯(cuò)誤!
else if(!ACKSTAT)
SSPBUF=addr%256;//低eeaddr%256 ,取EEPROM數(shù)據(jù)地址低字節(jié)
i2c_dataout(); //發(fā)送

for(i=0;i{
if(ACKSTAT)//應(yīng)答
i2c_error();//無應(yīng)答,錯(cuò)誤!
else if(!ACKSTAT)
SSPBUF=data;//eedata入EEPROM的數(shù)據(jù)
i2c_dataout();//發(fā)送
}

if(ACKSTAT)//應(yīng)答
i2c_error();

i2c_stop();//產(chǎn)生停止位,啟動(dòng)EEPROM內(nèi)部些過程

do{
i2c_start();
SSPBUF=0xA0;
i2c_dataout();
i2c_stop();
if(!ACKSTAT)break;
}while(ACKSTAT);
}

unsigned int current_read(void)//current address read ok!
{
i2c_start();
SSPBUF=0xA1;//尋址命令碼0xA0 和 讀命令
i2c_dataout();
if(ACKSTAT)//應(yīng)答
i2c_error();
else if(!ACKSTAT)
i2c_datainlast();
i2c_stop();

return ((unsigned int)receive);
}

unsigned int random_read(unsigned intEEPROMaddress)
{
i2c_start();
SSPBUF=0xA0;//EEPROM尋址碼和寫操作命令碼
i2c_dataout(); //發(fā)送

if(ACKSTAT)
i2c_error();//無應(yīng)答,錯(cuò)誤!
else if(!ACKSTAT)
SSPBUF=EEPROMaddress/256;
//高eeaddr/256,取EEPROM數(shù)據(jù)地址高字節(jié)
i2c_dataout(); //發(fā)送

if(ACKSTAT)
i2c_error();//無應(yīng)答,錯(cuò)誤!
else if(!ACKSTAT)
SSPBUF=EEPROMaddress%256;//低eeaddr%256 ,取EEPROM數(shù)據(jù)地址低字節(jié)
i2c_dataout(); //發(fā)送

if(ACKSTAT)
i2c_error();//無應(yīng)答,錯(cuò)誤!
else if(!ACKSTAT)

i2c_restart();
SSPBUF=0xA1;//尋址命令碼0xA0 和 讀命令
i2c_dataout();

if(ACKSTAT)//應(yīng)答
i2c_error();
else if(!ACKSTAT)
i2c_datainlast();
i2c_stop();
return ((unsigned int)receive);

}

void i2c_init()
{
SSPSTAT=0x00;
TRISC=0xD8;
SSPADD=19;
SSPIE=0;
SSPCON=0x28;
}


//在主程序中,先i2c_init();然后開始讀/寫24LC256中數(shù)據(jù),經(jīng)多次運(yùn)行
no bug
//程序中的寄存器必須芯片內(nèi)部包含,否則無法實(shí)現(xiàn)硬件iic讀寫。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

pic單片機(jī)應(yīng)用很多,生活中到處都有pic單片機(jī)的身影。小編個(gè)人也是從事pic單片機(jī)開發(fā)的人員之一,對(duì)于pic單片機(jī)有一定的理解。今天,小編將帶領(lǐng)大家一起看一下pic單片所具備的8大優(yōu)勢(shì)。

關(guān)鍵字: pic 單片機(jī) 寄存器

SpiceJet 成為首家借力Q400客機(jī)提升盈利潛力的航空公司 加拿大多倫多, Sept. 24, 2018 (GLOBE NEWSWIRE) -- Bombardier Commercial

關(guān)鍵字: pic ce

什么是PIC單片機(jī)?你知道多少?時(shí)代的變遷,PIC單片機(jī)是這個(gè)時(shí)代的新寵。之前我們對(duì)pic單片機(jī)的I/O接口進(jìn)行過闡述,不是很詳細(xì)。本期對(duì)關(guān)于PIC單片機(jī)的各種內(nèi)部硬件資源加以介紹,以幫助大家全面掌握pic單片機(jī)打下夯實(shí)...

關(guān)鍵字: pic 單片機(jī) 電路

pic單片機(jī)具備很多應(yīng)用,對(duì)于pic單片機(jī),想必大家并不陌生。往期文章中,小編對(duì)pic單片機(jī)做過諸多介紹。本文中,小編將為大家?guī)?個(gè)pic單片機(jī)問題,并予以解答。而在之后的pic單片機(jī)文章中,小編將帶來另外6個(gè)問題。如...

關(guān)鍵字: pic pic單片機(jī) 單片機(jī) 指數(shù)

對(duì)于c編譯器,大家應(yīng)早已熟悉。往期文章中,小編帶來諸多c編譯器相關(guān)文章,尤其是gcc c編譯器。本文中,小編將對(duì)gcc c編譯器如何編譯c程序予以介紹,并在文章的后半部分向大家講解如果選擇pic單片機(jī)的c編譯器。如果你對(duì)...

關(guān)鍵字: c編譯器 gcc pic 指數(shù)

?2020年2月13日,北京——是德科技宣布,該公司即將與國家信息光電子創(chuàng)新中心(NOEIC)和CompoundTek展開合作,三方攜手建立光子集成電路(PIC)自動(dòng)化測(cè)試的布局設(shè)計(jì)標(biāo)準(zhǔn)。

關(guān)鍵字: pic 自動(dòng)化測(cè)試 fdr

?Microchip PIC18-Q43系列產(chǎn)品將更多的獨(dú)立于內(nèi)核的外設(shè)(CIP)及功能豐富的開發(fā)工具生態(tài)系統(tǒng)相結(jié)合,可改善實(shí)時(shí)控制和互聯(lián)應(yīng)用的設(shè)計(jì)

關(guān)鍵字: MCU pic cip

還有一個(gè)問題也是值得注意的,就是在中斷服務(wù)程序中避免打開全局中斷允許位,因?yàn)镻IC單片機(jī)不支持中斷嵌套,否則在執(zhí)行一個(gè)中斷服務(wù)程序還未結(jié)束就進(jìn)入另一個(gè)中斷服務(wù)程序后,上一個(gè)中斷的現(xiàn)場(chǎng)參數(shù)將遭到破壞,從而導(dǎo)致程序產(chǎn)生不可預(yù)...

關(guān)鍵字: pic 單片機(jī) 電源技術(shù)解析

Pic單片機(jī)的學(xué)習(xí)是存在一定難度的,一是因?yàn)楸仨毦邆湟欢ǖ膒ic單片機(jī)基礎(chǔ)知識(shí),二是需對(duì)pic單片機(jī)的所有引腳等有一定的了解。這篇文章是小編在學(xué)習(xí)pic單片機(jī)寫的一篇比較適合pic單片機(jī)初入門朋友閱讀的文章,一起了解下吧...

關(guān)鍵字: pic pic單片機(jī) 單片機(jī)

Microchip Technology Inc.(美國微芯科技公司)今日宣布推出最新版本的統(tǒng)一軟件框架MPLAB® Harmony 3.0(v3),首次為SAM MCU提供支持。

關(guān)鍵字: Microchip pic am單片機(jī)
關(guān)閉