91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用單片機軟件模擬spi接口的操作方法

GReq_mcu168 ? 來源:互聯網 ? 作者:佚名 ? 2017-11-13 14:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SPI(Serial Peripheral Interfacer 串行外設接口)是摩托羅拉公司推出的一種同步串行通訊接口,用于微處理器控制器和外圍擴展芯片之間的串行連接,現已發展成為一種工業標準,目前,各半導體公司推出了大量的帶有SPI接口的具有各種各樣功能的芯片,如RAM,EEPROM,FlashROM,A/D轉換器、D/A轉換器、LED/LED顯示驅動器、I/O接口芯片、實時時鐘UART收發器等等,為用戶的外圍擴展提供了極其靈活而價廉的選擇。由于SPI總線接口只占用微處理器四個I/O口線,采用SPI總線接口可以簡化電路沒計,節省很多常規電路中的接口器件和I/O口線,提高設計的可靠性。現以 AT89C205l單片機模擬SPI總線操作串行EEPROM 93CA6為例,如圖1所示,介紹利用單片機的I/O口通過軟件模擬SPI總線的實現方法。在這里,僅介紹讀命令的時序和應用子程序。

93C46存儲器SPI總線的工作原理

93CA6作為從設備,其SPI接口使用4條I/O口線:串行時鐘線(SK)、輸出數據線DO、輸入數據線DI和高電平有效的從機選擇線CS。其數據的傳輸格式是高位(MSB)在前,低位(LsB)在后。93C46的SPI總線接口讀命令時序如圖2所示。

軟件模擬SPI接口的實現方法

對于不帶SPI串行總線接口的AT89C2051單片 機來說,可以使用軟件來模擬SPI的操作,圖1所示 為AT89C2051單片機與串行EEPROM 93C46的硬件 連接圖,其中,P1.0模擬SPI主設備的數據輸出端 SDO,P1.2模擬SPI的時鐘輸出端SCK,P1.3模擬 SPI的從機選擇端SCS,P1.1模擬SPI的數據輸入 SDI

上電復位后首先先將P1.2(SCK)的初始狀態設置為0(空閑狀態)。讀操作:AT89C2051首先通過P1.0口發送1位起始位(1),2位操作碼(10),6位被讀的數據地址(A5A4A3A2A1A0),然后通過P1.1口讀1位空位(0),之后再讀l6位數據(高位在前)。寫操作:AT89C2051首先通過P1.0口發送1位起始位(1),2位操作碼(01),6位被寫的數據地址(A5A4A3A2A1A0),之后通過P1.0口發送被寫的l6位數據(高位在前),寫操作之前要發送寫允許命令,寫之后要發送寫禁止命令。寫允許操作(WEN)):寫操作首先發送1位起始位(1),2位操作碼(00),6位數據(11XXXX)。

寫禁止操作(WDS)):寫操作首先發送1位起始位(1),2位操作碼(00),6位數據(00XXXX)。

下面介紹用C51模擬SPI的子程序。

  1. //首先定義好I/O口

  2. sbitSDO=P1^0;

  3. sbitSDI=P1^1;

  4. sbitSCK=P1^2;

  5. sbitSCS=P1^3;

  6. sbitACC_7=ACC^7;

  7. unsignedintSpiRead(unsignedcharadd)

  8. {

  9. unsignedchari;

  10. unsignedintdatal6;

  11. add&=0x3f;/*6位地址*/

  12. add|=0x80;/*讀操作碼l0*/

  13. SDO=1;/*發送1為起始位*/

  14. SCK=0;

  15. SCK=1;

  16. for(i=0;<8;i++)/*發送操作碼和地址*/??

  17. {

  18. if(add&0x80==1)

  19. SDO=1;

  20. else

  21. SDO=0;

  22. SCK=0;/*從設備上升沿接收數據*/

  23. SCK=1;

  24. add<<=?1;??

  25. }

  26. SCK=1;/*從設備時鐘線下降沿后發送數據,空讀1位數據*/

  27. SCK=0;

  28. datal6<<=?1;/*讀16位數據*/??

  29. for(i=0;<16;i++)??

  30. {

  31. SCK=1;

  32. _nop_();

  33. if(SDI==1)

  34. datal6|=0x01;

  35. SCK=0;

  36. datal6

  37. }

  38. returndatal6;

  39. }

對于不同的串行接口外圍芯片,它們的時鐘時序是不同的。上述子程序是針對在SCK的上升沿輸入(接收)數據和在下降沿輸出(發送)數據的器件。這些子程序也適用于在串行時鐘)的上升沿輸入和下降沿輸出的其它各種串行外圍接口芯片,只要在程序中改變P1.2(SCK)的輸出電平順序進行相應調整即可。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SPI接口
    +關注

    關注

    0

    文章

    264

    瀏覽量

    35497
  • at89c205l單片機

    關注

    0

    文章

    1

    瀏覽量

    1188
  • 93c46存儲器
    +關注

    關注

    0

    文章

    1

    瀏覽量

    1321

原文標題:單片機軟件模擬SPI接口—加深理解SPI總線協議

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    分享:51單片機IO軟件模擬 SPI 總線

    通過SPI總線接口實現數據傳輸的實現方法,給出了MCS-51單片機匯編語言模擬
    發表于 08-31 22:38

    AVR單片機與PIC單片機IO口的操作方法有何不同?

    如何去操作51單片機IO口、AVR單片機IO口與PIC單片機IO口?哪一種IO口的操作會更簡單一些?其
    發表于 07-07 07:34

    AVR單片機的端口位操作方法

    一、常規方法AVR單片機的各類教材或編程應用參考資料,對介紹的端口位操作方法不外乎宏定義及整體和某個常量相或、相與來實現某一單個位狀態的改變。如:PORT&=-(1《1);等價于:PORTB&
    發表于 07-13 08:11

    AVR單片機的端口位操作方法解析

    AVR單片機的端口位操作方法解析來源:未知?作者:工程師周亮?2018年11月22日 16:07?3708次閱讀正在上傳…重新上傳取消?0一、常規方法AVR單片機的各類教材或編程應用參
    發表于 11-23 08:35

    單片機應用系統的設計方法分享

    實驗一 單片機流水燈【實驗目的】1、熟練掌握AT89C51開發板的使用方法和注意事項。2、了解簡單單片機應用系統的設計方法。3、掌握應用KEIL軟件
    發表于 12-01 06:24

    AVR單片機與串行AD的SPI接口設計

    為了解決信號采集系統的同步串行通訊問題,在理解AVR 單片機SPI接口的通訊原 理和方法的基礎上,分析了AVR 單片機
    發表于 02-18 16:07 ?211次下載
    AVR<b class='flag-5'>單片機</b>與串行AD的<b class='flag-5'>SPI</b><b class='flag-5'>接口</b>設計

    基于SPI總線的PIC單片機與ISD4003語音芯片的接口電路和軟件設計

    基于SPI總線的PIC單片機與ISD4003語音芯片的接口電路和軟件設計
    發表于 11-25 10:59 ?11次下載

    詳細圖文剖析STM32單片機串口一鍵下載電路與操作方法

    在此介紹STM32單片機串口一鍵下載電路與操作方法詳解。
    的頭像 發表于 12-31 23:07 ?4.8w次閱讀
    詳細圖文剖析STM32<b class='flag-5'>單片機</b>串口一鍵下載電路與<b class='flag-5'>操作方法</b>

    如何使用單片機模擬SPI時序代碼免費下載

    本文檔的主要內容詳細介紹的是如何使用單片機模擬SPI時序代碼免費下載。
    發表于 09-10 17:26 ?5次下載
    如何使用<b class='flag-5'>單片機</b><b class='flag-5'>模擬</b><b class='flag-5'>SPI</b>時序代碼免費下載

    PIC單片機和AVR單片機IO的操作方法解析

    51單片機、AVR單片機和PIC單片機IO口結構的均不同,導致了IO口操作也不同。操作單片機IO
    發表于 12-30 15:50 ?2960次閱讀
    PIC<b class='flag-5'>單片機</b>和AVR<b class='flag-5'>單片機</b>IO的<b class='flag-5'>操作方法</b>解析

    AVR單片機SPI的串行ADC接口的設計

    AVR單片機SPI的串行ADC接口的設計(電源技術的新技術發展方向)-AVR單片機SPI的串行ADC接口
    發表于 09-28 10:02 ?12次下載
    AVR<b class='flag-5'>單片機</b><b class='flag-5'>SPI</b>的串行ADC<b class='flag-5'>接口</b>的設計

    單片機51的流水燈

    實驗一 單片機流水燈【實驗目的】1、熟練掌握AT89C51開發板的使用方法和注意事項。2、了解簡單單片機應用系統的設計方法。3、掌握應用KEIL軟件
    發表于 11-23 16:20 ?24次下載
    <b class='flag-5'>單片機</b>51的流水燈

    51單片機去讀取JY61陀螺儀的數據操作方法

    51單片機去讀取JY61陀螺儀的數據操作方法
    發表于 11-23 16:20 ?13次下載
    51<b class='flag-5'>單片機</b>去讀取JY61陀螺儀的數據<b class='flag-5'>操作方法</b>

    單片機軟件模擬SPI接口的解決方案

    電子發燒友網站提供《單片機軟件模擬SPI接口的解決方案.pdf》資料免費下載
    發表于 10-13 11:31 ?2次下載
    <b class='flag-5'>單片機</b><b class='flag-5'>軟件</b><b class='flag-5'>模擬</b><b class='flag-5'>SPI</b><b class='flag-5'>接口</b>的解決方案

    單片機spi接口的使用方法有哪些(spi接口和串口的區別)

    如果單片機沒有硬件SPI模塊,或者需要額外的IO引腳來實現多個SPI設備的通信,可以使用軟件SPI模擬
    的頭像 發表于 11-10 16:38 ?5106次閱讀
    主站蜘蛛池模板: 老逼影院| 在线观看一级毛片 | 国产黄色片一级 | 国产美女激情视频 | 伊人精品久久久大香线蕉99 | 性色xxx| 日本人爽p大片免费看 | 日本美女中出 | 日本不卡在线一区二区三区视频 | 人人草人人射 | 久草免费色站 | 在线一区观看 | 视频1区 | 国产大片免费观看中文字幕 | 亚洲一区二区三区四 | 欧美精品久久久久久久小说 | 午夜三级视频 | 天天爱天天射 | 欧美成人看片一区二区三区 | 天天干天天色综合网 | 亚洲成在人色婷婷 | 久久精品高清 | 操女人在线 | 插久久| 日本三级在线视频 | 操操干干| 日本在线观看www | 免费看污视频软件 | 欧美成人一区二区三区在线电影 | 日本免费观看网站 | 很黄很黄叫声床戏免费视频 | 亚洲日本久久久午夜精品 | 激情五月综合婷婷 | bt在线www天堂资源网 | 韩日中文字幕 | 国产在线综合网 | 免费人成年短视频在线观看免费网站 | 天堂在线中文无弹窗全文阅读 | 男男宿舍高h炒肉bl 男男污肉高h坐便器调教 | 影院在线观看免费 | 欧美ggg|