2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

評論

0/150

提交評論