豆?jié){機模擬設計書_第1頁
豆?jié){機模擬設計書_第2頁
豆?jié){機模擬設計書_第3頁
豆?jié){機模擬設計書_第4頁
豆?jié){機模擬設計書_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、鄭州華信學院課程設計說明書 題目: 豆?jié){機程序及仿真設計 姓 名: 院 (系): 專業(yè)班級: 學 號: 指導教師: 成 績: 時間:2011年11月16日至 2011年12月16日 目 錄目 錄- 1 -1.摘 要- 2 -2.前 言- 2 -3.設計要求- 3 -3.1.硬件設計原則- 3 -3.2.應用軟件的設計原則- 4 -3.3.應用系統(tǒng)開發(fā)過程- 4 -3.4.應用系統(tǒng)工作過程- 5 -4.方案分析- 6 -4.1.硬件需求分析- 6 -4.2.軟件功能分析- 8 -5.主要硬件元件分析- 8 -5.1.AT89C52芯片的介紹- 8 -5.2.74LS245驅動器- 9 -5.3.

2、數碼顯示管- 10 -6.調 試- 10 -6.1.接電源等待狀態(tài)- 10 -6.2.模式選擇- 11 -6.3.加熱狀態(tài)- 12 -6.4.粉碎狀態(tài)- 12 -6.5.工作完成狀態(tài)- 13 -6.6.超液位中斷狀態(tài)- 14 -6.7.液體溢出中斷和液位過低中斷狀態(tài)- 14 -7.總 結- 15 -8.附 錄- 15 -8.1.豆?jié){機控制程序清單- 15 -9.參考文獻- 20 -10.元件明細表- 20 -11.課程設計成績評定表- 21 -1. 摘 要本豆?jié){機的控制系統(tǒng)是基于可編程的AT89C52單片機來實現的。本控制系統(tǒng)主要實現以下幾個功能: 針對不同的豆類和谷物進行不同程度的加熱粉碎,

3、即有不同的工作模式,不同的工作模式和加熱粉碎時間用數碼管予以顯示,在整個過程中,將液位限制在安全的范圍之內,處理完畢后,進行報警并關斷電源。液體溢出或液位過低時,立即關斷電源并報警。在豆?jié){機工作過程中,全部用軟件控制。對不同物料的不同處理用處理時間加以區(qū)分。定時系統(tǒng)采用AT89C52內部的定時器T0來完成。先用T0定時器定時20ms,并用循環(huán)指令定時1s加定時,之后在不同的時間段采取不同的操作。液位限定、液體溢出保護和液位過低保護用中斷來控制,其檢測用防溢電極、溫度傳感器等控制傳感器來實現。2. 前 言豆?jié){機是一種新型的家用飲料機,以黃豆等谷物等為原料,直接加工成熟的味道鮮美的熱豆?jié){。豆?jié){機由

4、粉碎谷物的電機、豆?jié){加熱器和控制電路三大部分組成。用AT89C52單片機研制的全自動豆?jié){機的控制系統(tǒng),當放入適量浸泡好的的谷物后,加入適量的冷水,插入220V交流電源,豆?jié){機指示燈亮起,按下按鈕,先對豆?jié){機進行水位檢測,符合要求后加熱管開始對水進行加熱,當加熱到一定時間后,豆?jié){機停止加熱,并啟動磨漿電機開始粉碎,運轉一定時間后停止運轉,繼續(xù)加熱。在加熱過程中當溫度達到一定值時豆?jié){上溢,當豆?jié){沫接觸到防溢電極時,停止加熱,待液位下降至安全液位后,繼續(xù)加熱。如果溫度過高,致使液體沸騰,溢出容器,或液體減少至過低液位時,立即觸動檢測開關,關斷電源,停止工作并報警。正常情況下,當粉碎2次后,谷物已經粉

5、碎完全。之后再對豆?jié){進行最后的加熱,豆?jié){就加工好了。此時系統(tǒng)關斷電源并發(fā)出報警信號,等待主人處理。可見,只要按下啟動按鍵,豆?jié){機就開始工作,一會兒就能喝到美味又營養(yǎng)的豆?jié){。整個過程由單片機全自動控制,并配合安全保護措施,用起來更加的方便、更加的安全。3. 設計要求3.1. 硬件設計原則一個單片機應用系統(tǒng)的硬件設計包含兩部分內容:一是系統(tǒng)擴展,即單片機內部的功能單元,如ROM、RAM、I/O、定時器/計數器、中斷系統(tǒng)等容量不能滿足應用系統(tǒng)的要求時,必須在片外進行擴展,選擇適當的芯片,設計相應的電路。二是系統(tǒng)配置,即按照系統(tǒng)功能要求配置外圍設備,如鍵盤、顯示器、打印機、A/D、D/A轉換器等,要設

6、計合適的接口電路。系統(tǒng)的擴展和配置設計應遵循下列原則:(1)盡可能選擇典型電路,并符合單片機的常規(guī)用法。為硬件系統(tǒng)的標準化、模塊化打下良好基礎。(2)系統(tǒng)的擴展與外圍設備配置的水平應充分滿足應用系統(tǒng)的功能要求,并留有適當余地,以便進行二次開發(fā)。(3)硬件結構應結合應用軟件一并考慮。硬件結構與軟件方案會產生相互影響,考慮的原則是:軟件能實現的功能盡可能有軟件來實現,以簡化硬件結構。但必須注意,由軟件實現硬件功能,其響應時間要比直接用硬件實現來得長,而且占用CPU時間。因此選擇軟件方案時,要考慮到這些因素。(4)整個系統(tǒng)中相關的器件要盡可能做到性能匹配,例如選用晶振頻率時,存儲器的存取時間有限,應

7、該選擇允許存取速度較高的芯片;選擇CMOS芯片單片機構成低功耗系統(tǒng)時,系統(tǒng)中的所有芯片都應該選擇低功耗的產品。(5)可靠性及抗干擾設計是硬件系統(tǒng)設計不可缺少的一部分,它包括芯片、器件選擇、去耦濾波、印刷電路板布線、通道隔離等。(6)單片機外接電路較多時,必須考慮其驅動能力,驅動能力不足時,系統(tǒng)工作不可靠,解決的辦法是增加驅動能力。增設線驅動器或者減少芯片功耗,降低總線負載。3.2. 應用軟件的設計原則應用系統(tǒng)中的應用軟件是根據系統(tǒng)功能要求設計的,應盡可能地實現系統(tǒng)的各種功能。應用系統(tǒng)種類繁多,應用軟件各不相同,但是一個優(yōu)秀的應用系統(tǒng)的軟件應具有下列原則:(1)軟件結構清晰、簡捷、流程合理。(2

8、)各功能程序實現模塊化、子程序化。這樣,即便于調試、鏈接,又便于移植、修改。(3)程序存儲區(qū)、數據存儲區(qū)規(guī)劃合理,既能節(jié)約內存容量,又使操作方便。(4)運行狀態(tài)實現標志化管理。各個功能程序運行狀態(tài)、運行結果以及運行要求都設置運行狀態(tài)標志以便查詢,程序的轉移、運行??刂贫伎梢酝ㄟ^狀態(tài)標志條件來控制。(5)經過調試修改后的程序應進行規(guī)范化,除去修改“痕跡”。規(guī)范化的程序便于交流、借鑒,也為今后的軟件模塊化。標準化打下基礎。(6)實現全面軟件抗干擾設計。軟件抗干擾是計算機應用系統(tǒng)提高可靠性的有力措施。(7)為了提高運行的可靠性,在應用軟件中設置自診斷程序,在系統(tǒng)工作運行前先運行自診斷程序,用于檢查系

9、統(tǒng)各特征狀態(tài)參數是否正常。3.3. 應用系統(tǒng)開發(fā)過程應用系統(tǒng)的開發(fā)過程包括四部分工作內容,即系統(tǒng)硬件設計、系統(tǒng)軟件設計。系統(tǒng)仿真調試及脫機運行調試。在確定開發(fā)課題后,首先要進行方案調研,這是整個研制工作成敗。好壞的關鍵,千萬不可忽視,方案調研包括查找資料,分析研究,并解決以下問題:(1)了解國內外相似課題的開發(fā)水平,器材、設備水平,供應狀態(tài);對接收委托研制項目,還應充分了解對方技術要求、環(huán)境狀況,技術水平。以確定課題的技術難度。(2)了解可移植的軟、硬件技術。能移植的盡量移植,以防止大量的低水平重復勞動。(3)摸清軟、硬件技術難度。明確技術主攻方向。(4)綜合考慮軟、硬件分工與配合。單片機應用

10、系統(tǒng)設計中,軟、硬件工作具有密切的相關性通過調查研究,確定應用系統(tǒng)的功能技術指標,軟、硬件指令性方案及分工。系統(tǒng)的硬件設計與軟件設計可并行。硬件電路檢查分兩步走進行:硬件電路檢查與硬件系統(tǒng)診斷。硬件電路檢查在開發(fā)系統(tǒng)外進行,主要檢查電路制作是否正確無誤;硬件系統(tǒng)診斷在開發(fā)系統(tǒng)上進行,用開發(fā)系統(tǒng)的仿真頭代替應用系統(tǒng)中的單片機,開發(fā)系統(tǒng)輸入各種診斷程序來檢查應用系統(tǒng)中各部分是否正常。系統(tǒng)軟件結構方案確定后,軟件的編制科根據開發(fā)系統(tǒng)的功能,利用交叉匯編屏幕編輯或手工編制,編制好的程序通過自動生成或手工翻譯成目標程序后送入開發(fā)系統(tǒng)進行軟件調試。所有模塊化軟件調試完畢后要進行鏈接工作,鏈接成一個完整的系

11、統(tǒng)應用軟件。軟件鏈接調試后,要規(guī)范化,并重新修改ROM、RAM區(qū)域規(guī)則。鏈接調試完畢后系統(tǒng)應用軟件固化在EPROM中,然后可進行脫機(即離開開發(fā)系統(tǒng))運行。在一般情況下,應能正常運行,但有時卻不可能,因此還必須要作必須的檢查調試。當脫機不能正常運行時,要考慮實際電路與仿真環(huán)境的差異。3.4. 應用系統(tǒng)工作過程被選中的模式用LED顯示器表明實現不同模式下的加工過程:加熱粉碎1加熱粉碎2加熱完成報警,整個加工過程的進行按時間控制,時間自定液位檢測和控制:使被加工的食品液體限定在某一個給定的液位范內,當液體溢出容器時,報警并斷電。設計系統(tǒng)各個部分的工作電源。家用豆類和谷物處理機(即全自動豆?jié){機)具有

12、按預設模式自動粉碎谷物、加熱功能、防止溢出、處理完畢報警等基本功能。一般可以處理如豆類、玉米、其他五谷雜糧、蔬菜等多種食品。全自動家用豆類和谷物處理機的處理食品的過程通常為:加熱粉碎1加熱粉碎2加熱完成報警,整個加工過程的進行按時間控制。由于食品原料的物理特性不同,在加工處理時采用不同的加工(過程)模式,其主要區(qū)別在于加熱和粉碎時間的長短不同。在工作過程中,被加工的食品液體被限定在某一個給定的液位范圍內,當液體加熱時泡沫達到溢出液位時,停止加熱,待脫離溢出液位區(qū)時繼續(xù)加熱。參數:電機:5W 24V DC;加熱器:500W 220V AC;加熱容器:1.25升;電力供應:220V AC4. 方案

13、分析4.1. 硬件需求分析硬件上豆?jié){機的控制系統(tǒng)首先需要有一個單片機芯片作為控制核心來控制它的工作過程,我們選用AT89C52。模式選擇時需用3×1個微型按鈕開關。因為要顯示工作模式和工作時間,我們選擇了1個共陰極的SEG-MPX6-CC LED數碼顯示管。并配套選用74LS245芯片以驅動數碼管、 74LS138芯片以產生數碼管片選信號。 在剛開始時需要進行水位檢測,這就需要一個傳感器,為了減少成本,這里采用一個開關來模擬代替?zhèn)鞲衅鞯淖饔?,然后開始進行加熱和粉碎。本設計過程用LED燈進行模擬指示即可。超液位、液體溢出和液位過低信號同樣用開關來模擬。對豆?jié){再次加熱完畢后,預示著豆?jié){加

14、工完成了,最后發(fā)出報警信號,這里就選用一個報警器和一個蜂鳴器就可以了。綜上,現實中需要的硬件有1個AT89C52,1個SEG-MPX6-CC LED數碼顯示管,2個74LS245芯片,1個74LS138芯片,4個BUTTON開關,1個電動機(帶粉碎刀頭),1個發(fā)熱板,2個LED指示燈(電源指示和報警燈),1個蜂鳴器和2個繼電器等。而本模擬控制過程只需1個AT89C52,1個SEG-MPX6-CC LED數碼顯示管,2個74LS245芯片,1個74LS138芯片, 4個BUTTON開關,3個LED指示燈,1個蜂鳴器等即可。本豆?jié){機系統(tǒng)框圖如下圖1a和圖1b所示:89C52顯示器指示燈鍵 盤電機和

15、發(fā)熱板中 斷保 護圖1a 系統(tǒng)框圖圖1b 豆?jié){機模擬控制系統(tǒng)硬件電路圖(注:鍵1、鍵2、鍵3分別為模式1、模式2、模式3的選擇開關。SW1為超液位信號模擬開關。SW2和SW3分別為液體溢出和液位過低信號模擬開關。LED D3和D2分別為加熱和粉碎指示燈。功能工作時第3個數碼管顯示模式,第5、6兩個數碼管顯示計時時間。)4.2. 軟件功能分析超液位選擇模式設置初值加 熱粉 碎加 熱粉碎2次關電源,報警開 始結 束YYN軟件上就是對單片機的編程了,在編程前需要畫出一個流程圖,如圖2 。根據豆?jié){機控制系統(tǒng)的設計要求及目的,即插上電源按下按鈕后,先對豆?jié){機進行水位檢測,符合要求后,再設定工作模式。根據

16、豆?jié){機的工作場合,我們模擬設定3個工作模式:模式1,加熱6S,粉碎6S;模式2,加熱9S,粉碎9S;模式3,加熱12S,粉碎12S。當粉碎2次,加熱3次后,豆?jié){機完成工作,此時關電源,報警。另外,程序需設3個中斷:超液位中斷、液位溢出中斷和液位過低中斷(液位溢出中斷和液位過低中斷可用一個中斷)。超液位中斷時,系統(tǒng)暫停工作,報警燈亮。待液位下降至安全位置時,繼續(xù)之前的操作;當液位溢出斷和液位過低中斷時,系統(tǒng)直接斷電結束操作,報警燈亮,蜂鳴器響。按照上述對豆?jié){機控制系統(tǒng)的要求,軟件程序應包括主程序、鍵盤子程序、顯示子程序、兩個中斷子程序和報警子程序。具體程序見附圖。用軟件的編程配合硬件的設計以至于

17、完成整個豆?jié){機控制系統(tǒng)的設計。5. 主要硬件元件分析5.1. AT89C52芯片的介紹圖2 主程序簡單流程圖AT89C52提供以下標準功能:8k字節(jié)可重擦寫Flash閃速存儲器、256×8字節(jié)內部RAM、32個可編程I/O口線、一個6向量兩級中斷結構,一個全雙工串行通信口,片內振蕩及時鐘電路。同時,AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM、定時/計數器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內容。振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復位。AT89C52的引腳封裝圖如右圖 3所示。電源

18、及時鐘引腳Vcc:電源接入引腳;GND:接地引腳;XTAL1:晶體振蕩器接入的一個引圖3AT89C52的引腳封裝圖腳(采用外部振蕩器時,此引腳接地);XTAL2:晶體振蕩器接入的另一個引腳(采用外部振蕩器時,此引腳作為外部振蕩信號的輸入端)。控制線引腳RST:復位信號輸入引腳。并行I/O口引腳P0.0-P0.7:一般I/O口引腳或數據/低位地址總線復用引腳;P1.0-P1.7:一般I/O口引腳P2.0-P2.7:一般I/O口引腳或數據/高位總線引腳;P3.0P3.7:一般I/O口引腳或第二功能引腳。5.2. 74LS245驅動器如圖4 74LS245的引腳圖,圖表一為其功能表。圖中CE為使能端

19、,AB/BA為方向控制端,A0-A7為A端的數據輸入/輸出,B0-B7為B端的數據輸入/輸出。74LS245是一種三態(tài)輸出的8總線收發(fā)驅動器,無鎖存功能。當CE為低電平時,如果AB/BA為高電平,則74LS245將A端的數據傳送至B端;如果AB/BA為低電平,則74LS245將B端的數據傳送至A端。在其他情況下不傳送數據,輸出呈高阻態(tài)。 CEAB/BA操作LHABLLBAH×高阻表1 74LS245功能表圖4 74LS245的引腳圖5.3. 數碼顯示管8段LED數碼管是一種顯示設備。它是由若干個發(fā)光二極管組成的顯示字段。有共陽極和共陰極兩種連接方式,在此設計中我們都用共陰極連接,即把

20、所有的發(fā)光二極管的陰極連接一起。共陰數碼管的公共端COM接低電平,當某個顯示字段控制端接高電平時,對應的字段就點亮,當顯示字段控制端接低電平時,該顯示字段熄滅。由于每個顯示字段顯示通常需要十到幾十毫安的驅動電流,因此顯示控制信號必須經過驅動電路(即通過74LS245)才能使顯示器正常工作。6. 調 試6.1. 接電源等待狀態(tài)當接通電源且沒有按鍵選擇模式時,電源指示燈亮。顯示器顯示“0 0”,表示處于等待狀態(tài)。出現的問題及解決辦法:剛開始測試時,上電后顯示管顯示亂碼。原因可能有三:1.編程問題,2.芯片問題。經過反復測試,終于找出原因,改正后顯示管顯示正常。6.2. 模式選擇在等待狀態(tài)下按下鍵1

21、、鍵2或鍵3時,就會選擇工作模式1、模式2或模式3?,F以模式3為例,其余兩種模式雷同。當按下鍵3時,顯示器顯示“3 12”,表示選擇了模式3,加熱時間是12S。如圖6所示。此后顯示器上模式“3”閃三次后,豆?jié){機開始工作。出現的問題及解決辦法:在此過程中,由于89C51芯片的原因,使得鍵盤比較混亂。原來設定的按鍵不會工作了。經過反復測試,測定了芯片P2口的管腳順序,重新定義了按鍵,之后工作正常。6.3. 加熱狀態(tài)當顯示器上模式“3”閃三次后,豆?jié){機開始第一次加熱,加熱指示燈(紅燈)亮,計時顯示器開始倒計數。出現的問題及解決辦法:加熱時發(fā)現豆?jié){機倒計時12S和現實中的12S有較大的誤差。經分析找出

22、病因:在定時器定時1S(20MS×50)的過程中,沒有考慮顯示程序所調用的1MS時間。經改進,將定時器定時改為19MS×50。定時準確了。6.4. 粉碎狀態(tài)當第一次加熱計時到0時,加熱結束,開始第一次粉碎。計時顯示器重新開始倒計時,粉碎指示燈(黃燈)亮。之后又進行第二次加熱,第二次粉碎。6.5. 工作完成狀態(tài)當兩次粉碎,三次加熱結束后,豆?jié){機工作完畢。此時豆?jié){機主動關電源,同時報警燈亮,蜂鳴器響。6.6. 超液位中斷狀態(tài)當在工作中液位超過安全位置時,豆?jié){機暫停工作,報警燈亮。待液位回落后,繼續(xù)接著執(zhí)行之前的操作。6.7. 液體溢出中斷和液位過低中斷狀態(tài)在工作中當液體溢出或液

23、位過低時,豆?jié){機直接停止工作,并報警,報警燈亮,蜂鳴器響。7. 總 結經過將幾周的單片機課程設計,我做的豆?jié){機的控制系統(tǒng)的設計終于完成了。雖然經過了多次曲折的修改和整理,最終還是比較圓滿的實現了本次設計的基本要求。針對這個控制系統(tǒng),我比較滿意的有兩點:第一,完美的安全防范措施。其有三重安全保護,使豆?jié){機的使用更安全;第二,全過程完全自動化,只需要將豆類等谷物和水加入豆?jié){機,并按鍵,片刻之后就會變成鮮美的豆?jié){。操作簡便,更加人性化。在本次設計的過程中,我發(fā)現了很多的問題,并且也學會了很多東西。此刻我已經對單片機這科有了比較深的認識,能熟練地運用相關的編程軟件和仿真軟件,會用單片機去做一些比較簡單

24、的控制系統(tǒng)。這就是我在這次課程設計中的最大收獲。雖然我的作品成功了,但我覺得還有一些可以改進的地方。第一:我將同一個模式下的加熱時間和粉碎時間設置成相同的,雖然程序簡單了,但不是很合理;第二:可以再加上加熱很粉碎次數的統(tǒng)計;第三:我的控制系統(tǒng)中加熱很粉碎是通過時間來控制的,我覺得要是改用溫度來控制就更好了。等等。8. 附 錄8.1. 豆?jié){機控制程序清單 ORG 0000H LJMP MAIN ORG 0003H LJMP INT0_RD ;INT0口中斷(液位溢出和液位過低中斷)入口 ORG 0013H LJMP INT1_RD ;INT1口中斷(超液位中斷) ORG 0030H ;置初始狀態(tài)

25、 MAIN: MOV SP,#70H SETB IT0 ;INT0口中斷觸發(fā)方式為跳變觸發(fā) SETB IT1 ;INT1口中斷觸發(fā)方式為跳變觸發(fā) SETB EA ;開放中斷 MOV IE,#85H ;開中斷 MOV IP,#01H ;INT0中斷源為高優(yōu)先級,INT1中斷源為低優(yōu)先級 CLR P3.0 ;設初值 CLR P3.1 MOV 30H,#00H ;設置時間單元清零 MOV 31H,#00H ;顯示模式單元清零 MOV 34H,#00H ;顯示定時時間單元清零 MOV 32H,#00H ;計時顯示十位清零 MOV 33H,#00H ;計時顯示個位清零SCAN_RD:LCALL XS_R

26、D ;開始無鍵按下,顯示00 LCALL SCAN_KEYB ;模式選擇 JZ SCAN_RD ;有鍵按下 向下 LCALL KEY_PRSD MOV DPTR,#JMP_RD ;設置轉移表首地址 MOV A,R5 ;取鍵值 RL A ;鍵值乘以2 INC R5 JMP A+DPTR JMP_RD:AJMP PRO_00 ;模式0 AJMP PRO_01 ;模式1 AJMP PRO_02 ;模式2 PRO_00:MOV 30H,#06 ;定時時間為6s AJMP LOOP_W PRO_01:MOV 30H,#09 ;定時時間為9s AJMP LOOP_W PRO_02:MOV 30H,#12

27、;定時時間為12s AJMP LOOP_W ;模式選擇后閃爍3次 LOOP_W:MOV 34H,30H ;調入定時時間顯示數據 MOV R7,#3 ;閃爍3次 LOOP_RD:MOV R6,#30 ;延時20MS的次數LOOP0_RD:LCALL XS_RD ;調顯示程序 LCALL DL20MS DJNZ R6,LOOP0_RD ;1S MOV R6,#25 ;延時20MS的次數LOOP1_RD:LCALL XS0_RD LCALL DL20MS DJNZ R6, LOOP1_RD ;0.5S DJNZ R7,LOOP_RD ;閃爍3次 ;開始工作 MOV R6,#02 ;粉碎次數 LCAL

28、L JR_RDG00N_GZ:LCALL FS_RD LCALL JR_RD DJNZ R6, G00N_GZ LCALL BAOJ_WRD ;加熱子程序 JR_RD: MOV 34H,30H ;給顯示單元置數 SETB P3.0 ;加熱 MOV R4,#50 ;20MS程序循環(huán)50次GOON_JR:LCALL TIME_19MS ;調用定時20MS子程序 LCALL XS_RD ;顯示 DJNZ R4,GOON_JR ;到1S了 MOV R4,#50 ;20MS程序循環(huán)50次 DJNZ 34H,GOON_JR ;倒計時完成 CLR P3.0 ;停止加熱 RET ;粉碎子程序 FS_RD: M

29、OV 34H,30H ;重新給顯示單元置數 SETB P3.1 ;粉碎 MOV R4,#50 ;20MS程序循環(huán)50次GOON_FS:LCALL TIME_19MS ;調用定時20MS子程序 LCALL XS_RD ;顯示 DJNZ R4,GOON_FS ;到1S MOV R4,#50 ;20MS程序循環(huán)50次 DJNZ 34H,GOON_FS ;粉碎完畢 CLR P3.1 ;停止粉碎 RET ;鍵盤子程序SCAN_KEYB:MOV P2,#0EFH ;掃描有無按鍵按下 MOV A, P2 ANL A, #0EFH XRL A, #0EFH JZ NO_KEY ACALL DL20MS ANL

30、 A, #0EFH XRL A, #0EFH JZ NO_KEY NO_KEY:RETKEY_PRSD: MOV R4, P2 MOV R5, #00H MOV DPTR,#KEY_TAB CAL_VAL: MOV A,R5 MOVC A,A+DPTR ;查鍵值表 XRL A,R4 JZ FIXED INC R5 ;鍵值加1 SJMP CAL_VAL FIXED: MOV A,P2 ;判斷按鍵是否釋放 ANL A, #0EFH XRL A, #0EFH JNZ FIXED ACALL DL20MS MOV A, P2 ANL A, #0EFH XRL A, #0EFH JNZ FIXED RE

31、TKEY_TAB: DB 0EBH, 0EDH, 0EEHDL20MS: MOV R3, #20 DD1: MOV R4, #200 DD2: NOP NOP NOP DJNZ R4, DD2 DJNZ R3, DD1 RET ;顯示子程序 XS_RD: MOV 31H,R5 ;調入模式顯示數據 MOV R0,#31H ;顯示緩存區(qū)數據 MOV P1,#00000010B ;第三個燈為顯示位置 ACALL DISP_RD ;顯示一位XS0_RD: MOV A,34H ;將定時數據分為兩位 MOV B, #10 DIV AB MOV 32H,A ;十位 MOV 33H,B ;個位 CJNE A,

32、#00H,XS1_RD0 ;十位是否為0 AJMP XS1_RDXS1_RD0:MOV R0,#32H MOV P1,#00000100B ;第五個為顯示位置 ACALL DISP_RD ;顯示一位 XS1_RD: MOV R0,#33H ;顯示緩存區(qū)數據 MOV P1,#00000101B ;第六個燈為顯示位置 ACALL DISP_RD ;顯示一位 RET DISP_RD:MOV DPTR,#LED_RD ;字型碼表首地址 MOV A,R0 ;取顯示數據 MOVC A,A+DPTR ;求顯示數據的字型碼 MOV P0,A ;輸出字型碼 ACALL DL1MS ;穩(wěn)定顯示1ms RET ;返

33、回 ;延時小程序 DL1MS: MOV R3, #200 DDD1: NOP NOP NOP DJNZ R3, DDD1 RET ;字型碼表LED_RD: DB 3FH, 06H, 5BH, 4FH, 66H; '0, 1,2, 3,4 DB 6DH, 7DH, 07H, 7FH, 6FH; '5, 6, 7, 8,9 ;定時19MS子程序TIME_19MS:MOV TMOD,#01H ;設置工作方式1和定時模式 MOV TH0,#0B5H ;計數初值為46536(O) MOV TL0, #0C8H SETB TR0 ;啟動定時器 CONT_RD: JBC TF0,OVER_RD ;是否溢出 SJMP C

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論