<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 帶RTC的I2C總線(xiàn)鐵電存儲器FM31256的設計

帶RTC的I2C總線(xiàn)鐵電存儲器FM31256的設計

作者: 時(shí)間:2018-08-28 來(lái)源:網(wǎng)絡(luò ) 收藏

本文引用地址:http://dyxdggzs.com/article/201808/387851.htm

P5OUT |=RTC_SCL;// SCL=1

delay(IIC_DELAY);

P5OUT =~ RTC_SCL;// SCL=0}

void _Send_noAck( void ) {/*不應答程序*/

P5OUT |=RTC_SCL;// SCL=1

delay(IIC_DELAY);

P5OUT =~ RTC_SCL;// SCL=0}

說(shuō)明:SCL線(xiàn)是高電平時(shí),SDA線(xiàn)從高電平向低電平切換,表示起始條件;當SCL是高電平時(shí),SDA線(xiàn)由低電平向高電平切換,表示停止條件。相關(guān)的確認時(shí)鐘脈沖由主機產(chǎn)生,在確認的時(shí)鐘脈沖器件發(fā)送方釋放SDA(高電平),在此期間接收方須將SDA拉低。

void _transfByte_to_IIC( unsigned char tran_byte ) {/* CPU字節發(fā)送程序*/

unsigned char i , current_bit =0x80;

P5OUT =~ RTC_SCL;

delay(IIC_DELAY);

for( i=0; i =7; i++ ) {

if ( tran_byte current_bit )

P6OUT |= RTC_SDA;

else

P6OUT =~ RTC_SDA;

current_bit >>=1;

delay(IIC_DELAY);

P5OUT |=RTC_SCL;//SCL=1

delay(IIC_DELAY);

P5OUT =~ RTC_SCL;//SCL=0

delay(IIC_DELAY);

}

}

unsigned char FM31256_receByte_from_IIC( void ){/*CPU字節接收程序*/

unsigned char mvalue, i, rece_data =0;

P6DIR =~ RTC_SDA;//設置為輸入方向

P5OUT =~ RTC_SCL; //SCL=0

delay(IIC_DELAY);

for(i=0;i8;i++) {

rece_data = rece_data1;

P5OUT |=RTC_SCL;//SCL=1

delay(IIC_DELAY);

mvalue = P6IN RTC_SDA;//當前位的值

if( mvalue )//接收位為高

rece_data = rece_data | 0x01;

else//接收位為低

rece_data = rece_data 0xFE;

P5OUT =~ RTC_SCL;//SCL=0

delay(IIC_DELAY);

}

P6DIR |=RTC_SDA;//P6.6輸出

return(rece_data);//返回收到的字節

}

說(shuō)明:發(fā)送到SDA線(xiàn)上的每個(gè)字節須為8位。tran_byte為CPU要發(fā)送的字節,CPU讀入的數據存儲在rece_data中。對FM31256存儲器可以直接對當前地址進(jìn)行“讀”操作,也可以連續“讀/寫(xiě)”多個(gè)字節而無(wú)須逐一指定地址。依據上述一般步驟,對存儲器的訪(fǎng)問(wèn)操作可歸納為3種基本操作: ① 設置當前操作目標地址; ② 寫(xiě)入數據; ③ 讀出數據。

訪(fǎng)問(wèn)存儲器操作有多種,如內存“寫(xiě)”、當前地址或順序連續“讀”和隨機地址“讀”操作。在控制程序中,需要向FM31256內存中寫(xiě)入并讀出給定參數、故障信息等數據。內存讀/寫(xiě)的方法如下:

內存寫(xiě)操作,首先由CPU發(fā)送從機地址,然后是內存16位地址,主機通過(guò)設置從機地址字節的最低位為0聲明一個(gè)寫(xiě)操作;接收應答信號后,CPU向FM31256發(fā)送數據的每個(gè)字節,之后器件又產(chǎn)生應答信號,任何數量的連續字節可以被寫(xiě)入,以停止信號結束傳輸。有兩種類(lèi)型的讀操作:當前地址讀操作和隨機地址讀操作。讀操作同樣先由CPU發(fā)送從機地址,主機通過(guò)設置從機地址字節的最低位為1聲明一個(gè)讀操作。當要進(jìn)行隨機讀操作時(shí),還要在讀取數據之前,發(fā)送16位內存地址之后讀取任意個(gè)字節,每個(gè)字節后應跟隨應答信號,以停止信號結束傳輸。

在電磁鑄軋電源控制裝置的主控程序中,還將調用時(shí)鐘刷新函數Flash_time()、時(shí)鐘寫(xiě)入函數Write_time()、寄存器寫(xiě)入函數Register_write()和寄存器讀出函數Register_read()。

啟動(dòng)RTC和WatchDog的流程圖如圖4所示。

圖4 啟動(dòng)RTC和WatchDog的流程圖

結語(yǔ)

將鐵電存儲器用于電磁鑄軋電源控制裝置中,與MSP430系列單片機相結合,充分發(fā)揮了其強大的功能;同時(shí)取代了傳統的EEPROM和實(shí)時(shí)時(shí)鐘芯片,既降低了硬件成本,又簡(jiǎn)化了軟件設計。


上一頁(yè) 1 2 3 下一頁(yè)

關(guān)鍵詞: FM31256 MSP430單片機

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>