交通燈控制器課程設計報告 STC12C5410AD單片機 c語言 KeilC51軟件_第1頁
交通燈控制器課程設計報告 STC12C5410AD單片機 c語言 KeilC51軟件_第2頁
交通燈控制器課程設計報告 STC12C5410AD單片機 c語言 KeilC51軟件_第3頁
交通燈控制器課程設計報告 STC12C5410AD單片機 c語言 KeilC51軟件_第4頁
交通燈控制器課程設計報告 STC12C5410AD單片機 c語言 KeilC51軟件_第5頁
已閱讀5頁,還剩40頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目 錄目 錄1摘 要4關 鍵 詞4abstract4keywords51、引言62、設計方案論證62.1主控芯片選擇方案62.2電源模塊選擇方案62.3顯示模塊選擇方案62.4數(shù)碼管顯示模塊選擇方案72.5鍵盤接口模塊選擇方案73、簡介73.1調試軟件keil73.2硬件仿真proteus84、課題描述與分析84.1系統(tǒng)需求描述與分析84.2系統(tǒng)工作流程95、課題設計105.1總體設計105.2硬件設計115.2.1單片機最小系統(tǒng)115.2.2 電源模塊電路模塊125.2.3時鐘和復位電路模塊125.2.4數(shù)碼管顯示電路模塊135.2.5 led燈顯示模塊145.2.6鍵盤接口電路模塊155.

2、2.7串行通信接口電路155.3軟件設計165.3.1整體流程圖165.3.2主程序模塊175.3.3數(shù)碼管顯示模塊175.3.4鍵盤掃描程序模塊185.3.5閃爍顯示程序模塊195.3.6按鍵處理程序模塊205.3.7定時器0和定時器1中斷模塊206、系統(tǒng)測試216.1硬件調試216.1.1 電源模塊調試216.1.2 單片機最小系統(tǒng)模塊調試226.1.3 max232下載模塊檢測236.14 紅綠燈顯示檢測236.1.5 數(shù)碼管顯示檢測236.2整體電路測246.3軟件調試247、結論24參考文獻25附 錄26謝 辭45摘 要本文介紹了交通燈系統(tǒng)的設計。本系統(tǒng)硬件部分基于stc12c541

3、0ad單片機,由鍵盤接口模塊,穩(wěn)壓電源模塊,串行通信接口模塊和數(shù)碼管、交通燈顯示接口模塊組成。本系統(tǒng)的軟件部分基于keilc51軟件系統(tǒng)。本系統(tǒng)利用單片機的定時器產(chǎn)生秒信號,控制十字路口的紅綠黃燈交替點亮和熄滅,并且用4只數(shù)碼管顯示十字路口兩個方向的剩余時間。本系統(tǒng)除了可以按照設定程序自行運行外,還可以通過按鍵設置主干道和次干道的通行時間和暫緩通行時間。本系統(tǒng)可實現(xiàn)基本交通燈功能,系統(tǒng)實用性強、操作簡單。關 鍵 詞單片機最小系統(tǒng) stc12c5410ad 紅綠燈控制 仿真abstractthis article describes a design of traffic signal syst

4、ems. the hardware of system consists of stc12c5410ad single-chip, keyboard, steady power, communication interface,led digitron and traffic light display. the software of system is mad up of keilc51 .the use of stc12c5410ad timer generates seconds signals to control the turn at the crossroads of the

5、red and green lights and yellow lights, and 4 led digital display at the crossroads of the remainder time of the two directions. it also can manually set keys to adjust main roads and sub-passage time and the suspension of access time, so it achieves the basic function of traffic lights, the system

6、is practical, simple .keywordsthe least system of sing lechip,stc12c5410ad, traffic light control,simulation 1、引言本設計的目的是應用單片機最小系統(tǒng)實現(xiàn)簡易交通燈的設計,可利用單片機的定時器產(chǎn)生秒信號,控制十字路口的紅綠黃燈交替點亮和熄滅,并且用4只數(shù)碼管顯示十字路口兩個方向的剩余時間。并能用按鍵設置兩個方向的通行時間(綠燈點亮的時間)和暫緩通行時間(黃燈點亮的時間),系統(tǒng)的工作符合一般交通燈控制要求。本設計的背景是當前全國大中城市普遍存在著道路擁擠、車輛堵塞、交通秩序混亂的現(xiàn)象,如何

7、解決城市交通問題已成為全社會關注的焦點和大眾的迫切呼聲。城市交通路口實現(xiàn)交通信號控制是城市交通管理現(xiàn)代化的基本標志之一,是提高交通管理效能的重要技術手段。紅綠燈控制器是控制交叉路口交通信號的設備,它是交通信號控制的重要組成部分。各種交通控制方案,最終都要由紅綠燈控制器來實現(xiàn)。本設計的適用范圍是適用于城市交通燈的實現(xiàn)。本設計的適用范圍是沒有考慮人行道的紅綠燈設計,也沒有考慮機動車輛拐向的紅綠燈設計,只考慮了機動車輛行駛的紅綠燈設計,而且通行時間和暫緩通行時間的范圍都是兩位數(shù)。本課題的研究意義是應用單片機來控制交通燈,使交通燈在控制中靈活而有效。本設計將程序結構模塊化處理,使程序的可讀性、可維護性

8、和可移植性都得到進一步的提高。本系統(tǒng)結構簡單,操作方便;可實現(xiàn)自動控制;對優(yōu)化城市交通具有一定的意義。2、設計方案論證2.1主控芯片選擇方案方案一:使用以89c51單片機芯片51系列單片機芯片的優(yōu)點是結構完整、特殊功能寄存器的規(guī)范化以及指令系統(tǒng)的控制功能出眾,含有32個i/o口,適合需要多端口控制的系統(tǒng),設計時無需另接程序存儲器,為設計和調試帶來極大的方便;缺點是其功耗很大。 方案二:使用以stc12c5410ad單片機芯片stc12c5410ad是增強型51單片機,具有寬電壓、不怕電源抖動、高抗靜電等優(yōu)點,有掉電模式、空閑模式、正常工作模式等低功耗模式,可在系統(tǒng)編程,無需編程器。串口對應i/

9、o口可以通過改變寄存器換成別的i/o口作為串口來通信,i/o口可以有四種模式可設置,stc單片機可以為1時鐘每機器周期,指令執(zhí)行速度大提高。綜合上面兩種方案,考慮到課程設計要求和stc12c5410ad的優(yōu)點,選擇方案二。2.2電源模塊選擇方案方案一:采用獨立的穩(wěn)壓電源。此方案的優(yōu)點是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點是各模塊都采用獨立電源,會使系統(tǒng)復雜,且可能影響電路電平。方案二:采用變壓器控制模塊提供電源。將220v的電壓轉換為12v的低電壓,經(jīng)過電容濾波后再經(jīng)過lm7805穩(wěn)壓得到5v的直流電供系統(tǒng)工作,該方案的優(yōu)點是系統(tǒng)簡明扼要,節(jié)約成本;缺點是輸出功率不高。綜上所述,選擇方案二

10、。2.3顯示模塊選擇方案方案一:使用lcd液晶由液晶驅動芯片ht1621和lcd玻璃片twm259組成的自制液晶,顯示清晰,能美觀的顯示數(shù)字,小數(shù)點,負號等,滿足題目要求,但結構復雜,操作難,需要復雜的語言編程能力,且價格昂貴。方案二:采用led數(shù)碼管用4個led數(shù)碼管,數(shù)碼管原理簡單,價格低廉、性能可靠、操作簡單,但功耗大。南北向和東西向各采用2個數(shù)碼管計時,對該方向的指示燈的點亮時間進行倒計時,最長計時范圍為99秒。設計時可利用單片機的p1口和p1.0p1.3作為字段和片選信號輸出,經(jīng)驅動芯片后驅動數(shù)碼管顯示倒計時時間,數(shù)碼管采用動態(tài)掃描方式顯示。綜合上面兩種方案,選擇方案二。2.4數(shù)碼管

11、顯示模塊選擇方案方案一:數(shù)碼管顯示直接使用單片機i/o口輸出。該方案的優(yōu)點是硬件方便實現(xiàn),電路簡單;缺點是顯示數(shù)碼管需要較多的引腳數(shù)碼管段選需要8個引腳,位選需要4個引腳,所以顯示數(shù)碼管共需要12個引腳。方案二:使用2個74hc573鎖存器顯示數(shù)碼管該方案的優(yōu)點是引腳利用較少,由于74hc573鎖存器的性質,可以將數(shù)碼管的段選和位選共用一個p1口,分別鎖存輸出,這樣引腳利用了8個;缺點是需要增加兩個鎖存器,增加了硬件電路的復雜度。綜上所述,增加鎖存器復雜程度,軟件編程沒有變得復雜,但是節(jié)省了引腳,對于引腳較少的單片機芯片來說這是一大優(yōu)勢,因此選擇方案二。2.5鍵盤接口模塊選擇方案方案一:使用4

12、4的鍵盤矩陣鍵盤,16個按鍵包括09共10個數(shù)字按鍵,1個加1按鍵,1個減1按鍵,1個設置完成按鍵,南北和東西方向2個按鍵。本方案的優(yōu)點是按鍵比較多,每個按鍵可以可以實現(xiàn)不同的功能,方便用戶調整;缺點是按鍵較多,單片機需要擴展接口,硬件和軟件處理起來都比較麻煩。方案二:直接在單片機的i/o口線上接上按鍵開關。使用3個獨立按鍵,分別設置鍵、增加鍵和減少鍵,設置鍵選擇方向和指示燈,增加鍵增加指示燈亮的時間,減少鍵減少指示燈亮的時間。 本方案的優(yōu)點是按鍵少,單片機不需要擴展接口,系統(tǒng)復雜性比較低,硬件和軟件處理起來都比較容易;缺點是用戶進行設置時,由于按鍵少功能集合在一起,使用不太方便。綜合考慮上述

13、兩個方案的優(yōu)缺點,考慮到stc12c5410ad的引腳比較少,鍵盤使用率較少,擴展接口增加了硬件和軟件的復雜程度,選擇方案二。3、簡介3.1調試軟件keil簡介keil c51是美國keil software公司出品的51系列兼容單片機c語言軟件開發(fā)系統(tǒng),與匯編相比,c語言在功能上、結構性、可讀性、可維護性上有明顯的優(yōu)勢。keil c51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調試工具,全windows界面。keil提供了包括c編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發(fā)方案,可以完成編輯、編譯、連接、調試、仿真等整個開發(fā)流程。然后分別由c51及a51編譯器編譯生成

14、目標文件(.obj)。目標文件可由lib51創(chuàng)建生成庫文件,也可以與庫文件一起經(jīng)l51連接定位生成絕對目標文件(.abs)。abs文件由oh51轉換成標準的hex文件,以供調試器dscope51或tscope51使用進行源代碼級調試,也可由仿真器使用直接對目標板進行調試,也可以直接寫入程序存貯器如eprom中。通過一個集成開發(fā)環(huán)境(uvision)將這些部份組合在一起。3.2硬件仿真proteus簡介proteus isis是英國labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于windows操作系統(tǒng)上,可以仿真、分析(spice)各種模擬器件和集成電路,該軟件的特點是:實現(xiàn)了單片機

15、仿真和spice電路仿真相結合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、rs232動態(tài)仿真、i2c調試器、spi調試器、鍵盤和lcd系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。支持主流單片機系統(tǒng)的仿真。目前支持的單片機類型有:68000系列、8051系列、avr系列、pic12系列、pic16系列、pic18系列、z80系列、hc11系列以及各種外圍芯片。提供軟件調試功能。在硬件仿真系統(tǒng)中具有全速、單步、設置斷點等調試功能,同時可以觀察各個變量、寄存器等的當前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環(huán)境

16、,如keil c51 uvision2等軟件。具有強大的原理圖繪制功能。proteus能很好的對硬件電路進行仿真測試,采用proteus 仿真軟件進行虛擬單片機實驗,具有比較明顯的優(yōu)勢,涉及到的實驗實習內容全面、硬件投入少、實驗過程中損耗小、與工程實踐最為接近等??傊撥浖且豢罴瘑纹瑱C和spice分析于一身的仿真軟件,功能極其強大。4、課題描述與分析4.1系統(tǒng)需求描述與分析 十字交叉路口的交通燈控制系統(tǒng)的結構如圖一所示: 南北東西圖一 十字交叉路口的交通燈控制系統(tǒng)往南和往北的信號一致,即紅燈(綠燈或黃燈)同時亮或同時熄滅。用兩個數(shù)碼管來顯示被點亮的指示燈還將點亮多久。往東和往西方向的信號一

17、致,其工作方式與南北方向一樣,也采用兩個數(shù)碼管來倒計時。當南北方向為綠燈和黃燈時,東西向的紅燈點亮禁止通行;而東西方向為綠燈和黃燈時,南北向的紅燈點亮禁止通行。假設南北方向為主干道,通行時間為60秒,東西方向是次干道,通行時間為30秒,黃燈點亮的時間均為4秒。假設南北方向為主干道,通行時間(即綠燈亮的時間)為60秒,東西方向是次干道,通行時間為30秒,暫緩通行時間(即黃燈點亮的時間)均為4秒,則其工作方式如表1所示循環(huán)點亮信號燈。表1 交通信號燈工作模式南北方向綠燈亮60秒黃燈亮04秒紅燈亮34秒東西方向紅燈亮64秒綠燈亮40秒黃燈亮04秒主干道和次干道的通行時間及黃燈點亮的時間可以手動設置;

18、在沒有手動設置通行時間時,系統(tǒng)自動按表1的模式進行工作。4.2系統(tǒng)工作流程 接通電源時或系統(tǒng)復位后,系統(tǒng)按程序給定的時間工作,即南北向通行60秒,東西向通行30秒,黃燈亮4秒。首先南北向通行,然后東西向通行,如此循環(huán)。通行時間的設置:當需要更改主、次干道的通行時間時,可以用“設置鍵、增加鍵、減少鍵”進行設置。第一次按“設置鍵”時,南北向的綠燈亮,南北向的數(shù)碼管顯示當前南北向的通行時間,并且按每秒3次的頻率閃爍(每秒鐘亮3次暗3次),其余的信號指示燈和東西向的數(shù)碼管熄滅,此時可以用“增加鍵”和“減少鍵”來改變南北向的通行時間。按一次“增加鍵”或“減少鍵”,數(shù)碼管的顯示時間增加1秒或減小1秒,長按

19、“增加鍵”或“減少鍵”(按下的時間超過1秒鐘以上),則數(shù)碼管顯示的時間按每秒鐘增加或減少10的速度快速變化。 第二次按“設置鍵”時,南北向的黃燈亮,南北向的數(shù)碼管顯示當前南北向黃燈的點亮時間,并且按每秒3次的頻率閃爍(每秒鐘亮3次暗3次),其余的信號指示燈和東西向的數(shù)碼管熄滅,此時可以用“增加鍵”和“減少鍵”來改變南北向黃燈的點亮時間。 第三次按“設置鍵”時,東西向的綠燈亮,東西向的數(shù)碼管顯示當前東西向的通行時間,并且按每秒3次的頻率閃爍,此時可以用“增加鍵”和“減少鍵”來改變東西向的通行時間。第四次按“設置鍵”時,東西向的黃燈亮,東西向的數(shù)碼管顯示當前東西向黃燈的點亮時間,并且按每秒3次的頻

20、率閃爍,此時可以用“增加鍵”和“減少鍵”來改變東西向黃燈的點亮時間。第五次按“設置鍵”時,系統(tǒng)退出設置狀態(tài),回到交通信號燈狀態(tài),并且南北向先通行,東西向后通行。表2 設置鍵的功能按“設置鍵”的次數(shù)第一次第二次第三次第四次第五次調整內容南北方向綠燈點亮時間南北方向黃燈點亮時間東西方向綠燈點亮時間東西方向黃燈點亮時間回復交通燈工作狀態(tài)調整范圍099秒09秒099秒09秒5、課題設計5.1總體設計本系統(tǒng)的整體框圖由stc12c5410ad構成主控芯片,主要是實現(xiàn)各個功能模塊之間功能交互。本系統(tǒng)包括電源模塊、時鐘、復位電路模塊,程序下載模塊,鍵盤接口模塊,數(shù)碼管和led發(fā)光二極管顯示模塊。程序下載模塊

21、由串口和max232芯片組成;鍵盤接口模塊用于設置各個方向指示燈的點亮時間;數(shù)碼管顯示模塊用來顯示被點亮的指示燈還將點亮多久;led發(fā)光二極管模塊用于指示該方向的3種狀態(tài):通行(綠燈亮)、暫緩通行(黃燈亮)和禁止通行(紅燈亮);220v交流電轉5v直流電線性穩(wěn)壓電源構成電源模塊。系統(tǒng)結構框圖如圖二所示: 圖二 系統(tǒng)結構框圖紅綠燈控制器的總體的設計如圖三所示(注本次硬件仿真用的是80c51單片機,proteus軟件庫里沒有stc12c5410ad):圖三 紅綠燈控制器總體設計圖從圖三可以看出整個設計圖。首先由220v交流電轉5v直流電線性穩(wěn)壓電源模塊得到穩(wěn)定的5v直流電源,提供了模塊間工作供電所

22、需,然后由stc12c5410ad單片機最小系統(tǒng)模塊來控制紅綠黃發(fā)光二極管組合模塊與led數(shù)碼管動態(tài)顯示模塊的聯(lián)合動態(tài)顯示,最后可以通過東西南北要道通行時間按鍵設置模塊來隨意設置交通干道的通行暫停時間。5.2硬件設計5.2.1單片機最小系統(tǒng)單片機最小系統(tǒng)以stc12c5410ad為核心,外加時鐘和復位電路,電路結構簡單,抗干擾能力強。stc12c5410ad芯片的速度比普通8051 快12 倍,工作周期為1 個時鐘/ 機器周期,risc 型8051 內核, 512 字節(jié)片內ram 數(shù)據(jù)存儲器,外部晶體或內部rc 振蕩器可選,在isp 下載編程用戶程序時設置時鐘。10 位adc,8 通道,stc

23、12c2052ad 系列為8 位adc,2 個硬件16 位定時器,兼容普通8051 的定時器。4 路pca 還可再實現(xiàn)4 個定時器。先進的指令集結構,兼容普通8051 指令集4 組,8 個8 位通用工作寄存器(共32 個通用寄存器),主要有硬件乘法/ 除法指令。時鐘電路在單片機的外部通過xtal1,xtal2這兩個引腳跨接晶體振蕩器和微調電容,構成穩(wěn)定的自激振蕩器.本系統(tǒng)采用的為11.0592mhz的晶振,微調電容為20pf。單片機最小系統(tǒng)如圖四所示:圖四 單片機最小系統(tǒng)圖5.2.2 電源模塊電路模塊220v的高電壓經(jīng)過變壓器后得到12v交流電,經(jīng)二極管整流成脈動直流電,經(jīng)過電容濾波又經(jīng)過lm

24、7805穩(wěn)壓得到5v的直流電供系統(tǒng)工作,電源的指示可以由一個發(fā)光二極管來實現(xiàn),2個100uf的電容是起一個再次濾波的作用。穩(wěn)壓電源模塊電路圖如圖五所示:圖五 穩(wěn)壓電源電路模塊圖5.2.3時鐘和復位電路模塊時鐘采用外部晶振,頻率為11.0592mhz,時鐘和復位電路電圖如圖六所示:圖六 時鐘和復位電路模塊圖5.2.4數(shù)碼管顯示電路模塊圖七所示的是共陽數(shù)碼管及其電路,其中每個數(shù)碼管的8個段: h、g、f、e、d、c、b、a(h是小數(shù)點)都連在一起。圖八是4 位數(shù)碼掃描顯示電路,4個數(shù)碼管分別由4個選通信號k1k4來選擇。被選通的數(shù)碼管顯示數(shù)據(jù)。例如,在某一時刻,k3為低電平,其余選通信號為高電平,

25、這時僅k3對應的數(shù)碼管顯示來自段信號端的數(shù)據(jù),就必須使得4個選通信號k1k4分別被單獨選通,與此同時,在段信號輸入口加上希望在該對應數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號的掃變,就能實現(xiàn)掃描顯示的目的。共陽數(shù)碼管及其電路示意圖如圖七所示:圖七 共陽數(shù)碼管及其電路4位數(shù)碼掃描電路的示意圖如圖八所示: 圖圖八 4位數(shù)碼掃描電路 數(shù)碼管顯示電路圖如圖九所示:圖九 數(shù)碼管動態(tài)顯示模塊圖5.2.5 led燈顯示模塊led燈采用的是共陽接法,即所有的led管陽級通過一個限流電阻上拉到5v電源,所有的陰級接到單片機的相應引腳。只要該i/o口置低,該燈就能點亮。led燈顯示模塊如圖十所示:圖十 led燈顯示模塊

26、圖5.2.6鍵盤接口電路模塊交通燈的時間設置主要是通過按鍵的設置來實現(xiàn)的。set設置鍵接單片機的外部中斷0口(引腳p3.2),up鍵對應端口定時/計數(shù)器(引腳p3.4) ,down對應端口定時/計數(shù)器1(引腳p3.5)。在程序初始化的時候兩個定時器均工作于定時模式,定時器1主要完成長按鍵加十和減十的功能,定時器0則只要完成數(shù)碼管動態(tài)顯示時間間隔的定時功能。平時工作時,只有定時器0工作,一但外部中斷0觸發(fā),則激活定時器1,開始設置初始化,當進中斷0次數(shù)標志位flag滿5次時,退出設置模式,進入倒計時模式。鍵盤接口電路模塊如圖十一所示:圖十一 鍵盤接口電路模塊圖5.2.7串行通信接口電路 將程序下

27、載到單片機內部需要完成串并數(shù)據(jù)的轉換和電平轉換,因此需要串行通信接口電路。由于電腦內部的電平為ttl電平,串口的電平為cmos電平,因此必須轉接一個ttl-cmos電平轉換芯片max232。串行通信接口電路如圖十二所示:圖十二 串行通信接口電路圖5.3軟件設計5.3.1整體流程圖各個模塊的都是用c語言來編寫的。本系統(tǒng)軟件設計主要分為4個模塊,即主程序模塊、中斷子程序模塊、鍵盤掃描模塊、顯示模塊。整個系統(tǒng)工作流程為當系統(tǒng)上電復位后進入主程序模塊,在主程序模塊中調用顯示模塊來完成信息的顯示,在沒有用戶觸發(fā)中斷的情況下程序一直在主程序里循環(huán),以維持系統(tǒng)的正常工作。整個軟件流程圖如圖十三所示: 圖十三

28、 軟件流程圖5.3.2主程序模塊主要完成ram清零,定時器t0,t1的設置,綠、黃燈的初值設定以及各子程序的調用。主程序的流程圖如圖十四所示:圖十四 主程序的流程圖5.3.3數(shù)碼管顯示模塊數(shù)碼管顯示模塊包括南北方向數(shù)碼管顯示、東西方向數(shù)碼管顯示和設置狀態(tài)下的數(shù)碼管閃爍顯示。數(shù)碼管顯示模塊的程序流程圖如十五所示:圖十五 數(shù)碼管顯示模塊程序流程圖5.3.4鍵盤掃描程序模塊在設置狀態(tài)下,啟動鍵盤掃描模塊,判斷是否有鍵被按下,是增加鍵還是減少鍵被按下,鍵被長按還是短按,還有鍵盤消抖功能。鍵盤掃描程序模塊流程圖如圖十六所示:圖十六 鍵盤掃描程序模塊流程圖5.3.5閃爍顯示程序模塊在設置東西南北通行時間時

29、,數(shù)碼管顯示當前的通行時間,并且按每秒3次的頻率閃爍(每秒鐘亮3次暗3次),因此將1秒分為6份,偶數(shù)份數(shù)碼管亮,奇數(shù)份數(shù)碼管熄滅。閃爍顯示程序模塊如圖十七所示:圖十七 閃爍顯示程序模塊圖5.3.6按鍵處理程序模塊當設置按鍵被按第一下時,進入設置模塊,然后根據(jù)鍵盤掃描得到的鍵值轉向響應的處理程序,相應指示燈的點亮時間是增加還是減少,是增加(或減少)1還是增加(或減少)10,其中設置按鍵使用外部中斷0。檢測p3.2端口,判斷是否有鍵按下,如果有鍵按下,則進行延時去抖動并將設置鍵標志位flag加一,根據(jù)flag的值,轉相應鍵處理子程序。按鍵處理程序模塊流程圖如圖十八所示:圖十八 按鍵處理程序模塊流程

30、圖5.3.7定時器0和定時器1中斷模塊在程序初始化的時候兩個定時器均工作于定時模式,定時器1主要完成長按鍵加十和減十的功能,定時器0則只要完成數(shù)碼管動態(tài)顯示時間間隔的定時功能。平時工作時,只有定時器0工作,一但外部中斷0觸發(fā),則激活定時器1,開始設置初始化,當進中斷0次數(shù)標志位flag滿5次時,退出設置模式,進入倒計時模式。定時器0主要通過計數(shù)產(chǎn)生1秒的定時時間,使數(shù)碼管按照每秒減1的倒計時。定時器0中斷模塊的程序流程圖如十九所示:圖十九 定時器0中斷模塊程序流程圖6、系統(tǒng)測試系統(tǒng)調試分為硬件調試和軟件調試,分別用于檢測硬件和軟件是否能正常工作。由于硬件采用模塊化設計,所以調試的時候只需要調試

31、各自的模塊即可,最后連在一起調試整個系統(tǒng)。軟件由于采用子函數(shù)模塊調用實現(xiàn),所以調試的時候采用子函數(shù)單獨調試,最后用keil軟件強大的仿真調試功能來結合硬件聯(lián)機調試。本系統(tǒng)軟硬件的設計完成后先經(jīng)過仿真調試,才進行具體的硬件焊接部分,這樣能避免誤操作或設計不合理而帶來開發(fā)成本的不必要的提高,而且還能提高系統(tǒng)開發(fā)的效率。6.1硬件調試6.1.1電源模塊調試用萬用表檢測電源模塊是否完整,若完整,把相應的元件焊上,并用萬用表檢測開關兩端是否輸出5v穩(wěn)壓直流電源。如果輸出的時12v的交流電,則檢測穩(wěn)壓芯片是否正常工作;如果得到220v的交流電,則檢測變壓器是否正常工作;如果都正常工作,則說明電源模塊正常工

32、作。硬件電源模塊如圖二十所示:圖二十 硬件電源模塊6.1.2單片機最小系統(tǒng)模塊調試首先確定此模塊的線路是否聯(lián)通;如果檢測到單片機的晶振不起振,檢測是否虛焊或是晶振已壞;檢測單片機的地線是否連通。檢查是否可以正常工作。例如將單片機的某個引腳接一個的指示燈,然后使此引腳輸出高低電平,檢查指示燈是否亮滅,檢測電源到單片機的線路是否短路或是虛焊。單片機最小系統(tǒng)擴展圖(紅綠燈控制器系統(tǒng)硬件圖)如圖二十一所示:圖二十一 單片機最小系統(tǒng)擴展圖(紅綠燈控制器系統(tǒng)硬件圖)6.1.3 max232下載模塊檢測用萬用表檢測電路,看電源線、地線是否完整,然后按照原理圖焊接。打開stc-isp軟件,設置好后,先下載一個

33、讓單片機的所有引腳均拉低的程序,看是否能下載。如果軟件提示下載失敗,檢測串口是否連接好,rxd、txd是否和單片機連接好;如果提示下載成功,則檢測單片機的引腳是否拉低,否則的話檢測程序是否正確。6.1.4 紅綠燈顯示檢測把紅黃綠燈按照原理圖焊接后,若燈不亮,檢測上拉電阻是否接到電源上;如果已連接,則檢測各自引腳是否虛焊。紅綠燈檢測程序在附錄里面(第42頁)。6.1.5 數(shù)碼管顯示檢測按照原理圖焊接好元件,然后燒寫一個讓數(shù)碼管從0顯示到9的程序。如果數(shù)碼管不顯示,則檢測數(shù)碼管的選通端是否虛焊;如果數(shù)碼管顯示不全,則檢測數(shù)碼管的數(shù)據(jù)口是否鏈接正確。將串口的和電路板上的接口連接,將寫好的測試程序刷寫

34、到芯片內,開電源即可測試。數(shù)碼管顯示模塊程序在附錄里面(第43頁)。6.2整體電路測系統(tǒng)上電,燒進程序即可開始測試,觀測一個周期的顯示狀態(tài)是否正常,同時觀察倒計的計數(shù)是否正常。對程序進行調試、仿真后,再進行焊接,確保焊接點無連接、短路等現(xiàn)象后,燒入程序,接著對設計進行調試,對照實驗要求進行幾個功能的調試。整體電路檢測如圖二十二所示(電路圖正在調試南北綠燈的通行時間):圖二十二 整體電路檢測圖6.3軟件調試程序的編寫采用的是c語言,用c語言設計主要優(yōu)點是編程比較簡單,c語言程序生成代碼質量高,程序執(zhí)行效率高,并且適用范圍大,可移植性好 。具體程序見附錄。7、結論本次單片機課程設計的紅綠燈控制器結

35、構簡單,操作方便,對優(yōu)化城市交通具有一定的意義。本設計將各任務進行細分包裝,使各任務保持相對獨立;能有效改善程序結構,便于模塊化處理,使程序的可讀性、可維護性和可移植性都得到進一步的提高。由于使用的是單片機作為核心的控制元件,使得電路的可靠性比較高,功能也比較強大而且可以隨時的更新系統(tǒng),進行不同狀態(tài)的組合。參考文獻1劉文濤.單片機應用開發(fā)實例.北京:清華大學出版社,2005年9月.191132周寶善.經(jīng)典電子設計與實踐diy.北京:人民郵電出版社,2008年8月.78,6192 3 寧武 唐曉宇 閆曉金 編著 電子設計競賽技能指導 電子工業(yè)出版社4 胡偉、季曉衡.單片機c程序設計及應用,人民郵

36、電出版社,2003年7月.671355 童詩白,華成英.模擬電子技術基礎.北京:高等教育出版社,2001年1月.5015506 張靖武, 周靈彬單片機原理應用與proteus仿真電子工業(yè)出版社2008年7 張超琦,鐘明哲單片機原理及實例.實踐篇上海交通大學出版社2007年8潘超群單片機控制技術在通信中的應用:mcs-51電子工業(yè)出版社2008年9陳濤單片機原理及c51程序設計機械工業(yè)出版社2008年附 錄#include#define uchar unsigned char#define uint unsigned int/*參數(shù)初始化*uchar count=0,count2=0; /定時器

37、0,定時器1的計數(shù)初值uchar green_ns=60,green_ew=30,red_ns=34,red_ew=64,yellow_ns=4,yellow_ew=4;/南北綠燈亮60 東西綠燈30 南北紅燈34 東西紅燈64 南北黃燈4 東西黃燈4uchar snorth=60,ewest=64; /上電后南北綠燈亮60秒,東西紅燈亮64秒uchar ding_ns=0,ding_ew=0; /南北狀態(tài)轉換標志位,東西狀態(tài)轉換標志位uchar flag=0,flag2=0; /設置鍵按下次數(shù)的標志位,長按鍵的標志位/*引腳定義*sbit wela=p20; /鎖存器位選sbit dula=

38、p21; /鎖存器位選sbit ns_r=p22; /南北發(fā)光二極管sbit ns_y=p23;sbit ns_g=p24; sbit ew_r=p25; /東西發(fā)光二極管sbit ew_y=p26;sbit ew_g=p27; sbit set=p32; /按鍵 設置鍵 加1鍵 減1鍵sbit up=p34;sbit down=p35;/*函數(shù)聲明部分*void delay(uint z);void inital();void display(uchar s);void display_ew(uchar w) ;void display_ns(uchar r);void turnkey();

39、void show();/*共陽數(shù)碼管段碼*unsigned char code seg710= 0xc0,/*0*/ 0xf9,/*1*/ 0xa4,/*2*/ 0xb0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xf8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ ; /*軟件延時函數(shù) 延時1毫秒*void delay(uint z) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*初始化函數(shù)*void inital() wela=0; /鎖存器初始化dula=0;tmod = 0x11; /計數(shù)器0,1工

40、作在方式1,數(shù)值大小16位,定時時間=12*(65536-x)/f x為初值,f為時鐘頻率th0 = 0xd8; /定時器0高8位tl0 = 0xf0; /定時器0低8位ea = 1; /開總中斷et0 = 1; /定時器0中斷允許 tr0=1; /定時器0開始計時th1=0xd8; /定時器1高8位tl1=0xf0; /定時器1低8位et1 = 1; /定時器1中斷允許ex0=1; /外部中斷0允許it0=0; /外部中斷0電平觸發(fā)ns_r=1; /南北發(fā)光二極管初始化ns_g=0;ns_y=1;ew_r=0; /東西發(fā)光二極管初始化ew_g=1;ew_y=1;/*數(shù)碼管顯示函數(shù)*void

41、display(uchar s) p1=seg7s;/*數(shù)碼管顯示東西方向數(shù)字*void display_ew(uchar w) uchar x,y,i=0;x=w%10; /個位y=w/10; /十位dula=1;display(x);dula=0; p1=0x00;wela=1;p1=0x04;wela=0;delay(5); dula=1;display(y); dula=0; p1=0x00;wela=1;p1=0x08;wela=0;delay(5);/*數(shù)碼管顯示南北方向數(shù)字*void display_ns(uchar r) uchar x,y,i=0;x=r%10; /個位y=r

42、/10; /十位 dula=1;display(x);dula=0; p1=0x00;wela=1;p1=0x01;wela=0;delay(5); dula=1;display(y);dula=0; p1=0x00;wela=1;p1=0x02;wela=0;delay(5);/ *鍵盤掃描函數(shù)*void turnkey() flag2=0; /掃描之前加10減10標志位清零if(!up)delay(10); /按鍵消抖 延時10msif(!up) tr1=1; /定時器1開始1s定時,用于鍵盤掃描的定時數(shù)值加10while(!up)switch(flag)case 0:break;case 1: display_ns(green_n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論