版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告</p><p> 課題: 交通燈 </p><p> 班級(jí): </p><p> 成員: </p><p> 指導(dǎo)老師: </p><p> 單片機(jī)課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告</
2、p><p> :近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來(lái)實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信
3、號(hào)燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機(jī)AT89C51和可編程并行I/O接口芯片8255A為中心器件來(lái)設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)黃燈警示(交通燈信號(hào)通過(guò)8255的PC口輸出,顯示時(shí)間直接通過(guò)PB口輸出至雙位數(shù)碼管);并用復(fù)位按鍵表示出現(xiàn)特殊情況時(shí)四個(gè)方向禁止通行,用set,inc和dec按鍵來(lái)實(shí)現(xiàn)紅綠燈及黃燈顯示時(shí)間的控制。同時(shí)還加了LCD液晶顯示功能。</p>&l
4、t;p><b> 1、 單片機(jī)概述</b></p><p> 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過(guò)
5、1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p><b> 2、 芯片簡(jiǎn)介</b></p><p> 2.1 MSC-51芯片簡(jiǎn)介</p><p> MCS-51單片機(jī)內(nèi)部結(jié)構(gòu):</p><p> 89C51
6、是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。 89C51單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說(shuō)明:</p><p><b> ·中央處理器:</b></p>
7、<p> 中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。</p><p> ·數(shù)據(jù)存儲(chǔ)器(RAM)</p><p> 89C51內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制
8、指令數(shù)據(jù),用戶只能訪問(wèn),而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫(xiě)的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。</p><p><b> 1圖</b></p><p> ·程序存儲(chǔ)器(ROM):</p><p> 89C51共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p
9、><p> ·定時(shí)/計(jì)數(shù)器(ROM):</p><p> 89C51有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p> ·并行輸入輸出(I/O)口:</p><p> 89C51共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。</p>&
10、lt;p><b> ·全雙工串行口:</b></p><p> 89C51內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b> ·中斷系統(tǒng):</b></p><p> 89C51具備較完善的中斷功能,
11、有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。</p><p><b> ·時(shí)鐘電路:</b></p><p> 89C51內(nèi)置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。</p><p> 單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程
12、序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開(kāi)的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。</p><p> 下圖是MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖2。</p><p><b>
13、; 圖2</b></p><p> MCS-51的引腳說(shuō)明:</p><p> MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:</p><
14、p> MCS-51的引腳說(shuō)明:</p><p> MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說(shuō)明:如圖3</p><p><b> 圖3</b>
15、</p><p> Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)89C51通電,時(shí)鐘電路開(kāi)始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫(xiě)入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開(kāi)始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),
16、89C51的初始態(tài)。</p><p> 89C51的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見(jiàn)下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p><b> 圖4</b></p><p> ·Pin30:ALE/當(dāng)訪問(wèn)外部程序器時(shí),ALE(地址鎖
17、存)的輸出用于鎖存地址的低位字節(jié)。而訪問(wèn)內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問(wèn)外部程序存儲(chǔ)器,ALE會(huì)跳過(guò)一個(gè)脈沖。</p><p> 如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。</p><p> ·Pin29:當(dāng)訪問(wèn)外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信
18、號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p> ·Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò)4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)
19、內(nèi)部無(wú)程序存儲(chǔ)器的8031,EA端必須接地。</p><p> 在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。</p><p> 2.2 8255芯片簡(jiǎn)介</p><p> 8255可編程并行接口芯片簡(jiǎn)介:</p><p> 8255可編程并行接口芯片有三個(gè)輸入輸出端口,即A口、B口和C口,對(duì)應(yīng)于引腳PA7~PA0、PB7~PB
20、0和PC7~PC0。其內(nèi)部還有一個(gè)控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個(gè)端口包含一個(gè)4位鎖存器。它們分別與端口A/B配合使用,可以用作控制信號(hào)輸出或作為狀態(tài)信號(hào)輸入。</p><p> 8255可編程并行接口芯片方式控制字格式說(shuō)明:</p><p> 8255有兩種控制命令字;一個(gè)是方式選擇
21、控制字;另一個(gè)是C口按位置位/復(fù)位控制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說(shuō)明也較冗長(zhǎng),故在此不作敘述,需要時(shí)用戶可自行查找有關(guān)資料。</p><p> 方式控制字格式說(shuō)明如表1:</p><p><b> 表1</b></p><p> D7:設(shè)定工作方式標(biāo)志,1有效。</p><p> D6、D
22、5:A口方式選擇</p><p><b> 0 0 —方式0</b></p><p><b> 0 1 —方式1</b></p><p><b> 1 ×—方式2</b></p><p> D4:A口功能 (1=輸入,0=輸出)</p>
23、<p> D3:C口高4位功能 (1=輸入,0=輸出)</p><p> D2:B口方式選擇 (0=方式0,1=方式1)</p><p> D1:B口功能 (1=輸入,0=輸出)</p><p> D0:C口低4位功能 (1=輸入,0=輸出)</p><p> 8255可編程并行接口芯片工作方式說(shuō)明:&
24、lt;/p><p> 方式0:基本輸入/輸出方式。適用于三個(gè)端口中的任何一個(gè)。每一個(gè)端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。</p><p> 方式1:選通輸入/輸出方式。這時(shí)A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。</p><p> 方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用
25、作輸入或輸出,此時(shí)C口的5條線用作通訊聯(lián)絡(luò)信號(hào)和中斷請(qǐng)求信號(hào)。</p><p> 2.3 74LS373簡(jiǎn)介</p><p> 74LS373 是一種帶三態(tài)門(mén)的8D鎖存器,其管腳示意圖如下示:</p><p> 其中:1D-8D為8個(gè)輸入端。</p><p> 1Q-8Q為8個(gè)輸出端。</p><p> LE
26、為數(shù)據(jù)打入端:當(dāng)LE為“1”時(shí),鎖存器輸出</p><p> 狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0”時(shí),數(shù)據(jù)</p><p><b> 打入鎖存器</b></p><p> OE為輸出允許端:當(dāng)OE=0時(shí),三態(tài)門(mén)打開(kāi);</p><p> 當(dāng)OE=1時(shí),三態(tài)門(mén)關(guān)閉,輸出高阻。</p><p>
27、; 2.4 LM041L液晶簡(jiǎn)介</p><p><b> 管教及其功能描述:</b></p><p> 模塊控制芯片提供兩套控制命令,基本指令和擴(kuò)充指令如下:</p><p><b> 3、系統(tǒng)硬件設(shè)計(jì)</b></p><p> 3.1交通管理的方案論證</p><p
28、> 東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如表2。</p><p><b> 表2</b></p><p> 表2說(shuō)明:
29、</p><p> ?。?)當(dāng)東西方向?yàn)榧t燈,此道車輛禁止通行,東西道行人可通過(guò);南北道為綠燈,此道車輛通過(guò),行人禁止通行。時(shí)間為20秒。</p><p> ?。?)黃燈閃爍3秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 </p><p> ?。?)當(dāng)東西方向?yàn)榫G燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止通過(guò),行人通行。時(shí)間為20秒。 東西方向車流大
30、 通行時(shí)間長(zhǎng)。</p><p> ?。?)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。</p><p> ?。?)此表中的紅綠燈及黃燈的顯示時(shí)間可以根據(jù)人流量來(lái)進(jìn)行調(diào)整</p><p><b> 3.2交通燈設(shè)計(jì)</b></p><p> 選用設(shè)備89C51單片機(jī)一片選用設(shè)備:89
31、C31單片機(jī)一片,8255并行通用接口芯片一片,74LS08兩片,74LS373一片,共陰極的七段數(shù)碼管4個(gè),紅、黃、綠交通燈各兩個(gè),開(kāi)關(guān)按鈕、連線若干。</p><p> 3.3 交通燈總體硬件仿真圖 </p><p> 3.4 89C51與8255的擴(kuò)展</p><p> 其中用單片機(jī)的P0端口來(lái)擴(kuò)展82
32、55,如上圖連接硬件圖,這樣連接后8255的控制口地址為FF7FH,PA,PB,PC的地址分別為FF7CH,FF7DH,FF7EH。</p><p> 3.5 紅綠黃燈模塊</p><p> 本系統(tǒng)同過(guò)8255的擴(kuò)展端口PC0—PC5六個(gè)端口來(lái)控制六個(gè)發(fā)光二極管,發(fā)光二極管采用陽(yáng)極驅(qū)動(dòng)的方式,當(dāng)輸入為高電平時(shí)點(diǎn)亮。同時(shí)通過(guò)外部中斷0來(lái)控制等狀態(tài)的改變。相應(yīng)的子程序如下:</p&g
33、t;<p> ??;狀態(tài)一東西方向綠燈,南北方向紅燈</p><p> PINT0:MOV A,40H</p><p><b> JNZ BWL0</b></p><p><b> MOV A,41H</b></p><p><b> MOV 45H,A</b&g
34、t;</p><p><b> ADD A,42H</b></p><p><b> MOV 44H,A</b></p><p><b> INC 44H</b></p><p><b> INC 45H</b></p><p&
35、gt; BWL0:MOV A,40H</p><p> CJNE A,41H,BXD0</p><p> BXD0:JNC PINT01</p><p> MOV R0,#7EH</p><p> MOV A,#0CH</p><p> MOVX @R0,A</p><p><
36、b> INC 40H</b></p><p><b> DEC 44H</b></p><p><b> DEC 45H</b></p><p><b> RETI</b></p><p> ??;狀態(tài)二東西方向黃燈,南北方向紅燈</p>
37、<p> PINT01:MOV A,40H</p><p> CJNE A,41H,BWL1</p><p> MOV 45H,42H</p><p><b> INC 45H</b></p><p> BWL1:MOV A,41H</p><p><b> ADD
38、 A,42H</b></p><p><b> MOV 43H,A</b></p><p><b> MOV A,40H</b></p><p> CJNE A,43H,BXD1</p><p> BXD1:JNC PINT02</p><p> MOV
39、 R0,#7EH</p><p> MOV A,#14H</p><p> MOVX @R0,A</p><p><b> INC 40H</b></p><p><b> DEC 44H</b></p><p><b> DEC 45H</b>
40、;</p><p><b> RETI</b></p><p> ??;狀態(tài)二東西方向紅燈,南北方向綠燈</p><p> PINT02:MOV A,40H</p><p> CJNE A,43H,BWL2</p><p><b> MOV A,41H</b></
41、p><p><b> MOV 44H,A</b></p><p><b> ADD A,42H</b></p><p><b> MOV 45H,A</b></p><p><b> INC 45H</b></p><p>&l
42、t;b> INC 44H</b></p><p> BWL2:MOV A,43H</p><p><b> ADD A,41H</b></p><p><b> MOV 43H,A</b></p><p><b> MOV A,40H</b><
43、/p><p> CJNE A,43H,BXD2</p><p> BXD2:JNC PINT03</p><p> MOV R0,#7EH</p><p> MOV A,#21H</p><p> MOVX @R0,A</p><p><b> INC 40H</b>
44、;</p><p><b> DEC 44H</b></p><p><b> DEC 45H</b></p><p><b> RETI</b></p><p> ?。粻顟B(tài)二東西方向紅燈,南北方向黃燈</p><p> PINT03:MOV A
45、,40H</p><p> CJNE A,43H,BWL3</p><p> MOV 44H,42H</p><p><b> INC 44H</b></p><p> BWL3:MOV R0,#7EH</p><p> MOV A,#22H</p><p>
46、MOVX @R0,A</p><p><b> DEC 44H</b></p><p><b> DEC 45H</b></p><p><b> INC 40H</b></p><p><b> MOV A,43H</b></p>
47、<p><b> ADD A,42H</b></p><p><b> MOV 43H,A</b></p><p><b> MOV A,40H</b></p><p> CJNE A,43H,BXD3</p><p> MOV 40H,#00</p&
48、gt;<p> BXD3:RETI</p><p> 3.6 數(shù)碼管顯示模塊</p><p> 本系統(tǒng)中選用了兩塊雙七段共陰數(shù)碼管,分別用來(lái)顯示東西方向和南北方向紅綠燈倒計(jì)時(shí)剩余時(shí)間。用8255的PB端口來(lái)驅(qū)動(dòng),應(yīng)為用同一組端口控制四個(gè)數(shù)碼管因此要用到動(dòng)態(tài)顯示,這里用P1.0—P1.3四個(gè)口來(lái)選中要送數(shù)顯示的數(shù)碼管,再用快速循環(huán)顯示來(lái)達(dá)到所需的視覺(jué)效果。顯示子程序如下
49、:</p><p> SNDISP:MOV A,44H ;南北方向的數(shù)碼管顯示</p><p><b> MOV B,#10</b></p><p><b> DIV AB</b></p><p> MOV P1,#01H ;顯示十位</p><p> MOV
50、DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p><p><b> NOP</b></p><p><b> NOP</b></p><
51、p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p><b> MOV A,B</b></p><p> MOV P1,#02H ;顯示個(gè)位</p><p> MOV DPTR,#TAB2<
52、/p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p><p><b> NOP</b></p><p><b> NOP</b></p><p> MOV A,
53、#0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p> EWDISP:MOV A,45H ;東西方向的數(shù)碼管顯示</p><p><b> MOV B,#10</b></p><p><b> DIV AB<
54、/b></p><p> MOV P1,#04H ;顯示十位</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p><p><b>
55、 NOP</b></p><p><b> NOP</b></p><p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p><b> MOV A,B</b></p&g
56、t;<p> MOV P1,#08H 顯示個(gè)位</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p><p><b> NOP</b>&
57、lt;/p><p><b> NOP</b></p><p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p><b> RET</b></p><p> TAB2
58、:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H</p><p> 3.7 外部控制按鈕</p><p> 為了控制的方便,本系統(tǒng)擴(kuò)展了一些外部按鈕來(lái)對(duì)交通燈進(jìn)行外部設(shè)置。共有4個(gè)按鈕,分別為復(fù)位鍵、設(shè)置選擇鍵、加一鍵、減一鍵。將他們的狀態(tài)送入外部中斷1來(lái)實(shí)現(xiàn)相應(yīng)的功能,這里用兩個(gè)與門(mén)來(lái)進(jìn)行狀態(tài)的疊加后再送到外部中斷1,最后在中斷程序中判
59、斷信號(hào)的具體來(lái)源,確定所要執(zhí)行的子程序。SET用來(lái)選擇狀態(tài),點(diǎn)擊第一下兩路口的綠燈點(diǎn)亮,同時(shí)在程序中關(guān)閉外部中斷0,示意現(xiàn)在可以設(shè)置綠燈顯示的時(shí)間,然后分別用INC和DEC來(lái)實(shí)現(xiàn)加一或減一,點(diǎn)擊第二下,兩路口的黃燈點(diǎn)亮,表示現(xiàn)在可以設(shè)置黃燈顯示的時(shí)間,同樣用INC和DEC來(lái)進(jìn)行調(diào)整,點(diǎn)擊第三下打開(kāi)外部中斷0,路燈開(kāi)始正常運(yùn)行。在其他時(shí)候點(diǎn)擊INC和DEC無(wú)效。還有復(fù)位鍵是用來(lái)使交通燈的回到初始狀態(tài),并接著運(yùn)行。具體實(shí)現(xiàn)代碼如下:<
60、/p><p> PINT1:JNB P3.5,PINT11 </p><p> JNB P3.0,PINT12</p><p> JNB P3.1,PINT13</p><p> PINT11:CJNE R3,#00H,TZ1</p><p> AJMP PINT11A</p><p>
61、 TZ1:CJNE R3,#01H,TZ2</p><p> AJMP PINT11B</p><p> TZ2:CJNE R3,#02H,TZ3</p><p> AJMP PINT11C</p><p> TZ3:MOV R3,#00H</p><p> PINT11A:MOV R0,#7EH</
62、p><p> MOV A,#09H</p><p> MOVX @R0,A</p><p> MOV 44H,41H</p><p> MOV 45H,41H</p><p><b> CLR EX0</b></p><p> MOV 40H,#00</p&g
63、t;<p><b> INC R3</b></p><p><b> RETI</b></p><p> PINT11B:MOV R0,#7EH</p><p> MOV A,#12H</p><p> MOVX @R0,A</p><p> MOV
64、 44H,42H</p><p> MOV 45H,42H</p><p><b> CLR EX0</b></p><p> MOV 40H,#00</p><p><b> INC R3</b></p><p><b> RETI</b>&
65、lt;/p><p> PINT11C:SETB EX0</p><p> MOV R3,#00H</p><p><b> RETI</b></p><p> PINT12:CJNE R3,#01H,TC1</p><p><b> INC 41H</b></p&
66、gt;<p> MOV 44H,41H</p><p> MOV 45H,41H</p><p> TC1:CJNE R3,#02H,TC2</p><p><b> INC 42H</b></p><p> MOV 44H,42H</p><p> MOV 45H,42
67、H</p><p><b> TC2:RETI</b></p><p> PINT13:CJNE R3,#01H,TC3</p><p><b> DEC 41H</b></p><p> MOV 44H,41H</p><p> MOV 45H,41H</p
68、><p> TC3:CJNE R3,#02H,TC4</p><p><b> DEC 42H</b></p><p> MOV 44H,42H</p><p> MOV 45H,42H</p><p><b> TC4:RETI </b></p><
69、;p> 3.8 液晶顯示模塊</p><p> 液晶顯示模塊選用了16*4的顯示板,選用8255的PA端口作為數(shù)據(jù)口。用P2.0—P2.2三個(gè)端口來(lái)作為控制端。具體顯示子程序如下:</p><p> ENABLE: CLR RS</p><p><b> CLR RW</b></p><p><b&g
70、t; CLR E</b></p><p> LCALL DELAY</p><p><b> SETB E</b></p><p><b> RET</b></p><p> KSXSHI: MOV R0,#7CH </p><p> MOV A,#8
71、0H</p><p> MOVX @R0,A</p><p> ACALL ENABLE</p><p> MOV DPTR,#TAB</p><p> LCALL WRITE1</p><p> MOV R0,#7CH</p><p> MOV A,#0C0H</p>
72、;<p> MOVX @R0,A</p><p> LCALL ENABLE</p><p> MOV DPTR,#TAB1</p><p> LCALL WRITE1</p><p><b> RET </b></p><p> WRITE1: MOV 50H,#00H
73、</p><p> A1: MOV A,50H</p><p> MOVC A,@A+DPTR</p><p> LCALL WRITE2</p><p><b> INC 50H</b></p><p><b> MOV A,50H</b></p>
74、<p> CJNE A,#10H,A1</p><p><b> RET</b></p><p> WRITE2:MOV R0,# 7CH</p><p> MOVX @R0,A</p><p><b> SETB RS</b></p><p><b
75、> CLR RW</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p><b> SETB E</b></p><p><b> RET</b></p><p> D
76、ELAY: MOV 55H,#100</p><p> D1: MOV 56H,#100</p><p> D2: DJNZ 56H,D2</p><p> DJNZ 55H,D1</p><p><b> RET </b></p><p> TAB :DB 00H,'
77、H','a','p','p','y',00H,'n','e','w',00H,'y','e','a','r','!'</p><p> TAB1:DB 00H,'Z','h',
78、9;a','n','g','R','u','i',00H,'Y','a','N','a','n',00H</p><p> 4、Protel制版</p><p><b> 4.1 原理圖</b>&l
79、t;/p><p> 4.2 PCD制版圖</p><p><b> 5、實(shí)驗(yàn)總結(jié)</b></p><p> 本本系統(tǒng)就是充分利用了89C51和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)AT89C51和可編程并行I/O接口芯片8255A為中心器件來(lái)設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過(guò)82551芯片的PC口設(shè)置紅、綠燈燃亮
80、時(shí)間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩N秒時(shí)黃燈閃爍警示(交通燈信號(hào)通過(guò)PC口輸出,顯示時(shí)間直接通過(guò)8255的PB口輸出至雙位數(shù)碼管);</p><p> 通過(guò)這次課程設(shè)計(jì),我不僅加深了對(duì)單片機(jī)理論的理解,將理論很好地應(yīng)用到實(shí)際當(dāng)中去,而且我還學(xué)會(huì)了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要我們學(xué)會(huì)將理論很好地聯(lián)系實(shí)際,并不斷地去開(kāi)動(dòng)自己的大腦,從為人類造福的意愿出發(fā),做自己力所能及的,別
81、人卻沒(méi)想到的事。同時(shí),更重要的是,我在這一設(shè)計(jì)過(guò)程中,學(xué)會(huì)了堅(jiān)持不懈,不輕易言棄。設(shè)計(jì)過(guò)程,常有一些不如意,比如,程序的一些細(xì)節(jié)經(jīng)常出錯(cuò),而且特別難以發(fā)現(xiàn)錯(cuò)誤,必須要靜下心來(lái)仔細(xì)查看,認(rèn)真核對(duì)才能夠發(fā)現(xiàn)錯(cuò)誤的所在,這要求我們必須要有相當(dāng)?shù)哪托模潋溄湓?,也許這就是在對(duì)我們提出了挑戰(zhàn),勇敢過(guò),也戰(zhàn)勝了,勝利的鐘聲也就一定會(huì)為我們而敲響。</p><p> 這個(gè)設(shè)計(jì)過(guò)程中,我遇到過(guò)許多次失敗的考驗(yàn),就比如,自己對(duì)實(shí)
82、際生活中的交通秩序的不了解給整個(gè)設(shè)計(jì)帶來(lái)的困擾,真想要就此罷休,然而,就在想要放棄的那一刻,我明白了,原來(lái)結(jié)果并不那么重要,我們更應(yīng)該注重的是這一整個(gè)過(guò)程。于是,我堅(jiān)持了下來(lái)。當(dāng)然最終,這個(gè)設(shè)計(jì)很成功,主要體現(xiàn)在,整個(gè)系統(tǒng)的程序都是由我們自己獨(dú)立完成,并用了8255來(lái)擴(kuò)展端口,程序簡(jiǎn)單易讀,結(jié)構(gòu)清楚。</p><p> 總之通過(guò)本次課程設(shè)計(jì)我們學(xué)到了很多,不僅得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問(wèn)題全面系統(tǒng)
83、的鍛煉。使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)過(guò)程,以及在常用編程設(shè)計(jì)思路技巧(特別是匯編語(yǔ)言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。</p><p><b> 6、參考書(shū)籍:</b></p><p> 張毅剛 單片機(jī)原理及應(yīng)用 高等教育出版社</p><p> 7、附錄:完整程序代碼</p&g
84、t;<p><b> ORG 0000H</b></p><p><b> AJMP MAIN</b></p><p><b> ORG 0003H</b></p><p> AJMP PINT0</p><p><b> ORG 0013H&
85、lt;/b></p><p> AJMP PINT1</p><p><b> ORG 0100H</b></p><p> MAIN:MOV SP,#60H</p><p> RS EQU P2.2</p><p> RW EQU P2.1</p><p>
86、; E EQU P2.0</p><p> MOV R0,#7FH</p><p> MOV A,#80H</p><p> MOVX @R0,A</p><p> MOV R0,#7EH</p><p> MOV A,#24H</p><p> MOVX @R0,A</p
87、><p> MOV 40H,#00</p><p> MOV 41H,#20</p><p> MOV 42H,#03</p><p> MOV 44H,41H</p><p> MOV 45H,42H</p><p> MOV P1,#0FH</p><p>
88、 MOV R2,#00H</p><p><b> SETB EX1</b></p><p><b> SETB IT1</b></p><p><b> SETB PX1</b></p><p><b> SETB EX0</b></p&g
89、t;<p><b> SETB IT0</b></p><p><b> CLR PX0</b></p><p><b> SETB EA</b></p><p> START:MOV R0,#7CH</p><p> MOV A,#01H</p&
90、gt;<p> MOVX @R0,A</p><p> ACALL ENABLE</p><p> MOV A,#38H</p><p> MOV R0,7CH</p><p> MOVX @R0,A</p><p> ACALL ENABLE</p><p> MO
91、V A,#0CH</p><p> MOV R0,#7CH</p><p> MOVX @R0,A</p><p> ACALL ENABLE </p><p> LCALL KSXSHI</p><p> LOOP:LCALL SNDISP</p><p><b> AJ
92、MP LOOP</b></p><p> PINT0:MOV A,40H</p><p><b> JNZ BWL0</b></p><p><b> MOV A,41H</b></p><p><b> MOV 45H,A</b></p>&
93、lt;p><b> ADD A,42H</b></p><p><b> MOV 44H,A</b></p><p><b> INC 44H</b></p><p><b> INC 45H</b></p><p> BWL0:MOV A
94、,40H</p><p> CJNE A,41H,BXD0</p><p> BXD0:JNC PINT01</p><p> MOV R0,#7EH</p><p> MOV A,#0CH</p><p> MOVX @R0,A</p><p><b> INC 40H&
95、lt;/b></p><p><b> DEC 44H</b></p><p><b> DEC 45H</b></p><p><b> RETI</b></p><p> PINT01:MOV A,40H</p><p> CJNE
96、A,41H,BWL1</p><p> MOV 45H,42H</p><p><b> INC 45H</b></p><p> BWL1:MOV A,41H</p><p><b> ADD A,42H</b></p><p><b> MOV 43H
97、,A</b></p><p><b> MOV A,40H</b></p><p> CJNE A,43H,BXD1</p><p> BXD1:JNC PINT02</p><p> MOV R0,#7EH</p><p> MOV A,#14H</p>&l
98、t;p> MOVX @R0,A</p><p><b> INC 40H</b></p><p><b> DEC 44H</b></p><p><b> DEC 45H</b></p><p><b> RETI</b></p&g
99、t;<p> PINT02:MOV A,40H</p><p> CJNE A,43H,BWL2</p><p><b> MOV A,41H</b></p><p><b> MOV 44H,A</b></p><p><b> ADD A,42H</b&g
100、t;</p><p><b> MOV 45H,A</b></p><p><b> INC 45H</b></p><p><b> INC 44H</b></p><p> BWL2:MOV A,43H</p><p><b>
101、ADD A,41H</b></p><p><b> MOV 43H,A</b></p><p><b> MOV A,40H</b></p><p> CJNE A,43H,BXD2</p><p> BXD2:JNC PINT03</p><p>
102、MOV R0,#7EH</p><p> MOV A,#21H</p><p> MOVX @R0,A</p><p><b> INC 40H</b></p><p><b> DEC 44H</b></p><p><b> DEC 45H</b
103、></p><p><b> RETI</b></p><p> PINT03:MOV A,40H</p><p> CJNE A,43H,BWL3</p><p> MOV 44H,42H</p><p><b> INC 44H</b></p>
104、<p> BWL3:MOV R0,#7EH</p><p> MOV A,#22H</p><p> MOVX @R0,A</p><p><b> DEC 44H</b></p><p><b> DEC 45H</b></p><p><b&
105、gt; INC 40H</b></p><p><b> MOV A,43H</b></p><p><b> ADD A,42H</b></p><p><b> MOV 43H,A</b></p><p><b> MOV A,40H<
106、/b></p><p> CJNE A,43H,BXD3</p><p> MOV 40H,#00</p><p> BXD3:RETI</p><p> PINT1:JNB P3.5,PINT11</p><p> JNB P3.0,PINT12</p><p> JNB
107、P3.1,PINT13</p><p> PINT11:CJNE R3,#00H,TZ1</p><p> AJMP PINT11A</p><p> TZ1:CJNE R3,#01H,TZ2</p><p> AJMP PINT11B</p><p> TZ2:CJNE R3,#02H,TZ3</p&
108、gt;<p> AJMP PINT11C</p><p> TZ3:MOV R3,#00H</p><p> PINT11A:MOV R0,#7EH</p><p> MOV A,#09H</p><p> MOVX @R0,A</p><p> MOV 44H,41H</p>
109、<p> MOV 45H,41H</p><p><b> CLR EX0</b></p><p> MOV 40H,#00</p><p><b> INC R3</b></p><p><b> RETI</b></p><p>
110、 PINT11B:MOV R0,#7EH</p><p> MOV A,#12H</p><p> MOVX @R0,A</p><p> MOV 44H,42H</p><p> MOV 45H,42H</p><p><b> CLR EX0</b></p><
111、p> MOV 40H,#00</p><p><b> INC R3</b></p><p><b> RETI</b></p><p> PINT11C:SETB EX0</p><p> MOV R3,#00H</p><p><b> RET
112、I</b></p><p> PINT12:CJNE R3,#01H,TC1</p><p><b> INC 41H</b></p><p> MOV 44H,41H</p><p> MOV 45H,41H</p><p> TC1:CJNE R3,#02H,TC2<
113、;/p><p><b> INC 42H</b></p><p> MOV 44H,42H</p><p> MOV 45H,42H</p><p><b> TC2:RETI</b></p><p> PINT13:CJNE R3,#01H,TC3</p>
114、<p><b> DEC 41H</b></p><p> MOV 44H,41H</p><p> MOV 45H,41H</p><p> TC3:CJNE R3,#02H,TC4</p><p><b> DEC 42H</b></p><p>
115、 MOV 44H,42H</p><p> MOV 45H,42H</p><p><b> TC4:RETI</b></p><p> SNDISP:MOV A,44H</p><p><b> MOV B,#10</b></p><p><b> D
116、IV AB</b></p><p> MOV P1,#01H</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p><p><b>
117、 NOP</b></p><p><b> NOP</b></p><p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p><b> MOV A,B</b></p&
118、gt;<p> MOV P1,#02H</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p><p><b> NOP</b></p&
119、gt;<p><b> NOP</b></p><p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p> EWDISP:MOV A,45H</p><p><b> MOV B,#
120、10</b></p><p><b> DIV AB</b></p><p> MOV P1,#04H</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p&
121、gt; MOVX @R0,A</p><p><b> NOP</b></p><p><b> NOP</b></p><p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p>
122、<p><b> MOV A,B</b></p><p> MOV P1,#08H</p><p> MOV DPTR,#TAB2</p><p> MOVC A,@A+DPTR</p><p> MOV R0,#7DH</p><p> MOVX @R0,A</p&
123、gt;<p><b> NOP</b></p><p><b> NOP</b></p><p> MOV A, #0FFH</p><p> MOV R0, #7DH</p><p> MOVX @R0, A</p><p><b> R
124、ET</b></p><p> ENABLE: CLR RS</p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> LCALL DELAY</p><p><b> SETB E<
125、/b></p><p><b> RET</b></p><p> KSXSHI: MOV R0,#7CH </p><p> MOV A,#80H</p><p> MOVX @R0,A</p><p> ACALL ENABLE</p><p> M
126、OV DPTR,#TAB</p><p> LCALL WRITE1</p><p> MOV R0,#7CH</p><p> MOV A,#0C0H</p><p> MOVX @R0,A</p><p> LCALL ENABLE</p><p> MOV DPTR,#TAB
127、1</p><p> LCALL WRITE1</p><p><b> RET </b></p><p> WRITE1: MOV 50H,#00H</p><p> A1: MOV A,50H</p><p> MOVC A,@A+DPTR</p><p>
128、 LCALL WRITE2</p><p><b> INC 50H</b></p><p><b> MOV A,50H</b></p><p> CJNE A,#10H,A1</p><p><b> RET</b></p><p> WR
129、ITE2:MOV R0,# 7CH</p><p> MOVX @R0,A</p><p><b> SETB RS</b></p><p><b> CLR RW</b></p><p><b> CLR E</b></p><p> LCA
130、LL DELAY</p><p><b> SETB E</b></p><p><b> RET</b></p><p> DELAY: MOV 55H,#100</p><p> D1: MOV 56H,#100</p><p> D2: DJNZ
131、 56H,D2</p><p> DJNZ 55H,D1</p><p><b> RET </b></p><p> TAB:DB 00H,'H','a','p','p','y',00H,'n','e','w
132、9;,00H,'y','e','a','r','!'</p><p> TAB1:DB 00H,'Z','h','a','n','g','R','u','i',00H,'Y','a&
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)交通燈課程設(shè)計(jì)報(bào)告
- 交通燈單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)交通燈課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)-交通燈報(bào)告
- 交通燈單片機(jī)課程設(shè)計(jì)報(bào)告
- 單片機(jī)交通燈課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)報(bào)告---交通燈
- 單片機(jī)課程設(shè)計(jì)-交通燈報(bào)告
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---交通燈
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-交通燈
- 單片機(jī)課程設(shè)計(jì)--交通燈
- 單片機(jī)課程設(shè)計(jì)(交通燈)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)
- 單片機(jī)交通燈課程設(shè)計(jì)報(bào)告 (2)
- 單片機(jī)交通燈課程設(shè)計(jì)報(bào)告1
評(píng)論
0/150
提交評(píng)論