chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

利用單片機(jī)的I/O口通過軟件模擬SPI總線的實(shí)現(xiàn)方法

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī) ? 2020-09-02 11:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

SPI(Serial Peripheral Interfacer 串行外設(shè)接口)是摩托羅拉公司推出的一種同步串行通訊接口,用于微處理器控制器和外圍擴(kuò)展芯片之間的串行連接,現(xiàn)已發(fā)展成為一種工業(yè)標(biāo)準(zhǔn),目前,各半導(dǎo)體公司推出了大量的帶有SPI接口的具有各種各樣功能的芯片,如RAM,EEPROM,F(xiàn)lashROM,A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、LED/LED顯示驅(qū)動(dòng)器、I/O接口芯片、實(shí)時(shí)時(shí)鐘、UART收發(fā)器等等,為用戶的外圍擴(kuò)展提供了極其靈活而價(jià)廉的選擇。由于SPI總線接口只占用微處理器四個(gè)I/O口線,采用SPI總線接口可以簡(jiǎn)化電路沒計(jì),節(jié)省很多常規(guī)電路中的接口器件和I/O口線,提高設(shè)計(jì)的可靠性。

現(xiàn)以 AT89C205l單片機(jī)模擬SPI總線操作串行EEPROM 93CA6為例,如圖1所示,介紹利用單片機(jī)的I/O口通過軟件模擬SPI總線的實(shí)現(xiàn)方法。在這里,僅介紹讀命令的時(shí)序和應(yīng)用子程序。

93C46存儲(chǔ)器SPI總線的工作原理

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

軟件模擬SPI接口的實(shí)現(xiàn)方法

對(duì)于不帶SPI串行總線接口的AT89C2051單片 機(jī)來說,可以使用軟件來模擬SPI的操作,圖1所示 為AT89C2051單片機(jī)與串行EEPROM 93C46的硬件 連接圖,其中,P1.0模擬SPI主設(shè)備的數(shù)據(jù)輸出端 SDO,P1.2模擬SPI的時(shí)鐘輸出端SCK,P1.3模擬 SPI的從機(jī)選擇端SCS,P1.1模擬SPI的數(shù)據(jù)輸入 SDI。
上電復(fù)位后首先先將P1.2(SCK)的初始狀態(tài)設(shè)置為0(空閑狀態(tài))。
讀操作:AT89C2051首先通過P1.0口發(fā)送1位起始位(1),2位操作碼(10),6位被讀的數(shù)據(jù)地址(A5A4A3A2A1A0),然后通過P1.1口讀1位空位(0),之后再讀l6位數(shù)據(jù)(高位在前)。
寫操作:AT89C2051首先通過P1.0口發(fā)送1位起始位(1),2位操作碼(01),6位被寫的數(shù)據(jù)地址(A5A4A3A2A1A0),之后通過P1.0口發(fā)送被寫的l6位數(shù)據(jù)(高位在前),寫操作之前要發(fā)送寫允許命令,寫之后要發(fā)送寫禁止命令。
寫允許操作(WEN)):寫操作首先發(fā)送1位起始位(1),2位操作碼(00),6位數(shù)據(jù)(11XXXX)。 寫禁止操作(WDS)):寫操作首先發(fā)送1位起始位(1),2位操作碼(00),6位數(shù)據(jù)(00XXXX)。

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

1. //首先定義好I/O口 2. sbit SDO=P1^0;3. sbit SDI=P1^1;4. sbit SCK=P1^ 2;5. sbit SCS=P1^3;6. sbit ACC_7= ACC^7;7. unsigned int SpiRead(unsigned char add) 8. { 9. unsigned char i;10. unsigned int datal6;11. add&=0x3f;/*6位地址*/ 12. add |=0x80;/*讀操作碼l0*/ 13. SDO=1;/*發(fā)送1為起始位*/ 14. SCK=0;15. SCK=1;16. for(i=0;<8;i++)/*發(fā)送操作碼和地址*/ 17. { 18. if(add&0x80==1) 19. SDO=1;20. else 21. SDO=0;22. SCK=0;/*從設(shè)備上升沿接收數(shù)據(jù)*/ 23. SCK=1;24. add<<= 1;25. } 26. SCK=1;/*從設(shè)備時(shí)鐘線下降沿后發(fā)送數(shù)據(jù),空讀1位數(shù)據(jù)*/ 27. SCK=0;28. datal6<<= 1;/*讀16位數(shù)據(jù)*/ 29. for(i=0;<16;i++) 30. { 31. SCK= 1;32. _nop_();33. if(SDI==1) 34. datal6|=0x01;35. SCK =0;36. datal6< < =1;37. } 38. return datal6;39. }? 對(duì)于不同的串行接口外圍芯片,它們的時(shí)鐘時(shí)序是不同的。上述子程序是針對(duì)在SCK的上升沿輸入(接收)數(shù)據(jù)和在下降沿輸出(發(fā)送)數(shù)據(jù)的器件。這些子程序也適用于在串行時(shí)鐘)的上升沿輸入和下降沿輸出的其它各種串行外圍接口芯片,只要在程序中改變P1.2(SCK)的輸出電平順序進(jìn)行相應(yīng)調(diào)整即可。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6074

    文章

    45351

    瀏覽量

    663909
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2416

    瀏覽量

    85361
  • SPI
    SPI
    +關(guān)注

    關(guān)注

    17

    文章

    1867

    瀏覽量

    99888

原文標(biāo)題:?jiǎn)纹瑱C(jī)軟件模擬SPI接口

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)系統(tǒng)進(jìn)行擴(kuò)展時(shí)需要遵循的原則有哪些

    一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件電路設(shè)計(jì)包含兩部門內(nèi)容:一是系統(tǒng)擴(kuò)展,即單片機(jī)內(nèi)部的功能單元,如ROM、RAM、I/O、定時(shí)器/計(jì)數(shù)器、間斷系統(tǒng)等不能知足應(yīng)用系統(tǒng)的要求時(shí),必需在片外進(jìn)行擴(kuò)展,
    發(fā)表于 12-09 07:56

    單片機(jī)硬件設(shè)計(jì)原則,抗干擾常用方法

    方法。提高敏感器件抗干擾性能的常用措施如下: 布線時(shí)盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。 布線時(shí),電源線和地線要盡量粗。除減小壓降外,更重要的是降低耦合噪聲。 對(duì)于單片機(jī)閑置的I/
    發(fā)表于 12-09 06:30

    單片機(jī)系統(tǒng)硬件的調(diào)試方法

    單片機(jī)的系統(tǒng)硬件調(diào)試,通常有靜態(tài)調(diào)試和動(dòng)態(tài)調(diào)試兩種不同,前者是通過目測(cè)、萬能表測(cè)試、加電檢查、聯(lián)機(jī)檢查的方法,在加電于樣機(jī)之前.對(duì)樣機(jī)的型號(hào)規(guī)格,以及安裝要求等進(jìn)行核對(duì),同時(shí)檢查 電源 系統(tǒng).防止
    發(fā)表于 12-03 06:10

    如何巧妙甚至避免單片機(jī)的干擾問題

    平衡功耗與抗干擾能力。 2、利用數(shù)字電路降低阻抗 將I/O與其他數(shù)字電路輸出腳相連,利用數(shù)字電路的低阻抗特性,提升抗干擾能力。 在工
    發(fā)表于 11-26 06:48

    單片機(jī)原理及應(yīng)用詳解

    單片機(jī)(Microcontroller Unit, MCC) ?是一種集成計(jì)算機(jī)核心功能(CPU、存儲(chǔ)器、I/O接口等)的微型芯片,廣泛應(yīng)用于嵌入式系統(tǒng)中。以下是其原理及應(yīng)用的詳細(xì)介紹: 一、
    的頭像 發(fā)表于 08-11 13:57 ?1600次閱讀

    單片機(jī)的儲(chǔ)存優(yōu)點(diǎn)是什么

    場(chǎng)景。深圳市安凱星科技有限公司在單片機(jī)應(yīng)用開發(fā)中,充分利用這些儲(chǔ)存優(yōu)點(diǎn),為拓邦、朗科、安徽龍多等客戶打造了高效穩(wěn)定的解決方案。 1.集成度高,節(jié)省硬件空間 單片機(jī)將程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)與 CPU、
    的頭像 發(fā)表于 07-31 10:09 ?501次閱讀

    單片機(jī)采用什么電流輸出

    能力 單片機(jī)I/O 接口直接輸出的電流較小,通常在 10-20mA 范圍內(nèi)。這是因?yàn)槠鋬?nèi)部輸出電路由小型 MOS 管或三極管構(gòu)成,主要用于傳輸控制信號(hào),而非直接驅(qū)動(dòng)大功率設(shè)備。例如,8 位
    的頭像 發(fā)表于 07-30 11:13 ?765次閱讀

    怎么放大單片機(jī)輸出電流

    單片機(jī)作為電子系統(tǒng)的控制核心,其 I/O 輸出電流通常較小(一般在 10-20mA 左右),難以直接驅(qū)動(dòng)繼電器、電機(jī)、大功率 LED 等需要較大工作電流的外設(shè)。因此,在實(shí)際應(yīng)用中需
    的頭像 發(fā)表于 07-25 13:47 ?506次閱讀

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開發(fā)、程序調(diào)試和性能優(yōu)化具有重要意義。測(cè)量
    的頭像 發(fā)表于 07-25 11:39 ?494次閱讀

    ads7886的輸出接口 *CS SDO SCLK可以直接連接到單片機(jī)I/O上嗎?

    請(qǐng)問一下,ads7886的輸出接口 *CSSDOSCLK 可以直接連接到單片機(jī)I/O上,還是一定要上拉一個(gè)電阻然后在連接單片機(jī)I/
    發(fā)表于 02-08 07:08

    單片機(jī)I/O接口的傳輸方式

    單片機(jī)(Microcontroller Unit,MCU)作為嵌入式系統(tǒng)的核心部件,其輸入輸出(Input/Output,I/O)接口是實(shí)現(xiàn)與外部設(shè)備數(shù)據(jù)交換的關(guān)鍵。
    的頭像 發(fā)表于 02-02 15:56 ?1663次閱讀

    I2C總線單片機(jī)的連接

    在現(xiàn)代電子系統(tǒng)中,單片機(jī)(MCU)是核心控制單元,而I2C總線作為一種多主機(jī)、多從機(jī)的串行通信協(xié)議,因其簡(jiǎn)單、高效和節(jié)省引腳的特性而被廣泛應(yīng)用于各種電子設(shè)備中。
    的頭像 發(fā)表于 01-17 15:18 ?2006次閱讀

    I2C總線SPI總線的比較

    在現(xiàn)代電子系統(tǒng)中,微控制器與各種外設(shè)之間的通信是必不可少的。I2C和SPI是兩種流行的串行通信協(xié)議,它們各自具有獨(dú)特的特點(diǎn)和應(yīng)用場(chǎng)景。 I2C總線
    的頭像 發(fā)表于 01-17 15:08 ?1776次閱讀

    單片機(jī)Debug與仿真區(qū)別

    是指在軟件或硬件開發(fā)過程中,通過特定的工具和技術(shù)來查找、診斷和修復(fù)錯(cuò)誤的過程。在單片機(jī)開發(fā)中,Debug通常涉及到以下幾個(gè)方面: 硬件調(diào)試 :檢查單片機(jī)的硬件連接是否正確,包括電源、時(shí)
    的頭像 發(fā)表于 12-19 09:47 ?1426次閱讀

    如何通過總線來初始化ADS1256的寄存器?

    我用STC89C52來驅(qū)動(dòng)ADS1256時(shí),發(fā)現(xiàn)需要用到SPI協(xié)議,單片機(jī)需要用IO模擬SPI總線
    發(fā)表于 12-16 06:47