freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)與i2c總線技術(shù)文檔-文庫吧資料

2025-07-19 21:52本頁面
  

【正文】 *************************************************************** I2C_clock() 。 能: 向I2C總線發(fā)送一個應(yīng)答信號ACK, 一般用于連續(xù)數(shù)據(jù)讀取時。*}/***************************************************************************** I2C_data++ 。 I2C_data =1 。 i++ ) {for ( i=0 。 ****************************************************************************/byte function I2C_receive( void ) {byte I2C_data = 0 。主函數(shù)在調(diào)用本函數(shù)之前應(yīng)保證SDA信* 能: 從I2C總線上接收8位數(shù)據(jù)信號, 并將接收到8位數(shù)據(jù)作為一個字節(jié)**}/*****************************************************************************end_for}/* 請求應(yīng)答信號ACK */SDA = HIGH 。 I2C_data = I2C_data 1 。 SDA = (bit)( I2C_data amp。 i++ ) {/* 發(fā)送8位數(shù)據(jù) */for ( i=0 。 則返回1(TRUE), 否則返回0(FALSE)。 能: 向I2C總線發(fā)送8位數(shù)據(jù), 并請求一個應(yīng)答信號ACK。*}/*****************************************************************************delay() 。sample = SDA 。SCL = HIGH 。本函數(shù)可用于數(shù)據(jù)發(fā)送, 也可用于數(shù)據(jù)接收。 能: 提供I2C總線的時鐘信號, 并返回在時鐘電平為高期間SDA 信號線上狀**}/***************************************************************************** ****************************************************************************/void function I2C_init( void ) {SCL = LOW 。在main()函數(shù)中應(yīng)首先調(diào)用本函數(shù), 然后再調(diào)用* 功 函數(shù)原型: void function I2C_init(void)。delay() 。delay() 。delay() 。****************************************************************************/void function I2C_stop( void ) {SDA = LOW 。 功 函數(shù)原型: void function I2C_stop(void)。delay() 。delay() 。delay()。 ****************************************************************************/void function I2C_start( void ) {SDA=HIGH。 能: 提供I2C總線工作時序中的起始位。*}/***************************************************************************** 指令。 功 函數(shù)原型: void function delay(void)。 = 0x97 。sbit SDASDA上的數(shù)據(jù)在時鐘高電平期間必須保持穩(wěn)定,在SCL低電平期間才可以改變,輸出到SDA 線上的每個字節(jié)必須是8位,每次傳輸?shù)淖止?jié)不受限制,每個字節(jié)必須有一個應(yīng)答位ACK,與應(yīng)答位對應(yīng)的時鐘脈沖由主控器產(chǎn)生,發(fā)送器在應(yīng)答期間必須拉低SDA線。 iic數(shù)據(jù)傳輸格式如下: 超始位被控接收器地址R/W應(yīng)答位數(shù)據(jù)應(yīng)答位、停止位在傳輸數(shù)據(jù)開始前,主控器件應(yīng)發(fā)送起始位,通知從器件做好接收準(zhǔn)備;在傳輸數(shù)據(jù)結(jié)束時,主控器件應(yīng)發(fā)送停止位,通知從器件停止接收,起始位時序:當(dāng)SCL位為高位時,SDA線由高到低的轉(zhuǎn)換。可隨時監(jiān)控內(nèi)存、硬盤、網(wǎng)絡(luò)、系統(tǒng)溫度等多個參數(shù),增加了系統(tǒng)的安全性,方便了管理。I2C 總線產(chǎn)生于在80年代,最初為音頻和視頻設(shè)備開發(fā),如今主要在服務(wù)器管理中使用,其中包括單個組件狀態(tài)的通信。在下幾期中,我們將陸續(xù)介紹51單片機(jī)綜合學(xué)習(xí)系統(tǒng)的其它功能原理與應(yīng)用。相信看到這里,你應(yīng)該可以理解我們是如何利用單片機(jī)來進(jìn)行IIC總線的讀寫操作了,你也可以根據(jù)自己的需要來寫芯片讀寫、存儲的相關(guān)程 序。圖7圖8 24C02實驗演示圖硬件原理圖圖9 硬件原理圖程序流程圖圖10 程序流程圖本程序 默認(rèn)是讀取0x02地址內(nèi)的數(shù)據(jù),讀者也可以改變地址來讀取其它空間內(nèi)的數(shù)據(jù)。本例的程序功能是利用單片機(jī)與24C02進(jìn)行I2C通信,實現(xiàn)對某一地址內(nèi)數(shù)據(jù)的讀寫校驗操作。程序功能一般輸入+5V電壓。當(dāng)該引腳為高電平時禁止寫入,當(dāng)為低電平時可正常讀寫數(shù)據(jù)。為器件地址輸入端。該引腳為開漏極驅(qū)動,可雙向傳送數(shù)據(jù)。在該引腳的上升沿時,系統(tǒng)將數(shù)據(jù)輸入到每個EEPROM器件,在下降沿時輸出。圖 6為AT24C系列芯片的封裝圖。所有字節(jié)都以單一操作方式讀取。AT24C02中帶有片內(nèi)尋址寄存器。IIC總線常用的芯片有24C024C024C024C08等,下面以目前在單片機(jī)系統(tǒng)中常用的帶I2C接口的EEPROM芯片AT24C02為例,介紹I2C器件的基本應(yīng)用,不同型號的24C芯片,只是容量大小不同,讀寫方式與基本原理幾乎一樣。24C系列存儲器的軟硬件設(shè)計實例若一個器件不需要廣播呼叫尋址中所提供的任何數(shù)據(jù),則可以忽咯該地址不作響應(yīng)。完整的數(shù) 據(jù)傳送過程如圖5所示。這個情況用從機(jī)在第一個字節(jié)后沒有產(chǎn)生響應(yīng)來表示。當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時,從機(jī)必須使數(shù) 據(jù)線保持高電平,主機(jī)然后產(chǎn)生一個停止條件終止傳輸或者產(chǎn)生重復(fù)起始條件開始新的傳輸。從器件的響應(yīng)信號結(jié)束后,SDA線返回高電平,進(jìn)入下一個傳送周期。數(shù)據(jù)傳輸必須帶響應(yīng)。響應(yīng)開始信號后,系統(tǒng)中的各個器件將自己的地址和主器件送到總線上的地址進(jìn)行比較,如果與主器件發(fā)送到總線上的地址一致,則該器件即被主器件尋址的器件,其接收信息還是發(fā)送信息則由第8位(R/W)決定。方向位為“0”表示發(fā)送,即主器件把信息寫到所選擇的從器件中;方向位為“1”表示主器件將從從器件讀信息。每個字節(jié)需要9個脈沖,每次傳送的字節(jié)數(shù)是不受限制的。I2C總線發(fā)送器送到SDA線上的每個字節(jié)必須為8位長,傳送時高位在前,低位在后。圖4 數(shù)據(jù)傳送時序圖主器件在結(jié)束信號以后退出主器件角色,經(jīng)過一段時間過,總線被認(rèn)為是空閑的。開始和結(jié)束信號都是由主器件產(chǎn)生。開始信號:當(dāng)時鐘總線SCL為高電平時,數(shù)據(jù)線SDA由高電平向低電平跳變,開始傳送數(shù)據(jù)。I2C總線的傳輸協(xié)議與數(shù)據(jù)傳送起始和停止條件在數(shù)據(jù)傳送過程中,必須確認(rèn)數(shù)據(jù)傳送的開始和結(jié)束。這樣就在SCL線上產(chǎn)生一個同步時鐘。當(dāng)所有器件的時鐘信號都變?yōu)楦唠娖綍r,低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時開始它們的高電平期。SCL線上由高電平到低電平的跳 變將影響到這些器件,一旦某個器件的時鐘信號變?yōu)榈碗娖剑瑢⑹筍CL線上所有器件開始并保護(hù)低電平期。I2C總線上數(shù)據(jù)的傳輸速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s 在快速模式下可達(dá)400kbit/s 。SDA 和SCL 都是雙向線路,都通過一個電流源或上拉電阻連接到電源端。I2C總線的控制完全由掛在總線上的主器件送出 的地址和數(shù)據(jù)決定,在總線上,既沒有中心機(jī)也沒有優(yōu)先級。當(dāng)某個器件向總線上發(fā)送信息時,它就是發(fā)送器(也叫主器件),而當(dāng)其從總線上接收信息時,又成為接收器(也叫從器 件)。數(shù)據(jù)只能在主、從器件中傳送,結(jié)束后,主、從器件將釋放總線,退出主、從器件角色。I2C總線允許連接多個微控制器,顯然不能同時存在兩個主器件,先控制總線的器件成為主器件,這就是總線競爭。一般來講,任何器件均可以成為從器件,只有微控制器才能稱為主器件。主器件的功能是啟動在總線上傳送數(shù)據(jù),并產(chǎn)生時鐘脈沖,以允許與被尋址的器件進(jìn)行數(shù)據(jù)傳送。I2C總 線接口電路如下圖2所示。CPU發(fā)出的控制信號分為地址碼和控制量(數(shù)據(jù))兩部分,地址碼用來選址, 即接通需要控制的電路,確定控制的種類;控制量決定該調(diào)整的類別及需要調(diào)整的量。CPU可以通過指令對各功能模塊進(jìn)行控制。系 統(tǒng)中各個器件都具有唯一的地址,各器件之間通過尋址確定數(shù)據(jù)接收方??偩€按照一定的通信協(xié)議進(jìn)行數(shù)據(jù)交換。協(xié)議允許總線接入多個器件,并支持多主工作。目前Philips公司和其它集成電路制造商推出了很多基于I2C總線的外圍器件。I2C總線,是INTERINTEGRATEDCIRCUITBUS的縮寫,即“內(nèi)部集成電路總線”。I2C總線基本概念在很多電子設(shè)備中都有要隨時存取數(shù)據(jù)作為歷史記錄或標(biāo)志位。先看一下我們將要使用的51單片機(jī)綜合學(xué)習(xí)系統(tǒng)能完成哪些實驗與產(chǎn)品開發(fā)工作:分別有流水燈,數(shù)碼管顯示,液晶顯示,按鍵開關(guān),蜂鳴器奏 樂,繼電器控制,IIC總線,SPI總線,PS/2實驗,AD模數(shù)轉(zhuǎn)換,光耦實驗,串口通信,紅外線遙控,無線遙控,溫度傳感,步進(jìn)電機(jī)控制等等。 當(dāng)然,也可以進(jìn)行頁寫(PAGE WRITE),即一次性連續(xù)寫8個字節(jié),但采用頁寫方式時每個字節(jié)后要有一個應(yīng)答信號。 READ:PUSH 0EH CLR LCALL BSTART ;START MOV A,0A0H ;SEND THE CNOTROL BYTE LCALL SENDBYTE LCALL ACK MOV A,R1 ;SEND THE ADDRESS LCALL SENDBYTE LCALL ACK LCALL BSTART ;START MOV A,0A1H ;SEND THE CNOTROL BYTE LCALL SENDBYTE LCALL ACK LCALL READBYTE LCALL BSTO
點擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1