SPI總線的軟件模擬

發(fā)布時間:2023-10-30
對于沒有提供spi接口的單片機而言,通??墒褂密浖霓k法來模擬spi的總線操作,包括串行時鐘、數(shù)據(jù)輸入和輸出。
atmel公司生產(chǎn)的eeprom具有spi接口,存儲容量為4kb的at25040就有spi接口,80c51系列單片機與at25040的spi總線接口接線如圖所示。
圖 spi總線接口接線圖
圖9-6中,p1.0模擬spi的數(shù)據(jù)輸出端(mosi),p1.1模擬spi的sck輸出端,p1.2模擬spi的從機選擇端(ss),p1.3模擬spi的數(shù)據(jù)輸入端(miso)。下面給出模擬spi串行輸入、串行輸出和串行輸入/輸出的3個子程序。
1.mcu串行輸入子程序spiin
從at25040的so端接收8位數(shù)據(jù)并放入寄存器r0中。參考程序如下:
spiin:setb p1.1 ;使p1.1(時鐘)輸出為1
clrp1.2 ;選擇從機
mov r1, #08h ;置循環(huán)次數(shù)
spiin1: clr p1.1 ;使p1.1(時鐘)輸出為0
nop ;延時
nop
mov c, p1.3 ;從機輸出送進位c
rlc a;左移至累加器a
setbp1.1 ;使p1.1(時鐘)輸出為1
djnz r1, spiin1 ;判斷是否循環(huán)8次(8位數(shù)據(jù))
mov r0, a ;8位數(shù)據(jù)送r0
ret
2.mcu串行輸出子程序spiout
將80c51單片機中r0寄存器的內(nèi)容傳送到at25040的si端。參考程序如下:
spiout: setb p1.1 ;使p1.1(時鐘)輸出為1
clrp1.2 ;選擇從機
mov r1, #08h ;置循環(huán)次數(shù)
mov a, r0 ;8位數(shù)據(jù)送累加器a
spiout1: clr p1.1 ;使p1.1(時鐘)輸出為0
nop;延時
nop
rlca;左移至累加器a,最高為至c
mov p1.0, c ;進位c送從機輸入
setb p1.1 ;使p1.1(時鐘)輸出為1
djnz r1, spiout1 ;判斷是否循環(huán)8次(8位數(shù)據(jù))
ret
3.mcu串行輸入/輸出子程序 spiio
將80c51單片機r0寄存器的內(nèi)容傳送到at25040的si端,同時從at25040的so端接收8位數(shù)據(jù)。參考程序如下:
spiio:setb p1.1 ;使p1.1 (時鐘)輸出為1
clr p1.2 ;選擇從機
mov r1, #08h ;置循環(huán)次數(shù)
mov a, r0 ;8位數(shù)據(jù)送累加器a
spiio1: clr p1.1 ;使p1.1(時鐘)輸出為0
nop;延時
nop
mov c, p1.3 ;從機輸出送進位c
rlca;左移至累加器a,最高為至c
mov p1.0, c ;進位c送從機輸入
setbp1.1 ;使p1.1(時鐘)輸出為1
djnz r1, spiio1 ;判斷是否循環(huán)8次(8位數(shù)據(jù))
ret
這些子程序適用于在串行時鐘的上升沿輸入和下降沿輸出的各種串行外圍接口芯片(如d/a和a/d轉(zhuǎn)換芯片、實時時鐘芯片、led顯示驅(qū)動芯片等)。對于下降沿輸入、上升沿輸出的各種串行外圍接口芯片,只要改變p1.1的輸出電平順序,這些子程序也同樣適用。
如先置p1.1為低電平,之后再次置p1.1為高電平,再置p1.1為低電平等等。
上一個:楊樹主要病害防治技術(shù)
下一個:工程開始到結(jié)束,施工員需要做什么?

美國haskel泵
小米輸入時聲音怎么關(guān),小米手機怎么消除寫信息時觸屏聲
花中混血兒――美人梅
計算機控制裝置種類
水楊梅栽培養(yǎng)護技術(shù)
心臟嗜鉻細胞瘤2例
缺陷樁處理常用方法有哪些?
二合一平板電腦排行前十,平板電腦二合一性價比排行
同等價位什么筆記本好
那種固態(tài)硬盤最好,固態(tài)硬盤哪個牌子最好
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos