交通燈課程設(shè)計(jì)交通信號(hào)燈控制的設(shè)計(jì)
《交通燈課程設(shè)計(jì)交通信號(hào)燈控制的設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《交通燈課程設(shè)計(jì)交通信號(hào)燈控制的設(shè)計(jì)(26頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 課程設(shè)計(jì)任務(wù)書 一、設(shè)計(jì)題目 交通信號(hào)燈控制的設(shè)計(jì) 二、設(shè)計(jì)目的 1. 鞏固《單片機(jī)技術(shù)》課程所學(xué)的有關(guān)知識(shí)。 2. 通過硬件設(shè)計(jì)、軟件設(shè)計(jì),使學(xué)生掌握用單片機(jī)組成應(yīng)用系統(tǒng)的方法,提高軟件設(shè)計(jì)能力。 3. 掌握單片機(jī)用于各種功能控制的方法。 4. 學(xué)會(huì)產(chǎn)品設(shè)計(jì)方法。 三、設(shè)計(jì)要求 1. 繪出仿真原理圖、編寫出源程序并調(diào)試。 2. 要求實(shí)現(xiàn)綠燈亮20S放行后,黃燈閃爍4S警告,然后依次按北、西、南、東向轉(zhuǎn)換。 四、設(shè)計(jì)步驟 1. 按要求畫出硬件連線圖。 2.畫出程序流程圖。 3.編寫源程序。 4.進(jìn)行軟件調(diào)試,檢查功能是否完善。 5.
2、完成proteus仿真。 5、 提高部分 1. 保證車輛在一定時(shí)間內(nèi)可以向三個(gè)方向行駛。 2. 人行道也給出紅綠燈指示。 第一章 設(shè)計(jì)任務(wù)分析和系統(tǒng)方案論證 1.1 交通燈變化規(guī)律的分析 按照常規(guī)我們假設(shè)一個(gè)十字路口為東西南北走向。初始狀態(tài)為狀態(tài)1,南北方向綠燈通車,東西方向紅燈。經(jīng)過一段時(shí)間(假定60S)轉(zhuǎn)換狀態(tài)2,南北方向綠燈熄滅轉(zhuǎn)亮黃燈,延時(shí)3S,東西方向仍然紅燈。再轉(zhuǎn)換到狀態(tài)3,東西方向綠燈通車,南北方向紅燈。過一段時(shí)間(30S)轉(zhuǎn)換到狀態(tài)4,東西方向綠燈熄滅轉(zhuǎn)亮黃等燈,延時(shí)3S,南北方向仍然紅燈。最后循環(huán)至南北綠燈,東西紅燈。在這些狀態(tài)下有時(shí)鐘倒計(jì)時(shí)供行人和司機(jī)查
3、看時(shí)間。 在實(shí)際生活中,根據(jù)不同交通道路的通車情況有不同的變化規(guī)律。比如有的路口是三叉路口,有的道路分主干道與次干道等。不同的路況有不同的通車情況,需設(shè)計(jì)者根據(jù)實(shí)際情況來設(shè)計(jì)交通燈的亮和滅??紤]到實(shí)際情況,本次設(shè)計(jì)對(duì)設(shè)計(jì)任務(wù)做了適當(dāng)?shù)臄U(kuò)充來滿足更高的要求。 1.2 系統(tǒng)的方案論證 1.2.1 設(shè)計(jì)任務(wù) 交通信號(hào)燈控制系統(tǒng)設(shè)計(jì)利用單片機(jī)的定時(shí)器定時(shí),令十字路口的紅綠燈交替點(diǎn)亮和熄滅,并且用數(shù)碼管顯示時(shí)間。用8051做輸出口,控制十二個(gè)發(fā)光二極管燃滅,模擬交通燈管理。設(shè)計(jì)框圖如圖2-1。 圖2-1 設(shè)計(jì)框圖
4、 1.2.2 方案介紹 本系統(tǒng)是交通燈的控制設(shè)計(jì),所以要了解實(shí)際交通燈的變化情況和規(guī)律。假設(shè)一個(gè)十字路口為東西南北走向。初始狀態(tài)0為東西紅燈,南北紅燈。然后轉(zhuǎn)狀態(tài)1東西紅燈,南北綠燈通車。過一段時(shí)間轉(zhuǎn)狀態(tài)2南北綠燈滅,黃燈閃爍幾次,東西仍然紅燈。再轉(zhuǎn)狀態(tài)3,東西綠燈通車,南北紅燈。過一段時(shí)間轉(zhuǎn)狀態(tài)4,東西綠燈滅,閃幾次黃燈,南北仍然紅燈。最后循環(huán)至狀態(tài)1。 本系統(tǒng)就是利用了AT89C51芯片的I/O引腳。系統(tǒng)采用美國(guó)ATMEL公司生產(chǎn)的單片機(jī)AT89C51,以及其它芯片來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了紅燈亮60秒,綠燈50秒,黃燈閃爍10秒。P1輸出口設(shè)置
5、紅、綠燈燃亮的功能和P2輸出口設(shè)置實(shí)現(xiàn)在七段數(shù)碼管上的時(shí)間顯示。簡(jiǎn)單的來說,就是用單片機(jī)控制二極管的閃滅亮和顯示時(shí)間。 第二章 交通燈系統(tǒng)硬件的設(shè)計(jì) 2.1 單片機(jī)介紹 2.1.1系統(tǒng)框圖 復(fù)位電路 時(shí)鐘電路 51單片機(jī) 紅綠燈顯示 1位LED數(shù)碼管顯示電路 電源電路 按鍵輸入電路 圖2-1 硬件系統(tǒng)框圖 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和
6、I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過幾代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。以下是對(duì)AT89C51單片機(jī)介紹: AT89C51是MCS-51系列單片機(jī)的典型產(chǎn)品,其包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線。MCS-51單片機(jī)基本結(jié)構(gòu)示意圖3-1。 時(shí)鐘電路 SFR和RAM ROM CPU 定時(shí)/計(jì)數(shù)器 并行端口 中斷
7、系統(tǒng) 串行端口 系 統(tǒng) 總 線 時(shí)鐘源 T0 T1 P0 P1 P2 P3 TXD RXD INT0 INT1 圖2-2 單片機(jī)基本結(jié)構(gòu) 2.1.2 電源電路 圖2-3 電源電路 2.2 時(shí)鐘與復(fù)位電路的設(shè)計(jì) 圖2-4 復(fù)位與時(shí)鐘電路圖 單片機(jī)本身是一個(gè)復(fù)雜的同步時(shí)序系統(tǒng),為保證同步工作方式的實(shí)現(xiàn),單片機(jī)必須有時(shí)鐘信號(hào)以使其系統(tǒng)在時(shí)鐘信號(hào)的控制下按時(shí)序協(xié)調(diào)工作。單片機(jī)的時(shí)鐘電路由振蕩電路和分頻電路組成。振蕩電路是通過輸入引腳XTAL1和輸出引腳XTAL2在芯片外并接石英晶體和兩只電容組成的。石英晶體為一感性元
8、件,與電容構(gòu)成振蕩回路,為片內(nèi)放大器提供正反饋和振蕩所需的相移條件,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。晶振頻率范圍為1.2-33MHz,我們選擇12MHz晶振。電 容范圍為30pF左右,我們選擇33pF。振蕩電路產(chǎn)生的振蕩信號(hào)并不直接為單片機(jī)所用,而要經(jīng)過分頻電路的分頻后再使用。二分頻后為系統(tǒng)的時(shí)鐘信號(hào),再三分頻產(chǎn)生ALE信號(hào),在二分頻的基礎(chǔ)上再六分頻得到機(jī)器周期信號(hào)。 復(fù)位是單片機(jī)的硬件初始化操作。經(jīng)復(fù)位后,單片機(jī)系統(tǒng)才能開始正常工作。復(fù)位方式有加電復(fù)位和手動(dòng)復(fù)位,復(fù)位電路又有上電復(fù)位、按鍵電平復(fù)位和按鍵脈沖復(fù)位3種。大家可以根據(jù)實(shí)際情況采用不同的復(fù)位方式,圖2-1所示為我們?cè)O(shè)計(jì)的時(shí)鐘(上圖
9、)與復(fù)位電路(下圖)仿真圖。 2.2.1發(fā)光二極管指示燈電路 該電路部分是交通信號(hào)燈的主要顯示部分。采用發(fā)光二極管構(gòu)成,按交通規(guī)劃分紅、黃、綠三種顏色。發(fā)光二極管直接與單片機(jī)的I/O端口相連,綠燈和黃燈控制器還有紅燈控制器的控制信號(hào)都是由秒脈沖發(fā)生器給出的。如圖3-5所示。 圖2-5 發(fā)光二極管電路 2.3 單片機(jī)定時(shí)器/計(jì)數(shù)器的應(yīng)用 2.3.1定時(shí)器/計(jì)數(shù)器 定時(shí)器/計(jì)數(shù)器是單片機(jī)中最常用、最重要的功能模塊之一。89S52單片機(jī)中有兩個(gè)16位定時(shí)器/計(jì)數(shù)器,分別為T0和T1。因?yàn)閱纹瑱C(jī)為8位,所以要把16位定時(shí)器分解為4個(gè)8位定時(shí)器,,依
10、次為TL0、TL1、TH0、TH1。本次設(shè)計(jì)只用到定時(shí)器,計(jì)數(shù)脈沖來自單片機(jī)內(nèi)部,采用12MHz晶振,即每微妙計(jì)數(shù)器加一。 2.3.2定時(shí)器/計(jì)數(shù)器的相關(guān)寄存器 與定時(shí)器/計(jì)數(shù)器相關(guān)的寄存器有定時(shí)器/計(jì)數(shù)器工作方式寄存(TMOD)、定時(shí)器/計(jì)數(shù)器控制寄存器(TCON)。TCON在本次設(shè)計(jì)中不是重點(diǎn),故只將其簡(jiǎn)單列出,如表2-1所示。重點(diǎn)介紹TMOD,位定義及位地址表示如表2-2所示。 表2-1 TCON寄存器的位定義及位地址分配 位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位符號(hào) TF1 TR1 TF0 TR0
11、IE1 IT1 IE0 IT0 表2-2 TMOD寄存器的位定義及位地址分配 B7H B6H B5H B4H B3H B2H B1H B0H GATE C/ M1 M0 GATE C/ M1 M0 GATE:門控位。 GATE=0,僅由運(yùn)行控制位TRX=1來啟動(dòng)定時(shí)器/計(jì)數(shù)器運(yùn)行; GATE=1,由TRX=1和外部中斷引腳上的高電平共同來啟動(dòng)定時(shí)器/計(jì)數(shù)器運(yùn)行。 C/T:定時(shí)器模式和計(jì)數(shù)器模式選擇位。 C/T=0,為定時(shí)器模式; C/T=1,為計(jì)數(shù)器模式。 M1M0:工作方式選擇位(在后面介紹)。 2.3.3 定時(shí)器/計(jì)數(shù)器的4種工作
12、方式 定時(shí)器/計(jì)數(shù)器的4種工作方式下的邏輯結(jié)構(gòu)如表2-3所示。 表2-3 定時(shí)器/計(jì)數(shù)器的4種工作方式下的邏輯結(jié)構(gòu)表 M1 M2 工作方式 0 0 方式0,為13位定時(shí)器/計(jì)數(shù)器 0 1 方式1,為16位定時(shí)器/計(jì)數(shù)器 1 0 方式2,為初值自動(dòng)重裝的8位定時(shí)器/計(jì)數(shù)器 1 1 方式3,僅T0有效,將T0分為兩個(gè)8位定時(shí)器/計(jì)數(shù)器 此次設(shè)計(jì)采用定時(shí)器0工作方式1,故在此詳述。方式1是16位計(jì)數(shù)結(jié)構(gòu)的工作方式,計(jì)數(shù)器由TH0的全部8位和TL0的全部8位構(gòu)成,計(jì)數(shù)范圍是1-65536。定時(shí)時(shí)間計(jì)算公式為: 2.4 其他元器件的應(yīng)用 在交通燈控制
13、系統(tǒng)中,還用到了以下幾個(gè)器件:74LS04與非門,共陽極LED顯示管,排阻。與非門主要用在人行道紅綠燈中用于減少口的使用,顯示管用于顯示倒計(jì)時(shí),排阻用于拉高P0口。這樣,硬件方面的設(shè)計(jì)就到此結(jié)束,整個(gè)系統(tǒng)的電路圖在附錄A,下一章將介紹軟件的設(shè)計(jì)。 第三章 交通燈系統(tǒng)軟件的設(shè)計(jì) 3.1 主程序流程圖 程序流程圖是描述程序運(yùn)行流程的一種圖表。用它描述算法,直觀形象,能較清晰地表達(dá)各處理之間的關(guān)系。它不僅描繪程序從頭到尾的運(yùn)行順序,也描述程序運(yùn)行過程中的所有可能發(fā)生的狀況。 開 始 初始化變量 主干道綠開始亮,次干道紅燈亮,延遲6
14、0秒。 主干道繼續(xù)紅燈,次干道綠燈開始變黃燈,延遲2秒。 主干道黃燈開始亮,次干道繼續(xù)亮紅燈,延遲2秒。 主干道繼續(xù)紅燈,次干道黃燈開始閃亮3秒。 主干道開始變成綠燈,次干道變成紅燈 主干道黃燈閃亮3s,次干道繼續(xù)紅燈,延遲3秒。 主干道紅燈,次干道綠燈,延遲30秒。 有應(yīng)急車經(jīng)過,全部紅燈,等待10秒鐘讓應(yīng)急車輛通過 圖3-1 主程序流程圖 主程序的編寫比較簡(jiǎn)單,因而其流程圖也不會(huì)很復(fù)雜,圖3-1所示即為主程序流程圖 3.2 INT0中斷服務(wù)程序框圖 開 始 是 否 結(jié) 束 1s次數(shù)(ones_cou
15、nter)加一,50ms次數(shù)(fifms_counter)清零。 50ms次數(shù)(fifms_counter)是否到20次 中斷程序主要就是完成1s的計(jì)數(shù)和定時(shí)器的初始化問題,其流程圖如圖3-2所示: 重賦計(jì)數(shù)初值,50ms次數(shù)(fifms_counter)加1。 圖3-2 中斷程序流程圖 定時(shí)器初始化程序如下:定時(shí)器T0設(shè)定為工作方式1,初始值為TH0=0x3CH,TL0=0xB0H。每一秒顯示一次,中斷服務(wù)程序如下: ORG 000BH ZDFW: PUSH PSW SETB RS1
16、 SETB RS0 INC R3 CLR TR0 MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 CJNE R3, #9 , EXIT SETB 22H.0 EXIT: POP PSW RETI 3.2.1按鍵掃描處理子程序的設(shè)計(jì) 圖3-3 按鍵掃描子程序流程圖 程序如下:;鍵掃描子程序區(qū) KEY: LCALL KS JNZ LK1 LJMP BB LK1: LCALL
17、DISP LCALL DISP LCALL KS JNZ LK2 LCALL DISP LJMP BB LK2: MOV B, 20H LK3: LCALL KS JZ LK4 LCALL DISP LJMP LK3 LK4: LCALL DISP LCALL DISP LCALL KS JZ LK5 LJMP LK4 LK5: MOV 20H, B BB:
18、 RET 第四章 proteus仿真調(diào)試 4.1設(shè)計(jì)完成原理圖 在電路連接完成后,將寫好的程序放入單片機(jī),運(yùn)行可以清楚且非常明顯的顯示出跟主程序一樣的效果。 參考文獻(xiàn) [1] 劉高轈.單片機(jī)實(shí)用技術(shù)[M].北京:清華大學(xué)出版社,2004. [2] 麗鳳.單片機(jī)原理及接口技術(shù)[M].北京:北京交通大學(xué)出版社,2004. [3] 何立民.單片機(jī)應(yīng)用技術(shù)大全[M].北京:北京航空航天大學(xué)出版社,1994. [4] 張毅坤.單片微型計(jì)算機(jī)原理及應(yīng)用[M]
19、.西安:西安電子科技大學(xué)出版社,1998. [5] 吳金戎,沈慶陽.8051單片機(jī)實(shí)踐與應(yīng)用[M].北京:清華大學(xué)出版社, 2003. [6] 余錫存.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000. [7] 雷麗文.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997. [8] 李華.MCS-51系列單片機(jī)實(shí)用接口技術(shù)[M].北京: 北京航空航天大學(xué)出版社,1993 [9] 周航慈.單片機(jī)應(yīng)用程序設(shè)計(jì)技術(shù)[M].北京: 北京航空航天大學(xué)出版社,1991. [10] 何立民 MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社, 1995.
20、 附錄A 交通燈控制系統(tǒng)原理圖 附錄B PCB圖 附錄 C 總程序清單 ;**********************************************************************************************: ;堆棧棧底7FH; ;**********************************************************************************************; ;LED數(shù)碼管顯
21、示器設(shè)定; ;P0.7---P0.0段控線,接LED的顯示段dp,g,f,e,d,c,b,a ;P2.7---P2.0位控線,從左至右(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0) ;顯示緩沖區(qū)設(shè)定從左至右依次為7FH,7EH,7DH,7CH,7BH,7AH,79H,78H(LED7,LED6,LED5,LED4,LED3,LED2,LED1,LED0) ;**********************************************************************************************; ;
22、獨(dú)立式鍵盤設(shè)定; ;8個(gè)按鍵S2至S9分別依次接在P1.0至P1.7口線; ;**********************************************************************************************; ;子程序; ;DISP(數(shù)碼管顯示子程序) ;DL(1毫秒延時(shí)子程序,晶振頻率12MHz) ;***********************************************************************************************; ;常數(shù)表格; ;TA
23、B(共陽數(shù)碼管字型代碼表) ;DISBH(系統(tǒng)提示符P.字型代碼序號(hào)表) ;**********************************************************************************************; ;中斷服務(wù)程序; ; ;**********************************************************************************************; ;鍵功能程序; ; ;***************************************
24、********************************************************; ;數(shù)據(jù)存儲(chǔ)器變量及常量單元定義; ; ;***********************************************************************************************; ;偽指令定義區(qū) ;***********************************************************************************************; ;系統(tǒng)起始程序區(qū)
25、 ORG 0000H START: LJMP MAIN ORG 000BH LJMP ZDFW ORG 0030H MAIN: MOV SP, #7FH MOV PSW, #00H MOV R0, #20H MOV R2, #96 ML: MOV @R0, #00H INC R0 DJNZ
26、 R2, ML ;初始化以及清零 /////////////////////////////////////////////////////////// ML0: MOV R1, #08H MOV DPTR, #DISPH0 MOV R0, #78H ML1: MOV A, #00H MOVC A, @A+DPTR MOV @R0, A INC R0 INC DPTR DJNZ R1, ML1 L
27、OOPA: LCALL DISP ;顯示“P.”字符 LCALL KEY ;調(diào)用鍵掃程序 JB 20H.0, S2GN ;如果20H.0為1(也即按下了按鍵s2)則轉(zhuǎn)移到鍵功能程序S2GN LJMP LOOPA // BIAOZHI EQU 39H SECGE EQU 40H ;將40H單元用常量SECGE定義表示個(gè)位 SECSHI EQU 41H ;將41H單元用常量SECSHI定義表示十位 ;****************
28、*****************************************************************; ;鍵功能程序區(qū) S2GN: CLR RS1 ;寄存器為第1組 SETB RS0 MOV 39H, #1 T10: MOV 77H, #60 MOV P3, #11011110B ;主干道綠開始亮,次干道紅燈亮 MOV 7DH, #10H MOV 7CH, #10H MOV SECGE, #9 MOV SECSH
29、I, #5 AA1: MOV 7FH, SECGE MOV 7EH, SECSHI T11: LCALL DELAY2 LCALL DELAY2 LCALL SJCHULI DJNZ 77H, AA1 //////////////////////////////////////////////////////////// MOV 39H, #2 MOV R0, #2 MOV P3, #1
30、1011101B;主干道黃燈開始亮,次干道繼續(xù)亮紅燈 MOV SECGE, #5 MOV SECSHI, #0 AA2: MOV 7FH, SECGE MOV 7EH, SECSHI MOV 7DH, #10H MOV 7CH, #10H LCALL SJCHULI T2: LCALL DELAY2 LCALL DELAY2 DJNZ R0, AA2 ;延時(shí)2s /////////////////////////////////////////////////////
31、////// MOV R0, #3 MOV 39H, #3 T3: MOV P3, #11011111B;主干道黃燈閃亮3s,次干道繼續(xù)紅燈 LCALL DELAY2 MOV 39H, #4 MOV P3, #11011101B LCALL DELAY2 MOV 78H, SECGE MOV 79H, SECSHI MOV 7AH, #10H MOV 7BH, #10H LCALL SJCHULI
32、 DJNZ R0, T3;延時(shí)3s ///////////////////////////////////////////////////////////// MOV R0, #30 MOV 39H, #5 MOV P3, #11110011B ;主干道紅燈,次干道綠燈 MOV SECGE, #9 MOV SECSHI, #2 MOV 7FH, #10H MOV 7EH, #10H AA3: MOV 7DH, SECGE
33、 MOV 7CH, SECSHI T4: LCALL DELAY2 LCALL DELAY2 LCALL SJCHULI DJNZ R0, AA3;延時(shí)30s //////////////////////////////////////////////////////////////// MOV R0, #2 MOV 39H, #6 MOV P3, #11101011B ;主干道紅燈,次干道黃燈 MOV SECGE, #5 MOV SECSHI, #0 A
34、A4: MOV 7FH, SECGE MOV 7EH, SECSHI T5: LCALL DELAY2 LCALL DELAY2 DJNZ R0, AA4 ;延時(shí)2s /////////////////////////////////////////////////////////////// MOV R0, #3 ;主干道紅燈,次干道黃燈閃3s MOV 39H, #7 T6: MOV P3, #11111011B LCALL DELAY2 MOV
35、 39H, #8 MOV P3, #11101011B LCALL DELAY2 LCALL SJCHULI MOV 7DH, SECGE MOV 7CH, SECSHI DJNZ R0, T6 ;延時(shí)3s LJMP S2GN SJCHULI: PUSH PSW;堆棧保護(hù) PUSH ACC SETB RS1 ;使用第二組寄存器 CLR RS0 MOV R0, SECGE MOV
36、A, SECSHI SWAP A ORL A, R0 ;到此處實(shí)現(xiàn)合字功能 SUBB A, #01H;實(shí)現(xiàn)減一功能 MOV R0, A ANL A, #0FH;屏蔽掉高四位 MOV SECGE, A ;將底四位送給個(gè)位SECGE MOV A, R0 SWAP A ;高低字節(jié)交換 ANL A, #0FH ;屏蔽功能 MOV SECSHI, A ;給十位送數(shù) LCALL PAND ;調(diào)用
37、判斷 POP ACC POP PSW RET ////////////判斷子程序,判斷數(shù)字的合法性/////////////////////////////// PAND: PUSH ACC ;堆棧保護(hù) CLR CY ;進(jìn)位清零 MOV A, SECGE SUBB A, #09H ;個(gè)位的數(shù)與9作差 JBC CY, K2 ;如果出現(xiàn)借位(數(shù)據(jù)合法)則轉(zhuǎn)向K2,沒有(數(shù)據(jù)非法)則循序執(zhí)行 K1: MOV
38、 A, SECGE SUBB A, #06H ;對(duì)非法數(shù)據(jù)進(jìn)行減6,得到合法數(shù)據(jù) MOV SECGE, A K2: MOV A, SECSHI CLR CY SUBB A, #10 ;十位的數(shù)與10作差 JBC CY, K4 ;如果出現(xiàn)借位(數(shù)據(jù)合法)則轉(zhuǎn)向K2,沒有(數(shù)據(jù)非法)則循序執(zhí)行 K3: MOV A, SECSHI SUBB A, #06H ;對(duì)非法數(shù)據(jù)進(jìn)行減6,得到合法數(shù)據(jù) MOV SEC
39、SHI, A K4: POP ACC RET ;*****************************************************************************************; ;表格區(qū) DISPH0: DB 10H,10H,10H,10H,10H,10H,10H,11H;字符“P.”序號(hào)表 TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H ;0-8 DB 90H,88H,83H,0C6H
40、,0A1H,86H,8EH,0FFH,0CH ;9,A,B,C,D,E,F,滅,“P.” ;*****************************************************************************************; ;鍵掃描子程序區(qū) KEY: LCALL KS JNZ LK1 LJMP BB LK1: LCALL DISP LCALL DISP LCALL KS JNZ LK2 LCALL DISP L
41、JMP BB LK2: MOV B, 20H LK3: LCALL KS JZ LK4 LCALL DISP LJMP LK3 LK4: LCALL DISP LCALL DISP LCALL KS JZ LK5 LJMP LK4 LK5: MOV 20H, B BB: RET ;*****************************************************************
42、**********************; ;鍵處理子程序 KS: PUSH PSW CLR RS1 SETB RS0 MOV P1, #0FFH MOV A, P1 CPL A MOV 20H, A CLR RS1 CLR RS0 POP PSW RET ///////////////////////////////////////////// ;顯示子程序; DISP: P
43、USH ACC ;壓入堆棧 PUSH DPH PUSH DPL PUSH PSW CLR RS1 SETB RS0 MOV DPTR, #TAB;顯示字符代碼首地址送往DPTR MOV R1, #78H MOV R2, #08H;循環(huán)次數(shù),即驅(qū)動(dòng)管的個(gè)數(shù) MOV R3, #0FEH;位控代碼(從右往左顯示) DISP1: MOV A, @R1 MOVC A, @A+DPTR
44、 MOV P0, A;送段空碼 INC R1 MOV P2, R3;送位控碼 LCALL DELAY ;延時(shí)調(diào)用 MOV A, R3 RL A MOV R3, A DJNZ R2, DISP1;循環(huán)判斷 DISP2: POP DPH ;出棧 POP DPL POP ACC POP PSW RET /////////////////////////////////////////////////////////////////
45、// ;延時(shí)1ms子程序(晶振頻率12MHz)DL DELAY: MOV R5, #02H MOV R6, 0FFH LOOP1: DJNZ R6, LOOP1 LOOP2: DJNZ R5, LOOP2 RET ;延時(shí)500ms子程序(定時(shí)器以中斷方式工作) DELAY2: PUSH ACC PUSH PSW SETB RS1 SETB RS0 MOV R3, #00H CLR 22H.0 MOV TH0
46、, #3CH MOV TL0, #0B0H MOV TMOD, #01H LCALL KEY JB 20H.1, OUT SETB EA SETB ET0 SETB TR0 LCALL KEY JB 20H.1, OUT LOOPD: JB 22H.0, EXIT0 LCALL KEY JB 20H.1, OUT LCALL DISP LJMP LOOPD OUT: SETB 20H
47、EXIT0: POP PSW POP ACC JBC 20H, BB1 LJMP BB0 BB1: LCALL S3GN BB0: RET S3GN: NOP MOV P3, #11101011B MOV 76H, #10 AA5: LCALL DELAY2 CPL P3.7 LCALL DELAY2 CPL P3.7 DJNZ 76H,
48、 AA5 MOV R5, 39H CC1: CJNE R5, #1, CC2 MOV P3,#11011110B AJMP OUT2 CC2: CJNE R5, #2, CC3 MOV P3, #11011101B AJMP OUT2 CC3: CJNE R5, #3, CC4 MOV P3, #11011111B AJMP OUT2 CC4: CJNE R5, #4, CC5 MOV
49、 P3, #11110011B AJMP OUT2 CC5: CJNE R5, #5, CC6 MOV P3, #11110011B AJMP OUT2 CC6: CJNE R5, #6, CC7 MOV P3, #11101011B AJMP OUT2 CC7: CJNE R5, #7, CC8 MOV P3, #11111011B AJMP OUT2 CC8: CJNE R5, #
50、8, OUT2 MOV P3, #11101011B SETB P3.7 OUT2: RET ;中斷服務(wù)程序 ZDFW: PUSH PSW SETB RS1 SETB RS0 INC R3 CLR TR0 MOV TH0, #3CH MOV TL0, #0B0H SETB TR0 CJNE R3, #9, EXIT SETB 22H.0 EXIT: POP PSW RETI END 26
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 24香港璀璨的明珠
- 第02講 第一章 綜合布線基礎(chǔ)知識(shí)
- 預(yù)防傳染病課件
- 【創(chuàng)新設(shè)計(jì)】2011屆高考生物一輪復(fù)習(xí) 第5章單元綜合提升 細(xì)胞增殖、分化、衰老和凋亡課件 蘇教版必修1
- 512防震減災(zāi)安全教育班會(huì)課件
- 2022年浙教初中數(shù)學(xué)八下《反證法》課件10
- 1山中訪友課后作業(yè)(A組-基礎(chǔ)篇)
- 產(chǎn)后出血完整版
- 質(zhì)量培訓(xùn)教材(2)
- 部編版一年級(jí)下冊(cè)語文課件第三單元語文園地三(完美版)
- 我最好老師課件
- 面向?qū)ο蟾呒?jí)應(yīng)用及C-sharp-語法新特性課件
- 堿金屬元素課件
- 部編人教版六年級(jí)語文下冊(cè)14《文言文二則-》學(xué)-弈課件
- 部編版六年級(jí)上冊(cè)語文課件--宇宙生命之謎