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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

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

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

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

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

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

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

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

8、E uint32_t SysTick_Config(uint32_t ticks)if (tick>systick_maxcount) Return (1);SysTick->LOAD = (ticks & systick_maxcount)-1;NVIC_SetprioritySysTick_IRQn,(1<<_NVIC_PRIO_BITS)=1;SysTick->VAL = (0x00);SysTick->CTRL=(1<<SYSTICK_CLKSOURCE)|(1<<SYSTICK_ENABLE)|(1<<S

9、YSTICK_TICKINT);Return(0);實(shí)際上真正開啟SysTick定時(shí)器的就是這個(gè)函數(shù),前面的SysTick_Init(void)只是將這個(gè)函數(shù)封裝起來而已。一旦我們調(diào)用了這個(gè)函數(shù),SysTick定時(shí)器就被開啟,按照設(shè)定好的定時(shí)周期遞減技術(shù),SysTick定時(shí)器有一個(gè)24位的計(jì)數(shù)寄存器,當(dāng)計(jì)數(shù)寄存器里面的值減為0時(shí),就進(jìn)入中斷函數(shù),當(dāng)中斷函數(shù)執(zhí)行完畢之后又重新計(jì)時(shí),如此循環(huán),除非它被關(guān)閉,SysTick定時(shí)器的開啟和關(guān)閉由其控制及狀態(tài)寄存器的第0位來控制。最終可以用條件判斷來的到秒脈沖的程序,其主要程序如下所示:uint16_t t;void systick_init(void)

10、if(SysTick_Config(72000000 / 1000)/延時(shí)n毫秒while(1); /SysTick->CTRL = SysTick_CTRL_ENABLE_Msk; SysTick->CTRL &= SysTick_CTRL_ENABLE_Msk; void delay_ms(uint16_t x)t = x;SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;while(t != 0);void systick_interrupt(void)if (t != 0) t-;void delay_s(unsigned in

11、t s)while(s-)delay_ms(1000);其I/O口配置和邏輯延時(shí)程序見附錄所示。4系統(tǒng)調(diào)試將開發(fā)板的各個(gè)引腳用排線與驅(qū)動(dòng)電路的基極相連接,驅(qū)動(dòng)電路的射級(jí)公共端接地,各個(gè)集電極與對(duì)應(yīng)的由三色發(fā)光管組成的紅綠燈相的公共陰極相連接,將紅綠燈的各個(gè)陽極接至12V電源。將程序下載至STM32F103RB芯片中,運(yùn)行開發(fā)板并觀察。測試發(fā)現(xiàn)有的紅綠燈出現(xiàn)部分發(fā)光管不亮現(xiàn)象。初步判斷是由于管子引腳接反或者印制線開路所致,用萬用表進(jìn)行逐一測量發(fā)現(xiàn)其中有些發(fā)光管組是因?yàn)榘l(fā)光管的引腳接反所致,有的是開焊或印制線在制作當(dāng)中被腐斷所致。于是對(duì)其進(jìn)行一一整改,整改后交通燈均按照正常的邏輯順序進(jìn)行交替閃爍,

12、的到了預(yù)期的效果,實(shí)現(xiàn)了設(shè)計(jì)的要求。5實(shí)習(xí)總結(jié)通過本次基于STM32F103RB的紅綠燈的課程設(shè)計(jì)設(shè)計(jì),使我們了解了嵌入式系統(tǒng),熟悉了STM32F103RB芯片的一些特性,學(xué)會(huì)了對(duì)ARM芯片的編程和調(diào)試;同時(shí)也是我們明白了交通燈的工作過程和控制原理。這次課程設(shè)計(jì)之后是同學(xué)們對(duì)嵌入式有了很深的了解,激發(fā)了同學(xué)們的學(xué)習(xí)熱情和學(xué)習(xí)欲望。在日后的嵌入式學(xué)習(xí)中起到了鋪墊和鞏固的至關(guān)重要的作用。在本次課程設(shè)計(jì)的實(shí)習(xí)中,老師的耐心指導(dǎo)和同學(xué)們的刻苦訓(xùn)練的精神讓人難忘,在這里衷心感謝老師的對(duì)同學(xué)們耐心、認(rèn)真和負(fù)責(zé)的教育指導(dǎo)。在今后的學(xué)習(xí)中我們將繼續(xù)努力以更加認(rèn)真的態(tài)度學(xué)習(xí)好所有課程,認(rèn)真對(duì)待每次的實(shí)習(xí)為明年的

13、就業(yè)工作做好準(zhǔn)備。參考文獻(xiàn)1 周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程M.北京:北京航空航天大學(xué)出版社,2005.1.2康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)M.北京:高等教育出版社,2006.13賴于樹.ARM微處理器與應(yīng)用開發(fā)M,北京:電子工業(yè)出版社,2007.8附錄#include "LED.H"#include "systick.h"void led_control(void) GPIO_ResetBits(GPIOA,GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_6|GPIO_Pin_8|GPIO_Pin_11|GPIO_Pin_14

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_s(15); GPIO_SetBits(GPIOA,GPIO_Pin_2);/左1綠滅 delay_s(1); GPIO_ResetBits(GPIOA,GPIO_Pin_2);/左1綠亮 delay_s(1)

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綠滅 GPIO_ResetBits(GPIOA,GPIO_Pin_1);/左1黃亮 delay_s(3); GPIO_SetBi

16、ts(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_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綠亮 del

溫馨提示

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

評(píng)論

0/150

提交評(píng)論