




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
5附頁(yè)5附頁(yè).1.223.33556678?889?9101引言 2項(xiàng)目設(shè)計(jì)實(shí)現(xiàn)功能 2.1交通燈控制要求 2.2液晶顯示器控制 項(xiàng)目實(shí)現(xiàn)方案 3.1項(xiàng)目設(shè)計(jì)整體思路 3.2設(shè)計(jì)原理 CPU定時(shí)器原理 DSP外設(shè)中斷擴(kuò)展模塊.3.2.3發(fā)光二極原理 3.2.4TMS320F28XDSP的I/O3.2.5液晶顯示器控制原理程序設(shè)計(jì) 4.1程序總體設(shè)計(jì) 4.2程序編寫(見附頁(yè)) 心得體會(huì) 基于DSF實(shí)現(xiàn)道路交通燈控制系統(tǒng)設(shè)計(jì)摘要:DSP數(shù)字信號(hào)處理,是一門涉及多學(xué)科而又廣泛應(yīng)用于許多領(lǐng)域的新興學(xué)科。隨著計(jì)算機(jī)和信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)應(yīng)運(yùn)而生并得到迅速發(fā)展。數(shù)字信號(hào)處理是一種通過使用數(shù)學(xué)技巧執(zhí)行轉(zhuǎn)換或提取信息,來處理現(xiàn)實(shí)信號(hào)的方法。本次設(shè)計(jì)是基于dsp原理設(shè)計(jì)交通燈控制系統(tǒng)軟硬件系統(tǒng),利用發(fā)光二極管亮滅模擬交通信號(hào),數(shù)碼管倒計(jì)時(shí)時(shí)間,利用TMS320F2812DSP片上定時(shí)器產(chǎn)生時(shí)鐘計(jì)數(shù),設(shè)計(jì)模擬實(shí)際生活中的十字路口交通燈。關(guān)鍵字:DSP;TMS320F2812;發(fā)光二極管;交通燈;Abstract:DSPdigitalsignalprocessing,isamultidisciplinaryandwidelyappliedinmanyfieldsoftheemergingdiscipline.Alongwiththecomputerandtherapiddevelopmentofinformationtechnology,digitalsignalprocessingtechnologytoemergeasthetimesrequireanddeveloprapidly.Digitalsignalprocessingisthroughtheuseofamathematicalskillstoperformtheconversionorextractionofinformation,todealwithrealsignalmethod.ThedesignisbasedontheprincipleofDSPdesignoftrafficlightcontrolsystemsoftwareandhardwaresystem,usinglight-emittingdiodestoeliminatesimulatedtrafficsignalcountdowntime,digitaltube,theuseofTMS320F2812DSPon-chiptimergeneratesaclockcounting,designedtosimulatetheactuallifeofthecrossroadstrafficlights.Keyword:DSP;TMS320F2812;lightemittingdiode;trafficlights;1引言交通是經(jīng)濟(jì)、社會(huì)發(fā)展的基礎(chǔ)性產(chǎn)業(yè),是社會(huì)、經(jīng)濟(jì)活動(dòng)中人流、物流、資金流和信息流的主要流動(dòng)方式。現(xiàn)代社會(huì)中,如果沒有高效運(yùn)轉(zhuǎn)的交通運(yùn)輸體系,就不可能有經(jīng)濟(jì)的持續(xù)發(fā)展。然而,隨著社會(huì)經(jīng)濟(jì)的發(fā)展,機(jī)動(dòng)車輛迅速增加,人們?cè)谫嵢∮蓹C(jī)動(dòng)車輛所帶來的巨額利潤(rùn)以及充分享受汽車帶來的巨大便利的同時(shí),越來越被交通擁堵、交通事故頻發(fā)、環(huán)境污染加劇和燃油損耗上升等諸多問題所困擾。隨著交通的不斷發(fā)展和汽車化進(jìn)程的加快,交通擁擠加劇,交通事故頻發(fā),交通環(huán)境惡化,已經(jīng)成為引人注目的城市問題之一。交通問題不僅在發(fā)展中國(guó)家,就在發(fā)達(dá)國(guó)家也是一個(gè)令人困擾的嚴(yán)重問題。眾所周知,緩解交通擁擠的最直接和最有效辦法是提高路網(wǎng)的通信能力。但無論哪個(gè)國(guó)家的大城市,不可能無限制地修建道路,不論是資金
因素還是土地因素,都限制了道路的無節(jié)制增長(zhǎng)。因此,無限制地修建道路難滿足日益增長(zhǎng)的交通需求。與此同時(shí),通過限制車輛增加削減交通需求也受到客觀因素的制約而無法取得滿意的結(jié)果。事實(shí)上,由于交通系統(tǒng)是一個(gè)相當(dāng)復(fù)雜的大系統(tǒng),無論單獨(dú)從車輛方面考慮還是從道路方面考慮,都很難從根本上解決問題。道路交通系統(tǒng)是一個(gè)地區(qū)、一個(gè)城市的主要組成部份,這個(gè)系統(tǒng)的運(yùn)行狀況如何,直接反映了一個(gè)地區(qū)、一個(gè)城市的現(xiàn)代化管理水平。在這一系統(tǒng)中,道路不僅僅是易變化的部分,而其它組成部分則存在著較大的可變性和隨機(jī)性。只有對(duì)這一系統(tǒng)的組成及其運(yùn)行機(jī)理進(jìn)行科學(xué)客觀的分析研究,對(duì)能制定出科學(xué)有效的管理和控制對(duì)策,從而保障系統(tǒng)的有效運(yùn)行。2項(xiàng)目設(shè)計(jì)實(shí)現(xiàn)功能2.1交通燈控制要求交通燈分紅黃綠三色,東、南、西、北各一組,用燈光信號(hào)實(shí)現(xiàn)對(duì)交通的控制:綠燈信號(hào)表示通行,黃燈表示警告,紅燈禁止通行,燈光閃爍表示信號(hào)即將改變。計(jì)時(shí)顯示:液晶屏幕上8X8點(diǎn)陣顯示0-9計(jì)數(shù)。正常交通控制信號(hào)順序:正常交通燈信號(hào)自動(dòng)變換:南北方向綠燈,東西紅燈(20秒)。南北方向綠燈閃爍。南北方向黃燈。南北方向紅燈,東西方向黃燈。東西方向綠燈(20秒)。東西方向綠燈閃爍。(7)東西方向黃燈。(7)東西方向黃燈。返回⑴循環(huán)控制。緊急情況處理:模仿緊急情況(重要車隊(duì)通過、急救車通過等)發(fā)生時(shí),交通警察手動(dòng)控制⑴當(dāng)任意方向通行剩余時(shí)間多于10秒,將時(shí)間改成10秒。⑵正常變換到四面紅燈(20秒)。⑶直接返回正常信號(hào)順序的下一個(gè)通行信號(hào)(跳過閃爍綠燈、黃燈狀態(tài))。2.2液晶顯示器控制本次設(shè)計(jì)使用ICETEK-F2812-A板,ICETEK-F2812-A是一塊以TMS320F2812DSP為核心的DSP擴(kuò)展評(píng)估板,它通過擴(kuò)展接口與實(shí)驗(yàn)箱的顯示/控制模塊連接,可以控制其各種外圍設(shè)備。液晶顯示模塊的訪問、控制是由2812DSP對(duì)擴(kuò)展擴(kuò)展接口的操作完成。控制擴(kuò)展口的尋址:命令控制擴(kuò)展接口的地址為 0x108001,數(shù)據(jù)控制擴(kuò)展接口的地址為0x108003和0x108004,輔助控制擴(kuò)展接口的地址為0x108002??梢杂^察到液晶顯示從0到9的計(jì)數(shù)。靈活使用控制字,可以實(shí)現(xiàn)復(fù)雜多變的顯示。當(dāng)使用點(diǎn)陣圖形顯示時(shí)需要在DSP內(nèi)存中建立圖形存儲(chǔ)緩沖;適當(dāng)更新顯示可取得動(dòng)畫效果。在實(shí)際生活中觀察點(diǎn)陣顯示的霓虹燈廣告、交通指示牌、報(bào)站牌等領(lǐng)會(huì)這種控制的具體應(yīng)用。3項(xiàng)目實(shí)現(xiàn)方案3.1項(xiàng)目設(shè)計(jì)整體思路根據(jù)DSP勺硬件中斷、定時(shí)器、I/O訪問原理。用定時(shí)器定時(shí)。用I/O口控制紅綠黃燈的開關(guān),用硬件中斷模擬緊急情況發(fā)生(如:急救車,消防車)。有緊急情況發(fā)生,兩向全紅,以便讓緊急車通過。緊急車通過后,交通的恢復(fù)中斷前的狀態(tài)。中斷服務(wù)流程設(shè)計(jì)總流程圖3.2設(shè)計(jì)原理3.2.1CPU定時(shí)器原理F2810/F2812芯片內(nèi)部有3個(gè)32位CPI定時(shí)器(TIMER0/1/2),其中定時(shí)器1和定時(shí)器2預(yù)留給實(shí)時(shí)操作系統(tǒng)使用(如DSPBIOS,只有CPI定時(shí)器0用戶可以在應(yīng)用程序中使用。預(yù)留給實(shí)時(shí)操作系統(tǒng)使用(如定時(shí)器功能框圖如下:在F281x在F281x芯片中,向CPI申請(qǐng)中斷的定時(shí)器中斷信號(hào)(TINT0、TINT1及TINT2)連接方式如下圖:liTtlutintq式如下圖:liTtlutintq為保證定時(shí)器正常,需要進(jìn)行一下操作:首先將計(jì)數(shù)值寫入32位計(jì)數(shù)寄存器(TIMH:TIM)內(nèi),該計(jì)數(shù)值放在周期寄存器(PRDHPRD中;然后按SYSCLOCKO的頻率對(duì)計(jì)數(shù)值進(jìn)為保證定時(shí)器正常,行減計(jì)數(shù)。當(dāng)計(jì)數(shù)器的值計(jì)到0時(shí),定時(shí)器會(huì)產(chǎn)生一個(gè)中斷脈沖輸出。
3.2.2DSP外設(shè)中斷擴(kuò)展模塊設(shè)計(jì)了一個(gè)專門處理外),叫做外設(shè)中斷控2812的CPI為了能夠及時(shí)有效的處理好各個(gè)外設(shè)的中斷請(qǐng)求,設(shè)計(jì)了一個(gè)專門處理外),叫做外設(shè)中斷控設(shè)中斷的擴(kuò)展模塊(thePeripheralInterruptExpansionblock制器PIE,它能夠?qū)Ω鞣N中斷請(qǐng)求源(例如來自于外設(shè)或者其他外部引腳的請(qǐng)求)做出判斷以及相應(yīng)的決策。PIE可以支持96個(gè)不同的中斷,這些中斷分成了12個(gè)組,每個(gè)組有8個(gè)中斷,而且每個(gè)組都被反饋到CP內(nèi)核的12條中斷線中的某一條上(INT1-INT12)。PIE目前只使用了96個(gè)終端中的45個(gè),其他的等待將來的功能擴(kuò)展。外設(shè)級(jí)APIE級(jí)+JCPU級(jí)PIE級(jí)以及CPUK,對(duì)于某一個(gè)具體的外PIE級(jí)以及CPUK,對(duì)于某一個(gè)具體的外設(shè)中斷請(qǐng)求,任意一級(jí)的不許可,CP最終都不會(huì)執(zhí)行該外設(shè)中斷。3.2.3發(fā)光二極原理顯示/控制模塊上的發(fā)光二極管是由連接在F2812DSP擴(kuò)展擴(kuò)展接口上的寄存器EWR和SNR控制的。這兩個(gè)寄存器均為6位寄存器,其位定義見下表:
EWR:bitsbit4bitsEWR:bitsbit4bitsbit?bitlbiiO凍-紅東潢?yáng)|■綠西■紅西■黃西■綠SNR:bit?bit4bit3bit?bitlbiiO南■紅南■黃甫■綠北■紅北■黃北■綠兩個(gè)寄存器的地址均映射到F2812DSP的擴(kuò)展空間,地址為108007H,DSP通過對(duì)擴(kuò)展區(qū)域該地址的寫操作來修改兩個(gè)寄存器上各位的狀態(tài),當(dāng)寄存器某位取‘1’值時(shí),相應(yīng)指示燈被點(diǎn)亮,取‘0’值則熄滅。當(dāng)寫入108007H的數(shù)據(jù)(8位有效值)的高兩位為‘00'時(shí),數(shù)據(jù)的低6位將寫入EWR寄存器;當(dāng)高兩位的值為‘01’時(shí),寫入SNR寄存器。324TMS320F28XDSP的I/OTMS320F28)DSP的I/O空間大部分被保留用于外部擴(kuò)展。在擴(kuò)展時(shí)一般將帶有控制能的寄存器或分離地址訪問的存儲(chǔ)單元的地址映射到 I/O空間,訪問這部分的單元又稱I/O端口訪問。例如:可將控制指示燈組的寄存器或鎖存器映射到一個(gè) I/O端口地址上;A/D、D/A等專用芯片控制端和狀態(tài)寄存器也常映射到I/O端口上??傊?,在I/O空間中擴(kuò)展的設(shè)備一般重點(diǎn)用于控制,而使用大片連續(xù)存儲(chǔ)空間的存儲(chǔ)器單元一般映射到數(shù)中擴(kuò)展的設(shè)備一般重點(diǎn)用于控制,而使用大片連續(xù)存儲(chǔ)空間的存儲(chǔ)器單元一般映射到數(shù)3.2.5液晶顯示器控制原理顯示開關(guān):0x3f打開顯示;0x3e關(guān)閉顯示;設(shè)置顯示起始行:0x0c0+起始行取值,其中起始行取值為0至63;設(shè)置操作頁(yè):0x0b8+頁(yè)號(hào),其中頁(yè)號(hào)取值為0-7;設(shè)置操作列:0x40+列號(hào),其中列號(hào)為取值為0-63;寫顯示數(shù)據(jù):在使用命令控制字選擇操作位置(頁(yè)數(shù)、列數(shù))之后,可以將待顯示的數(shù)據(jù)寫入液晶顯示模塊的緩存。將數(shù)據(jù)發(fā)送到相應(yīng)數(shù)據(jù)控制擴(kuò)展接口即可。液晶顯示器與DSP的連接:數(shù)據(jù)信號(hào)的傳送:由于液晶顯示模塊相對(duì)運(yùn)行在8MHz主頻下的DSP屬于較為慢速設(shè)備,連接時(shí)需要考慮數(shù)據(jù)線上信號(hào)的等待問題;電平轉(zhuǎn)換:由于DSP為3.3V設(shè)備,而液晶顯示模塊屬于5V設(shè)備,所以在連接控制線、數(shù)據(jù)線時(shí)需要加電平隔離和轉(zhuǎn)換設(shè)備。4程序設(shè)計(jì)4.1程序總體設(shè)計(jì)①根據(jù)設(shè)計(jì)要求,由于控制是由不同的各種狀態(tài)按順序發(fā)生的 ,我們可以采用狀態(tài)機(jī)制控制方法來解決此問題。這種方法是:首先列舉所有可能發(fā)生的狀態(tài);然后將這些狀態(tài)編號(hào),按順序產(chǎn)生這些狀態(tài);狀態(tài)延續(xù)的時(shí)間用程序控制,對(duì)于突發(fā)情況可采用在正常順序的控制中插入特殊控制序列的方式完成。②定時(shí)器的設(shè)定,VC5509A定時(shí)器是由一個(gè)4位的預(yù)定標(biāo)值PSC和一個(gè)16位的減法計(jì)數(shù)的計(jì)數(shù)器TIM組成。在實(shí)際工作中首先是每經(jīng)過一個(gè)周期PSC值減1,一直減到0后TIM開始減1,直到減到0后的第一個(gè)周期,計(jì)數(shù)器會(huì)向CPU發(fā)出中斷請(qǐng)求。③突發(fā)事件設(shè)置,在實(shí)際交通過程中會(huì)出現(xiàn)突發(fā)狀況,比如說有救護(hù)車或者110緊急車要通過,此時(shí)就可以通過小鍵盤進(jìn)行突發(fā)狀況模擬。通過按鍵進(jìn)入到中斷服務(wù)子程序,相當(dāng)于原來先要通過的車輛在突發(fā)狀況來了以后就要先讓緊急車輛通過。這吋ii.中商疫割吾戸?.丄件工?*~I4.2程序編寫(見附頁(yè))5心得體會(huì)隨著信息技術(shù)的飛速發(fā)展,數(shù)字信號(hào)處理技術(shù)已逐漸發(fā)展成為一門主流技術(shù),它在電子信息,通信,軟件無線電,制動(dòng)控制,儀表儀器,信息家電等高科技領(lǐng)域得到了越來越廣泛的應(yīng)用。數(shù)字信號(hào)處理器由于運(yùn)算速度快,具有可編程特性和接口靈活的特點(diǎn),使的它在許多電子產(chǎn)品的研制,開發(fā)與應(yīng)用中,發(fā)揮著越來越重要的作用。采用DSP芯片來實(shí)現(xiàn)數(shù)字信號(hào)處理系統(tǒng)更是當(dāng)前的發(fā)展趨勢(shì)。通過做基于DSP的交通燈的設(shè)計(jì),進(jìn)一步熟悉DSP芯片及其開發(fā)環(huán)境CCS的功能。同時(shí)對(duì)當(dāng)前交通控制的現(xiàn)狀有了進(jìn)一部的了解。為以后的學(xué)習(xí)打下了堅(jiān)實(shí)的基礎(chǔ)。隨著科學(xué)技術(shù)的發(fā)展及各門學(xué)科的相互融合,DSP將有更為廣闊的應(yīng)用前景。交通控制也會(huì)更智能,為人們的出行提供更多的便利。附頁(yè)#include"scancode.h"#defineSPSA0*(unsignedint*)0x38#defineSPSD0*(unsignedint*)0x39#defineREGISTERCLKMD(*(unsignedint*)0x58)#define#define#define#define#defineTIMPRDTCRIMRIFR*(int*)0x24*(int*)0x25*(int*)0x26*(int*)0x0*(int*)0x1#defineCTRGRport8000#defineCTRLCDCMDRport8001#defineCTRKEY port8001#defineCTRCLKEYport8002#defineCTRLCDCRport8002#defineCTRLCDLCRport8003#defineCTRLCDRCRpoil8004#defineCTRLA#defineCTRLRport8005port8007#definePMST*(int*)0x1dnStatusNSGreenEWRed160nStatusNSFIashEWRed184#define#define#definenStatusNSYellowEWRed200#definenStatusNSRedEWYellow216#definenStatusNSRedEWGreen376#definenStatusNSRedEWFlash400#definenStatusNSRedEWYellow1416#definenStatusNSYellowEWRed1432#definenTotalTime448#definenStatusHold160voidInitDSP();voidInitTimer();voidInitICETEKCTR();voidinterrupttime(void);voidinterruptxint2(void);//XINT2中斷服務(wù)程序voidSetLEDArray(intnNumber);//修改顯示內(nèi)容voidRefreshLEDArray();//刷新顯示voidEndICETEKCTR();voidTurnOnLCD();voidLCDCLS();voidDelay(unsignedintnDelay);,0x92,0x6C,0x00},{0x00,0x00,0x30,0x28,0x24,0xFE,0x20,0x00},{0x00,0x00,0x4E,0x92,0x92,0x92,0x62,0x00},{0x00,0x00,0x7C,0x92,0x92,0x92,0x64,0x00},{0x00,0x00,0x02,0xC2,0x32,0x0A,0x06,0x00},{0x00,0x00,0x6C,0x92,0x92,0x92,0x6C,0x00},{0x00,0x00,0x4C,0x92,0x92,0x92,0x7C,0x00}};main(){intnWork1,nWork2,nWork3,nWork4,tKey;intnNowStatus,nOldStatus,nOldTimeCount,nSaveTimeCount,nSaveStatus;unsignedintnScanCode;#definestatusNSGreenEWRed0#definestatusNSFlashEWRed1#definestatusNSYellowEWRed2#definestatusNSRedEWYellow3#definestatusNSRedEWGreen4#definestatusNSRedEWFlash5#definestatusHold6#defineLCDDELAY1#defineLCDCMDTURNON0x3f#defineLCDCMDTURNOFF0x3e#defineLCDCMDSTARTLINE0xc0#defineLCDCMDPAGE0xb8#defineLCDCMDVERADDRESS0x40ioportunsignedintport3004;//CTR擴(kuò)展寄存器定義ioportunsignedintport8000;ioportunsignedintport8001;ioportunsignedintport8002;ioportunsignedintport8003;ioportunsignedintport8004;ioportunsignedintport8005;ioportunsignedintport8007;unsignedintuWork,nTimeCount;unsignedintuLightStatusEW,uLightStatusSN;unsignedintbHold;unsignedcharledbuf[8],ledx[8];unsignedcharled[40]={0x7E,0x81,0x81,0x7E,0x00,0x02,0xFF,0x00,0xE2,0x91,0x91,0x8E,0x42,0x89,0x89,0x76,0x38,0x24,0x22,0xFF,0x4F,0x89,0x89,0x71,0x7E,0x89,0x89,0x72,0x01,0xF1,0x09,0x07,0x76,0x89,0x89,0x76,0x4E,0x91,0x91,0x7E};unsignedcharledkey[10][8]={{0x00,0x00,0x7C,0x82,0x82,0x82,0x7C,0x00}, //0{0x00,0x00,0x00,0x84,0xFE,0x80,0x00,0x00}, //1{0x00,0x00,0x84,0xC2,0xA2,0x92,0x8C,0x00}, //2{0x00,0x00,0x44,0x92,0x92nTimeCount=0;bHold=0;uLightStatusEW=uLightStatusSN=0;nNowStatus=0;nOldStatus=1;nOldTimeCount=0;InitDSP();初始化DSP設(shè)置運(yùn)行速度InitICETEKCTR();化顯示/控制模塊InitTimer();定時(shí)器中斷//根據(jù)計(jì)時(shí)器計(jì)數(shù)切換狀態(tài)//根據(jù)狀態(tài)設(shè)置計(jì)數(shù)和交通燈狀態(tài)while(1){if(bHold&&nNowStatus==statusHold){////if(nTimeCount>=nStatusHold){nNowStatus=nSaveStatus;nTimeCount=nSaveTimeCount;bHold=0;}}elseif//初始設(shè)置(nTimeCountvnStatusNSGreenEWRed)nNowStatus=statusNSGreenEWRed;elseif(nTimeCountvnStatusNSFIashEWRed)nNowStatus=statusNSFIashEWRed;elseif(nTimeCountvnStatusNSYellowEWRed)nNowStatus=statusNSYellowEWRed;elseif(nTimeCountvnStatusNSRedEWYellow)nNowStatus=statusNSRedEWYellow;elseif(nTimeCountvnStatusNSRedEWGreen)nNowStatus=statusNSRedEWGreen;elseif(nTimeCountvnStatusNSRedEWFIash)nNowStatus=statusNSRedEWFlash;nWork3>0&&nWork4>0)uLightStatusSN=((nWorkI%nWork3)<=nWork4)?(0x49):(0x40);break;casestatusNSRedEWFlash:nWork1=nTimeCount-nStatusNSRedEWGreen;nWork2=nStatusNSRedEWYellow1-nStatusNSRedEWFIash;nWork3=nWork2/3;nWork4=nWork3/2;if(nWork1>=0&&nWork2>0&&nWork3>0&&nWork4>0)uLightStatusEW=((nWorkI%nWork3)<=nWork4)?(0x09):(0x00);break;casestatusNSGreenEWRed:}break;casestatusNSRedEWGreen:nWork1=(nStatusNSRedEWGreen-nStatusNSRedEWYellow)/20;if(nWork1>0)nWork2=20-(nTimeCount-nStatusNSRedEWYellow)/nWork1;if(bHold){if(nWork2>10)nTimeCount=nStatusNSRedEWYellow+nWork1*10;nWork2=10;elseif(nTimeCountvnStatusNSRedEWYellow1)nNowStatus=statusNSRedEWYellow;nWork1=nStatusNSGreenEWRed/20;(nWork1>0)if(nOldTimeCount!=nWork2)}ifelseif(nTimeCountvnStatusNSYellowEWRed1)nNowStatus=statusNSYellowEWRed;if(nNowStatus==nOldStatus){nWork2=20-nTimeCount/nWork1;(bHold)if(nWork2>10)ifnOldTimeCount=nWork2;SetLEDArray(nWork2);statusHold:}
break;casenWorknWork仁nStatusHold/20;ifswitch(nNowStatus){casestatusNSFlashEWRed:nTimeCount=nWork1*10;(nWork1>0)nWork2=10;nWork1=nTimeCount-nStatusNSGreenEWRed;nWork2=20-nTimeCount/nWork1;nWork2=nStatusNSYellowEWRed-nStatusNSFIashEWRed;(nOldTimeCount!=nWork2)nWork3=nWork2/3;nOldTimeCount=nWork2;}ifif(nOldTimeCount!=nWork2)nOldTimeCount=nWork2;nWork4=nWork3/2;if(nWork1>=0&&nWork2>0&&SetLEDArray(nWork2);SetLEDArray(nWork2);uLightStatusEW=0x24; (nScanCode==SCANCODE_9) REGISTERCLKMD=0x1007;//uLightStatusEW=0x24; (nScanCode==SCANCODE_9) REGISTERCLKMD=0x1007;//break;uLightStatusSN=0x49;}else{SetLEDArrbreak;}EndlCETEKCTR();exit(0);if(bHold){ay(0);break;nSaveStatus=nNowStatus;nSaveTimeCount=nTimeCountcasestatusNSYellowEWRed:定時(shí)器中斷服務(wù)程序,進(jìn)行時(shí)鐘uLightStatusEW=0x24;uLightStatusSN=0x52;//計(jì)數(shù)voidinterrupttime(void){nTimeCount++;nTimeCount%=nTotalTime;//voidSetLEDArray(intnNumber)//voidSetLEDArray(intnNumber){inti,ShowNumber;ShowNumber=nNumber/2;if(ShowNumber>9)ShowNumber=0;CTRLCDCMDR=LCDCMDPAGE;//設(shè)置操作頁(yè)=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS;//起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for(i=0;i<8;i++)設(shè)置發(fā)光二極管顯示內(nèi)容nNowStatus=statusHold;nTimeCount=0;if(nSaveStatus==statusNSFIashEWRed||nSaveStatus==statusNSYellowEWRed)nSaveStatus=statusNSRedEWGreen;nSaveTimeCount=nStatusNSRedEWYellow;}elseif(nSaveStatus==statusNSRedEWFIashIInSaveStatus==statusNSRedEWYellow)SetLEDArray(20);break;casestatusNSRedEWYellow:uLightStatusEW=0x12;uLightStatusSN=0x64;SetLEDArray(20);break;casestatusNSRedEWGreen:uLightStatusEW=0x09;uLightStatusSN=0x64;SetLEDArray(20);break;casestatusNSRedEWFlash:uLightStatusEW=0x09;uLightStatusSN=0x64;{CTRLCDLCR=ledkey[ShowNumber][i];nSaveStatus=statusNSGreenEWRed;SetLEDArray(0);break;caseDelay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);將緩存中點(diǎn)陣送發(fā)光二極管顯初始化將緩存中點(diǎn)陣送發(fā)光二極管顯初始化DSP設(shè)置運(yùn)行速度=8MHznSaveTimeCount=0;}}nOldStatus=nNowStatus;switch(nNowStatus){casestatusNSGreenEWRed:uLightStatusEW=0x24;uLightStatusSN=0x49;SetLEDArray(20);break;casestatusNSFlashEWRed:statusHold:uLightStatusEW=0x24;uLightStatusSN=0x64;SetLEDArray(20);break;}}CTRLR=uLightStatusEW;CTRLR=uLightStatusSN;//設(shè)置交通燈狀態(tài)RefreshLEDArray();//刷新發(fā)光二極管顯示nScanCode=port8001;//讀鍵盤掃描碼nScanCode&=0x0ff;tKey=CTRCLKEY;if//示voidRefreshLEDArray(){inti;for(i=0;i<8;i++){CTRGR=ledx[i];CTRLA=ledbuf[i];//voidInitDSP(){REGISTERCLKMD=0;//復(fù)位PLLk=CTRCLKEY;k=CTRCLKEY;//清除鍵盤 CTRLCDCMDR=LCDCMDVERADDRE速度設(shè)置=16MHz}//設(shè)置定時(shí)器參數(shù)、允許中斷voidInitTimer(){unsignedintk;緩沖區(qū)TurnOnLCDO;//打開顯示LCDCLS();清除顯示內(nèi)存CTRLCDCMDR=LCDCMDSTARTLIN//設(shè)置顯示起始行CTRLCDCR=0;ss;//Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for(j=0;jv64;j++){E;asm("ssbxINTM");關(guān)中斷,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 淶源修路施工方案
- 正宗pvc彩殼施工方案
- 皮帶機(jī)安裝施工方案
- 平交路口施工方案
- 二零二五年度大學(xué)生就業(yè)三方協(xié)議范本
- 二零二五年度景區(qū)合作合同-景區(qū)旅游住宿設(shè)施合作經(jīng)營(yíng)協(xié)議
- 2025年度職業(yè)經(jīng)理人企業(yè)可持續(xù)發(fā)展與環(huán)境保護(hù)合同
- 二零二五年度XX大學(xué)校園安保與安全宣傳教育合同
- 2025年度航空航天專利技術(shù)保密與許可合同模板
- 2025年度租賃公寓退房押金結(jié)算合同
- 怎樣調(diào)動(dòng)員工積極性
- 2024年內(nèi)科護(hù)理學(xué)(第七版)期末考試復(fù)習(xí)題庫(kù)(含答案)
- 【上市公司的財(cái)務(wù)風(fēng)險(xiǎn)的分析和防范:以三只松鼠為例10000字(論文)】
- 幼兒園消防安全知識(shí)競(jìng)賽試題及答案
- 莫高窟群文閱讀教學(xué)設(shè)計(jì)
- 急診科培訓(xùn)急診科與其他科室的協(xié)作與溝通
- 樂理視唱練耳簡(jiǎn)明教程課后習(xí)題答案
- 第5.3課《國(guó)家的兒子》-2023-2024學(xué)年中職高一語文新教材同步教學(xué)講堂(高教版2023·基礎(chǔ)模塊上冊(cè))
- 2023年10月自考試題02398土力學(xué)及地基基礎(chǔ)
- JCT414-2017 硅藻土的標(biāo)準(zhǔn)
- 高壓旋噴樁加固工程施工方案
評(píng)論
0/150
提交評(píng)論