版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目 錄</b></p><p> 設(shè)計(jì)要求及總體方案介紹 ………………………………………………………2</p><p> 設(shè)計(jì)課題任務(wù)………………………………………………………………2</p><p> 功能要求說(shuō)明………………………………………………………………2</p><p>
2、 設(shè)計(jì)總體方案介紹及工作原理說(shuō)明………………………………………3</p><p> 硬件系統(tǒng)的設(shè)計(jì) …………………………………………………………………5</p><p> 硬件系統(tǒng)各模塊功能介紹…………………………………………………5</p><p> 電路原理圖 ………………………………………………………………8</p><p>
3、 元器件布局圖 ……………………………………………………………8</p><p> 元器件清單 ………………………………………………………………8</p><p> 軟件系統(tǒng)的設(shè)計(jì)…………………………………………………………………9</p><p> 單片機(jī)的使用資源情況 …………………………………………………9</p><p> 軟
4、件模塊功能介紹 ………………………………………………………12</p><p> 程序流程圖 ………………………………………………………………12</p><p> 程序清單 …………………………………………………………………14</p><p> 設(shè)計(jì)總結(jié)…………………………………………………………………………15</p><p>
5、 使用說(shuō)明 …………………………………………………………………15</p><p> 仿真結(jié)果 …………………………………………………………………15</p><p> 誤差分析 …………………………………………………………………17</p><p> 設(shè)計(jì)體會(huì) …………………………………………………………………18</p><p>
6、 參考文獻(xiàn) ……………………………………………………………………………17</p><p> 附 錄 ………………………………………………………………………………18</p><p> 附錄一 電路原理圖……………………………………………………………18</p><p> 附錄二 元器件布局圖…………………………………………………………19</p&
7、gt;<p> 附錄三 元器件清單……………………………………………………………20</p><p> 附錄四 程序清單………………………………………………………………21</p><p> 1 設(shè)計(jì)要求及總體方案介紹</p><p> 1.1 設(shè)計(jì)課題任務(wù)</p><p> 設(shè)計(jì)一個(gè)具有特定功能的十字路口交通
8、燈。該交通燈上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”, 進(jìn)入準(zhǔn)備工作狀態(tài)。按開(kāi)始鍵則開(kāi)始工作,按結(jié)束鍵則返回“P.”狀態(tài)。要求甲車(chē)道和乙車(chē)道兩條交叉道路上的車(chē)輛交替運(yùn)行,甲車(chē)道為主車(chē)道,每次通車(chē)時(shí)間為60秒,乙車(chē)道為次車(chē)道,每次通車(chē)時(shí)間為30秒,要求黃燈亮5秒,并且1秒閃爍一次。有應(yīng)急車(chē)輛出現(xiàn)時(shí),紅燈全亮,應(yīng)急車(chē)輛通車(chē)時(shí)間10秒,同時(shí)禁止其他車(chē)輛通過(guò)。</p><p> 1.2 功能要求說(shuō)明</p&
9、gt;<p> 本次課程設(shè)計(jì)在硬件方面的接法如下:P2口接二極管,P2.0、P2.1、P2.2口線分別來(lái)控制東西方向的綠燈、黃燈和紅燈;P2.3、P2.4、P2.5口線分別控制南北方向的紅燈、黃燈和綠燈。P0口作為數(shù)碼管的位控(這里只用到了P0.0、和P0.1兩根口線),P1口作為數(shù)碼管的段控,P3口作為輸入部分(這里用到了P3.0、P3.1、P3.2口線),控制數(shù)碼管的顯示情況和二極管的亮滅情況。</p>
10、<p> 當(dāng)交通燈上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。</p><p> 當(dāng)按下啟動(dòng)按鈕K1并釋放后,數(shù)碼管顯示將會(huì)從“55”開(kāi)始倒計(jì)時(shí),每隔一秒減1,此時(shí)南北方向開(kāi)始一直亮綠燈,東西方向一直亮紅燈,直到顯示為“00”時(shí),數(shù)碼管將會(huì)從“05”開(kāi)始倒計(jì)時(shí),每隔一秒減1,此時(shí)南北方向每隔一秒黃燈就閃爍一次,東西方向亮一直紅燈,直到顯示為“00”時(shí),數(shù)碼管將會(huì)從“25”開(kāi)始倒
11、計(jì)時(shí),此時(shí)南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為“00”時(shí),數(shù)碼管又將從“05”開(kāi)始倒計(jì)時(shí),此時(shí)南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當(dāng)沒(méi)有其他鍵按下時(shí),交通燈將這樣一直循環(huán)下去。</p><p> 當(dāng)按下結(jié)束鍵K2并釋放后,數(shù)碼管將顯示“P.”,東西南北方向無(wú)燈亮。</p><p> 當(dāng)按下緊急鍵K3并釋放后,數(shù)碼管將顯示“09”,并且每隔一秒就減1,<
12、;/p><p> 東西南北方向全部紅燈亮。</p><p> 單片機(jī)采用AT89S52,fosc=12MHZ。其按鍵功能如表1.1所示。</p><p> 表1.1 按鍵功能</p><p> 1.3 設(shè)計(jì)總體方案介紹及工作原理說(shuō)明</p><p> 1.3.1 總體方案介紹</p><
13、p> 該交通燈電路由單片機(jī)AT98S52、鍵盤(pán)接口電路、顯示接口電路、發(fā)光二極管控制電路、時(shí)鐘電路和復(fù)位電路構(gòu)成,原理框圖如圖1.1所示。</p><p> 圖1.1 原理框圖</p><p> (1) 電源提供方面</p><p> 采用獨(dú)立的穩(wěn)壓電源,此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供使用。</p><p>&l
14、t;b> ?。?) 顯示方面</b></p><p> 完全采用數(shù)碼管顯示,用來(lái)顯示有限符號(hào)和數(shù)碼字符。</p><p> ?。?) 鍵盤(pán)輸入方面</p><p> 直接在I/O口線上接按鍵開(kāi)關(guān),因?yàn)樵O(shè)計(jì)時(shí)精簡(jiǎn)和優(yōu)化了電路,所以剩余的口資源還比較多。我們共用到了4個(gè)按鍵,分別為:K0、K1、K2、K3。</p><p>
15、 1.3.2 工作原理</p><p> 首先時(shí)鐘電路產(chǎn)生單片機(jī)工作時(shí)所需要的時(shí)鐘信號(hào),這是單片機(jī)能夠正常工作的前提,而單片機(jī)有無(wú)定時(shí)的基礎(chǔ)以及定多長(zhǎng)的時(shí)間,這些還需要我們?nèi)藶榈拇_定。我是采用10ms延時(shí)程序來(lái)反復(fù)調(diào)用來(lái)定時(shí),在我們的硬件電路中,按鍵的鍵功能程序在中斷服務(wù)中,在正常情況下會(huì)不斷運(yùn)行主程序,當(dāng)有鍵按下時(shí),CPU去轉(zhuǎn)去執(zhí)行中斷程序,而中斷程序可以執(zhí)行三種鍵功能:第一個(gè)是十秒倒計(jì)時(shí)緊急紅燈亮;第二
16、個(gè)是結(jié)束倒計(jì)時(shí),顯示P.;第三個(gè)是重新開(kāi)始倒計(jì)時(shí)。其原理是INTO=P3.4&P3.6&P3.7,當(dāng)有鍵按下時(shí),外部中斷0口線就會(huì)變成低電平,通過(guò)鍵掃程序來(lái)具體判斷到底是哪個(gè)鍵按下,CPU才會(huì)去執(zhí)行中斷里面的某個(gè)鍵功能。12個(gè)發(fā)光二極管是由P0口控制的,P0口與二極管之間串接一個(gè)限流電阻使二極管不易燒壞,采用送低電平有效。</p><p> 2 硬件系統(tǒng)的設(shè)計(jì)</p><p
17、> 2.1 硬件系統(tǒng)各模塊功能介紹</p><p> 2.1.1 顯示及顯示驅(qū)動(dòng)電路</p><p> 在本次課程設(shè)計(jì)中,為了使硬件電路更簡(jiǎn)單化,為了節(jié)省口線,我們采用的是二位一體共陽(yáng)數(shù)碼管,顯示原理跟單個(gè)LED的顯示原理完全相同, 由于七段數(shù)碼顯示器在顯示字形代碼時(shí)需要有足夠的功率,所以需在顯示器上加顯示驅(qū)動(dòng),本設(shè)計(jì)的顯示驅(qū)動(dòng)是采用74LS245芯片作為驅(qū)動(dòng),并且,無(wú)論是
18、位控線上還是段控線上都串接一個(gè)電阻,以提高其輸出功率,在這里采用220歐母電阻。顯示及驅(qū)動(dòng)電路圖如圖2。</p><p> 圖2.1 顯示及驅(qū)動(dòng)電路</p><p> 2.1.2 指示燈控制電路 </p><p> 本次課程設(shè)計(jì)采用P2口控制二極管的發(fā)光情況,口線送低電平有效,具體設(shè)計(jì)如下:P0.2控制東西方向的綠燈,P0.3口控制東西方向的黃燈,P0.4
19、控制東西方向的紅燈,P0.5控制南北方向的紅燈,P0.6控制南北方向的黃燈,P0.7控制南北方向的綠燈。如圖2.2所示。 </p><p> 圖2.2 指示燈控制電路</p><p> 2.1.3 鍵盤(pán)控制電路</p><p> 鍵盤(pán)是最常用的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對(duì)話(huà)的紐帶。按其結(jié)構(gòu)形式可分為非編碼鍵盤(pán)和編碼鍵盤(pán)。</p><p>
20、; 編碼鍵盤(pán)采用硬件方法產(chǎn)生鍵碼。每按下一個(gè)鍵,鍵盤(pán)能自動(dòng)生成鍵盤(pán)代碼,鍵數(shù)較多,且具有去抖動(dòng)功能。這種鍵盤(pán)使用方便,但硬件較復(fù)雜。非編碼鍵盤(pán)僅提供按鍵開(kāi)關(guān)工作狀態(tài),其鍵碼由軟件確定,這種鍵盤(pán)鍵數(shù)較少,硬件簡(jiǎn)單,廣泛應(yīng)用于各種單片機(jī)應(yīng)用系統(tǒng),在單片機(jī)控制電路中,可把單片機(jī)使用的鍵盤(pán)分為獨(dú)立式和矩陣式兩種。獨(dú)立式實(shí)際上就是一組獨(dú)立的按鍵,這些按鍵可直接與單片機(jī)的I/O口連接,即每個(gè)按鍵獨(dú)占一條口線,這種接法簡(jiǎn)單。矩陣式鍵盤(pán)也稱(chēng)行列式鍵盤(pán)
21、,因?yàn)殒I的數(shù)目較多,所以鍵按行列組成矩陣。本設(shè)計(jì)中鍵盤(pán)數(shù)目較少,且為安裝方便,因此在本設(shè)計(jì)中采用獨(dú)立式接法。如圖2.3所示。</p><p> 圖2.3 鍵盤(pán)控制電路</p><p> 按從一個(gè)鍵到鍵的功能被執(zhí)行主要應(yīng)包括兩項(xiàng)工作:一是鍵的識(shí)別,即在鍵盤(pán)中找出被按的是哪個(gè)鍵,另一項(xiàng)是鍵功能的實(shí)現(xiàn)。第一項(xiàng)工作是使用接口電路實(shí)現(xiàn)的,而第二項(xiàng)工作則是通過(guò)執(zhí)行中斷服務(wù)程序來(lái)完成。具體來(lái)說(shuō),鍵
22、盤(pán)接口應(yīng)完成以下操作功能:</p><p> (1) 鍵盤(pán)掃描,以判定是否有鍵被按下(稱(chēng)之為“閉合鍵”)。</p><p> (2) 鍵識(shí)別,以確定閉合鍵的行列位置。</p><p> (3) 產(chǎn)生閉合鍵的鍵碼。</p><p> (4) 排除多鍵、串鍵(復(fù)鍵)及去抖動(dòng)。</p><p> 以上這些內(nèi)容通常是
23、以軟硬件結(jié)合的方式來(lái)完成的,即在軟件的配合下由接口電路來(lái)完成。但具體哪些由硬件哪些由軟件完成,要看接口電路的情況??偟脑瓌t是,硬件復(fù)雜軟件就簡(jiǎn)單,硬件簡(jiǎn)單軟件就得復(fù)雜一些。</p><p> 2.1.4 時(shí)鐘電路</p><p> 時(shí)鐘電路用來(lái)產(chǎn)生單片機(jī)工作所需要的時(shí)鐘信號(hào),單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為了保證同步工作方式的實(shí)現(xiàn),電路應(yīng)在唯一的時(shí)鐘信號(hào)控制下嚴(yán)格地按時(shí)序進(jìn)行
24、工作。通過(guò)在芯片的外部XTAL1和XTAL2兩個(gè)引腳跨接晶體振蕩器和微調(diào)電容,形成反饋電路,就構(gòu)成了一個(gè)穩(wěn)定的自激振蕩電路。時(shí)鐘電路為單片機(jī)產(chǎn)生時(shí)鐘脈沖序列,本設(shè)計(jì)中采用的晶振頻率為12MHz,電容為33pF。 </p><p> 2.1.5 復(fù)位電路</p><p> 復(fù)位電路用于產(chǎn)生復(fù)位信號(hào),通過(guò)RST引腳送入單片機(jī),復(fù)位是單片機(jī)的初始操作,其主要功能是:為一些專(zhuān)用寄
25、存器設(shè)置初始狀態(tài)、程序狀態(tài)字PSW清0、程序計(jì)數(shù)器PC被賦值為0000H等,除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需安裝復(fù)位鍵以重新啟動(dòng)。RST引腳是復(fù)位信號(hào)的輸入端,復(fù)位信號(hào)是高電平有效,完成復(fù)位操作共需要24個(gè)狀態(tài)周期,復(fù)位結(jié)束后,單片機(jī)從地址0000H單元開(kāi)始執(zhí)行程序,SP為07H,其它寄存器大多數(shù)被置為00H,本設(shè)計(jì)使用頻率為12MHz的晶振,所以復(fù)位信號(hào)持續(xù)時(shí)間應(yīng)超過(guò)2μ
26、s才能完成復(fù)位操作。復(fù)位電路分為上電復(fù)位、按鍵復(fù)位、按鍵脈沖復(fù)位三種,本次課程設(shè)計(jì)采用的是按鍵復(fù)位。</p><p> 2.2 電路原理圖</p><p> 電路原理圖見(jiàn)附錄一所示。</p><p> 2.3 元器件布局圖</p><p> 元器件布局圖見(jiàn)附錄二所示。</p><p> 2.4 元器件清
27、單</p><p> 元器件清單見(jiàn)附錄三所示。</p><p> 3 軟件系統(tǒng)的設(shè)計(jì)</p><p> 3.1 單片機(jī)的使用資源情況</p><p> 3.1.1 硬件資源使用說(shuō)明</p><p> P0口為二極管的控制端</p><p> P1口用作地址/數(shù)據(jù)總線</p
28、><p> P2口用作地址/數(shù)據(jù)總線</p><p> P3.4、P3.6、P3.7口線作為鍵盤(pán)輸入端</p><p> 采用了INTO外部中斷</p><p> 既在AT89S52的P0口用來(lái)接十二個(gè)發(fā)光二極管的陰極,控制其亮與滅,P1口和P2口外接由2個(gè)LED數(shù)碼管(LED1、LED0)構(gòu)成的顯示器,用P2口作LED的段碼輸出口(P2
29、.0~P2.7對(duì)應(yīng)于LED的a~dp),P1口作LED的位控輸出線(P1.1、P1.0分別對(duì)應(yīng)于LED1、LED0),其中在P1的串行口外接2個(gè)三極管作為顯示驅(qū)動(dòng),顯示為2個(gè)數(shù)碼管(LED0~LED1)進(jìn)行動(dòng)態(tài)顯示。P3口外接三個(gè)個(gè)按鍵K1、K2、K3(分別對(duì)應(yīng)于P3.4、P3.7、P3.6口)用于調(diào)整顯示接口電路。 </p><p> 3.1.2 交通燈的分配表 </p><p&g
30、t; 交通燈的口線分配如表3.1所示,“1”表示送高電平,“0”表示送低電平。</p><p> 表3.1 交通燈分配表</p><p> 3.2 軟件模塊功能介紹</p><p> 主程序模塊的主要任務(wù)是程序的初始化顯示“P.P.”,當(dāng)沒(méi)任何鍵按下時(shí),顯示模塊將一直不變,交通燈全部是熄滅的,當(dāng)K0鍵按下并松開(kāi)后開(kāi)始倒計(jì)時(shí),</p><
31、;p> 其中在時(shí)間顯示的過(guò)程中判斷是否有K0、K1和K2鍵按下,當(dāng)再次按下K0時(shí),顯示將重新開(kāi)始倒計(jì)時(shí),如果是K1按下,將顯示“P.P.”,并且發(fā)光二極管全部熄滅,如果是K2按下,數(shù)碼管將開(kāi)始十秒倒計(jì)時(shí),并且東西南北全部亮起紅燈。</p><p> 顯示模塊包括送緩沖區(qū)模塊,BCD碼轉(zhuǎn)換和送顯示等,通過(guò)這些模塊完成了顯示的功能,并能按照我們所熟悉的時(shí)鐘時(shí)間進(jìn)行顯示。</p><p&g
32、t; 3.3 程序流程圖</p><p> 主程序的流程圖如圖3.1所示,按鍵判斷程序流程圖如圖3.2所示</p><p> 圖3.1 主程序流程圖</p><p> 圖3.2 判斷按鍵程序流程圖</p><p><b> 3.4 程序清單</b></p><p> 程序清單詳見(jiàn)
33、附錄五 </p><p><b> 4 設(shè)計(jì)總結(jié)</b></p><p><b> 4.1 使用說(shuō)明</b></p><p> 本實(shí)驗(yàn)主要是利用單片機(jī)AT89S52、數(shù)碼管和發(fā)光二極管組成,整個(gè)電路結(jié)構(gòu)比較簡(jiǎn)單,它能實(shí)現(xiàn)以下幾個(gè)功能:</p><p><b> 時(shí)間的顯示。&l
34、t;/b></p><p> 紅黃綠燈的發(fā)光與熄滅。</p><p> 具體操作說(shuō)明如下: 當(dāng)交通燈上電或按鍵復(fù)位后能自動(dòng)顯示系統(tǒng)提示符“P.”,進(jìn)入準(zhǔn)備工作狀態(tài)。當(dāng)按下啟動(dòng)按鈕K1并釋放后,數(shù)碼管顯示將會(huì)從“55”開(kāi)始倒計(jì)時(shí),每隔一秒減1,此時(shí)南北方向開(kāi)始一直亮綠燈,東西方向一直亮紅燈,直到顯示為“00”時(shí),數(shù)碼管將會(huì)從“05”開(kāi)始倒計(jì)時(shí),每隔一秒減1,此時(shí)南北方向沒(méi)隔一秒黃燈
35、就閃爍一次,東西方向亮一直紅燈,直到顯示為“00”時(shí),數(shù)碼管將會(huì)從“25”開(kāi)始倒計(jì)時(shí),此時(shí)南北方向一直亮紅燈,東西方向一直亮綠燈,直到顯示為“00”時(shí),數(shù)碼管又將從“05”開(kāi)始倒計(jì)時(shí),此時(shí)南北方向一直亮紅燈,東西方向每隔一秒黃燈就閃爍一次;當(dāng)沒(méi)有其他鍵按下時(shí),交通燈將這樣一直循環(huán)下去。當(dāng)按下結(jié)束鍵K2并釋放后,數(shù)碼管將顯示“P.”,東西南北方向無(wú)燈亮,當(dāng)有其它鍵按下時(shí),就退出,去執(zhí)行該鍵的鍵功能。當(dāng)按下緊急鍵K3并釋放后,數(shù)碼管將顯示“
36、10”,并且每隔一秒就減1,東西南北方向全部紅燈亮,當(dāng)沒(méi)亮到顯示“00”就有其它鍵按下時(shí),就退出,執(zhí)行該鍵的鍵功能,當(dāng)顯示到“00”時(shí),就會(huì)自動(dòng)退出中斷繼續(xù)完成主程序。</p><p><b> 4.2 仿真結(jié)果</b></p><p> 當(dāng)交通燈上電復(fù)位后,數(shù)碼管顯示“P.”,仿真結(jié)果如圖4.1所示;當(dāng)按下開(kāi)始鍵K1后,南北方向就開(kāi)始亮綠燈,東西方向開(kāi)始亮紅燈
37、,顯示器并開(kāi)始從60s倒計(jì)時(shí),仿真結(jié)果如圖4.2所示;當(dāng)按下緊急鍵K3后,南北方向和東西方向均亮紅燈,顯示器并開(kāi)始從10s倒計(jì)時(shí),其仿真結(jié)果如圖4.3所示;當(dāng)按下結(jié)束鍵K2后,顯示器重新顯示“P.”,南北方向和東西方向的燈全部熄滅,其仿真結(jié)果如圖4.4所示。</p><p> 圖4.1 上電顯示</p><p> 圖4.2 按下開(kāi)始鍵后的顯示</p><p>
38、; 圖4.3 按下緊急鍵后的顯示</p><p> 圖4.4 按下結(jié)束鍵后的顯示</p><p><b> 4.3 誤差分析</b></p><p> 本次課程設(shè)計(jì)的誤差就在于顯示時(shí)間,我采用的是調(diào)用延時(shí)程序來(lái)讓顯示器上數(shù)字共顯示一秒鐘,而循環(huán)一次的時(shí)間并不僅僅只是2次調(diào)用延時(shí)程序的時(shí)間,其間CPU還執(zhí)行其它指令,例如說(shuō)將緩存區(qū)的
39、內(nèi)容送給累加器A、查表指令、將段控碼送給P2口等等,因?yàn)樗鼈兌际俏⒚爰?jí)的,而延時(shí)程序是毫秒級(jí)的,因此在計(jì)算的過(guò)程中就可以省略了,每次循環(huán)除兩次調(diào)用延時(shí)程序外,所用時(shí)間為22微秒,而顯示一秒鐘共循環(huán)了50次,因此在顯示器上只需要顯示1秒數(shù)字,事實(shí)上多顯示了1100微秒,誤差率=1.1%。</p><p><b> 4.4 設(shè)計(jì)體會(huì)</b></p><p> 我們經(jīng)
40、過(guò)一個(gè)多星期的時(shí)間,終于完成了這次的課程設(shè)計(jì),在這期間,通過(guò)同組成員的努力配合以及其他同學(xué)們的幫助,并提出了許多寶貴的意見(jiàn),使這次設(shè)計(jì)終于完滿(mǎn)成功了。</p><p> 我覺(jué)得這次課程設(shè)計(jì)的難點(diǎn)就在于時(shí)間的定時(shí),我原本是想用計(jì)數(shù)/定時(shí)器來(lái)定時(shí)100ms,再通過(guò)幾次循環(huán)就可以使顯示每個(gè)數(shù)在數(shù)碼管上顯示一秒,可是程序編了很多遍,最后還是沒(méi)有成功,所以我采用延時(shí)的方法,讓數(shù)碼管上的數(shù)字顯示一秒再遞減,我延時(shí)的方法如下
41、:先送個(gè)位上的數(shù)到顯示器,然后調(diào)用延時(shí)程序(用的是10ms的延時(shí)),再送上十位上的數(shù)到顯示器,然后再調(diào)用這個(gè)延時(shí)程序,因?yàn)檫@兩個(gè)數(shù)一共要顯示1秒鐘時(shí)間,而我送上去只花了20ms,所以我用了一個(gè)循環(huán)顯示程序,讓它循環(huán)顯示50次即可。這種方法沒(méi)有采用定時(shí)器精確,不能用在較正式的場(chǎng)合。</p><p> 關(guān)于交通燈的設(shè)計(jì),我認(rèn)真查閱資料,比如說(shuō)要了解89S52各個(gè)芯片的引腳功能,怎樣使用這個(gè)可編程芯片并行接口芯片,在
42、上學(xué)期理論學(xué)習(xí)的基礎(chǔ)上,又下了一次苦功夫,算是明白了設(shè)計(jì)一個(gè)系統(tǒng)的過(guò)程,也讓我體會(huì)到要成功的設(shè)計(jì)出某個(gè)東西,光靠專(zhuān)業(yè)知識(shí)是不夠的,必須要系統(tǒng)的知識(shí),無(wú)論在哪個(gè)方面都要有個(gè)明白的概念,知道哪些是需要的資料。對(duì)于這次的實(shí)物,我們采用的單面板制作,但是我們是做了兩次才成功的,第一次的問(wèn)題主要是線設(shè)置的比較細(xì),容易斷掉,排列的比較緊,給人的感覺(jué)就是不美觀,當(dāng)我第二次再畫(huà)PCB時(shí),我就特意注意了這些細(xì)節(jié),重新排了一下版,調(diào)整了元器件之間的距離,并
43、加大了線的寬度,加大了焊孔的內(nèi)外直徑。</p><p> 雖然過(guò)程是辛苦的,但在這一個(gè)多星期的時(shí)間里我也學(xué)到了很多。并讓我對(duì)單片機(jī)產(chǎn)生了更大的興趣。</p><p><b> 參考文獻(xiàn)</b></p><p> 李廣弟,朱月秀.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2007.100~154</p><p>
44、; Li Guangdi, Zhu Yue-Xiu. Microcontroller-based [M]. Beijing: Beijing University of Aeronautics and Astronautics Press, 2007.100 ~ 154</p><p> 張毅坤.單片微型計(jì)算機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1998.125~130 </p>&
45、lt;p> ZHANG Yikun. Single Chip Microcomputer Principle and Application [M]. Xi'an: Xidian University Press, 1998.125 ~ 130 </p><p> 李光飛.單片機(jī)課程設(shè)計(jì)實(shí)例指導(dǎo)[M].北京:北京航空航天大學(xué)出版社,2004.55~63</p><p>
46、 Li Guangfei. Microcontroller examples to guide curriculum design [M]. Beijing Beijing University of Aeronautics and Astronautics Press, 2004.55 ~ 63</p><p> 謝自美.電子線路·設(shè)計(jì)·實(shí)驗(yàn)·測(cè)試[M].武漢:華中大學(xué)出版社,2
47、006.242~247</p><p> Xie Zimei. Electronic circuit? design ? Experimental ? Test [M]. Wuhan: Huazhong University Press, 2006.242 ~ 247</p><p> 李東生,張勇,許四毛.protel99s電路設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2004.78
48、~110</p><p> Li Dongsheng, Zhang Yong, Xu Simao. Protel99s circuit design and application [M]. Beijing: Electronic Industry Press, 2004.78 ~ 110</p><p> 漲紅潤(rùn),馬平安,張亞凡.單片機(jī)原理及應(yīng)用[M].北京:科學(xué)出版社,2002.&
49、lt;/p><p><b> 113~118</b></p><p> Zhang Hongrun, Ma Pingan, Ya-who. Microcontroller Theory and Application [M]. Beijing: Science Press, 2002.113~118</p><p><b> 附
50、錄</b></p><p> 附錄一 電路原理圖</p><p> 附錄二 元器件布局圖</p><p><b> 附錄五 程序清單</b></p><p><b> 本程序的相關(guān)設(shè)定:</b></p><p> 顯示器的設(shè)定:P0.0——P0.1
51、控制顯示器的個(gè)位和十位的位選碼</p><p> P1.0——P1.7控制顯示器的段選碼</p><p> 按鍵的設(shè)定: P3.0——P3.2控制交通燈的開(kāi)啟準(zhǔn)備,返回準(zhǔn)備,緊急事件狀態(tài)</p><p> A_BIT EQU 60H ;數(shù)碼管個(gè)位數(shù)存放內(nèi)存位置 </p><p> B_BIT EQU 61H ;數(shù)碼管十位數(shù)存放內(nèi)存位置
52、 </p><p> TEMP EQU 62H ;計(jì)數(shù)器數(shù)值存放內(nèi)存位置 </p><p> ORG 0000H</p><p> LJMP MAIN</p><p> MAIN: MOV 79H, #11H ;程序開(kāi)始</p><p> MOV 7AH, #10H;準(zhǔn)備
53、狀態(tài)</p><p> MOV P2, #00H;交通燈全部滅</p><p> YY: LCALL DIS;調(diào)用準(zhǔn)備狀態(tài)顯示</p><p><b> LCALL KEY</b></p><p> LJMP YY;無(wú)按鍵返回開(kāi)始</p><p> ;
54、################準(zhǔn)備狀態(tài)顯示程序#############</p><p> DIS: MOV R0, #79H;顯示程序</p><p> MOV R3, #01H</p><p> MOV A, R3</p><p> LDD: MOV P0, A<
55、/p><p> MOV A, @R0</p><p> MOV DPTR, #TABLE</p><p> MOVC A, @A+DPTR</p><p> DIR1: MOV P1, A</p><p> LCALL DL ;延時(shí)1ms</
56、p><p><b> INC R0</b></p><p> MOV A, R3</p><p> JB ACC.1, LDD1</p><p><b> RL A</b></p><p> MOV R3, A</p>
57、<p><b> LJMP LDD</b></p><p> LDD1: RET</p><p> ;****************延時(shí)1ms子程序****************</p><p> DL: MOV R5, #5 ;延時(shí)1ms程序</p><p> DDL
58、1: MOV R6, #100</p><p> DDL2: DJNZ R6, DDL2</p><p> DJNZ R5, DDL1</p><p><b> RET</b></p><p> ;%%%%%%%%%%%%%%%%%%%%數(shù)據(jù)列表%%%%%%%%%%%%%%
59、%%%%</p><p> TABLE: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, </p><p><b> 0F8H </b></p><p> DB 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH, 0FFH, 0C
60、H</p><p> ;##################按鍵掃描子程序##############</p><p> KEY: MOV P3, #0FFH</p><p> MOV A, P3 </p><p> ANL A, #0FFH</p><p>
61、;<b> CPL A</b></p><p> JZ EKEY ;A=00H時(shí)無(wú)鍵按下,A≠00H時(shí)有鍵按下</p><p> LCALL DEL10 ;去抖動(dòng),調(diào)用10ms延時(shí)程序</p><p> MOV A, P3</p><p> A
62、NL A, #0FFH</p><p><b> CPL A</b></p><p> JZ EKEY</p><p> MOV B, A</p><p> KEY2: MOV A, P3</p><p> ANL A,
63、 #0FFH ;判鍵是否釋放</p><p><b> CPL A</b></p><p> JNZ KEY2</p><p> LCALL DEL10</p><p> MOV A, B</p><p><b> CPL A</
64、b></p><p> YY2: JNB ACC.0, PKEY1 ;k1鍵按下</p><p> JNB ACC.1, PKEY2 ;k2鍵按下</p><p> JNB ACC.2, PKEY3 ;K3鍵按下</p><p> EKEY: RET</p><p&
65、gt; ;************按鍵2的功能************</p><p> PKEY2: LJMP MAIN</p><p> ;************按鍵3的功能************</p><p> PKEY3: MOV TEMP, #10 ;初始化計(jì)數(shù)器,從10開(kāi)始</p><p>
66、; MOV P2, #00H</p><p> SETB P2.2</p><p> SETB P2.5</p><p> JINJI: MOV R0, #12</p><p> LCALL DISPLAY1</p><p> DEC TEMP
67、 ;對(duì)計(jì)數(shù)器減1 </p><p> MOV A, TEMP </p><p> CJNE A,#0, JINJI ;判斷計(jì)數(shù)器是否滿(mǎn)0?</p><p> MOV R0, #12</p><p> LCALL DISPLAY1</p><p> MOV P2,
68、 #00H</p><p> LCALL MAIN</p><p> ;*************按鍵1的功能************</p><p> PKEY1:MOV TEMP, #55 ;初始化計(jì)數(shù)器,從60開(kāi)始 </p><p> SETB P2.0 ;南北方向紅燈亮
69、</p><p> SETB P2.5 ;東西方向綠燈亮 </p><p> STLOP1: MOV R0, #12</p><p> ACALL DISPLAY1 ;調(diào)用顯示子程序 </p><p> DEC TEMP ;對(duì)計(jì)數(shù)器減1 <
70、/p><p> MOV A, TEMP ; </p><p> CJNE A,#0, STLOP1 ;判斷計(jì)數(shù)器是否滿(mǎn)0? </p><p> CLR P2.0 ;南北方向紅燈滅 </p><p> SETB P2.5 ;東西方向綠燈 </p>
71、<p> ACALL SHAN ;調(diào)用黃燈閃爍程 </p><p> STAR2: MOV TEMP, #25 ;重新開(kāi)始開(kāi)始60秒倒數(shù)</p><p> MOV P2, #00H</p><p> SETB P2.3 ;東西方向紅燈亮</p><
72、;p> SETB P2.2 ;南北方向綠燈亮 </p><p> STLOP2: MOV R0, #12</p><p> ACALL DISPLAY1 ;調(diào)用數(shù)碼管顯示子程序 </p><p> DEC TEMP ;計(jì)數(shù)器減一 </p><p&g
73、t; MOV A, TEMP </p><p> CJNE A,#0, STLOP2 ;判斷計(jì)數(shù)器是否為0? </p><p> SETB P2.2 </p><p> CLR P2.3 </p><p> ACALL SHAN ;調(diào)用黃燈閃爍子程?</p>
74、<p> CLR P2.2 </p><p> LJMP PKEY1 ; </p><p> ;####################顯示子程序1###################</p><p> DISPLAY1: MOV A, TEMP </p><p> MOV B,
75、 #10 </p><p><b> DIV AB </b></p><p> MOV B_BIT, B ;個(gè)位在B </p><p> MOV A_BIT, A ;十位在A </p><p> MOV DPTR, #TABLE ;指定查表啟始地址 <
76、/p><p> DPL1: MOV R1, #250 </p><p> DPLOP1: MOV A, A_BIT ;取個(gè)位數(shù) </p><p> MOVC A, @A+DPTR ;查個(gè)位數(shù)的7段代碼 </p><p> MOV P1, A ;送出個(gè)位的7段代碼 &
77、lt;/p><p> SETB P0.0 ; 開(kāi)個(gè)位顯示 </p><p> ACALL D1MS ;顯示162微秒 </p><p> CLR P0.0 ;關(guān)閉個(gè)位顯示,防止鬼影 </p><p> MOV A, B_BIT ;取十位數(shù) &
78、lt;/p><p> MOVC A, @A+DPTR ;查十位數(shù)的7段代碼 </p><p> MOV P1, A ;送出十位的7段代碼 </p><p> SETB P0.1 ;開(kāi)十位顯? </p><p> ACALL D1MS ;顯示162微秒
79、 </p><p> CLR P0.1 ;關(guān)閉十位顯示,防止鬼影 </p><p> DJNZ R1, DPLOP1 ;循環(huán)執(zhí)行250次 </p><p> DJNZ R0, DPL1 ;循環(huán)執(zhí)行250X4=1000次 </p><p><b> RET</b
80、></p><p> ;#####################顯示子程序2#################</p><p> DISPLAY2: MOV A,TEMP </p><p> MOV B,#10 </p><p><b> DIV AB </b></p><
81、p> MOV B_BIT, B ;個(gè)位在B </p><p> MOV A_BIT, A ;十位在A </p><p> MOV DPTR, #TABLE ;指定查表啟始地址 </p><p> DPPL1: MOV R1, #250 </p><p> DP
82、LOPP1: MOV A, A_BIT ;取個(gè)位數(shù) </p><p> MOVC A, @A+DPTR ;查個(gè)位數(shù)的7段代碼 </p><p> MOV P1, A ;送出個(gè)位的7段代碼 </p><p> SETB P0.0 ;開(kāi)個(gè)位顯示 </p><p
83、> ACALL D1MS1 ;顯示162微秒 </p><p> CLR P0.0 ;關(guān)閉個(gè)位顯示,防止鬼影 </p><p> MOV A, B_BIT ;取十位數(shù) </p><p> MOVC A, @A+DPTR ;查十位數(shù)的7段代碼 </p>&l
84、t;p> MOV P1, A ;送出十位的7段代碼 </p><p> SETB P0.1 ;開(kāi)十位顯? </p><p> ACALL D1MS1 ;顯示162微秒 </p><p> CLR P0.1 ;關(guān)閉十位顯示,防止鬼影 </p>
85、<p> DJNZ R1, DPLOPP1 ;循環(huán)執(zhí)行250次 </p><p> DJNZ R0, DPPL1 ;循環(huán)執(zhí)行250X4=1000次 </p><p><b> RET </b></p><p> ;#################黃燈閃爍子程序##############
86、### </p><p> SHAN: MOV TEMP, #5 ; </p><p> ROUND: SETB P2.1 ; </p><p> SETB P2.4 ;</p><p> MOV R0, #6</p><p> ACALL DISPLAY1
87、;黃燈閃爍五次 </p><p> CLR P2.1 ;每次間隔一秒 </p><p> CLR P2.4 ;</p><p> MOV R0, #6</p><p> ACALL DISPLAY1 </p><p> DJNZ TEMP,ROUND ;<
88、/p><p> MOV R0,#6</p><p> LCALL DISPLAY1 </p><p><b> RET ;</b></p><p> ;####################延時(shí)子程序1#################</p><p> D1MS: MOV R7,
89、 #80 ;2+2X80=162微秒,延時(shí)按12MHZ計(jì)算</p><p> LCALL KEY </p><p> DJNZ R7, $ ; </p><p><b> RET ;</b></p><p> ;####################延時(shí)子程序2##########
90、#######</p><p> D1MS1: MOV R7, #80 ;2+2X80=162微秒,延時(shí)按12MHZ計(jì)算 </p><p> DJNZ R7, $ </p><p><b> RET ; </b></p><p> ;#################
91、一秒延時(shí)子程序################</p><p> DELAY: MOV R6, #10 </p><p> YL3: MOV R4, #100 </p><p> XL2: MOV R5, #71 </p><p> DL1: LCALL KEY
92、;一秒延時(shí)子程序 </p><p> DJNZ R5,DL1 </p><p> DJNZ R4,XL2 </p><p> DJNZ R6,YL3 </p><p><b> RET ;</b></p><p> ;################10毫秒延時(shí)子程序#####
93、##########</p><p> DEL10: MOV R7, #14H ;</p><p> DEL1: MOV R6, #0FFH</p><p> DEL2: DJNZ R6, DEL2</p><p> DJNZ R7, DEL1</p><p&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈畢業(yè)設(shè)計(jì)論文
- 交通燈畢業(yè)設(shè)計(jì)論文
- 交通燈畢業(yè)設(shè)計(jì)論文
- fpga交通燈畢業(yè)設(shè)計(jì)論文
- plc交通燈畢業(yè)設(shè)計(jì)論文
- 畢業(yè)設(shè)計(jì)論文——plc交通燈
- 交通燈畢業(yè)設(shè)計(jì)論文 (2)
- 交通燈設(shè)計(jì)畢業(yè)設(shè)計(jì)
- 交通燈畢業(yè)設(shè)計(jì)
- 智能交通燈畢業(yè)設(shè)計(jì)論文正文
- plc交通燈設(shè)計(jì)(畢業(yè)設(shè)計(jì))
- plc交通燈設(shè)計(jì)(畢業(yè)設(shè)計(jì))
- 模擬交通燈 畢業(yè)設(shè)計(jì)
- 模擬交通燈畢業(yè)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)模擬交通燈
- 模擬交通燈畢業(yè)設(shè)計(jì)
- 交通燈畢業(yè)設(shè)計(jì)3
- 畢業(yè)設(shè)計(jì)---智能交通燈
- plc交通燈設(shè)計(jì)(畢業(yè)設(shè)計(jì))
- 交通燈設(shè)計(jì)畢業(yè)論文--單片機(jī)交通燈設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論