版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計任務(wù)書</b></p><p><b> 一、設(shè)計題目</b></p><p> 交通信號燈控制的設(shè)計</p><p><b> 二、設(shè)計目的</b></p><p> 鞏固《單片機(jī)技術(shù)》課程所學(xué)的有關(guān)知識。</p>
2、<p> 通過硬件設(shè)計、軟件設(shè)計,使學(xué)生掌握用單片機(jī)組成應(yīng)用系統(tǒng)的方法,提高軟件設(shè)計能力。</p><p> 掌握單片機(jī)用于各種功能控制的方法。</p><p><b> 學(xué)會產(chǎn)品設(shè)計方法。</b></p><p><b> 三、設(shè)計要求</b></p><p> 1. 繪出仿真
3、原理圖、編寫出源程序并調(diào)試。</p><p> 2. 要求實現(xiàn)綠燈亮20S放行后,黃燈閃爍4S警告,然后依次按北、西、南、東向轉(zhuǎn)換。</p><p><b> 四、設(shè)計步驟</b></p><p> 1. 按要求畫出硬件連線圖。</p><p> 2.畫出程序流程圖。</p><p>&l
4、t;b> 3.編寫源程序。</b></p><p> 4.進(jìn)行軟件調(diào)試,檢查功能是否完善。</p><p> 5. 完成proteus仿真。</p><p><b> 提高部分</b></p><p> 1. 保證車輛在一定時間內(nèi)可以向三個方向行駛。</p><p>
5、 2. 人行道也給出紅綠燈指示。</p><p> 第一章 設(shè)計任務(wù)分析和系統(tǒng)方案論證</p><p> 1.1 交通燈變化規(guī)律的分析</p><p> 按照常規(guī)我們假設(shè)一個十字路口為東西南北走向。初始狀態(tài)為狀態(tài)1,南北方向綠燈通車,東西方向紅燈。經(jīng)過一段時間(假定60S)轉(zhuǎn)換狀態(tài)2,南北方向綠燈熄滅轉(zhuǎn)亮黃燈,延時3S,東西方向仍然紅燈。再轉(zhuǎn)換到狀態(tài)3,東西方
6、向綠燈通車,南北方向紅燈。過一段時間(30S)轉(zhuǎn)換到狀態(tài)4,東西方向綠燈熄滅轉(zhuǎn)亮黃等燈,延時3S,南北方向仍然紅燈。最后循環(huán)至南北綠燈,東西紅燈。在這些狀態(tài)下有時鐘倒計時供行人和司機(jī)查看時間。</p><p> 在實際生活中,根據(jù)不同交通道路的通車情況有不同的變化規(guī)律。比如有的路口是三叉路口,有的道路分主干道與次干道等。不同的路況有不同的通車情況,需設(shè)計者根據(jù)實際情況來設(shè)計交通燈的亮和滅??紤]到實際情況,本次設(shè)
7、計對設(shè)計任務(wù)做了適當(dāng)?shù)臄U(kuò)充來滿足更高的要求。</p><p> 1.2 系統(tǒng)的方案論證 </p><p> 1.2.1 設(shè)計任務(wù)</p><p> 交通信號燈控制系統(tǒng)設(shè)計利用單片機(jī)的定時器定時,令十字路口的紅綠燈交替點亮和熄滅,并且用數(shù)碼管顯示時間。用8051做輸出口,控制十二個發(fā)光二極管燃滅,模擬交通燈管理。設(shè)計框圖如圖2-1。</p><
8、;p> 圖2-1 設(shè)計框圖 </p><p> 1.2.2 方案介紹</p><p> 本系統(tǒng)是交通燈的控制設(shè)計,所以要了解實際交通燈的變化情況和規(guī)律。假設(shè)一個十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉(zhuǎn)狀態(tài)1東西紅燈,南北綠燈通車。過一段時間轉(zhuǎn)狀態(tài)2南北綠燈滅,黃燈閃爍幾次,東西仍然紅燈。再轉(zhuǎn)狀態(tài)3,東西綠
9、燈通車,南北紅燈。過一段時間轉(zhuǎn)狀態(tài)4,東西綠燈滅,閃幾次黃燈,南北仍然紅燈。最后循環(huán)至狀態(tài)1。</p><p> 本系統(tǒng)就是利用了AT89C51芯片的I/O引腳。系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)AT89C51,以及其它芯片來設(shè)計交通燈控制器,實現(xiàn)了紅燈亮60秒,綠燈50秒,黃燈閃爍10秒。P1輸出口設(shè)置紅、綠燈燃亮的功能和P2輸出口設(shè)置實現(xiàn)在七段數(shù)碼管上的時間顯示。簡單的來說,就是用單片機(jī)控制二極管的閃滅
10、亮和顯示時間。</p><p> 第二章 交通燈系統(tǒng)硬件的設(shè)計</p><p><b> 2.1 單片機(jī)介紹</b></p><p><b> 2.1.1系統(tǒng)框圖</b></p><p> 圖2-1 硬件系統(tǒng)框圖</p><p> 單片機(jī)微型計算機(jī)是微型計算機(jī)的一個
11、重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p> 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過幾代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能
12、化,以及低電壓底功耗。以下是對AT89C51單片機(jī)介紹:</p><p> AT89C51是MCS-51系列單片機(jī)的典型產(chǎn)品,其包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。MCS-51單片機(jī)基本結(jié)構(gòu)示意圖3-1。</p><p> 圖2-2 單片機(jī)基本結(jié)構(gòu)</p>
13、<p> 2.1.2 電源電路</p><p><b> 圖2-3 電源電路</b></p><p> 2.2 時鐘與復(fù)位電路的設(shè)計</p><p> 單片機(jī)本身是一個復(fù)雜的同步時序系統(tǒng),為保證同步工作方式的實現(xiàn),單片機(jī)必須有時鐘信號以使其系統(tǒng)在時鐘信號的控制下按時序協(xié)調(diào)工作。單片機(jī)的時鐘電路由振蕩電路和分頻電路組成。振蕩電
14、路是通過輸入引腳XTAL1和輸出引腳XTAL2在芯片外并接石英晶體和兩只電容組成的。石英晶體為一感性元件,與電容構(gòu)成振蕩回路,為片內(nèi)放大器提供正反饋和振蕩所需的相移條件,從而構(gòu)成一個穩(wěn)定的自激振蕩器。晶振頻率范圍為1.2-33MHz,我們選擇12MHz晶振。電</p><p> 容范圍為30pF左右,我們選擇33pF。振蕩電路產(chǎn)生的振蕩信號并不直接為單片機(jī)所用,而要經(jīng)過分頻電路的分頻后再使用。二分頻后為系統(tǒng)的時
15、鐘信號,再三分頻產(chǎn)生ALE信號,在二分頻的基礎(chǔ)上再六分頻得到機(jī)器周期信號。</p><p> 復(fù)位是單片機(jī)的硬件初始化操作。經(jīng)復(fù)位后,單片機(jī)系統(tǒng)才能開始正常工作。復(fù)位方式有加電復(fù)位和手動復(fù)位,復(fù)位電路又有上電復(fù)位、按鍵電平復(fù)位和按鍵脈沖復(fù)位3種。大家可以根據(jù)實際情況采用不同的復(fù)位方式,圖2-1所示為我們設(shè)計的時鐘(上圖)與復(fù)位電路(下圖)仿真圖。</p><p> 2.2.1發(fā)光二極管
16、指示燈電路</p><p> 該電路部分是交通信號燈的主要顯示部分。采用發(fā)光二極管構(gòu)成,按交通規(guī)劃分紅、黃、綠三種顏色。發(fā)光二極管直接與單片機(jī)的I/O端口相連,綠燈和黃燈控制器還有紅燈控制器的控制信號都是由秒脈沖發(fā)生器給出的。如圖3-5所示。</p><p> 圖2-5 發(fā)光二極管電路</p><p> 2.3 單片機(jī)定時器/計數(shù)器的應(yīng)用 </p>
17、;<p> 2.3.1定時器/計數(shù)器</p><p> 定時器/計數(shù)器是單片機(jī)中最常用、最重要的功能模塊之一。89S52單片機(jī)中有兩個16位定時器/計數(shù)器,分別為T0和T1。因為單片機(jī)為8位,所以要把16位定時器分解為4個8位定時器,,依次為TL0、TL1、TH0、TH1。本次設(shè)計只用到定時器,計數(shù)脈沖來自單片機(jī)內(nèi)部,采用12MHz晶振,即每微妙計數(shù)器加一。</p><p&g
18、t; 2.3.2定時器/計數(shù)器的相關(guān)寄存器</p><p> 與定時器/計數(shù)器相關(guān)的寄存器有定時器/計數(shù)器工作方式寄存(TMOD)、定時器/計數(shù)器控制寄存器(TCON)。TCON在本次設(shè)計中不是重點,故只將其簡單列出,如表2-1所示。重點介紹TMOD,位定義及位地址表示如表2-2所示。</p><p> 表2-1 TCON寄存器的位定義及位地址分配</p><p&
19、gt; 表2-2 TMOD寄存器的位定義及位地址分配</p><p><b> GATE:門控位。</b></p><p> GATE=0,僅由運行控制位TRX=1來啟動定時器/計數(shù)器運行;</p><p> GATE=1,由TRX=1和外部中斷引腳上的高電平共同來啟動定時器/計數(shù)器運行。</p><p> C
20、/T:定時器模式和計數(shù)器模式選擇位。</p><p> C/T=0,為定時器模式;</p><p> C/T=1,為計數(shù)器模式。</p><p> M1M0:工作方式選擇位(在后面介紹)。</p><p> 2.3.3 定時器/計數(shù)器的4種工作方式</p><p> 定時器/計數(shù)器的4種工作方式下的邏輯結(jié)構(gòu)如
21、表2-3所示。</p><p> 表2-3 定時器/計數(shù)器的4種工作方式下的邏輯結(jié)構(gòu)表 </p><p> 此次設(shè)計采用定時器0工作方式1,故在此詳述。方式1是16位計數(shù)結(jié)構(gòu)的工作方式,計數(shù)器由TH0的全部8位和TL0的全部8位構(gòu)成,計數(shù)范圍是1-65536。定時時間計算公式為:</p><p> 2.4 其他元器件的應(yīng)用</p><p&g
22、t; 在交通燈控制系統(tǒng)中,還用到了以下幾個器件:74LS04與非門,共陽極LED顯示管,排阻。與非門主要用在人行道紅綠燈中用于減少口的使用,顯示管用于顯示倒計時,排阻用于拉高P0口。這樣,硬件方面的設(shè)計就到此結(jié)束,整個系統(tǒng)的電路圖在附錄A,下一章將介紹軟件的設(shè)計。</p><p> 第三章 交通燈系統(tǒng)軟件的設(shè)計</p><p> 3.1 主程序流程圖</p><p
23、> 程序流程圖是描述程序運行流程的一種圖表。用它描述算法,直觀形象,能較清晰地表達(dá)各處理之間的關(guān)系。它不僅描繪程序從頭到尾的運行順序,也描述程序運行過程中的所有可能發(fā)生的狀況。</p><p> 主程序的編寫比較簡單,因而其流程圖也不會很復(fù)雜,圖3-1所示即為主程序流程圖</p><p> 3.2 INT0中斷服務(wù)程序框圖</p><p> 中斷程序主
24、要就是完成1s的計數(shù)和定時器的初始化問題,其流程圖如圖3-2所示:</p><p> 定時器初始化程序如下:定時器T0設(shè)定為工作方式1,初始值為TH0=0x3CH,TL0=0xB0H。每一秒顯示一次,中斷服務(wù)程序如下:</p><p> ORG000BH</p><p> ZDFW:PUSHPSW</p><p><
25、;b> SETBRS1</b></p><p><b> SETBRS0</b></p><p><b> INCR3</b></p><p><b> CLRTR0</b></p><p> MOVTH0,#3CH&l
26、t;/p><p> MOVTL0,#0B0H</p><p><b> SETBTR0</b></p><p> CJNER3, #9,EXIT</p><p> SETB22H.0</p><p> EXIT:POPPSW</p>
27、<p><b> RETI</b></p><p> 3.2.1按鍵掃描處理子程序的設(shè)計</p><p> 圖3-3 按鍵掃描子程序流程圖</p><p> 程序如下:;鍵掃描子程序區(qū)</p><p> KEY:LCALLKS</p><p> JNZ
28、LK1</p><p><b> LJMPBB</b></p><p> LK1:LCALLDISP</p><p> LCALLDISP</p><p> LCALLKS</p><p> JNZLK2</p><p>
29、LCALLDISP</p><p><b> LJMPBB</b></p><p> LK2:MOVB,20H</p><p> LK3:LCALLKS</p><p><b> JZLK4</b></p><p>
30、; LCALLDISP</p><p> LJMPLK3</p><p> LK4:LCALLDISP</p><p> LCALLDISP</p><p> LCALLKS</p><p><b> JZLK5</b></p>
31、<p> LJMPLK4</p><p> LK5:MOV 20H,B</p><p> BB:RET</p><p> 第四章 proteus仿真調(diào)試</p><p> 4.1設(shè)計完成原理圖</p><p> 在電路連接完成后,將寫好的程序放入單片機(jī),運行
32、可以清楚且非常明顯的顯示出跟主程序一樣的效果。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 劉高轈.單片機(jī)實用技術(shù)[M].北京:清華大學(xué)出版社,2004.</p><p> [2] 麗鳳.單片機(jī)原理及接口技術(shù)[M].北京:北京交通大學(xué)出版社,2004.</p><p> [3] 何立民.
33、單片機(jī)應(yīng)用技術(shù)大全[M].北京:北京航空航天大學(xué)出版社,1994.</p><p> [4] 張毅坤.單片微型計算機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1998.</p><p> [5] 吳金戎,沈慶陽.8051單片機(jī)實踐與應(yīng)用[M].北京:清華大學(xué)出版社, 2003.</p><p> [6] 余錫存.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子
34、科技大學(xué)出版社,2000.</p><p> [7] 雷麗文.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.</p><p> [8] 李華.MCS-51系列單片機(jī)實用接口技術(shù)[M].北京: 北京航空航天大學(xué)出版社,1993</p><p> [9] 周航慈.單片機(jī)應(yīng)用程序設(shè)計技術(shù)[M].北京: 北京航空航天大學(xué)出版社,1991.</p>
35、;<p> [10] 何立民 MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計[M].北京:北京航空航天大學(xué)出版社, 1995.</p><p> 附錄A 交通燈控制系統(tǒng)原理圖</p><p><b> 附錄B PCB圖</b></p><p> 附錄 C 總程序清單</p><p> ;***********
36、***********************************************************************************:</p><p><b> ;堆棧棧底7FH;</b></p><p> ;*************************************************************
37、*********************************;</p><p> ;LED數(shù)碼管顯示器設(shè)定;</p><p> ;P0.7---P0.0段控線,接LED的顯示段dp,g,f,e,d,c,b,a</p><p> ;P2.7---P2.0位控線,從左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)<
38、;/p><p> ;顯示緩沖區(qū)設(shè)定從左至右依次為7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0)</p><p> ;*****************************************************************************************
39、*****;</p><p><b> ;獨立式鍵盤設(shè)定;</b></p><p> ;8個按鍵S2至S9分別依次接在P1.0至P1.7口線; </p><p> ;***************************************************************************************
40、*******; </p><p><b> ;子程序;</b></p><p> ;DISP(數(shù)碼管顯示子程序)</p><p> ;DL(1毫秒延時子程序,晶振頻率12MHz)</p><p> ;*******************************************************
41、****************************************;</p><p><b> ;常數(shù)表格;</b></p><p> ;TAB(共陽數(shù)碼管字型代碼表)</p><p> ;DISBH(系統(tǒng)提示符P.字型代碼序號表)</p><p> ;***********************
42、***********************************************************************;</p><p><b> ;中斷服務(wù)程序;</b></p><p><b> ;</b></p><p> ;*******************************
43、***************************************************************;</p><p><b> ;鍵功能程序;</b></p><p><b> ;</b></p><p> ;****************************************
44、*******************************************************;</p><p> ;數(shù)據(jù)存儲器變量及常量單元定義;</p><p><b> ;</b></p><p> ;**********************************************************
45、*************************************;</p><p> ;偽指令定義區(qū) </p><p> ;***********************************************************************************************;</p><p> ;系統(tǒng)起始程
46、序區(qū) </p><p> ORG0000H</p><p> START: LJMP MAIN</p><p> ORG 000BH</p><p> LJMP ZDFW</p><p> ORG
47、0030H</p><p> MAIN: MOVSP,#7FH</p><p> MOVPSW, #00H</p><p> MOVR0,#20H</p><p> MOVR2,#96</p><p> ML:MOV
48、@R0, #00H</p><p><b> INCR0</b></p><p> DJNZ R2,ML ;初始化以及清零</p><p> ///////////////////////////////////////////////////////////</p><p&
49、gt; ML0: MOVR1,#08H</p><p> MOVDPTR,#DISPH0</p><p> MOVR0,#78H</p><p> ML1: MOVA,#00H</p><p> MOVCA,@A+DPTR</p>
50、<p> MOV@R0,A</p><p><b> INCR0</b></p><p> INCDPTR</p><p> DJNZR1,ML1</p><p> LOOPA: LCALLDISP ;顯示“P.”字符</p
51、><p> LCALLKEY ;調(diào)用鍵掃程序</p><p> JB20H.0, S2GN ;如果20H.0為1(也即按下了按鍵s2)則轉(zhuǎn)移到鍵功能程序S2GN</p><p> LJMPLOOPA</p><p> //BIAOZHIEQU 39H</p><p>
52、 SECGE EQU40H;將40H單元用常量SECGE定義表示個位</p><p> SECSHI EQU41H;將41H單元用常量SECSHI定義表示十位</p><p> ;*********************************************************************************;</p&
53、gt;<p><b> ;鍵功能程序區(qū)</b></p><p> S2GN:CLR RS1;寄存器為第1組</p><p><b> SETBRS0</b></p><p> MOV 39H,#1</p><p> T10:M
54、OV77H,#60</p><p> MOVP3,#11011110B;主干道綠開始亮,次干道紅燈亮</p><p> MOV7DH,#10H</p><p> MOV7CH,#10H</p><p> MOV SECGE,#9</p><p>
55、 MOVSECSHI,#5</p><p> AA1: MOV7FH,SECGE</p><p> MOV7EH,SECSHI</p><p> T11: LCALLDELAY2</p><p> LCALLDELAY2</p><p>
56、 LCALL SJCHULI</p><p> DJNZ 77H, AA1</p><p> ////////////////////////////////////////////////////////////</p><p> MOV 39H,#2</p><p>
57、MOVR0,#2</p><p> MOVP3,#11011101B;主干道黃燈開始亮,次干道繼續(xù)亮紅燈</p><p> MOVSECGE,#5</p><p> MOVSECSHI,#0</p><p> AA2:MOV7FH,SECGE</p><p
58、> MOV7EH,SECSHI</p><p> MOV7DH,#10H</p><p> MOV7CH,#10H</p><p> LCALLSJCHULI</p><p> T2:LCALLDELAY2</p><p> LCALLDELAY2<
59、;/p><p> DJNZR0,AA2 ;延時2s</p><p> ///////////////////////////////////////////////////////////</p><p> MOVR0,#3</p><p> MOV 39H, #3</p>&l
60、t;p> T3:MOVP3,#11011111B;主干道黃燈閃亮3s,次干道繼續(xù)紅燈</p><p> LCALLDELAY2</p><p> MOV 39H, #4</p><p> MOVP3,#11011101B</p><p> LCALLDELAY2&l
61、t;/p><p> MOV78H,SECGE</p><p> MOV79H,SECSHI</p><p> MOV7AH,#10H</p><p> MOV7BH,#10H</p><p> LCALLSJCHULI</p><p> DJN
62、ZR0,T3;延時3s</p><p> /////////////////////////////////////////////////////////////</p><p> MOVR0,#30</p><p> MOV 39H, #5</p><p> MOVP3,
63、 #11110011B ;主干道紅燈,次干道綠燈</p><p> MOVSECGE,#9</p><p> MOVSECSHI,#2</p><p> MOV7FH,#10H</p><p> MOV7EH,#10H</p><p> AA3:
64、 MOV7DH,SECGE</p><p> MOV7CH, SECSHI</p><p> T4:LCALLDELAY2</p><p> LCALLDELAY2</p><p> LCALLSJCHULI</p><p> DJNZR0,AA3;延時
65、30s</p><p> ////////////////////////////////////////////////////////////////</p><p> MOVR0,#2</p><p> MOV39H,#6 </p><p> MOVP3,#11101011B ;主干道紅燈,次
66、干道黃燈</p><p> MOVSECGE,#5</p><p> MOVSECSHI,#0</p><p> AA4: MOV7FH,SECGE</p><p> MOV7EH,SECSHI</p><p> T5:LCALLDELAY2&
67、lt;/p><p> LCALLDELAY2</p><p> DJNZR0, AA4 ;延時2s</p><p> ///////////////////////////////////////////////////////////////</p><p> MOVR0,#3 ;主干道紅燈,次干道黃燈閃3
68、s</p><p> MOV 39H,#7</p><p> T6:MOVP3,#11111011B</p><p> LCALLDELAY2</p><p> MOV 39H,#8</p><p> MOVP3,#11101011B</p
69、><p> LCALLDELAY2</p><p> LCALLSJCHULI</p><p> MOV7DH,SECGE</p><p> MOV7CH,SECSHI</p><p> DJNZR0,T6 ;延時3s</p><p> LJMP
70、 S2GN</p><p> SJCHULI: PUSH PSW;堆棧保護(hù)</p><p><b> PUSHACC</b></p><p> SETBRS1;使用第二組寄存器</p><p><b> CLRRS0</b></p&
71、gt;<p> MOVR0,SECGE</p><p> MOVA,SECSHI</p><p><b> SWAPA</b></p><p> ORLA,R0</p><p> ;到此處實現(xiàn)合字功能</p><p> SUBBA,
72、#01H;實現(xiàn)減一功能</p><p> MOVR0,A</p><p> ANLA,#0FH;屏蔽掉高四位</p><p> MOVSECGE,A ;將底四位送給個位SECGE</p><p> MOVA,R0</p><p> SWAPA ;高低字節(jié)
73、交換</p><p> ANLA,#0FH ;屏蔽功能</p><p> MOVSECSHI,A ;給十位送數(shù)</p><p> LCALLPAND ;調(diào)用判斷</p><p><b> POPACC</b></p><p><b> POP
74、PSW</b></p><p><b> RET</b></p><p> ////////////判斷子程序,判斷數(shù)字的合法性///////////////////////////////</p><p> PAND: PUSHACC ;堆棧保護(hù)</p><p>
75、 CLRCY ;進(jìn)位清零</p><p> MOVA,SECGE</p><p> SUBBA,#09H ;個位的數(shù)與9作差</p><p> JBCCY,K2 ;如果出現(xiàn)借位(數(shù)據(jù)合法)則轉(zhuǎn)向K2,沒有(數(shù)據(jù)非法)則循序執(zhí)行</p><p> K1: MOV
76、A,SECGE</p><p> SUBBA, #06H ;對非法數(shù)據(jù)進(jìn)行減6,得到合法數(shù)據(jù)</p><p> MOVSECGE,A</p><p> K2: MOVA,SECSHI</p><p><b> CLRCY</b></p><p&
77、gt; SUBBA,#10;十位的數(shù)與10作差</p><p> JBCCY,K4 ;如果出現(xiàn)借位(數(shù)據(jù)合法)則轉(zhuǎn)向K2,沒有(數(shù)據(jù)非法)則循序執(zhí)行</p><p> K3: MOVA,SECSHI</p><p> SUBBA, #06H ;對非法數(shù)據(jù)進(jìn)行減6,得到合法數(shù)據(jù)</p>&l
78、t;p> MOVSECSHI,A</p><p> K4: POPACC</p><p><b> RET</b></p><p> ;****************************************************************************************
79、*;</p><p><b> ;表格區(qū)</b></p><p> DISPH0: DB10H,10H,10H,10H,10H,10H,10H,11H;字符“P.”序號表</p><p> TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8</p>
80、<p> DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH ;9,A,B,C,D,E,F,滅,“P.”</p><p> ;*****************************************************************************************;</p><p><b&
81、gt; ;鍵掃描子程序區(qū)</b></p><p> KEY:LCALLKS</p><p> JNZLK1</p><p><b> LJMPBB</b></p><p> LK1:LCALLDISP</p><p> LCALL
82、DISP</p><p> LCALLKS</p><p> JNZLK2</p><p> LCALLDISP</p><p><b> LJMPBB</b></p><p> LK2:MOVB,20H</p><
83、;p> LK3:LCALLKS</p><p><b> JZLK4</b></p><p> LCALLDISP</p><p> LJMPLK3</p><p> LK4:LCALLDISP</p><p> LCALLD
84、ISP</p><p> LCALLKS</p><p><b> JZLK5</b></p><p> LJMPLK4</p><p> LK5:MOV 20H,B</p><p> BB:RET</p><p>
85、; ;***************************************************************************************;</p><p><b> ;鍵處理子程序</b></p><p> KS:PUSHPSW</p><p> CLRRS1</p
86、><p> SETBRS0</p><p> MOVP1,#0FFH</p><p> MOVA,P1</p><p><b> CPLA</b></p><p> MOV20H,A</p><p> CL
87、RRS1</p><p> CLRRS0</p><p> POPPSW</p><p><b> RET</b></p><p> /////////////////////////////////////////////</p><p><b> ;
88、顯示子程序;</b></p><p> DISP: PUSHACC;壓入堆棧</p><p><b> PUSHDPH</b></p><p><b> PUSHDPL</b></p><p><b> PUSHPSW</b>&
89、lt;/p><p><b> CLRRS1</b></p><p> SETB RS0</p><p> MOVDPTR,#TAB;顯示字符代碼首地址送往DPTR</p><p> MOVR1,#78H</p><p> MOVR2,#08H;循環(huán)次數(shù),即驅(qū)動
90、管的個數(shù)</p><p> MOVR3,#0FEH;位控代碼(從右往左顯示)</p><p> DISP1: MOVA,@R1</p><p> MOVCA,@A+DPTR</p><p> MOVP0,A;送段空碼</p><p><b> INC
91、R1</b></p><p> MOVP2,R3;送位控碼</p><p> LCALLDELAY ;延時調(diào)用</p><p> MOVA,R3</p><p><b> RLA</b></p><p> MOVR3,A</p>
92、;<p> DJNZR2, DISP1;循環(huán)判斷</p><p> DISP2:POPDPH ;出棧</p><p><b> POPDPL</b></p><p><b> POPACC</b></p><p><b> POP
93、PSW</b></p><p><b> RET</b></p><p> ///////////////////////////////////////////////////////////////////</p><p> ;延時1ms子程序(晶振頻率12MHz)DL</p><p> DEL
94、AY: MOVR5,#02H</p><p> MOVR6,0FFH</p><p> LOOP1:DJNZR6,LOOP1</p><p> LOOP2:DJNZR5,LOOP2</p><p><b> RET</b></p><p>
95、 ;延時500ms子程序(定時器以中斷方式工作)</p><p> DELAY2: </p><p><b> PUSHACC</b></p><p><b> PUSHPSW</b></p><p><b> SETBRS1</b></p
96、><p> SETBRS0</p><p> MOVR3,#00H</p><p> CLR22H.0</p><p> MOVTH0,#3CH</p><p> MOVTL0,#0B0H</p><p> MOVTMOD,#01
97、H</p><p> LCALLKEY</p><p> JB20H.1,OUT</p><p><b> SETBEA</b></p><p><b> SETBET0</b></p><p><b> SETBTR0</
98、b></p><p> LCALLKEY</p><p> JB20H.1,OUT</p><p> LOOPD:JB22H.0,EXIT0</p><p> LCALLKEY</p><p> JB20H.1,OUT</p><p>
99、 LCALLDISP</p><p> LJMPLOOPD</p><p> OUT:SETB20H</p><p> EXIT0:POP PSW</p><p><b> POPACC</b></p><p> JBC20H,BB1&
100、lt;/p><p> LJMP BB0</p><p> BB1:LCALLS3GN</p><p> BB0: RET</p><p> S3GN:NOP</p><p> MOVP3,#11101011B</p><p> MOV
101、76H, #10</p><p> AA5: </p><p> LCALL DELAY2</p><p> CPLP3.7</p><p> LCALLDELAY2</p><p> CPLP3.7</p><p> DJN
102、Z 76H, AA5</p><p> MOVR5, 39H</p><p> CC1: CJNER5, #1, CC2</p><p> MOVP3,#11011110B</p><p> AJMPOUT2</p><p> CC2:
103、CJNER5, #2, CC3</p><p> MOVP3,#11011101B</p><p> AJMPOUT2</p><p> CC3:CJNER5, #3, CC4</p><p> MOVP3,#11011111B</p><p>
104、; AJMPOUT2</p><p> CC4:CJNER5, #4, CC5</p><p> MOVP3,#11110011B</p><p> AJMPOUT2</p><p> CC5: CJNE R5, #5, CC6</p><p&
105、gt; MOVP3,#11110011B</p><p> AJMPOUT2</p><p> CC6:CJNE R5, #6, CC7</p><p> MOVP3, #11101011B</p><p> AJMPOUT2</p><p> CC
106、7:CJNE R5, #7, CC8</p><p> MOVP3, #11111011B</p><p> AJMPOUT2</p><p> CC8:CJNE R5, #8, OUT2</p><p> MOVP3, #11101011B</p&
107、gt;<p> SETBP3.7</p><p> OUT2:RET</p><p><b> ;中斷服務(wù)程序</b></p><p> ZDFW: PUSHPSW</p><p><b> SETBRS1</b></p>
108、<p><b> SETBRS0</b></p><p><b> INCR3</b></p><p><b> CLRTR0</b></p><p> MOVTH0,#3CH</p><p> MOVTL0,#0B0H&
109、lt;/p><p><b> SETBTR0</b></p><p> CJNER3, #9,EXIT</p><p> SETB22H.0</p><p> EXIT: POPPSW</p><p><b> RETI</
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈課程設(shè)計----交通信號燈的設(shè)計
- 交通燈課程設(shè)計--簡易交通信號燈
- 交通燈課程設(shè)計--交通信號燈的設(shè)計
- 交通燈課程設(shè)計---交通信號燈的設(shè)計
- 交通燈課程設(shè)計-- 交通信號燈系統(tǒng)設(shè)計
- 交通燈課程設(shè)計--交通信號燈控制器的設(shè)計
- eda交通燈課程設(shè)計--交通信號燈控制電路
- 微機(jī)原理交通燈課程設(shè)計---交通信號燈的設(shè)計
- plc交通燈課程設(shè)計--交通信號燈控制系統(tǒng)的設(shè)計
- 交通信號燈課程設(shè)計---交通信號燈系統(tǒng)設(shè)計
- 數(shù)電交通燈課程設(shè)計---交通信號燈控制器設(shè)計
- 交通信號燈課程設(shè)計--交通信號燈控制電路的設(shè)計
- 數(shù)電交通燈課程設(shè)計--交通信號燈控制器的設(shè)計
- 交通信號燈控制課程設(shè)計
- 交通信號燈控制課程設(shè)計
- 交通信號燈課程設(shè)計--基于單片機(jī)的交通燈設(shè)計
- 課程設(shè)計---交通信號燈控制
- 課程設(shè)計---交通信號燈控制設(shè)計
- 課程設(shè)計交通信號燈
- 交通信號燈課程設(shè)計
評論
0/150
提交評論