1 引言
今天,紅綠燈安裝在各個道口上,已經成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現了。
1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩塊以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。
1914年,電氣啟動的紅綠燈出現在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。
1918年,又出現了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,當車輛接近時,紅燈便變為綠燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下喇叭,就使紅燈變為綠燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發生交通事故。
信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯合國《道路交通和道路標志信號協定》對各種信號燈的含義作了規定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉彎和右轉彎,除非另一種標志禁止某一種轉向。左右轉彎車輛都必須讓合法地正在路口內行駛的車輛和過人行橫道的行人優先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。
隨著經濟的發展,交通運輸中出現了一些傳統方法難以解決的問題。道路擁擠現象日趨嚴重,造成的經濟損失越來越大,并一直保持大比例的增長?,F在交通系統已不能滿足經濟發展的需求。由于生活水平的提高,人們對交通運輸的安全性及服務水平提出了更高的要求。在交通中管理引入單片機交通燈控制代替交管人員在交叉路口服務,有助于提高交通運輸的安全性、提高交通管理的服務質量。并在一定程度上盡可能的降低由道路擁擠造成的經濟損失,同時也減小了工作人員的勞動強度。
中國車輛數量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管理比重修一條馬路無論在經濟、交通運行速率上都有很好的效益、更加節約資源。使交管人員有更多的精力投入到管理整個城市交通控制,帶來更大的經濟和社會效益,為創造美好的城市交通形象發揮更多的作用。
2 系統方案
2.1 設計任務
東西(A)、南北(B)兩干道交于一個十字路口,各干道有一組紅、黃、綠三個指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。為20秒,信號燈的狀態規則:每一方向亮綠燈,而另一方向亮紅燈,紅燈時間比綠燈長3秒,當綠燈減到0時,到下一個狀態,此時綠燈方向的變為黃色,依次循環。設A道和B道的車流量相同。
2.2 方案介紹
把設計任務細化為四個狀態,其對應狀態:如圖2-1
圖2-1 狀態轉換圖
設計思想:初始狀態1為東西綠燈通車,延時17秒,南北紅燈禁止,延時20秒。然后轉狀態2為東西黃燈,延時3秒,南北仍然紅燈禁止。過一段時間轉狀態3,東西紅燈禁止,延時30秒,南北綠燈,延時27秒。再轉狀態4,東西仍然紅燈,南北黃燈,延時3秒,最后循環至狀態1。狀態流程圖如圖2-2所示
圖2-2整體規劃圖
3交通燈硬件系統設計
3.1單片機介紹
3.1.1單片機的概念與特點
所謂單片機,就是把中央處理器CPU,存儲器和定時器,及I/O接口電路等一些計算機的主要功能部件,集成在一塊電路芯片上的微型計算機。單片機從一出現就顯示出強大的生命力,被廣泛應用于各種控制系統﹑智能儀表、家用電器等設備里面,現在已經滲透到人類生活的各個領域。
單片機具有以下特點:
l 小巧靈活、成本低、易于產品化。他能方便地組裝成各種智能式設備以及各種智能儀表。
l 面向控制,能針對性地解決從簡單到復雜的各類控制任務,從而獲得最佳性價比。
l 抗干擾能力強,適應溫度范圍寬,在各種條件下都能穩定工作,這是其他機型所無法比擬的。
l 可以很方便的實現多機型和分布式控制,使整個系統的效率和可靠性大為提高。
3.1.2單片機的應用
20世紀80年代以來,單片機的應用已經深入到﹑交通﹑農業﹑國防﹑科研﹑教育以及日常生活用品等各種領域。單片機的主要應用范圍如下:
l 工業控制。單片機在工業的應用包括電機控制﹑數控機床﹑物理量的檢測與處理,工業機器人﹑過程控制和智能傳感器等。
l 農業方面。包括植物生長過程要素的測量與控制,智能灌溉和遠程大棚控制等。
l 通信方面。調制解調器﹑網絡終端﹑智能線路運行控制以及遠程電話交換機。
l 日常生活用品方面。包括移動電話﹑照相相機﹑電子玩具﹑電子詞典﹑空調機等。
l 汽車控制方面。門窗控制﹑音響控制﹑點火控制﹑變速控制﹑防滑剎車控制﹑排氣控制﹑節能控制﹑安全控制﹑冷氣控制﹑汽車報警控制以及測試設備。
3.1.3單片機的發展趨勢
單片機的發展已經逐步走向成熟。一方面,單片機的性能逐步提高,16位﹑32位單片機不斷推出;另一方面,在目前的實際應用中還是以八位居多。8位單片機也不斷采用新技術,以取得更高的性價比,單片機技術的發展有以下幾個方面特點。
1.集成度更高,功能更強
目前,已經有許多單片機不僅集成了構成微型計算機的中央處理單元CPU﹑存儲器﹑I/O接口﹑定時器等傳統功能單元,而且還集成了A/D轉換模塊﹑D/A轉換模塊﹑并支持多種通信方式(如UART﹑CAN﹑SPI﹑IIC)。單片機技術正朝著片上技術發展。許多單片機都集成了在線可編程功能,用戶可以對已經焊接到電路板上的單片機進行編程,不需要專門的編程器。
2 使用更加方便
許多單片機內部集成程序存儲器和數據器,在實際應用中一般不需要外部擴展程序存儲器和數據存儲器,從而不再需要外部擴展總線,構成系統的電路結構簡單,體積小,穩定性提高。
3 低電壓,低功耗
使用CMOS的低功耗電路,具有省電工作狀態,如等待狀態,休眠狀態,關閉狀態等。有些單片機的工作電壓較低,為3.3V,甚至1.8V。低電壓,低功耗的單片機可以滿足便攜式或電池供電等儀器儀表應用的需求。
4 價格更低
隨著微電子技術的不斷進步,許多公司陸續推出了價格更低的單片機,可以說,在相當一部分以單片機為核心的嵌入式產品中,單片機的硬件成本已經占很小的比例,更多的是系統設計,系統開發與維護成本。
3.1.4主流單片機
著名的半導體廠商——美國德州儀器在20世紀70年代首先推出了TMS1000系列4位單片機。20世紀80—90年代,國內主要使用Intel公司的的MCS-51系列和Motorola公司的68HC系列8位單片機。現在,通用性能單片機的廠家不下數十家,生產種類有幾百種之多,從生產廠家來說,有Intel公司﹑美國國家半導體儀器公司﹑TI公司﹑Atmel公司﹑Motorola﹑美國微芯公司等等。
美國Intel公司是最早的處理生產廠商,8051單片機是它的典型產品。由8051發展起來的MCS-51系列包含了很多品種,如8031﹑8051﹑8751﹑8032﹑8052﹑8752等,該系列其他單片機都是在8051的基礎上進行功能的增減改變而來,人們習慣于用8051來稱呼MCS-51系列單片機。MCS-51單片機由Intel公司推出后,多級公司購買了8052
圖3-1定時器A的結構原理
的內核,并生產了以051為內核的單片機。
Motorola公司是世界上最大的單片機生產廠商,其產品特點品種齊全,選擇余地大,新產品多,多年來一直雄踞單片機銷量的榜首。從M6800開始,開發了眾多的品種,有4位,8位,16位和32位單片機。其單片機的特點:高頻噪聲低,抗干擾能力強,更適合于工控領域及惡劣環境。
Atmel公司是全球著名的半導體公司,它生產基于51內核的AT89系列單片機和基于精簡指令集AVR系列單片機。20世紀90年代初,Atmel率先把MCS-51內核與其擅長的Flash技術相結合,推出轟動業界的AT89系列單片機。AT89C51系列單片機與Intel8051系列完全兼容,在MCS-51市場占據重要份額。廣泛應用于交通﹑農業﹑國防﹑科研﹑教育等領域。
TI公司主要生產MSP430單片機。MSP430單片機系列是一種超低功耗的Flash
單片機,其技術特征代表了單片機的發展方向。它的存儲模塊是目前業界所有內部集成Flash存儲器產品中能耗最低的一種,功耗僅為其他的五分之一。MSP430單片機具有高效的16位RSIC內核﹑27條指令﹑125ns指令周期,絕大多數指令在一個時鐘周期內完成,供電電壓在1.8~3.6V,程序代碼加密后無法解密;只需外接一個電阻﹑一個電容即可實現高精度斜率A/D﹑待機激活時間僅為16ns,串行在線編程的并行開發方式可以迅速的開發新產品。另外,MSP430系列具有強大的中斷能力,10萬次燒寫,ESD保護和較強的抗干擾能力。他廣泛的應用于煤氣表﹑電子電度表﹑火警智能接頭﹑通信產品﹑家庭自動化產品。
3.1.5MSP430系列單片機
在結構上MSP430系列單片機集成了一部計算機的各個基本組成部分。雖然其工作原理與普通微機并無差異,但MSP430系列單片機在結構上更加突出了體積小、功能強、面向控制的特點,具有很高的性能價格比。表3-2定時器A的結構原理MSP430的內核CPU結構是按照精簡指令集的宗旨來設計的。具有豐富的寄存器資源、強大的處理控制能力和靈活的操作方式。
MSP430的存儲器結構采用了統一編址方式,可以使得對外圍模塊寄存器的操作象普通的RAM單元一樣方便、靈活。MSP430存儲器的信息類型豐富,并具有很強的系統外圍模塊擴展能力。
MSP430系列單片機由CPU、存儲器和外圍模塊組成,這些部件通過內部地址總線、數據總線和控制總線相連構成單片微機系統。
l 直接嵌入仿真處理,具有JTAG接口。
l 能夠降低功耗,降低噪聲對存儲器存取的影響。
l 16位數據寬度,數據處理更為有效。
l 16位CPU通過總線連接到存儲器和外圍模塊。
圖3-2 MSP430單片機的硬件結構
MSP430系列單片機包含以下主要功能部件:CPU:MSP430系列單片機的CPU和通用微處理器基本相同,只是在設計上采用了面向控制的結構和指令系統。MSP430的內核CPU結構是按照精簡指令集和高透明的宗旨而設計的,使用的指令有硬件執行的內核指令和基于現有硬件結構的仿真指令。這樣可以提高指令執行速度和效率,增強了MSP430的實時處理能力。
MSP430 CPU的主要特征1)精簡指令集高度正交化2)寄存器資源豐富3)寄存器操作為單周期4)16位地址總線5)常數發生器
存儲器:存儲程序、數據以及外圍模塊的運行控制信息。有程序存儲器和數據存儲器。對程序存儲器訪問總是以字形式取得代碼,而對數據可以用字或字節方式訪問。其中MSP430各系列單片機的程序存儲器有ROM、OTP、EPROM和FLASH型。
外圍模塊:經過MAB、MDB、中斷服務及請求線與CPU相連。MSP430不同系列產品所包含外圍模塊的種類及數目可能不同。它們分別是以下一些外圍模塊的組合:時鐘模塊、看門狗、定時器A、定時器B、比較器A、串口0、1、硬件乘法器、液晶驅動器、模數轉換、數模轉換、端口、基本定時器、DMA控制器等。
端口P1和P21)PxDIR輸入/輸出方向寄存器 2)PxIN輸入寄存器 3)PxOUT輸出寄存器 4)PxIE中斷使能寄存器 5)PxIES中斷觸發沿選擇寄存器
16位定時器A
具有以下特點:
l 具有16位計數器,4種計數工作模式
l 具有多種可選擇的計數時鐘源,可以靈活地選擇低速時鐘ACLK和高速時鐘SMCLK以及外部時鐘;
l 具有多個可配置輸入端的捕獲/比較寄存器;
l 支持多時鐘控制,多個捕獲/比較功能以及輸出波形;
l 具有異步輸入,輸出鎖存器;
l 能捕獲外部世界發生的時間,鎖定其發生時的高低電平;
l 具有完善的中斷服務功能;
l 具有八種輸出方式選擇,3個可配置輸出單元;
1)TACTL控制寄存器
TACTL控制寄存器 | ||||||||||
15--10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
未用 | TASSEL1 | TASSEL0 | ID0 | ID1 | MC1 | MC0 | 未用 | CLR | TALE | TAIFG |
表3-4
TASSEL1,TASSEL0選擇定時器輸入分頻器的輸入時鐘源,如表3-5
表3-4 Timer_A輸入時鐘源選擇
TASSEL1 | TASSEL0 | 輸入時鐘源 | 說明 |
0 | 0 | TACLK | 使用外部引腳作為輸入 |
0 | 1 | ACLK | 輔助時鐘 |
1 | 0 | MCLK | 系統主時鐘 |
1 | 1 | INCLK | 外部輸入時鐘 |
表3—5
ID0,ID1選擇輸入分頻器的分頻系數。由TASSEL0和TASSEL1兩位選擇時鐘源,然后又ID0和ID1選擇分頻系數將輸入信號分頻,分頻后的信號采用計數器計數。在MSP430系列單片機中,INCLK信號經過反向驅動之后再送入,與其他器件有點差別。
00 直通,不分頻;
01 1/2分頻;
10 1/4分頻;
11 1/8分頻;
MC0,MC1 選擇定時器工作模式
00 停止模式,用于定時器暫停;
01 增計數模式,計數器計數到CCR0,再清零計數;
10 連續計數模式,計數器增計數到0FFFFH,再清零計數;
11 增/減計數模式,增計數到CCR0,再減計數到0。
TACLR 定時器清除位,計數內容清零。
TAIE 中斷允許位。該位允許位定時器溢出中斷。
TAIFG 定時器溢出標志位。在不同的定時器工作模式下,該位置條件不一樣。
增計數模式,定時器由CCR0計數到0時,TAIFG置位;
連續計數模式,定時器由0FFFFH計數到0時,TAIFG置位;
增/減計數模式,定時器由1計數到0時,TAIFG置位。
MSP430的主要特點:
1)低電源電壓范圍,1.8~3.6V。(2)超低功耗,擁有5種低功耗模式(以后會詳細介紹)。(3)靈活的時鐘使用模式。(4)高速的運算能力,16位RISC架構,125ns指令周期。(5)豐富的功能模塊,這些功能模塊包括:A:多通道10-14位AD轉換器;B:雙路12位DA轉換器;C:比較器;D:液晶驅動器;E:電源電壓檢測;F:串行口USART(UART/SPI);G:硬件乘法器;H:看門狗定時器,多個16位、8位定時器(可進行捕獲,比較,PWM輸出);I:DMA控制器。(6)FLASH存儲器,不需要額外的高電壓就在運行種由程序控制寫擦歐哦和段的擦除;(7)MSP430芯片上包括JTAG接口,仿真調試通過一個簡單的JTAG接口轉換器就可以方便的實現如設置斷點、單步執行、讀寫寄存器等調試;(8)快速靈活的變成方式,可通過JTAG和BSL兩種方式向CPU內裝在程序。
MSP430單片機的復位
MSP430的復位信號有2種:上電復位信號(POR)、上電清除信號(PUC)。還有能夠觸發POR和PUC的信號:5種來在看門狗,1種來自復位管腳,1種來自寫FLASH鍵值出現錯誤所產生的信號。
POR信號只在2種情況下發生:(1)微處理上電;(2)RST/NMI管腳上產生低電平時系統復位。
PUC信號產生的條件:(1)POR信號產生;(2)看門狗有效時,看門狗定時器溢出;(3)寫看門狗定時器安全鍵值出現錯誤;(4)寫FLASH存儲器安全鍵值出現錯誤。
POR和PUC兩者的關系:POR信號的產生會導致系統復位并產生PUC信號。而PUC信號不會引起POR信號的產生。
無論是POR信號還是PUC信號觸發的復位,都會使MSP430從地址0xFFFE處讀取復位中斷向量,程序從中斷向量所指的地址處開始執行。觸發PUC信號的條件中,除了POR產生觸發PUC信號外,其他的豆科一通過讀取相應的中斷向量來判斷是何種原因引起的PUC信號,以便作出相應的處理。
系統復位(指POR)后的狀態為:(1)RST/NMI管腳功能被設置為復位功能;(2)所有I/O管腳被設置為輸入;(3)外圍模塊被初始化,其寄存器值為相關手冊上的默認值;(4)狀態寄存器SR復位;(5)看門狗激活,進入工作模式;(6)程序計數器PC載入0xFFFE處的地址,微處理器從此地址開始執行程序。
典型的復位電路有一下3種:(1) 在RST/NMI管腳上接100K歐的上拉電阻。(2)在(1)的基礎上再接0.1uf的電容,電容的一端接地,可以使復位更加可靠。(3)再(2)的基礎上,再在電阻上并接一個型號為IN4008的二極管,可以可靠的實現系統斷電后立即上電。
MSP430單片機的時鐘系統
MSP430根據型號的不同最多可以選擇使用3個振蕩器。我們可以根據需要選擇合適的振蕩頻率,并可以在不需要時隨時關閉振蕩器,以節省功耗。這3個振蕩器分別為:
(1)DCO 數控RC振蕩器。它在芯片內部,不用時可以關閉。DCO的振蕩頻率會受周圍環境溫度和MSP430工作電壓的影響,且同一型號的芯片所產生的頻率也不相同。但DCO的調節功能可以改善它的性能,他的調節分為以下3步:a:選擇BCSCTL1.RSELx確定時鐘的標稱頻率;b:選擇DCOCTL.DCOx在標稱頻率基礎上分段粗調;c:選擇DCOCTL.MODx的值進行細調。
(2)LFXT1 接低頻振蕩器。典型為接32768HZ的時鐘振蕩器,此時振蕩器不需要接負載電容。也可以接450KHZ~8MHZ的標準晶體振蕩器,此時需要接負載電容。
(3)XT2 接450KHZ~8MHZ的標準晶體振蕩器。此時需要接負載電容,不用時可以關閉。
低頻振蕩器主要用來降低能量消耗,如使用電池供電的系統,高頻振蕩器用來對事件做出快速反應或者供CPU進行大量運算。
MSP430的3種時鐘信號:MCLK系統主時鐘;SMCLK系統子時鐘;ACLK輔助時鐘。
(1)MCLK系統主時鐘。除了CPU運算使用此時鐘以外,外圍模塊也可以使用。MCLK可以選擇任何一個振蕩器所產生的時鐘信號并進行1、2、4、8分頻作為其信號源。
(2)SMCLK系統子時鐘。供外圍模塊使用。并在使用前可以通過各模塊的寄存器實現分頻。SMCLK可以選擇任何一個振蕩器所產生的時鐘信號并進行1、2、4、8分頻作為其信號源。
(3)ACLK輔助時鐘。供外圍模塊使用。并在使用前可以通過各模塊的寄存器實現分頻。但ACLK只能由LFXT1進行1、2、4、8分頻作為信號源。
PUC復位后,MCLK和SMCLK的信號源為DCO,DCO的振蕩頻率為800KHZ。ACLK的信號源為LFXT1。
MSP430內部含有晶體振蕩器失效監測電路,監測LFXT1(工作在高頻模式)和XT2輸出的時鐘信號。當時鐘信號丟失50us時,監測電路捕捉到振蕩器失效。如果MCLK信號來自LFXT1或者XT2,那么MSP430自動把MCLK的信號切換為DCO,這樣可以保證程序繼續運行。但MSP430不對工作在低頻模式的LFXT1進行監測。
3.2交通燈設計的其他外設硬件
3.2.1顯示譯碼器
由于單片機的端口有限,所以在控制數碼管的時候使用了74LS47顯示譯碼器。
譯碼原理如圖3-4是所示:
圖3-6 74LS47譯碼圖
圖3-7 74LS47引腳圖
常用的半導體顯示器
(3)基本特點 半導體顯示器的特點是清晰悅目,工作電壓低,體積小,壽命長,響應速度快,顏色豐富,安全可靠。
圖3-9 外設原理圖
3.2.2數碼管的使用
本次設計使用的是共陽LG5621DH雙體數碼管
(1)數碼管的結構
ED數碼管也稱半導體數碼管,是目前數字電路中最常用的顯示器件。它是以發光二極管作筆段并按共陰極方式或共陽極方式連接后封裝而成的。圖3-8所示是兩種LED數碼管的外形與內部結構,+、-分別表示公共陽極和公共陰極,a~g是7個筆段電極,DP為小數點。LED數碼管型號較多,規格尺寸也各異,顯示顏色有紅、綠、橙等。
圖3-10 共陽和共陰
(2)LED數碼管的檢測方法
用二極管檔檢測
將數字萬用表置于二極管檔時,其開路電壓為+2.8V。用此檔測量LED數碼管各引腳之間是否導通,可以識別該數碼管是共陰極型還是共陽極型,并可判別各引腳所對應的筆段有無損壞。
1 .檢測已知引腳排列的LED數碼管
檢測接線如圖5-42所示。將數字萬用表置于二極管檔,黑表筆與數碼管的h點(LED的共陰極)相接,然后用紅表筆依次去觸碰數碼管的其他引腳,觸到哪個引腳,哪個筆段就應發光。若觸到某個引腳時,所對應的筆段不發光,則說明該筆段已經損壞。
2. 檢測引腳排列不明的LED數碼管
有些市售LED數碼管不注明型號,也不提供引腳排列圖。遇到這種情況,可使用數字萬用表方便地檢測出數碼管的結構類型、引腳排列以及全筆段發光性能。
3.2.3 LED燈的選擇
本次設計使用了6個發光二極管,2個紅色﹑2個綠色﹑2個黃色,采用共陽接法,電阻采用300歐姆。
圖3-11
4交通燈系統的軟件
4.1程序設計
MSP430系列單片機支持標準的C語言,在標準的C語言基礎上進行了擴展,因此掌握標準C語言對開發MSP系列單片機有著非常重要的作用。下面針對MSP430系列單片機開發介紹一些C語言的開發基礎。
4.1.1可以使用的數據類型
表4-1
4.1.2經常使用的延時函數
void delay(long v)
{
while(v!=0)v--;
}
delay(100)究竟延時多久呢?就是這句話執行需要的時間。
時間等于:機器周期×需要的機器周期數
(在仿真環境中可以測試出來)
4.2交通燈主程序
#include
#include
volatile unsigned char hcq[4];
volatile unsigned char wei,duan;
volatile unsigned char i,j=2;
void rid(void);
主函數
main(void)
{
WDTCTL = WDTPW | WDTHOLD;// Stop watchdogtimer
TA0CCTL0=CCIE;//使能捕獲比較中斷
TA0CCR0=12000;
TA0CTL=TASSEL_1+TACLR+MC_1;//定時器A時鐘源為ACLK,計數器清零,增計數模式
P1DIR=0XFF;
P2DIR=0XFF;
_enable_interrupts();
進入四個狀態的循環
while(1)
{
hcq[0]=1;//第一個狀態
hcq[1]=7;
hcq[2]=2;
hcq[3]=0;
while(hcq[0]!=0||hcq[1]!=0)
{P2OUT=0xde;
rid();
}
hcq[0]=0;//第二個狀態
hcq[1]=3;
while(hcq[0]!=0||hcq[1]!=0)
{P2OUT=0xdd;
rid();
}
hcq[0]=3;//第三個狀態
hcq[1]=0;
hcq[2]=2;
hcq[3]=7;
while(hcq[2]!=0||hcq[3]!=0)
{P2OUT=0xf3;
rid();
}
hcq[2]=0;//第四個狀態
hcq[3]=3;
while(hcq[2]!=0||hcq[3]!=0)
{P2OUT=0xeb;
rid();
}
}
}
定時器中斷函數
#pragmavector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
j--;
while(j==0);
{
j=2;
hcq[1]--;
hcq[3]--;
while(hcq[1]==0xff)
{hcq[0]--;
hcq[1]=9;
}
while(hcq[3]==0xff)
{hcq[2]--;
hcq[3]=9;
}
}
}
調用顯示子程序
void rid()
{
wei=0xe0;
duan=hcq[0];
P1OUT=wei+duan;
__delay_cycles(500);
wei=0xd0;
duan=hcq[1];
P1OUT=wei+duan;
__delay_cycles(500);
wei=0xb0;
duan=hcq[2];
P1OUT=wei+duan;
__delay_cycles(500);
wei=0x70;
duan=hcq[3];
P1OUT=wei+duan;
__delay_cycles(500);
}
5軟件系統開發平臺CCS
4.填寫功成名
5.選擇單片機型號
如果項目針對的是Cortex設備(Stellaris 或 Hercules),請選擇“ARM”。
如果項目針對的是SoC設備(DaVinci、OMAP),請根據所使用的芯片核選擇“ARM”或“C6000”。
6.建立一個新文件
“Outputtype(輸出類型)”:將設置保留為“Executable(可執行)”以生成完整的程序。另一個選項為“Static Library(靜態庫)”,靜態庫是其他項目要使用的功能的集合。
“Device Variant(設備變量)”:根據步驟 3 中指定的設備系列選擇要使用的設備。第一個下拉框為常規篩選器,而第二個下拉框則為設備選擇器本身。
“Code Generationtools(代碼生成工具)”:保留默認設置(除非安裝了其他版本的代碼生成工具且要使用某個特定版本)。
“Output Format(輸出格式)”:通常此選項以灰色顯示為“legacy COFF”。目前只有 ARM 系列還允許選擇另外一個選項“eabi (ELF)”。“
Linker Command File(鏈接器命令文件)”:可留空,鏈接器命令文件可在稍后添加。如果存在可用的有效文件,系統將會預填充該字段。如果項目使用 BIOS,則將自動添加鏈接器命令文件。
“Runtime SupportLibrary(運行時支持庫)”:通常將其保留為“
“Treat as anAssembly-only project(視為僅匯編項目)”:通常將其取消選中。正如其名稱所示,如果項目中沒有 C 源代碼文件,請選中此復選框。選中此復選框后,系統還將從項目中移除運行時支持庫。
“Target content(目標內容)”:啟用對 BIOS 實時操作系統的支持。此部分的 GSG 將不使用該選項。
7.給新文件取名
8.進行編譯
結 論
本系統是以單片機為核心部件,實現了通過MSP430芯片設置紅、綠燈燃亮時間的功能。此次在軟件上是花費時間比較多的,我們上網找資料,上圖書館,盡可能的了解有關于交通燈這方面的知識。而在硬件仿真上,但由于時間關系沒能做出實物來仿真,但已經給出了完整的設想和具體步驟。
系統不足:時間設定中沒有黃燈的等待閃爍時間,以及自動根據車流改變紅綠燈時間,此外,還沒有充分考慮的把現代管理、人工智能運用到交通的控制中,來計算交通控制點之間的距離,來更合理的安排紅、綠燈的持續時間,使城市的交通管理更加人性化。使人們遠離目前的交通擁塞的現象。
通過這次畢業設計:
1、我得到了一次用專業知識、專業技能分析和解決問題全面系統的鍛煉,使原來的理論知識得到具體實踐。
2、我在單片機的基本原理、單片機應用系統開發過程,以及在常用編程設計思路技巧的掌握方面都能向前邁了一步。
3、在軟硬件仿真方面,在一定程度上了解了MSP430單片機開發環境的功能特性和使用方法,進行了仿真。
通過老師對設計思想的指導,我制定了總—分—總的設計論述說明結構,較清晰完善的把本人的設計展示出來。
責任編輯:lq
-
msp430
+關注
關注
180文章
2403瀏覽量
229352 -
cpu
+關注
關注
68文章
10869瀏覽量
211861 -
交通燈
+關注
關注
13文章
324瀏覽量
39769
原文標題:基于MSP430單片機的交通燈電路設計
文章出處:【微信號:A1411464185,微信公眾號:multisim】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論