新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > SPI總線在51系列單片機系統中的應用

        SPI總線在51系列單片機系統中的應用

        作者: 時間:2011-08-13 來源:網絡 收藏
        3.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 ;延時

          NOP

          MOV C,P1.3 ;從機輸出SPISO送進位C

          RLC A ;左移至累加器ACC

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

          DJNZ R1,SPIIN1 ;判斷是否循環8次(8位數據)

          MOV R0,A ;8位數據送R0

          RET

          3.2 MCU串行輸出子程序SPIOUT

          將MCS51單片機中R0寄存器的內容傳送到X25F008的SPISI線上的程序如下:

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

          CLR P1.2 ;選擇從機

          MOV R1,#08H ;置循環次數

          MOV A,R0 ;8位數據送累加器ACC

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

          NOP ;延時

          NOP

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

          MOV P1.0,C ;進位C送從機輸入SPISI線上

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

          DJNZ R1,SPIOUT1 ;判是否循環8次(8位數據)

          RET

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

          將MCS51單片機R0寄存器的內容傳送到X25F008的SPISI中,同時從X25F008的SPISO接收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 ;延時

          NOP

          MOV 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

          4 結束語

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 交口县| 滕州市| 抚顺市| 祥云县| 行唐县| 苍山县| 甘孜| 宜丰县| 罗江县| 皮山县| 嘉义县| 绥滨县| 阜南县| 沁阳市| 东莞市| 青川县| 巩义市| 黑龙江省| 寿阳县| 桓仁| 晋州市| 屯门区| 吉隆县| 庆元县| 剑川县| 巴东县| 金华市| 巫溪县| 舞阳县| 天水市| 屏南县| 铜梁县| 彰武县| 乐业县| 巴青县| 平潭县| 泸溪县| 南宁市| 遂宁市| 广州市| 泗水县|