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

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

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

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

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

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

評(píng)論