在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

基于LPC2103微控制器實現LED數碼管的顯示設計

電子設計 ? 來源:信息化縱橫 ? 作者:王瑩 ? 2020-05-14 08:01 ? 次閱讀

SPI( Serial Peripheral Interface) 總線是Motorola公司提出的一個同步串行外設接口, 允許MCU與各種外圍器件以串行方式進行通信、數據交換。SPI可以同時發出和接收串行數據, 它只需4條線就可以完成MCU與各種外圍器件的通信。一般使用的4條線為:串行時鐘線SCK、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SSEL。這些外圍器件可以是簡單的TTL移位寄存器、復雜的LCD顯示驅動器、Flash、RAM、A/D轉換器網絡控制器及其他MCU等。

本文給出了一種基于SPI總線的LPC2103控制外圍LED顯示的設計方法。利用74HC595驅動靜態共陽LED數碼管,使用串轉并的方式實現I/O口的擴展。

1、 LPC2103中的SPI功能特性

LPC2103是一個基于支持實時仿真的16/32位ARM7 TDMI-S CPU微控制器,內部具有2個完全獨立的SPI控制器,采用全雙工的數據通信方式,最大數據位速率為外設時鐘Fpclk的1/8。與SPI總線接口有關的專用寄存器有:(1)SPCR控制寄存器。該寄存器包含一些可編程位來控制SPI總線的功能,而且在數據傳輸之前進行設定,主要有時鐘相位控制、時鐘極性控制、主從模式選擇、字節傳輸移動方向及SPI中斷使能;(2)SPSR狀態寄存器(為只讀寄存器)。用于監視SPI功能模塊的狀態,包括一般性功能和異常情況。主要用途是檢測數據傳輸是否完成,通過判斷SPIF位來實現,其他位用于指示異常情況;(3)SPDR數據寄存器。為SPI提供數據的發送和接收,處于主模式時,向該寄存器寫入數據,將啟動SPI數據傳輸。串行數據的發送和接收通過內部移位寄存器來實現;(4)SPCCR時鐘計數器寄存器。用于設置SPI時鐘分頻值,SPI處于主模式時,該寄存器用于控制時鐘速率,即SPI總線速率,寄存器值為1位SCK時鐘所占用的PCLK周期數,并且值為偶數,必須不小于8;(5)SPINT中斷標志寄存器。包含了SPI的中斷標志位,由數據傳輸完成及發生模式錯誤來引發。

1.1 SPI電氣連接

利用SPI總線可在軟件的控制下構成各種系統,如1個主MCU和幾個從MCU、幾個從MCU相互連接構成多主機系統(分布式系統)、1個主MCU和1個或幾個從I/O設備所構成的各種系統等。在大多數應用場合, 可使用1個MCU 作為主機來控制數據,并向1個或幾個從外圍器件傳送該數據。從器件只有在主機發命令時才能接收或發送數據。同一時刻只允許有1個主機操作總線。在數據傳輸過程中,總線上只能有1個主機和1個從機通信。在一次數據傳輸中,主機總是向從機發送1個字節數據,而從機也總是向主機發送1個字節數據[3]。圖1為SPI在主模式下控制2個SPI從機的硬件連接圖。

基于LPC2103微控制器實現LED數碼管的顯示設計

1.2 SPI數據傳輸

在SPI數據傳輸中,SPCR控制寄存器的CPHA和CPOL位作用非常關鍵。CPHA為時鐘相位控制,該位決定SPI傳輸時數據和時鐘的關系,并控制從機傳輸的起始和結束,該位為1,時鐘前沿數據輸出,后沿數據采樣;為0,時鐘前沿數據采樣,后沿數據輸出。CPOL為時鐘極性控制,為1時,SCK為低電平有效;為0時,SCK為高電平有效。

圖2為SPI的4種不同數據傳輸格式時序,描述的是8位數據傳輸。該時序圖水平方向分成3部分:(1)描述SCK和SSEL信號;(2)描述CPHA為0時的MOSI和MISO信號;(3)描述CPHA為1時的MOSI和MISO信號。SSEL信號為低電平,說明SPI工作在從模式。其中,MOSI和MISO信號中的bit1~bit8表示傳輸的第幾位數據。

2、 74HC595擴展I/O接口電路

SPI是一個串行輸入輸出的接口,使用串轉并的接口芯片可以實現擴展I/O口。74HC595芯片為一種常用的8位串轉并移位寄存器芯片,本系統利用74HC595來驅動靜態共陽LED數碼管。74HC595的主要優點:具有數據存儲寄存器,在移位過程中,輸出端的數據可以保持不變。這在串行速度慢的場合很有用處,數碼管沒有閃爍感。LPC2103工作在SPI主模式下。

圖3為74HC595邏輯圖。圖中,SI為串行數據輸入引腳,用來連接LPC2103的MOSI功能引腳;SCK為移位寄存器的時鐘輸入,連接LPC2103串行時鐘線SCK;為清移位寄存器引腳;RCK為鎖寄存器鎖存時鐘引腳;即輸出觸發端與SSEL連接;為輸出使能引腳;SQH為串行數據輸出引腳,連接MISO;QA~QH引腳為并行輸出。當為高電平、使能接低時,SCK產生一個上升沿,SI引腳當前電平值將在移位寄存器中左移1位,在下一個上升沿到來時移位寄存器中的所有位都會向左移1位,同時SQH引腳也會串行輸出移位寄存器中的高位的值。當RCK產生上升沿時,移位寄存器的值將會被鎖存到鎖存器里,并從QA~QH引腳輸出。

圖4為SPI接口與74HC595的連接原理圖。其中QA~QH分別連接共陽LED數碼管的8個段。在SPI輸出1個字節的數據時,SSEL產生1個低電平,SPI主機串行地發該字節的各個位,各個位都依次被鎖存在74HC595的移位寄存器內,當1個字節的數據傳輸完成后,SSEL由低電平變為高電平,從而使74HC595的移位寄存器的值被鎖存到74HC595的鎖存器并從其QA~QH引腳輸出;在SPI輸出1個字節數據的同時,74HC595移位寄存器之前的值也通過MISO引腳被SPI主機讀回。

3、 軟件設計

軟件設計包括:進行I/O口初始化,設置SPI引腳連接,啟用LPC2103的SPI 0總線,設置GPIO的P0.4、P0.5、P0.6、P0.7為SPI 0總線的SCK0、MISO0、MOSI0、SSEL0特殊功能,置74HC595片選端的I/O口為輸出功能。其代碼如下:

PINSEL0=0x00005500; //設置SPI引腳連接

PINSEL1=0x00000000;

IODIR=HC595_CS; //設置片選端I/O口為輸出

3.1 SPI總線操作初始化

圖5為SPI總線操作流程圖。使用LPC2103的SPI總線主模式下實現對74HC595的數據傳輸,用來驅動外圍LED數碼管。設置SPI時鐘,在SPI主模式下,SPCCR寄存器控制SCK的頻率,SPI速率為Fpclk / SPCCR。通過SPCR控制寄存器設置時鐘相位、時鐘極性、主模式控制、字節移動方向及SPI中斷使能等。代碼實現如下:

Void MSpiIni(void)

{ SPI_SPCCR = 0x52; //設置SPI時鐘分頻

SPI_SPCR = (0《《3)| //CPHA=0,數據再從SCK的第一時鐘沿采樣

(1《《4)| //CPOL=1,SCK為低有效

(1《《5)| //MSTR=1,SPI處于主模式

(0《《6)| //LSBF=0,SPI數據傳輸MSB(位7)在先

(0《《7); //SPIE=0,SPI中斷被禁止

}

3.2 SPI總線主模式下數據發送過程

首先選擇從機,設置片選。選擇74HC595為從機,置片選端SSEL為低有效。將發送的數據寫入SPDR,發送出去。等待SPIF置位,即數據發送完畢。最后可從SPDR讀取收到的數據。以下為發送函數:

uint8 MSendData(uint8 data)

{ IOCLR=HC595_CS; //片選端,由LPC2103指定的I/O口置位

SPI_SPDR=data;

while(0==(SPI_SPSR&0x80)); //等待SPIF置位,即等待數據發送完畢

IOSET=HC595_CS; //片選置高無效,結束發送

return(SPI_SPDR); //返回接收到的數據

}

3.3 控制LED數碼管主函數

主函數使用LPC2103的SPI接口輸出給74HC595,用來控制LED數碼管顯示。DISP_TAB[ ]為LED顯示0-F字模的16進制碼表。MSendData( )實現每一字節數據的發送。

#define HC595_CS 0x00000100 //P0.8口為74HC595的片選

uint8 const DISP_TAB[16]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

int main(void)

{ uint8 rcv_data;

uint8 i;

PINSEL0=0x00005500; //設置SPI引腳連接

PINSEL1=0x00000000;

IODIR=HC595_CS; //設置LPC2103片選I/O口為輸出功能

MSpiIni( ); //初始化SPI接口

while(1)

{ for (i=0;i《16;i++)

{rcv_data=MSendData(DISP_TAB[i]); //發送顯示數據

DelayNS(50); //延時

}

}

return(0);

}

基于SPI總線的數據通信技術已經廣泛應用在MCU與各種外圍設備的串行通信中。如存儲系統、A/D轉換系統、網絡控制器和多MCU構成的分布式系統。本文給出了74HC595芯片驅動LED數碼管顯示的電路,采用SPI總線技術實現對LED顯示的數據傳輸,方便快捷、準確性高、速度快,滿足了復雜微控制系統對外圍設備控制的要求。

責任編輯:gt


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

    關注

    48

    文章

    7646

    瀏覽量

    151949
  • led
    led
    +關注

    關注

    242

    文章

    23347

    瀏覽量

    662633
  • 數碼管
    +關注

    關注

    32

    文章

    1883

    瀏覽量

    91358
收藏 人收藏

    評論

    相關推薦

    Jlink連接LPC2103

    使用JLINK連接LPC2103時總是失敗,不知道是什么原因?{:soso_e132:}
    發表于 11-18 14:07

    基于EasyARM2103的DIY方案一:74HC595驅動數碼管設計

    僅適合本文的硬件電路,但筆段測試方法是相同的。為了在7端數碼管顯示數字或者字符,控制器送出的字符需要進行轉換,真值表的計算如表1.3所列。表中列出了7段數碼管上能夠
    發表于 03-30 09:58

    lpc2103

    我剛買的LPC2103開發板學ARM7,大家覺得如何?
    發表于 06-16 05:17

    求大神指導,LPC2103數碼管的輸出值是算的嗎?

    const U8 SEGMENT_DATA【16】={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}最近剛學習LPC2103板子,在弄數碼管的時候被這個難住了
    發表于 10-13 20:36

    12時制數字顯示電子鐘,MCU為LPC2103/2106

    ),校時時不能產生進位;(4)能顯示上午、下午標志。 開發環境MCU 為LPC2103/LPC2106交叉編譯為IAR Workbench 5.X仿真環境為Proteus7.X 這
    發表于 07-10 19:20

    關于lpc2103的問題

    誰能給一個lpc2103的最小系統原理圖,感激不盡!還有protues中模擬地在哪兒?謝謝!
    發表于 06-13 16:25

    LPC2103微控制器電路原理圖和PCB資料

    主要內容詳細介紹的是LPC2103微控制器的電路原理圖和PCB資料免費下載。
    發表于 09-22 07:04

    基于LPC2103 的SPI 總線技術的應用

    介紹了一種基于SPI 總線技術的LPC2103LED 數碼管顯示實現控制的方法。采用8 位7
    發表于 07-06 16:19 ?55次下載

    LED數碼管顯示控制實驗

    實驗 LED數碼管顯示控制實驗一、實驗目的1.學會用PLC控制LED
    發表于 09-30 13:18 ?1.4w次閱讀
    <b class='flag-5'>LED</b><b class='flag-5'>數碼管</b><b class='flag-5'>顯示</b><b class='flag-5'>控制</b>實驗

    LPC2103系列之無線藍牙控制小車LPC2103程序

    LPC2103系列之無線藍牙控制小車LPC2103程序,歡迎下載
    發表于 12-14 14:40 ?15次下載

    LPC2103工程模板

    LPC2103工程模板源代碼,下來看看。
    發表于 05-20 16:08 ?21次下載

    LPC2103的TFT320240彩屏的仿真

    LPC2103的TFT320240彩屏的仿真
    發表于 01-26 11:36 ?12次下載

    LPC2103微控制器的電路原理圖和PCB資料免費下載

    本文檔的主要內容詳細介紹的是LPC2103微控制器的電路原理圖和PCB資料免費下載。
    發表于 08-03 08:00 ?42次下載
    <b class='flag-5'>LPC2103</b><b class='flag-5'>微控制器</b>的電路原理圖和PCB資料免費下載

    LPC2103 PACK出廠演示程序

    LPC2103 PACK出廠演示程序(通信電源技術期刊編輯部電話)-【資源描述】:LPC2103 PACK出廠演示程序
    發表于 09-16 16:09 ?9次下載
    <b class='flag-5'>LPC2103</b> PACK出廠演示程序

    led數碼管顯示器靜態顯示接口是什么樣的

    主要有以下幾種: 1.1 并行接口 并行接口是指將LED數碼管的各個段(如a、b、c、d、e、f、g、dp)分別通過數據線連接到微控制器的相應I/O端口。并行接口的優點是編程簡單,但缺點是占用I/O端口較多,不適合I/O端口較少
    的頭像 發表于 08-28 17:37 ?784次閱讀
    主站蜘蛛池模板: 成年美女黄网站色大免费视频 | 五月天狠狠 | 月夜免费观看高清在线完整 | 亚洲第一久久 | 日本口工全彩无遮拦漫画大 | 日本三级免费 | 一级片免费在线 | 成人网在线视频 | 日日干夜夜操 | 成人久久久久久 | 久久精品视频99精品视频150 | 二级黄色大片 | 亚洲一二三四区 | 欧美综合国产精品日韩一 | 好爽~~~~嗯~~~再快点明星 | 五月天婷婷丁香中文在线观看 | 国产专区视频 | 激情理论片 | 亚洲天堂免费在线 | 天堂最新版中文网 | 欧美操bb| 五月婷婷激情网 | 福利社91 | 深爱五月网| 日本人zzzwww | 日韩亚射吧 | 亚洲午夜久久久精品影院视色 | 大象焦伊人久久综合网色视 | 嗯!啊!使劲用力在线观看 | 免费视频性| 同性恋激情视频 | 717影院理论午夜伦不卡久久 | 黄视频网站免费 | 丁香花高清在线观看 | 中文字幕一区二区三区 精品 | 婷婷综合五月中文字幕欧美 | 99成人国产精品视频 | 成人欧美一区二区三区 | 色视频在线播放 | 18视频免费网址在线观看 | 国产女人在线视频 |