新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > AVR單片機與74HC595的SPI顯示程序

        AVR單片機與74HC595的SPI顯示程序

        作者: 時間:2016-11-29 來源:網絡 收藏
        使用SPI接口控制74HC595 LED顯示

        SPI接口的全稱是"Serial Peripheral Interface",意為串行外圍接口。SPI接口主要應用在EEPROM,FLASH,實時時鐘,AD轉換器,還有數字信號處理器和數字信號解碼器之間。

        本文引用地址:http://www.104case.com/article/201611/323360.htm

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

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

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

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

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

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

        一、使用硬件SPI接口控制74HC595 ------------------------------------------------------------------------使用芯片:  ATmega88,晶振:      內部8MHz晶振email:     support@avrbascom.com軟件版本:  Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------$regfile = "m88def.dat"                     芯片為ATmega88 $crystal = 8000000                          8M晶振頻率 $hwstack = 32                               設置堆棧大小 $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定義使用單片機自帶的硬件SPI,SPI中斷未使能,數據發送時,高位先發送。設為SPI主設備,時鐘4分頻 Spiinit                 SPI初始化Restore Segtab          獲取要顯示數據的內容 For I = 1 To 3Read A(i)Next ISpiout A(1) , 3         輸出要顯示的內容給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,晶振:     內部8MHz晶振 email:    support@avrbascom.com軟件版本: Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------ $regfile = "m88def.dat"                  芯片為ATmega88 $crystal = 8000000                       8M晶振頻率 $hwstack = 32                            設置堆棧大小 $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作為數據輸出口,pb5作為時鐘引腳 Spiinit                 SPI初始化Restore Segtab          獲取要顯示數據的內容 For I = 1 To 3Read A(i)Next ISpiout A(1) ,3輸出要顯示的內容給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,晶振:     內部8MHz晶振 email:    support@avrbascom.com軟件版本: Bascom-AVR 1.11.8.3 Full version------------------------------------------------------------------------ $regfile = "m88def.dat"         芯片為ATmega88 $crystal = 8000000              8M晶振頻率 $hwstack = 32                   設置堆棧大小 $swstack = 10$framesize = 40Const On = 1Const Off = 0Ledata Alias Portb.3            數據輸出口 Ledclk Alias Portb.5            時鐘輸出口 Latch Alias Portb.1Dim I As ByteDim A(3) As ByteRestore Segtab                   獲取要顯示數據的內容 For I = 1 To 3Read A(i)Next IFor I = 3 To 1 Step -1Shiftout Ledata , Ledclk , A(i) , 1輸出要顯示的內容給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 下一頁

        關鍵詞: AVR單片機74HC595SP

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 延寿县| 吉木萨尔县| 莫力| 巩义市| 平原县| 胶南市| 武邑县| 潜山县| 罗甸县| 阳高县| 攀枝花市| 观塘区| 额尔古纳市| 五莲县| 巴青县| 永和县| 满洲里市| 黎川县| 桐庐县| 黑河市| 杭州市| 清河县| 镇坪县| 江孜县| 沐川县| 许昌市| 南通市| 和硕县| 金堂县| 如东县| 阿图什市| 桂平市| 阿拉善右旗| 涿州市| 罗源县| 麟游县| 宽城| 星子县| 宾川县| 密云县| 沁源县|