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

基于MSP430單片機(jī)的軟件玻璃液晶驅(qū)動程序

利用MSP430單片機(jī)控制步進(jìn)電機(jī)

msp430單片機(jī)的優(yōu)缺點介紹
采用低成本MSP430單片機(jī)的外部可編程看門狗定時器監(jiān)控系統(tǒng)

利用超低功耗單片機(jī) MSP430 作為系統(tǒng)伴隨芯片應(yīng)用報告

基于51單片機(jī)兩路紅黃綠交通燈電路圖及程序
基于51單片機(jī)四路紅黃綠交通燈電路圖及程序
基于STM32單片機(jī)的交通燈系統(tǒng)設(shè)計

評論