版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、成都理工大學(xué)畢業(yè)論文 交通燈第一章 序 言1.1 交通燈的形成當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車(chē)輛最常見(jiàn)和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。1858年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車(chē)通行。這是世界上最早的交通信號(hào)燈。1868年,英國(guó)機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場(chǎng)上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩色旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó),這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年
2、始安裝于紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測(cè)器安在地下,車(chē)輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來(lái)啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),它就能察覺(jué)到有人要過(guò)馬路。紅外光束能把信號(hào)燈的紅燈延長(zhǎng)一段時(shí)間,推遲汽車(chē)放行,以免發(fā)生交通事故。信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國(guó)道路交通和道路標(biāo)志信號(hào)協(xié)定對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車(chē)
3、輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車(chē)輛都必須讓合法地正在路口內(nèi)行駛的車(chē)輛和過(guò)人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車(chē)輛必須在交叉路口的停車(chē)線后停車(chē)。黃燈是警告信號(hào),面對(duì)黃燈的車(chē)輛不能越過(guò)停車(chē)線,但車(chē)輛已十分接近停車(chē)線而不能安全停車(chē)時(shí)可以進(jìn)入交叉路口。我們?cè)O(shè)計(jì)的單片機(jī)控制交通燈就是基于信號(hào)燈。1.2芯片簡(jiǎn)介:msc-51芯片簡(jiǎn)介8051是mcs-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(rom)、數(shù)據(jù)存儲(chǔ)器(ram)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線
4、和控制總線等三大總線,現(xiàn)在我們分別加以說(shuō)明:中央處理器:中央處理器(cpu)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,cpu負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。數(shù)據(jù)存儲(chǔ)器(ram): 8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專(zhuān)用寄存器單元,它們是統(tǒng)一編址的,專(zhuān)用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問(wèn),而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的ram只有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。 程序存儲(chǔ)器(rom):8051共有4096個(gè)8位掩膜rom,用于存放用戶程序,原始數(shù)據(jù)或
5、表格。定時(shí)/計(jì)數(shù)器(rom):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(i/o)口:8051共有4組8位i/o口(p0、 p1、p2或p3),用于對(duì)外部數(shù)據(jù)的傳輸。全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)12mhz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)
6、需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類(lèi)型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(princeton)結(jié)構(gòu)。intel的mcs-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的mcs-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。1.3論文研究?jī)?nèi)容與章節(jié)安排本文首先通過(guò)序言介紹了交通的由來(lái),以及單片機(jī)芯片相關(guān)知識(shí),然后通過(guò)實(shí)際交通燈的考察,運(yùn)用單片機(jī)的知識(shí)加以實(shí)現(xiàn)。章節(jié)安排如下:第一章 介紹交通燈的由來(lái),以及單片機(jī)芯片相關(guān)知識(shí)第二章 通過(guò)比較法,選出我們用到的方案第三章 理論分析和計(jì)算出相
7、關(guān)參數(shù)第四章 電路圖設(shè)計(jì)第五章 程序設(shè)計(jì)與流程圖第六章 總結(jié)與致謝第二章 方案比較、設(shè)計(jì)與論證2.1 電源提供方案 為使模塊穩(wěn)定工作,須有可靠電源。我們考慮了兩種電源方案:方案一:采用獨(dú)立的穩(wěn)壓電源。此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會(huì)使系統(tǒng)復(fù)雜,且可能影響電路電平。 方案二:采用單片機(jī)控制模塊提供電源。本方案的優(yōu)點(diǎn)是系統(tǒng)簡(jiǎn)明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高。綜上所述,我們選擇第二種方案,如圖2-1。圖2-1電源電路2.2 顯示界面方案:該系統(tǒng)要求完成倒計(jì)時(shí)、狀態(tài)燈等功能?;谏鲜鲈颍覀兛紤]了三種方案: 方案一:完全采用數(shù)碼管顯示。這種方案只顯
8、示有限的符號(hào)和數(shù)碼字符,無(wú)法勝任題目要求。方案二:完全采用點(diǎn)陣式led 顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。 方案三:采用數(shù)碼管與點(diǎn)陣led 相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與led燈分別顯示時(shí)間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。權(quán)衡利弊,第三種方案可互補(bǔ)一二方案的優(yōu)缺,我們決定采用方案三以實(shí)現(xiàn)系統(tǒng)的顯示功能。2.3 輸入方案:題目要求系統(tǒng)能手動(dòng)設(shè)燈亮?xí)r間、緊急情況處理,我們討論了兩種方案:方案一:采用8155擴(kuò)展i/o 口及鍵盤(pán),
9、顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有ram,及計(jì)數(shù)器。若用該方案,可提供較多i/o 口,但操作起來(lái)稍顯復(fù)雜。方案二: 直接在io口線上接上按鍵開(kāi)關(guān)。因?yàn)樵O(shè)計(jì)時(shí)精簡(jiǎn)和優(yōu)化了電路,所以剩余的口資源還比較多,我們使用四個(gè)按鍵,分別是k1、k2、k3、k4。由于該系統(tǒng)對(duì)于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的i/o 口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器及ram已經(jīng)夠用,故選擇方案二。第三章 理論分析與計(jì)算 3.1 交通燈顯示時(shí)序的理論分析與計(jì)算對(duì)于一個(gè)交通路口來(lái)說(shuō),能在最短的時(shí)間內(nèi)達(dá)到最大的車(chē)流量,就算是達(dá)到了最佳的性能,我們稱(chēng)在單位時(shí)間內(nèi)多能達(dá)到的最大車(chē)流為車(chē)流量,用公式:車(chē)流量= 車(chē)流 / 時(shí)間
10、來(lái)表示。行人燈行人燈白圈代表紅燈黑圈代表綠燈左彎燈車(chē)人行駛右彎燈圖3-1標(biāo)號(hào)設(shè)定 32 規(guī)則狀態(tài)圖說(shuō)明:此圖為直方圖,上邊為北路口燈,右邊為東路口燈,下邊為南路口燈,左邊為西路口燈。圖32 所示為一種紅綠燈規(guī)則的狀態(tài)圖,分別設(shè)定為s1、s2、s3、s4,交通燈以這四種狀態(tài)為一個(gè)周期,循環(huán)執(zhí)行見(jiàn)圖33。 圖3-3a車(chē)輛行駛狀態(tài)s1 圖3-3b車(chē)輛行駛狀態(tài)s2 圖3-3c車(chē)輛行駛狀態(tài)s3 圖3-3d車(chē)輛行駛狀態(tài)s43-3 交通燈四種狀態(tài)請(qǐng)注意圖31b和圖31d,它們?cè)谝粋€(gè)時(shí)間段中四個(gè)方向都可以通車(chē),這種狀態(tài)能在一定的時(shí)間內(nèi)達(dá)到較大的車(chē)流量,效率特別高。依據(jù)上述的車(chē)輛行駛的狀態(tài)圖,可以列出各個(gè)路口燈
11、的邏輯表,由于相向的燈的狀態(tài)圖是一樣的,所以只需寫(xiě)出相鄰路口的燈的邏輯表;根據(jù)圖33可以看出,相鄰路口的燈它們的狀態(tài)在相位上相差180。因此最終只需寫(xiě)出一組s1、s2、s3、s4的邏輯狀態(tài)表。如表31 所示:開(kāi)始s1s4s3s2s2s1s3s4外圈是北方為前進(jìn)方向的狀態(tài)循環(huán),內(nèi)圈是東方為前進(jìn)方向的狀態(tài)循環(huán)s1的狀態(tài)abcdefgh邏輯值顯示時(shí)間 從40秒到0秒s2的狀態(tài)abcdefgh邏輯值顯示時(shí)間從30秒到0秒s3的狀態(tài)abcdefgh邏輯值顯示時(shí)間從70秒到30秒s4的狀態(tài)abcdefgh邏輯值顯示時(shí)間從30秒到0秒表3-1 交通燈的循環(huán)邏輯表表中的“”代表是紅燈亮(也代表邏輯上的0),“
12、”是代表綠燈亮(也代表邏輯上的1),依上表,就可以向相應(yīng)的端口送邏輯值。3.2 交通燈顯示時(shí)間的理論分析與計(jì)算東西和南北方向的放行時(shí)間的長(zhǎng)短是依據(jù)路口的各個(gè)方向平時(shí)的車(chē)流量來(lái)設(shè)定,并且s1、s2、s3、s4各個(gè)狀態(tài)保持的時(shí)間之有嚴(yán)格的對(duì)應(yīng)關(guān)系,其公式如下所示:t-s1+t-s2=t-s3t-s2=t-s4t-s1=t-s3我們可以依據(jù)上述的標(biāo)準(zhǔn)來(lái)改變車(chē)輛的放行時(shí)間。按照一般的規(guī)則,一個(gè)十字路口可分為主干道和次干道,主干道的放行時(shí)間大于次干道的放行時(shí)間,我們?cè)O(shè)定值時(shí)也應(yīng)以此為參考。第四章 電路圖及設(shè)計(jì)文件4.1 燈控制電路設(shè)計(jì)紅綠燈的顯示采用普通的發(fā)光二極管,每個(gè)方向上設(shè)置紅綠黃燈及行人燈各一個(gè)
13、,共四組,如圖4-1所示。如果東西方向紅燈亮那南北方向就是綠燈,反之亦然,所以在硬件連接圖上也成對(duì)稱(chēng)分布。 圖4-1 led控制電路4.2倒計(jì)時(shí)顯示電路設(shè)計(jì) 8段led是一種常用的數(shù)碼顯示屏。這種數(shù)碼管的每個(gè)線段都是一個(gè)發(fā)光二極管,因而把它叫做led數(shù)碼管。由于在數(shù)碼管的右下角增加了一個(gè)小數(shù)點(diǎn),形成了所謂的8段數(shù)碼管。e10501是屬于共陰極類(lèi)型的數(shù)碼管,只要公共端接地,其他端送上高電平就能點(diǎn)亮。e10501不僅具有工作電壓低,體積小,壽命長(zhǎng),可靠性高等優(yōu)點(diǎn),而且響應(yīng)時(shí)間短(一般不超過(guò)0.1微秒),亮度也比較高。缺點(diǎn)是工作電流比較高,一般工作電流都在10毫安左右。e10501的外形圖和等效電路
14、圖如圖4-2-1所示。圖4-2-1e10501外形圖圖4-2-2 e10501等效電路圖led段顯示數(shù)碼管的設(shè)置為每個(gè)方位上一對(duì)2位顯示器。四個(gè)方位上總共有8個(gè)led接在單片機(jī)的i/o口上。顯示時(shí)我們不需要小數(shù)點(diǎn),所以每個(gè)led的10根管腳只用了9根。連接后的時(shí)間顯示電路,如圖4-2-2所示,雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的i/o口是對(duì)稱(chēng)的,原理圖如圖4-2-3。圖4-2-3 數(shù)碼管顯示4.3違規(guī)車(chē)輛檢測(cè)電路設(shè)計(jì)在紅燈和黃燈期間,車(chē)輛是禁止通行的.為了對(duì)那些違反規(guī)則的車(chē)輛進(jìn)行檢測(cè),受條件限制,本系統(tǒng)設(shè)計(jì)中只使用了普通光敏二極管?;驹O(shè)計(jì)思路如下:將光敏二極管放在停
15、車(chē)線上,當(dāng)車(chē)輛通過(guò)的時(shí)候,因光敏二極管給遮住,二極管就不導(dǎo)通,單片機(jī)檢測(cè)到這一信號(hào)后就執(zhí)行報(bào)警操作。但是,顯然在實(shí)際中,使用發(fā)光二極管無(wú)法實(shí)現(xiàn)。違規(guī)車(chē)輛檢測(cè)電路除了使用光敏二極管,還使用了三極管,型號(hào)為9031。由于普通的光敏二極管的開(kāi)關(guān)性能不是很好,所以在設(shè)計(jì)中加個(gè)三極管做開(kāi)關(guān)。由于普通光敏二極管在導(dǎo)通的情況下的電阻能達(dá)到0.51k,所以在設(shè)計(jì)中將光敏二極管直接接上了電源。同時(shí)三極管還可以起到一定的隔離作用。當(dāng)光敏二極管關(guān)斷時(shí),三極管的基極為低電平,基極與發(fā)射極之間電壓為零,三極管關(guān)斷,檢測(cè)口的電壓為高電平;同理,當(dāng)光敏二極管導(dǎo)通時(shí),三極管的基極電壓為高電平,基極與發(fā)射極之間的電壓為高,三極
16、管導(dǎo)通,檢測(cè)口的電壓為低電平?;诖司涂梢詸z測(cè)是否有車(chē)輛違章,其原理圖如圖4-3。圖4-3 違規(guī)檢測(cè)電路第五章 程序設(shè)計(jì)思路與流程圖5.1主程序流程圖 程序初始化是否是狀態(tài)s1啟動(dòng)狀態(tài)s1是否是狀態(tài)s2啟動(dòng)狀態(tài)s2是否是狀態(tài)s3啟動(dòng)狀態(tài)s3是否是狀態(tài)s4啟動(dòng)狀態(tài)s4按鍵是否按下按鍵處理返回開(kāi)始主程序開(kāi)始是運(yùn)用定時(shí)器0來(lái)定時(shí),達(dá)到準(zhǔn)確記時(shí),在往下走就走到程序的死循環(huán)部分,分別判斷是哪一個(gè)狀態(tài),當(dāng)是狀態(tài)s1時(shí),就用軟件的方法啟動(dòng)s1,運(yùn)行s1,及南北通行,東西禁止。后面s2、s3、s4與s1一樣,在這過(guò)程中,如果遇到突發(fā)事件,則要進(jìn)行突發(fā)事件的按鍵處理,當(dāng)突發(fā)事件處理完后,在回到主程序,其流程圖如
17、圖51所示。 圖5-1主程序流程圖 部分主程序如下:/主函數(shù)/void main () t=5; time_init (); /定時(shí)器初始化 sec=count_down; /定時(shí)初值while(1) key_scan(); /按鍵掃描 switch (key_flag) case 0:t+;if(t=30)t=5;break;/設(shè)置時(shí)間 case 1:tr2 = 1;break; /恢復(fù) case 2:ew_on;p1=led4;tr2 = 0;break; /南北禁行,定時(shí)器停止 case 3:sn_on;p1=led4;tr2 = 0;break; /東西禁行,定時(shí)器停止 /=狀態(tài)s1=
18、 if( (aspect_flag = 0)&(interim_flag = 0)&(key_flag = 0) ) ew_on; p1=led0; p2=led7code(sec-interim)/10; /東西方向綠燈,少5秒 delay1ms(1); p2 = 0xff; p1=led1; p2=led7code(sec-interim)%10; delay1ms(1); p1=led2; p2=led7codesec/10; /南北方向紅燈 delay1ms(1); p2=0xff; p1=led3; p2=led7codesec%10; delay1ms(1); /=狀態(tài)s2= if
19、( (aspect_flag = 0)&(interim_flag = 1)&(key_flag = 0) ) if(half_sec % 2 = 1) ew_y_on; else ew_y_off; p1=led0; p2=led7codesec/10; /東西方向黃燈 delay1ms(1); p2 = 0xff; p1=led1; p2=led7codesec%10; delay1ms(1); p1=led2; p2=led7codesec/10; /南北方向紅燈 delay1ms(1); p2 = 0xff; p1=led3; p2=led7codesec%10; delay1ms(1
20、); /=狀態(tài)s3= if( (aspect_flag = 1)&(interim_flag = 0)&(key_flag = 0) ) sn_on; p1=led0; p2=led7codesec/10; /東西方向紅燈 delay1ms(1); p2 = 0xff; p1=led1; p2=led7codesec%10; delay1ms(1); p1=led2; p2=led7code(sec-interim)/10; /南北方向綠燈,少5秒 delay1ms(1); p2 = 0xff; p1=led3; p2=led7code(sec-interim)%10; delay1ms(1)
21、; /=狀態(tài)s4= if( (aspect_flag = 1)&(interim_flag = 1)&(key_flag = 0) ) if(half_sec % 2 = 1) sn_y_on; else sn_y_off; p1=led0; p2=led7codesec/10; delay1ms(1); p2 = 0xff; p1=led1; p2=led7codesec%10; delay1ms(1); p1=led2; p2=led7codesec/10; delay1ms(1); p2 = 0xff; p1=led3; p2=led7codesec%10; delay1ms(1); 5
22、.2按鍵子程序流程圖它包含倒計(jì)時(shí)調(diào)整和緊急狀態(tài)兩個(gè)狀態(tài)。主程序中放了一個(gè)按鍵的判斷指令,當(dāng)有按鍵按下的時(shí)候,程序就自動(dòng)的跳轉(zhuǎn)到按鍵子程序處理。當(dāng)檢測(cè)到k2鍵按下的時(shí)候就自動(dòng)返回到主程序。當(dāng)出現(xiàn)緊急的情況的時(shí)候,按下k3或者k4就切換到緊急狀態(tài),當(dāng)緊急事件處理完畢的時(shí)候,按下k2,就可以返回正常狀態(tài),流程圖如圖5-2。k1按k2按k3按進(jìn)入時(shí)間調(diào)整循環(huán)執(zhí)行s1s3+,s4k4按返回循環(huán)執(zhí)行s3 圖 5-2按鍵子程序流程圖圖5-3 按鍵設(shè)置 鍵盤(pán)分編碼鍵盤(pán)和非編碼鍵盤(pán)。鍵盤(pán)上閉合鍵的識(shí)別由專(zhuān)用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼號(hào)或鍵值的稱(chēng)為編碼鍵盤(pán),如計(jì)算機(jī)鍵盤(pán).而靠軟件編程來(lái)識(shí)別的稱(chēng)為非編碼鍵盤(pán);在
23、單片機(jī)組成的各種系統(tǒng)中,用的最多的是非編碼鍵盤(pán)。也有用到編碼鍵盤(pán)的。非編碼鍵盤(pán)有分為:獨(dú)立鍵盤(pán)和行列式(又稱(chēng)為矩陣式)鍵盤(pán)。其圖如圖5-4,而我們用的是獨(dú)立式鍵盤(pán),如上圖5-3。圖5-4 矩陣鍵盤(pán)的原理圖按鍵在編寫(xiě)程序時(shí),應(yīng)注意問(wèn)題,如消顫,一般有物理消顫和軟件消顫,我們這使用 軟件消顫。具體操作是,當(dāng)按鍵按下,用軟件延時(shí)一段時(shí)間,再次掃描按鍵情況,如果確實(shí)有按鍵按下,就進(jìn)入相應(yīng)的操作。當(dāng)操作完后要做一個(gè)按鍵是否斷開(kāi)的判斷,其依據(jù)如圖5-5: 圖5-5 鍵閉合和斷開(kāi)時(shí)的電壓抖動(dòng)按鍵程序:void key_scan()if (key1 = 0)delay1ms(10); /按下延時(shí)消顫if (k
24、ey1 = 0) if(key_flag = 1) key_flag = 0; /取消 else key_flag = 1; /確定 while(key1 = 0);delay1ms(5); /彈起延時(shí)消顫while(key1 = 0);if (key2 = 0)delay1ms(10); /按下延時(shí)消顫if (key2 = 0) if(key_flag = 2) key_flag = 0; /取消 else key_flag = 2; /確定 while(key2 = 0);delay1ms(5); /彈起延時(shí)消顫while(key2 = 0);if (key3 = 0)delay1ms(1
25、0); /按下延時(shí)消顫if (key3 = 0) if(key_flag = 3) key_flag = 0; /取消 else key_flag = 3; /確定 while(key3 = 0);delay1ms(5); /彈起延時(shí)消顫while(key3 = 0);if (key4 = 0)delay1ms(10); /按下延時(shí)消顫if (key4 = 0) if(key_flag = 4) key_flag = 0; /取消 else key_flag = 4; /確定 while(key4= 0);delay1ms(5); /彈起延時(shí)消顫while(key4 = 0);第六章 測(cè)試、數(shù)
26、據(jù)及結(jié)果分析6.1狀態(tài)燈顯示測(cè)試當(dāng)電路連接完畢后,將寫(xiě)好的測(cè)試程序刷寫(xiě)到芯片內(nèi),開(kāi)啟電源開(kāi)關(guān)k,以及按下k1 和k2分別給端口送高電平和低電平,通電即可檢測(cè)。6.2數(shù)碼管的測(cè)試 將串口和電路板上的接口連接,通過(guò)專(zhuān)業(yè)燒寫(xiě)軟件,將寫(xiě)好的相應(yīng)測(cè)試程序及.hex文件刷寫(xiě)到芯片內(nèi),我們這用的isplayv15下載線編程軟件,其顯示的效果圖如圖6-1,開(kāi)電源即可測(cè)試。 圖6-1 isp下載軟件6.3整體電路測(cè)試系統(tǒng)上電,刷寫(xiě)好程序即可開(kāi)始測(cè)試,觀測(cè)一個(gè)周期(共計(jì)s1s4四個(gè)狀態(tài),(默認(rèn)140秒)燈的顯示狀態(tài)是否正常,同時(shí)觀察倒計(jì)的計(jì)數(shù)是否正常,以及按鍵調(diào)節(jié)突發(fā)事件,是否正常。總 結(jié)由于使用的是單片機(jī)作為核
27、心的控制元件,使得電路的可靠性比較高,功能也比較強(qiáng)大,而且可以隨時(shí)的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。但是在我們?cè)O(shè)計(jì)和調(diào)試的過(guò)程中,也發(fā)現(xiàn)了一些問(wèn)題,譬如紅燈和綠燈的切換還不夠迅速,紅綠燈規(guī)則的效率還不是很高等等,這需要在實(shí)踐中進(jìn)一步完善。且功能的全面性還不夠強(qiáng),經(jīng)過(guò)這么長(zhǎng)的時(shí)間的失敗到成功的過(guò)程,讓我更加清楚的明白單片機(jī)的運(yùn)用就是對(duì)其端口的控制,同時(shí)外圍電路的設(shè)計(jì)以及了解,讓我對(duì)以前學(xué)過(guò)的知識(shí)能更加了解和認(rèn)識(shí),比如:電路、數(shù)、模電子技術(shù)、單片機(jī)技術(shù)、自動(dòng)檢測(cè)技術(shù)、電路板設(shè)計(jì)、智能儀器的設(shè)計(jì)應(yīng)用與傳感器的使用。在這段時(shí)間中,李老師們給了我很大的幫助,還有很多班上的同學(xué)及網(wǎng)上好友,你們對(duì)我的幫助和指
28、導(dǎo)我非常感謝!附錄:系統(tǒng)總體電路圖: 交通燈總原理圖 總程序:/*/作品名稱(chēng): 十字路口簡(jiǎn)易交通燈/設(shè)計(jì)者: 劉偉/功能介紹:/ key1按下,設(shè)置時(shí)間/ key2按下,恢復(fù)/ key3按下,東西禁止通行/ key4按下,南北禁止通行/設(shè)計(jì)時(shí)間: 2009.5.15/*#include #include /= #define uchar unsigned char#define uint unsigned int/=指示燈狀態(tài)定義=#define all_off (p0 = 0xdb)/全部禁行#define ew_on (p0 = 0xeb) /東西綠燈,南北紅燈#define sn_on
29、(p0 = 0xdd) /南北綠燈,東西紅燈#define ew_y_on (p0 = 0xf3) /南北紅燈,東西黃燈亮#define ew_y_off (p0 = 0xfb) /南北紅燈,東西黃燈滅#define sn_y_on (p0 = 0xde) /東西紅燈,南北黃燈亮#define sn_y_off (p0 = 0xdf) /東西紅燈,南北黃燈滅#define count_down 70 /定時(shí)時(shí)間#define interim t /黃燈過(guò)渡時(shí)間/=按鍵定義=sbit key1 = p24; /時(shí)間設(shè)置sbit key2 = p25; /恢復(fù)sbit key3 = p26; /東
30、西禁行sbit key4 = p27; /南北禁行/=函數(shù)定義=void time_init (); /定時(shí)器初始化void delay1ms(uchar t); /延時(shí)t*1msvoid delay1s(uchar t); /延時(shí)t*1svoid key_scan(); /鍵盤(pán)掃描/=數(shù)碼管選擇定義=const uchar led7code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /段碼const uchar led=0x01,0x02,0x04,0x08,0x00;/共陽(yáng)數(shù)碼管位選/=變量定義=uchar t50ms = 0;
31、/50ms累加位uchar half_sec,sec; /半秒,秒寄存器 uchar key_flag; /鍵值標(biāo)記位uint t;bit aspect_flag = 0; /0:東西通行,1:南北通行bit interim_flag = 0; /0:東西黃燈,1:南北黃燈/主函數(shù)/void main () t=5; time_init (); /定時(shí)器初始化 sec=count_down; /定時(shí)初值while(1) key_scan(); /按鍵掃描 switch (key_flag) case 0:t+;if(t=30)t=5;break;/設(shè)置時(shí)間 case 1:tr0 = 1;bre
32、ak; /恢復(fù) case 2:ew_on;p1=led4;tr0 = 0;break; /南北禁行,定時(shí)器停止 case 3:sn_on;p1=led4;tr0 = 0;break; /東西禁行,定時(shí)器停止 /=狀態(tài)s1= if( (aspect_flag = 0)&(interim_flag = 0)&(key_flag = 0) ) ew_on; p1=led0; p2=led7code(sec-interim)/10; /東西方向綠燈,少5秒 delay1ms(1); p2 = 0xff; p1=led1; p2=led7code(sec-interim)%10; delay1ms(1)
33、; p1=led2; p2=led7codesec/10; /南北方向紅燈 delay1ms(1); p2=0xff; p1=led3; p2=led7codesec%10; delay1ms(1); /=狀態(tài)s2= if( (aspect_flag = 0)&(interim_flag = 1)&(key_flag = 0) ) if(half_sec % 2 = 1) ew_y_on; else ew_y_off; p1=led0; p2=led7codesec/10; /東西方向黃燈 delay1ms(1); p2 = 0xff; p1=led1; p2=led7codesec%10;
34、delay1ms(1); p1=led2; p2=led7codesec/10; /南北方向紅燈 delay1ms(1); p2 = 0xff; p1=led3; p2=led7codesec%10; delay1ms(1); /=狀態(tài)s3= if( (aspect_flag = 1)&(interim_flag = 0)&(key_flag = 0) ) sn_on; p1=led0; p2=led7codesec/10; /東西方向紅燈 delay1ms(1); p2 = 0xff; p1=led1; p2=led7codesec%10; delay1ms(1); p1=led2; p2=
35、led7code(sec-interim)/10; /南北方向綠燈,少5秒 delay1ms(1); p2 = 0xff; p1=led3; p2=led7code(sec-interim)%10; delay1ms(1); /=狀態(tài)s4= if( (aspect_flag = 1)&(interim_flag = 1)&(key_flag = 0) ) if(half_sec % 2 = 1) sn_y_on; else sn_y_off; p1=led0; p2=led7codesec/10; delay1ms(1); p2 = 0xff; p1=led1; p2=led7codesec%
36、10; delay1ms(1); p1=led2; p2=led7codesec/10; delay1ms(1); p2 = 0xff; p1=led3; p2=led7codesec%10; delay1ms(1); /*名稱(chēng):void time_init ();功能:定時(shí)器初始化指令:調(diào)用:無(wú)返回:無(wú)/*/void time_init () tmod = 0x01;rcap2h =(65536-50000)/256; /定時(shí)50ms 自動(dòng)重裝rcap2l =(65536-50000)%256;ea = 1; /總中斷使能et0 = 1; /定時(shí)器0中斷開(kāi)tr0 = 1; /關(guān)定時(shí)器0/*名
37、稱(chēng):void tim0 () interrupt 1功能:t0中斷,參數(shù):調(diào)用:返回:*/ void pwm_time0 () interrupt 1rcap2h =(65536-50000)/256; /定時(shí)50ms 自動(dòng)重裝rcap2l =(65536-50000)%256;tf2 = 0; /清零中斷標(biāo)志位/et2 = 0; /定時(shí)器0中斷禁止if(+ t50ms = 10) half_sec+; t50ms = 0; if(half_sec = 2) half_sec = 0; /清零 if(-sec =interim ) interim_flag = 1;/黃燈閃爍標(biāo)志 if(sec
38、 =0) sec = count_down; aspect_flag = !aspect_flag; /換向 interim_flag = 0;/黃燈閃爍關(guān)閉 /*名稱(chēng):void key_scan()功能:按鍵掃描參數(shù):調(diào)用:返回:*/ void key_scan()if (key1 = 0)delay1ms(10); /按下延時(shí)消顫if (key1 = 0) if(key_flag = 1) key_flag = 0; /取消 else key_flag = 1; /確定 while(key1 = 0);delay1ms(5); /彈起延時(shí)消顫while(key1 = 0);if (key2
39、 = 0)delay1ms(10); /按下延時(shí)消顫if (key2 = 0) if(key_flag = 2) key_flag = 0; /取消 else key_flag = 2; /確定 while(key2 = 0);delay1ms(5); /彈起延時(shí)消顫while(key2 = 0);if (key3 = 0)delay1ms(10); /按下延時(shí)消顫if (key3 = 0) if(key_flag = 3) key_flag = 0; /取消 else key_flag = 3; /確定 while(key3 = 0);delay1ms(5); /彈起延時(shí)消顫while(ke
40、y3 = 0);if (key4 = 0)delay1ms(10); /按下延時(shí)消顫if (key4 = 0) if(key_flag = 4) key_flag = 0; /取消 else key_flag = 4; /確定 while(key4= 0);delay1ms(5); /彈起延時(shí)消顫while(key4 = 0);/*=名稱(chēng): void delay1ms(uchar t);功能:延時(shí)1ms參數(shù):t,最大255調(diào)用: 無(wú)返回:無(wú)=*/void delay1ms(uchar t) uchar i; for (;t0;t-) for (i=0;i138;i+) _nop_();_nop
41、_();_nop_();_nop_();_nop_(); 參考文獻(xiàn)及網(wǎng)站:1 李朝青.單片機(jī)原理及接口技術(shù)(修訂版).北京:北京航空航天大學(xué)出版社,1998年2 李廣弟.單片機(jī)基礎(chǔ).北京:北京航空航天大學(xué)出版社,1992年3 何立民.單片機(jī)應(yīng)用技術(shù)大全.北京:北京航空航天大學(xué)出版社, 1994年4 張毅剛. 單片機(jī)原理及接口技術(shù).哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990年5 譚浩強(qiáng).單片機(jī)課程設(shè)計(jì). 北京:清華大學(xué)出版社,1989年 6單片機(jī)學(xué)習(xí)網(wǎng)7邊海龍,單片機(jī)開(kāi)發(fā)與典型工程項(xiàng)目,電子工業(yè)出版社,2008年8郭天翔單片機(jī)網(wǎng)絡(luò)視頻,2007年。9 21ic單片機(jī)學(xué)習(xí)網(wǎng)。g an employme
42、nt tribunal claiemployment tribunals sort out disagreements between employers and employees.you may need to make a claim to an employment tribunal if: you dont agree with the disciplinary action your employer has taken against you your employer dismisses you and you think that you have been dismisse
43、d unfairly.for more information about dismissal and unfair dismissal, seedismissal.you can make a claim to an employment tribunal, even if you haventappealedagainst the disciplinary action your employer has taken against you. however, if you win your case, the tribunal may reduce any compensation aw
44、arded to you as a result of your failure to appeal.remember that in most cases you must make an application to an employment tribunal within three months of the date when the event you are complaining about happened. if your application is received after this time limit, the tribunal will not usuall
45、y accept i.if you are worried about how the time limits apply to you, take advice from one of the organisations listed underfurther help.employment tribunals are less formal than some other courts, but it is still a legal process and you will need to give evidence under an oath or affirmation.most p
46、eople find making a claim to an employment tribunal challenging. if you are thinking about making a claim to an employment tribunal, you should get help straight away from one of the organisations listed underfurther help.if you are being represented by a solicitor at the tribunal, they may ask you
47、to sign an agreement where you pay their fee out of your compensation if you win the case. this is known as adamages-based agreement. in england and wales, your solicitor cant charge you more than 35% of your compensation if you win the case.if you are thinking about signing up for a damages-based agree
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)倫理與道德-第1篇-洞察分析
- 虛擬現(xiàn)實(shí)訓(xùn)練成本效益分析-洞察分析
- 無(wú)人零售技術(shù)發(fā)展研究-洞察分析
- 線纜絕緣老化檢測(cè)方法-洞察分析
- 虛假新聞識(shí)別與治理-洞察分析
- 《大數(shù)據(jù)存儲(chǔ)技術(shù)與應(yīng)用》 課件 項(xiàng)目一-任務(wù)二 走進(jìn)大數(shù)據(jù)存儲(chǔ)技術(shù)
- 文化產(chǎn)品自動(dòng)化生產(chǎn)線構(gòu)建-洞察分析
- 醫(yī)療器械合作的意向書(shū)(5篇)
- 《建筑節(jié)能的措施》課件
- 創(chuàng)意美術(shù)教育課程設(shè)計(jì)的多維探索
- 呼吸內(nèi)科國(guó)家臨床重點(diǎn)專(zhuān)科建設(shè)項(xiàng)目評(píng)分標(biāo)準(zhǔn)試行
- 6000噸年氧化羰化制碳酸二甲酯合成工藝設(shè)計(jì)說(shuō)明書(shū)
- ASME壓力容器工藝評(píng)定試板取樣尺寸
- 治理超限超載從業(yè)人員學(xué)習(xí)培訓(xùn)資料
- 人教版八年級(jí)上冊(cè) 第十二章12.1 全等三角形復(fù)習(xí)課 教案
- 機(jī)械原理課程設(shè)計(jì)設(shè)計(jì)加熱爐推料機(jī)傳動(dòng)裝置
- 立井井筒裝備方案
- 給我店周邊各企事業(yè)單位領(lǐng)導(dǎo)贈(zèng)送體驗(yàn)券方案的請(qǐng)示
- 世界氣候分布圖(空白輪廓底圖)
- 山東省建設(shè)工程質(zhì)量監(jiān)督檔案樣表
- 天津市工傷職工停工留薪期確定通知書(shū)
評(píng)論
0/150
提交評(píng)論