51單片機—再論IIC—軟件通用包(匯編、c語言)—03
1)發(fā)送一字節(jié)數據WR_BYTE
該子程序是向虛擬的IIC總顯得數據線SDA上發(fā)送一字節(jié)數據的操作。調用該子程序前,將要發(fā)送的數據送入A中。
還是先匯編,然后c代碼:
;-----------------------------------------------------------------
;發(fā)送字節(jié)子程序
;字節(jié)數據放入ACC
;每發(fā)送一個字節(jié)筪掉用一次CACK(檢測應答子程序),取應答位
WR_BYTE:
W_LP:
W_LP1:
W_R1:
W_R0:
//----------------------------------------------------------------------
//寫一個字節(jié)函數
void send_byte(uchar c)
{
}
2)接收一字節(jié)數據RD_BYTE(這個的匯編感覺并不肯定,有可能有錯~~,當然c語言還是沒問題的,呵呵)
;----------------------------------------------------------------------
;讀取字節(jié)子程序
;讀出的值再ACC中
;每取一個字節(jié)要發(fā)送一個應達或者非應答信號(要知道你讀取就成了從機,就要發(fā)送一個信號告訴主機)
RD_BYTE:
R_LP:
//------------------------------------------------------------------------
//接收一個字節(jié)函數
//返回接收的8位數據
uchar rec_byte()
{
}
3)向被控器件發(fā)送n個字節(jié)數據子程序MCU_WRN_BYTE
;-----------------------------------------------------------------------
;向器件指定地址寫入N個數據
;入口參數:器件從地質SLA,器件子地址SUBA、發(fā)送數據緩沖區(qū)MTD、發(fā)送字節(jié)數NUMBYTE
;占用:A,R0,R1,R3,CY
MCU_WRN_BYTE:
WRN_DA:
RET_WRN:
評論