51單片機(jī)—再論IIC—軟件通用包(匯編、c語(yǔ)言)—03
我們知道51單片機(jī)中具有IIC總線(xiàn)接口的畢竟是少數(shù)(其實(shí)我就不知道那款~~)如果是是不帶IIC總線(xiàn)的單片機(jī),并不必?cái)U(kuò)展IIC總線(xiàn)接口,只是需要通過(guò)軟件模擬,這無(wú)疑會(huì)給IIC總線(xiàn)的應(yīng)用提供更廣泛的空間。通常大多數(shù)的單片機(jī)應(yīng)用系統(tǒng)中只有一個(gè)CPU,這種單主系統(tǒng)如果采用IIC總線(xiàn)技術(shù),則總線(xiàn)上只有單片機(jī)對(duì)IIC總線(xiàn)從器件的訪問(wèn),沒(méi)有總線(xiàn)的競(jìng)爭(zhēng)問(wèn)題。這是后只需要模擬主發(fā)送和主接收時(shí)序?;谏鲜隹紤],(這才是重點(diǎn),呵呵),提供在這種使用情況下的時(shí)序模擬軟件,使IIC總線(xiàn)的使用不受單片機(jī)必須帶有IIC總線(xiàn)接口的限制。
本文引用地址:http://cafeforensic.com/article/201611/321507.htm下面的9個(gè)例子可以作為一個(gè)軟件包,這個(gè)軟件放入單片機(jī)系統(tǒng)的程序程序存儲(chǔ)器中,以便用來(lái)調(diào)用。
1、IIC總線(xiàn)典型信號(hào)時(shí)序及模擬子程序(其實(shí)上一篇已經(jīng)介紹過(guò)了,不過(guò)我這里有點(diǎn)補(bǔ)充,順便小小介紹一下吧)
IIC總線(xiàn)上數(shù)據(jù)傳送時(shí),有起始位,停止位,應(yīng)答位,非應(yīng)答位等信號(hào)。按照典型IIC總線(xiàn)傳送速率的要求,如圖:
對(duì)于IIC總線(xiàn)的典型信號(hào),可以用指令操作來(lái)模擬其時(shí)序過(guò)程。
若89C51單片機(jī)的系統(tǒng)時(shí)鐘為12MHz,相信的單周期指令為1us,則起始位(START)、停止位(STOP)、發(fā)送應(yīng)答位(MACK)、發(fā)送非應(yīng)答位(MNACK)的5個(gè)模擬子程序如下:
1)啟動(dòng)IIC總線(xiàn)子程序START(先是匯編,然后是c語(yǔ)言的)
;--------------------------------------------------------
;發(fā)開(kāi)始信號(hào)子程序
START:
//----------------------------------------------------------
//開(kāi)始信號(hào)函數(shù)
void IIC_start()
{
}
2)停止IIC總線(xiàn)程序STOP(先是匯編,后是c語(yǔ)言)
;--------------------------------------------------------
;發(fā)結(jié)束信號(hào)子程序
STOP:
//---------------------------------------------------------------
//結(jié)束信號(hào)函數(shù)
void IIC_stop()
{
}
相關(guān)推薦
技術(shù)專(zhuān)區(qū)
- FPGA
- DSP
- MCU
- 示波器
- 步進(jìn)電機(jī)
- Zigbee
- LabVIEW
- Arduino
- RFID
- NFC
- STM32
- Protel
- GPS
- MSP430
- Multisim
- 濾波器
- CAN總線(xiàn)
- 開(kāi)關(guān)電源
- 單片機(jī)
- PCB
- USB
- ARM
- CPLD
- 連接器
- MEMS
- CMOS
- MIPS
- EMC
- EDA
- ROM
- 陀螺儀
- VHDL
- 比較器
- Verilog
- 穩(wěn)壓電源
- RAM
- AVR
- 傳感器
- 可控硅
- IGBT
- 嵌入式開(kāi)發(fā)
- 逆變器
- Quartus
- RS-232
- Cyclone
- 電位器
- 電機(jī)控制
- 藍(lán)牙
- PLC
- PWM
- 汽車(chē)電子
- 轉(zhuǎn)換器
- 電源管理
- 信號(hào)放大器
評(píng)論