基于51單片機(jī)智能交通燈系統(tǒng)設(shè)計(jì)說明_第1頁
基于51單片機(jī)智能交通燈系統(tǒng)設(shè)計(jì)說明_第2頁
基于51單片機(jī)智能交通燈系統(tǒng)設(shè)計(jì)說明_第3頁
基于51單片機(jī)智能交通燈系統(tǒng)設(shè)計(jì)說明_第4頁
基于51單片機(jī)智能交通燈系統(tǒng)設(shè)計(jì)說明_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 . . . 1.1. 設(shè)計(jì)思路設(shè)計(jì)思路 1 12.1 電源提供方案 12.2 顯示界面方案 22.3 輸入方案:23 3 單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì) 2 23.1 單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì) 23.2 單片機(jī)交通控制系統(tǒng)的功能要求 33.3 單片機(jī)交通控制系統(tǒng)的基本構(gòu)成與原理 44 4 智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)智能交通燈控制系統(tǒng)的硬件設(shè)計(jì) 4 44.1 AT89C51AT89C51 單片機(jī)簡介 44.1.1 AT89C51 單片機(jī)的主要特性 54.1.2 主要引腳功能 54.2 交通燈中的中斷處理流程 74.3 系統(tǒng)硬件總電路構(gòu)成與原理 84.3.1 系統(tǒng)

2、硬件電路構(gòu)成 84.3.2 系統(tǒng)工作原理 84.4 其它硬件介紹與連接 94.4.1 八段 LED 數(shù)碼管 95 5 系統(tǒng)軟件程序的設(shè)計(jì)系統(tǒng)軟件程序的設(shè)計(jì) 11115.1 程序主體設(shè)計(jì)流程 115.2 理論基礎(chǔ)知識(shí) 125.2.1 定時(shí)器原理 125.2.2 軟件延時(shí)原理 135.2.3 中斷原理 135.3 子程序模塊設(shè)計(jì) 135.3.1 狀態(tài)燈顯示與判斷 135.3.2 LED 倒計(jì)時(shí)顯示 145.3.3 緊停與調(diào)整時(shí)間中斷子程序 145.3.4 紅綠燈時(shí)間調(diào)整程序 155.4 系統(tǒng)軟件調(diào)試 175.4.1 TKS 仿真器 175.4.2 集成開發(fā)環(huán)境 KEIL17 參考文獻(xiàn)參考文獻(xiàn).17

3、.17 設(shè)計(jì)心得體會(huì)設(shè)計(jì)心得體會(huì).18.18 附錄附錄1919 . . . 2 / 27基于單片機(jī)的交通控制系統(tǒng)模擬設(shè)計(jì)摘要:自從 1858 年英國人,發(fā)明了原始的機(jī)械扳手交通燈之后,隨后的一百多年里,交通燈改變了交通路況,也在人們?nèi)粘I钪姓紦?jù)了重要地位,隨著人們社會(huì)活動(dòng)日益增加,經(jīng)濟(jì)發(fā)展,汽車數(shù)量急劇增加,城市道路日漸擁擠,交通燈更加顯示出了它的功能,使得交通得到有效管制,對(duì)于交通疏導(dǎo),提高道路導(dǎo)通能力,減少交通事故有顯著的效果。近年來,隨著科技的飛速發(fā)展,電子器件也隨之廣泛應(yīng)用,其中單片機(jī)也不斷深入人民的生活當(dāng)中。本模擬交通燈系統(tǒng)利用單片機(jī) AT89C51 作為核心元件,實(shí)現(xiàn)了通過信號(hào)燈

4、對(duì)路面狀況的智能控制。從一定程度上解決了交通路口堵塞、車輛停車等待時(shí)間不合理、急車強(qiáng)通等問題。系統(tǒng)具有結(jié)構(gòu)簡單、可靠性高、成本低、實(shí)時(shí)性好、安裝維護(hù)方便等優(yōu)點(diǎn),有廣泛的應(yīng)用前景。本模擬系統(tǒng)由單片機(jī)硬/軟件系統(tǒng),兩位 8 段數(shù)碼管和 LED 燈顯示系統(tǒng)。和復(fù)位電路控制電路等組成,較好的模擬了交通路面的控制。關(guān)鍵詞:交通燈 單片機(jī) 數(shù)碼管1. 設(shè)計(jì)思路(1)分析目前交通路口的基本控制技術(shù)以與各種通行方案,并以此為基礎(chǔ)提出自己的交通控制的初步方案。(2)確定系統(tǒng)交通控制的總體設(shè)計(jì),包括,十字路口具體的通行禁行方案設(shè)計(jì)以與系統(tǒng)應(yīng)擁有的各項(xiàng)功能,在這里,本設(shè)計(jì)除了有信號(hào)燈狀態(tài)控制能實(shí)現(xiàn)基本的交通功能,還

5、增加了倒計(jì)時(shí)顯示提示,基于實(shí)際情況,又增加了緊急狀況處理和通行時(shí)間可調(diào)這兩項(xiàng)特特殊功能。 (3)進(jìn)行顯示電路,燈狀態(tài)電路,按鍵電路的設(shè)計(jì)和對(duì)各器件的選擇與連接,大體分配各個(gè)器件與模塊的基本功能要求。(4)進(jìn)行軟件系統(tǒng)的設(shè)計(jì),對(duì)于本系統(tǒng),本人采用單片機(jī)匯編語言編寫,對(duì)單片機(jī)部結(jié)構(gòu)和工作情況做了充足的研究,了解定時(shí)器,中斷以與延時(shí)原理,總體上完成了軟件的編寫。2.單片機(jī)交通控制系統(tǒng)方案的比較、設(shè)計(jì)與論證2.1 電源提供方案為使模塊穩(wěn)定工作,須有可靠電源。因此考慮了兩種電源方案:方案一:采用獨(dú)立的穩(wěn)壓電源。此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會(huì)使系統(tǒng)復(fù)雜,且

6、可能影響電路電平。方案二:采用單片機(jī)控制模塊提供電源。改方案的優(yōu)點(diǎn)是系統(tǒng)簡明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高。綜上所述,我選擇第二種方案。 . . . 3 / 272.2 顯示界面方案該系統(tǒng)要求完成倒計(jì)時(shí)功能。基于上述原因,我考慮了二種方案:方案一:采用數(shù)碼管顯示。這種方案只顯示有限的符號(hào)和數(shù)碼字符,簡單,方便。方案二:采用點(diǎn)陣式 LED 顯示。這種方案雖然功能強(qiáng)大,并可方便的顯示各種英文字符,漢字,圖形等,但實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作。綜上所述,我選擇第一種方案。2.3 輸入方案:題目要求系統(tǒng)能調(diào)節(jié)燈亮?xí)r間,并可處理緊急情況,我研究了兩種方案:方案一:采用 8155 擴(kuò)展 I/O 口

7、與鍵盤,顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有 RAM,與計(jì)數(shù)器。若用該方案,可提供較多 I/O 口,但操作起來稍顯復(fù)雜。方案二: 直接在 I/O 口線上接上按鍵開關(guān)。由于該系統(tǒng)對(duì)于交通燈與數(shù)碼管的控制,只用單片機(jī)本身的 I/O 口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器與 RAM 已經(jīng)夠用,故選擇方案二。3 單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)3.1 單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì)設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài) 1 開始變換,直至狀態(tài) 6 然后

8、循環(huán)至狀態(tài) 1,周而復(fù)始,即如圖 2.1 所示: . . . 4 / 27圖 1 交通狀態(tài)通過具體的路口交通燈狀態(tài)的演示分析我們可以把這四個(gè)狀態(tài)歸納如下:東西方向紅燈滅,同時(shí)綠燈亮,南北方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí) 20 秒。此狀態(tài)下,東西向禁止通行,南北向允許通行。東西方向綠燈滅,同時(shí)黃燈亮,南北方向紅燈亮,倒計(jì)時(shí) 5 秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。南北方向紅燈滅,同時(shí)綠燈亮,東西方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí) 20 秒。此狀態(tài)下,東西向允許通行,南北向禁止通行。南北方向綠燈滅,同時(shí)黃燈亮,東西方向紅燈亮,倒計(jì)時(shí) 5 秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他

9、所以車輛都需等待狀態(tài)轉(zhuǎn)換。下面我們可以用圖表表示燈狀態(tài)和行止?fàn)顟B(tài)的關(guān)系如下:表 1 交通狀態(tài)與紅綠燈狀態(tài)狀態(tài) 1狀態(tài) 3狀態(tài) 4狀態(tài) 6東西向禁行等待變換通行等待變換南北向通行等待變換禁行等待變換東西紅燈1100東西黃燈0001東西綠燈0010南北紅燈0011南北綠燈1000南北黃燈0100東西南北四個(gè)路口均有紅綠黃 3 燈和數(shù)碼顯示管 2 個(gè),在任一個(gè)路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止?fàn)顟B(tài)將變換。狀態(tài)與紅綠燈狀態(tài)如表 1 所示。說明:0 表示滅,1 表示亮。3.2 單片機(jī)交通控制系統(tǒng)的功能要求本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號(hào)發(fā)生,還能

10、進(jìn)行倒計(jì)時(shí)顯示,通行時(shí)間調(diào)整和緊急處理等功能。(1)倒計(jì)時(shí)顯示 . . . 5 / 27倒計(jì)時(shí)顯示可以提醒駕駛員在信號(hào)燈燈色發(fā)生改變的時(shí)間、在“停止”和“通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號(hào)控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒計(jì)時(shí)顯示是用來減少駕駛員在信號(hào)燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的 1 種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇 。(2)時(shí)間的設(shè)置本設(shè)計(jì)中可通過鍵盤對(duì)時(shí)間進(jìn)行手動(dòng)設(shè)置,增加了人為的可控性,避免自動(dòng)故障和意外發(fā)生,并再緊急狀態(tài)下,可設(shè)置所有燈變?yōu)榧t燈。鍵盤是單片機(jī)系統(tǒng)中最常用的

11、人機(jī)接口,一般情況下有獨(dú)立式和行列式兩種。前者軟件編寫簡單,但在按鍵數(shù)量較多時(shí)特別浪費(fèi) I0 口資源,一般用于按鍵數(shù)量少的系統(tǒng)。后者適用于按鍵數(shù)量較多的場合,但是在單片機(jī) I0 口資源相對(duì)較少而需要較多按鍵時(shí),此方法仍不能滿足設(shè)計(jì)要求。本系統(tǒng)要求的按鍵控制不多,且 I0 口足夠,可直接采用獨(dú)立式。(3)緊急處理 交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護(hù)車等急行車通過等,我們都必須盡量允許其暢通無阻,畢竟在這種情況下是分秒必爭的,時(shí)時(shí)刻刻關(guān)系著公共財(cái)產(chǎn)安全,個(gè)人生死攸關(guān)等。由此在交通控制中增設(shè)禁停按鍵,就可達(dá)到想此目的。3.3 單片機(jī)交通控制系統(tǒng)的基本構(gòu)成與原理單片機(jī)設(shè)計(jì)交通燈控制系統(tǒng)

12、,可用單片機(jī)直接控制信號(hào)燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當(dāng)然,接入 LED 數(shù)碼管就可以顯示倒計(jì)時(shí)以提醒行使者,更具人性化。本系統(tǒng)在此基礎(chǔ)上,加入了緊急情況處理與時(shí)間調(diào)整功能。單片機(jī)最小系統(tǒng)外圍接口電路LED 數(shù)碼管顯示紅黃綠信號(hào)燈按鍵控制電路圖 2 系統(tǒng)的總體框圖據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)為控制核心,連接成最小系統(tǒng),由按鍵設(shè)置模塊產(chǎn)生輸入,信號(hào)燈狀態(tài)模塊,LED 倒計(jì)時(shí)模塊模塊接受輸出。系統(tǒng)的總體框圖如上所示。單片機(jī)上電后,系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到 LED 數(shù)碼管上實(shí)時(shí)顯示。在此過程中隨時(shí)調(diào)用急停按鍵和時(shí)間調(diào)節(jié)中斷。4 智能交通燈控制

13、系統(tǒng)的硬件設(shè)計(jì)4.1 AT89C51AT89C51 單片機(jī)簡介 . . . 6 / 27AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8 位微處理器,俗稱單片機(jī)。AT89C2051 是一種帶 2K 字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除 100 次。該器件采用 ATMEL 高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的 MCS-51 指令集和輸出管腳相兼容。由于將多功能 8 位 CPU 和閃爍存儲(chǔ)器組合在單

14、個(gè)芯片中,ATMEL 的 AT89C51 是一種高效微控制器,AT89C2051 是它的一種精簡版本。AT89C 單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。4.1.1 AT89C51 單片機(jī)的主要特性與 MCS-51 兼容 ,4K 字節(jié)可編程閃爍存儲(chǔ)器 ,壽命:1000 寫/擦循環(huán),數(shù)據(jù)保留時(shí)間:10 年,全靜態(tài)工作:0Hz-24Hz,三級(jí)程序存儲(chǔ)器鎖定,128*8 位部 RAM,32 可編程 I/O線,兩個(gè) 16 位定時(shí)器/計(jì)數(shù)器,5 個(gè)中斷源(兩個(gè)外部中斷源和 3 個(gè)部中斷源),可編程串行通道,低功耗的閑置和掉電模式,片振蕩器和時(shí)鐘電路。時(shí)鐘電路:時(shí)鐘電路的作用是產(chǎn)生單片機(jī)

15、工作所需要的時(shí)鐘脈沖序列。中斷系統(tǒng):中斷系統(tǒng)的作用主要是對(duì)外部或部的終端請(qǐng)求進(jìn)行管理與處理。AT89S51 共有 5 個(gè)中斷源,其中又 2 個(gè)外部中斷源和 3 個(gè)部中斷源。圖 3 AT89C51 系列單片機(jī)的部結(jié)構(gòu)示意圖4.1.2 主要引腳功能 . . . 7 / 27 圖 4 AT89C51 引腳圖VCC:電源電壓GND:接地P0 口:P0 口是一組 8 位雙向 I0 口。P0 口即可作地址數(shù)據(jù)總線使用,又可以作為通用的 I/O 口使用。當(dāng) CPU 訪問片外存儲(chǔ)器時(shí),P0 口分時(shí)先作低 8 位地址總線,后作雙向數(shù)據(jù)總線,此時(shí),P0 口就不能再作 I/O 口使用了。在訪問期間激活要使用上拉電阻

16、。P1 口:Pl 是一個(gè)帶部上拉電阻的 8 準(zhǔn)位雙向 IO 口,P1 作為通用的 I/O 口使用。P2 口:P2 是一個(gè)帶有部上拉電阻的 8 位準(zhǔn)雙向 IO 口,P2 即可作為通用的 I/O口使用,也可以作為片外存儲(chǔ)器的高 8 位地址總線,與 P0 口配合,組成 16 位片外存儲(chǔ)器單元地址。P3 口:P3 口是一組帶有部上拉電阻的 8 位準(zhǔn)雙向 I0 口。P3 口除了作為通用的 I/O 口使用之外,每個(gè)引腳還具有第二功能,具體分配如表 2表 2 具有第二功能的 P3 口引腳端口引腳第二功能:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外中斷 0)P3.3/ IN

17、T1(外中斷 1)P3.4T0(定時(shí)計(jì)數(shù)器 0 外部輸入)P3.5T1(定時(shí)計(jì)數(shù)器 1 外部輸入)P3.6/ WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/ RD 外部數(shù)據(jù)存儲(chǔ)器讀選通) . . . 8 / 27RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢出將使該引腳輸出高電平,設(shè)置 SFR AUXR 的 DISRT0 位(地址 8EH)可打開或關(guān)閉該功能。DISRT0 位缺省為 RESET 輸出高電平打開狀態(tài)。ALE:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低 8 位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE 仍以

18、時(shí)鐘振蕩頻率的 16 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè) ALE 脈沖。對(duì) F1ash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG) 。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的 8EH 單元的 D0 位置位,可禁止 ALE 操作。該位置位后,只有一條 M0VX 和 M0VC 指令 ALE 才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置 ALE 無效。程序儲(chǔ)存允許()輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng) AT89S51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次有效,即輸出兩個(gè)脈沖

19、。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的信號(hào)。VPP:外部訪問允許。欲使 CPU 僅訪問外部程序存儲(chǔ)器(地址為 0000HFFFFH) ,EA 端必須保持低電平(接地) 。需注意的是:如果加密位 LB1 被編程,復(fù)位時(shí)部會(huì)鎖存EA 端狀態(tài)。如 EA 端為高電平(接 VCC 端) ,CPU 則執(zhí)行部程序存儲(chǔ)器中的指令。F1ash 存儲(chǔ)器編程時(shí),該引腳加上+12V 的編程電壓 Vcc。XTAL1:振蕩器反相放大器與部時(shí)鐘發(fā)生器的輸入端。4.1.3 MCS51 的中斷源8051 有 5 個(gè)中斷源,它們是兩個(gè)外中斷 INT0(P3.2)和 INT1(P3.3)、兩個(gè)片定時(shí)/計(jì)數(shù)器溢出中斷 TF0 和 T

20、F1,一個(gè)是片串行口中斷 TI 或 RI,這幾個(gè)中斷源由 TCON 和SCON 兩個(gè)特殊功能寄存器進(jìn)行控制,其中 5 個(gè)中斷源的程序入口地址如表 4 所示:表 3 中斷源程序入口中斷源的服務(wù)程序入口地址中斷源入口地址外中斷 00003H定時(shí)/計(jì)數(shù)器 0000BH外中斷 10013H定時(shí)/計(jì)數(shù)器 0001BH串行口中斷0023H4.2 交通燈中的中斷處理流程()現(xiàn)場保護(hù)和現(xiàn)場恢復(fù):有特殊車輛要通過時(shí)就要進(jìn)行中斷,在中斷之前,先將交通燈中斷前情況保護(hù)好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場,包括信號(hào)燈和時(shí)間顯示電路。()中斷打開和中斷關(guān)閉:為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中

21、斷。()中斷服務(wù)程序:有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向?yàn)榧t燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向?yàn)榧t燈。() 中斷返回: . . . 9 / 27執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號(hào)回到中斷前狀態(tài),顯示時(shí)間也和中斷前一樣。4.3 系統(tǒng)硬件總電路構(gòu)成與原理實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用 AT89C51 單片機(jī)與外圍器件構(gòu)成最小控制系統(tǒng),12 個(gè)發(fā)光二極管分成 4 組紅綠黃三色燈構(gòu)成信號(hào)燈指示模塊,8 個(gè) LED 東西南北各兩個(gè)構(gòu)成倒計(jì)時(shí)顯示模塊,

22、若干按鍵組成時(shí)間設(shè)置和緊急按鈕。4.3.1 系統(tǒng)硬件電路構(gòu)成本系統(tǒng)以單片機(jī)為核心,系統(tǒng)硬件電路由狀態(tài)燈,LED 顯示,按鍵,組成。其具體的硬件電路總圖如圖 3.1 所示。其中 P0 用于送顯兩片 LED 數(shù)碼管,P1 用于控制紅綠黃發(fā)光二極管,XTAL1 和 XTAL2接入晶振時(shí)鐘電路,REST 引腳接上復(fù)位電路,P2.6 與 P2.7 對(duì)數(shù)碼管進(jìn)行片選,P3.2 即INT0 緊急情況處理按鍵,P3.3 即 INT1 接時(shí)間調(diào)整中斷按鍵。4.3.2 系統(tǒng)工作原理系統(tǒng)上電或手動(dòng)復(fù)位之后,系統(tǒng)先顯示狀態(tài)燈與 LED 數(shù)碼管,將狀態(tài)碼值送顯 P1 口,將要顯示的時(shí)間值的個(gè)位和十位分別送顯 P0 口,

23、在此同時(shí)用軟件方法計(jì)時(shí) 1 秒,到達(dá) 1s就要將時(shí)間值減 1,刷新 LED 數(shù)碼管。時(shí)間到達(dá)一個(gè)狀態(tài)所要全部時(shí)間,則要進(jìn)行下一狀態(tài)判斷與銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以與時(shí)間值,當(dāng)然,還要開啟兩個(gè)外部中斷,其一為緊急情況處理中斷,一旦信號(hào)有效,即 K3 鍵為低電平時(shí)進(jìn)入中斷服務(wù)子程序,東西南北路口的紅燈全亮禁止全部通行,再按一下鍵,中斷結(jié)束返回。其二為通行時(shí)間調(diào)整中斷,若 K4 按鍵有效,進(jìn)入相應(yīng)的中斷子程序,對(duì)時(shí)間進(jìn)行調(diào)整,此后再按 K4 鍵則中斷結(jié)束返回。 . . . 10 / 2720pFC120pFC21KR134.7KR1422uFC31212MHZS?SW-PBVCCVCCGND

24、GNDGNDVD12VD11VD10VD9VD8VD7VD6VD5VD4VD3VD2VD14.7KR124.7KR114.7KR104.7KR94.7KR84.7KR74.7KR64.7KR54.7KR34.7KR44.7KR14.7KR2東 東 東東 東 東東 東 東東 東 東東 東 東東 東 東P1.5P1.4P1.3P1.2P1.1P1.0東東東東東P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT1

25、13P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN29ALE/PROG30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40IC1P80C51RA+5NK1K2K3東東東東東東東東東東A1f2g3e4d5A6c8DP7b9a10DS1A

26、1f2g3e4d5A6c8DP7b9a10DS30.2KR150.2KR160.2KR170.2KR180.2KR190.2KR200.2KR210.2KR22東東東東東東東Q?2N3904Q?2N3904VCC圖 5 基于單片機(jī)的交通燈控制系統(tǒng)電路圖4.4 其它硬件介紹與連接4.4.1 八段 LED 數(shù)碼管LED 顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長、維護(hù)簡便等優(yōu)點(diǎn)。LED 數(shù)碼管的結(jié)構(gòu)簡單,分為七段和八段兩種形式,也有共陽和共陰之分。以八段共陽管為例,它有 8 個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來顯示 dP,即點(diǎn)),每個(gè)發(fā)光二極管的陽極連在一起,如圖 3.6 所示

27、。這樣,一個(gè) LED 數(shù)碼管就有 I 根位選線和8 根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的高低電平來加以控制。為方便起見,本文主要討論共陽八段 LED 數(shù)碼顯示管,其他類形的顯示管與其類似。圖 6 LED 數(shù)碼管LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)亮而顯 . . . 11 / 27示不同的字形,如 dp,g,f,e,d,c,b,a 全亮顯示為,采用共陽極連接驅(qū)動(dòng)代碼,代碼表如下表 5 所示。表 5 驅(qū)動(dòng)代碼表顯示數(shù)值dp,g,f,e,d,c,b,a驅(qū)動(dòng)代碼011010000C0H111111001F9H210100100A4H310110000B0H4

28、1001100199H51001001092H61000001082H711111000F8H81000000080H91001000090H相應(yīng)在程序軟件上,可以通過調(diào)用程序給定的秒值經(jīng)過特定計(jì)算算出需要顯示的個(gè)位和十位,然后有 DPTR 調(diào)取 LEDMAP 的代碼。LED8 段數(shù)碼管的設(shè)置為每個(gè)方位上的一對(duì) 2 為顯示器。四個(gè)方位上總共用 8 個(gè) LED 接在單片機(jī)的 IO 口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的 IO 口是對(duì)稱的。如圖 3.7 所示,其中 A,B 分別是 P0,P1 的網(wǎng)絡(luò)標(biāo)號(hào)。圖 7 LED 連接圖4.4.2 發(fā)光二極管根據(jù)本設(shè)計(jì)的特點(diǎn),紅

29、綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極管。每個(gè)方向上設(shè)置紅綠黃燈,總共 4 組。如果東西紅燈亮,那南北方向就是綠燈亮,反之亦然,所以在硬件上連接圖上也是對(duì)稱分布的,如下圖 8 所示。 . . . 12 / 27圖 8 信號(hào)燈的連接4.4.3 按鍵控制本設(shè)計(jì)設(shè)置了有 5 個(gè)鍵:K1 鍵 P3.0,K2 鍵 P3.1,K3 鍵 P3.2,K4 鍵 P3.3,K5 鍵P3.4,每個(gè)按鍵一端接地,另一端接對(duì)應(yīng)的 P3 端口。低電平有效,當(dāng)按鍵按下端口接地,單片機(jī)捕獲到低電平,從而知道相應(yīng)的輸入信息。5 系統(tǒng)軟件程序的設(shè)計(jì)5.1 程序主體設(shè)計(jì)流程全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程序

30、,狀態(tài)燈控制程序,LED 顯示程序緊停程序,中斷服務(wù)子程序,紅綠燈時(shí)間調(diào)整程序等。整個(gè)軟件程序方面主要分兩大部分:主程序部分和中斷處理程序。流程圖如圖 9 所示。 . . . 13 / 27開始系統(tǒng)初始化東西亮綠燈,南北亮紅燈調(diào)顯示子程序(動(dòng)態(tài)顯示)東西,南北方向換向東西黃燈閃爍,南北亮紅燈燈中斷處理子程序處理返回 圖 9 系統(tǒng)總流程圖設(shè)計(jì)說明:該智能交通燈控制系統(tǒng)的軟件設(shè)計(jì)采用的是順序執(zhí)行并反復(fù)循環(huán)的方法。智能交通燈控制系統(tǒng)在正常工作的情況下,每 20s 循環(huán)變化一次。每個(gè)循環(huán)周期在還剩5s 時(shí),正在通行路口的黃燈同時(shí)點(diǎn)亮并開始閃爍,以提醒路人上的行人與車輛,交通燈即將發(fā)生變化。在此期間若中

31、斷按鍵按下則轉(zhuǎn)入中斷服務(wù)子程序進(jìn)行相關(guān)操作。5.2 理論基礎(chǔ)知識(shí)5.2.1 定時(shí)器原理定時(shí)器工作的基本原理其實(shí)就是給初值,讓它不斷加 1 直至減完為模值,這個(gè)初值是送到 TH 和 TL 中的。它是以加法記數(shù)的,并能從全 1 到全 0 時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值,即所要求的計(jì)數(shù)值設(shè)定為 C,把計(jì)數(shù)初值設(shè)定為 TC 可得到如下計(jì)算通式:TC=M-C式中,M 為計(jì)數(shù)器模值。計(jì)數(shù)值并不是目的,目的是時(shí)間值,設(shè)計(jì) 1 次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為 T0,它是單片機(jī)系統(tǒng)主頻周期的 12 倍,設(shè)要求的時(shí)間值為 T,則有 C=TT0。計(jì)算通式變?yōu)椋篢=(MTC)T

32、0模值和計(jì)數(shù)器工作方式有關(guān)。在方式 0 時(shí) M 為 8192;在方式 1 時(shí) M 的值為 65536;在方式 2 和 3 為 256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過 12 分頻后,若采用方式最大延時(shí)只有 8.129 毫秒,采用方式最大延時(shí)也只有 65.536 毫秒。這就是為什么掃描周期為 50ms 的原因, . . . 14 / 27若使用軟件則會(huì)耽擱程序流程,顯然不可行。相反,時(shí)間計(jì)時(shí)方面卻不可能只用計(jì)數(shù)器,因?yàn)轱@然秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們還必須采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題。5.2.2 軟件延時(shí)原理MCS-51 的工作

33、頻率為 12MHZ,機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的 12 倍,所以一個(gè)機(jī)器周期的時(shí)間為 12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定 1 秒的時(shí)間,但同時(shí)由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。5.2.3 中斷原理本系統(tǒng)主要使用了外部中斷,中斷信號(hào)有引腳 INT0 和 INT1 輸入,低電平有效,CPU每個(gè)時(shí)鐘周期都會(huì)檢測 INT0 和 INT1 上的信號(hào),8051 允許外部中斷以電平方式或負(fù)邊沿方式兩種中斷方式輸入中斷請(qǐng)求信號(hào),可由用戶通過設(shè)置 TCON 中 IT0 和 IT1 位的狀態(tài)來實(shí)現(xiàn)。以 IT0 為

34、例,IT0=0,為電平觸發(fā)方式,IT0=1,為負(fù)邊沿觸發(fā)方式,本設(shè)計(jì)采用電平方式,IE0 為其中斷標(biāo)志位,有中斷信號(hào)則置位,中斷服務(wù)子程序響應(yīng)后,IE0 自動(dòng)清零。IE 中的 EA 為允許中斷的總控制位,為 1 開啟,EX0 為外部中斷允許控制位,為 1開啟。在優(yōu)先級(jí)的允許下,一旦有外部中斷信號(hào)產(chǎn)生,單片機(jī) CPU 首先保護(hù)斷點(diǎn),PC 值進(jìn)棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用 RETI 指令返回,此時(shí) CPU 會(huì)從堆棧中取保存的斷點(diǎn)地址,送回 PC,程序再正常執(zhí)行。 5.3 子程序模塊設(shè)計(jì)5.3.1 狀態(tài)燈顯示與判斷在本設(shè)計(jì)中,實(shí)際控制的燈只有 6 個(gè),即:東西紅燈,東西綠燈,東西黃

35、燈,南北紅燈,南北綠燈,南北黃燈。定義 IO 端口如下,其中均是低電平有效。H_RED BIT P1.0H_YELLOW BIT P1.1H_GREEN BIT P1.2L_RED BIT P1.3L_ YELLOW BIT P1.4L_ GREEN BIT P1.5共有 4 鐘狀態(tài):東西紅燈亮,南北綠燈亮(0F3H) ;東西紅燈亮,南北黃燈亮(0F5H) ;東西綠燈亮,南北紅燈亮(0DEH) ;東西黃燈亮,南北紅燈亮(0EEH) 。括號(hào)中是 P1 端口 8 個(gè)引腳值對(duì)應(yīng)的十六進(jìn)制碼。用于顯示發(fā)光二極管時(shí),部分程序如下: ;東西紅,南北綠,計(jì)時(shí)時(shí)間為 20s MOV P1,#0F3H MOV

36、60H,61HA1: MOV R1,#50A2: ACALL BCD ACALL DISPCLK DJNZ R1,A2 MOV A,60H . . . 15 / 27 MOV R0,60H ADD A,#99H DA A MOV 60H,A CJNE R0,#05H,A15.3.2 LED 倒計(jì)時(shí)顯示LED 計(jì)時(shí)每 1 秒都要刷新 1 次,采用的是動(dòng)態(tài)顯示,首先將 R4 除以 10H,整數(shù)即十位放在 50H 中,余數(shù)即個(gè)位放在 51H 中,設(shè)置 7 段 LED 顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器 DPTR 指向數(shù)據(jù)表的首地址,再加上 A 中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個(gè)位顯示同

37、理。具體程序如下:BCD: ;將十位數(shù)送到(51) ,個(gè)位數(shù)送到() MOV A,60H;60H 單元放的是倒計(jì)時(shí)值MOV B,#10HDIV ABMOV 51H,AMOV A,BMOV 50H,ARETDISPCLK: ;顯示部分 MOV DPTR,#TABMOV A,50HMOVCA,A+DPTR MOV P0,A CLR P2.6 LCALLDELAY SETBP2.6 MOV A,51H MOVCA,A+DPTR MOV P0,A CLR P2.7 LCALLDELAY SETBP2.7 RET 5.3.3 緊停與調(diào)整時(shí)間中斷子程序緊停按鍵連接到外部中斷引腳 P3.2,即 INT0 捕

38、獲到一個(gè)低電平,則進(jìn)入該中斷進(jìn)行相關(guān)處理。程序如下:;緊急情況處理IINT0: CLR EA P3.2,$ PUSH 60H PUSH P1 . . . 16 / 27 PUSH P2B0: JNB P3.0,NH JNB P3.1,DH;全紅A9: MOV P1,#0F6H SETB P2.6 SETB P2.7 ACALL DELAY JNB P3.2,B0 JMP JE;只允許東西方向車輛通行NH: MOV P1,#0DEH SETB P2.6 SETB P2.7 ACALL DELAY JNB P3.2,B0 JMP JE;只允許南北方向車輛通行DH: MOV P1,#0F3H SET

39、B P2.6 SETB P2.7 ACALL DELAY JNB P3.2,B0 JMP JEJE: POP P2 POP P1 POP 60H SETB EA RETI5.3.4 紅綠燈時(shí)間調(diào)整程序時(shí)間調(diào)整按鍵連接到外部中斷引腳 P3.3,即 INT1 捕獲到一個(gè)低電平,則進(jìn)入該中斷進(jìn)行相關(guān)處理。程序如下:;加減程序IINT1: CLR EA P3.3,$ PUSH P1 PUSH P2B1: JNB P3.1,DDECIINC: JNB P3.0,SINC ;加 1 程序 . . . 17 / 27 ZINC: ;自動(dòng)加 1 MOV R0,#15 A10: ACALL BCD ACALL

40、DISPCLK DJNZ R0,A10 MOV A,60H ADD A,#01H DA A MOV 60H,A JNB P3.3,B1 JMP JS SINC: ;手動(dòng)加 1 MOV R3,#20 A11: ACALL BCD ACALL DISPCLK DJNZ R3,A11 MOV A,60H ADD A,#01H DA A MOV 60H,AB2: P3.3,JS JNB P3.4,SINC JMP B2DDEC: ;減 1 程序 JNB P3.0,SDEC ZDEC: MOV R4,#15 A12: ACALL BCD ACALL DISPCLK DJNZ R4,A12 MOV A,6

41、0H ADD A,#99H DA A MOV 60H,A P3.3,JS JMP B1 SDEC: ;手動(dòng)減 1 程序 MOV R5,#20 A13: ACALL BCD ACALL DISPCLK DJNZ R5,A13 . . . 18 / 27 MOV A,60H ADD A,#99H DA A MOV 60H,A B3: P3.3,JS JNB P3.4,SDEC JMP B3JS: MOV 61H,60H POP P2 POP P1 SETB EA RETI5.4 系統(tǒng)軟件調(diào)試5.4.1 TKS 仿真器仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來模仿真實(shí)的情況。單片機(jī)系統(tǒng)

42、開發(fā)中的仿真包括軟件仿真和硬件仿真。軟件仿真這種方法主要是使用計(jì)算機(jī)軟件來模擬實(shí)際的單片機(jī)運(yùn)行,因此仿真與硬件無關(guān)的系統(tǒng)具有一定的優(yōu)點(diǎn)。用戶不需要搭建硬件電路就可以對(duì)程序進(jìn)行驗(yàn)證,特別適合于偏重算法的程序。軟件仿真的缺點(diǎn)是無法完全仿真與硬件相關(guān)的部分,因此最終還要通過硬件仿真來完成最后的設(shè)計(jì);硬件仿真使用附加的硬件來替代用戶系統(tǒng)的單片機(jī)并完成單片機(jī)全部或大部分的功能。使用了附加硬件后用戶就可以對(duì)程序的運(yùn)行進(jìn)行控制,例如單步、全速、查看資源斷點(diǎn)等。5.4.2 集成開發(fā)環(huán)境 KEILKEIL IDE Vision2 集成開發(fā)環(huán)境主要由以下部分組成:u Vision2 IDE。ision2 IDE

43、包括:一個(gè)工程管理器,一個(gè)功能豐富并有交互式錯(cuò)誤提示的編輯器選項(xiàng)設(shè)置生成工具,以與在線幫助。使用 vision2 創(chuàng)建源文件并組成應(yīng)用工程加以管理。vision2 可以自動(dòng)完成編譯匯編程序的操作; C51 編譯器和 A51 匯編器。Vision2 IDE 創(chuàng)建的源文件可以被 C51 編譯器或 A51 匯編器處理生成可重定位的 object 文件。KEIL C51 編譯器遵照 ANSI C 語言標(biāo)準(zhǔn)支持 C 語言的所有標(biāo)準(zhǔn)特性,另外還增加了幾個(gè)可以直接支持 80C51 結(jié)構(gòu)的特性。KEIL A51 宏匯編器支持 80C51 與其派生系列的所有指令集; LIB51 庫管理器。B51 庫管理器可以從

44、由匯編器和編譯器創(chuàng)建的目標(biāo)文件建立目標(biāo)庫,這些庫是按規(guī)定格式排列的目標(biāo)模塊,可在以后被器所使用當(dāng)器處理一個(gè)庫時(shí)僅僅使用了庫中程序使用了的目標(biāo)模塊而不是全部加以引用;BL51 器定位器。L51 器使用從庫中提取出來的目標(biāo)模塊和由編譯器匯編器生成的目標(biāo)模塊創(chuàng)建一個(gè)絕對(duì)地址目標(biāo)模塊,絕對(duì)地址目標(biāo)文件或模塊包括不可重定位的代碼和數(shù)據(jù)所有的代碼和數(shù)據(jù)都被固定在具體的存儲(chǔ)器單元中。利用 KEIL 開發(fā)和調(diào)試系統(tǒng)軟件流程大致如下:啟動(dòng) Vision2,進(jìn)入 KEIL 軟件的集成開發(fā)環(huán)境;利用 KEIL 置的文本編輯器進(jìn)行程序源文件的編輯,因?yàn)?KEIL 集成的文本編輯器對(duì)中文支持不是很好,可以選擇其他的編輯

45、器(本文使用的文本編輯器是 Ultraedit32), . . . 19 / 27Vision2 能夠自動(dòng)識(shí)別外部改變了的源文件;建立工程,指定針對(duì)哪種單片機(jī)進(jìn)行開發(fā),指定對(duì)源程序的編譯、參數(shù),指定調(diào)試方式(本文采用外部硬件仿真器仿真調(diào)試的方式,即使 TKS 仿真器仿真),然后對(duì)工程進(jìn)行相關(guān)設(shè)置;設(shè)置好工程后即可進(jìn)行編譯、 。連接仿真器對(duì)軟件進(jìn)行調(diào)試。也可以生成下載到單片機(jī)存儲(chǔ)器上的 HEX 文件。5.4.3 系統(tǒng)軟件調(diào)試系統(tǒng)的軟件調(diào)試借助于 TKS 仿真器,在進(jìn)行系統(tǒng)軟件的連續(xù)調(diào)試之前要先進(jìn)行軟件的初調(diào),就是要使各個(gè)子程序模塊運(yùn)行正確,程序的運(yùn)行流程正確。軟件調(diào)試主要分以下幾個(gè)步驟進(jìn)行:功能

46、子程序的調(diào)試。能子程序的調(diào)試包括運(yùn)算、采樣、數(shù)字濾波以與 PID 運(yùn)算等子程序的調(diào)試。在調(diào)試功能子程序時(shí),許多參數(shù)都是未知的,要根據(jù)其所需的條件,給出假定的數(shù)據(jù),使其運(yùn)行,如果能完成預(yù)定的處理功能或與手工計(jì)算的結(jié)果相符,就說明該子程序己調(diào)試通過。調(diào)試時(shí)由小到大,由里到外。例如,調(diào)試 PID 算法子程序時(shí),先調(diào)通其包含的各個(gè)運(yùn)算子程序和參數(shù)處理子程序,然后將它們連起來進(jìn)行通調(diào)。通調(diào)時(shí),也是假定一些數(shù)據(jù)、參數(shù)和初始條件,然后運(yùn)行程序。當(dāng)運(yùn)算結(jié)果與手工計(jì)算的結(jié)果一樣時(shí),該算法子程序則調(diào)試完成,反之,就要進(jìn)行相應(yīng)的修改。其它子程序的調(diào)試同理;程序流程的調(diào)試。序流程的調(diào)試主要是查看程序運(yùn)行的步驟是否正確

47、,在某時(shí)刻程序運(yùn)行所處的位置是否正確,是否能正確運(yùn)行各個(gè)中斷服務(wù)程序。在調(diào)試過程中,先將PID 算法子程序屏蔽,輸出可控硅導(dǎo)通時(shí)間用一個(gè)固定的常數(shù)代替,在各個(gè)中斷服務(wù)子程序設(shè)置斷點(diǎn),然后運(yùn)行程序,查看程序是否能運(yùn)行到所有的斷點(diǎn),若所有斷點(diǎn)都能運(yùn)行到,則程序流程基本正確。去掉所有斷點(diǎn),再一次運(yùn)行程序,查看可控硅狀態(tài),從而判斷程序流程正確,反之,若程序流程不正確,做相應(yīng)的修改后,重新調(diào)試;功能程序與算法程序的通調(diào)。完成整個(gè)程序流程的調(diào)試后,將 PID 等算法子程序加入,在算法子程序前或后設(shè)置斷點(diǎn),運(yùn)行整個(gè)程序。當(dāng)程序在斷點(diǎn)處暫停時(shí),查看 PID 計(jì)算的控制量與手工計(jì)算的值是否一樣。多運(yùn)行幾次,若每

48、次的結(jié)果都正確,則說明程序各個(gè)部分互相沒有矛盾,反之,則說明算法子程序和其它子程序之間有影響,需要做相應(yīng)的修改后重新調(diào)。參考文獻(xiàn):l邊海龍,永奎 . 單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解J.電子工業(yè),2008,(10):143-160.2鑫,華臻,書謙 . 單片機(jī)原理與應(yīng)用 J.電子工業(yè), 2008(5).3黃智偉 .凌陽單片機(jī)課程設(shè)計(jì)指導(dǎo)J. 航空航天大學(xué) ,2007,4余錫存 .單片機(jī)原理與接口技術(shù)M.:電子科技大學(xué) ,2000.75雷麗文 等.微機(jī)原理與接口技術(shù)M.:電子工業(yè), 1997.2 . . . 20 / 276柴鈺.單片機(jī)原理和應(yīng)用M.電子科技大學(xué).7靖武.單片機(jī)系統(tǒng)的 PROTU

49、SE 設(shè)計(jì)和仿真M.電子工業(yè).2007.8唐 工.51 單片機(jī)工程應(yīng)用實(shí)例M.設(shè)計(jì)心得體會(huì)經(jīng)過兩周的努力工作,終于完成了自己的單片機(jī)課程設(shè)計(jì)。雖說忙碌了點(diǎn),但我覺得這樣的生活充實(shí)且有成就感,當(dāng)然,也獲益匪淺。在焊接過程中,我學(xué)會(huì)應(yīng)先合理的布局,并認(rèn)真檢查每個(gè)元器件,確保無誤后再焊接。還有,不能急于求成,要焊接一個(gè)模塊,檢查一個(gè)模塊,免得整個(gè)版子焊完后再在一大堆線中檢查,這樣不僅效率低且耗時(shí)。自然,我也學(xué)會(huì)如何去發(fā)現(xiàn)問題與解決問題的一些方法。至于軟件設(shè)計(jì)與調(diào)試,我覺得它主要考驗(yàn)?zāi)愕乃季S邏輯能力與你對(duì)指令的熟悉程度??梢哉f再整個(gè)軟件設(shè)計(jì)過程中,我不僅學(xué)會(huì)了延時(shí)的兩種方法,即軟件延時(shí)和硬件延時(shí),還掌

50、握數(shù)碼管的兩種顯示方式(即動(dòng)態(tài)顯示與靜態(tài)顯示)與其如何選擇。當(dāng)然,通過幾次反復(fù)調(diào)試過程,使得我對(duì)匯編指令有了更深刻的理解。在整個(gè)課程設(shè)計(jì)過程我還掌握了一下幾點(diǎn):(1)掌握了電子系統(tǒng)設(shè)計(jì)的流程,熟悉了各種硬件電路以與軟件編程方法。(2)理解了最單片機(jī)的各部分組成與特性。(3)熟練使用了各種計(jì)算機(jī)輔助設(shè)計(jì)工具完成設(shè)計(jì),充分掌握了這些工具的使用。(4)學(xué)會(huì)了利用Keil uVision3對(duì)匯編語言進(jìn)行編譯過程.更進(jìn)一步加深了對(duì)PROTEUS軟件的學(xué)習(xí)。還有,我還發(fā)現(xiàn)自身一些毛病。一,前期準(zhǔn)備工作做的不夠好,想的還算多,可就是沒落實(shí)。先說選題,就表現(xiàn)自己有畏難情緒,其實(shí)當(dāng)時(shí)找到好幾個(gè)題目,但交通燈最熟

51、悉,所以就選了它。就這,還沒做的很理想,還有好些功能可以加上去,像通過測流量來自動(dòng)調(diào)整通行時(shí)間,加個(gè)監(jiān)控電路,看門狗電路等。二,行動(dòng)起來不是很賣力,雖說動(dòng)手還算早,但每天的進(jìn)展卻不大,可以說做與玩相伴而行。通過本次的課程設(shè)計(jì),充分意識(shí)到自己所學(xué)的東西還是非常有限的,不過通過設(shè)計(jì),還是學(xué)到了一些書本上沒有學(xué)到的東西,為自己以后的學(xué)習(xí)起了很大的幫助。就我個(gè)人而言,很深刻地體會(huì)到一點(diǎn),那就是我們?cè)谠O(shè)計(jì)過程中一定要有一個(gè)整體的清晰的思路,知道自己的設(shè)計(jì)的對(duì)象的基本功能和核心器件的適用與其作用,只要把握住這些主要方面,一些小問題都將圍繞著這些主要問題而逐步得到解決。同時(shí)我也懂得,在整個(gè)設(shè)計(jì)過程中,生活中

52、也一樣,一定要意志堅(jiān)定,克服自己的畏難情緒,這樣才能將事情做好,才能干出一番成就。我覺得類似這種課程設(shè)計(jì)的實(shí)踐真的不錯(cuò),通過這些項(xiàng)目練習(xí),我自學(xué)能力,解決實(shí)際問題的能力得到提高,可以說是對(duì)綜合素質(zhì)全面提升,我想這也是我們上大學(xué)應(yīng)真正學(xué)到的。 . . . 21 / 27附錄附錄一:系統(tǒng)總體原理圖20pFC120pFC21KR134.7KR1422uFC31212MHZS?SW-PBVCCVCCVCCGNDGNDGNDVD12VD11VD10VD9VD8VD7VD6VD5VD4VD3VD2VD14.7KR124.7KR114.7KR104.7KR94.7KR84.7KR74.7KR64.7KR54

53、.7KR34.7KR44.7KR14.7KR2東 東 東東 東 東東 東 東東 東 東東 東 東東 東 東P1.5P1.4P1.3P1.2P1.1P1.0東東東東東P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48RST9P3.0/RxD10P3.1/TxD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VSS20P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2

54、.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSEN29ALE/PROG30EA/VPP31P0.7/AD732P0.6/AD633P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VCC40IC1P80C51RA+5NK1K2K3東東東東東東東東東東A1f2g3e4d5A6c8DP7b9a10DS1A1f2g3e4d5A6c8DP7b9a10DS30.2KR150.2KR160.2KR170.2KR180.2KR190.2KR200.2KR210.2KR22東東東東東東東Q?2N3904Q?

55、2N3904VCC附錄二:系統(tǒng)程序清單 ORG 0000H LJMP START ORG 0003H LJMP IINT0 ORG 0013H LJMP IINT1 ORG 0030HSTART: MOV SP,#6FH ;系統(tǒng)初始化 MOV 61H,#20H MOV 60H,61HLIGHT: SETB EA SETB EX0 SETB EX1 . . . 22 / 27 CLR IT1 CLR IT0 MOV P1,#0F3H ;東西紅,南北綠,計(jì)時(shí)時(shí)間為 15s MOV 60H,61HA1: MOV R1,#50A2: ACALL BCD ACALL DISPCLK DJNZ R1,A2 MOV A,60H MOV R0,60H ADD A,#99H DA A MOV 60H,A CJNE R0,#05H,A1 MOV P1,#0F5H ; 東西紅,南北黃燈閃爍 5s MOV R2,#5 A3: MOV R1,#50 A4: ACALL BCD ACALL DISPCLK DJNZ R1,A4 CPL P1.1 MOV A,60H ADD A,#99H DA A MOV 60H,A DJNZ

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論