單片機課程設(shè)計-交通燈報告_第1頁
已閱讀1頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  單片機課程設(shè)計實驗報告</p><p>  課題: 交通燈 </p><p>  班級: </p><p>  成員: </p><p>  指導(dǎo)老師: </p><p>  單片機課程設(shè)計實驗報告</

2、p><p>  :近年來隨著科技的飛速發(fā)展,單片機的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實時檢測和自動控制的單片機應(yīng)用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p>  十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的就是交通信號燈的自動指揮系統(tǒng)。交通信

3、號燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機AT89C51和可編程并行I/O接口芯片8255A為中心器件來設(shè)計交通燈控制器,實現(xiàn)設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點亮,倒計時黃燈警示(交通燈信號通過8255的PC口輸出,顯示時間直接通過PB口輸出至雙位數(shù)碼管);并用復(fù)位按鍵表示出現(xiàn)特殊情況時四個方向禁止通行,用set,inc和dec按鍵來實現(xiàn)紅綠燈及黃燈顯示時間的控制。同時還加了LCD液晶顯示功能。</p>&l

4、t;p><b>  1、 單片機概述</b></p><p>  單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領(lǐng)域,故又稱為微控制器。通常單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。單片機經(jīng)過

5、1、2、3、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p><b>  2、 芯片簡介</b></p><p>  2.1 MSC-51芯片簡介</p><p>  MCS-51單片機內(nèi)部結(jié)構(gòu):</p><p>  89C51

6、是MCS-51系列單片機的典型產(chǎn)品,我們以這一代表性的機型進(jìn)行系統(tǒng)的講解。    89C51單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:</p><p><b>  ·中央處理器:</b></p>

7、<p>  中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。</p><p>  ·數(shù)據(jù)存儲器(RAM)</p><p>  89C51內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制

8、指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。</p><p><b>  1圖</b></p><p>  ·程序存儲器(ROM):</p><p>  89C51共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p

9、><p>  ·定時/計數(shù)器(ROM):</p><p>  89C51有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p>  ·并行輸入輸出(I/O)口:</p><p>  89C51共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。</p>&

10、lt;p><b>  ·全雙工串行口:</b></p><p>  89C51內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b>  ·中斷系統(tǒng):</b></p><p>  89C51具備較完善的中斷功能,

11、有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。</p><p><b>  ·時鐘電路:</b></p><p>  89C51內(nèi)置最高頻率達(dá)12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。</p><p>  單片機的結(jié)構(gòu)有兩種類型,一種是程

12、序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機則采用普林斯頓結(jié)構(gòu)。</p><p>  下圖是MCS-51系列單片機的內(nèi)部結(jié)構(gòu)示意圖2。</p><p><b>

13、;  圖2</b></p><p>  MCS-51的引腳說明:</p><p>  MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對這些引腳的功能加以說明:</p><

14、p>  MCS-51的引腳說明:</p><p>  MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對這些引腳的功能加以說明:如圖3</p><p><b>  圖3</b>

15、</p><p>  Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)89C51通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),

16、89C51的初始態(tài)。</p><p>  89C51的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p><b>  圖4</b></p><p>  ·Pin30:ALE/當(dāng)訪問外部程序器時,ALE(地址鎖

17、存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當(dāng)作一個時鐘向外輸出。更有一個特點,當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。</p><p>  如果單片機是EPROM,在編程其間,將用于輸入編程脈沖。</p><p>  ·Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信

18、號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p>  ·Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對

19、內(nèi)部無程序存儲器的8031,EA端必須接地。</p><p>  在編程時,EA/Vpp腳還需加上21V的編程電壓。</p><p>  2.2 8255芯片簡介</p><p>  8255可編程并行接口芯片簡介:</p><p>  8255可編程并行接口芯片有三個輸入輸出端口,即A口、B口和C口,對應(yīng)于引腳PA7~PA0、PB7~PB

20、0和PC7~PC0。其內(nèi)部還有一個控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個端口包含一個4位鎖存器。它們分別與端口A/B配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。</p><p>  8255可編程并行接口芯片方式控制字格式說明:</p><p>  8255有兩種控制命令字;一個是方式選擇

21、控制字;另一個是C口按位置位/復(fù)位控制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時用戶可自行查找有關(guān)資料。</p><p>  方式控制字格式說明如表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可編程并行接口芯片工作方式說明:&

24、lt;/p><p>  方式0:基本輸入/輸出方式。適用于三個端口中的任何一個。每一個端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。</p><p>  方式1:選通輸入/輸出方式。這時A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號和中斷請求信號。</p><p>  方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用

25、作輸入或輸出,此時C口的5條線用作通訊聯(lián)絡(luò)信號和中斷請求信號。</p><p>  2.3 74LS373簡介</p><p>  74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖如下示:</p><p>  其中:1D-8D為8個輸入端。</p><p>  1Q-8Q為8個輸出端。</p><p>  LE

26、為數(shù)據(jù)打入端:當(dāng)LE為“1”時,鎖存器輸出</p><p>  狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0”時,數(shù)據(jù)</p><p><b>  打入鎖存器</b></p><p>  OE為輸出允許端:當(dāng)OE=0時,三態(tài)門打開;</p><p>  當(dāng)OE=1時,三態(tài)門關(guān)閉,輸出高阻。</p><p>

27、;  2.4 LM041L液晶簡介</p><p><b>  管教及其功能描述:</b></p><p>  模塊控制芯片提供兩套控制命令,基本指令和擴充指令如下:</p><p><b>  3、系統(tǒng)硬件設(shè)計</b></p><p>  3.1交通管理的方案論證</p><p

28、>  東西、南北兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案如表2。</p><p><b>  表2</b></p><p>  表2說明:

29、</p><p> ?。?)當(dāng)東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時間為20秒。</p><p> ?。?)黃燈閃爍3秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 </p><p> ?。?)當(dāng)東西方向為綠燈,此道車輛通行;南北方向為紅燈,南北道車輛禁止通過,行人通行。時間為20秒。 東西方向車流大

30、 通行時間長。</p><p> ?。?)這樣如上表的時間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。</p><p>  (5)此表中的紅綠燈及黃燈的顯示時間可以根據(jù)人流量來進(jìn)行調(diào)整</p><p><b>  3.2交通燈設(shè)計</b></p><p>  選用設(shè)備89C51單片機一片選用設(shè)備:89

31、C31單片機一片,8255并行通用接口芯片一片,74LS08兩片,74LS373一片,共陰極的七段數(shù)碼管4個,紅、黃、綠交通燈各兩個,開關(guān)按鈕、連線若干。</p><p>  3.3 交通燈總體硬件仿真圖 </p><p>  3.4 89C51與8255的擴展</p><p>  其中用單片機的P0端口來擴展82

32、55,如上圖連接硬件圖,這樣連接后8255的控制口地址為FF7FH,PA,PB,PC的地址分別為FF7CH,FF7DH,FF7EH。</p><p>  3.5 紅綠黃燈模塊</p><p>  本系統(tǒng)同過8255的擴展端口PC0—PC5六個端口來控制六個發(fā)光二極管,發(fā)光二極管采用陽極驅(qū)動的方式,當(dāng)輸入為高電平時點亮。同時通過外部中斷0來控制等狀態(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> ?。粻顟B(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>  ;狀態(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ù)碼管,分別用來顯示東西方向和南北方向紅綠燈倒計時剩余時間。用8255的PB端口來驅(qū)動,應(yīng)為用同一組端口控制四個數(shù)碼管因此要用到動態(tài)顯示,這里用P1.0—P1.3四個口來選中要送數(shù)顯示的數(shù)碼管,再用快速循環(huán)顯示來達(dá)到所需的視覺效果。顯示子程序如下

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 ;顯示個位</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 顯示個位</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)擴展了一些外部按鈕來對交通燈進(jìn)行外部設(shè)置。共有4個按鈕,分別為復(fù)位鍵、設(shè)置選擇鍵、加一鍵、減一鍵。將他們的狀態(tài)送入外部中斷1來實現(xiàn)相應(yīng)的功能,這里用兩個與門來進(jìn)行狀態(tài)的疊加后再送到外部中斷1,最后在中斷程序中判

59、斷信號的具體來源,確定所要執(zhí)行的子程序。SET用來選擇狀態(tài),點擊第一下兩路口的綠燈點亮,同時在程序中關(guān)閉外部中斷0,示意現(xiàn)在可以設(shè)置綠燈顯示的時間,然后分別用INC和DEC來實現(xiàn)加一或減一,點擊第二下,兩路口的黃燈點亮,表示現(xiàn)在可以設(shè)置黃燈顯示的時間,同樣用INC和DEC來進(jìn)行調(diào)整,點擊第三下打開外部中斷0,路燈開始正常運行。在其他時候點擊INC和DEC無效。還有復(fù)位鍵是用來使交通燈的回到初始狀態(tài),并接著運行。具體實現(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三個端口來作為控制端。具體顯示子程序如下:</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、實驗總結(jié)</b></p><p>  本本系統(tǒng)就是充分利用了89C51和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機AT89C51和可編程并行I/O接口芯片8255A為中心器件來設(shè)計交通燈控制器,實現(xiàn)了能根據(jù)實際車流量通過82551芯片的PC口設(shè)置紅、綠燈燃亮

80、時間的功能;紅綠燈循環(huán)點亮,倒計時剩N秒時黃燈閃爍警示(交通燈信號通過PC口輸出,顯示時間直接通過8255的PB口輸出至雙位數(shù)碼管);</p><p>  通過這次課程設(shè)計,我不僅加深了對單片機理論的理解,將理論很好地應(yīng)用到實際當(dāng)中去,而且我還學(xué)會了如何去培養(yǎng)我們的創(chuàng)新精神,從而不斷地戰(zhàn)勝自己,超越自己。創(chuàng)新,是要我們學(xué)會將理論很好地聯(lián)系實際,并不斷地去開動自己的大腦,從為人類造福的意愿出發(fā),做自己力所能及的,別

81、人卻沒想到的事。同時,更重要的是,我在這一設(shè)計過程中,學(xué)會了堅持不懈,不輕易言棄。設(shè)計過程,常有一些不如意,比如,程序的一些細(xì)節(jié)經(jīng)常出錯,而且特別難以發(fā)現(xiàn)錯誤,必須要靜下心來仔細(xì)查看,認(rèn)真核對才能夠發(fā)現(xiàn)錯誤的所在,這要求我們必須要有相當(dāng)?shù)哪托?,戒驕戒躁,也許這就是在對我們提出了挑戰(zhàn),勇敢過,也戰(zhàn)勝了,勝利的鐘聲也就一定會為我們而敲響。</p><p>  這個設(shè)計過程中,我遇到過許多次失敗的考驗,就比如,自己對實

82、際生活中的交通秩序的不了解給整個設(shè)計帶來的困擾,真想要就此罷休,然而,就在想要放棄的那一刻,我明白了,原來結(jié)果并不那么重要,我們更應(yīng)該注重的是這一整個過程。于是,我堅持了下來。當(dāng)然最終,這個設(shè)計很成功,主要體現(xiàn)在,整個系統(tǒng)的程序都是由我們自己獨立完成,并用了8255來擴展端口,程序簡單易讀,結(jié)構(gòu)清楚。</p><p>  總之通過本次課程設(shè)計我們學(xué)到了很多,不僅得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)

83、的鍛煉。使我在單片機的基本原理、單片機應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。</p><p><b>  6、參考書籍:</b></p><p>  張毅剛 單片機原理及應(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. 本站所有資源如無特殊說明,都需要本地電腦安裝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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論