單片機(jī)原理及應(yīng)用課程設(shè)計(jì)交通燈管理電路設(shè)計(jì)_第1頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)交通燈管理電路設(shè)計(jì)_第2頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)交通燈管理電路設(shè)計(jì)_第3頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)交通燈管理電路設(shè)計(jì)_第4頁
單片機(jī)原理及應(yīng)用課程設(shè)計(jì)交通燈管理電路設(shè)計(jì)_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、東 北 石 油 大 學(xué)課 程 設(shè) 計(jì) 2011 年 3 月 18 日課 程 單片機(jī)原理及應(yīng)用課程設(shè)計(jì) 題 目 交通燈管理電路設(shè)計(jì) 院 系 電子科學(xué)學(xué)院 專業(yè)班級(jí) 電信 075 班 學(xué)生姓名 學(xué)生學(xué)號(hào) 指導(dǎo)教師 東北石油大學(xué)課程設(shè)計(jì)任務(wù)書課程 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)題目 交通燈管理電路設(shè)計(jì) 專業(yè)班級(jí) 電信 07-5 姓名 學(xué)號(hào) 一、設(shè)計(jì)目的:訓(xùn)練學(xué)生綜合運(yùn)用己學(xué)課程的基本知識(shí),獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)開發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試,應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測。二、設(shè)計(jì)要求:1. 應(yīng)用 mcs-51 單片機(jī)設(shè)計(jì)交通燈管理電路;2. 該系統(tǒng)要求顯示 50s 倒計(jì)時(shí)時(shí)間,當(dāng)計(jì)到需交換紅綠燈前 1

2、0s,路口均顯示黃燈;3. 硬件設(shè)計(jì)根據(jù)設(shè)計(jì)的任務(wù)選定合適的單片機(jī),根據(jù)控制對(duì)象設(shè)計(jì)接口電路。設(shè)計(jì)的單元電路必須有工作原理,器件的作用,分析和計(jì)算過程;4. 軟件設(shè)計(jì)根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單;5. 原理圖設(shè)計(jì)根據(jù)所確定的設(shè)計(jì)電路,利用 protel 等有關(guān)工具軟件繪制電路原理圖、pcb 板圖、提供元器件清單。三、參考資料:1 單片微型計(jì)算機(jī)與接口技術(shù),李群芳、黃建編著,電子工業(yè)出版社;2 單片機(jī)原理及應(yīng)用,張毅剛編著,高等教育出版社;3 51 系列單片機(jī)及 c51 程序設(shè)計(jì),王建校,楊建國等編著,科學(xué)出版社;4 單片機(jī)原理及接口技術(shù),李

3、朝青編著,北京航空航天大學(xué)出版社;完成期限 2011.3.142011.3.18 指導(dǎo)教師 專業(yè)負(fù)責(zé)人 2011 年 3 月 13 日目錄1.1.系統(tǒng)設(shè)計(jì)系統(tǒng)設(shè)計(jì).11.1 設(shè)計(jì)思路.11.1.1 設(shè)計(jì)目的.11.1.2 設(shè)計(jì)任務(wù)和內(nèi)容.11.1.3 方案比較、設(shè)計(jì)與論證.11.1.3.1 電源提供方案.11.1.3.2 復(fù)位方案.21.1.3.3 輸入方案.21.1.3.4 顯示界面方案.21.1.3.5 交通管理的方案論證.41.1.4 芯片簡介.42.2.硬件電路設(shè)計(jì)硬件電路設(shè)計(jì).102.1 設(shè)計(jì)原理分析.112.1.1 交通燈顯示時(shí)序的理論分析與計(jì)算.112.1.2 交通燈顯示時(shí)間的理

4、論分析與計(jì)算.132.1.3led 數(shù)碼管顯示模塊.142.1.4 復(fù)位電路.162.1.5 晶振電路.163.3.軟件設(shè)計(jì)軟件設(shè)計(jì).173.1 數(shù)碼管顯示子程序:.173.1led 紅綠燈顯示模塊程序:.184.4.總結(jié)總結(jié).215.5.參考文獻(xiàn)參考文獻(xiàn).226.6.附錄附錄.226.1 附錄 1:程序清單.226.2 附錄 2:電路設(shè)計(jì)總圖.2911.系統(tǒng)設(shè)計(jì)1.1 設(shè)計(jì)思路1.1.1 設(shè)計(jì)目的訓(xùn)練學(xué)生綜合運(yùn)用己學(xué)課程的基本知識(shí),獨(dú)立進(jìn)行單片機(jī)應(yīng)用技術(shù)開發(fā)工作,掌握單片機(jī)程序設(shè)計(jì)、調(diào)試,應(yīng)用電路設(shè)計(jì)、分析及調(diào)試檢測。1.1.2 設(shè)計(jì)任務(wù)和內(nèi)容1. 應(yīng)用 mcs-51 單片機(jī)設(shè)計(jì)交通燈管理電

5、路;2. 該系統(tǒng)要求顯示 50s 倒計(jì)時(shí)時(shí)間,當(dāng)計(jì)到需交換紅綠燈前10s,路口均顯示黃燈;3. 硬件設(shè)計(jì)根據(jù)設(shè)計(jì)的任務(wù)選定合適的單片機(jī),根據(jù)控制對(duì)象設(shè)計(jì)接口電路。設(shè)計(jì)的單元電路必須有工作原理,器件的作用,分析和計(jì)算過程;4. 軟件設(shè)計(jì)根據(jù)電路工作過程,畫出軟件流程圖,根據(jù)流程圖編寫相應(yīng)的程序,進(jìn)行調(diào)試并打印程序清單;5. 原理圖設(shè)計(jì)根據(jù)所確定的設(shè)計(jì)電路,利用 protel 等有關(guān)工具軟件繪制電路原理圖、pcb 板圖、提供元器件清單。1.1.3 方案比較、設(shè)計(jì)與論證1.1.3.1 電源提供方案為使模塊穩(wěn)定工作,須有可靠電源,采用單片機(jī)控制模塊提供電源。此方案的優(yōu)點(diǎn)是系統(tǒng)簡明扼要,節(jié)約成本;缺點(diǎn)是

6、輸出功率不高。21.1.3.2 復(fù)位方案復(fù)位方式有兩種:按鍵復(fù)位與軟件復(fù)位。由考慮到程序的簡潔,避免冗長,本設(shè)計(jì)采用按鍵復(fù)位,在芯片的復(fù)位端口外接復(fù)位電路,通過按鍵對(duì)單片機(jī)輸入一個(gè)高電平脈沖,達(dá)到復(fù)位的目的。1.1.3.3 輸入方案方案一:采用 89s52 擴(kuò)展 i/o 口及鍵盤,顯示等。該方案的優(yōu)點(diǎn)是:使用靈活可編程,并且有 ram,及計(jì)數(shù)器。若用該方案,可提供較多i/o 口,但操作起來稍顯復(fù)雜。方案二: 直接在 i/o 口線上接上按鍵開關(guān)。因?yàn)樵O(shè)計(jì)時(shí)精簡和優(yōu)化了電路,所以剩余的口資源還比較多,我們使用 2 個(gè)按鍵,分別是k1、k2。由于該系統(tǒng)對(duì)于交通燈及數(shù)碼管的控制,只用單片機(jī)本身的 i/

7、o 口就可實(shí)現(xiàn),且本身的計(jì)數(shù)器及 ram 已經(jīng)夠用,故選擇方案二1.1.3.4 顯示界面方案 該系統(tǒng)要求完成倒計(jì)時(shí)、狀態(tài)燈等功能。基于上述原因,我們考慮了三種方案:3方案一:完全采用數(shù)碼管顯示。這種方案只顯示有限的符號(hào)和數(shù)碼字符,無法勝任題目要求。方案二:完全采用點(diǎn)陣式 led 顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形。方案三:采用數(shù)碼管與點(diǎn)陣 led (點(diǎn)陣式和 8 段式 led)相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與 led 燈分別顯示時(shí)間與提示信息。這種方案既滿足系統(tǒng)功

8、能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。權(quán)衡利弊,第三種方案可互補(bǔ)一二方案的優(yōu)缺,決定采用方案三以實(shí)現(xiàn)系統(tǒng)的顯示功能。整個(gè)設(shè)計(jì)以 at89s52 單片機(jī)為核心,由數(shù)碼管顯示,led 數(shù)碼管顯示,復(fù)位電路組成。硬件模塊入圖所示:at89s52 單片機(jī)數(shù)碼管顯示led 數(shù)碼管顯示晶振電路復(fù)位電路41.1.3.5 交通管理的方案論證東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。指示燈燃亮的方案如下表所示:上表說明: (1)當(dāng)東西方向?yàn)榧t燈

9、,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時(shí)間為 40 秒。(2)黃燈 10 秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 (3)當(dāng)東西方向?yàn)榫G燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止通過,行人通行。時(shí)間為 40 秒。 (4)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。1.1.4 芯片簡介1at89s52 單片機(jī)簡介40s10s40s10s東西道紅燈亮黃燈亮綠燈亮黃燈亮南北道綠燈亮黃燈亮紅燈亮黃燈亮5其引 dip 封裝的腳圖如下:主要性能:與 mcs-51 單片機(jī)產(chǎn)品兼容 、8k 字節(jié)在系統(tǒng)可編程 flash存儲(chǔ)器

10、、 1000 次擦寫周期、 全靜態(tài)操作: 0hz33hz 、 三級(jí)加密程序存儲(chǔ)器 、 32 個(gè)可編程 i/o 口線 、三個(gè) 16 位定時(shí)器/計(jì)數(shù)器 八個(gè)中斷源 、全雙工 uart 串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時(shí)器 、雙數(shù)據(jù)指針 、掉電標(biāo)識(shí)符 。功能特性描述:6at89s52 是一種低功耗、高性能 cmos8 位微控制器,具有 8k 在系統(tǒng)可編程 flash 存儲(chǔ)器。使用 atmel 公司高密度非 易失性存儲(chǔ)器技術(shù)制造,與工業(yè) 80c51 產(chǎn)品指令和引腳完 全兼容。片上 flash 允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于 常規(guī)編程器。在單芯片上,擁有靈巧的 8 位

11、 cpu 和在系統(tǒng) 可編程 flash,使得 at89s52 為眾多嵌入式控制應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 at89s52 具有以下標(biāo)準(zhǔn)功能: 8k 字節(jié) flash,256字節(jié) ram, 32 位 i/o 口線,看門狗定時(shí)器, 2 個(gè)數(shù)據(jù)指針,三個(gè) 16 位 定時(shí)器/計(jì)數(shù)器,一個(gè) 6 向量 2 級(jí)中斷結(jié)構(gòu),全雙工串行口, 片內(nèi)晶振及時(shí)鐘電路。另外, at89s52 可降至 0hz 靜態(tài)邏 輯操作,支持 2 種軟件可選擇節(jié)電模式??臻e模式下, cpu 停止工作,允許 ram、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工 作。掉電保護(hù)方式下, ram 內(nèi)容被保存,振蕩器被凍結(jié), 單片機(jī)一切工作停

12、止,直到下一個(gè)中斷或硬件復(fù)位為止。 8 位微控制器 8k 字節(jié)在系統(tǒng)可編程 flash at89s52 p0 口:p0 口是一個(gè) 8 位漏極開路的雙向 i/o 口。作為輸出口,每位能驅(qū)動(dòng) 8 個(gè) ttl 邏輯電平。對(duì) p0 端口寫“1”時(shí),引腳用作高阻抗輸入。 當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí), p0 口也被作為低 8 位 地址/數(shù)據(jù)復(fù)用。在這種模式下 : p0 具有內(nèi)部上拉電阻。 7在 flash 編程時(shí),p0 口也用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。 p1 口:p1 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p1 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) tt

13、l 邏輯電平。對(duì) p1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)此外,p1.0 和 p1.2 分別作定時(shí)器 /計(jì)數(shù)器 2 的外部計(jì)數(shù)輸入(p1.0/t2)和時(shí)器/計(jì)數(shù)器 2 的觸發(fā)輸入( p1.1/t2ex),具體如下表所示。 在 flash 編程和校驗(yàn)時(shí), p1 口接收低 8 位地址字節(jié)。 引腳號(hào)第二功能 p1.0 t2(定時(shí)器/計(jì)數(shù)器 t2 的外部計(jì)數(shù)輸入),時(shí)鐘輸出 p1.1 t2ex(定時(shí)器/計(jì)數(shù)器 t2 的捕捉/重載觸發(fā)信號(hào)和方向控制) p1.5 mosi(在系統(tǒng)編程用) p1.6 mis

14、o(在系統(tǒng)編程用) p1.7 sck(在系統(tǒng)編程用) p2 口:p2 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) ttl 邏輯電平。對(duì) p2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為8輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。 在訪問外部程序存儲(chǔ)器或用 16 位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行 movx dptr)時(shí),p2 口送出高八位地址。在這種應(yīng)用中,p2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送 1。在使用 8 位地址(如movx ri)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí), p2 口輸出 p2 鎖存器的內(nèi)容。 在 flas

15、h 編程和校驗(yàn)時(shí), p2 口也接收高 8 位地址字節(jié)和一些控制信號(hào)。 p3 口:p3 口是一個(gè)具有內(nèi)部上拉電阻的 8 位雙向 i/o 口,p2 輸出緩沖器能驅(qū)動(dòng) 4 個(gè) ttl 邏輯電平。對(duì) p3 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。 p3 口亦作為 at89s52 特殊功能(第二功能)使用,如下表所示。 在 flash 編程和校驗(yàn)時(shí), p3 口也接收一些控制信號(hào)。 端口引腳 第二功能p3.0 rxd(串行輸入口)p3.1 txd(串行輸出口)p3.2 into(外中斷 0)p3.3 int1

16、(外中斷 1)9p3.4 to(定時(shí)/計(jì)數(shù)器 0)p3.5 t1(定時(shí)/計(jì)數(shù)器 1)p3.6 wr(外部數(shù)據(jù)存儲(chǔ)器寫選通 )p3.7 rd(外部數(shù)據(jù)存儲(chǔ)器讀選通 )此外,p3 口還接收一些用于 flash 閃存編程和程序校驗(yàn)的控制信號(hào)。rst復(fù)位輸入。當(dāng)振蕩器工作時(shí), rst 引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ale/prog當(dāng)訪問外部程存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ale(地址鎖存允許)輸出脈沖用于鎖存地址的低8 位字節(jié)。一般情況下,ale 仍以時(shí)鐘振蕩頻率的 1/6 輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè) ale 脈沖。對(duì)

17、 flash 存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(prog)。如有必要,可通過對(duì)特殊功能寄存器( sfr)區(qū)中的 8eh 單元的 d0 位置位,可禁止 ale 操作。該位置位后,只有一條 movx和 movc 指令才能將 ale 激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置 ale 禁止位無效。psen程序儲(chǔ)存允許( psen)輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng) at89c52 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),10每個(gè)機(jī)器周期兩次 psen 有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次 psen 信號(hào)。ea/vpp外部訪問允許,欲使 cpu 僅訪

18、問外部程序存儲(chǔ)器(地址為 0000h-ffffh),ea 端必須保持低電平(接地)。需注意的是:如果加密位 lb1 被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存 ea 端狀態(tài)。如 ea 端為高電平(接 vcc 端),cpu 則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。flash 存儲(chǔ)器編程時(shí),該引腳加上 +12v 的編程允許電源vpp,當(dāng)然這必須是該器件是使用 12v 編程電壓 vpp。2.硬件電路設(shè)計(jì)at89s52各路口紅綠燈燈晶振源led 倒計(jì)時(shí)顯示復(fù)位112.1 設(shè)計(jì)原理分析2.1.1 交通燈顯示時(shí)序的理論分析與計(jì)算對(duì)于一個(gè)交通路口來說,能在最短的時(shí)間內(nèi)達(dá)到最大的車流量,就算是達(dá)到了最佳的性能,我們稱在單位時(shí)間內(nèi)多能達(dá)到的

19、最大車流為車流量,用公式:車流量= 車流 / 時(shí)間 來表示。先設(shè)定一些標(biāo)號(hào)如圖 21 所示。說明:此圖為直方圖,上邊為北路口燈,右邊為東路口燈,下邊為南路口燈,左邊為西路口燈。圖 22 所示為一種紅綠燈規(guī)則的狀態(tài)圖,分別設(shè)定為s1、s2、s3、s4,交通燈以這四的狀態(tài)為一個(gè)周期,循環(huán)執(zhí)行(見圖 23) 。12圖 21請注意圖 21b 和圖 21d,它們在一個(gè)時(shí)間段中四個(gè)方向都可以通車,這種狀態(tài)能在一定的時(shí)間內(nèi)達(dá)到較大的車流量,效率特別高。依據(jù)上述的車輛行駛的狀態(tài)圖,可以列出各個(gè)路口燈的邏輯表,由于相向的燈的狀態(tài)圖是一樣的,所以只需寫出相鄰路口的燈的邏輯表;根據(jù)圖 23 可以看出,相鄰路口的燈它

20、們的狀態(tài)在相位上相差 180。因此最終只需寫出一組 s1、s2、s3、s4 的邏輯狀態(tài)表。如表 21 所示。13表 21表中的“”代表是紅燈亮(也代表邏輯上的 0) , “”是代表綠燈亮(也代表邏輯上的 1) ,依上表,就可以向相應(yīng)的端口送邏輯值。142.1.2 交通燈顯示時(shí)間的理論分析與計(jì)算東西和南北方向的放行時(shí)間的長短是依據(jù)路口的各個(gè)方向平時(shí)的車流量來設(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)來改變車輛的放行時(shí)間。按照一般的規(guī)則,一個(gè)十字路口可分為主干道和次干

21、道,主干道的放行時(shí)間大于次干道的放行時(shí)間,我們設(shè)定值時(shí)也應(yīng)以此為參考2.1.3led 數(shù)碼管顯示模塊(1)靜態(tài)顯示方式:靜態(tài)顯示方式是指當(dāng)顯示器顯示某一字符時(shí),發(fā)光二極管的位選始終被選中。在這種顯示方式下,每一個(gè) led 數(shù)碼管顯示器都需要一個(gè) 8 位的輸出口進(jìn)行控制。由于單片機(jī)本身提供的 i/o 口有限,實(shí)際使用中,通常通過擴(kuò)展 i/o 口的形式解決輸出口數(shù)量不足的問題。 靜態(tài)顯示主要的優(yōu)點(diǎn)是顯示穩(wěn)定,在發(fā)光二極管導(dǎo)通電流一定的情況下顯示器的亮度大,系統(tǒng)運(yùn)行過程中,在需要更新顯示內(nèi)容時(shí),cpu 才去執(zhí)行顯示更新子程序,這樣既節(jié)約了 cpu 的時(shí)間,又提高了 cpu 的工作效率。其不足之處是占

22、用硬件資源較多,每個(gè) led 數(shù)碼管需要獨(dú)占 8 條輸出線。隨著顯示器位數(shù)的增加,需要的 i/o 口15線也將增加。 (2)動(dòng)態(tài)顯示方式:動(dòng)態(tài)顯示方式是指一位一位地輪流點(diǎn)亮每位顯示器(稱為掃描) ,即每個(gè)數(shù)碼管的位選被輪流選中,多個(gè)數(shù)碼管公用一組段選,段選數(shù)據(jù)僅對(duì)位選選中的數(shù)碼管有效。對(duì)于每一位顯示器來說,每隔一段時(shí)間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。通過調(diào)整電流和時(shí)間參數(shù),可以既保證亮度,又保證顯示。若顯示器的位數(shù)不大于 8 位,則顯示器的公共端只需一個(gè) 8 位 i/o 口進(jìn)行動(dòng)態(tài)掃描(稱為掃描口) ,控制每位顯示器所顯示的字形也需一個(gè) 8 位口(稱為

23、段碼輸出) 。162.1.4 復(fù)位電路復(fù)位方式有多種,本設(shè)計(jì)采用按鍵復(fù)位。接線圖如圖程序復(fù)位電路框圖在設(shè)定的定時(shí)時(shí)間內(nèi),89s52 必須在 rst 引腳產(chǎn)生一個(gè)由高到低的電平變化,以清內(nèi)部定時(shí)器. 2.1.5 晶振電路晶振電路原理圖如 3-2:3-2晶振模塊原理圖選取原則:傳統(tǒng)做法,但能夠?qū)崿F(xiàn)所需,即最簡單也最是實(shí)用。電容選取 30pf,晶振為 30mhz。173.軟件設(shè)計(jì)3.1 數(shù)碼管顯示子程序:void normalpageshow()register unsigned char i, j, n;register longltmp;unsigned char const seg_code

24、= 0 x3f, 0 x06, 0 x5b, 0 x4f, 0 x66, 0 x6d, 0 x7d, 0 x07, 0 x7f, 0 x6f;unsigned char const comm2 = 0 x01, 0 x02, 0 x04, 0 x08;for(i = 0; i 2; i +)ltmp = gnvalue;n = ltmp - (ltmp / 10) * 10);p2 = commi;p0 = seg_coden;p2 = commi + 2;p0 = seg_coden;ltmp /= 10;18void delay_us(unsigned int ncount)/ 延時(shí)子程序

25、register unsigned int i;for(i = 0; i ncount; i+) _nop_();_nop_();_nop_();_nop_();void delay_ms(unsigned char ncount)register unsigned char i;for(i = 0; i ncount; i+) delay_us(1000);3.1led 紅綠燈顯示模塊程序:main(void)ea = 0; / global interrupt disable19gisysstatus = 0;initmcu();ea = 1;/如有初始化當(dāng)中已經(jīng)設(shè)定了交通燈的初始狀態(tài),所

26、以只需一個(gè) if和 else,就能完成交通燈的切換。while(1)if(gbflag_1speriod) gbflag_1speriod = 0;gnvalue -= 1;gbflag_refreshled = 1;/刷新 led/10s 的時(shí)候,兩個(gè)黃燈都亮,其余全滅if(gnvalue = 10) dsy1 = 0;dsy2 = 0;dsr1 = 1;dsr2 = 1;dsg1 = 1;dsg2 = 1;if(gnvalue = 0)/計(jì)數(shù)倒計(jì)時(shí)到達(dá) 0s/東西方向如果此時(shí)紅燈亮,那么接下來的動(dòng)作應(yīng)該是東西方向綠燈亮,南北方向紅燈亮,其余的都滅。if(dsr1 = 0) 20dsr1 =

27、 1;dsr2 = 0;dsg1 = 0;dsg2 = 1;dsy1 = 1;dsy2 = 1;/東西方向的紅燈不亮,那么接下來的動(dòng)作應(yīng)該是東西方向紅燈亮,南北方向應(yīng)該是紅燈亮,其余的都滅。elsedsr1 = 0;dsr2 = 1;dsg1 = 1;dsg2 = 0;dsy1 = 1;dsy2 = 1; if(gbflag_refreshled) /刷新 led 的標(biāo)志gbflag_refreshled = 0;normalpageshow();/led 顯示函數(shù)214.總結(jié)通過這次課程設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系

28、統(tǒng)開發(fā)過程,以及在常用編程設(shè)計(jì)思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步。本次課程設(shè)計(jì)的過程是艱辛的,不過收獲卻是很大的。此次課程設(shè)計(jì)讓我把以前學(xué)習(xí)到的知識(shí)得到鞏固和進(jìn)一步的提高認(rèn)識(shí),對(duì)已有知識(shí)有了更進(jìn)一步的理解和認(rèn)識(shí)。在此,由于自身能力有限,在課程設(shè)計(jì)中碰到了很多的問題,我通過查閱相關(guān)書籍、資料以及和周圍同學(xué)交流。由于使用的是單片機(jī)作為核心的控制元件,使得電路的可靠性比較高,功能也比較強(qiáng)大,而且可以隨時(shí)的更新系統(tǒng),進(jìn)行不同狀態(tài)的組合。但是在我們設(shè)計(jì)和調(diào)試的過程中,也發(fā)現(xiàn)了一些問題,譬如紅燈和綠燈的切換還不夠迅速,紅綠燈規(guī)則不效率還不是很高等等,這需要在實(shí)踐中進(jìn)一步完善。通過這次課

29、程設(shè)計(jì),我也發(fā)現(xiàn)了自身的很多不足之處,在以后的學(xué)習(xí)中,我會(huì)不斷的完善自我。225.參考文獻(xiàn)1 李朝青.單片機(jī)原理及接口技術(shù)(第 3 版).2005 年 10 月2 蔡朝洋.單片機(jī)控制實(shí)習(xí)與專題制作3 樓然苗.單片機(jī)課程設(shè)計(jì)指導(dǎo)4 趙廣林.電路設(shè)計(jì)與制版6.附錄6.1 附錄 1:程序清單#include #include #define dsr1 p10;#define dsy1 p11;#define dsg1 p12;#define dsr2 p14;#define dsy2 p15;#define dsg2 p16;/ 對(duì) 6 個(gè)交通燈端口定義/ 位運(yùn)算,定義兩個(gè)標(biāo)志位unsigned i

30、nt bdatagisysstatus;sbit gbflag_1speriod= gisysstatus0;/1 秒標(biāo)志sbit gbflag_refreshled = gisysstatus1;/刷新 led 的顯示23unsigned int idatagitimertick;intdatagikeytick;void initmcu(void);void normalpageshow();void rstcalcparam(void);int idata gnvalue;/定義變量存放時(shí)間void delay_us(unsigned int ncount)/ 延時(shí)函數(shù)register

31、unsigned int i;for(i = 0; i ncount; i+) _nop_();_nop_();_nop_();_nop_();void delay_ms(unsigned char ncount)24register unsigned char i;for(i = 0; i = 100 ) gitimertick = 0;25gbflag_1speriod = 1;else gikeytick = 0;void rstcalcparam(void)register unsigned char i;gisysstatus = 0;gnvalue = 50;gikeytick = 0;dsr1 = 0;dsy1 = 1;dsg1 = 1;dsr2 = 1;dsy2 = 1;dsg2 = 0;/初始化時(shí),讓東西方向的紅燈和南北方向的綠燈亮void normalpageshow()26re

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論