版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上 協(xié)議 1、 實驗?zāi)康?、熟悉協(xié)議;2、掌握接口EEPROM的讀寫方法;3、掌握利用I/O來實現(xiàn)信令。二、實驗內(nèi)容實驗提供I2C協(xié)議庫(光盤/I2C軟件包)。將A2區(qū)的P16、P17連接D5區(qū)的SCL、SDA,短接JP1跳線。1、寫入24WC02的80H號字節(jié)地址,并讀取進行驗證;2、連續(xù)寫入24WC02的80H號字節(jié)地址開始一頁的內(nèi)容,并讀取進行驗證。三、protel電原理圖四、程序流程圖1、單字節(jié)2、頁五、匯編程序1、單字節(jié);平臺定義變量ACK BIT 10H ;應(yīng)答標志位SLA DATA 51H ;器件從地址SUBA DATA 52H ;器件子地址NUMBYTE
2、 DATA 10H ;讀寫的字節(jié)數(shù);使用前定義常量SDA EQU P1.7; I2C 總線定義SCL EQU P1.6MTD EQU 30H ;發(fā)送數(shù)據(jù)緩沖區(qū)首址 (緩沖區(qū)30H 3FH)MRD EQU 40H ;接收數(shù)據(jù)緩沖區(qū)首址緩沖區(qū) 40 4FH;定義器件地址PCF8574 EQU 40HSAA1064 EQU 70HCSI24WCXX EQU 0A0HORG 0000HAJMP MAINORG 0080HMAIN: MOV SLA, #0A0HCLR ACKMOV SUBA, #80HMOV NUMBYTE, #01HMOV A, #00HMOV P3, AMOV A, #55HPUS
3、H ACCLCALL START ;起動總線MOV A,SLALCALL WRBYTE ;發(fā)送器件從地址LCALL CACKJNB ACK,RE1 ;無應(yīng)答則跳轉(zhuǎn)MOV A,SUBALCALL WRBYTE ;發(fā)送器件子地址LCALL CACKJNB ACK,RE1 ;無應(yīng)答則跳轉(zhuǎn)POP ACC ;寫數(shù)據(jù)LCALL WRBYTELCALL CACKJNB ACK,RE11LCALL STOPSJMP MAIN2RE1:POP ACCLCALL STOPSJMP MAINRE11:LCALL STOPSJMP MAINMAIN2:LCALL START ;起動總線MOV A,SLALCALL W
4、RBYTE ;發(fā)送器件從地址LCALL CACKJNB ACK,RE2 ;無應(yīng)答則跳轉(zhuǎn)MOV A,SUBALCALL WRBYTE ;發(fā)送器件子地址LCALL CACKJNB ACK,RE2 ;無應(yīng)答則跳轉(zhuǎn)LCALL STARTMOV A,SLA ;發(fā)送器件從地址INC ALCALL WRBYTELCALL CACKJNB ACK,RE2LCALL RDBYTE ;進行讀字節(jié)操作LCALL MNACK ;發(fā)送非應(yīng)信號LCALL STOPSJMP MAIN3RE2:LCALL STOPSJMP MAIN2MAIN3:MOV P3, ASJMP $INCLUDE (VI2C_ASM.ASM) ;包
5、含VIIC 軟件包;END2、 頁;平臺定義變量ACK BIT 20H ;應(yīng)答標志位SLA DATA 50H ;器件從地址SUBA DATA 51H ;器件子地址NUMBYTE DATA 52H ;讀寫的字節(jié)數(shù);使用前定義常量SDA EQU P1.7 ; I2C 總線定義SCL EQU P1.6MTD EQU 30H ;發(fā)送數(shù)據(jù)緩沖區(qū)首址緩沖區(qū)30H3FHMRD EQU 40H ;接收數(shù)據(jù)緩沖區(qū)首址緩沖區(qū)40H4FHORG 8000H ;采用軟件調(diào)試法AJMP MAINORG 8080HMAIN: MOV R4,#0F0H ;延時等待其它芯片復(fù)位好DJNZ R4,$MOV SP,#60H ;設(shè)
6、置堆棧指針MOV 3FH,#00H ;給MTD賦值MOV 30H,#01H MOV 31H,#02H MOV 32H,#03HMOV 33H,#04HMOV 34H,#05HMOV 35H,#05HMOV 36H,#07HMOV 37H,#08HMOV 38H,#09HMOV 39H,#0AHMOV 3AH,#0BHMOV 3BH,#0CHMOV 3CH,#0DHMOV 3DH,#0EHMOV 3EH,#0FHMOV SLA,#0A0H ;設(shè)置寫的從地址MOV SUBA,#80H ;設(shè)置子地址MOV NUMBYTE,#10H ;設(shè)置字節(jié)數(shù),這里因為讀寫一頁字節(jié),所以為10H(16)LCALL
7、IWRNBYTE ;調(diào)用寫EEPROM程序MOV A,#01HLCALL IRDNBYTE ;調(diào)用讀EEPROM程序MOV A,#33H;$INCLUDE (VI2C_ASM.ASM) ;I2C軟件包;END6、 實驗記錄1、第一個實驗程序運行完成后,打開“memory window”,在查詢欄輸入所要查看的地址空間。輸入發(fā)送緩沖區(qū)首地址“D:30H”,該地址處顯示的數(shù)據(jù)為“55”;輸入接收緩沖區(qū)首地址“D:40H”,該地址處顯示的數(shù)據(jù)為“55”。2、第二個實驗程序運行完成后,同樣使用“memory window”查看發(fā)送、接收緩沖區(qū)內(nèi)的數(shù)據(jù)。D:30HD:3FH中儲存的數(shù)據(jù)為“00 01 0
8、2 . 0E 0F”;D:40HD:4FH中儲存的數(shù)據(jù)同樣是“00 01 02 . 0E 0F”。7、 實驗分析 1、協(xié)議的基本工作原理如下:以啟動信號START來掌管總線,以停止信號STOP來釋放總線; 每次通訊以START開始,以STOP結(jié)束; 啟動信號START后緊接著發(fā)送一個地址字節(jié),其中7位為被控器件的地址碼,一位為讀/寫控制位R/W,R/W位為0表示由主控向被控器件寫數(shù)據(jù),R/W為1表示由主控向被控器件讀數(shù)據(jù);當被控器件檢測到收到的地址與自己的地址相同時,在第9個時鐘期間反饋應(yīng)答信號 每個數(shù)據(jù)字節(jié)在傳送時都是高位(MSB)在前。協(xié)議通訊過程分為寫通訊和讀通訊兩部分,其過程如下。寫通
9、訊過程:(1)主控在檢測到總線空閑的狀況下,首先發(fā)送一個START信號掌管總線;(2)發(fā)送一個地址字節(jié)(包括7位地址碼和一位R/W);(3)當被控器件檢測到主控發(fā)送的地址與自己的地址相同時發(fā)送一個應(yīng)答信號(ACK);(4)主控收到ACK后開始發(fā)送第一個數(shù)據(jù)字節(jié);(5)被控器收到數(shù)據(jù)字節(jié)后發(fā)送一個ACK表示繼續(xù)傳送數(shù)據(jù),發(fā)送NACK表示傳送數(shù)據(jù)結(jié)束;(6)主控發(fā)送完全部數(shù)據(jù)后,發(fā)送一個停止位STOP,結(jié)束整個通訊并且釋放總線。 讀通訊過程:(1)主控在檢測到總線空閑的狀況下,首先發(fā)送一個START信號掌管總線;(2)發(fā)送一個地址字節(jié)(包括7位地址碼和一位R/W);(3)當被控器件檢測到主控發(fā)送的
10、地址與自己的地址相同時發(fā)送一個應(yīng)答信號(ACK);(4)主控收到ACK后釋放數(shù)據(jù)總線,開始接收第一個數(shù)據(jù)字節(jié);(5)主控收到數(shù)據(jù)后發(fā)送ACK表示繼續(xù)傳送數(shù)據(jù),發(fā)送NACK表示傳送數(shù)據(jù)結(jié)束;(6)主控發(fā)送完全部數(shù)據(jù)后,發(fā)送一個停止位STOP,結(jié)束整個通訊并且釋放總線。 下圖所示為一次完整的通信過程的時序:圖中,SCL線上17位為7位地址碼,第8位為讀寫位RD,第9位為ACK應(yīng)答位,緊接著的為第一個數(shù)據(jù)字節(jié),然后是一位應(yīng)答位,后面繼續(xù)第2個數(shù)據(jù)字節(jié)。如圖所示,主控器在檢測到總線空閑(數(shù)據(jù)線SDA和時鐘線SCL同時處于高電平狀態(tài))時,首先發(fā)送一個啟動信號S(在時鐘線SCL保持高電平期間,數(shù)據(jù)線SDA
11、上電平被拉低),它標志著一次數(shù)據(jù)傳輸?shù)拈_始。之后主控器發(fā)送一個地址字節(jié)包括7位地址碼和一個讀寫位。被控器收到地址字節(jié)后反饋一個應(yīng)答信號ACK=0,主控器接收到ACK后開始發(fā)送第一個數(shù)據(jù)字節(jié),被控器接收到第一個數(shù)據(jù)字節(jié)后,由反饋一個應(yīng)答信號ACK=0。主控器收到應(yīng)答信號后開始傳送第二個數(shù)據(jù)字節(jié)。依次循環(huán),主控器發(fā)送完數(shù)據(jù)后,就發(fā)送一個停止信號P(SCL保持高電平期間,SDA被釋放,返回高電平),并釋放總線,使得總線返回空閑狀態(tài)。在通信過程應(yīng)注意以下6點:(1)進行數(shù)據(jù)傳送時,在SCL為高電平期間,SDA線上電平必須保持穩(wěn)定,只有SCL為低時,才允許SDA線上電平改變狀態(tài)。并且每個字節(jié)傳送時都是高
12、位在前。(2)對于應(yīng)答信號,ACK=0時為有效應(yīng)答位,說明接收器已經(jīng)成功接收到該字節(jié),若為1則說明接受不成功。(3)如果被控器需要延遲下一個下一個數(shù)據(jù)字節(jié)開始傳送的時間,可以通過把SCL電平拉低并保持來強制主控器進入等待狀態(tài)。(4)主控器完成一次通信后還想繼續(xù)占用總線在進行一次通信,而又不釋放總線,就要利用重啟動信號Sr。它既作為前一次數(shù)據(jù)傳輸?shù)慕Y(jié)束,又作為后一次傳輸?shù)拈_始。(5)總線沖突時,按“低電平優(yōu)先”的仲裁原則,把總線判給在數(shù)據(jù)線上先發(fā)送低電平的主器件。(6)在特殊情況下,若需禁止所有發(fā)生在I2C總線上的通信,可采用封鎖或關(guān)閉總線,具體操作為掛接在總線上的任一器件將SCL鎖定在低電平即
13、可。2、實驗中需要使用到I2C軟件庫,庫中包含了CAT24WC02讀寫數(shù)據(jù)的基本命令。匯編語言中調(diào)用軟件庫的指令為“include(文件名)”命令,該指令一般放在程序末尾。實驗中所需調(diào)用的函數(shù)庫文件名為“VI2C_ASM.ASM”,將其從光盤中復(fù)制到工程所在文件夾中,即可使用上述指令調(diào)用軟件包。完整的調(diào)用命令如下:$INCLUDE(VI2C_ASM.ASM);包含 I2C 模擬軟件包常用的四個命令如下:IRDBYTE (無子地址)讀單字節(jié)數(shù)據(jù)(現(xiàn)行地址讀)IWRBYTE (無子地址)寫單字節(jié)數(shù)據(jù)(現(xiàn)行地址寫)IRDNBYTE (有子地址)讀N字節(jié)數(shù)據(jù)(隨機地址讀)IWRNBYTE (有子地址)
14、寫N字節(jié)數(shù)據(jù)(隨要地址寫)在本實驗中,由于需要頁讀/寫,故采用IRDNBYTE與IWRNBYTE子程序。代碼如下:LCALL IWRNBYTE;調(diào)寫EEPROM子程序(隨機地址寫)及:LCALL IRDNBYTE;調(diào)寫EEPROM子程序(隨機地址讀)這兩個命令需要使用NUMBYTE來控制讀/寫的字節(jié)數(shù)。第一個實驗需要發(fā)送一個字節(jié),即:MOV NUMBYTE,#01H;設(shè)置待發(fā)字節(jié)數(shù)為1第二個實驗要發(fā)送一頁數(shù)據(jù),即16位:MOV NUMBYTE,#10H;設(shè)置待發(fā)字節(jié)數(shù)為163、實驗一中讀/寫的一位數(shù)據(jù)為55H,直接送入寄存器A:MOV A, #55H;將所要發(fā)送的數(shù)據(jù)放入發(fā)送緩沖區(qū)實驗二中需要讀/寫一頁16位數(shù)據(jù),采用直接存入方法:MOV 3FH,#00H ;給MTD賦值MOV 30H,#01H MOV 31H,#02H MOV 32H,#03HMOV 33H,#04HMOV 34H,#05HMOV 35H,#05HMOV 36H,#07HMOV 37H,#08HMOV 38H,#09HMOV 39H,#0AHMOV 3AH,#0BHMOV 3BH,#0CHMOV 3CH,#0DHMOV 3DH,#0EHMOV 3EH,#0FH顯然,這是一種繁瑣的方法,改進的方法是采用循環(huán)遞減的方式將10H00H存入發(fā)送緩沖區(qū)MTD,代碼如下:MOV R1,#MTD;將R1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學(xué)校塑膠臺階合同范例
- 房屋搭建改造合同范例
- 山西創(chuàng)新企業(yè)策劃合同范例
- 工程建筑外架合同范例
- 司機勞動合同范例
- 買賣兇宅合同范例
- 床品采購合同模板
- 2024年濰坊客運從業(yè)資格證試題答案
- 2024年湛江道路客運從業(yè)資格證模擬考試
- 2024年成都客運從業(yè)資格證考試試題及答案
- 大學(xué)美育(同濟大學(xué)版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 中國急性缺血性卒中診治指南(2023版)
- 勞動法律學(xué)習(xí)試題
- 過敏性休克完整版本
- 口腔診所器材清單
- 冀教版八年級英語上冊Unit 7 Lesson 37 What’s Your Hobby課件(共16張PPT)
- 小水電接入電力系統(tǒng)技術(shù)規(guī)定
- 第三章 玻璃分相與析晶
- 招商銀行無追索權(quán)公開型國內(nèi)保理業(yè)務(wù)操作規(guī)程
- 產(chǎn)品合格證模板
- 天然基礎(chǔ)基坑3M深土方開挖專項方案
評論
0/150
提交評論