




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)原理及應(yīng)用課程設(shè)計課題: 交通信號燈控制系統(tǒng)設(shè)計姓 名: XXX 學(xué) 號: XXX 班 級: XXX 指導(dǎo)教師: XXX 日 期: 2015-6-26 微機(jī)原理及應(yīng)用課程設(shè)計任 務(wù) 書課題: 交通信號燈控制系統(tǒng)設(shè)計一、設(shè)計任務(wù)在雙干線路口上,交通信號燈的變化是定時的。假定:1放行線,綠燈亮放行25s,黃燈警告5s,然后紅燈亮禁止通行。2禁止線,紅燈亮禁止30s,然后綠燈亮放行。使兩條路線交替地成為放行線和禁止線,就可以實現(xiàn)定時交通控制。二、基本要求1、 設(shè)計系統(tǒng)的硬件和軟件設(shè)計;2、撰寫課程設(shè)計報告。3、課程設(shè)計報告由封面、設(shè)計任務(wù)書、目錄、摘要、正文、參考文獻(xiàn)、附錄等部分組成。4、封面
2、可自行設(shè)計,應(yīng)包含課程設(shè)計名稱及設(shè)計題目、專業(yè)、班級、姓名、指導(dǎo)老師、設(shè)計日期等內(nèi)容。5、正文是設(shè)計報告的核心部分。應(yīng)包含以下內(nèi)容:(1)概述所做課題的意義、本人所做的工作及系統(tǒng)的主要功能;(2)硬件電路設(shè)計及描述;(3)軟件設(shè)計流程圖及描述;(4)源程序代碼(要有注釋);(5)體會和建議等。交通信號燈控制系統(tǒng)設(shè)計姓名:XXX摘 要隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個核心部件來使用,正在不斷的應(yīng)用到實際生活中,并且根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。該設(shè)計中用光二極管來模擬信號燈,緊急車的優(yōu)先通過請求
3、信號由外部中斷技術(shù)來模擬。要求使AT89S52定時/計數(shù)器0作為定時器,要求對通行時間進(jìn)行倒計時,從P0 口輸出,在LED上顯示并進(jìn)行遞減,以此來實現(xiàn)十字路口交通燈的指示功能。為了節(jié)省元件,復(fù)位部分采用加電直接復(fù)位。根據(jù)交通燈系統(tǒng)所需要實現(xiàn)的功能要求,先畫出中斷程序部分的流程圖和主程序流程圖,然后根據(jù)流程圖寫出其子程序。從而通過模擬系統(tǒng)的仿真來實現(xiàn)該設(shè)計所要求的功能。關(guān)鍵詞:交通燈、數(shù)碼管、匯編語言目錄1.1引言51.2課程設(shè)計目的5二、方案選擇62.1 方案的選擇62.2 顯示界面方案62.3 設(shè)計方框圖72.4 AT89C51芯片簡介72.4.1特性概述72.4.2 管腳說明8三、系統(tǒng)硬件
4、電路設(shè)計113.1 時鐘電路設(shè)計113.2 復(fù)位電路的設(shè)計123.3燈控制電路設(shè)計133.4部分顯示電路設(shè)計13四、軟件設(shè)計144.1主程序模塊的設(shè)計144.2功能實現(xiàn)模塊的設(shè)計16五、調(diào)試結(jié)果185.1 程序調(diào)試結(jié)果185.2 仿真結(jié)果18七、參考文獻(xiàn)20附錄一 系統(tǒng)原理圖21附錄二 元件清單22附錄三 源程序代碼23I1.1引言 當(dāng)今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。 1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機(jī)械工程師納伊
5、特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動的紅綠燈出現(xiàn)在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動紅綠燈,司機(jī)遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感的路面時,它就能察覺到有
6、人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國道路交通和道路標(biāo)志信號協(xié)定對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進(jìn)入交叉路口。1.2課程設(shè)計目的(1)培養(yǎng)學(xué)
7、生根據(jù)題目要求,抽取相應(yīng)信息,設(shè)計組合邏輯和時序邏輯電路的能力。 (2)使學(xué)生掌握設(shè)計交通信號控制器的電路的調(diào)試及組裝方法。 (3)培養(yǎng)學(xué)生綜合應(yīng)用中規(guī)模組件的能力,提高自主創(chuàng)新能力。 (4)學(xué)會使用EWB電路仿真設(shè)計軟件完成設(shè)計及仿真調(diào)試,提高學(xué)生查閱手冊及合理選用器件的能力。二、方案選擇2.1 方案的選擇交通燈在安全行車過程中起著十分重要的作用,現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個倒計時的顯示計時器來控制行車, 對于一般情況下的安全行車、車輛分流發(fā)揮著作用, 但根據(jù)實際行車過程中出現(xiàn)的情況, 如何全面有效地利用交通燈指示交通情況,我們嘗試用單片機(jī)來
8、控制交通燈,在軟、硬件方面采取一些改進(jìn)措施,,使交通燈在控制中靈活而有效。硬件系統(tǒng)是指構(gòu)成單片機(jī)系統(tǒng)的實體和裝置,通常由運(yùn)算器、控制器、存儲器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機(jī)實質(zhì)上是一個硬件的芯片,在實際應(yīng)用中,通常很難直接和被控對象進(jìn)行電氣連接,必須外加各種擴(kuò)展接口電路、外部設(shè)備、被控對象等硬件和軟件,才能構(gòu)成一個單片機(jī)應(yīng)用系統(tǒng)。該交通燈擬系統(tǒng)的硬件部分主要由鍵盤、顯示和運(yùn)算部分組成。按照題目的設(shè)計要求,本課題需要使用LED數(shù)碼管顯示和擴(kuò)展鍵盤。在該交通燈系統(tǒng)的設(shè)計中采用AT89s51單片機(jī)。本設(shè)計采用加電直接復(fù)位。2.2 顯示界面方案該系統(tǒng)要求完成倒計時、狀態(tài)
9、燈等功能?;谏鲜鲈?,我們考慮了三種方案:方案一:完全采用數(shù)碼管顯示。這種方案只顯示有限的符號和數(shù)碼字符,無法勝任題目要求。方案二:完全采用點陣式LED 顯示。這種方案實現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。方案三:采用數(shù)碼管與點陣LED 相結(jié)合的方法因為設(shè)計既要求倒計時數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實情況,用數(shù)碼管與LED燈分別顯示時間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實現(xiàn)的復(fù)雜度。權(quán)衡利弊,第三種方案可互補(bǔ)一二方案的優(yōu)缺,我們決定采用方案三以實現(xiàn)系統(tǒng)的顯示功能。2.3 設(shè)計方框圖該設(shè)計在熟練掌握單片機(jī)及
10、其仿真系統(tǒng)的使用方法基礎(chǔ)上,綜合應(yīng)用單片機(jī)原理、微機(jī)原理、微機(jī)接口技術(shù)等課程方面的知識,設(shè)計一個采用AT89S51單片機(jī)控制的交通燈控制電路。上電復(fù)位電路89S51數(shù)據(jù)信號LED數(shù)碼管段碼調(diào)時電路振蕩電路片選交通燈圖1根據(jù)設(shè)計功能及要求,我們可得系統(tǒng)的原理框圖如圖所示。根據(jù)系統(tǒng)的原理框圖,分別分析各部分電路的元器件的功能以及選擇合適的元件。具體設(shè)計思路如下:收集并整理資料,硬件設(shè)計,軟件設(shè)計,Proteus仿真,設(shè)計體會與總結(jié)。2.4 AT89C51芯片簡介2.4.1特性概述AT89C51是一種帶4K字節(jié)FLASH存儲器(FPEROMFlash Programmable and Erasabl
11、e Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃存可編程可擦除只讀存儲器的單片機(jī)。單片機(jī)的可擦除只讀存儲器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃速存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。外形如圖2.1所示。圖2.1 AT89C51、S51、C52外形圖2.4.2 管腳說
12、明VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/89C51引腳圖地址的低八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為低八位地址接收。P
13、2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被
14、內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表所示:口管腳 備選功能P3.0 RXD(串行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。ALE/PROG
15、:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲
16、器時,這兩次有效的/PSEN信號將不出現(xiàn)。/EA/VPP:當(dāng)/EA保持低電平時,則在此期間為外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器讀取外部ROM數(shù)據(jù)。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,單片機(jī)讀取內(nèi)部程序存儲器。(擴(kuò)展有外部ROM時讀取完內(nèi)部ROM后自動讀取外部ROM)。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2:來自反向振蕩器的輸出。振蕩器特性:XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和
17、陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,XTAL2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。三、系統(tǒng)硬件電路設(shè)計3.1 時鐘電路設(shè)計圖3.1 時鐘電路原理圖時鐘電路用于產(chǎn)生MCS-51單片機(jī)工作時所必須的時鐘控制信號。其內(nèi)部電路在時鐘信號控制下,嚴(yán)格地按時序執(zhí)行指令進(jìn)行工作。在執(zhí)行指令時,CPU首先要到程序存儲器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時序電路產(chǎn)生一系列控制信號去完成指令所規(guī)定操作。本設(shè)計采用12MHz晶振和兩個33Pf瓷片電容,他們構(gòu)成一個穩(wěn)定的自激振蕩器。該電容的大小影響振蕩器頻率的高
18、低、振蕩器的穩(wěn)定性和起振的快速性。為單片機(jī)提供標(biāo)準(zhǔn)時鐘。其中兩個瓷片電容起微調(diào)作用。3.2 復(fù)位電路的設(shè)計圖3.2 復(fù)位電路原理圖圖3.2所示,復(fù)位引腳RST通過一個斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來抑制噪聲,在每個機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號。該設(shè)計采用加電直接復(fù)位,復(fù)位電容采用10uF,電阻10000歐,為了節(jié)省元件,沒有采用上電加按鍵模式。加電瞬間,RES管腳為高電平。3.3燈控制電路設(shè)計圖3.3 交通燈狀態(tài)顯示電路如圖3.3所示,交通燈狀態(tài)顯示電路由東西南北四個方向各三個LED燈組成,分別顯示四個方向上紅、
19、黃、綠三個狀態(tài),用以指示十字路口各方向車輛的行駛。通過軟件編程,可使路口交通變化情況為:南北方向車道和東西方向車道兩條交叉道路上的車輛交替運(yùn)行,綠燈25秒,紅燈30秒,在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運(yùn)行車道;黃燈亮?xí)r每秒閃亮一次。3.4部分顯示電路設(shè)計LED顯示器有兩中工作方式:靜態(tài)顯示方式和動態(tài)顯示方式。靜態(tài)顯示的特點是每個數(shù)碼管必須接一個8位鎖存器用來鎖存待顯示的字型碼。送入一次字型碼顯示自行一直保持,直到送入新字型碼為止。這種方法的優(yōu)點是占用CPU時間少,顯示便于監(jiān)測和控制。缺點是硬件電路比較復(fù)雜,成本較高。各數(shù)碼管在顯示過程中持續(xù)得到顯示信號,與各數(shù)碼管接口的I/O口是
20、專用的。動態(tài)顯示的特點是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來,就沒有必要每一位數(shù)碼管配一個鎖存器,從而大大地簡化了硬件電路。選亮數(shù)碼管采用動態(tài)掃描顯示。所謂動態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應(yīng)略小于靜態(tài)顯示電路中的。各數(shù)碼管在顯示過程中輪流得到顯示信號,與各數(shù)碼管接口的I/O口是共用的。該設(shè)計采用如下所示的數(shù)碼管,分別顯示南北和東西燈的剩余時間。片選部分和數(shù)碼段顯示部分,分別接單片機(jī)管腳的P2口和P0口,具體的
21、共陰數(shù)碼管下見圖3.4。 其中,A到G為碼段控制端口,1,2為片選端口。 圖3.4 顯示電路四、軟件設(shè)計4.1主程序模塊的設(shè)計主程序流程圖如下圖4.1所示:該交通信號燈控制系統(tǒng)的四中工作狀態(tài)(南北方向的交通燈為例):(1)南北方向A車道紅燈亮,東西方向B車道綠燈亮。表示南北方向A車道上的車輛禁止通行,東西方向B車道允許通行。綠燈亮足規(guī)定的時間隔時,控制器發(fā)出狀態(tài)信號,轉(zhuǎn)到下一工作狀態(tài)。 (2)南北方向A車道紅燈亮,東西方向B車道黃燈亮。表示東西方向B車道上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行,南北方向A車道禁止通行。黃燈亮足規(guī)定時間間隔時,控制器發(fā)出狀態(tài)轉(zhuǎn)換
22、信號,轉(zhuǎn)到下一工作狀態(tài)。 (3)南北方向A車道綠燈亮,東西方向B車道紅燈亮。表示南北方向A車道允許通行,東西方向B車道上的車輛禁止通行,綠燈亮足規(guī)定的時間間隔時,控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,轉(zhuǎn)到下一工作狀態(tài)。 (4)南北方向A車道黃燈亮,東西方向B車道紅燈亮。表示東西方向B車道禁止通行,南北方向A車道上位過限停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行。黃燈亮足規(guī)定的時間間隔時,控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,系統(tǒng)又轉(zhuǎn)換到第(1)種工作狀態(tài)??刂茻舫绦蛄鞒虉D如下:置A道放行標(biāo)志0F0A到放行時間送 R4A道有車?A道亮綠燈,B道亮紅燈B道有車?YN開始允許中斷B道亮黃燈
23、,A道亮紅燈延時5秒A道亮黃燈,B道亮紅燈R4-1=0?A道有車?B到放行時間送 R5B道亮綠燈,A道亮紅燈延時0.5秒延時0.5秒置B道放行標(biāo)志0F0延時5秒B道有車?R5-1=0?YNYYYN 圖4.1 交通燈控制流程圖4.2功能實現(xiàn)模塊的設(shè)計功能實現(xiàn)模塊主要由中斷處理子程序,鍵盤處理子程序和顯示子程序等組成。下面僅對T0中斷服務(wù)程序部分進(jìn)行簡單介紹。A道亮黃燈,B道亮紅燈B道亮綠燈,A道亮紅燈A道亮綠燈,B道亮紅燈開始延時5秒A道亮黃燈,B道亮紅燈B道亮黃燈,A道亮紅燈緊急車通過A道放行返回圖4.2 交通燈控制中的中斷控制流程YNYNN原道A放行五、調(diào)試結(jié)果5.1 程序調(diào)試結(jié)果圖5.1
24、程序調(diào)試結(jié)果5.2 仿真結(jié)果如下圖5.2仿真圖所示,正常情況下南北方向亮綠燈,東西方向亮紅燈。南北放行,東西禁行; 圖5.2 南北方向通車仿真結(jié)果如下圖5.3所示南北方向亮黃燈5秒,東西方向亮紅燈;圖5.3 黃燈亮?xí)r的仿真結(jié)果6、 小結(jié)與體會這次課程設(shè)計經(jīng)過一個星期的反復(fù)琢磨與修改,終于完成了。從查資料,整理資料到讀程序,寫程序,改程序,仿真直至通過老師的驗收,一切都充滿了刻苦與艱辛,其間充滿了挫折可是同時又伴隨著歡樂。令我感觸最深的就是同學(xué)們傾心的幫助,由于我的單片機(jī)原理與應(yīng)用技術(shù)學(xué)的并不是很好,所以對某些知識點并不是很清楚,可是同學(xué)們總是不厭其煩的給我一遍又一遍的講解,直到我弄清楚為止!他
25、們的知識閱歷另我打開眼界,他們的無私精神更另我感動不已!另外,在重復(fù)修改與設(shè)計的過程中,我又重新把單片機(jī)原理與應(yīng)用技術(shù)這本書仔細(xì)的看了一下,弄懂了一些以前一知半解的東西,進(jìn)一次加強(qiáng)和鞏固了我的理論知識。在此次課程設(shè)計過程中,我把單片機(jī)的理論知識用于實踐中,使理論與實踐相結(jié)合,使我的理論知識的到了鞏固,在查資料翻閱資料的過程中也豐富了我的知識跟閱歷。通過這次課程設(shè)計我也發(fā)現(xiàn)了自身存在的不足之處,雖然感覺理論上已經(jīng)掌握,但在運(yùn)用到實踐的過程中仍有意想不到的困惑,經(jīng)過一番努力才得以解決。這也激發(fā)了我今后努力學(xué)習(xí)的興趣,我想這將對我以后的學(xué)習(xí)產(chǎn)生積極的影響。我認(rèn)為這個收獲應(yīng)該說是相當(dāng)大的。這次課設(shè)讓我
26、對書本上的知識有了更深刻的了解,實踐和只是僅僅掌握理論知識的區(qū)別,以及自身的動腦和努力,都是以后工作中需要的??傊?,課設(shè)讓我這周很充實學(xué)到了很多。七、參考文獻(xiàn)1賀哲榮.主編.MCS-51系列單片機(jī)實用編程M.中國電力出版社,2011,22張靖武,周靈彬.編著.單片機(jī)原理、應(yīng)用與proteus仿真M.電子工業(yè)出版社,2011,123蔣輝平.主編.基于proteus的單片機(jī)系統(tǒng)設(shè)計與仿真實例M.電子工業(yè)出版社2009,74江世明.主編.單片機(jī)原理及應(yīng)用M.上海:上海交通大學(xué)出版社,2013,5附錄一 系統(tǒng)原理圖附錄二 元件清單序號元件名稱型號(或規(guī)格)數(shù)量備注1AT89C51AT89C5112晶振
27、13兩位共陰極數(shù)碼管44排阻15電阻11k26電阻220017電容130PF28電容222PF19發(fā)光二極管1紅色LED310發(fā)光二極管2黃色LED311發(fā)光二極管3綠色LED3附錄三 源程序代碼ORG 0000H AJMP MAIN ORG 0003H LJMP AQW1 ; 跳到設(shè)定時間中斷服務(wù)程序 ORG 000BH LJMP AQW2 ; 跳到跳到特種車輛自動服務(wù)程序 ORG 0013H LJMP AQW3 ; 跳到南北有車東西無車中斷服務(wù)程序 ORG 001BH LJMP AQW4 ; 跳到東西有車南北無車中斷服務(wù)程序 ;.數(shù)字顯示代碼. ORG 0100H TAB: DB 3FH,
28、6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH主程序 ORG 0300H MAIN: MOV 25H,#30 ; 南北通行時間初始值,存到25H單元 MOV 26H,#20 ; 東西通行時間初始值,存到26H單元 MOV SP,#40H ; 堆棧選址 CLR P3.0 ; MOV TMOD,#66H ; T0、T1都計數(shù)方式,工作模式2 ,啟動方式TRi確定 MOV TL0,#255 ; 計數(shù)器0初值 低8位 MOV TH0,#0 ; 計數(shù)器0初值高8位 MOV TL1,#255 ; 計數(shù)器1初值 低8位 MOV TH1,#0 ; 計數(shù)器1初值高8位 SETB IT0 ;
29、外部中斷一邊沿觸發(fā) SETB IT1 ; 外部中斷二邊沿觸發(fā) MOV IE,#8FH ; 開中斷 SETB TR0 ; T0開始計數(shù) SETB TR1 ; T1 開始計數(shù); .南北綠燈東西紅燈. NBLD: CLR P3.0 ; MOV R1,25H ; 南北通行時間30秒(25h)=30,(NBLD即東西綠燈) NBLD1: MOV P2,#1EH ; 點亮南北綠燈東西紅燈 MOV 20H,R1 ; 為南北方向顯示時間做準(zhǔn)備 MOV A,R1 ; ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時間做準(zhǔn)備 LCALL DISP1 ; 顯示通行所剩時間,其中有0.5秒延時 LCAL
30、L DISP1 ; 再次顯示以便數(shù)碼管不閃,且再延時0.4秒以便湊夠一秒 DJNZ R1,NBLD1 ; 判斷30秒是否已完,若未完則從新顯示、延時;.南北黃燈閃東西紅燈.ShanHD: MOV R2,#5 ; 黃燈閃亮5秒 HD: MOV P2,#1DH ; 點亮黃燈 MOV 22H,R2 ; 為顯示時間做準(zhǔn)備 LCALL DISP2 ; 黃燈閃亮剩時顯示 ,其中延時0.5秒 MOV P2,#1FH ; 熄滅黃燈 LCALL DISP2 ; 顯時,且再延時0.5秒以便湊夠1秒 DJNZ R2,HD ; 判斷5秒是否已完,若未完則從新閃滅、延時和顯示;.南北紅燈東西綠燈 . DXLD: CLR
31、 P3.0 ; MOV R3,26H ; 東西通行20秒 (26H)=20, (DXLD即東西綠燈) DXLD1: MOV P2,#33H ; 點亮南北紅燈東西綠燈 MOV 24H,R3 ; 為東西方向顯示時間做準(zhǔn)備 MOV A,R3 ; ADD A,#5 ; MOV 23H,A ; 為南北方向顯示時間做準(zhǔn)備 LCALL DISP3 ; 時間顯示 ,其中有0.5秒延時 LCALL DISP3 ; 湊夠1秒時間 DJNZ R3,DXLD1 ; 判斷20秒是否已完;.南北紅燈東西黃燈閃.ShanHD1: MOV R2,#5 ; 轉(zhuǎn)入黃燈閃亮5秒 HD1: MOV 22H,R2 ; 為顯示做準(zhǔn)備 M
32、OV P2,#2BH ; 點亮南北紅燈東西黃燈 LCALL DISP2 ; 顯示時間,并延時0.5秒 MOV P2,#3BH ; 點亮南北紅燈關(guān)閉東西黃燈 LCALL DISP2 ; 顯時,且再延時0.5秒以便湊夠1秒 DJNZ R2,HD1 ; 判斷5秒是否到,若未到繼續(xù)閃滅東西黃燈 AJMP NBLD;.特種車輛通過.Tezhong: MOV P2,#1BH ; 點亮東西南北紅燈 SETB P3.0 ; MOV R4,#15 ; 特殊車輛通過時間15秒 QHD: MOV 27H,R4 ; 為顯示做準(zhǔn)備 LCALL DISP4 ; 顯示時間 DJNZ R4,QHD ; 判斷15秒是否到,若不
33、到繼續(xù)顯示時間 CLR p3.0 ; AJMP NBLD ; 主程序到此完 ;.延時程序. . DELAY: ACALL DELAY1 ; 10ms延時 ACALL DELAY1 RET DELAY1: MOV R6,#50 ; 5ms延時 ,(5ms=50*50*2us) DE6: MOV R0,#50 DE7: DJNZ R0,DE7 DJNZ R6,DE6 RET;.南北通行的時間顯示子程序.(其中有0.5秒延時). DISP1: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#25 ; 以下調(diào)用四次5毫秒延時程序,故25*4*5毫秒=0.5秒 RP1: MOV A,20H ; 南北
34、方向要顯示的時間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時間與10相除,求出十位和個位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001110B; 選擇南北數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時5ms以點亮數(shù)碼管 MOV A,B ; 把個位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個位數(shù)顯示代碼 MOV P1,#00001101B ; 選擇南北數(shù)碼管個位片 MOV P0,A ; 送出個位數(shù)顯示代碼 LCALL DELAY1 ;
35、延時5ms以點亮數(shù)碼管 MOV A,21H ; 東西方向要顯示的時間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時間與10相除,求出十位和個位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001011B; 選擇東西數(shù)碼管的十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時5ms以點亮數(shù)碼管 MOV A,B ; 把個位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個位的顯示代碼 MOV P1,#00000111B ; 選擇東西數(shù)碼管的個位片 MOV P0,A
36、 ; 送出個位顯示碼 LCALL DELAY1 DJNZ R7,RP1 ; 是否已循環(huán)25次?(25次才夠0.5秒) RET ;.黃燈的時間顯示子程序. DISP2: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#25 ; 以下調(diào)用兩次0.01秒延時程序,故25*0.02=0.5秒 RP2: MOV A,22H ; 要顯示的時間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時間與10相除,求出十位和個位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001010B; 選擇南北數(shù)碼管十位片和東
37、西數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY ; 延時10ms以點亮數(shù)碼管 MOV P1,#00000101B ; 選擇南北數(shù)碼管個位片和東西數(shù)碼管個位片 MOV A,B ; 把個位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個位數(shù)顯示代碼 MOV P0,A ; 送出個位數(shù)顯示代碼 LCALL DELAY ; 延時10ms一點亮數(shù)碼管 DJNZ R7,RP2 RET ;.東西通行的時間顯示子程序. DISP3: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#25 ; 以下調(diào)用兩次0.01秒延時程序,故10*0.05=0.5秒 RP3: MOV A
38、,23H ; 要南北方向顯示的時間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時間與10相除,求出十位和個位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001110B; 選擇南北數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時5ms以點亮數(shù)碼管 MOV A,B ; 把個位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個位數(shù)顯示代碼 MOV P1,#00001101B; 選擇南北道數(shù)碼管個位片 MOV P0,A ; 送出個位數(shù)顯示代碼 LCALL
39、DELAY1 ; 延時5ms一點亮數(shù)碼管 MOV A,24H ; 要東西方向顯示的時間移到寄存器A MOV B,#10 DIV AB ; 要顯示的時間與10相除,求出十位和個位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001011B ; MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時5ms以點亮數(shù)碼管 MOV A,B MOVC A,A+DPTR MOV P1,#00000111B ; 選擇東西數(shù)碼管個位片 MOV P0,A ; 送出個位顯示代碼 LCALL DELAY1 DJNZ R7,RP3 RET ;.特殊車輛通過的時間顯示子程序
40、. DISP4: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#50 ; 以下調(diào)用兩次0.01秒延時程序,故40*2*0.01=1秒 RP4: MOV A,27H ; 要顯示的時間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時間與10相除,求出十位和個位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001010B; 選擇南北、東西數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY ; 延時10ms以點亮數(shù)碼管 MOV A,B ; 把個位數(shù)移到寄存器A MOVC
41、A,A+DPTR ; 找到個位數(shù)顯示代碼 MOV P1,#00000101B; 選擇南北、東西數(shù)碼管的個位片 MOV P0,A ; 送出個位數(shù)顯示代碼 LCALL DELAY ; 延時10ms一點亮數(shù)碼管 DJNZ R7,RP4 RET.設(shè)定時間子程序.根據(jù)哪個方向亮綠燈設(shè)定那個方向的通行時間,沒有綠燈亮不能設(shè)定時間,中斷直接退出。 . AQW1: MOV IE,#0 ; 關(guān)閉中斷允許 MOV A,P2 ; 讀取交通燈狀態(tài) JNB Acc.3,DXSJ ; P2.3,DXSJ ; DXSJ(東西綠燈亮(P2.3=0)則設(shè)定東西通行時間 ) JNB Acc.0,NBSJ ; P2.0,NBSJ
42、; NBSJ (南北綠燈亮(P2.0=0)則設(shè)定南北通行時間 ) POP 28H ; POP 28H ; MOV DPTR,#NBLD ; 如果不能調(diào)整時間(沒有綠燈亮)則退出后從狀態(tài)1開始,相當(dāng)于復(fù)位。 PUSH DPL ; PUSH DPH ; EXIT: MOV IE,#8FH ; 恢復(fù)開中斷 RETI ; - - - - -南北通行時間設(shè)定 - - - - - NBSJ: POP 28H ; POP 28H ; MOV DPTR,#NBLD ; 此處設(shè)時為南北通行時間 PUSH DPL ; 把斷點換成南北綠燈(NBLD)入口 PUSH DPH ; XSSM1: MOV A,25H ;
43、讀取南北通行時間 MOV 20H,A ; 為南北方向顯示時間做準(zhǔn)備 ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時間做準(zhǔn)備 LCALL DISP1 ; 顯示時間 LCALL DELAY1 MOV A,P3 JNB P3.2,EXIT ; 判斷有否按下設(shè)時確定按鈕,若有則退出,若無接著判斷加時和減時信號 JNB P3.3,JX ; 判斷有否加時信號(p3.3所接按鈕是否按下)若有跳轉(zhuǎn)處理,無則掃描減時信號 JNB P3.5,JX1 ; 判斷有否減時信號 AJMP XSSM1 ; 從循環(huán)顯示時間和掃描按鍵情況 JX: MOV A,25H ; 讀出之前設(shè)定的時間值(存儲在25H單元) ADD A,#1 ; 在之前值基礎(chǔ)上加1處理 MOV 25H,A ; 回存到25H單元 MOV 20H,A ; 為南北顯示時間做準(zhǔn)備 ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時間做準(zhǔn)備 LCALL DISP1 ; 顯示處理后的時間值 AJMP XSSM1 ; 從循環(huán)顯示時間和掃描按鍵情況 JX1: MOV A,25H ; 讀出之前設(shè)定的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國合式放大鏡數(shù)據(jù)監(jiān)測研究報告
- 2025至2030年中國PVC地毯保護(hù)地墊數(shù)據(jù)監(jiān)測研究報告
- 郵政面試筆試題及答案
- 專題5 功和簡單機(jī)械 2021年和2022年江蘇省南通市中考物理模擬試題匯編
- 2019-2025年消防設(shè)施操作員之消防設(shè)備基礎(chǔ)知識自我檢測試卷A卷附答案
- 2019-2025年軍隊文職人員招聘之軍隊文職管理學(xué)真題練習(xí)試卷A卷附答案
- 酒店合同范本(2篇)
- 2023年黑龍江公務(wù)員《行政職業(yè)能力測驗》試題真題及答案
- 環(huán)境保護(hù)與可持續(xù)發(fā)展知識點測試
- 語文課本里的經(jīng)典詩文賞析
- 通宣理肺丸(修訂版)
- 重點??平ㄔO(shè)總結(jié)匯報
- 物業(yè)公共設(shè)施設(shè)備管理專題培訓(xùn)課件
- 電氣自動化專業(yè)高職單招2024年技能考試題庫及答案
- apa第七版參考文獻(xiàn)格式例子
- 《描述性統(tǒng)計量》課件
- 袁家村策劃方案
- 醫(yī)院保安服務(wù) 投標(biāo)方案
- 2023南方國家電網(wǎng)招聘筆試參考題庫(共500題)答案詳解版
- 快手申訴文本
- 重癥患者早期康復(fù)的研究進(jìn)展
評論
0/150
提交評論