嵌入式系統(tǒng)課程設計_第1頁
嵌入式系統(tǒng)課程設計_第2頁
嵌入式系統(tǒng)課程設計_第3頁
嵌入式系統(tǒng)課程設計_第4頁
嵌入式系統(tǒng)課程設計_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、嵌入式系統(tǒng)課程設計報告 基于ARM的交通燈控制系統(tǒng)設計院 系: 學生姓名: 專 業(yè): 班 級: 指導教師: 完成時間: 2015年5月15日 摘要:本設計是基于STM32F103RB的紅綠燈設計,其以ARM芯片為控制中心,通過對STM32F103RB芯片引腳的配置控制驅動電路的導通與關斷,從而控制紅綠燈的順序亮滅。本設計主要由三部分電路組成:ARM開發(fā)板、LED驅動電路和LED組顯示燈。概述了LED驅動電路、LED組顯示燈電路和控制軟件的設計方法。交通燈的系統(tǒng)時間由軟件程序系統(tǒng)滴答時鐘定時器和延時函數(shù)構成。關鍵詞:STM32F103RB、驅動電路、LED組顯示燈、滴答時鐘1引言隨著城市交通擁堵

2、問題的日益突出,傳統(tǒng)的人為交通疏導已經不能適應人們的出行要求。解決了城市交通擁擠問題,提高城市交通的效率,適應未來的城市交通的發(fā)展,從長遠來看該研究具有巨大的現(xiàn)實意義。本設計采用RAM芯片通過編程精準可靠地系統(tǒng)控制驅動電路,從而控制交通燈的順序亮滅。該系統(tǒng)具有靈活性、易維護性、安全性和可拓展性,具有很高的使用價值。2設計方案2.1設計要求制作一個十字路口模型,并實現(xiàn)普通路口的所有控制功能。(1) 以箭頭表示左轉、前行、右轉;(2) 要求設置行人、非機動車指示燈、并且有相應動作。(3) 可以根據(jù)自己的進度擴展其他功能。(4) 根據(jù)設計任務要求十字路口交通模型圖如下圖1所示:圖1 十字路口交通信號

3、燈控制示意圖2.2交通燈工作過程的分析(1)東西路左轉、直行、人行道和非機動車道紅燈亮。(2)南北路直行、人行道和非機動車道紅燈亮,左轉綠燈亮15秒,之后左轉黃燈亮3秒,接著左轉紅燈亮。直行綠燈亮15秒,同時人行道和非機動車道綠燈亮12秒,之后人行道和非機動車道綠燈亮以1秒間隔連閃3次,以警告人行道和非機動車道上的行人,之后變?yōu)榧t燈。同時直行綠燈滅黃燈亮3秒,直行紅燈亮。此時南北路口紅燈全亮禁止通行。(3)南北直行紅燈亮的同時東西左轉綠燈亮15秒,之后左轉黃燈亮3秒,左轉紅燈亮。東西直行綠燈亮15秒,同時人行道和非機動車道綠燈亮12秒,12秒到分別以1秒間隔連閃三次,人行道和非機動車道紅燈亮。

4、15秒到東西直行紅燈亮。東西路所有紅燈亮,東西路口禁止通行。東西直行紅燈亮同時南北左轉綠燈亮15秒。此時紅綠燈完成一個邏輯控制,之后以上邏輯分析所示依次循環(huán)。2.3總體設計方案本設計主要部件是ARM開發(fā)板STM32F103RB芯片,通過編程控制STM32F103RB芯片I/O口引腳的電平,直接控制驅動電路的通斷,間接控制LED組顯示燈構成的紅綠燈。其總體方案框圖如下體2所示。ARM開發(fā)板STM32F103RB芯片圖2 總體設計方案框圖2.4驅動電路的設計考慮到所給電源要求為12V,每個發(fā)光管經實際測量在發(fā)光管兩端加至2V時亮度最大且在繼續(xù)加電壓變化不大,既滿足了亮度需求也確保了其使用壽命。經過

5、以上測量分析采用沒6個發(fā)光管串聯(lián)為一組,多組發(fā)光管并聯(lián)接至驅動電路上。這樣每組發(fā)光管所流過的電流為10mA,每個燈大概均為10組以上,所以驅動電路要承受起100mA以上的電流。三極管8050的ICQ為0.5A,可以驅動這些發(fā)光管組,為了保險起見采用兩個三極管并聯(lián)形勢以確保能夠安全穩(wěn)定的工作。由于STM32F103RB芯片引腳高電平時電壓3.3V,綜上分析采用兩個8050NPN型三極管來構成。3程序設計在本設計的程序中最重要也是最核心的是秒時鐘的程序,在這里我們用滴答時鐘作為源程序對其進行擴展使其實現(xiàn)以秒為單位的計時,然后根據(jù)邏輯控制著各個I/O口的電平高低,從而控制交通燈的順序亮滅。Corte

6、x-M3處理器內包含了一個簡單的定時器。因為所有的CM3芯片都帶有這個定時器,軟件在不同CM3器件間的移植工作就得以簡化。該定時器的時鐘源可以是內部時鐘(FCLK,CM3上的自由運行時鐘),或者是外部時鐘(CM3處理器上的STCLK信號)。在STM32中Systick以FCLK作為運行時鐘。首先我們從主程序看起。主程序如下所示:int main(void)SystemInit(); /系統(tǒng)初始化時鐘配置,初始化為72MHZ時鐘GPIO_Config(); / GPIO端口配置for(;)led_control() ;SystemInit();將系統(tǒng)時鐘配置為72M。GPIO_Config();

7、配置與LED相關的I/O口,SystemInit();這個函數(shù)是在SysTick.c文件中實現(xiàn)的,其功能是啟動系統(tǒng)滴答定時器SysTick,并將SysTick配置為1us中斷一次。SysTick_Init();函數(shù)如下所示:Viod SysTick_Init(void)/*SystemFrequency / 1us中斷一次If (SysTick_config(SystemFrequency / ) While(1);SysTick_Init();函數(shù)又調用了庫函數(shù)SysTick_Config(uint32_t ticks);其程序如下所示:Static_LININE uint32_t SysT

8、ick_Config(uint32_t ticks)if (ticksystick_maxcount) Return (1);SysTick-LOAD = (ticks & systick_maxcount)-1;NVIC_SetprioritySysTick_IRQn,(1VAL = (0x00);SysTick-CTRL=(1SYSTICK_CLKSOURCE)|(1SYSTICK_ENABLE)|(1CTRL = SysTick_CTRL_ENABLE_Msk; SysTick-CTRL &= SysTick_CTRL_ENABLE_Msk; void delay_ms(uint16_t

9、 x)t = x;SysTick-CTRL |= SysTick_CTRL_ENABLE_Msk;while(t != 0);void systick_interrupt(void)if (t != 0) t-;void delay_s(unsigned int s)while(s-)delay_ms(1000);其I/O口配置和邏輯延時程序見附錄所示。4系統(tǒng)調試將開發(fā)板的各個引腳用排線與驅動電路的基極相連接,驅動電路的射級公共端接地,各個集電極與對應的由三色發(fā)光管組成的紅綠燈相的公共陰極相連接,將紅綠燈的各個陽極接至12V電源。將程序下載至STM32F103RB芯片中,運行開發(fā)板并觀察。測試

10、發(fā)現(xiàn)有的紅綠燈出現(xiàn)部分發(fā)光管不亮現(xiàn)象。初步判斷是由于管子引腳接反或者印制線開路所致,用萬用表進行逐一測量發(fā)現(xiàn)其中有些發(fā)光管組是因為發(fā)光管的引腳接反所致,有的是開焊或印制線在制作當中被腐斷所致。于是對其進行一一整改,整改后交通燈均按照正常的邏輯順序進行交替閃爍,的到了預期的效果,實現(xiàn)了設計的要求。5實習總結通過本次基于STM32F103RB的紅綠燈的課程設計設計,使我們了解了嵌入式系統(tǒng),熟悉了STM32F103RB芯片的一些特性,學會了對ARM芯片的編程和調試;同時也是我們明白了交通燈的工作過程和控制原理。這次課程設計之后是同學們對嵌入式有了很深的了解,激發(fā)了同學們的學習熱情和學習欲望。在日后的

11、嵌入式學習中起到了鋪墊和鞏固的至關重要的作用。在本次課程設計的實習中,老師的耐心指導和同學們的刻苦訓練的精神讓人難忘,在這里衷心感謝老師的對同學們耐心、認真和負責的教育指導。在今后的學習中我們將繼續(xù)努力以更加認真的態(tài)度學習好所有課程,認真對待每次的實習為明年的就業(yè)工作做好準備。參考文獻1 周立功等.ARM嵌入式系統(tǒng)基礎教程M.北京:北京航空航天大學出版社,2005.1.2康華光.電子技術基礎數(shù)字部分(第五版)M.北京:高等教育出版社,2006.13賴于樹.ARM微處理器與應用開發(fā)M,北京:電子工業(yè)出版社,2007.8附錄#include LED.H#include systick.hvoid

12、led_control(void) GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_6|GPIO_Pin_8|GPIO_Pin_11|GPIO_Pin_14);/PA2,3,6,8,11,14=0;左1綠,直1紅,人車1紅,左2紅,直2紅,人車2紅燈亮GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_15);/其他全滅; delay

13、_s(15); GPIO_SetBits(GPIOA,GPIO_Pin_2);/左1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_2);/左1綠亮 delay_s(1); GPIO_SetBits(GPIOA,GPIO_Pin_2);/左1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_2);/左1綠亮 delay_s(1); GPIO_SetBits(GPIOA,GPIO_Pin_2);/左1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_2);/左1綠亮 dela

14、y_s(1); GPIO_SetBits(GPIOA,GPIO_Pin_2);/左1綠滅 GPIO_ResetBits(GPIOA,GPIO_Pin_1);/左1黃亮 delay_s(3); GPIO_SetBits(GPIOA,GPIO_Pin_1);/左1黃滅 GPIO_ResetBits(GPIOA,GPIO_Pin_0);/左1紅亮 delay_s(3); GPIO_SetBits(GPIOA,GPIO_Pin_3|GPIO_Pin_6);/直1紅滅,人車1紅滅 GPIO_ResetBits(GPIOA,GPIO_Pin_5|GPIO_Pin_7);/直1綠亮,人車1綠亮 delay_

15、s(15); GPIO_SetBits(GPIOA,GPIO_Pin_7);/人車1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_7);/人車1綠亮 delay_s(1); GPIO_SetBits(GPIOA,GPIO_Pin_7);/人車1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_7);/人車1綠亮 delay_s(1); GPIO_SetBits(GPIOA,GPIO_Pin_7);/人車1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_7);/人車1綠亮 delay_s(1); GPIO_SetBits(GPI

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論