新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > SPI總線在系統(tǒng)中的應(yīng)用

        SPI總線在系統(tǒng)中的應(yīng)用

        作者: 時(shí)間:2012-10-15 來源:網(wǎng)絡(luò) 收藏

          MOV R0,A ;8位數(shù)據(jù)送R0

          RET

          3.2 MCU串行輸出子程序SPIOUT

          將單片機(jī)中R0寄存器的內(nèi)容傳送到X25F008的SPISI線上的程序如下:

          SPIOUT:SETB P1.1 ;使P1.1(時(shí)鐘)輸出為1

          CLR P1.2 ;選擇從機(jī)

          MOV R1,#08H ;置循環(huán)次數(shù)

          MOV A,R0 ;8位數(shù)據(jù)送累加器ACC

          SPIOUT1:CLR P1.1 ;使P1.1(時(shí)鐘)輸出為0

          NOP ;延時(shí)

          NOP

          RLC A ;左移至累加器ACC最高位至C

          MOV P1.0,C ;進(jìn)位C送從機(jī)輸入SPISI線上

          SETB P1.1 ;使P1.1(時(shí)鐘)輸出為1

          DJNZ R1,SPIOUT1 ;判是否循環(huán)8次(8位數(shù)據(jù))

          RET

          3.3 MCU串行輸入/輸出子程序SPIIO

          將單片機(jī)R0寄存器的內(nèi)容傳送到X25F008的SPISI中,同時(shí)從X25F008的SPISO接收8位數(shù)據(jù)的程序如下:

          SPIIO:SETB P1.1 ;使P1.1(時(shí)鐘)輸出為1

          CLR P1.2 ;選擇從機(jī)

          MOV R1,#08H ;置循環(huán)次數(shù)

          MOV A,R0 ;8位數(shù)據(jù)送累加器ACC

          SPIIO1:CLR P1.1 ;使P1.1(時(shí)鐘)輸出為0

          NOP ;延時(shí)

          NOP

          MOV C,P1.3 ;從機(jī)輸出SPISO送進(jìn)位C

          RLC A ;左移至累加器ACC最高位至C

          MOV P1.0,C ;進(jìn)位C送從機(jī)輸入

          SETB P1.1 ;使P1.1(時(shí)鐘)輸出為1

          DJNZ R1,SPIIO1 ;判斷是否循環(huán)8次(8位數(shù)據(jù))

          RET

          4 結(jié)束語

          本文介紹了通過接口實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn)方法,給出了用單片機(jī)匯編語言模擬SPI串行總線的輸入、輸出,輸入/輸出以傳送8位數(shù)據(jù)的子程序。實(shí)際上,也可以根據(jù)SPI串行總線的操作時(shí)序特點(diǎn)來在MCS96系列、ATMEL89系列等單片機(jī)上實(shí)現(xiàn)的接口。


        上一頁 1 2 下一頁

        關(guān)鍵詞: SPI總線 MCS51 交換信息

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 磴口县| 门头沟区| 新平| 重庆市| 巨鹿县| 宣化县| 韶山市| 兰西县| 南江县| 九台市| 蚌埠市| 赣州市| 禹城市| 利川市| 揭西县| 百色市| 泸定县| 宁南县| 武冈市| 明水县| 高雄市| 西宁市| 平乐县| 繁昌县| 探索| 剑阁县| 太原市| 城固县| 常熟市| 靖西县| 新巴尔虎左旗| 固阳县| 瓮安县| 南涧| 阿拉善盟| 合江县| 尼木县| 北川| 古交市| 友谊县| 通辽市|