單片機(jī)課程設(shè)計(jì)---交通燈控制_第1頁
已閱讀1頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本系統(tǒng)能夠真實(shí)模擬雙干線交通信號的管理。交通信號燈的控制電路中的核心是80C51單片機(jī)。系統(tǒng)設(shè)置兩組紅、黃、綠燈,并配置兩個(gè)三位LED數(shù)碼管分別顯示東西、南北方向的時(shí)間,LED數(shù)碼管使用動態(tài)顯示方式顯示倒計(jì)時(shí)間。</p><p>  硬件上由MCS51系列單片機(jī)、4×4行列式鍵盤、兩個(gè)3位L

2、ED管、74LS573芯片、排阻和若干電阻組成。LED顯示器通過P0和P2口以共陰極接法連接,P0口作字形口,輸出段碼;P2口作字位口,輸出位碼。P1口接4×4行列式鍵盤。P3口外接6個(gè)發(fā)光二極管模擬交通指示燈,采用共陽極接法,相應(yīng)口線輸出高電平則“信號燈”滅,相應(yīng)口線輸出低電平則“信號燈”亮。單片機(jī)通過XTAL1和XTAL2引腳外接12MHz晶振。</p><p>  軟件設(shè)計(jì)分為以下幾個(gè)模塊:<

3、;/p><p>  (1) 鍵盤管理程序(包括鍵掃描、鍵處理程序)</p><p>  (2) LED數(shù)碼管顯示程序</p><p>  (3) 控制交通燈程序</p><p>  通過動態(tài)掃描法對鍵盤按鍵進(jìn)行識別,當(dāng)有功能鍵按下時(shí)執(zhí)行相應(yīng)的子程序。按鍵抖動會引起按鍵命令的錯(cuò)誤執(zhí)行或重復(fù)執(zhí)行,為確保對鍵的一次閉合僅處理一次,采用軟件延時(shí)的辦法避開

4、抖動階段,即檢測到鍵閉合后延時(shí)5ms,只有再次檢測到按鍵閉合才轉(zhuǎn)入該鍵的處理程序。</p><p>  系統(tǒng)使用T0、T1的模式1實(shí)現(xiàn)10ms定時(shí),T0用于白天模式,T1用于黑夜模式。在定時(shí)器中斷程序里,先進(jìn)行按鍵掃描,有鍵按下則轉(zhuǎn)入相應(yīng)子程序,無鍵按下時(shí)調(diào)用數(shù)碼管顯示子程序,并改變相應(yīng)寄存器數(shù)值,定時(shí)1s時(shí),令數(shù)碼管顯示時(shí)間減一,實(shí)現(xiàn)定時(shí)計(jì)數(shù)功能。</p><p>  關(guān)鍵詞:交通信號燈

5、控制,行列式鍵盤掃描,LED數(shù)碼管動態(tài)顯示,按鍵抖動</p><p><b>  目 錄</b></p><p><b>  摘 要0</b></p><p><b>  第一章 緒論1</b></p><p>  1.1 交通燈控制概述1</p>

6、<p>  1.2 主要研究工作1</p><p>  第二章 基礎(chǔ)知識介紹2</p><p>  2.1 主控制器AT89C522</p><p>  2.2 LED數(shù)碼管模塊3</p><p>  2.3 鍵盤模塊4</p><p>  2.4 74LS5735</p>

7、<p>  第三章 系統(tǒng)硬件電路設(shè)計(jì)6</p><p>  3.1 主控制系統(tǒng)電路7</p><p>  3.2 信號燈顯示電路8</p><p>  3.3 數(shù)碼管時(shí)間顯示電路9</p><p>  3.4 矩陣式鍵盤電路10</p><p>  第四章 電路板的制作10</p

8、><p>  4.1 設(shè)備介紹10</p><p>  4.1 制作過程10</p><p>  第五章 系統(tǒng)軟件設(shè)計(jì)11</p><p><b>  結(jié)束語20</b></p><p><b>  參考文獻(xiàn)21</b></p><p>&l

9、t;b>  第一章 緒論</b></p><p>  1.1 交通燈控制概述</p><p>  單片機(jī)的基本結(jié)構(gòu)是將微型計(jì)算機(jī)的基本功能部件全部集成在一個(gè)半導(dǎo)體芯片上。單片機(jī)結(jié)構(gòu)上的設(shè)計(jì),在硬件、指令系統(tǒng)及I/O能力等方面都有獨(dú)到之處,具有較強(qiáng)而有效的控制功能。另一方面,單片機(jī)畢竟是一個(gè)芯片,只有外加所需的輸入、輸出設(shè)備,才可以構(gòu)成實(shí)用的單片機(jī)應(yīng)用系統(tǒng)[1]。<

10、;/p><p>  單片機(jī)由于體積小、功耗低、價(jià)格低廉,且具有邏輯判斷、定時(shí)計(jì)數(shù)、程序控制等多種功能,廣泛應(yīng)用于智能儀表、可編程序控制器、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域[2]。</p><p>  本課程設(shè)計(jì)交通燈控制系統(tǒng)采用單片機(jī)作為主控制器,外接必要的設(shè)備,模擬十字路口的車輛及行人的交通管理,有東西、南北方向的交通指示燈及用于倒計(jì)時(shí)的數(shù)碼管,整個(gè)系統(tǒng)簡單

11、,價(jià)格低廉,并能真實(shí)模擬現(xiàn)實(shí)情況。</p><p>  1.2 主要研究工作</p><p>  1. 完成系統(tǒng)硬件電路設(shè)計(jì)</p><p>  單片機(jī)采用MCS51系列</p><p>  鍵盤為4×4行列式鍵盤,按鍵設(shè)有啟動、停止、白天、黑夜功能鍵。</p><p>  兩個(gè)3位的LED數(shù)碼管,南北方向

12、和東西方向個(gè)一個(gè),用來顯示時(shí)間。</p><p><b>  完成系統(tǒng)軟件設(shè)計(jì)</b></p><p>  鍵盤管理程序(包括鍵掃描、鍵處理程序)。</p><p>  LED數(shù)碼管顯示程序。</p><p><b>  控制交通燈程序</b></p><p>  實(shí)現(xiàn)系統(tǒng)要

13、求的功能:</p><p>  在LED數(shù)碼管上顯示倒計(jì)時(shí)秒的時(shí)間。</p><p>  采用LED模擬信號燈,信號燈分東西、南北二組,分別有“紅”“黃”“綠”三種顏色。其工作狀態(tài)由單片機(jī)程序控制,“啟動”、“停止”按鈕分別控制信號燈的啟動和停止?!鞍滋?黑夜”開關(guān)控制信號燈白天/黑夜轉(zhuǎn)換。按下“啟動”按鈕開始工作,按下“停止”按鈕停止工作,“白天/黑夜”開關(guān)按下閉合時(shí)為黑夜工作狀態(tài),這時(shí)

14、只有黃燈閃爍,斷開時(shí)按時(shí)序控制圖工作。</p><p>  第二章 基礎(chǔ)知識介紹</p><p>  2.1 主控制器AT89C52</p><p>  主控制器采用MCS51系列單片機(jī)AT89C52,AT89C52是一個(gè)低電壓,高性能CMOS 8位單片機(jī),片內(nèi)含8k bytes的可反復(fù)擦寫的Flash只讀程序存儲器和256 bytes的隨機(jī)存取數(shù)據(jù)存儲器(RAM

15、),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存儲單元[3]。</p><p>  MCS51單片機(jī)的內(nèi)部基本結(jié)構(gòu)框圖如圖2-1所示,由以下部分組成[4]:</p><p>  (1) 一個(gè)8 位的微處理器(CPU)。</p><p>  (2) 片內(nèi)數(shù)據(jù)存儲器RAM(128B),用以存放

16、可以讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及狀態(tài)標(biāo)志位等。</p><p>  (3) 片內(nèi)程序存儲器ROM(4KB),用以存放已編制好的程序及程序中用到的常數(shù)。</p><p> ?。?) 四個(gè)8 位并行I/O 接口P0~P3,每個(gè)口既可以用作輸入,也可以用作輸出使用。</p><p> ?。?) 兩個(gè)定時(shí)器/計(jì)數(shù)器,每個(gè)定時(shí)器/計(jì)數(shù)器都可以設(shè)置成計(jì)數(shù)方式,用以

17、對外部事件進(jìn)行計(jì)數(shù),也可以設(shè)置成定時(shí)方式,并可以根據(jù)計(jì)數(shù)或定時(shí)的結(jié)果實(shí)現(xiàn)計(jì)算機(jī)控制。</p><p> ?。?) 五個(gè)中斷源的中斷控制系統(tǒng),提供兩個(gè)中斷優(yōu)先級,能實(shí)現(xiàn)兩級中斷嵌套。</p><p>  (7) 一個(gè)全雙工串行異步通信接口,用于實(shí)現(xiàn)單片機(jī)之間或單機(jī)與微機(jī)之間的串行通信。</p><p> ?。?) 片內(nèi)振蕩器和時(shí)鐘產(chǎn)生電路,但需要外接石英晶體和微調(diào)電容

18、,最高允許振蕩頻率為12MHz。</p><p>  單片機(jī)內(nèi)部各功能部件通過內(nèi)部總線連接,傳送地址信息、數(shù)據(jù)信息和控制信息,各功能部件分時(shí)使用總線,即所謂的內(nèi)部單總線結(jié)構(gòu)。</p><p>  AT89C52與其他MCS51單片機(jī)的不同之處在于具有8KB可反復(fù)擦寫(大于1000次)Flash ROM以及3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷。可反復(fù)擦寫的Flash ROM使得單片機(jī)能反復(fù)寫入程

19、序,使用更加地方便。</p><p>  2.2 LED數(shù)碼管模塊</p><p>  LED數(shù)碼管是由若干個(gè)發(fā)光二級管組成顯示字段的顯示器件,有七段和“米”字段之分。LED數(shù)碼管有共陰極和共陽極兩種,發(fā)光二極管的陽極接在一起的稱為共陽極數(shù)碼管,陰極接在一起的稱為共陰極數(shù)碼管。一個(gè)數(shù)碼管由8個(gè)發(fā)光二極管組成,其中,7個(gè)發(fā)光二極管a~g構(gòu)成字型“8”的各個(gè)筆劃,另一個(gè)dp發(fā)光二極管為小數(shù)點(diǎn)

20、。當(dāng)某段發(fā)光二極管上施加一定的正向電壓時(shí),該段比劃就亮;不加電壓就暗。另外,為了保護(hù)各段LED不被損壞,應(yīng)該使其工作在安全電流下,故必須外加限流電阻。</p><p>  本系統(tǒng)使用三位共陰七段數(shù)碼管,其引腳如下圖所示:</p><p>  在實(shí)際應(yīng)用中,LED數(shù)碼管有靜態(tài)顯示和動態(tài)顯示兩種顯示方式。</p><p>  靜態(tài)顯示方式,即七段LED數(shù)碼管在顯示某一個(gè)

21、字符時(shí),相應(yīng)的段恒定的導(dǎo)通或截止,直至換顯其他字符為止。</p><p>  LED 的靜態(tài)顯示雖然有編程容易、管理簡單等優(yōu)點(diǎn),但是靜態(tài)顯示所要占的I/O 口資源很多,所以在顯示的LED 點(diǎn)較多的情況下,一般都采用動態(tài)顯示方式,即在多位七段LED 顯示中,將所有位的段選線并聯(lián)在一起,由8 個(gè)I/O 口來控制8 個(gè)段。而公共端(共陽極/共陰極)則分別由相應(yīng)的I/O 口控制,以實(shí)現(xiàn)各個(gè)位的分時(shí)選通。</p>

22、;<p>  由于所有的段選線并聯(lián)到同一個(gè)I/O,由這個(gè)I/O 口來控制,因此,若是所有的4 位7 段LED 都選通的話,4 位7 段LED 將會顯示相同的字符。要使各個(gè)位的7 段LED 顯示不同的字符,就必須采用動態(tài)掃描方法來輪流點(diǎn)亮每一位7 段LED,即在每一瞬間只選通一位7 段LED 進(jìn)行顯示單獨(dú)的字符。在此段點(diǎn)亮?xí)r間內(nèi),段選控制I/O 口輸出要顯示的相應(yīng)字符的段選碼,而位選控制I/O 口則輸出位選信號,向要顯示的位

23、送出選通電平(共陰極則送出低電平,共陽極則送出高電平),使得該位顯示相應(yīng)字符。這樣將四位7 段LED 輪流去點(diǎn)亮,使得每位分時(shí)顯示該位應(yīng)顯示的字符。由于人眼的視覺暫留時(shí)間為0.1 秒,當(dāng)每位顯示的間隔未超過33ms 時(shí),并在顯示時(shí)保持直到下一位顯示,則由于人眼的視覺暫留效果眼睛看上去就像是4 位7 段LED 都在點(diǎn)亮。設(shè)計(jì)時(shí),要注意每位顯示的間隔時(shí)間,由于一位7 段LED 的熄滅時(shí)間不能超過100ms,也就是說點(diǎn)亮其它位所用的時(shí)間不能超

24、過100ms,這樣當(dāng)有N位的7 段LED 用來顯示時(shí),每一位間隔的時(shí)間t 就必須符合下面的式子:</p><p>  t≦100ms/(N-1)</p><p>  比如,現(xiàn)在使用3位,也就是N=3,則由式子可以算出t≦50ms,就是每一位的間隔時(shí)間不能超過33ms。實(shí)際應(yīng)用中,時(shí)間可以設(shè)得短一些,比如5ms[5]。</p><p><b>  2.3 鍵

25、盤模塊</b></p><p>  在單片機(jī)應(yīng)用系統(tǒng)中,用戶要向計(jì)算機(jī)輸入數(shù)據(jù)和命令,這些任務(wù)主要由鍵盤來完成。鍵盤由若干個(gè)按鍵按一定規(guī)則組合而成,根據(jù)按鍵的識別方法分類,可分為編碼鍵盤和非編碼鍵盤,在單片機(jī)系統(tǒng)中多用非編碼鍵盤。</p><p>  鍵盤中的按鍵都是一個(gè)常開開關(guān)電路,是利用機(jī)械觸點(diǎn)來實(shí)現(xiàn)按鍵的閉合和釋放。由于機(jī)械觸點(diǎn)的彈性作用,觸點(diǎn)在閉合和斷開瞬間的電接觸情況

26、不穩(wěn)定,造成了電壓信號的抖動現(xiàn)象。鍵的抖動時(shí)間一般為5~10ms。這種現(xiàn)象會引起單片機(jī)對于一次鍵操作進(jìn)行多次處理,因此須設(shè)法消除鍵接通或斷時(shí)的抖動現(xiàn)象。去抖動的方法有硬件和軟件兩種方法,本系統(tǒng)采用軟件延時(shí)的方法來避開抖動階段。</p><p>  采用軟件去抖動的方法是在單片機(jī)檢測到有鍵按下時(shí)執(zhí)行一個(gè)5~10ms的延時(shí)程序后再次檢查該鍵電平是否仍保持閉合狀態(tài).如保持閉合狀態(tài),則確認(rèn)為有鍵按下,否則按無鍵按下處理。

27、當(dāng)檢測到按鍵釋放后,也同樣要延時(shí)5~10ms,等待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序,只有這樣才能保證當(dāng)按鍵一次時(shí),CPU僅做一次相應(yīng)處理。 </p><p>  無論是編碼鍵盤還是非編碼鍵盤鍵盤都可分為獨(dú)立連接式和矩陣式兩類。獨(dú)立式鍵盤是每一個(gè)鍵對應(yīng)I/O口的一根口線,各鍵是相互獨(dú)立的。獨(dú)立式按鍵雖編程簡單,但占用I/O口資源較多,不適合在按鍵較多的場合應(yīng)用。矩陣式鍵盤按矩陣方式連接,每條行線與列線的交

28、叉處通過一個(gè)按鍵來連通,則只需N條行線和M條列線,即可組成N×M個(gè)鍵的鍵盤。</p><p>  對于矩陣式的非編碼鍵盤,常用的按鍵識別方法有兩種:掃描法和線翻轉(zhuǎn)法,通常采用掃描法。下面介紹一種“行掃描法”,行掃描法又稱為逐行(或列)掃描查詢法,是一種最常用的按鍵識別方法,過程如下:</p><p>  1.判斷鍵盤中有無鍵按下,將全部行線置低電平,然后檢測列線的狀態(tài)。只要有一

29、列的電平為低,則表示鍵盤中有鍵被按下,而且閉合的鍵位于低電平線與4根行線相交叉的4個(gè)按鍵之中。若所有列線均為高電平,則鍵盤中無鍵按下。 </p><p>  2.判斷閉合鍵所在的位置,在確認(rèn)有鍵按下后,即可進(jìn)入確定具體閉合鍵的過程。其方法是:依次將行線置為低電平,即在置某根行線為低電平時(shí),其它線為高電平。在確定某根行線位置為低電平后,再逐行檢測各列線的電平狀態(tài)。若某列為低,則該列線與置為低電平的行線交叉處的按鍵

30、就是閉合的按鍵[6]。</p><p>  2.4 74LS573</p><p>  74LS573的原理:74LS573 的八個(gè)鎖存器都是透明的D 型鎖存器,當(dāng)使能(G)為高時(shí),Q 輸出將隨數(shù)據(jù)(D)輸入而變。當(dāng)使能為低時(shí),輸出將鎖存在已建立的數(shù)據(jù)電平上。輸出控制不影響鎖存器的內(nèi)部工作,即老數(shù)據(jù)可以保持,甚至當(dāng)輸出被關(guān)閉時(shí),新的數(shù)據(jù)也可以置入。這種電路可以驅(qū)動大電容或低阻抗負(fù)載,可以

31、直接與系統(tǒng)總線接口并驅(qū)動總線,而不需要外接口。特別適用于緩沖寄存器,I/O 通道,雙向總線驅(qū)動器和工作寄存器[7]。</p><p>  74LS573的引腳功能表如下:</p><p>  第三章 系統(tǒng)硬件電路設(shè)計(jì)</p><p>  整套電路系統(tǒng)由主控制系統(tǒng)電路、信號燈顯示電路、數(shù)碼管時(shí)間顯示電路和矩陣式鍵盤電路等組成。采用LED動態(tài)掃描的交通燈控制系統(tǒng)總電路原

32、理圖和印刷電路板圖(PCB)如下所示:</p><p><b>  圖3-1</b></p><p><b>  圖3-2</b></p><p>  3.1 主控制系統(tǒng)電路</p><p>  主控制器采用MCS51系列單片機(jī)AT89C52,是一款性能穩(wěn)定的8位單片機(jī)。AT89C52單片機(jī)內(nèi)部由C

33、PU、8KB的Flash ROM、256B的RAM、4個(gè)8位的I/O并行端口、一個(gè)串行口、三個(gè)16位定時(shí)/計(jì)數(shù)器及中斷系統(tǒng)等組成。AT89C52外部需接時(shí)鐘電路和復(fù)位電路,單片機(jī)才能正常工作。此外,VCC引腳需接電源,GND引腳需接地,EA/VPP引腳需接上拉電阻連接到電源。</p><p>  3.1.1 時(shí)鐘電路</p><p>  時(shí)鐘信號用來提供單片機(jī)片內(nèi)各種微操作的時(shí)間基準(zhǔn),時(shí)鐘

34、信號通常用兩種電路形式得到:內(nèi)部振蕩和外部振蕩。MCS-51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,引腳XTALl和XTAL2分別是此放大電器的輸入端和輸出端,由于采用內(nèi)部方式時(shí),電路簡單,所得的時(shí)鐘信號比較穩(wěn)定,實(shí)際使用中常采用這種方式,如圖3-1所示。在其外接晶體振蕩器(簡稱晶振)或陶瓷諧振器就構(gòu)成了內(nèi)部振蕩方式,片內(nèi)高增益反向放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起可構(gòu)成一個(gè)自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖[8]。

35、圖3-3中,外接晶體以及電容C2和C3構(gòu)成并聯(lián)諧振電路,它們起穩(wěn)定振蕩頻率、快速起振的作用,其值為30pF左右,晶振頻率約為12MHz 。</p><p>  3.1.2 復(fù)位電路</p><p>  為了初始化單片機(jī)內(nèi)部的某些特殊功能寄存器,必須利用復(fù)位電路,復(fù)位后可使CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初始狀態(tài)開始正常工作。單片機(jī)的復(fù)位是靠外電路來實(shí)現(xiàn)的,在正常運(yùn)行情況下,只要R

36、ST引腳上出現(xiàn)兩個(gè)機(jī)器周期時(shí)間以上的高電平,即可引起系統(tǒng)復(fù)位,但如果RST引腳上持續(xù)為高電平,單片機(jī)就處于循環(huán)復(fù)位狀態(tài)。復(fù)位后系統(tǒng)將輸入/輸出(1/0)端口寄存器置為FFH,堆棧指針SP置為07H, SBUF內(nèi)置為不定值,其余的寄存器全部清0,內(nèi)部RAM的狀態(tài)不受復(fù)位的影響,在系統(tǒng)上電時(shí)RAM的內(nèi)容是不定的。復(fù)位操作有兩種情況,即上電復(fù)位和手動(開關(guān))復(fù)位。本系統(tǒng)采用上電復(fù)位方式[9]。圖3-4中R1和Cl組成上電復(fù)位電路,其值R取為1

37、KΩ, C取為10pF。</p><p><b>  圖3-4</b></p><p>  3.2 信號燈顯示電路</p><p>  P3口外接6個(gè)發(fā)光二極管模擬交通指示燈,采用共陽極接法,相應(yīng)口線輸出高電平則“信號燈”滅,相應(yīng)口線輸出低電平則“信號燈”亮。為了保護(hù)發(fā)光二極管不被損壞,應(yīng)該使其工作在安全電流下,故必須外加限流電阻,選用1k的

38、電阻,如圖3-5所示。</p><p>  3.3 數(shù)碼管時(shí)間顯示電路</p><p>  LED數(shù)碼管通過P0和P2口以共陰極接法連接,如圖3-6所示,P0作字形口,輸出段碼,故兩個(gè)數(shù)碼管的段碼線對應(yīng)并聯(lián)在一起,由P0口控制數(shù)碼管的顯示。P2口作字位口,輸出位碼。其中,P2.0~P2.3分別控制兩個(gè)數(shù)碼管的個(gè)、十位顯示,以實(shí)現(xiàn)各位的分時(shí)選通。</p><p>  

39、P0口是一個(gè)8位漏極開路型雙向I/O口,在驅(qū)動NMOS或其他拉電流負(fù)載時(shí),需外接上拉電阻,才能使該位高電平輸出有效,故電路設(shè)計(jì)時(shí),P0口需先接一個(gè)排阻,才能再連接其他部件。</p><p>  P0口經(jīng)排阻后,連接74LS573芯片,用于鎖存數(shù)碼管顯示數(shù)字的信息,再連接到兩個(gè)三位共陰數(shù)碼管。使用鎖存器的原因是:在數(shù)碼管顯示時(shí),要維持一個(gè)數(shù)據(jù)的顯示,往往要持續(xù)的快速的刷新。在人類能夠接受的刷新頻率之內(nèi),大概每三十毫

40、秒就要刷新一次。這就大大占用了處理器的處理時(shí)間,消耗了處理器的處理能力,還浪費(fèi)了處理器的功耗。鎖存器的使用可以大大的緩解處理器在這方面的壓力。當(dāng)處理器把數(shù)據(jù)傳輸?shù)芥i存器并將其鎖存后,鎖存器的輸出引腳便會一直保持?jǐn)?shù)據(jù)狀態(tài)直到下一次鎖存新的數(shù)據(jù)為止。這樣在數(shù)碼管的顯示內(nèi)容不變之前,處理器的處理時(shí)間和IO引腳便可以釋放??梢钥闯?,處理器處理的時(shí)間僅限于顯示內(nèi)容發(fā)生變化的時(shí)候,這在整個(gè)顯示時(shí)間上只是非常少的一個(gè)部分。而處理器在處理完后可以有更多

41、的時(shí)間來執(zhí)行其他的任務(wù)。這就是鎖存器在數(shù)碼管顯示方面的作用:節(jié)省了寶貴的MCU時(shí)間[10]。</p><p><b>  圖 3-6</b></p><p>  3.4 矩陣式鍵盤電路</p><p>  80C51單片機(jī)的并行口P1接4×4行列式鍵盤,其中P1.0~P1.3接列線,P1.4~P1.7接行線。實(shí)際使用的功能鍵為:“A”

42、為啟動功能按鍵,“B”為停止功能按鍵,“C”為白天功能按鍵,“D”為黑夜功能按鍵。開機(jī)通電后,需按下“啟動”鍵才能進(jìn)入正常工作,默認(rèn)為白天工作模式,在此之后按下“停止”鍵,則數(shù)碼管和指示燈均不再顯示,只有重新按下“啟動”鍵才能重新正常工作;按下“黑夜”鍵,則由白天模式切換為黑夜模式,此時(shí)黃燈不停閃爍,再按下“白天”鍵,則切換到白天模式。</p><p>  第四章 電路板的制作</p><p&

43、gt;<b>  4.1 設(shè)備介紹</b></p><p>  電路板制作主要用的設(shè)備有:</p><p>  STR-FⅡ 多功能環(huán)保型快速制板系統(tǒng) 廠商:福建時(shí)創(chuàng)電子科技有限公司</p><p><b>  鉆孔機(jī)</b></p><p><b>  4.1 制作過程</b>

44、;</p><p>  此次制板采用曝光——顯影——蝕刻——打孔——焊接元件的方法,過程大致如下:</p><p>  真空雙面曝光,將已準(zhǔn)備好的圖紙和線路板放到曝光機(jī)中曝光。在銅層上有一層感光材料,用曝光機(jī)將線路圖打印到感光層上。</p><p>  取出已曝光好的電路板放到顯影的容器中進(jìn)行顯影,該過程中由于時(shí)間把握不是很好,導(dǎo)致顯影過度,部分銅上有小的孔洞,但并

45、不影響電路板的使用。</p><p>  先將顯影過的電路板用清水沖洗干凈,再放到蝕刻的容器中進(jìn)行蝕刻,雙手控制電路板上下輕微振動有助于加快蝕刻的速度。</p><p>  使用打孔機(jī)進(jìn)行打孔。</p><p>  焊接元件,先焊小的元件,再焊大的元件。焊接時(shí),先用焊槍對焊盤預(yù)熱幾秒鐘,再送焊絲進(jìn)行焊接,焊接好了,先移走焊絲,再移走焊槍。</p>&l

46、t;p>  第五章 系統(tǒng)軟件設(shè)計(jì)</p><p>  程序的設(shè)計(jì)說明如下:</p><p>  白天模式使用定時(shí)器T0(同時(shí)關(guān)閉定時(shí)器T1),選擇模式1,定時(shí)時(shí)間為10ms,計(jì)算可得初值為:TL0=#0F0H,TH0=#0D8H。</p><p>  黑夜模式使用定時(shí)器T1(同時(shí)關(guān)閉定時(shí)器T0),選擇模式1,定時(shí)時(shí)間為10ms,計(jì)算可得初值為:TL0=#0F0

47、H,TH0=#0D8H。</p><p>  程序中使用的寄存器含義說明:R3,用于南北方向計(jì)時(shí);R4,用于東西方向計(jì)時(shí);R5,用于黃燈閃爍計(jì)時(shí)1.2s;R6,用于計(jì)時(shí)1s;R7,用于延遲程序。</p><p>  系統(tǒng)的信號燈控制時(shí)序如下圖所示:</p><p><b>  綠1</b></p><p><b&g

48、t;  黃1</b></p><p><b>  紅1</b></p><p><b>  綠2</b></p><p><b>  黃2</b></p><p><b>  紅2</b></p><p>  20S

49、 6S 40S 6S </p><p>  東西線、南北線的交通指示燈狀態(tài)及相應(yīng)的控制碼如下表所示:</p><p>  本程序主要分為三個(gè)部分:</p><p>  主程序:交通信號燈的控制程序,默認(rèn)按白天模式運(yùn)行。</p><p>  LED數(shù)碼管顯示程序:采用動態(tài)顯示模式,調(diào)用定時(shí)器T0,每10m

50、s動態(tài)顯示一次;</p><p>  鍵盤管理程序:分為鍵盤掃描程序以及鍵盤處理程序,其中,在每次動態(tài)顯示與黑夜黃燈閃爍的間隔間不斷調(diào)用鍵盤掃描程序。</p><p>  各程序的流程圖及程序代碼如下:</p><p><b>  主程序:</b></p><p>  ORG 0000H</p><

51、p>  AJMP MAIN1 ;轉(zhuǎn)主程序</p><p>  ORG 000BH</p><p>  LJMP DSHI1 ;轉(zhuǎn)定時(shí)器0服務(wù)子程序</p><p>  ORG 001BH</p><p>  LJMP DSHI2 ;轉(zhuǎn)定時(shí)器1服務(wù)子程序

52、</p><p>  ORG 0100H</p><p>  MAIN1: MOV P1,#0F7H ;按鍵掃描,有鍵按下則延時(shí)消抖</p><p><b>  MOV A,P1</b></p><p>  ORL A,#0FH</p><p><b>

53、  CPL A</b></p><p><b>  JNZ D5</b></p><p>  SJMP MAIN1</p><p>  D5: MOV R7,#20H ;消抖處理,確有鍵按下則轉(zhuǎn)判斷按鍵程序</p><p>  D6: DJNZ R7,D

54、6</p><p>  MOV P1,#0F7H</p><p><b>  MOV A,P1</b></p><p>  ORL A,#0FH</p><p><b>  CPL A</b></p><p>  JNZ PDUAN3</p><

55、p>  SJMP MAIN1</p><p>  PDUAN3: MOV P1,#0F7H ;判斷啟動鍵是否按下,是則開始工作,否則繼續(xù)掃描</p><p><b>  MOV A,P1</b></p><p>  JNB ACC.4,MAIN</p><p>  AJMP MAIN1&l

56、t;/p><p>  MAIN: MOV SP,#50H ;主程序</p><p>  MOV IE,#8AH ;允許中斷</p><p>  MOV TMOD,#11H ;設(shè)置定時(shí)方式1</p><p>  MOV TL0,#0F0H ;定時(shí)10ms</

57、p><p>  MOV TH0,#0D8H</p><p>  CLR TR1 ;關(guān)閉黑夜模式定時(shí)器</p><p>  SETB TR0 ;打開白天模式定時(shí)器</p><p>  ZTAI1: MOV R3,#20 ;東西向紅燈亮,南北向綠燈亮<

58、/p><p>  MOV R4,#26</p><p>  MOV P3,#0CFH</p><p>  ZTAI12: LCALL JPAN</p><p>  CJNE R3,#00,ZTAI12 ;是否夠20s</p><p>  ZTAI2: MOV R3,#6

59、 ;東西向紅燈亮,南北向黃燈閃</p><p>  MOV P3,#0AFH</p><p>  ZTAI21: MOV R5,#00H</p><p>  ZTAI22: LCALL JPAN</p><p>  CJNE R5,#64H,ZTAI22 ;是否夠6s</p><p&g

60、t;<b>  CPL P3.6</b></p><p>  CJNE R3,#00H,ZTAI21</p><p>  ZTAI3: MOV R3,#46 ;東西向綠燈亮,南北向紅燈亮</p><p>  MOV R4,#40</p><p>  MOV P3,#07EH&

61、lt;/p><p>  ZTAI32: LCALL JPAN</p><p>  CJNE R3,#06,ZTAI32 ;是否夠40s</p><p>  ZTAI4: MOV R4,#6 ;東西向黃燈閃,南北向紅燈亮</p><p>  MOV P3,#07DH</p&g

62、t;<p>  ZTAI41: MOV R5,#00H</p><p>  ZTAI42: LCALL JPAN</p><p>  CJNE R5,#64H,ZTAI42 ;是否夠6s</p><p><b>  CPL P3.1</b></p><p>  CJNE R4,

63、#00H,ZTAI41</p><p>  SJMP ZTAI1 ;返回,繼續(xù)執(zhí)行主程序</p><p>  2、LED數(shù)碼管顯示程序:</p><p>  DISP: MOV B,#0AH ;顯示子程序</p><p><b>  MOV A,R3</b&

64、gt;</p><p><b>  DIV AB</b></p><p>  MOV 79H,A</p><p>  MOV 7AH,B</p><p>  MOV A,79H</p><p>  MOV DPTR,#LEDMAP</p><p>  MOVC A

65、,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#11110111B</p><p>  CALL DELAY</p><p>  MOV A,7AH</p><p>  MOV DPTR,#LEDMAP</p>&l

66、t;p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#11111011B</p><p>  CALL DELAY</p><p>  MOV B,#0AH</p><p><b>  MOV A

67、,R4</b></p><p><b>  DIV AB</b></p><p>  MOV 79H,A</p><p>  MOV 7AH,B</p><p>  MOV A,79H</p><p>  MOV DPTR,#LEDMAP</p><p&g

68、t;  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#11111101B</p><p>  CALL DELAY</p><p>  MOV A,7AH</p><p>  MOV DPTR,#LEDMAP<

69、/p><p>  MOVC A,@A+DPTR</p><p><b>  MOV P0,A</b></p><p>  MOV P2,#11111110B</p><p>  CALL DELAY</p><p>  MOV P2,#11111111B</p><p>&

70、lt;b>  RET</b></p><p>  DELAY: MOV R7,#0F0H ;延時(shí)子程序</p><p>  DELOOP: NOP</p><p><b>  NOP</b></p><p><b>  NOP</b></p>

71、<p>  DJNZ R7,DELOOP</p><p><b>  RET</b></p><p>  LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;字形碼表</p><p>  DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p>

72、<p><b>  END</b></p><p>  3、鍵盤管理程序: </p><p><b>  ①鍵盤處理程序:</b></p><p>  “啟動”處理程序:跳轉(zhuǎn)至主程序MAIN;</p><p><b>  “停止”處理程序:</b></p>

73、<p>  STOP: CLR TR0 ;“停止”按鍵子程序</p><p><b>  CLR TR1</b></p><p>  MOV P3,#0FFH</p><p>  MOV P0,#11111111B</p><p>  MOV P2,#11

74、111111B</p><p>  MOV P1,#0F7H</p><p>  STOP1: MOV A,P1</p><p>  ORL A,#0FH</p><p><b>  CPL A</b></p><p><b>  JNZ D3</b><

75、;/p><p>  SJMP STOP1</p><p>  D3: MOV R7,#20H</p><p>  D4: DJNZ R7,D4</p><p>  MOV P1,#0F7H</p><p><b>  MOV A,P1</b></p>&l

76、t;p>  ORL A,#0FH</p><p><b>  CPL A</b></p><p>  JNZ PDUAN2</p><p>  SJMP STOP1</p><p>  PDUAN2: MOV P1,#0F7H</p><p><b>  MOV A,P1

77、</b></p><p>  JNB ACC.4,START</p><p>  SJMP STOP1</p><p>  “白天”處理程序:跳轉(zhuǎn)至主程序MAIN;</p><p><b>  “黑夜”處理程序:</b></p><p>  NIGHT: CLR TR0

78、 ;黑夜子程序</p><p>  MOV P0,#11111111B</p><p>  MOV TL1,#0F0H</p><p>  MOV TH1,#0D8H</p><p><b>  SETB TR1</b></p><p>  MOV P3,#0

79、BDH</p><p>  NIGHT1: MOV R5,#00H</p><p>  NIGHT2: LCALL JPAN</p><p>  CJNE R5,#64H,NIGHT2</p><p><b>  CPL P3.1</b></p><p><b>  CPL P

80、3.6</b></p><p>  SJMP NIGHT1</p><p><b> ?、阪I盤掃描程序:</b></p><p>  JPAN: MOV P1,#0F7H ;鍵盤掃描子程序</p><p><b>  MOV A,P1</b>&l

81、t;/p><p>  ORL A,#0FH</p><p><b>  CPL A</b></p><p><b>  JNZ D1</b></p><p><b>  RET</b></p><p>  D1: MOV R7,#2

82、0H</p><p>  D2: DJNZ R7,D2</p><p>  MOV P1,#0F7H</p><p><b>  MOV A,P1</b></p><p>  ORL A,#0FH</p><p><b>  CPL A</b></

83、p><p>  JNZ PDUAN</p><p><b>  RET</b></p><p>  PDUAN: MOV P1,#0F7H ;判斷按鍵</p><p><b>  MOV A,P1</b></p><p>  JNB ACC.

84、4,START</p><p>  JNB ACC.5,STOP</p><p>  JNB ACC.6,DAY</p><p>  JNB ACC.7,NIGHT</p><p><b>  RET</b></p><p>  定時(shí)器中斷子程序如下:</p><p>

85、;  DSHI1: MOV TL0,#0F0H ;定時(shí)器0中斷子程序</p><p>  MOV TH0,#0D8H</p><p><b>  INC R5</b></p><p><b>  INC R6</b></p><p>  CJNE R6,#64H,DS1&

86、lt;/p><p>  MOV R6,#00H</p><p><b>  DEC R3</b></p><p><b>  DEC R4</b></p><p>  DS1: ACALL DISP ;調(diào)用顯示子程序</p><p>&l

87、t;b>  RETI</b></p><p>  DSHI2: MOV TL1,#0F0H ;定時(shí)器1中斷子程序</p><p>  MOV TH1,#0D8H</p><p><b>  INC R5</b></p><p><b>  RETI</b>

88、;</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 趙全利、肖興達(dá),單片機(jī)原理及應(yīng)用教程,北京:機(jī)械工業(yè)出版社,2011.3</p><p>  [2] 趙全利、肖興達(dá),單片機(jī)原理及應(yīng)用教程,北京:機(jī)械工業(yè)出版社,2011.3</p><p>  [3] 作者不詳,百度百科——AT89C52,

89、2012-2-28</p><p>  [4] 作者不詳,互動百科——8051單片機(jī), </p><p>  [5] 作者不詳,LED顯示及動態(tài)顯示原理, </p><p>  [6] 趙全利、肖興達(dá),單片機(jī)原理及應(yīng)用教程,北京:機(jī)械工業(yè)出版社,2011.3</p><p>  [7] 作者不詳,74LS573中文資料, </p>

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論