版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、華蛀也力*孑課程設(shè)計(綜合實驗)報告(2013- 2014 年度第2學期)名稱:單片機與嵌入式系統(tǒng)課程設(shè)計題 目:基于51單片機的出租車計價器設(shè)計院系:控制與計算機工程學院班級:測控1101班學 號:1111160108學生姓名:李 權(quán)指導教師:呂躍剛設(shè)計周數(shù):一周成 績:日期:2014年06月19日普*L- 力人* 課程設(shè)計(綜合實驗)報告、課程設(shè)計的目的與要求1. 每三人一組,按學號排列分組。2. 每組同學可按題目自行合理分工合作完成,答辯時可分別負責回答其中一部分,如資料查詢、總體設(shè)計、外圍器件研究、傳感器研究、電路設(shè)計、硬件制版圖繪制、軟件編程等。3. 每組課設(shè)只給出題目,而沒有給出具
2、體技術(shù)功能要求。同學可以充分發(fā)揮、完善設(shè)計。4. 建議每組應(yīng)有一個同學學習掌握protel 99SE 制版軟件,并負責電路板設(shè)計。5. 建議認真查閱資料,多參考別人的成果,但設(shè)計的內(nèi)容要有自己的獨立見解。6. 課設(shè)報告按學校格式要求書寫。二、設(shè)計正文1.1.1單片機的概念單片機(microcontroller,又稱微控制器)是在一塊硅片上集成了各種部件的微型計算機。這些部件包括中央處理器 CPU數(shù)據(jù)存儲器 RAM程序存儲器 ROM定時器/計數(shù)器和多種I/O接口電路。 圖1是80C51單片機的基本結(jié)構(gòu)圖圖1 89C51結(jié)構(gòu)方框圖a. 89C51單片機的結(jié)構(gòu)特點有以下幾點:8 位 CPU片內(nèi)振蕩器
3、及時鐘電路;32根I/O線;外部存儲器ROM和RAM尋址范圍各64KB;兩個16位的定時器/計數(shù)器;5個中斷源,2個中斷優(yōu)先級全雙工串行口布爾處理器b. 定時器/計數(shù)器89C51內(nèi)部有兩個16位可編程定時器/計數(shù)器,記為TO和T1。16位是指它們都是由16個觸發(fā)器 構(gòu)成,故最大計數(shù)模值為 2-1??删幊淌侵杆麄兊墓ぷ鞣绞接芍噶顏碓O(shè)定,或者當計數(shù)器來用,或者 當定時器來用,并且計數(shù)(定時)的范圍也可以由指令來設(shè)置。這種控制功能是通過定時器方式控制 寄存器TMOD來完成的.如果需要,定時器在計到規(guī)定的定時值時可以向CPU發(fā)出中斷申請,從而完成某種定時的控制功能。在計數(shù)狀態(tài)下同樣也可以申請中斷。定時
4、器控制寄存器 TCON用來負責定時器的啟動、停止以及中斷管理在定時工作時,時鐘由單片機內(nèi)部提供,即系統(tǒng)時鐘經(jīng)過12分頻后作為定時器的時鐘。技術(shù)工作 時,時鐘脈沖由TO和 T1輸入。c. 中斷系統(tǒng)89C51的中斷系統(tǒng)允許接受五個獨立的中斷源,即兩個外部中斷申請, 兩個定時器/計數(shù)器中斷以及一個串行口中斷。外部中斷申請通過INTO和INT1 (即P3.2和P3.3 )輸入,輸入方式可以是電平觸發(fā) (低電平有效), 也可以是邊沿觸發(fā) (下降沿有效)。兩個定時器中斷請求是當定時器溢出時向CPU提出的,即當定時器由狀態(tài)1轉(zhuǎn)為全零時提出的。第五個中斷請求是由串行口發(fā)出的,串行口每發(fā)送完一個數(shù)據(jù)或接收完 一
5、個數(shù)據(jù),就可提出一次中斷請求。1.1.2 89C51的芯片引腳圖如圖2所示VCC供電電壓。GND接地。P0 口: P0 口為一個8位漏極開路雙向I/O 口,每腳可吸收8TTL門電流。當P1 口的管腳第一次寫 1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口, 當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。Pl. 0Pl. 1C L124039VccJ P0. O/ADOFl. 2C3PO.1/AD1Pl. 3C43TPO.2/AD2Pl. 4c53&P0.3/AD3Pl. 5c635P0.4/A
6、D4Pl. 6cT34J PO. 5/AD5Pl. 7cE:33P0. 6/AD6RESETc932P0.7/ADTKXD/P3. 0c1031ea/vppTKD/P3. 1c1130ALE/PROGIHT0/P3. 2c1229PSENIBTI/P3. 3c1328J P2.7/AD1ST0/P3. 4c142TJ P藝G/AD14T1/P3. 5c1526J P2.5/AD13WP3- &c16251 F2.4/AD12RS/P3. 7c1?24J P2.3/AD11XTAL2c1823P2.2/AD10XTAL1c1922?2.1/AD9PDIPVssc2021P2.0/AD8圖2P1
7、口: P1 口是一個內(nèi)部提供上拉電阻的8位雙向I/O 口,P1 口緩沖器能接收輸出 4TTL門電流。P1 口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1 口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在 FLASH編程和校驗時,P1 口作為第八位地址接收。P2 口: P2 口為一個內(nèi)部上拉電阻的8位雙向I/O 口,P2 口緩沖器可接收,輸出 4個TTL門電流,當P2 口被寫“ 1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。因此作為輸入時,P2 口的管腳被外部拉低,將輸出電流,這是由于內(nèi)部上拉的緣故。P2 口當用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2 口輸出地
8、址的高八位。當對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內(nèi)容。P2 口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3 口: P3 口管腳是8個帶內(nèi)部上拉電阻的雙向 I/O 口,可接收輸出 4個TTL門電流。當P3 口寫 入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3 口將輸出電流(ILL )這是由于上拉的緣故。 P3 口也可作為AT89C51的一些特殊功能口,如下表所示:P3.0 RXD (串行輸入口)P3.1 TXD (串行輸出口)P3.2 /INTO (外部中斷 0)P3.3 /INT1 (外部中斷1)P3.4 T0
9、 (定時器/計數(shù)器0外部輸入)P3.5 T1 (定時器/計數(shù)器1外部輸入)P3.6 /WR (外部數(shù)據(jù)存儲器寫選通)P3.7 /RD (外部數(shù)據(jù)存儲器讀選通)P3 口同時為閃爍編程和編程校驗接收一些控制信號。RST復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。FLASHALE/PROG當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想
10、禁止 ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執(zhí)行MOVXMOVC旨令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。PSEN外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSE N信號將不出現(xiàn)。EA/VPP當/EA保持低電平時,則在此期間外部程序存儲器( 0000H-FFFFH),不管是否有內(nèi)部程 序存儲器。注意加密方式 1時,/EA將內(nèi)部鎖定為 RESET當/EA端保持高電平時,此間內(nèi)部程序存儲 器。在FLASH編程期間,此引腳也用于施加 12V編程電
11、源(VPF)。XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。XTAL2來自反向振蕩器的輸出。1.1.3使用I/O 口的注意事項(1) P1,P2,P3 口的輸出緩沖器可驅(qū)動 4個LSTTL電路。對于HCMO芯片單片機的I/O 口,在正 常情況下,可任意由TTL或NMOSfe路驅(qū)動。HMO及CMO性的單片機I/O 口有集電極開路或漏極開路 的輸出來驅(qū)動時,不必外加上拉電阻(2) 對于74LS系列,CD4000系列以及一些大規(guī)模集成電路芯片(如8155, 8253, 8279等),都 可以和MCS-51系列單片機直接接口。具體使用時,可以查閱有關(guān)器件手冊或參考典型電路(3) 對一些線性
12、組件,特別是應(yīng)用鍵盤、碼盤、LED顯示器等輸入/輸出設(shè)備時,應(yīng)當盡量增加驅(qū)動部分的容量,否則,單片機將提供不出足夠的驅(qū)動電流供給負載使用1.2 89C51中斷系統(tǒng)所謂中斷,是指當計算機執(zhí)行正常程序時,系統(tǒng)中出現(xiàn)某些急需處理的異常情況和特殊情求,CPU暫停執(zhí)行現(xiàn)行程序,轉(zhuǎn)去對隨機發(fā)生地更緊迫事件進行處理;處理完畢后,CPU自動返回原來的程序繼續(xù)執(zhí)行。中斷允許軟件設(shè)計不需要關(guān)心系統(tǒng)其他部分定時要求,算術(shù)程序不需要考慮隔幾個指令檢查I/O設(shè)備是否需要服務(wù)。相反,算術(shù)程序編寫時好像有無限的時間作算術(shù)運算而無其他工作在進行。若其 它事件需要服務(wù)時,則通過中斷告訴系統(tǒng)。89C51單片機有5個中斷源,有兩個
13、中斷優(yōu)先級,每個中斷源的優(yōu)先級可以編程控制。中斷允許 受到CPU開中斷和中斷源開中斷的兩級控制。1.2.1 中斷源中斷源是指任何引起計算機中斷的事件,一般一臺機器允許有許多個中斷源。89C51系列單片機至少有5個中斷源。增加很少的硬件就可把各種硬件中斷源“線或”成為一個外部中斷輸入,然后再 順序檢索一起中斷的特定源。89C51單片機的5個中斷源是: 外部中斷請求0,由(P3.2 )輸入; 外部中斷請求1,由(P3.3 )輸入;3普*L- 力人* 課程設(shè)計(綜合實驗)報告 片內(nèi)定時器/計數(shù)器0益處中斷請求; 片內(nèi)定時器/計數(shù)器1溢出中斷請求; 片內(nèi)串行口發(fā)送/接收中斷請求;為了了解每個中斷源是否
14、產(chǎn)生了中斷請求,中斷系統(tǒng)應(yīng)設(shè)置許多個中斷請求觸發(fā)器(標志位)實現(xiàn)記憶。這些中斷源請求標志位分別有特殊功能寄存器Tcor和scon勺相應(yīng)位鎖存定時器/計數(shù)器控制寄存器 TCON它是一個八位的寄存器,各位如表1所示:表1定時器/計數(shù)器控制寄存器 TCONTF1TF0IE1IT1IE0IT0IT0,IT1 :外部中斷0、1觸發(fā)方式選擇位,由軟件設(shè)置。 1是下降沿觸發(fā),0是電平觸發(fā)。IE0,IE1 :外部終端0、1請求標志位。TF0,TF1 :定時器/計數(shù)器0、1溢出中斷請求標志。1.2.2 中斷的控制中斷的控制主要實現(xiàn)中斷的開關(guān)管理和中斷優(yōu)先級的管理。這個管理主要通過對特殊功能寄存器IE和IP的編程
15、實現(xiàn)。(1)中斷允許寄存器IE 表2中斷允許寄存器IEEA-ET2ESET1EX1ET0EX0EX0,EX1 :外部終端0, 1的中斷允許位。1是中斷開,0是中斷關(guān)ET0,ET1:定時器/計數(shù)器0、1溢出中斷允許位。1是開中斷,0是關(guān)中斷ES:串行口中斷允許位。1是中斷開,0是中斷關(guān)ET2:定時器/計數(shù)器2溢出中斷位EA CPU開/關(guān)中斷控制位。1是開中斷,0是關(guān)中斷(2)中斷優(yōu)先級寄存器IP 表3中斷優(yōu)先級寄存器IPPSPT1PX1PT0PX0若系統(tǒng)中多個中斷源同時請求中斷,則CPU按中斷源的優(yōu)先級別,由高到低分別響應(yīng)。89C51單片機有兩個中斷優(yōu)先級:高優(yōu)先級和低優(yōu)先級。每個中斷源都可以編
16、程為高優(yōu)先級。這可以實現(xiàn)兩級中斷嵌套。嵌套的原則:一個正在執(zhí)行的中斷服務(wù)程序可以被高級的中斷請求中斷,而不能被同級或較低級的中斷請求中斷。兩級中斷通過使用IP寄存器設(shè)置,相應(yīng)的位置1,則優(yōu)先級高,0則優(yōu)先級低。PX0 PX1:終端0、1中斷優(yōu)先級控制;PT0 PT1:定時器/計數(shù)器0、1中斷優(yōu)先級控制。PS:串行口中斷優(yōu)先級控制。89C51復位時,IP被清零,5個中斷源都在同一個優(yōu)先級。這時若其中幾個中斷源同時產(chǎn)生中斷請求,則CPU按照片內(nèi)硬件優(yōu)先級鏈路的順序相應(yīng)中斷,硬件優(yōu)先級由高到低的順序是:外部終端0, 定時器/計數(shù)器0,外部中斷1定時器/計數(shù)器1串行口中斷。1.2.3 中斷響應(yīng)89C5
17、1的CPU在每個機器周期采樣中斷源的中斷請求標志位,如果沒有上述阻止條件,則將在下 一個機器周期響應(yīng)被激活的最高級中斷請求。阻止條件如下: CPU正在處理同級或更高級的中斷; 現(xiàn)行機器周期不是所執(zhí)行指令的最后一個機器周期; 正在執(zhí)行的是 RETI或者是訪問IE或IP的指令;CPU在中斷響應(yīng)之后完成如下操作: 硬件清除相應(yīng)的中斷標志位; 執(zhí)行一條硬件子程序,保護斷點,并轉(zhuǎn)向中斷服務(wù)程序入口。 結(jié)束中斷時執(zhí)行 RETI指令,恢復斷點,返回主程序。89C51的CPU在相應(yīng)中斷請求時,由硬件電路自動形成轉(zhuǎn)向與該中斷源對應(yīng)的中斷的服務(wù)程序入 口地址。這種方法為硬件向量中斷法。各中斷源的中斷服務(wù)程序入口地
18、址如下:表4中斷源的中斷服務(wù)程序入口地址編號中斷源入口地址0外部終端00003H1定時器/計數(shù)器0000BH2外部終端10013H3定時器/計數(shù)器1001BH4串行口中斷0023H各中斷服務(wù)程序入口地址僅隔8個字節(jié),編譯器在這些地址放入無條件轉(zhuǎn)移指令,跳到服務(wù)程序的實際地址。向量中斷包括把先前的程序計數(shù)指針推入堆棧,中斷服務(wù)程序很像其他子程序。當向量中斷發(fā)生 時,硬件禁止所有中斷。此時表明外部中斷或定時器溢出的標志位由硬件清除。中斷服務(wù)程序的不同 分支取決于中斷源。 在重新允許全局 CPU中斷EA之前,必須仔細清除各種標志。標志會引起立即地重復中斷。89C51對終端實際上有特殊的返回指令-RE
19、TI 。不是RET RETI重新允許系統(tǒng)識別其他中斷。因而,沒必要在正常使用中斷時復位EA,只要在程序初始化時開中斷一次就可以了。1.3單片機定時器/計數(shù)器的使用89C51系列單片機至少有兩個 16位內(nèi)部定時器/計數(shù)器。8952有三個定時器/計數(shù)器,其中連個基 本定時器/計數(shù)器是定時器/計數(shù)器0和定時器/計數(shù)器1。他們既可以編程為定時器使用,也可以編程為計數(shù)器使用。若是計數(shù)內(nèi)部晶振驅(qū)動時鐘,則它是定時器;若是計數(shù)89C51的輸入引腳的脈沖信號,則它是計數(shù)器。89C51的T/C時加一計數(shù)的。定時器實際上也是工作在技術(shù)方式下的,只不過對固定頻率的脈沖 計數(shù);由于脈沖周期固定,由計數(shù)值可以計算出時間
20、,有定時功能。當T/C工作在定時器時,對振蕩源12分頻的脈沖計數(shù),即每個機器周期計數(shù)值加一,頻率加 =fosc/12。晶振為6MHz計數(shù)頻率=500KHz每2uS計數(shù)加一。當T/C工作在計數(shù)器時,計數(shù)脈沖來自外部脈沖輸入引腳TO或T1。當TO或T1腳上負跳變需2個機器周期,即24個振蕩周期。所以 TO或T1腳輸入的計數(shù)外部脈沖的最高頻率為 fosc/12。當晶振 為12MHz時,最高技術(shù)頻率為 500KHz高于此頻率將計數(shù)出錯。1.3.1與T/C有關(guān)的特殊功能寄存器(1)計數(shù)寄存器TH和TLT/C是16位的,計數(shù)寄存器有TH高8位TL低8位構(gòu)成。在特殊功能寄存器中,對應(yīng)T/C0為TH0和TLO
21、;對應(yīng)T/C1為TH1和TL1。定時器/計數(shù)器的初始值通過 TH1/TL1和THO/TLO設(shè)置(2)定時器/計數(shù)器控制寄存器 TCON表5定時器/計數(shù)器控制寄存器 TCONTR1TR0TRO TR1:定時器/計數(shù)器0、1啟動控制位。1是啟動,0是停止TCOF復位后清零,T/C需要受到軟件控制才能啟動計數(shù);當計數(shù)計滿時,產(chǎn)生向高位的進位TF,即溢出中斷請求標志T/C的方式控制寄存器 TMOD表6 T/C的方式控制寄存器 TMODGATEC/TM1M0GATEC/TM1M0C/T:計數(shù)器或定時器選擇位。1位計數(shù)器,0位定時器GATE門控信號。1時T/C的啟動控制受到雙重控制,即要求 TR0/TR1
22、和INT0/INT1同時為高;0時T/C的啟動僅受TR0/TR1控制。表7 M1和M0工作方式選擇位M1M0方式功能000為13位定時器/計數(shù)器,TL存低5位,TH存高8位011為16定時器/計數(shù)器,TL存低8, TH存高8位102常數(shù)自動裝入的8位定時器/計數(shù)器113僅適用于T/C0 ,兩個8為定時器/計數(shù)器1.3.2定時器/計數(shù)器的初始化(1)初始化步驟在使用89C51的定時器/計數(shù)器前,應(yīng)對它進行編程初始化,主要是對TCOF和 TMOD編程,還需要計算和裝載T/C的計數(shù)初值。一般完成以下幾個步驟:確定T/C的工作方式-編程TMOD寄存器。計算T/C中的計數(shù)初值,并裝載到TH和TL。T/C
23、在中斷方式工作時,須開CPU中斷和源中斷-編程IE寄存器。啟動定時器/計數(shù)器-編程TCOh中 TR1和TR0位(2)計數(shù)初值的計算在定時器方式下,T/C是對機器周期脈沖計數(shù)的,如果fosc=6MHz,一個機器周期為 2us,貝U方式0 13位定時器最大時間間隔(2-1) x 2us=16.384ms ;方式1 16位定時器最大時間間隔方式2 8位定時器最大時間間隔=(2-1 ) x 2us=131.072ms ;=(2-1 ) x 2us=512us若使T/C工作在定時器方式1,要求定時1ms,求計數(shù)初值。如設(shè)計數(shù)初值為x,則有(2-1 )x2us=1000usx=2-500因此,TH,TL
24、可置 65536-500。2、計價器系統(tǒng)設(shè)計2.1硬件設(shè)計2.1.1 整體硬件電路圖匚丨丄圖3整體硬件電路圖由上圖我們可以看到,本電路控制核心是AT89C51芯片。該方案我們采用動態(tài)顯示的方法。動態(tài)顯示的優(yōu)點是,它占用 CPU的時間少,每次只把一個數(shù)據(jù)送到外部接口,雖然我們仿真看到的是全部 數(shù)碼管都亮著,那是因為動態(tài)顯示的時間比較快,超過我們?nèi)搜鄣谋鎰e能力。若我們在仿真的時候暫 停一下,就可以清楚地看到,時間單元和價格單元分別只顯示一位。靜態(tài)顯示,是每一個數(shù)碼管不論 在什么時候都點亮,占用CPU的時間很多。按鍵主要控制系統(tǒng)的初始化、開始工作、數(shù)據(jù)鎖存三項工作。剛開始上電,則所有的數(shù)碼管同時顯示
25、全0狀態(tài),當?shù)谝淮伟聪麻_關(guān),價格從起步價005.0元開始計費,等待是否超過三公里以及計算,時間單元則從00.00.00開始計時,一秒一秒往上加。P0 口作為數(shù)據(jù)總線口,分別把數(shù)據(jù)輸送到4個74LS273地址鎖存器中,而鎖存器的工作需要等待脈沖的到來。脈沖通過寫地址有些端口p3.6和端口 p2.0-p2.3經(jīng)過或非門來產(chǎn)生。只有當把數(shù)據(jù)送到外部接口時,p3.6 口才為低電平,p2.0-p2.3用來控制到底是把數(shù)據(jù)送往哪一個鎖存器。算法公式是:費用=起步價+ (路程-3 )X 1.3路程=速度x時間(速度恒定,60Km/h,也就是1Km/min)若路程小于等于3,則收起步價5元,否則按費用公式算。
26、由于速度恒定,所以計算的核心是時間,只要判斷時間超出2分鐘,則費用公式就開始計算,每多出一公里,費用就加上1.5元,一分鐘一公里來計算,因此本設(shè)計比較簡單。時間單元由單片機的定時器/計數(shù)器來計算,延時 1ms時間的初值由程序來設(shè)定。2.1.2 74LS273 和 74LS02 簡介Vqq Q 了 內(nèi) D Qg Qs Dj 為 Q* CP莎而 而 而 百 puipiri nriijrT2 | J 11 4 11 6 11 T | R | 9 | IDW Q) Cfe Di Qz D2 D3 Qa GND圖4 74LS273管腳圖引腳功能:74LS273是8位數(shù)據(jù)/地址鎖存器。74LS273是一種
27、帶清除功能的 8D觸發(fā)器,1D8D 為數(shù)據(jù)輸入端,1C8Q為數(shù)據(jù)輸出端,正脈沖觸發(fā),低電平清除,常用作8位地址鎖存器。ftB 1A 3B 3AI Lp? II圖5 74LS02管腳圖引腳功能:74LS02是四二輸入或非門。該芯片有四個或非門公選擇,如1A或1B后,經(jīng)過非門再輸出,只有當輸入的兩個變量同時為0時,輸出才為1。具有緩沖倒相功能。2.2軟件設(shè)計2.2.1模塊介紹該計費器系統(tǒng)的軟件設(shè)計分為一下幾個模塊:(1)主程序模塊在主程序模塊中,需要完成對個接口芯片的初始化、出租車起步價和單價、中斷向量的設(shè)計以及開中斷、循環(huán)等待等工作。另外,在主程序模塊中還需要設(shè)置啟動 /清除標志寄存器、里程寄存
28、器和價 格寄存器,并對它們進行初始化。然后,主程序?qū)⒏鶕?jù)各標志寄存器的內(nèi)容,分別完成啟動、清除、 計程和計價等不同的操作。流程圖如3-4所示。當按下輕觸開關(guān)時,開始對系統(tǒng)初始化,價格和時間都顯示0、0,再次按下開關(guān),時間單元開始計時,并計算時間是否超過2分鐘,超過2分鐘,則從第3分鐘開始計費。價格單元從起步價5.0元開始計費,每多一分鐘,價格單元多加1.5元。(2)顯示子程序模塊由于顯示是由顯示時間子程序DIS1和顯示價格子程序 DIS組成的,時間由小時、分、秒三個單元19999.9 元。組成,共六個數(shù)碼管。價格由元和角兩個單元組成,最大可以顯示2.2.2程序流程圖223 匯編程序ORG 00
29、00H;初始化段地址LJMP MAIN;長跳轉(zhuǎn)到主函數(shù) MAI N處ORG 000BH;TT0開始地址LJMP TTO;長跳轉(zhuǎn)到TT0處ORG 0030H;主函數(shù)開始地址,避開0030敏感段MAIN MOV SP,#40H;設(shè)堆棧底指針,下一個數(shù)據(jù)將放在41H單元MOV 70H,#60;價格單元的起步價MOV 71H,#00;價格單元的十位和百位MOV 72H,#00;秒單元清零MOV 74H,#00;時單元清零MOV 75H,#00;75H單元清零備用CLR 00HCLR 01H;將00H, 01H單元清零MOV 6BH,#0AH;將0AH(既十進制10)放入6B單兀MOV R1,#76H;
30、把76H放到R1中KKK MOV R1,#00H;將76H單元的內(nèi)容清零INC R1DJNZ 6BH,KKK;76H 7FH單兀全部清零,備用LCALL DIS;調(diào)用價格顯示子程序LCALL DIS1;調(diào)用時間顯示子程序MOV TMOD,#11H;定時器/計數(shù)器工作方式設(shè)置MOV TH0,#3CHMOV TL0,#0B0H;這句和上一句設(shè)置延時50msMOV 6EH,#20;將6EH單元設(shè)置20,達到1s的延時G2: LCALL DIS;長調(diào)用價格顯示子程序LCALL DIS1;長調(diào)用時間顯示子程序JB P1.0,G2;開關(guān)沒按下,等待按下,顯示初始狀態(tài),全部為零LCALL TIME1;調(diào)用T
31、IME1延時子程序JB P1.0,G2;開關(guān)沒按下,跳到G2,否則轉(zhuǎn)到下一步G1: LCALL DISLCALL DIS1JNB P1.0,G1;開關(guān)按下,繼續(xù)顯示價格和時間,并轉(zhuǎn)到中斷SETB EA;開中斷SETB ET0;定時器0中斷允許,向CPU申請中斷SETB TR0;定時器0工作允許SETB 01H;01H單兀置位LLL: LCALL CHAI;調(diào)用現(xiàn)場保護子程序LCALL DISLCALL JISUAN;調(diào)用計算子程序LCALL DIS1JB P1.0,G3;開關(guān)沒按下,則返回LCALL TIME1JB P1.0,G3CPL 01H;01H單元此時為零JNB 01H,G5;01H;
32、單元內(nèi)容為0,跳到G5SETB ET0;定時器0中斷允許,向CPU申請中斷G6: LCALL DISLCALL DIS1JNB P1.0,G6;開關(guān)按下,顯示所走的時間及費用LJMP MAIN;重新等待下一個工作狀態(tài)G5: CLR ET0G4: LCALL DISLCALL DIS1JNB P1.0,G4G3: LJMP LLLTT0: CLR ET0/*定時一秒*/CLRTR0MOVTH0,#3CHMOVTL0,#0B0HSETBTR0SETBET0DJNZ6EH,JJJLCALLADD1MOV6EH,#20JJJ: RETIDIS: MOV 6DH,#06H/*價格顯示子程序*/MOV R
33、0,#7AHMOV 6CH,#0FEHHHH: MOV DPTR,#0FDFFH /數(shù)據(jù)指針出口地址,低 8位給P0 口,高8給/位P2 口MOVA,6CHMOVXDPTR,AMOVA,R0MOVDPTR,#TAB;查表首地址MOVCA,A+DPTR;查表值送AMOV DPTR,#OFEFFHMOVX DPTR,ALCALL TIME1MOV A,6CHRL AMOVR0,#72HMOV6CH,#0FEHHHH1: MOV DPTR,#0F7FFHMOVA, 6CHMOVXDPTR,AMOVA,R0MOVDPTR,#TABMOVCAA+DPTRMOVDPTR,#0FBFFHMOVR1,6DHC
34、JNER1,#03H,K1ORLA,#80HDIS1: MOV 6DH,#04H/*時間顯示子程序*/;FF給 P0 口 ,F7 給 P1.0 P1.3 口;將6CH的內(nèi)容放到 0F7FFH中;查表首地址;查表值送AMOV6CH,AINCR0DJNZ6DH,HHHRETK1: MOVX DPTR,ALCALL TIME1MOV A, 6CHRL AMOV 6CH,AINC RODJNZ 6DH,HHH1RETTIME1: MOV 6AH,#0AH /*延時子程序 */FFF: MOV 69H,#0AHGGG: DJNZ 69H,GGGDJNZ 6AH,FFFRETJISUAN:JB 00H,K
35、2/*判斷是否超過 3公里及計算價格子程序 */MOVA,78HCLRCSUBBA,#03HMOV73H,#06HJCK3SETB00HLJMPK3K2: MOV R3,71HMOVR4,70HMOVR2,#00HMOVR5,#00HMOV R6,#03HMOV R7,#0E8HLCALLNDIV42MOV75H,R4MOVA,R6MOVR3,AMOVA,R7MOVR4,AMOVR2,#00HMOVR7,#100LCALLNDIV31MOV74H,R4MOVA,R7MOV B,#10DIV ABMOV 73H,AMOV 72H,BK3:RETCHAI: MOV 6FH,#03H/*保護現(xiàn)場子程
36、序*/MOVR0,#77HMOVR1,#7AHZZZ: MOV A,R0ANLA,#0FHMOVR1,AMOVA,R0SWAPAANLA,0FHINCR1MOVR1,AINCROINCR1DJNZ6FH,ZZZRET;保存77H單元中的低4位;循環(huán)三次ADD1: MOV A,77H/*加一子程序*/CJNEA,#59H, L18LJMPL19L18: ADDA,#01HDA AMOV77H,ALJMPL24L19: MOV77H,#00HJNB00H,S1CLRCMOVA,70HADDA,#12MOV70H,AMOVA,71HADDCA,#00HMOV71H,AS1: MOVA,78HCJNE
37、A,#59H,L20LJMPL21L20: ADDA,#01HDA AMOV78H,ALJMPL24L21: MOV 78H,#00HMOVA,79HCJNEA,#23H, L22LJMPL23L22: ADDA,#01HDA AMOV79H,AL23: MOV 79H,#00HL24: RETNDIV42:MOV A,R1/*四除二子程序 */PUSHACCMOVB,#00HNDV421:MOV A,R2CLRCSUBBA,R7MOVR1,AMOVA,R5SUBBA,R6JC NDV422MOVR5,AMOVA,R1MOVR2,AINC BSJMPNDV421NDV422:PUSH BMOV B,#10HNDV423:CLR CMOVA, R4RLCAMOVR4,AMOVA,R3RLCAMOVR3,AMOVA, R2RLCAMOVR2,AXCHA,R5RLCAXCHA,R5MOVF0,CCLRCSUBBA,R7MOVR1,AMOVA,R5SUBBA,R6JBF0,NCV424JCNDV425NCV424:MOV R5,AMOVA,R1MOVR2,AINCR4NDV425:DJNZ B,NDV423POPACCCLROVJNZNDV426SETBOVNDV426:XCH A,R2MOVR7,A普*L- 力人* 課程設(shè)計(綜合實驗)報告MOV R7,A
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年茶葉收購與倉儲管理合同2篇
- 水電安裝工程2025年度合同書協(xié)議2篇
- 二零二五版快遞物流服務(wù)質(zhì)量監(jiān)控與評估協(xié)議合同2篇
- 二零二五年電子供應(yīng)鏈采購合同3篇
- 二零二五年度校園巴士運營管理合同范本3篇
- 二零二五年高端餐飲會所租賃承包合同范本3篇
- 2025年危險品運輸及應(yīng)急處理合同3篇
- 二零二五版物流倉儲與新能源利用合同3篇
- 小學教師事業(yè)單位聘用合同(2篇)
- 二零二五年度綠色交通PPP特許經(jīng)營權(quán)轉(zhuǎn)讓合同3篇
- 數(shù)學八下學霸電子版蘇教版
- SQL Server 2000在醫(yī)院收費審計的運用
- 《FANUC-Oi數(shù)控銑床加工中心編程技巧與實例》教學課件(全)
- 微信小程序運營方案課件
- 陳皮水溶性總生物堿的升血壓作用量-效關(guān)系及藥動學研究
- 安全施工專項方案報審表
- 學習解讀2022年新制定的《市場主體登記管理條例實施細則》PPT匯報演示
- 好氧廢水系統(tǒng)調(diào)試、驗收、運行、維護手冊
- 中石化ERP系統(tǒng)操作手冊
- 五年級上冊口算+脫式計算+豎式計算+方程
- 氣體管道安全管理規(guī)程
評論
0/150
提交評論