自動控制的交通指示燈課程設(shè)計說明_第1頁
已閱讀1頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設(shè)計說明書</b></p><p>  名稱 單片機原理及應(yīng)用課程設(shè)計 </p><p>  2012年9月17日至2011年9月28日共 2 周</p><p>  院  系 機電工程 </p><p>  班 級

2、 </p><p>  姓 名 </p><p>  系 主 任 </p><p>  教研室主任 </p><p>  指導(dǎo)教師 </p><p><b>  目錄</b></p><p

3、><b>  一 課題介紹3</b></p><p>  1.1 課題名稱3</p><p>  1.2 課題要求4</p><p>  1.3 課程設(shè)計要求4</p><p><b>  二 系統(tǒng)設(shè)計4</b></p><p>  2.1 系統(tǒng)總體

4、方案設(shè)計4</p><p>  2.2 系統(tǒng)的整體方案設(shè)計圖5</p><p>  2.3 系統(tǒng)硬件設(shè)計5</p><p>  2.4 系統(tǒng)軟件設(shè)計10</p><p><b>  三、系統(tǒng)仿真14</b></p><p>  3.1工具軟件簡介14</p>&

5、lt;p>  3.2系統(tǒng)仿真模型的建立16</p><p>  3.3 Keil和Proteus的聯(lián)合調(diào)試20</p><p>  3.4 系統(tǒng)仿真結(jié)果26</p><p><b>  附錄:31</b></p><p>  附錄1.匯編程序:31</p><p>  附錄2.

6、系統(tǒng)原理總圖34</p><p><b>  一 課題介紹</b></p><p><b>  1.1 課題名稱</b></p><p>  自動控制的交通指示燈</p><p><b>  1.2 課題要求</b></p><p>  本設(shè)計要求

7、用單片機設(shè)計一個自動控制交通燈系統(tǒng),十字路口兩個方向的交通指示燈控制,定時時間到后經(jīng)3秒黃燈后切換交通控制方向。該系統(tǒng)的具體功能如下:</p><p>  該控制系統(tǒng)能控制東、西、南、北四個路口的紅、黃、綠信號燈正常工作。</p><p>  當(dāng)東西方向準(zhǔn)行,南北方向禁行時,東西方向亮綠燈,南北方向亮紅燈。</p><p>  當(dāng)南北方向準(zhǔn)行,東西方向禁行時,南北方

8、向亮綠燈,東西方向亮紅燈。</p><p>  兩垂直方向的準(zhǔn)行時間均為30s。</p><p>  四個道口只用一組由十位和個位組成的數(shù)碼管顯示準(zhǔn)行(或禁行)的剩余時間。</p><p>  1.3 課程設(shè)計要求</p><p> ?。?)根據(jù)課題要求,確定設(shè)計方案;</p><p> ?。?)在Proteus軟件

9、中,繪制系統(tǒng)原理圖;</p><p>  (3)在keil中編寫單片機程序,結(jié)合原理圖進(jìn)行系統(tǒng)調(diào)試;</p><p> ?。?)記錄系統(tǒng)運行結(jié)果,書寫課程設(shè)計報告。</p><p><b>  二 系統(tǒng)設(shè)計</b></p><p>  2.1 系統(tǒng)總體方案設(shè)計</p><p>  本系統(tǒng)擬采用

10、AT89C51單片機作為智能交通燈系統(tǒng)的控制核心。從設(shè)計所要完成的任務(wù)來看,單一路口顯示倒計時時間的數(shù)碼必須用兩位,對于七段數(shù)碼管,考慮到AT89C51單片機所能提供I/O接口的數(shù)量,倒計時顯示裝置中的數(shù)碼管在本系統(tǒng)中采用的是靜態(tài)顯示;十字路口共需4組紅綠燈,加上轉(zhuǎn)換黃燈,一共是12只燈,須用6個端口進(jìn)行控制,具體I/O接口分配為:P1.0~P1.2分別接?xùn)|西方向的紅、綠、黃共6盞信號燈,P1.3~P1.5分別接南北方向的紅、綠、黃共6

11、盞信號燈;AT89C51單片機的I/O口作為輸出時,具有較大的吸收電流能力,因此我們可以選用共陽極數(shù)碼管,這樣由單片機的I/O口就可以驅(qū)動,從而簡化硬件電路的設(shè)計;此外專門設(shè)計了監(jiān)控電路對控制系統(tǒng)進(jìn)行實時監(jiān)控,保證系統(tǒng)工作的穩(wěn)定性和持續(xù)性。</p><p>  2.2 系統(tǒng)的整體方案設(shè)計圖</p><p>  圖1 系統(tǒng)的整體方案設(shè)計圖</p><p>  2.

12、3 系統(tǒng)硬件設(shè)計</p><p><b>  2.3.1復(fù)位電路</b></p><p>  圖2上電自動復(fù)位電路</p><p>  為了確??刂葡到y(tǒng)能夠穩(wěn)定可靠的工作,復(fù)位電路是必不可少的一部分。它可以保證程序從指保證程序從指定處開始執(zhí)行,即從程序存儲器的0000H地址單元開始執(zhí)行程序。另外當(dāng)程序運行出錯或操作錯誤使系統(tǒng)處于死機狀態(tài)時需

13、復(fù)位以重新啟動。</p><p>  上電自動復(fù)位是通過外部復(fù)位電路的電容充電實現(xiàn)的。通電時,電容兩端相當(dāng)于短路,于是RST引腳上為高電平,然后電源通過電阻對電容進(jìn)行麅,RST端電壓慢慢降下來,降到一定程度時變?yōu)榈碗娖剑瑔纹瑱C正常工作。上電自動復(fù)位電路如圖4-1所示</p><p>  2.3.2 晶體振蕩電路</p><p><b>  圖3 晶體振

14、蕩電路</b></p><p>  單片機必須在時鐘的驅(qū)動下才能進(jìn)行工作。AT89C51單片機內(nèi)部具有一個時鐘振蕩電路,只需要外接振蕩器,即可為各部分提供時鐘信號。</p><p>  使用晶振電路時,只要在引腳XTAL1和XTAL2上外接定時反饋回路,振蕩器OSC就能自激振蕩,產(chǎn)生矩形時鐘脈沖序列。定時反饋回路常由石英晶振和微調(diào)電容組成,其中石英晶振的頻率是單片機的重要性能指

15、標(biāo)之一,時鐘頻率越高,單片機控制器的控制節(jié)拍就越快,運算速度也就越快。該電路是用12MHz的石英晶振和兩個30p的電容器。石英晶振的頻率選為典型值12MHz,這樣有得于得到?jīng)]有誤差的波特率。電容器C2和C3是起穩(wěn)定振蕩頻率、快速起振的作用。</p><p>  2.3.3 AT89S51單片機最小系統(tǒng)設(shè)計</p><p>  圖4 AT89S51單片機最小系統(tǒng)原理圖</p>

16、;<p>  2.3.4 交通燈電路的設(shè)計 </p><p>  圖5 交通燈電路圖</p><p>  單片機的I/O接口直接和交通燈(LED)連接。在十字路口的四組紅、黃、綠三色交通燈中,東西方向道路上的兩組同色燈連接在一起,南北方向道路上的兩組同色燈連接在一起,受單片機P1.0~P1.5控制。12個發(fā)光二極管采用了共陽極的連接方式,因此I/O口輸出低電平時,與之

17、相連的LED會亮,I/O口輸出高電平時,與之相連的LED會滅。交通燈電路如圖5所示。</p><p>  2.3.5 倒計時顯示裝置電路</p><p>  圖6 倒計時顯示電路圖</p><p>  該交通燈控制系統(tǒng)在正常工作情況下,每15s循環(huán)變換一次,為方便提示路上的行人及車輛交通燈轉(zhuǎn)換的剩余時間,專門為控制系統(tǒng)設(shè)計了一個倒計時顯示裝置。該顯示裝置選用七段

18、數(shù)碼管來顯示交通燈的剩余時間。本來根據(jù)控制要求,每個路口需要兩個數(shù)碼管,這樣四個路口就需要八個數(shù)碼管,但由于四組顯示的倒計時時間都是一樣所以只需使用一組數(shù)碼管即可。由于AT89C51單片機的I/O作為輸出時,具有較大的吸收電流能力,因此我們可以選用共陽型數(shù)碼管,這樣由單片機的I/O就可以直接驅(qū)動,從而簡化硬件電路的設(shè)計。而在電路中是用阻值為4.7k的排電路作為上位電路,限流電阻卻用阻值為200的電阻。如圖6所示。</p>

19、<p>  2.3.6 系統(tǒng)原理總圖</p><p><b>  圖7 系統(tǒng)原理總圖</b></p><p>  2.4 系統(tǒng)軟件設(shè)計</p><p>  2.4.1 主程序流程圖</p><p>  該智能交通燈控制系統(tǒng)的軟件設(shè)計采用的是順序執(zhí)行并反復(fù)循環(huán)的方法。智能交通燈控制系統(tǒng)在正常的情況下,每

20、15s循環(huán)變化一次。每個循環(huán)周期在還剩余5s時,四個路口的黃燈同時點亮并開始閃爍,以提醒行人及車輛,交通燈將發(fā)生轉(zhuǎn)換。要程序中定時掃描P3口,若有鍵按下,則調(diào)用鍵盤子程序進(jìn)行相應(yīng)也處理;若無,則程序繼續(xù)執(zhí)行。主程序流程圖如圖5-1所示。</p><p>  圖8 主程序流程圖</p><p>  2.4.2 主要代碼說明:</p><p><b> 

21、 LP:</b></p><p>  MOV 33H,#1EH ;設(shè)置倒計時顯示數(shù)值</p><p>  MOV P1,#0F3H ;使交通燈東西綠,南北紅</p><p>  MOV R7,#1BH ;紅燈顯示時間數(shù)值</p><p><b>  LP1:</b></

22、p><p>  LCALL DISP ;調(diào)用子程序</p><p>  DJNZ R7,LP1 ;</p><p>  MOV P1,#0E1H ;交通燈東西綠,南北紅同時加亮黃燈</p><p>  MOV 20H,#02H ;黃燈顯示次數(shù)</p><p><b>  LP2:&

23、lt;/b></p><p>  LCALL DISP ;調(diào)用子程序</p><p>  DJNZ 20H,LP2</p><p>  MOV P1,#0DEH ;交通燈南北綠,東西紅</p><p>  MOV R7,#1BH ;紅燈顯示時間數(shù)值</p><p><b>

24、;  LP3:</b></p><p>  LCALL DISP ;調(diào)用子程序</p><p>  DJNZ R7,LP3</p><p>  MOV P1,#0CCH ;交通燈南北綠,東西紅同時加亮黃燈</p><p>  MOV 20H,#02H ;黃燈顯示次數(shù)</p><

25、p>  2.4.3 子程序</p><p><b> ?。貉訒r1秒子程序</b></p><p>  DEL_1S: MOV R3,#4 ;延時1秒子程序</p><p>  L3: MOV R2,#250</p><p>  L2: MOV R1,#250</p><p><

26、b>  L1: NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R1,L1</p><p>  DJNZ R2,L2</p><p>  DJNZ R3,L3</p><p><b>  RET</b></p&

27、gt;<p> ?。喊硕螖?shù)碼管倒計時子程序:</p><p><b>  DISP:</b></p><p>  DEC 33H ;減1操作</p><p><b>  MOV A,33H</b></p><p>  CJNE A,#01H,DIR1</p&g

28、t;<p>  MOV 33H,#1EH</p><p><b>  DIR1:</b></p><p>  MOV B,#0AH</p><p>  DIV AB ;提取出倒計時數(shù)值的十位和個位數(shù)</p><p>  MOV DPTR,#TAB ;字形表的入口地址</

29、p><p>  MOVC A,@A+DPTR ;查表獲取十位數(shù)的字型碼</p><p><b>  MOV 30H,A</b></p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR ;查表獲取個位數(shù)的字型碼</p><p

30、><b>  MOV 31H,A</b></p><p><b>  MOV A,30H</b></p><p>  MOV P0,A ;將十位數(shù)字型碼送到P0口</p><p><b>  MOV A,31H</b></p><p>  MOV P

31、2,A ;將十位數(shù)字型碼送到P2口</p><p>  LCALL DEL_1S</p><p><b>  RET</b></p><p><b>  TAB:</b></p><p>  DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H

32、,080H,090H</p><p><b>  END</b></p><p><b>  三、系統(tǒng)仿真</b></p><p><b>  3.1工具軟件簡介</b></p><p>  3.1.1 Proteus簡介</p><p>  Pro

33、teus ISIS是英國Labcenter公司開發(fā)的電路分析與實物仿真軟件。它運行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點是:①實現(xiàn)了單片機仿真和SPICE電路仿真相結(jié)合。具有模擬電路仿真、數(shù)字電路仿真、單片機及其外圍電路組成的系統(tǒng)的仿真、RS232動態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號發(fā)生器等。②支持主流單片機系統(tǒng)

34、的仿真。目前支持的單片機類型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各種外圍芯片。③提供軟件調(diào)試功能。在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點等調(diào)試功能,同時可以觀察各個變量、寄存器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時支持第三方的軟件編譯和調(diào)試環(huán)境。④具有強大的原理圖繪制功能??傊撥浖且豢罴瘑纹瑱C和SPICE分析于一身的仿真

35、軟件,功能極其強大。</p><p>  3.1.2 Keil簡介</p><p>  隨著單片機開發(fā)技術(shù)的不斷發(fā)展,從普遍使用匯編語言到逐漸使用高級語言開發(fā),單片機的開發(fā)軟件也在不斷發(fā)展,Keil軟件是目前最流行開發(fā)MCS-51系列單片機的軟件,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。Keil提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的

36、完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(uVision)將這些部份組合在一起。運行Keil軟件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空閑的硬盤空間、WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。掌握這一軟件的使用對于使用51系列單片機的愛好者來說是十分必要的,如果你使用C語言編程,那么Keil幾乎就是你的不二之選(目前在國內(nèi)你只能買到該軟件、而你買的仿真機也很可能只支持該軟件),即使不使用C語言而僅用匯

37、編語言編程,其方便易用的集成環(huán)境、強大的軟件仿真調(diào)試工具也會令你事半功倍。</p><p>  3.2系統(tǒng)仿真模型的建立</p><p>  3.2.1 將所需元器件加入到對象選擇器窗口</p><p>  單擊對象選擇器按鈕,彈出“Pick Devices”頁面,在“Keywords”輸入AT89C51,系統(tǒng)在對象庫中進(jìn)行搜索查找,并將搜索結(jié)果顯示在“Resu

38、lts”中。在“Results”欄中的列表項中,雙擊“AT89C51”,則可將“AT89C51”添加至對象選擇器窗口。同樣,可以添加7SEG-MPX1-CA,AUDIO1OU,CAP-ELEC,CRYSTAL,LED-GREEN,LED-RED,LED-YELLOW,RES,RX8等元器件對象。若單擊AT89C51,在預(yù)覽窗口中,見到AT89C51的實物圖,如圖:</p><p><b>  圖9 元

39、器件</b></p><p>  若單擊RES,在預(yù)覽窗口中,見到RES的實物圖。此時,我們已注意到在繪圖工具欄中的元器件按鈕處于選中狀態(tài)。</p><p>  3.2.2 放置元器件至圖形編輯窗口</p><p>  在對象選擇器窗口中,選中RES,將鼠標(biāo)置于圖形編輯窗口該對象的欲放位置、單擊鼠標(biāo)左鍵,該對象被完成放置。同理,將AT89C51等放置

40、到圖形編輯窗口中。</p><p>  若對象位置需要移動,將鼠標(biāo)移到該對象上,單擊鼠標(biāo)右鍵,此時我們已經(jīng)注意到,該對象的顏色已變至紅色,表明該對象已被選中,按下鼠標(biāo)左鍵,拖動鼠標(biāo),將對象移至新位置后,松開鼠標(biāo),完成移動操作。</p><p>  由于許多電阻的型號和電阻值均相同,因此可利用復(fù)制功能作圖。將鼠標(biāo)移到R1,單擊鼠標(biāo)右鍵,選中R1,在標(biāo)準(zhǔn)工具欄中,單擊復(fù)制按鈕,拖動鼠標(biāo),按下鼠

41、標(biāo)左鍵,將對象復(fù)制到新位置,如此反復(fù),直到按下鼠標(biāo)右鍵,結(jié)束復(fù)制。此時我們已經(jīng)注意到,電阻名的標(biāo)識,系統(tǒng)自動加以區(qū)分。</p><p>  3.2.3 放置總線至圖形編輯窗口</p><p>  單擊繪圖工具欄中的總線按鈕,使之處于選中狀態(tài)。將鼠標(biāo)置于圖形編輯窗口,單擊鼠標(biāo)左鍵,確定總線的起始位置;移動鼠標(biāo),屏幕出現(xiàn)粉紅色細(xì)直線,找到總線的終了位置,單擊鼠標(biāo)左鍵,再單擊鼠標(biāo)右鍵,以表示

42、確認(rèn)并結(jié)束畫總線操作。此后,粉紅色細(xì)直線被藍(lán)色的粗直線所替代。如圖</p><p>  圖10 元器件放置圖</p><p>  3.2.4 元器件之間的連線</p><p>  Proteus的智能化可以在你想要畫線的時候進(jìn)行自動檢測。下面,我們來操作將電阻R13的右端連接到八段數(shù)碼管的a端。當(dāng)鼠標(biāo)的指針靠近R13右端的連接點時,跟著鼠標(biāo)的指針就會出現(xiàn)一個“&#

43、215;”號,表明找到了R13的連接點,單擊鼠標(biāo)左鍵,移動鼠標(biāo)(不用拖動鼠標(biāo)),將鼠標(biāo)的指針靠近八段數(shù)碼管的a端的連接點時,跟著鼠標(biāo)的指針就會出現(xiàn)一個“×”號,表明找到了八段數(shù)碼管的連接點,同時屏幕上出現(xiàn)了粉紅色的連接,單擊鼠標(biāo)左鍵,粉紅色的連接線變成了深綠色,同時,線形由直線自動變成了90º的折線,這是因為我們選中了線路自動路徑功能。</p><p>  Proteus具有線路自動路徑功能(

44、簡稱WAR),當(dāng)選中兩個連接點后,WAR將選擇一個合適的路徑連線。WAR可通過使用標(biāo)準(zhǔn)工具欄里的“WAR”命令按鈕來關(guān)閉或打開,也可以在菜單欄的“Tools”下找到這個圖標(biāo)。</p><p>  同理,我們可以完成其它連線。在此過程的任何時刻,都可以按ESC鍵或者單擊鼠標(biāo)的右鍵來放棄畫線。</p><p>  3.2.5 元器件與總線的連線</p><p>  畫

45、總線的時候為了和一般的導(dǎo)線區(qū)分,我們一般喜歡畫斜線來表示分支線。此時我們需要自己決定走線路徑,只需在想要拐點處單擊鼠標(biāo)左鍵即可。連線如圖:</p><p>  圖11 元器件連線圖</p><p>  3.3 Keil和Proteus的聯(lián)合調(diào)試</p><p>  在Proteus繪制電路圖,在Keil uVision3對匯編語言程序進(jìn)行編譯調(diào)試,下面首先簡單地

46、說明Keil uVision3與Proteus相結(jié)合的仿真步驟:</p><p>  1、假若Keil uVision3與Proteus均已正確安裝在C:\Program Files的目錄里,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\VDM51.dll復(fù)制到C:\Program Files\keilC\C51\BIN

47、目錄中。</p><p>  2、用記事本打開C:\Program Files\keilC\C51\TOOLS.INI文件,在[C51]欄目下加入:TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver")。其中“TDRV5”中的“5”要根據(jù)實際情況寫,不要和原來的重復(fù)(步驟1和2只需在初次使用設(shè)置)。</p><p> 

48、 3、進(jìn)入Keil uVision3開發(fā)集成環(huán)境,創(chuàng)建一個新項目(Project),并為該項目選定合適的單片機CPU器件(如:Atmel公司的AT89C51),并為該項目加入Keil uVision3源程序。如圖</p><p>  圖12 Keil uVision3新建文件圖</p><p>  圖13 Keil uVision3選擇CPU圖</p><p>

49、  圖14 Keil uVision3選擇CPU圖</p><p>  點擊確定→然后點擊按鍵寫入程序點擊保存,鍵入**.asm,</p><p>  圖15 寫入?yún)R編語言程序圖</p><p>  4.然后用右鍵點擊左邊的“Source Group 1”,在跳出的菜單中選中“Add Files to Group‘Source Group 1’”。</p&

50、gt;<p>  圖16 添加文件圖</p><p>  5、單擊“Project菜單/Options for Target”選項或者點擊工具欄的“option for ta rget”按鈕,彈出窗口,點擊“Debug”按鈕。在出現(xiàn)的對話框里在右欄上部的下拉菜單里選中“Proteus VSM Monitor一51 Driver”。并且還要點擊一下“Use”前面表明選中的小圓點。再點擊“Settin

51、g”按鈕,設(shè)置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一臺電腦,則需要在這里添上另一臺電腦的IP地址(另一臺電腦也應(yīng)安裝Proteus)。在“Port”后面添加“8000”。設(shè)置好后,點擊“OK”按鈕即可。最后將工程編譯,進(jìn)入調(diào)試狀態(tài),并運行。</p><p>  圖17 生成HEX文件圖</p><p>  圖18 Use Proteus VSM Mo

52、nitor一51 Driver圖</p><p>  圖19 Setting Proteus VSM Monitor一51 Driver圖</p><p>  6、Proteus的設(shè)置</p><p>  進(jìn)入Proteus的ISIS,鼠標(biāo)左鍵點擊菜單“Debug”, 選中“use romote debuger monitor”。此后,便可實現(xiàn)Keil uVisi

53、on3與Proteus連接調(diào)試。</p><p>  3.4 系統(tǒng)仿真結(jié)果</p><p>  在proteus里開始仿真,雙擊AT89C51單片機跳出編輯元件對話框,在program file一項打開在Keil 中生成的XX.hex文件,點擊確定后,在點擊proteus主頁面的左下方運行開始仿真,本實例仿真結(jié)果如下:</p><p>  十字路口東西通行(東西綠

54、燈亮),南北禁行(南北紅燈亮)</p><p>  圖20 交通燈東西通行圖</p><p>  十字路口東西南北四個方向黃燈亮3秒,開始換指示燈控制方向(有東西通行,換成南北通行)</p><p>  圖21 交通燈東西轉(zhuǎn)南北向通行圖</p><p>  十字路口東西禁行(東西紅燈亮),南北通行(南北綠燈亮)</p>&l

55、t;p>  圖22 交通燈南北通行圖</p><p>  十字路口東西南北四個方向黃燈亮3秒,開始換指示燈控制方向(有東西通行,換成南北禁行)</p><p>  圖23 交通燈南北轉(zhuǎn)東西向通行圖</p><p><b>  附錄:</b></p><p><b>  附錄1.匯編程序:</b&g

56、t;</p><p><b>  ORG 0000H</b></p><p>  LJMP MAIN</p><p>  ORG 0300H ;主程序入口</p><p><b>  MAIN:</b></p><p>  MOV SP,#60H</p>

57、<p>  MOV TMOD,#10H ;定時器T1工作在方式1</p><p>  MOV TH1,#9EH ;給定時器T1賦初值</p><p>  MOV TL1,#58H</p><p>  SETB EA ;開中斷系統(tǒng)總開關(guān)</p><p>  SETB ET1 ;開定時

58、器T1中斷開關(guān)</p><p>  SETB TR1 ;啟動定時器T1</p><p><b>  LP:</b></p><p>  MOV 33H,#1EH ;設(shè)置倒計時顯示數(shù)值</p><p>  MOV P1,#0F3H ;使交通燈東西綠,南北紅</p><

59、;p>  MOV R7,#1BH ;紅燈顯示時間數(shù)值</p><p><b>  LP1:</b></p><p>  LCALL DISP ;調(diào)用子程序</p><p>  DJNZ R7,LP1 ;</p><p>  MOV P1,#0E1H ;交通燈東西綠,南北紅同時加亮

60、黃燈</p><p>  MOV 20H,#02H ;黃燈顯示次數(shù)</p><p><b>  LP2:</b></p><p>  LCALL DISP ;調(diào)用子程序</p><p>  DJNZ 20H,LP2</p><p>  MOV P1,#0DEH ;交通

61、燈南北綠,東西紅</p><p>  MOV R7,#1BH ;紅燈顯示時間數(shù)值</p><p><b>  LP3:</b></p><p>  LCALL DISP ;調(diào)用子程序</p><p>  DJNZ R7,LP3</p><p>  MOV P1,#0CCH

62、 ;交通燈南北綠,東西紅同時加亮黃燈</p><p>  MOV 20H,#02H ;黃燈顯示次數(shù)</p><p><b>  LP4:</b></p><p>  LCALL DISP</p><p>  DJNZ 20H,LP4</p><p>  LCALL LP5<

63、;/p><p><b>  LP5:</b></p><p><b>  SJMP LP</b></p><p><b>  RET</b></p><p>  DEL_1S: MOV R3,#4 ;延時1秒子程序</p><p>  L3: MOV

64、R2,#250</p><p>  L2: MOV R1,#250</p><p><b>  L1: NOP</b></p><p><b>  NOP</b></p><p>  DJNZ R1,L1</p><p>  DJNZ R2,L2</p><

65、;p>  DJNZ R3,L3</p><p><b>  RET</b></p><p><b>  LP6:</b></p><p>  MOV TH1,#9EH ;重新給定時器T1賦初值</p><p>  MOV TL1,#58H</p><p>

66、<b>  RETI</b></p><p><b>  DISP:</b></p><p>  DEC 33H ;減1操作</p><p><b>  MOV A,33H</b></p><p>  CJNE A,#01H,DIR1</p>

67、<p>  MOV 33H,#1EH</p><p><b>  DIR1:</b></p><p>  MOV B,#0AH</p><p>  DIV AB ;提取出倒計時數(shù)值的十位和個位數(shù)</p><p>  MOV DPTR,#TAB ;字形表的入口地址</p>

68、;<p>  MOVC A,@A+DPTR ;查表獲取十位數(shù)的字型碼</p><p><b>  MOV 30H,A</b></p><p><b>  MOV A,B</b></p><p>  MOVC A,@A+DPTR ;查表獲取個位數(shù)的字型碼</p><p>

69、<b>  MOV 31H,A</b></p><p><b>  MOV A,30H</b></p><p>  MOV P0,A ;將十位數(shù)字型碼送到P0口</p><p><b>  MOV A,31H</b></p><p>  MOV P2,A

70、 ;將十位數(shù)字型碼送到P2口</p><p>  LCALL DEL_1S</p><p><b>  RET</b></p><p><b>  TAB:</b></p><p>  DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論