MCS 51系列微控制器模擬SPI匯流排的方法

2022-06-02 16:09:04 字數 1260 閱讀 5663

1. mcu序列輸入子程式spiin

從x25f008的spiso線上接收8位資料並放入暫存器r0中的應用子程式如下:

spiin:setb p1.1使p1.1(時鐘)輸出為1

clr p1.2選擇從機

mov r1,#08h置迴圈次數

spiin1: clr p1.1使p1.1(時鐘)輸出為0

nop延時

nopmov c,p1.3從機輸出spiso送進製c

rlc a左移至累加器acc

setb p1.1使p1.0(時鐘)輸出為1

djnz r1,spiin1判斷是否迴圈8次(8位資料)

mov r0,a8位資料送r0

ret2. mcu序列輸出子程式spiout

將mcs-51微控制器中r0暫存器的內容傳送到x25f008的spisi線上的程式如下:

spiout:setb p1.1 ;使p1.1(時鐘)輸出為1

clr p1.2選擇從機

mov r1,#08h ;置迴圈次數

mov a,r08位資料送累加器acc

spiout1:clr p1.1 ;使p1.1(時鐘)輸出為0

nop延時

noprlc a左移至累加器acc最高位至c

mov p1.0,c ;進製c送從機輸入spisi線上

setb p1.1使p1.1(時鐘)輸出為1

djnz r1,spiout1 ;判是否迴圈8次(8位資料)

ret3. mcu序列輸入/輸出子程式spiio

將mcs-51微控制器r0暫存器的內容傳送到x25f008的spi si中,同時從x25f008的spi so接收8位資料的程式如下:

spiio:setb p1.1 ;使p1.1(時鐘)輸出為1

clr p1.2 ;選擇從機

mov r1,#08h ;置迴圈次數

mov a,r0 ;8位資料送累加器acc

spiio1:clr p1.1 ;使p1.1(時鐘)輸出為0

nop延時

nopmov c,p1.3 ;從機輸出spiso送進製c

rlc a左移至累加器acc最高位至c

mov p1.0,c ;進製c送從機輸入

setb p1.1 ;使p1.1(時鐘)輸出為1

djnz r1,spiio1 ;判斷是否迴圈8次(8位資料)ret

MCS51微控制器指令大全

以字母的順序排列 a z a 1 acall addr11 指令名稱 絕對呼叫指令 指令 指令功能 構造目的位址,進行子程式呼叫其方法是以指令提供的11位位址 al0 a0 取代pc的低11位,pc的高5位不變。操作內容 pc pc 2 sp sp 1 sp pc 7 0 sp sp 1 sp pc...

MCS 51微控制器指令全總結

1 運算元中有direct data bit的都是2位元組指令 2 在運算元中沒有以上三個變數卻有 標誌的都是1位元組指令 3 凡是3位元組指令的都是兩週期的指令 4 乘除是單位元組四週期的指令 5 位元組呼叫指令 位元組 位轉移指令 位元組 位邏輯指令 進 出棧指令 返回指令 inc dptr m...

MCS 51微控制器實用子程式庫

標號 功能 雙位元組 碼小數轉換成雙位元組十六進製制小數 入口條件 待轉換的雙位元組 碼小數在r4 r5中。出口資訊 轉換後的雙位元組十六進製制小數在r2 r3中。影響資源 psw a r2 r6 堆疊需求 位元組 bhd2 mov r6,10h 準備計算兩個位元組小數 bhd3 mov a,r5 ...