




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 微機原理及接口技術課程設計 微機原理及接口技術課程設計說明書 課題: 全自動豆漿機控制程序的設計 專業: 電子信息工程 班級: 電子1102 姓名: 張杰 學號: 3220806485 指導老師: 2013 年 12 月 28 日目 錄第一章 設計任務與目標3設計目的3設計任務3基本設計要求 3功能擴展 3 設計環節與進程安排 3第二章 總體方案設計與方案論證4總體方案設計 4實時鐘的調校方式 5鍵盤的掃描方式 5定時器方式 6開關量輸入消抖模塊的選擇 6倒計時1S方法選擇7第三章 總體軟件設計說明及總工作流程8總工作流程 8總體軟件設計說明 10第四章 系統資源分配及數據定義說明 11單元
2、分配以及各個標志位注釋 11第五章 局部程序設計說明131.自檢模塊 132.鍵盤掃描子模塊 143.按鍵消抖子模塊 144.蜂鳴器LED緩沖子模塊 155.1分鐘內取消模塊 156.拆字子模塊 167.調用時鐘設定子模塊 178.選擇工作模式子模塊 189.水位告警子模塊 1810.模擬水溫子模塊1911.無效啟動子模塊 2012.實時鐘子模塊 2113.顯示更新子模塊2114.啟動子模塊2215.煮漿子模塊2216.保溫子模塊23第六章系統功能與操作說明24 系統功能24 用戶界面操作說明25第七章存在問題與改進程序說明 27 模擬水溫模塊27 水位告警模塊28第八章課程設計總結29附錄:
3、程序代碼清單第一章 設計任務與目標設計課題:全自動豆漿機控制程序的設計設計目的:通過兩個禮拜在實驗室親自動手操作,熟悉和理解微機原理及接口技術上課老師所講的內容,將所學知識親自動手驗證,借此熟悉和掌握書中知識,并加強自己動手設計程序的能力。設計任務:本次為期兩個禮拜的課程設計任務是設計一個全自動豆漿機控制程序,通過LED燈,數碼管模擬豆漿機的各個流程,主要要實現豆漿機的預加熱,預打漿,三次加熱打漿,而后進行煮漿完成整個豆漿的流程,中間加入水位告警,防溢告警功能,并有實時鐘功能。 基本設計要求:1、開機進行適當的有關接口部件及數碼顯示器、指示燈、訊響器等自檢。2、八位LED 七段數碼管在常態下作
4、為實時鐘顯示,其余狀態下有工步號,倒計時,溫度顯示。3、鍵盤中能夠對實時鐘進行調校功能按鍵。4、設有高低水位報警功能,在高水位狀態下啟動,LED燈閃3下,蜂鳴器同步響一秒,在低水位狀態下啟動,LED燈閃1下,蜂鳴器同步響一秒。5、具有能完成基本煮豆漿中的預加熱-預打漿,然后加熱-打漿總共3次的程序。6、具有在啟動后能夠在一分鐘以內取消煮漿的功能模塊。7、實現在3次打漿完成后進入240S倒計時的煮漿功能模塊。8、在煮漿功能模塊中有對水位進行檢測,超出溢電極則停止加熱,待恢復水位持續5秒后才重新開啟加熱煮漿。9、煮漿完成后進行以20%功率加熱的保溫模塊。功能擴展:1、可擴展果汁功能模塊。2、設定電
5、機關閉和重新開啟之間必須間隔15秒。3、實時鐘模塊可設置為4X4模塊,伴有位閃,按鍵賦值功能。4、改良告警提示音為音樂模塊。設計環節及進程安排1、布置課題,明確任務、總體方案設計 1天2、主體功能控制程序設計及調試 5天3、程序綜合聯調及功能完善、改進、擴展 3天4、答辯及編寫設計說明書 3天 第二章 總體方案設計與方案論證本次課程設計的課題是設計全自動豆漿機模擬程序,需要運用微機原理與接口技術課本內容進行設計,設計的豆漿機不單單僅有煮豆漿功能。還帶有水位報警,實時鐘以及實時鐘調校功能,模擬水溫等功能。總體設計方案 對于這次的課程設計,按照老師所講,我們所采取的程序設計是按照模塊化來進行程序的
6、設計。將豆漿機的主工作流程作為一個模塊,再加入其它功能的模塊,比如實時鐘調校模塊,水位告警模塊,模擬水溫模塊等,通過各個模塊之間的循環調用,以此來完成整個全自動豆漿機的程序設計。 整個程序由自檢模塊,程序初始化,15個子模塊組成的主流程循環調用,中斷模塊,延時子模塊構成。實時鐘的調校方式方案一:運用4X4鍵盤對應數字輸入實時鐘調整通過對4X4鍵盤模塊的程序設計,使鍵盤模塊能夠在實時鐘調校功能中實現時分秒準確調時,并且有退格,取消,確定等按鍵調整實時鐘調校,相對應的小時十位只能輸入02,小時個位只能按鍵輸入04,分鐘十位輸入06,分鐘個位輸入09,能夠較準確的對實時鐘進行調校。方案二.:通過調時
7、鍵進入調時,四個按鍵對小時,分鐘進行+1-1調校。這個方案是更為簡單的方案,只需要有個進入調時的按鍵和一個調時完成確定按鍵,以及4個加減時鐘按鍵。通過對鍵號的掃描判斷按鍵是否按下以此來實現對實時鐘的調校功能。這個方案最好的優點是簡化了調校功能,使時鐘能夠以更簡便的方式進行調校,為產品的外觀設計提供了很大的方便。通過上面的綜合判斷實時鐘的調校我們選擇方案二按鍵加減調校。鍵盤的掃描方式方案一:掃描法首先識別鍵盤有無鍵按下,驅動所有列線為0,輸入各行線電平如果有0,就說明有鍵按下,如果行線電平全1,則全部無鍵按下。其次是如有鍵被按下,識別具體的按鍵。依序驅動某一列為0 ,其余列均為1 ,輸入各行線電
8、平,如果某行線電平為0 ,可確定此行列交叉點處的按鍵被按下;如果行線電平全為1 則本列無按鍵按下。這種方式太占用CPU的工作時間。方案二:線反轉法 首先列線輸出為全0 ,隨后輸入行線電平如有0,則0所在的行就是閉合的按鍵所在行;無0則無鍵閉合。其次行線輸出為全0 ,隨后輸入列線電平如有0,則0所在的列就是閉合的按鍵所在列;無0則無鍵閉合。直通結合上述兩步,可確定按鍵所在行和列。這種方式非常簡單,并且很實用。綜合以上的分析,我們選擇方案二線反轉法計數方式方案一:13位計數方式-方式0 定時器/計數器方式0 一共是有13位的計數方式。方式0是為兼容MCS-48而設,初值計算麻煩,在實際應用中,一般
9、不用方式0。并且存在一個是時間誤差,不能適用于精確定時。方案二:16位計數方式-方式1定時器/計數器方式1 一共是有16位的計數方式,由于它每個掃描周期都會有38個Tm(機器周期)的時間誤差,主要是用于要求不是很精確地定時,因為有隨機性的誤差產生。方案三:8位計數自動重裝工作方式-方式2定時器/計數器方式2為自動恢復初值(初值會自動重裝)的8位定時器/計數器,當其計數溢出的時候,系統會自動重裝初值,重新開始計數。這種工作方式可以省去用戶軟件中重裝初值的指令執行時間,可以做到精確地定時時間。綜上所述,我們是要求能做到精確定時,所以選擇方式2按鍵輸入消抖模塊的選擇對于開關量輸入的消抖處理一般有以下
10、兩種種處理方法。方案一:軟件延時消抖即檢測出鍵閉合后執行一個延時程序,產生5ms10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態,如果仍保持閉合狀態電平,則確認為真正有鍵按下。當檢測到按鍵釋放后,也要給5ms10ms的延時,待后沿抖動消失后才能轉入該鍵的處理程序。方案二:滾動濾波消抖法滾動濾波消抖法就是通過滾動濾波法的原理,我們將PB0PB7電平輸入,并進行五次滾存消抖,新態存2EH,舊態存2FH,這個方法能夠較好的完成按鍵的消抖,排除按鍵抖動所產生的不良效果,完善了按鍵功能。所以我們對消抖模塊選擇滾存消抖。倒計時1S方法選擇方案一:在非倒計時顯示情況下,延時可采取調用主程序,重復相應次數,
11、得到相應延時時間。如主程序每調用一次需10ms,調用100次,則得到1s的延時。在倒計時顯示情況下,采取在中斷設置1s到標志位,用到倒計時開啟標志位即可。方案二:每次延時即開啟1s到標志位。 兩個方案相比較,方案一比較簡單、靈活,所以采取第一種方案來進行精準計時。 第三章 總體軟件設計說明與總工作流程總工作流程如圖所示主流程自檢模塊程序初始化B蜂鳴器LED燈緩沖子模塊調用鍵盤掃描子模塊啟動子模塊調用按鍵消抖子模塊1分鐘內取消子模塊顯示更新子模塊工作模式選擇模塊調用拆字子模塊時鐘設定子模塊 A無效啟動子模塊 B A水位告警子模塊模擬水溫子模塊煮漿子模塊保溫子模塊撥動開關子模塊總體軟件設計說明本次
12、的課程設計通過對15個子模塊的循環調用來完成全自動豆漿機的模擬功能,并且采用定時器方式2精準計時。拆字子程序:常態下(待機,保溫)送時分秒到顯緩,其余則送工步號,倒計時到顯緩。顯示更新子程序:根據顯緩單元內容驅動八位數碼管。時鐘設定子程序:通過掃描鍵號判斷調時鍵是否按下借以對實時鐘進行調校。鍵盤掃描子程序:通過線反轉法掃描按鍵鍵號,舊鍵號存65H,新鍵號存64H。工作模式子程序:當無工作模式時,按下功能選擇鍵,則顯示豆漿模式,而后再按時,工作模式在果汁和豆漿兩種模式中切換。1分鐘取消子程序:啟動1分鐘內,通過檢查啟動鍵是否再被按下,是則取消運行。蜂鳴器LED燈緩沖子程序:根據緩沖單元內容驅動蜂
13、鳴器和LED燈按鍵消抖子程序:輸入PB0PB7電平,經5次滾存消抖后,舊態存2FH,新態存2EH。保溫子程序:以20%的功率進行加熱保溫。水位告警子模塊:通過檢測高低水位,若有高水位或者低水位,則啟動時會告警并退出 。煮漿子模塊:以240S倒計時加熱煮漿,若煮漿過程中檢測到超水位,則停止加熱,待水位恢復持續5秒后再重新開啟加熱。無效啟動子模塊:檢測功能未選擇時啟動鍵是否按下,是則告警并退出。撥動開關子模塊:輸入SW0SW7電平到緩沖單元,輸出驅動L8L15。啟動子模塊:功能選擇后判斷啟動鍵是否按下,是則進入預加熱,預加熱達到35度時,則進入預打漿。開啟電機,關閉加熱。待25秒打漿倒計時結束后,
14、關閉電機,開啟加熱。加熱達到50度時進入打漿模式,開電機,關加熱。以下再重復加熱打漿2次后進入煮漿。第四章 系統資源分配及數據定義說明微處理器內部存儲單元分配及數據定義微處理器內部存儲單元數據定義23H豆漿進程碼24H.0是否進行調時標志位25HLED燈閃爍進程碼26H.0閃爍標志位26H.1倒計時標志位26H.2響標志位26H.3開關蜂鳴器標志位26H.4高低水位告警區分標志位26H.5保溫標志位26H.6滿1秒標志位26H.7倒計時百位減到0標志位27H工步號28H驅動P1標志位29H滾存消抖存儲單元2AH滾存消抖存儲單元2BH滾存消抖存儲單元2CH滾存消抖存儲單元2DH滾存消抖存儲單元2
15、EH新態按鍵存儲單元2FH舊態按鍵存儲單元30H-37H顯示緩存單元38H200us計數單元39H1/100s計數單元3AH實時鐘秒鐘存儲單元3BH實時鐘分鐘存儲單元3CH實時鐘小時存儲單元47H打漿,加熱4次設置初值53H閃閃閃延時200ms59H倒計時十位,個位。 5AH倒計時百位(千位不顯示)5BH保溫16秒設置初值5DH保溫4秒設置初值5FH滿一秒計數64H當前新掃描鍵號值存儲單元65H10ms前掃描到鍵號存儲單元67H保溫訊響1分鐘初值69H1分鐘內取消初值6BH1分鐘無效標志位第五章 局部程序設計說明1.自檢模塊功能簡述該模塊主要功能為在開機時進行有關接口部件及數碼顯示器、指示燈、
16、蜂鳴器等適當自檢。程序設計思路及方案當程序輸入到單片機中運行后會首先進行對單片機上各個功能顯示模塊的自檢,確保使用者所使用的單片機是可以正常使用。原理說明及部分代碼 下面通過一段程序了解自檢模塊的實現MOV DPTR,#0FEFCH ;DPTR指向U3-A口MOV A,#0FFH ;置八段均不亮的字段碼(8255A初始化后輸出寄存器全0')MOVX DPTR,A ;輸出,關數碼顯示器(段輸出口初始驅動全為1'無效)MOV DPTR,#0FDFFH ;對8255A(U5)接口芯片初始化MOV A,#8BH ;設定為A口輸出(驅L815),B口輸入(按鈕PB07),C口輸入(開關S
17、W07) MOVX DPTR,A ;寫入方式控制字 MOV DPTR,#0FDFCH ;DPTR指向U5-A口MOV A,#0FFH ;置八位輸出均為1'無效MOVX DPTR,A ;輸出,令L8-15初始不亮CLR P3.2 ;蜂鳴器響 LCALL D1S ;延時1S SETB P3.2 ;關蜂鳴器MOV P1,#00H ;P1口輸出全0',所驅動的L0L7指示燈全亮從這段代碼可知,再初始的狀態下,系統置八位數碼管全不亮,并且L8L15也置為不亮,隨后檢測蜂鳴器是否能正常亮,再檢測L0L7能否全亮。通過程序的設計,完整的檢驗了單片機上各個模塊的狀態,讓使用者能更好的分辨出單片
18、機的正常程度。2.鍵盤掃描子模塊功能簡述該模塊主要功能為實現4*4的鍵盤掃描功能,掃描當前所按下4*4鍵盤的按鍵鍵號存入相應存儲單元,并獲得鍵值,以備后面的操作和功能實現。程序設計思路及方案該模塊在主流程中調用鍵盤掃描子程序(LCALL),運用反轉法掃描鍵盤,得到所按下按鍵的相應行列碼。當用戶未按下按鍵時,相應存儲單元存入未按下信息,即為10H,當用戶按下按鍵時,系統相應存儲單元存入已按下信息,即00H-0FH。通過掃描,并與鍵碼表比較行列碼,相等說明掃描到所按下的按鍵,將鍵值賦值到61H儲存單元,以便后面的使用。原理說明及部分代碼61H為鍵值存儲單元,給61H單元賦初值,通過掃描所按下按鍵的
19、行列碼與鍵碼表比較,找到相等的即說明有鍵按下,且能精確得到相應鍵碼,若找不到相等鍵碼則說明為按下按鍵。鍵號值從00H開始,最多進行16次的鍵碼查表,DPTR指向鍵碼表首地址,置當前鍵號于A中,代碼MOVC A,A+DPTR查表讀取鍵碼表中當前鍵號對應位置的鍵碼,與8位行列碼比較,不同則轉NK查下一個,相同表明找到當前按下的鍵號,代碼INC 61H使鍵號值加1,代碼DJNZ R5,KY判斷未查完鍵值表則繼續,查完則無按鍵或出現異常行列碼,結束并返回。64H中存有新掃描到的鍵號,65H中存有相對于64H中存有的鍵號10ms前掃描到的鍵號,通過兩個單位的存儲比較,能夠較好的判斷出按鍵的按下與否。3.
20、按鍵消抖子模塊功能簡述該模塊的主要功能是為按鍵輸入消抖,防止出現按鍵抖動影響主流程。程序設計思路及方案將原新態存為前態,將前4次得到的電平值推送至2AH-2DH單元中,獲得電平值并存為新態存放在2EH中,比較5次得到的電平值,若電平值不一致則新態不變,若電平值一致則存為新態。原理說明及部分代碼。代碼MOV 2FH,2EH 將原新態存入舊的鍵號,即2EH為新態鍵值存儲單元,2FH為舊態鍵值存儲單元,代碼 MOV 2DH,2CH ; MOV 2CH,2BH MOV 2BH,2AH MOV 2AH,29H將前4次得到的電平值推送至2AH-2DH單元中,獲得電平值并存為新態,代碼 MOV A,2DH
21、CJNE A,2CH,XDR CJNE A,2BH,XDR CJNE A,2AH,XDR CJNE A,29H,XDR比較近5次輸入的電平值,一致的話存為新態,不一致則新態照舊。4.蜂鳴器LED燈緩沖子模塊功能簡述該模塊通過設定緩沖單元驅動蜂鳴器和LED燈。程序設計思路及方案通過設定緩沖單元來驅動蜂鳴器和LED燈,防止直接驅動蜂鳴器和LED燈這種情況下不容易修改需要驅動的方式。原理說明及部分代碼 下面一段程序可以了解整個模塊功能FMQ:JB 26H.3,LF0 CLR P3.2 SJMP LF1 LF0:SETB P3.2 LF1:MOV P1,28HQ0:RET通過設定26H.3作為開啟蜂鳴
22、器的標志位,28H作為LED燈L0L7,這樣能夠在設計過程中通過標志位來判斷來使蜂鳴器能完成我們所需要設定的響的時間,而通過28H緩沖驅動LED燈L0L7,我們就可以通關對28H的判斷來了解燈的亮滅,也可以直接給28H中各個字節分別置0或1,來開啟各個燈的亮滅。5.1分鐘內取消子模塊功能簡述該模塊主要功能為實現當豆漿機開啟工作一分鐘之內都可以取消工作,使用戶能再誤開狀態下能較好的停止豆漿機工作。程序設計思路及方案通過設定一個1分鐘之內可以判斷按鍵是否按下,按下就可以退出整個工作狀態。原理說明及部分代碼 FQ1: DJNZ 69H,FQ2 ;1分鐘倒計時 MOV 69H,#60 DJNZ 6AH
23、,FQ2 MOV 6AH,#100 以上程序為1分鐘主流程循環,通過在一分鐘之內可以判斷啟動鍵是否再次按下,再次按下后就可以取消豆漿機運作。超過一分鐘后就會跳出一分鐘取消模塊,就不能再按取消鍵結束豆漿機運作。 6.拆字子模塊功能簡述該模塊主要功能是在待機保溫時候拆送實時鐘時分秒到顯緩,其余狀態下拆送工步號,倒計時到顯緩驅動八位數碼管。程序設計思路及方案通過判斷進程碼,在不同的模式下拆送不同的單元到顯緩驅動八位數碼顯示器,以實現所需要的功能。原理說明及部分代碼 CZ: MOV A,23H CJNE A,#00H,CZT SJMP CZ2 ;最開始不工作是顯示電子表 CZT: CJNE A,#25
24、H,CZ5 ;保溫時候也顯示電子表 CZ2:MOV R0,#3AH ;取秒,開始拆字實時種 MOV R1,#30H ;置顯示緩沖單元首地址(對應于最右顯示位) 上面為拆字的部分程序,通過程序我們可以清楚的看到,拆字模塊主要通過判斷進程碼,不同的進程碼拆送不同的單元到顯緩,上面一段程序為在待機進程00H,保溫進程25H下拆送時分秒到顯緩,而若非待機,保溫。則程序跳轉到CZ5,如下程序:CZ5:MOV A,27H ; 步驟碼 ANL A,#0FH ;保留低4位(個位) MOV 36H,A MOV A,27H ANL A,#0F0H ;保留高4位(十位) SWAP A ;交換到低4位 MOV 37H
25、,A JB 26H.1,CZ0 ;為1不送倒計時(跳出) MOV A,59H ;倒計時 ANL A,#0FH ;保留低4位(個位) MOV 32H,A MOV A,59H ANL A,#0F0H ;保留高4位(十位) SWAP A ;交換到低4位 MOV 33H,A MOV A,5AHANL A,#0FH ;保留低4位(個位) MOV 34H,A 為拆送倒計時,工步號到對應的顯緩單元,以此來實現豆漿機運作過程中所需要的打漿倒計時和工步號顯示。7.時鐘設定子模塊功能簡述該模塊主要功能為提供用戶對實時鐘的調校功能。程序設計思路與方案 當用戶在使用時,如發現實時鐘不準確,可簡單的對實時鐘進行調校功能
26、,通過設定按鍵加減時分,輕松的完成實時鐘的調校。主要設定六個按鍵,包括進入調時鍵K4,確定調時并退出調時K5,小時加1鍵K0,小時減1鍵K1,分鐘加1鍵K2,分鐘減1鍵K2。原理說明及部分代碼利用進程碼進行設定,只有在待機,保溫進程下才能對實時鐘進行調校。通過線反轉法掃描鍵號來判斷按鍵是否按下以實現對實時鐘的調校功能。在進入調校后通過4個按鍵分別對小時和分鐘進行加減,并將秒單位及前一級單位置0,較準確的完成實時鐘的調校功能。 KTE:JNB 24H.0,L2 MOV A,65H CJNE A,#10H,L3 MOV A,64H CJNE A,#04H,L3下面程序為線反轉法掃描鍵號,若發現有按
27、鍵按下,則新鍵號會存到64H中,以此實現對應的功能。65H存的10H為初始狀態,即無000F鍵按下。8.工作模式子模塊功能簡述該模塊的功能主要為用戶提供模式選擇,正常的模式選擇有豆漿機和果汁,由于本程序只設計豆漿機,但仍然提供了果汁的模式選擇,較好了模擬了正常產品的功能選擇。程序設計思路及方案當用戶按下功能選擇按鍵時, 會將28H.0置0,驅動L0亮起,模擬豆漿模式,而后再按下功能選擇鍵,則模式會在果汁和豆漿中切換。原理說明及部分代碼:原理我們可以分析部分程序來進行,以下面部分程序為例: GZMS: MOV A,23H CJNE A,#00H,GZ0 ;剛開始選擇功能鍵才有效 JNB 2FH.
28、1,GZ0 JB 2EH.1,GZ0 ;判斷PB1功能選擇鍵是否按下 以上的程序是通過判斷在待機狀態時的功能選擇鍵是否按下,通過按鍵的按下再實行以下程序; INC 50H MOV 28H,50H MOV A,50H CJNE A,#0FEH,GZ0 MOV 50H,#0FCH 通過對50H單元加1,而50H內容有初值0FDH,加1后變為FE即驅動L0亮起,即選擇豆漿模式,而后L0與L1交替切換亮滅,即模擬豆漿和果汁模式切換。9.水位告警子模塊功能簡述該模塊主要功能為在啟動時檢測是否水位是否正常程序設計思路及方案為了模擬高低水位,我們設置為SW0模擬高水位,SW1模擬低水位,設立閃爍標志位,借此
29、分辨不同水位不同的閃爍告警方式。原理說明及部分代碼水位告警模塊是為了讓用戶能再一個安全的水位狀態下進行煮漿,即保證了煮出豆漿的優良度,亦能夠較好的保護使用者的安全與豆漿機的使用壽命。通過SW1模擬高水位,當SW0為“0”時,則為高水位,反之則未超水位。SW1為“0”時為低水位,反之水位正常。而通過加入閃爍標志位和高低水位告警標志位26H.4,在調用告警閃閃閃模塊中,可區分高低水位的告警,即高水位告警為閃爍3次,同步蜂鳴器響;低水位告警為閃爍一次,同步蜂鳴器。10.模擬水溫子模塊功能簡述該模塊主要功能為在通過AN1控制A/D轉換數據拆送到數碼管最右邊兩位模擬水溫。.程序設計思路與方案為了更好的模
30、擬水溫拆送,在此模塊中獨立進行拆字程序,而非在拆字模塊中進行拆送,通過對A/D數據的BCD轉換,將0256轉換為099拆送顯示溫度,而AN1可調整模擬水溫。原理說明及部分代碼通過設定AN1調整,由以下程序完成: MOV DPTR,#0FBF9H ;A/D子程序。MOVX A,DPTR ;讀取A/D轉換結果的8位二進制數字值即可以通過AN1調整模擬水溫。而A/D轉換結果存為緩沖單元,而后進行BCD轉換,將其二進制數轉換為099的BCD碼拆送溫度顯示。超過99則送“EE”到溫度顯示顯緩單元中。11.無效啟動子模塊功能簡述該模塊主要功能為防止用戶在未選擇模式就按啟動進入。程序設計思路及方案通過對功能
31、模式燈的亮滅進行判斷是否選擇完模式,是則正常啟動,若無選擇模式進入,則告警并且退出。原理說明及部分代碼首先檢測功能模式燈是否亮起,若未亮起時檢測到啟動鍵按下,則會有告警程序,并且退出運行。告警程序如下:WX2: JNB 2FH.0,WX0 JB 2EH.0,WX0 ; 啟動鍵是否按下 CLR 26H.2 ; 響1s標志位0,持續響 CLR 26H.3 ; 響 WX3: DJNZ 5CH,WX0 MOV 5CH,#100 ; 響1s SETB 26H.3 ; 停響 SETB 26H.2 ; 響1s標志位1,不再響在無選擇模式下,啟動鍵按下后,則會開啟響標志位告警,并有1S主流程循環,告警完才關閉
32、蜂鳴器。12.實時鐘子模塊功能簡述該模塊主要功能為精確實時鐘計時。程序設計思路及方案利用定時方式1產生中斷進行精確實時鐘計時。原理說明及部分代碼當定時器1滿足中斷條件(即定時器計滿256TM),發生中斷,找到中斷路口地址001BH,跳轉到子程序IT1P。子程序的開頭和結尾分別對累加器A和PSW進行入棧和出棧,保證完成中斷回到主循環后,能保存累加器和PSW的數據。進入IT1P子程序表示完成200us計時,此時先對38H單元加1,用以做200us計時單元。同時判斷38H是否為36次,即是否計滿36*256TM=10ms?當時間未到10ms,則跳出子程序,繼續等待中斷發生,再過256TM再進入程序,
33、為38H單元加1。當計滿10ms,對200us單元38H清零,并對百分秒單元39H加1,判斷計滿100次即1s的時間,將百分秒單元清零,對秒單元3A單元加1,之后按照時間規律,每60s對秒單元清零、分鐘單元加1;每60min對分鐘單元清零、小時單元加1但處理秒、分和時的加1需要十進制加1(BCD碼加1),使用ADD累加并用DA進行十進制調整,可以完成此功能。13.顯示更新子模塊功能簡述該模塊主要功能為將顯示緩存單元30H-37H的數據通過查表法找到相應的段碼表將要顯示的內容顯示到數碼管上。程序設計思路及方案通過單元指針逐個將顯示緩存單元30H-37H的數據,查表法找到相應的段碼表將要顯示的內容
34、顯示到數碼管上,再通過循環和判斷執行相應程序。原理說明及部分代碼置顯緩首位,位碼首位,查詢相關的字段碼,輸出字段碼,保存顯示1ms,消除串顯,指向下一個單元,在30H-37H單元循環。14.啟動子模塊功能簡述該模塊為豆漿機運行的主要模塊,模塊中實現豆漿機的預加熱,預打漿,3次加熱打漿以此來完成豆漿打磨加熱的主要過程。程序設計思路及方案通過判斷豆漿模式選擇完后正常啟動進入,利用進程碼實行整個過程。利用進程碼來完成預加熱-預打漿-加熱-打漿-加熱-打漿-加熱-打漿。利用L2燈模擬加熱是否開啟,L3模擬電機。原理說明及部分代碼正常啟動后即賦進程為10H進程時,進行預加熱,而后通過判斷溫度是否達到35
35、度,達到后關閉加熱(即滅L2),開啟電機(即亮L3),進程碼送11H,進行倒計時25秒的預打漿,通過滿1秒標志位的設立,準確的進行倒計時。25秒倒計時結束后重新開啟加熱,關閉電機,待溫度達到50度后,關閉加熱,開啟電機進行打漿,接下去重復加熱打漿兩次,待最后一次打漿完成后即完成整個打磨部分,直接送煮漿程序進程碼。下面示例程序為對進程碼的判斷:Q1: CJNE R1,#10H,Q2 CLR 28H.2 ;加熱 即在不同的進程中完成不同的功能。 15.煮漿子模塊功能簡述 該模塊是在豆漿機打漿完成后進行的最后一步煮漿程序,為240秒的加熱過程,并且有水位溢出判斷功能程序設計思路及方案通過對滿一秒標志
36、位的判斷進行較為準確的240秒加熱倒計時,并且判斷在加熱過程中是否有超溢位,有則停止加熱,待水位恢復正常持續5秒后才重新開啟加熱。原理說明及部分代碼通過對進程碼的判斷,當進程為20H進程時,進行煮漿。開啟加熱。加熱過程中通過判斷水位情況,若出現高水位則會停止加熱,待恢復水位持續5秒后才重新開啟加熱,以下列程序為例: LK1: DJNZ 5CH,LK2 ;5S內無益處才重新加熱 MOV 5CH,#100 INC 4FH MOV A,4FH CJNE A,#06H,LK2 ;5秒后無超水位 CLR 28H.2 ;開加熱 即為判斷恢復水位5秒后才重新開啟加熱。若是為低水位狀態下,即出現“干燒”,則煮
37、漿模式停止,并退出運行。恢復到待機狀態。240秒煮漿完成后,即進入保溫模塊。16.保溫子模塊功能簡述 該功能模塊是對煮完的豆漿訊響1分鐘后,以20%的功率進行加熱保溫。程序設計思路及方案設定響標志位來開啟蜂鳴器訊響通知。而后進入保溫,通過設定加熱4秒,停熱16秒,來實現20%的功率加熱保溫。原理說明及部分代碼如下列程序: BW1: SETB 28H.2 ;停加熱 DJNZ 5BH,BW0 MOV 5BH,#16 DJNZ 5CH,BW0 ;延時16sMOV 5CH,#100 CLR 28H.2 ;開加熱 CLR 26H.5 BW2: DJNZ 5DH,BW0 MOV 5DH,#4 DJNZ 5
38、EH,BW0 ;延時4s MOV 5EH,#100 SETB 26H.5 SJMP BW1通過調用主流程循環,以此來實現4秒的加熱以及16秒的停熱來進行加熱保溫。 第六章 系統功能與操作說明系統功能全自動豆漿機能夠自主的在啟動后進行整個豆漿的打磨煮漿過程,全程自動化,無需使用者額外操作。而本全自動豆漿機還包括有水位情況的報警,實時鐘的模塊,很好的滿足用戶的需求,以及保護使用者。用戶在使用時候,可以輕松操作,無需任何學習,只需要在選擇模式后按下啟動后即可,豆漿機將全程自動化完成,用戶只需輕輕一點,稍等段時間即可以享受一杯美味的豆漿。用戶若有誤啟動,在啟動的一分鐘內可再按此啟動鍵取消啟動。用戶界面
39、及操作說明針對用戶需求進行說明。常規顯示界面及其說明常規顯示狀態下,8位數碼管是顯示“時鐘 - 分鐘 - 秒鐘”,當用戶按下進入啟動后,最左邊兩位顯示當前所進行的工步的工步號。左邊第三位到第六位則顯示豆漿過程中打漿倒計時,煮漿倒計時。最右邊兩位數碼管則顯示當前豆漿溫度。數碼管顯示界面,從左到右分別為第一位至第八位常規顯示狀態,即顯示當前時間 1. 進入運行界面如下:01 240 55 工部號 倒計時 溫度2、L0為豆漿模式指示燈,L1為果汁模式指示燈,L7為保溫燈,L3加熱燈,L4為電機燈,PB0為功能選擇鍵,PB1為啟動/取消鍵,如下圖 L0L1L3L4L7PB0PB1 豆漿模式 果汁模式
40、加熱 電機 保溫 啟動鍵 功能選擇鍵 以上為各個功能模式燈與按鍵,用戶可通過對比參照使用與觀察。時間調整模式當用戶按下調時功能鍵后,則會進入調時,然后用戶根據所需要調整的時間進行按鍵加減操作,K0和K1為分別對小時單位進行加減1操作,而K2和K3則為對分鐘單位進行加減1操作。用戶可以簡單輕松的對實時鐘進行調校,在調校完成后,用戶只需按下確定調時鍵K5,即可退出調時。調時各個按鍵功能如下圖: 進入調時鍵 確定調時退出鍵 小時+1 小時-1 分鐘+1 分鐘-1K1K0K3K2K4K8K12K5K9K6K7K14K10K13K11K15水位警告模式當用戶開啟時,若發現功能燈閃爍三次并同步伴有蜂鳴器響
41、,則為高水位。若功能燈閃爍一次,同步伴有蜂鳴器響,則為低水位。用戶通過報警的不同自行改變水量重新進行煮豆漿。保溫模式當煮漿完成時,會有一分鐘提示音提示用戶已完成,用戶聽到提示音就可提取美味豆漿。再按次啟動鍵即可退出保溫。第七章 存在問題與改進程序說明 在整個程序的設計中,仍然有著一些程序存在問題,這是在設計的時候沒有考慮周全導致的,在經過了與老師的探討和同學間的互相討論下,對程序進行了完善。以下為幾個存在問題的程序以及其改進后的程序。1.模擬水溫模塊在水溫模擬模塊中,設計時由于考慮不周全,單純的認為只需要拆送099到顯緩中就可以,于是設計出了錯誤的程序,如下:CJNE A,#9AH,LA1 L
42、A1:JNC LA2 ;超過99顯示EE CLR C DA A MOV 58H,A MOV B,A ;A/D轉換結果拆送最右兩位顯示緩沖單元 ANL A,#0FH MOV 30H,A MOV A,B ANL A,#0F0H SWAP A MOV 31H,A 這個程序模塊,是個虛假數據,拆送了一個虛假的099到顯緩,并沒有經過BCD轉換,在溫度送顯緩調整過程中會有跳步現象,無法完整的模擬出溫度變化,是我當初設計時候沒有考慮周全造成的。而后在老師的指導與同學的探討下,有了水溫拆送的正確拆送方法,自己加以改進程序。改進程序如下:MOV A,58HMOV B,#10HDIV ABMOV 31H,AMOV 30H,B即可以完整的模擬099的水溫變化,而非虛假的數據轉換。通過BCD轉換拆送到顯緩。較為完整的模擬出了水溫。2.水位告警模塊在最初始的水位告警模塊中,初始判斷只判斷了預加熱狀態下的水位告警,而沒有考慮到接下去的預打漿模塊,使整個豆漿機在模擬過程中,跳過了在預打漿進程下的水位檢測告警。經老師指正修改后,添加了判斷進程,使整個過程中都有著水位檢測的功能,改進后的程序如下:SWGJ: JNB 26H.0,SW ;JNB,0跳轉, MOV
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學語文寫作基礎教學教案:如何寫生動有趣的記敘文
- 成長故事與反思作文(14篇)
- 冷與熱作文900字(7篇)
- 英語介詞短語搭配詳解:七年級英語教案
- 暢游響石山400字10篇范文
- 上海閔行區高一(下)期末英語試題及答案
- 2025年上海通河中學高一(下)英語期中考試題及答案
- 2021學年上海二中高一(下)期中數學試題及答案
- 7.2-指尖陀螺智能制造柔性產線數字孿生開發
- 應急局安全重工作匯報
- 餐飲行業抖音代運營方案
- 《聰明人和傻子和奴才》 課件
- 抗震支架設計流程
- 中國絲綢簡述ppt課件
- 蘇軾《浣溪沙》優秀課件
- 塑料包裝袋購銷合同
- 年產40萬噸甲醇合成工藝設計
- DDS307電導率以說明書
- S7、S9、S11系列變壓器損耗表
- 滿語語法入門拉丁版
- 化工企業安全生產診斷檢查表
評論
0/150
提交評論