版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 摘 要</b></p><p> 本次設(shè)計(jì)的題目是基于單片機(jī)的交通燈設(shè)計(jì),系統(tǒng)主要由單片機(jī)AT89S52控制,實(shí)現(xiàn)數(shù)據(jù)存儲,并結(jié)合外圍的鍵盤輸入、LED顯示等電路模塊,實(shí)現(xiàn)相關(guān)的功能。所設(shè)計(jì)的系統(tǒng)能完成以下功能:甲車道和乙車道兩條交叉道路上的車輛交替運(yùn)行,甲車道為主車道,每次通車時間為60秒,乙車道為次車道,每次通車時間為30秒,要求黃燈亮3秒,并且1秒閃爍
2、一次。有應(yīng)急車輛出現(xiàn)時,紅燈全亮,應(yīng)急車輛通車時間10秒,同時禁止其他車輛通過。這是生活中很常見的現(xiàn)象,同時本設(shè)計(jì)有成本低,易操作,實(shí)用等特點(diǎn)。</p><p> 關(guān)鍵詞: 單片機(jī);交通燈;LED顯示</p><p><b> ABSTRACT</b></p><p> The topic of this design is based
3、 on the Single chip microcomputer of traffic light design, the system is mainly composed of single chip microcomputer AT89S52 control to realize data storage, and combined with peripheral keyboard input LED display circu
4、it module, realize the function design of the system can complete the following functions: a lane and b lane two cross road vehicle alternating operation, a lane is given priority to lane, every time to traffic time for
5、sixty seconds, b lane as a </p><p> Key Words: Single chip microcomputer; Traffic lights; LED Display</p><p><b> 目 錄</b></p><p> 1 設(shè)計(jì)要求及總體方案介紹1</p><p&g
6、t; 1.1 設(shè)計(jì)課題任務(wù)1</p><p> 1.2 功能說明1</p><p> 1.3 設(shè)計(jì)總體方案介紹及工作原理說明2</p><p> 1.3.1 總體方案介紹2</p><p> 1.3.2 工作原理2</p><p> 2 硬件系統(tǒng)的設(shè)計(jì)4</p><
7、;p> 2.1 硬件系統(tǒng)各模塊功能介紹4</p><p> 2.1.1 顯示電路4</p><p> 2.1.3 鍵盤控制電路4</p><p> 2.1.4 時鐘電路5</p><p> 2.1.5 復(fù)位電路5</p><p> 2.1.6 流水燈電路5</p>
8、<p> 2.1.7 下載口電路5</p><p> 2.2 電路原理圖6</p><p> 2.3 電路PCB圖6</p><p> 2.4 元器件布局圖6</p><p> 2.5 元器件清單6</p><p> 3 軟件系統(tǒng)的設(shè)計(jì)7</p><p&
9、gt; 3.1 單片機(jī)的使用資源情況7</p><p> 3.1.1 資源使用說明7</p><p> 3.2 軟件模塊功能介紹8</p><p> 3.3 程序流程圖8</p><p> 3.3.1 主程序的流程框圖8</p><p> 3.3.2 鍵掃子程序流程框圖8</p
10、><p> 3.3.3 顯示子程序流程框圖8</p><p> 4 設(shè)計(jì)調(diào)試與分析11</p><p> 4.1 使用說明11</p><p> 4.2 硬件性能的檢測11</p><p> 4.3程序調(diào)試11</p><p> 4.3 誤差分析12</p&g
11、t;<p> 4.4 設(shè)計(jì)體會及教學(xué)意見12</p><p><b> 結(jié)束語13</b></p><p><b> 致 謝14</b></p><p><b> 參考文獻(xiàn)15</b></p><p><b> 附 錄16<
12、;/b></p><p> 附錄一 電路原理圖16</p><p> 附錄二 PCB圖17</p><p> 附錄三 元器件布局圖18</p><p> 附錄四 交通燈元器件清單18</p><p> 附錄五 實(shí)物圖19</p><p> 附錄六 程序清單
13、19</p><p> 1 設(shè)計(jì)要求及總體方案介紹</p><p> 1.1 設(shè)計(jì)課題任務(wù)</p><p> 設(shè)計(jì)一個具有特定功能的十字路口交通燈。該交通燈上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。按開始鍵則開始工作,按結(jié)束鍵則返回“P.”狀態(tài)。要求甲車道和乙車道兩條交叉道路上的車輛交替運(yùn)行,甲車道為主車道,每次通車時間為60秒,
14、乙車道為次車道,每次通車時間為30秒,要求黃燈亮3秒,并且1秒閃爍一次。有應(yīng)急車輛出現(xiàn)時,紅燈全亮,應(yīng)急車輛通車時間10秒,同時禁止其他車輛通過。</p><p><b> 1.2 功能說明</b></p><p> 本次課程設(shè)計(jì)在硬件方面的接法如下:P3口接二極管,P3.7、P3.6、P3.5口線分別來控制東西方向的綠燈、黃燈和紅燈;P3.4、P3.3、P3.
15、2口線分別控制南北方向的綠燈、黃燈和紅燈。P2口作為數(shù)碼管的位控,P0口作為數(shù)碼管的段控,P1口作為輸入部分(這里用到了P1.0、P1.1、P1.2口線),控制數(shù)碼管的顯示情況和二極管的亮滅情況。</p><p> 當(dāng)交通燈上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。</p><p> 當(dāng)按下啟動按鈕K0并釋放后,數(shù)碼管顯示將會從“60”開始倒計(jì)時,每隔一秒減1,此
16、時東西方向開始一直亮綠燈,南北方向一直亮紅燈,直到顯示為“00”時,數(shù)碼管將會從“03”開始倒計(jì)時,每隔一秒減1,此時東西方向每隔一秒黃燈就閃爍一次,南北方向一直亮紅燈,直到顯示為“00”時,數(shù)碼管將會從“30”開始倒計(jì)時,此時東西方向一直亮紅燈,南北方向一直亮綠燈,直到顯示為“00”時,數(shù)碼管又將從“03”開始倒計(jì)時,此時東西方向一直亮紅燈,南北方向每隔一秒黃燈就閃爍一次;當(dāng)沒有其他鍵按下時,交通燈將這樣一直循環(huán)下去。</p&g
17、t;<p> 當(dāng)按下結(jié)束鍵K2并釋放后,數(shù)碼管將顯示“P.”,東西南北方向無燈亮。</p><p> 當(dāng)按下緊急鍵JINJI并釋放后,數(shù)碼管將顯示“10”,并且每隔一秒就減1,東西南北方向全部紅燈亮。</p><p> 單片機(jī)采用AT89S52,f=12MHZ。其按鍵功能如表1所示。</p><p><b> 表1 按鍵功能<
18、/b></p><p> 1.3 設(shè)計(jì)總體方案介紹及工作原理說明</p><p> 1.3.1 總體方案介紹</p><p> 該交通燈電路由單片機(jī)AT98S52、鍵盤接口電路、顯示接口電路、發(fā)光二極管控制電路、時鐘電路和復(fù)位電路構(gòu)成,原理框圖如圖1所示。</p><p><b> 圖1 原理框圖</b>
19、;</p><p> ?。?) 電源提供方面</p><p> 采用獨(dú)立的穩(wěn)壓電源,此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供使用。</p><p><b> ?。?) 顯示方面</b></p><p> 采用數(shù)碼管顯示,用來顯示有限符號和數(shù)碼字符。</p><p> ?。?) 鍵盤輸入方面
20、</p><p> 直接在I/O口線上接按鍵開關(guān),因?yàn)樵O(shè)計(jì)時精簡和優(yōu)化了電路,所以剩余的口資源較多。此設(shè)計(jì)共用到了3個按鍵,分別為:K0、JINJI、K2。</p><p> 1.3.2 工作原理</p><p> 首先時鐘電路產(chǎn)生單片機(jī)工作時所需要的時鐘信號,這是單片機(jī)能夠正常工作的前提,而單片機(jī)有無定時的基礎(chǔ)以及定多長的時間,這些還需要我們?nèi)藶榈拇_定。我
21、是采用50ms延時中斷程序用來定時,在我們的硬件電路中,按鍵的鍵功能程序在中斷服務(wù)中,在正常情況下會不斷運(yùn)行主程序,當(dāng)有鍵按下時,CPU去轉(zhuǎn)去執(zhí)行中斷程序,而中斷程序可以執(zhí)行三種鍵功能:第一個是十秒倒計(jì)時緊急紅燈亮;第二個是結(jié)束倒計(jì)時,顯示P.;第三個是重新開始倒計(jì)時。當(dāng)有鍵按下時,外部中斷0口線就會變成低電平,通過鍵掃程序來具體判斷到底是哪個鍵按下,CPU才會去執(zhí)行中斷里面的某個鍵功能。8個發(fā)光二極管是由P3口控制的,P3口與二極管之
22、間串接一個限流電阻使二極管不易燒壞,采用送低電平有效。</p><p> 2 硬件系統(tǒng)的設(shè)計(jì)</p><p> 2.1 硬件系統(tǒng)各模塊功能介紹</p><p> 2.1.1 單片機(jī)介紹</p><p> 本次課程設(shè)計(jì)中,我采用的是AT89S52芯片,AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Fla
23、sh存儲器。使用Atmel公司高密度非易失性存儲器技術(shù)制造,片上Flash允許程序存儲器在系統(tǒng)可編程,亦適于常規(guī)編程器。</p><p> 2.1.2 顯示電路</p><p> 在本次課程設(shè)計(jì)中,我采用的是八位共陽數(shù)碼管,顯示原理跟單個LED的顯示原理完全相同,在段控線和位控線都串接一個電阻,以提高其輸出功率,在這里采用470歐母電阻。</p><p>
24、2.1.3 鍵盤控制電路</p><p> 鍵盤是最常用的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對話的紐帶。按其結(jié)構(gòu)形式可分為非編碼鍵盤和編碼鍵盤。</p><p> 編碼鍵盤采用硬件方法產(chǎn)生鍵碼。每按下一個鍵,鍵盤能自動生成鍵盤代碼,鍵數(shù)較多,且具有去抖動功能。這種鍵盤使用方便,但硬件較復(fù)雜。非編碼鍵盤僅提供按鍵開關(guān)工作狀態(tài),其鍵碼由軟件確定,這種鍵盤鍵數(shù)較少,硬件簡單,廣泛應(yīng)用于各種單片機(jī)應(yīng)用系統(tǒng)
25、,在單片機(jī)控制電路中,可把單片機(jī)使用的鍵盤分為獨(dú)立式和矩陣式兩種。獨(dú)立式實(shí)際上就是一組獨(dú)立的按鍵,這些按鍵可直接與單片機(jī)的I/O口連接,即每個按鍵獨(dú)占一條口線,這種接法簡單。矩陣式鍵盤也稱行列式鍵盤,因?yàn)殒I的數(shù)目較多,所以鍵按行列組成矩陣。本設(shè)計(jì)中鍵盤數(shù)目較少,且為安裝方便,因此在本設(shè)計(jì)中采用獨(dú)立式接法。從一個鍵到鍵的功能被執(zhí)行主要應(yīng)包括兩項(xiàng)工作:一是鍵的識別,即在鍵盤中找出被按的是哪個鍵,另一項(xiàng)是鍵功能的實(shí)現(xiàn)。第一項(xiàng)工作是使用接口電路
26、實(shí)現(xiàn)的,而第二項(xiàng)工作則是通過執(zhí)行相應(yīng)服務(wù)程序來完成。具體來說,鍵盤接口應(yīng)完成以下操作功能:</p><p> (1) 鍵盤掃描,以判定是否有鍵被按下(稱之為“閉合鍵”)。</p><p> (2) 鍵識別,以確定閉合鍵的行列位置。</p><p> (3) 產(chǎn)生閉合鍵的鍵碼。</p><p> (4) 排除多鍵、去抖動。</p&
27、gt;<p> 以上這些內(nèi)容通常是以軟硬件結(jié)合的方式來完成的,即在軟件的配合下由接口電路來完成。但具體哪些由硬件哪些由軟件完成,要看接口電路的情況??偟脑瓌t是,硬件復(fù)雜軟件就簡單,硬件簡單軟件就得復(fù)雜一些。</p><p> 2.1.4 時鐘電路</p><p> 時鐘電路用來產(chǎn)生單片機(jī)工作所需要的時鐘信號,單片機(jī)本身就是一個復(fù)雜的同步時序電路,為了保證同步工作方式的
28、實(shí)現(xiàn),電路應(yīng)在唯一的時鐘信號控制下嚴(yán)格地按時序進(jìn)行工作。通過在芯片的外部XTAL1和XTAL2兩個引腳跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個穩(wěn)定的自激振蕩電路。時鐘電路為單片機(jī)產(chǎn)生時鐘脈沖序列,本設(shè)計(jì)中采用的晶振頻率為12MHz,電容為33pF。 </p><p> 2.1.5 復(fù)位電路</p><p> 復(fù)位電路用于產(chǎn)生復(fù)位信號,通過RST引腳送入單片機(jī),
29、復(fù)位是單片機(jī)的初始操作,其主要功能是:為一些專用寄存器設(shè)置初始狀態(tài)、程序狀態(tài)字PSW清0、程序計(jì)數(shù)器PC被賦值為0000H等,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需安裝復(fù)位鍵以重新啟動。RST引腳是復(fù)位信號的輸入端,復(fù)位信號是高電平有效,完成復(fù)位操作共需要24個狀態(tài)周期,復(fù)位結(jié)束后,單片機(jī)從地址0000H單元開始執(zhí)行程序,SP為07H,其它寄存器大多數(shù)被置為00H,本設(shè)計(jì)使用頻率
30、為12MHz的晶振,所以復(fù)位信號持續(xù)時間應(yīng)超過2μs才能完成復(fù)位操作。復(fù)位電路分為上電復(fù)位、按鍵復(fù)位、按鍵脈沖復(fù)位三種,本次課程設(shè)計(jì)采用的是按鍵復(fù)位。</p><p> 2.1.6 流水燈電路</p><p> 流水燈電路直接掛接在單片機(jī)的P3口上,采用共陽接法。蜂鳴器接在P3.1口上。</p><p> 2.1.7 下載口電路</p><
31、;p> 下載口的1腳接在P1.5口,2腳懸空,3腳接在單片機(jī)的復(fù)位口上,4腳接P1.6口,5腳接P1.7口,6腳接地,7、8、8、10腳接地。</p><p> 2.2 電路原理圖</p><p> 電路原理圖見附錄一所示。</p><p> 2.3 電路PCB圖</p><p> 電路PCB圖見附錄二所示。</p&
32、gt;<p> 2.4 元器件布局圖</p><p> 元器件布局圖見附錄三所示。</p><p> 2.5 元器件清單</p><p> 元器件清單見附錄四所示。</p><p> 3 軟件系統(tǒng)的設(shè)計(jì)</p><p> 3.1 單片機(jī)的使用資源情況</p><p&
33、gt; 3.1.1 資源使用說明</p><p> P3口為二極管的控制端</p><p> P0口用作地址/數(shù)據(jù)總線</p><p> P2口用作地址/數(shù)據(jù)總線</p><p> P1.0、P1.1、P1.1口線作為鍵盤輸入端</p><p> 既在AT89S52的P3口用來接八個發(fā)光二極管的陰極,控制
34、其亮與滅,P0口和P2口外接由2個LED數(shù)碼管(LED1、LED0)構(gòu)成的顯示器,用P0口作LED的段碼輸出口(P0.0~P0.7對應(yīng)于LED的a~dp),P2口作LED的位控輸出線(P1.1、P1.0分別對應(yīng)于LED1、LED0),P2口外接三個個按鍵K0、JINJI、K2(分別對應(yīng)于P1.0、P1.1、P1.2口)用于調(diào)整顯示接口電路。 </p><p> 3.1.2 交通燈的分配表 </p&
35、gt;<p> 交通燈的口線分配如表2所示,“1”表示送高電平,“0”表示送低電平。</p><p> 表2 交通燈分配表</p><p> 3.2 軟件模塊功能介紹</p><p> 主程序模塊的主要任務(wù)是程序的初始化顯示“P.”,當(dāng)沒任何鍵按下時,顯示模塊將一直不變,交通燈全部是熄滅的,當(dāng)K0鍵按下并松開后開始倒計(jì)時,</p>
36、;<p> 其中在時間顯示的過程中判斷是否有JINJI和K2鍵按下,如果是K2按下,將顯示“P.”,并且發(fā)光二極管全部熄滅,如果是JINJI按下,數(shù)碼管將開始十秒倒計(jì)時,并且東西南北的紅燈全部亮起來。</p><p> 顯示模塊包括送緩沖區(qū)模塊,BCD碼轉(zhuǎn)換和送顯示等,通過這些模塊完成了顯示的功能,并能按照我們所熟悉的時鐘時間進(jìn)行顯示。</p><p> 3.3 程序
37、流程圖</p><p> 3.3.1 主程序的流程框圖</p><p> 主程序的流程圖如圖2所示:</p><p> 3.3.2 鍵掃子程序流程框圖</p><p> 鍵掃子程序流程框圖如圖3所示:</p><p> 3.3.3 顯示子程序流程框圖</p><p> 顯示子程
38、序流程框圖如圖4所示:</p><p> 圖2 主程序的流程圖</p><p> 圖3 鍵掃子程序流程框圖圖4 顯示子程序流程框圖</p><p><b> 3.4 程序清單</b></p><p><b> 程序清單詳見附錄六</b></p&g
39、t;<p> 4 設(shè)計(jì)調(diào)試與分析</p><p><b> 4.1 使用說明</b></p><p> 本設(shè)計(jì)主要是利用單片機(jī)AT89S52、數(shù)碼管和發(fā)光二極管組成,整個電路結(jié)構(gòu)比較簡單, </p><p> 具體操作說明如下: 當(dāng)交通燈上電或按鍵復(fù)位后能自動顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。當(dāng)按下啟動按鈕K1
40、并釋放后,數(shù)碼管顯示將會從“60”開始倒計(jì)時,每隔一秒減1,此時東西方向開始一直亮綠燈,南北方向一直亮紅燈,直到顯示為“00”時,數(shù)碼管將會從“03”開始倒計(jì)時,每隔一秒減1,此時東西方向每隔一秒黃燈就閃爍一次,南北方向亮一直紅燈,直到顯示為“00”時,數(shù)碼管將會從“30”開始倒計(jì)時,此時東西方向一直亮紅燈,南北方向一直亮綠燈,直到顯示為“00”時,數(shù)碼管又將從“03”開始倒計(jì)時,此時東西方向一直亮紅燈,南北方向每隔一秒黃燈就閃爍一次;
41、當(dāng)沒有其他鍵按下時,交通燈將這樣一直循環(huán)下去。當(dāng)按下結(jié)束鍵K2并釋放后,數(shù)碼管將顯示“P.”,東西南北方向無燈亮。當(dāng)按下緊急鍵JINJI并釋放后,數(shù)碼管將顯示“10”,并且每隔一秒就減1,東西南北方向全部紅燈亮,當(dāng)沒亮到顯示“00”就有結(jié)束鍵按下時,就退出,執(zhí)行該鍵的鍵功能,當(dāng)顯示到“00”時,就會自動退出中斷繼續(xù)完成主程序。</p><p> 4.2 硬件性能的檢測</p><p>
42、 (1)電路板制作完成后,首先檢查電路元器件的焊接是否正確,對照原理圖一步一步進(jìn)行了檢查。比如檢查單片機(jī)和芯片有沒有接反,電容的正負(fù)極有沒有接反。</p><p> ?。?)除了檢查元器件外還要檢查線路。用萬用表仔細(xì)檢查每條線路是否存在短路和斷路的現(xiàn)象,還有元器件有沒有虛焊,仔細(xì)檢查,逐次排除可能帶來的誤差和影響。</p><p> ?。?)檢查完成后再通電看所有的LED燈及數(shù)碼管顯示是
43、否全亮,如數(shù)碼管顯示不對,則按段控位控一步一步進(jìn)行檢查。比如檢查三極管是否接反,線路是否接通。</p><p><b> 4.3程序調(diào)試</b></p><p> 將編寫好的程序?qū)懭雴纹瑱C(jī)中。數(shù)碼管首先顯示P.也能從60開始并顯示緊急數(shù)字10,但是不能遞減而且二極管也沒達(dá)到理想的點(diǎn)亮,或者有的燈亮度不高。經(jīng)過測試發(fā)現(xiàn)這些燈有的已經(jīng)損壞了,有的焊錫已經(jīng)脫落。能焊接好
44、的燈重新焊接好,不過,數(shù)字還是不能遞減。于是對程序進(jìn)行修改,設(shè)計(jì)一個減一子程序,最后基本達(dá)到設(shè)計(jì)要求。將程序編寫完整后,再將所有的程序?qū)戇M(jìn)單片機(jī),此時就可以看到正確的現(xiàn)象了。</p><p><b> 4.3 誤差分析</b></p><p> 本次課程設(shè)計(jì)的誤差就在于顯示時間,我采用的是調(diào)用中斷延時程序來讓顯示器上數(shù)字共顯示一秒鐘,而進(jìn)入中斷一次的時間并不僅僅
45、只是延時程序所設(shè)定50ms時間,其間CPU還執(zhí)行其它指令,例如說對寄存器的初始化,對21H單元進(jìn)行位操作等等,因?yàn)樗鼈兌际俏⒚爰壍?,而延時程序是毫秒級的,因此在計(jì)算的過程中就可以省略了,每次中斷循環(huán)除初始化外,所用時間為22微秒,而顯示一秒鐘共循環(huán)了20次,因此在顯示器上只需要顯示1秒數(shù)字,事實(shí)上多顯示了440微秒,誤差率=0.44%。</p><p> 4.4 設(shè)計(jì)體會及教學(xué)意見</p>&l
46、t;p> 經(jīng)過一個多星期的時間,終于完成了這次的課程設(shè)計(jì),在這期間,通過自己的不懈努力和老師的指導(dǎo),使這次設(shè)計(jì)終于完滿成功了。</p><p> 我覺得這次課程設(shè)計(jì)的重點(diǎn)是各個方向燈的控制,難點(diǎn)就在于時間的定時,我原本是想用小精靈延時500ms,再通過20次循環(huán)就可以使顯示每個數(shù)在數(shù)碼管上顯示一秒,可是程序編了很多遍,最后還是沒有成功,可能是由于寄存器組的混亂使用導(dǎo)致調(diào)試起來很混亂所以沒有找到解決的方法
47、,所以我采用中斷定時的方法,即進(jìn)入主程序后并不在主程序中進(jìn)行對LED和數(shù)碼管顯示的操作,而是在中斷程序中進(jìn)行操作,比如我只在K0鍵的主程序中不斷地調(diào)用顯示子程序和鍵掃子程序確保數(shù)碼管不會熄滅以及按鍵按下時能被發(fā)覺并利用新開辟的內(nèi)部RAM中的21H單元,利用其1,2,3,4,7位作為標(biāo)志位來進(jìn)入對數(shù)碼管和LED的操作,而在中斷程序中對同一類的中斷和子程序應(yīng)進(jìn)行寄存器組的初始化確保寄存器使用的一致性此外需要注意的就是黃燈的閃爍程序,每隔0.
48、5s將黃燈亮一次然后滅0.5s,從而保證其閃爍。 </p><p> 關(guān)于交通燈的設(shè)計(jì),我認(rèn)真查閱資料,比如說要了解89S52各個芯片的引腳功能,怎樣使用這個可編程芯片并行接口芯片,在本學(xué)期理論學(xué)習(xí)的基礎(chǔ)上,又下了一次苦功夫,算是明白了設(shè)計(jì)一個系統(tǒng)的過程,也讓我體會到要成功的設(shè)計(jì)出某個東西,光靠專業(yè)知識是不夠的,必須要系統(tǒng)的知識,無論在哪個方面都要有個明白的概念,知道哪些是需要的資料。對于這次的實(shí)物,是本學(xué)期初
49、所做的數(shù)碼管系統(tǒng)。</p><p> 同時,本設(shè)計(jì)還有很多不足的地方,比如可以在換車道的同時換位控,或是兩車道同時顯示,一個為60s一個為30s.讓視覺效果更好。</p><p><b> 結(jié)束語</b></p><p> 將設(shè)計(jì)的程序下載到單片機(jī)中,通過測試,基本上完成了任務(wù)書的要求,并相應(yīng)的完成了十字路口交通燈的控制。通過本次課程設(shè)計(jì)
50、,讓我明白除了要求我們做課程設(shè)計(jì),而最主要的是讓我們能把學(xué)習(xí)中的更加廣泛地運(yùn)用到實(shí)際生活中來。我知道無論做什么,細(xì)致、認(rèn)真是必不可少的,這次設(shè)計(jì)讓我深深地感受到做事認(rèn)真的重要性,這樣可以避免走很多彎路。作為一名學(xué)生,我知道我要學(xué)習(xí)的課程還有很多,要提升的空間還有很大。往后一定會更加認(rèn)真的學(xué)習(xí)理論知識,將其合理的運(yùn)用到實(shí)踐中來。這次課程設(shè)計(jì),讓我受益匪淺,我會繼續(xù)努力,爭取下次做得更好。所以,在以后的學(xué)習(xí)中,我們要以把學(xué)習(xí)運(yùn)用到生活中為目
51、標(biāo)。以更好的學(xué)習(xí)來回報(bào)自己的努力!</p><p><b> 致 謝</b></p><p> 經(jīng)過近一個星期的設(shè)計(jì),通過這次課程設(shè)計(jì)學(xué)會了分析問題、處理問題的方法,對單片機(jī)的應(yīng)用有了更深的了解,達(dá)到了理論與實(shí)際相結(jié)合的目的。為以后工作、學(xué)習(xí)都打下了比較堅(jiān)實(shí)的基礎(chǔ)。在本報(bào)告完成之際,首先要向我的指導(dǎo)教師王韌老師致以誠摯的謝意。讓我系統(tǒng)學(xué)習(xí)了有關(guān)單片機(jī)的知識,并能
52、結(jié)合具體應(yīng)用完成交通燈的課程設(shè)計(jì),以足夠的耐心教我們不要?dú)怵H,冷靜思考。老師學(xué)識淵博、治學(xué)嚴(yán)謹(jǐn),待人平易近人,在老師的悉心指導(dǎo)中,我不僅學(xué)到了扎實(shí)的專業(yè)知識,也在怎樣處人處事等方面收益很多;他循循善誘的教導(dǎo)和不拘一格的思路給予了我啟迪,使我受益非淺。同樣我也很感謝其他同學(xué)的幫助和支持,在程序設(shè)計(jì)的過程中他們給予了我很多提示,我們共同解決了很多問題,是他們讓我的這次課程設(shè)計(jì)完成得更為完美。</p><p> 同時
53、,我要感謝我們學(xué)院和我們授課的各位老師,正是由于他們的傳道、授業(yè)、解惑,讓我學(xué)到了專業(yè)知識,并從他們身上學(xué)到了如何求知治學(xué)、如何為人處事。我也要感謝我的母校湖南工學(xué)院,是她提供了良好的學(xué)習(xí)環(huán)境和生活環(huán)境,讓我的大學(xué)生活豐富多姿,為我的人生留下精彩的一筆。</p><p> 在此我僅向老師表示衷心的感謝和深深的敬意!</p><p><b> }8&?
54、;</b></p><p><b> 參考文獻(xiàn)</b></p><p> 李廣弟,朱月秀.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2007.100~154</p><p> Li Guangdi, Zhu Yue-Xiu. Microcontroller-based [M]. Beijing: Beijing Univ
55、ersity of Aeronautics and Astronautics Press, 2007.100 ~ 154</p><p> 張毅坤.單片微型計(jì)算機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1998.125~130 </p><p> ZHANG Yikun. Single Chip Microcomputer Principle and Application [
56、M]. Xi'an: Xidian University Press, 1998.125 ~ 130 </p><p> 李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2004.55~63</p><p> Li Guangfei. Microcontroller examples to guide curriculum design [M]. Beiji
57、ng Beijing University of Aeronautics and Astronautics Press, 2004.55 ~ 63</p><p> 李東生,張勇,許四毛.protel99s電路設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2004.78~110</p><p> Li Dongsheng, Zhang Yong, Xu Simao. Protel99s ci
58、rcuit design and application [M]. Beijing: Electronic Industry Press, 2004.78 ~ 110</p><p> 漲紅潤,馬平安,張亞凡.單片機(jī)原理及應(yīng)用[M].北京:科學(xué)出版社,2002.113~118</p><p> Zhang Hongrun, Ma Pingan, Ya-who. Microcontrol
59、ler Theory and Application [M]. Beijing: Science Press, 2002.113~118</p><p><b> 附 錄</b></p><p> 附錄一 電路原理圖</p><p> 附錄二 PCB圖 </p>
60、;<p><b> 正面</b></p><p><b> 反面</b></p><p> 附錄三 元器件布局圖</p><p> 附錄四 交通燈元器件清單</p><p><b> 附錄五 實(shí)物圖</b></p><p>
61、<b> 附錄六 程序清單</b></p><p><b> 本程序的相關(guān)設(shè)定:</b></p><p> 顯示器的設(shè)定:P2.0——P2.1控制顯示器的個位和十位的位選碼</p><p> P0.0——P0.7控制顯示器的段選碼</p><p> 按鍵的設(shè)定: P1.0——P1.2控
62、制交通燈的開啟準(zhǔn)備,返回準(zhǔn)備,緊急事件狀態(tài)</p><p> /**********************</p><p><b> 名稱:交通燈</b></p><p><b> 作者:羅珍珍</b></p><p> 時間:2012年12月25日</p><p>
63、; 設(shè)計(jì)要求:1.上電顯示P.</p><p> 2.主通道通行60s,副通道通行30s</p><p><b> 3.黃燈閃三秒</b></p><p> 4.緊急事件紅燈全亮10s</p><p> 電路描述:單片機(jī)AT89C52</p><p> ****************
64、*******/</p><p> /***************匯編源程序*******************/</p><p> ORG 0000H</p><p> LJMP MAIN</p><p> ORG 000BH;中斷入口地址</p><p> LJMP TTC0
65、</p><p> ORG 001BH</p><p> LJMP TTC1</p><p> ORG 0030H</p><p> MAIN:MOVSP,#2FH;棧底2FH</p><p> SETB EA</p><p> SETB
66、 ET0 ;開定時器0和1</p><p> SETB ET1</p><p><b> SETBIT0</b></p><p><b> SETBIT1</b></p><p> MOV P3,#0FFH ;初始化</p>&l
67、t;p> MOV TMOD,#11H</p><p> MOV TH0,#3CH</p><p> MOV TL0,#0B0H</p><p> MOV TH1,#3CH</p><p> MOVTL1,#0B0H</p><p><b> CLR TR0
68、</b></p><p><b> CLR TR1</b></p><p> MOV 78H,#10</p><p> MOV 79H,#11</p><p> MOV 7AH,#11</p><p> MOV 7BH,#11</p>
69、<p> MOV 7CH,#11</p><p> MOV 7DH,#11</p><p> MOV 7EH,#11</p><p> MOV 7FH,#11</p><p> PP:LCALL DIR</p><p> START:LCALL KEY<
70、;/p><p> JB 20H.0,K0 ;按下K0,啟動計(jì)時</p><p> JB 20H.2,MAIN ;運(yùn)行過程中,按下K2,則結(jié)束</p><p><b> LJMP PP</b></p><p> K0:SETB TR0
71、</p><p> MOV 21H,#00H</p><p> SETB 21H.1</p><p> MOV 78H,#00H</p><p> MOV 79H,#06H ;計(jì)時60秒</p><p> MOV R1,#20</p>&l
72、t;p> MOV R2,#00H</p><p> KK0:JB 20H.1, LOOPX0 ;按下JINJI鍵,則運(yùn)行緊急程序 </p><p> JB 20H.2, MAIN</p><p> LCALL KEY</p><p> LJMP KH0<
73、/p><p> LOOPX0:CLR 20H.1</p><p> LCALLDELAY</p><p> LCALL JINJI</p><p> KH0:LCALL DIR</p><p> LJMP KK0</p><p> TTC0: PUSH PS
74、W</p><p><b> CLR RS0</b></p><p><b> CLR RS1</b></p><p> MOV TH0,#3CH</p><p> MOV TL0,#0B0H</p><p> DJNZ R1,KL
75、0 ;50ms,循環(huán)20次,即1s</p><p> MOV R1,#20</p><p><b> INC R2</b></p><p> MOV R0,#78H</p><p> LCALL DADD1</p><p> KL0:
76、 JB 21H.1, ZHUT1</p><p> JB 21H.2, ZHUT2</p><p> JB 21H.3, ZHUT3</p><p> JB 21H.4, ZHUT4</p><p> ZHUT1:CJNE R2,#60,LOOP11 ;不等,則甲綠乙紅<
77、;/p><p> MOV R2,#00H</p><p> CLR 21H.1</p><p> SETB 21H.2 ;相等,則亮黃燈</p><p> MOV 78H,#03H</p><p> MOV 79H,#00H</p>&l
78、t;p> LJMP ZHUT2</p><p> LOOP11: MOV P3,#0DEH ;甲通道亮綠燈,乙通道亮紅燈</p><p> LJMP LAST10</p><p> ZHUT2:CJNE R2,#03H,LOOP12</p><p> MOV R2,
79、#00H </p><p> CLR 21H.2</p><p> SETB 21H.3</p><p> MOV 78H,#00H</p><p> MOV 79H,#03H</p><p> LJMP ZHUT3</p><p> LOOP12: CJN
80、E R1,#10,FH1</p><p> MOV P3,#0DDH ;黃燈閃爍</p><p> LJMP LAST10</p><p> FH1:MOV P3,#0DFH</p><p> LJMP LAST10</p><p> ZHUT3
81、:CJNE R2,#30,LOOP13</p><p> MOV R2,#00H</p><p> CLR 21H.3</p><p> SETB 21H.4</p><p> MOV 78H,#03H</p><p> MOV 79H,#00H</p>
82、<p> LJMP ZHUT4</p><p> LOOP13: MOV P3,#0F3H ; 甲通道亮紅燈,乙通道亮綠燈</p><p> LJMP LAST10</p><p> ZHUT4:CJNE R2,#03H,LOOP14</p><p> MOV R2,
83、#00H</p><p> CLR 21H.4</p><p> SETB 21H.1</p><p> MOV 78H,#00H</p><p> MOV 79H,#06H</p><p> LJMP ZHUT1</p><p> LOOP14:CJN
84、E R1,#10,FH2 ;黃燈閃爍</p><p> MOV P3,#0FBH</p><p> LJMP LAST10</p><p> FH2:MOV P3,#0EBH</p><p> LAST10:POP PSW</p><p><b&
85、gt; RETI</b></p><p> /*********************************</p><p><b> 函數(shù)名:JINJI</b></p><p> 函數(shù)功能:處理緊急事件,均亮紅燈10s</p><p><b> 函數(shù)入口:無</b><
86、;/p><p><b> 函數(shù)出口:無</b></p><p> **********************************/</p><p> JINJI:PUSH TH0 </p><p> PUSH TL0</p><p> PUSH PSW</p&
87、gt;<p><b> CLR RS0</b></p><p> SETB RS1</p><p> MOV R5,78H ;送R5保存</p><p> MOV R6,79H</p><p> MOV TH1,#3CH&
88、lt;/p><p> MOV TL1,#0B0H</p><p> MOV R1,#20</p><p> MOV R2,#00H</p><p> MOV 78H,#00</p><p> MOV 79H,#01H </p><p><b&g
89、t; CLR TR0</b></p><p> SETB TR1</p><p> GHK:LCALL DIR</p><p> JB 21H.7,EXIT2</p><p> LCALL KEY</p><p> JB 20H.2,KX</p>
90、<p><b> LJMP KY</b></p><p> KX:LJMP MAIN</p><p> KY:CLR 21H.7</p><p> LJMP GHK</p><p> EXIT2:CLR TR1</p><p> MOV 78
91、H,R5 ;送R5恢復(fù)</p><p> MOV 79H,R6</p><p> SETB TR0</p><p><b> POP PSW</b></p><p><b> POP TL0</b></p>&
92、lt;p><b> POP TH0</b></p><p><b> RET</b></p><p> TTC1: PUSH PSW</p><p><b> CLR RS0</b></p><p> SETB RS1</p>
93、<p> CLR 21H.7</p><p> MOV TH1,#3CH</p><p> MOV TL1,#0B0H </p><p> DJNZ R1,LOP1</p><p> MOV R1,#20</p><p><b> INC R2<
94、;/b></p><p> MOVR0,#78H</p><p> LCALL DADD1</p><p> CJNE R2,#10,LOP1</p><p> SETB 21H.7</p><p> LOP1: MOV P3,#0DBH</p>&l
95、t;p><b> POP PSW</b></p><p><b> RETI</b></p><p> /*****************************</p><p><b> 函數(shù)名:DIR</b></p><p> 函數(shù)功能:數(shù)碼管顯示&l
96、t;/p><p><b> 函數(shù)入口:無</b></p><p><b> 函數(shù)出口;無</b></p><p> *******************************/</p><p> DIR:PUSH DPH </p><p>
97、 PUSH DPL</p><p> PUSH ACC</p><p> PUSH PSW</p><p> SETB RS0</p><p> CLR RS1</p><p> MOV R0,#78H ;建立顯示緩沖區(qū)首址</p>&
98、lt;p> MOV R5,#00H ;從右邊開始顯示位控碼初值</p><p> MOV R4,#02H </p><p> LL:MOV DPTR,#WK</p><p> MOVA,R5</p><p> MOVC A,@A+DPTR&
99、lt;/p><p> MOV P2,A</p><p> MOV DPTR,#TABLE</p><p> MOV A,@R0</p><p> MOVC A,@A+DPTR</p><p> MOV P0,A </p>&l
100、t;p> LCALL DELAY </p><p><b> INC R0 </b></p><p> INCR5 ;轉(zhuǎn)向下一緩沖單元 </p><p> DJNZR4,LL </p>
101、;<p> LD1:POPPSW</p><p> POP ACC ;恢復(fù)現(xiàn)場</p><p><b> POP DPL</b></p><p><b> POP DPH</b></p><p><b>
102、RET</b></p><p> /*******************************</p><p><b> 函數(shù)名:KEY</b></p><p><b> 函數(shù)功能:鍵掃描</b></p><p><b> 函數(shù)入口:無</b></
103、p><p><b> 函數(shù)出口:無</b></p><p> *********************************/</p><p> KEY: LCALL KEYCHULI ;鍵掃程序</p><p> JZ EXIT</p><p><
104、;b> CLR TR0</b></p><p> LCALL DIR</p><p> LCALL KEYCHULI</p><p> JZ EXIT</p><p> MOV B,20H</p><p> KEYSF:LCALL KEYCHULI<
105、/p><p> JZ KEY1</p><p> LCALL DIR</p><p> LJMP KEYSF</p><p> KEY1:MOV 20H,B</p><p> EXIT:RET </p><p> KEYCHULI:
106、MOV P1,#0FFH</p><p> MOV A,P1</p><p><b> CPL A</b></p><p> ANL A,#0FH</p><p> MOV 20H,A</p><p><b> RET </b&g
107、t;</p><p> DELAY: MOV R7,#01H</p><p> MOV R6,#0F0H</p><p> KF0: DJNZ R6,KF0</p><p> MOV R6,#0FFH</p><p> DJNZ R7,KF0</p>
108、<p><b> RET</b></p><p> /***************************</p><p><b> 函數(shù)名:DADD1</b></p><p> 函數(shù)功能:實(shí)現(xiàn)減一功能</p><p><b> 函數(shù)入口:無</b>&l
109、t;/p><p><b> 函數(shù)出口:無</b></p><p> ****************************/</p><p> DADD1:PUSH ACC</p><p> MOV A,@R0</p><p><b> DEC A</b&
110、gt;</p><p> CJNE A,#0FFH,LGH0</p><p> LJMP LGH1</p><p> LGH0:MOV @R0,A</p><p> LJMP LAST0</p><p> LGH1: MOV A,#09H</p><p
111、> MOV @R0,A</p><p><b> INC R0</b></p><p> MOV A,@R0</p><p><b> DEC A</b></p><p> MOV @R0,A</p><p> LAST0:PO
112、P ACC</p><p><b> RET</b></p><p> TABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H </p><p> DB 0F8H,80H,90H,0CH, 0FFH </p><p> WK:DB0FEH,0FDH <
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈控制設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- 交通燈單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈顯示系統(tǒng)
- 交通燈單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的交通燈顯示系統(tǒng)
- 單片機(jī)交通燈課程設(shè)計(jì)--基于單片機(jī)的交通燈系統(tǒng)的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于51單片機(jī)的交通燈
- 單片機(jī)交通燈課程設(shè)計(jì) (2)
- 單片機(jī)交通燈課程設(shè)計(jì) (2)
- 單片機(jī)課程設(shè)計(jì)--交通燈
- 單片機(jī)課程設(shè)計(jì)(交通燈)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---交通燈
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-交通燈
- 單片機(jī)課程設(shè)計(jì)報(bào)告--基于單片機(jī)的數(shù)字交通燈
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
評論
0/150
提交評論