Re: I2C範例程式的問題
|
||||
---|---|---|---|---|
新會員
|
您好!
我是這裡的新手,最近才開始了解i2c,有幾個問題相請教一下。假設有一個cpu跟兩三個device要透過i2c的介面來作傳輸,其前提是什麼: 1)是不是這些device本身都要有提供i2c的介面? 2)是不是在這些device的spec上面,都會定義出自已的address? 3)還有,如果我想用一個8051自行寫程式完成i2c的介面的話,是不是也要定義這個8051的addrss?? 4)不知道各位高手,有沒有相關的資料跟程式範例可以讓我參考一下。 謝謝大家
發表於: 2007/4/28 9:28
|
|||
|
Re: I2C範例程式的問題
|
||||
---|---|---|---|---|
資深會員
|
留個電子郵件
我寄幾年前我測試用的程式給你試試
發表於: 2006/5/16 10:09
|
|||
|
Re: I2C範例程式的問題
|
||||
---|---|---|---|---|
新會員
|
我有看了[詳細解析PIC16F877原理與應用"台科大圖書公司出版。]一書
發現裡面對I2C的講解.. 僅止於主控端控制EEROM...從屬端幾個字帶過 比我自己在網路收集到的資訊還少... 我就是將主控端控制EEROM的程式修改... 從屬端用書面資料..寫出來 程式的流程我有和[PIC16F87X快速上手一書仔細對過] 我要做2颗PIC對傳...我是用組合語言 可是坊間的書和網路的程式幾乎沒有2颗PIC對傳的說明 現在I2C原理我已經稍懂了..但是2颗PIC對傳就是做不出來 所以我一定還有些是錯誤的...我現在該如何下手
發表於: 2006/5/16 2:31
|
|||
|
I2C範例程式的問題
|
||||
---|---|---|---|---|
新會員
|
下面從屬端進行傳送接收有幾地方程式看不懂
1. XORLW B'11111111' 為什麼要對接收的資料做XOR 而且在WAS_WRITE裡找不到判別位址或資料的程式 而且在程式的開頭設了2個暫存器名稱 YES EQU 0FFH NO EQU 0H 我實在看不出來他設這2個暫存器目的為何? 2.在WAS_READ也是為什麼做XORWF D_OUT,W D_OUT也沒給它資料阿? SKPNZ是什麼意思?我在書上找不到 而且之後馬上GOTO CLRIF,不就每次進入WAS_READ都沒辦法到MOVFW TEMP MOVWF SSPBUF ;SET BF BSF SSPCON,CKP ;RELEASE 這裡將資料送出去 簡單的 Master 端 (Firmware) 及 Slave 端 (Hardware) 相對應的程式範例 (iicslave.asm) WAS_WRITE: BCF STATUS,RP0 MOVFW SSPBUF ;CLEAR BF XORLW B'11111111' MOVWF TEMP ; BCF PIR1,SSPIF ;CLEAR SSPIF ; MOVLW NO MOVWF D_OUT GOTO END_INT WAS_READ: BCF STATUS,RP0 MOVLW YES XORWF D_OUT,W SKPNZ GOTO CLRIF ; MOVFW TEMP MOVWF SSPBUF ;SET BF BSF SSPCON,CKP ;RELEASE CLOCK LINE MOVLW YES MOVWF D_OUT CLRIF: BCF PIR1,SSPIF ;CLEAR SSPIF END_INT: RETFIE
發表於: 2006/5/12 12:00
|
|||
|