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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > AVR單片機(jī)與74HC595的SPI顯示程序

          AVR單片機(jī)與74HC595的SPI顯示程序

          作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
          使用SPI接口控制74HC595 LED顯示

          SPI接口的全稱是"Serial Peripheral Interface",意為串行外圍接口。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實時時鐘,AD轉(zhuǎn)換器,還有數(shù)字信號處理器和數(shù)字信號解碼器之間。

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

          SPI接口是在CPU和外圍低速器件之間進(jìn)行同步串行數(shù)據(jù)傳輸,在主器件的移位脈沖下,數(shù)據(jù)按位傳輸,為全雙工通信,數(shù)據(jù)傳輸速度總體來說比I2C總線要快,速度可達(dá)到幾Mbps。

          SPI接口是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件,其接口包括以下四種信號:

          (1)MOSI – 主器件數(shù)據(jù)輸出,從器件數(shù)據(jù)輸入
          (2)MISO – 主器件數(shù)據(jù)輸入,從器件數(shù)據(jù)輸出
          (3)SCLK – 時鐘信號,由主器件產(chǎn)生
          (4)/SS – 從器件使能信號,由主器件控制

          在BASCOM中,提供了軟件實現(xiàn)的SPI接口的語句,同樣BASCOM也有支持硬件SPI的語句。
          下面將使用三個例子來說明如何在BASCOM中使用SPI接口。

          在介紹例子之前,我們先了解一下硬件連接圖,連接如圖1所示。

          圖中共使用三片74HC595芯片,分別控制三個數(shù)碼管,三片74HC595通過Q7’引腳進(jìn)行級聯(lián)。第一片74HC595的DS引腳連接到了ATmega88的MOSI引腳,而SH_CP引腳連接到了ATmega88的SCK引腳,ST_CP引腳連接到了ATmega88的PB1引腳。

          一、使用硬件SPI接口控制74HC595 ------------------------------------------------------------------------使用芯片:  ATmega88,晶振:      內(nèi)部8MHz晶振email:     support@avrbascom.com軟件版本:  Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------$regfile = "m88def.dat"                     芯片為ATmega88 $crystal = 8000000                          8M晶振頻率 $hwstack = 32                               設(shè)置堆棧大小 $swstack = 10$framesize = 40Dim I As ByteDim A(3) As ByteLatch Alias Portb.1Config Spi = Hard , Interrupt = Off , Data Order = Msb , Master = Yes ,Polarity = Low , Phase = 0 , Clockrate = 4 , Noss = 0定義使用單片機(jī)自帶的硬件SPI,SPI中斷未使能,數(shù)據(jù)發(fā)送時,高位先發(fā)送。設(shè)為SPI主設(shè)備,時鐘4分頻 Spiinit                 SPI初始化Restore Segtab          獲取要顯示數(shù)據(jù)的內(nèi)容 For I = 1 To 3Read A(i)Next ISpiout A(1) , 3         輸出要顯示的內(nèi)容給74HC595,分別輸出A(1),A(2),A(3)Latch = 1?              使能顯示 Waitus 10Latch = 0 DoLoopEnd*******************************************************************************--------------------------專用字形表------------------------------------------Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB70 1 2 3 4 5 6 7 8 9二、使用軟件SPI接口控制74HC595------------------------------------------------------------------------使用芯片: ATmega88,晶振:     內(nèi)部8MHz晶振 email:    support@avrbascom.com軟件版本: Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------ $regfile = "m88def.dat"                  芯片為ATmega88 $crystal = 8000000                       8M晶振頻率 $hwstack = 32                            設(shè)置堆棧大小 $swstack = 10$framesize = 40Const On = 1Const Off = 0Dim I As ByteDim A(3) As ByteLatch Alias Portb.1Config Spi = Soft , Dout = Portb.3 , Ss = None , Clock = Portb.5定義使用軟件SPI,pb3作為數(shù)據(jù)輸出口,pb5作為時鐘引腳 Spiinit                 SPI初始化Restore Segtab          獲取要顯示數(shù)據(jù)的內(nèi)容 For I = 1 To 3Read A(i)Next ISpiout A(1) ,3輸出要顯示的內(nèi)容給74HC595,分別輸出A(1),A(2),A(3)Latch = Off            使能顯示 Waitus 10Latch = OnDoLoopEnd********************************************************************--------------------------專用字形表------------------------------------------Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB70 1 2 3 4 5 6 7 8 9三、使用軟件SPI接口控制74HC595------------------------------------------------------------------------使用芯片: ATmega88,晶振:     內(nèi)部8MHz晶振 email:    support@avrbascom.com軟件版本: Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------ $regfile = "m88def.dat"         芯片為ATmega88 $crystal = 8000000              8M晶振頻率 $hwstack = 32                   設(shè)置堆棧大小 $swstack = 10$framesize = 40Const On = 1Const Off = 0Ledata Alias Portb.3            數(shù)據(jù)輸出口 Ledclk Alias Portb.5            時鐘輸出口 Latch Alias Portb.1Dim I As ByteDim A(3) As ByteRestore Segtab                   獲取要顯示數(shù)據(jù)的內(nèi)容 For I = 1 To 3Read A(i)Next IFor I = 3 To 1 Step -1Shiftout Ledata , Ledclk , A(i) , 1輸出要顯示的內(nèi)容給74HC595Next ILatch = Off                      使能顯示 Waitus 10Latch = OnDoLoopEnd********************************************************************--------------------------專用字形表------------------------------------------Segtab:Data &H77 , &H14 , &HE6 , &HB6 , &H95 , &HB3 , &HF3 , &H16 , &HF7 , &HB70 1 2 3 4 5 6 7 8 9


          上一頁 1 2 下一頁

          關(guān)鍵詞: AVR單片機(jī)74HC595SP

          評論


          技術(shù)專區(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); })();