<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > MSP430F449的數(shù)字電位器分壓功能設(shè)計(jì)

          MSP430F449的數(shù)字電位器分壓功能設(shè)計(jì)

          作者: 時(shí)間:2012-05-04 來(lái)源:網(wǎng)絡(luò) 收藏

          3 MSP430軟件模擬SPI串口的實(shí)現(xiàn)
          本文采用單片機(jī)的I/O口模擬SPI通信,選用SCK下降沿輸出、上升沿輸入的SPI三線(xiàn)接口類(lèi)型。定義單片機(jī)的P3.4端口為輸出MOSI,P3.5端口為時(shí)鐘信號(hào)SCK,P3.7端口為片選輸入CS,P4.0端口為輸入MISO。在P3.5下降沿時(shí),輸出數(shù)據(jù)data的高位,然后把P3.5的電壓拉高,data中的數(shù)據(jù)依次右移1位,再將P3.5的電平拉低,再次輸出data的高位,實(shí)際這時(shí)輸出的是原來(lái)data中的次高位,data如此重復(fù)有移8次就完成了1個(gè)寧符的輸出。實(shí)現(xiàn)該的代碼如下:
          g.JPG
          f.JPG
          同理,把P3.5的輸出電平拉高,制造時(shí)鐘的上升沿,檢測(cè)輸入引腳P4.0的電平,將其記入data中,再將P3.5的輸出電平拉低,這時(shí)就接收好1個(gè)字符位了,然后將data接收到的字符位右移1位,準(zhǔn)備繼續(xù)接收字符下一位,如此重復(fù)8次后就收到1個(gè)完整的字符,代碼如下:
          h.JPG
          如果是選用SCK下降沿輸入、上升滑輸出的SPI接口類(lèi)型,只需要把上面接收和發(fā)送程序中SCK的上升沿和下降沿交換即可滿(mǎn)足時(shí)序要求。模擬串口通信的代碼簡(jiǎn)單,靈活性強(qiáng),可以在具體的SPI讀寫(xiě)程序中實(shí)現(xiàn)其硬件接口的。1個(gè)SPI的時(shí)鐘周期就是執(zhí)行上述模擬串口指令所需要的時(shí)間,因此其串口速率主要由系統(tǒng)時(shí)鐘來(lái)決定,提高系統(tǒng)時(shí)鐘頻率能夠進(jìn)一步提高SPI串口的傳輸速率。

          4 MSP430模擬SPI驅(qū)動(dòng)實(shí)例
          圖5為芯片與單片機(jī)連接的引腳連接圖。片選CS在低電平時(shí)有效。按照時(shí)序圖和引腳連接圖,首先需要定義的I/O端口,P3.4為MOSI,P3.5為SCK,P3.7為CS,P4.0為MISO。

          本文引用地址:http://www.ex-cimer.com/article/171507.htm

          i.JPG


          由于使用MSP430F449的I/O模擬串口通信,沒(méi)有使用中斷函數(shù),只需要調(diào)用一個(gè)子函數(shù)就能實(shí)現(xiàn)其,因此在操作上相比硬件而言更加簡(jiǎn)單。下面給出了寫(xiě)數(shù)據(jù)命令和遞增命令的子函數(shù)。
          j.JPG



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();