




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 微機原理及接口技術(shù)課程設(shè)計 微機原理及接口技術(shù)課程設(shè)計說明書 課題: 全自動豆?jié){機控制程序的設(shè)計 專業(yè): 電子信息工程 班級: 電子1102 姓名: 張杰 學(xué)號: 3220806485 指導(dǎo)老師: 2013 年 12 月 28 日目 錄第一章 設(shè)計任務(wù)與目標(biāo)3設(shè)計目的3設(shè)計任務(wù)3基本設(shè)計要求 3功能擴展 3 設(shè)計環(huán)節(jié)與進程安排 3第二章 總體方案設(shè)計與方案論證4總體方案設(shè)計 4實時鐘的調(diào)校方式 5鍵盤的掃描方式 5定時器方式 6開關(guān)量輸入消抖模塊的選擇 6倒計時1S方法選擇7第三章 總體軟件設(shè)計說明及總工作流程8總工作流程 8總體軟件設(shè)計說明 10第四章 系統(tǒng)資源分配及數(shù)據(jù)定義說明 11單元
2、分配以及各個標(biāo)志位注釋 11第五章 局部程序設(shè)計說明131.自檢模塊 132.鍵盤掃描子模塊 143.按鍵消抖子模塊 144.蜂鳴器LED緩沖子模塊 155.1分鐘內(nèi)取消模塊 156.拆字子模塊 167.調(diào)用時鐘設(shè)定子模塊 178.選擇工作模式子模塊 189.水位告警子模塊 1810.模擬水溫子模塊1911.無效啟動子模塊 2012.實時鐘子模塊 2113.顯示更新子模塊2114.啟動子模塊2215.煮漿子模塊2216.保溫子模塊23第六章系統(tǒng)功能與操作說明24 系統(tǒng)功能24 用戶界面操作說明25第七章存在問題與改進程序說明 27 模擬水溫模塊27 水位告警模塊28第八章課程設(shè)計總結(jié)29附錄:
3、程序代碼清單第一章 設(shè)計任務(wù)與目標(biāo)設(shè)計課題:全自動豆?jié){機控制程序的設(shè)計設(shè)計目的:通過兩個禮拜在實驗室親自動手操作,熟悉和理解微機原理及接口技術(shù)上課老師所講的內(nèi)容,將所學(xué)知識親自動手驗證,借此熟悉和掌握書中知識,并加強自己動手設(shè)計程序的能力。設(shè)計任務(wù):本次為期兩個禮拜的課程設(shè)計任務(wù)是設(shè)計一個全自動豆?jié){機控制程序,通過LED燈,數(shù)碼管模擬豆?jié){機的各個流程,主要要實現(xiàn)豆?jié){機的預(yù)加熱,預(yù)打漿,三次加熱打漿,而后進行煮漿完成整個豆?jié){的流程,中間加入水位告警,防溢告警功能,并有實時鐘功能。 基本設(shè)計要求:1、開機進行適當(dāng)?shù)挠嘘P(guān)接口部件及數(shù)碼顯示器、指示燈、訊響器等自檢。2、八位LED 七段數(shù)碼管在常態(tài)下作
4、為實時鐘顯示,其余狀態(tài)下有工步號,倒計時,溫度顯示。3、鍵盤中能夠?qū)崟r鐘進行調(diào)校功能按鍵。4、設(shè)有高低水位報警功能,在高水位狀態(tài)下啟動,LED燈閃3下,蜂鳴器同步響一秒,在低水位狀態(tài)下啟動,LED燈閃1下,蜂鳴器同步響一秒。5、具有能完成基本煮豆?jié){中的預(yù)加熱-預(yù)打漿,然后加熱-打漿總共3次的程序。6、具有在啟動后能夠在一分鐘以內(nèi)取消煮漿的功能模塊。7、實現(xiàn)在3次打漿完成后進入240S倒計時的煮漿功能模塊。8、在煮漿功能模塊中有對水位進行檢測,超出溢電極則停止加熱,待恢復(fù)水位持續(xù)5秒后才重新開啟加熱煮漿。9、煮漿完成后進行以20%功率加熱的保溫模塊。功能擴展:1、可擴展果汁功能模塊。2、設(shè)定電
5、機關(guān)閉和重新開啟之間必須間隔15秒。3、實時鐘模塊可設(shè)置為4X4模塊,伴有位閃,按鍵賦值功能。4、改良告警提示音為音樂模塊。設(shè)計環(huán)節(jié)及進程安排1、布置課題,明確任務(wù)、總體方案設(shè)計 1天2、主體功能控制程序設(shè)計及調(diào)試 5天3、程序綜合聯(lián)調(diào)及功能完善、改進、擴展 3天4、答辯及編寫設(shè)計說明書 3天 第二章 總體方案設(shè)計與方案論證本次課程設(shè)計的課題是設(shè)計全自動豆?jié){機模擬程序,需要運用微機原理與接口技術(shù)課本內(nèi)容進行設(shè)計,設(shè)計的豆?jié){機不單單僅有煮豆?jié){功能。還帶有水位報警,實時鐘以及實時鐘調(diào)校功能,模擬水溫等功能??傮w設(shè)計方案 對于這次的課程設(shè)計,按照老師所講,我們所采取的程序設(shè)計是按照模塊化來進行程序的
6、設(shè)計。將豆?jié){機的主工作流程作為一個模塊,再加入其它功能的模塊,比如實時鐘調(diào)校模塊,水位告警模塊,模擬水溫模塊等,通過各個模塊之間的循環(huán)調(diào)用,以此來完成整個全自動豆?jié){機的程序設(shè)計。 整個程序由自檢模塊,程序初始化,15個子模塊組成的主流程循環(huán)調(diào)用,中斷模塊,延時子模塊構(gòu)成。實時鐘的調(diào)校方式方案一:運用4X4鍵盤對應(yīng)數(shù)字輸入實時鐘調(diào)整通過對4X4鍵盤模塊的程序設(shè)計,使鍵盤模塊能夠在實時鐘調(diào)校功能中實現(xiàn)時分秒準(zhǔn)確調(diào)時,并且有退格,取消,確定等按鍵調(diào)整實時鐘調(diào)校,相對應(yīng)的小時十位只能輸入02,小時個位只能按鍵輸入04,分鐘十位輸入06,分鐘個位輸入09,能夠較準(zhǔn)確的對實時鐘進行調(diào)校。方案二.:通過調(diào)時
7、鍵進入調(diào)時,四個按鍵對小時,分鐘進行+1-1調(diào)校。這個方案是更為簡單的方案,只需要有個進入調(diào)時的按鍵和一個調(diào)時完成確定按鍵,以及4個加減時鐘按鍵。通過對鍵號的掃描判斷按鍵是否按下以此來實現(xiàn)對實時鐘的調(diào)校功能。這個方案最好的優(yōu)點是簡化了調(diào)校功能,使時鐘能夠以更簡便的方式進行調(diào)校,為產(chǎn)品的外觀設(shè)計提供了很大的方便。通過上面的綜合判斷實時鐘的調(diào)校我們選擇方案二按鍵加減調(diào)校。鍵盤的掃描方式方案一:掃描法首先識別鍵盤有無鍵按下,驅(qū)動所有列線為0,輸入各行線電平如果有0,就說明有鍵按下,如果行線電平全1,則全部無鍵按下。其次是如有鍵被按下,識別具體的按鍵。依序驅(qū)動某一列為0 ,其余列均為1 ,輸入各行線電
8、平,如果某行線電平為0 ,可確定此行列交叉點處的按鍵被按下;如果行線電平全為1 則本列無按鍵按下。這種方式太占用CPU的工作時間。方案二:線反轉(zhuǎn)法 首先列線輸出為全0 ,隨后輸入行線電平如有0,則0所在的行就是閉合的按鍵所在行;無0則無鍵閉合。其次行線輸出為全0 ,隨后輸入列線電平如有0,則0所在的列就是閉合的按鍵所在列;無0則無鍵閉合。直通結(jié)合上述兩步,可確定按鍵所在行和列。這種方式非常簡單,并且很實用。綜合以上的分析,我們選擇方案二線反轉(zhuǎn)法計數(shù)方式方案一:13位計數(shù)方式-方式0 定時器/計數(shù)器方式0 一共是有13位的計數(shù)方式。方式0是為兼容MCS-48而設(shè),初值計算麻煩,在實際應(yīng)用中,一般
9、不用方式0。并且存在一個是時間誤差,不能適用于精確定時。方案二:16位計數(shù)方式-方式1定時器/計數(shù)器方式1 一共是有16位的計數(shù)方式,由于它每個掃描周期都會有38個Tm(機器周期)的時間誤差,主要是用于要求不是很精確地定時,因為有隨機性的誤差產(chǎn)生。方案三:8位計數(shù)自動重裝工作方式-方式2定時器/計數(shù)器方式2為自動恢復(fù)初值(初值會自動重裝)的8位定時器/計數(shù)器,當(dāng)其計數(shù)溢出的時候,系統(tǒng)會自動重裝初值,重新開始計數(shù)。這種工作方式可以省去用戶軟件中重裝初值的指令執(zhí)行時間,可以做到精確地定時時間。綜上所述,我們是要求能做到精確定時,所以選擇方式2按鍵輸入消抖模塊的選擇對于開關(guān)量輸入的消抖處理一般有以下
10、兩種種處理方法。方案一:軟件延時消抖即檢測出鍵閉合后執(zhí)行一個延時程序,產(chǎn)生5ms10ms的延時,讓前沿抖動消失后再一次檢測鍵的狀態(tài),如果仍保持閉合狀態(tài)電平,則確認為真正有鍵按下。當(dāng)檢測到按鍵釋放后,也要給5ms10ms的延時,待后沿抖動消失后才能轉(zhuǎn)入該鍵的處理程序。方案二:滾動濾波消抖法滾動濾波消抖法就是通過滾動濾波法的原理,我們將PB0PB7電平輸入,并進行五次滾存消抖,新態(tài)存2EH,舊態(tài)存2FH,這個方法能夠較好的完成按鍵的消抖,排除按鍵抖動所產(chǎn)生的不良效果,完善了按鍵功能。所以我們對消抖模塊選擇滾存消抖。倒計時1S方法選擇方案一:在非倒計時顯示情況下,延時可采取調(diào)用主程序,重復(fù)相應(yīng)次數(shù),
11、得到相應(yīng)延時時間。如主程序每調(diào)用一次需10ms,調(diào)用100次,則得到1s的延時。在倒計時顯示情況下,采取在中斷設(shè)置1s到標(biāo)志位,用到倒計時開啟標(biāo)志位即可。方案二:每次延時即開啟1s到標(biāo)志位。 兩個方案相比較,方案一比較簡單、靈活,所以采取第一種方案來進行精準(zhǔn)計時。 第三章 總體軟件設(shè)計說明與總工作流程總工作流程如圖所示主流程自檢模塊程序初始化B蜂鳴器LED燈緩沖子模塊調(diào)用鍵盤掃描子模塊啟動子模塊調(diào)用按鍵消抖子模塊1分鐘內(nèi)取消子模塊顯示更新子模塊工作模式選擇模塊調(diào)用拆字子模塊時鐘設(shè)定子模塊 A無效啟動子模塊 B A水位告警子模塊模擬水溫子模塊煮漿子模塊保溫子模塊撥動開關(guān)子模塊總體軟件設(shè)計說明本次
12、的課程設(shè)計通過對15個子模塊的循環(huán)調(diào)用來完成全自動豆?jié){機的模擬功能,并且采用定時器方式2精準(zhǔn)計時。拆字子程序:常態(tài)下(待機,保溫)送時分秒到顯緩,其余則送工步號,倒計時到顯緩。顯示更新子程序:根據(jù)顯緩單元內(nèi)容驅(qū)動八位數(shù)碼管。時鐘設(shè)定子程序:通過掃描鍵號判斷調(diào)時鍵是否按下借以對實時鐘進行調(diào)校。鍵盤掃描子程序:通過線反轉(zhuǎn)法掃描按鍵鍵號,舊鍵號存65H,新鍵號存64H。工作模式子程序:當(dāng)無工作模式時,按下功能選擇鍵,則顯示豆?jié){模式,而后再按時,工作模式在果汁和豆?jié){兩種模式中切換。1分鐘取消子程序:啟動1分鐘內(nèi),通過檢查啟動鍵是否再被按下,是則取消運行。蜂鳴器LED燈緩沖子程序:根據(jù)緩沖單元內(nèi)容驅(qū)動蜂
13、鳴器和LED燈按鍵消抖子程序:輸入PB0PB7電平,經(jīng)5次滾存消抖后,舊態(tài)存2FH,新態(tài)存2EH。保溫子程序:以20%的功率進行加熱保溫。水位告警子模塊:通過檢測高低水位,若有高水位或者低水位,則啟動時會告警并退出 。煮漿子模塊:以240S倒計時加熱煮漿,若煮漿過程中檢測到超水位,則停止加熱,待水位恢復(fù)持續(xù)5秒后再重新開啟加熱。無效啟動子模塊:檢測功能未選擇時啟動鍵是否按下,是則告警并退出。撥動開關(guān)子模塊:輸入SW0SW7電平到緩沖單元,輸出驅(qū)動L8L15。啟動子模塊:功能選擇后判斷啟動鍵是否按下,是則進入預(yù)加熱,預(yù)加熱達到35度時,則進入預(yù)打漿。開啟電機,關(guān)閉加熱。待25秒打漿倒計時結(jié)束后,
14、關(guān)閉電機,開啟加熱。加熱達到50度時進入打漿模式,開電機,關(guān)加熱。以下再重復(fù)加熱打漿2次后進入煮漿。第四章 系統(tǒng)資源分配及數(shù)據(jù)定義說明微處理器內(nèi)部存儲單元分配及數(shù)據(jù)定義微處理器內(nèi)部存儲單元數(shù)據(jù)定義23H豆?jié){進程碼24H.0是否進行調(diào)時標(biāo)志位25HLED燈閃爍進程碼26H.0閃爍標(biāo)志位26H.1倒計時標(biāo)志位26H.2響標(biāo)志位26H.3開關(guān)蜂鳴器標(biāo)志位26H.4高低水位告警區(qū)分標(biāo)志位26H.5保溫標(biāo)志位26H.6滿1秒標(biāo)志位26H.7倒計時百位減到0標(biāo)志位27H工步號28H驅(qū)動P1標(biāo)志位29H滾存消抖存儲單元2AH滾存消抖存儲單元2BH滾存消抖存儲單元2CH滾存消抖存儲單元2DH滾存消抖存儲單元2
15、EH新態(tài)按鍵存儲單元2FH舊態(tài)按鍵存儲單元30H-37H顯示緩存單元38H200us計數(shù)單元39H1/100s計數(shù)單元3AH實時鐘秒鐘存儲單元3BH實時鐘分鐘存儲單元3CH實時鐘小時存儲單元47H打漿,加熱4次設(shè)置初值53H閃閃閃延時200ms59H倒計時十位,個位。 5AH倒計時百位(千位不顯示)5BH保溫16秒設(shè)置初值5DH保溫4秒設(shè)置初值5FH滿一秒計數(shù)64H當(dāng)前新掃描鍵號值存儲單元65H10ms前掃描到鍵號存儲單元67H保溫訊響1分鐘初值69H1分鐘內(nèi)取消初值6BH1分鐘無效標(biāo)志位第五章 局部程序設(shè)計說明1.自檢模塊功能簡述該模塊主要功能為在開機時進行有關(guān)接口部件及數(shù)碼顯示器、指示燈、
16、蜂鳴器等適當(dāng)自檢。程序設(shè)計思路及方案當(dāng)程序輸入到單片機中運行后會首先進行對單片機上各個功能顯示模塊的自檢,確保使用者所使用的單片機是可以正常使用。原理說明及部分代碼 下面通過一段程序了解自檢模塊的實現(xiàn)MOV DPTR,#0FEFCH ;DPTR指向U3-A口MOV A,#0FFH ;置八段均不亮的字段碼(8255A初始化后輸出寄存器全0')MOVX DPTR,A ;輸出,關(guān)數(shù)碼顯示器(段輸出口初始驅(qū)動全為1'無效)MOV DPTR,#0FDFFH ;對8255A(U5)接口芯片初始化MOV A,#8BH ;設(shè)定為A口輸出(驅(qū)L815),B口輸入(按鈕PB07),C口輸入(開關(guān)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 ;關(guān)蜂鳴器MOV P1,#00H ;P1口輸出全0',所驅(qū)動的L0L7指示燈全亮從這段代碼可知,再初始的狀態(tài)下,系統(tǒng)置八位數(shù)碼管全不亮,并且L8L15也置為不亮,隨后檢測蜂鳴器是否能正常亮,再檢測L0L7能否全亮。通過程序的設(shè)計,完整的檢驗了單片機上各個模塊的狀態(tài),讓使用者能更好的分辨出單片
18、機的正常程度。2.鍵盤掃描子模塊功能簡述該模塊主要功能為實現(xiàn)4*4的鍵盤掃描功能,掃描當(dāng)前所按下4*4鍵盤的按鍵鍵號存入相應(yīng)存儲單元,并獲得鍵值,以備后面的操作和功能實現(xiàn)。程序設(shè)計思路及方案該模塊在主流程中調(diào)用鍵盤掃描子程序(LCALL),運用反轉(zhuǎn)法掃描鍵盤,得到所按下按鍵的相應(yīng)行列碼。當(dāng)用戶未按下按鍵時,相應(yīng)存儲單元存入未按下信息,即為10H,當(dāng)用戶按下按鍵時,系統(tǒng)相應(yīng)存儲單元存入已按下信息,即00H-0FH。通過掃描,并與鍵碼表比較行列碼,相等說明掃描到所按下的按鍵,將鍵值賦值到61H儲存單元,以便后面的使用。原理說明及部分代碼61H為鍵值存儲單元,給61H單元賦初值,通過掃描所按下按鍵的
19、行列碼與鍵碼表比較,找到相等的即說明有鍵按下,且能精確得到相應(yīng)鍵碼,若找不到相等鍵碼則說明為按下按鍵。鍵號值從00H開始,最多進行16次的鍵碼查表,DPTR指向鍵碼表首地址,置當(dāng)前鍵號于A中,代碼MOVC A,A+DPTR查表讀取鍵碼表中當(dāng)前鍵號對應(yīng)位置的鍵碼,與8位行列碼比較,不同則轉(zhuǎn)NK查下一個,相同表明找到當(dāng)前按下的鍵號,代碼INC 61H使鍵號值加1,代碼DJNZ R5,KY判斷未查完鍵值表則繼續(xù),查完則無按鍵或出現(xiàn)異常行列碼,結(jié)束并返回。64H中存有新掃描到的鍵號,65H中存有相對于64H中存有的鍵號10ms前掃描到的鍵號,通過兩個單位的存儲比較,能夠較好的判斷出按鍵的按下與否。3.
20、按鍵消抖子模塊功能簡述該模塊的主要功能是為按鍵輸入消抖,防止出現(xiàn)按鍵抖動影響主流程。程序設(shè)計思路及方案將原新態(tài)存為前態(tài),將前4次得到的電平值推送至2AH-2DH單元中,獲得電平值并存為新態(tài)存放在2EH中,比較5次得到的電平值,若電平值不一致則新態(tài)不變,若電平值一致則存為新態(tài)。原理說明及部分代碼。代碼MOV 2FH,2EH 將原新態(tài)存入舊的鍵號,即2EH為新態(tài)鍵值存儲單元,2FH為舊態(tài)鍵值存儲單元,代碼 MOV 2DH,2CH ; MOV 2CH,2BH MOV 2BH,2AH MOV 2AH,29H將前4次得到的電平值推送至2AH-2DH單元中,獲得電平值并存為新態(tài),代碼 MOV A,2DH
21、CJNE A,2CH,XDR CJNE A,2BH,XDR CJNE A,2AH,XDR CJNE A,29H,XDR比較近5次輸入的電平值,一致的話存為新態(tài),不一致則新態(tài)照舊。4.蜂鳴器LED燈緩沖子模塊功能簡述該模塊通過設(shè)定緩沖單元驅(qū)動蜂鳴器和LED燈。程序設(shè)計思路及方案通過設(shè)定緩沖單元來驅(qū)動蜂鳴器和LED燈,防止直接驅(qū)動蜂鳴器和LED燈這種情況下不容易修改需要驅(qū)動的方式。原理說明及部分代碼 下面一段程序可以了解整個模塊功能FMQ:JB 26H.3,LF0 CLR P3.2 SJMP LF1 LF0:SETB P3.2 LF1:MOV P1,28HQ0:RET通過設(shè)定26H.3作為開啟蜂鳴
22、器的標(biāo)志位,28H作為LED燈L0L7,這樣能夠在設(shè)計過程中通過標(biāo)志位來判斷來使蜂鳴器能完成我們所需要設(shè)定的響的時間,而通過28H緩沖驅(qū)動LED燈L0L7,我們就可以通關(guān)對28H的判斷來了解燈的亮滅,也可以直接給28H中各個字節(jié)分別置0或1,來開啟各個燈的亮滅。5.1分鐘內(nèi)取消子模塊功能簡述該模塊主要功能為實現(xiàn)當(dāng)豆?jié){機開啟工作一分鐘之內(nèi)都可以取消工作,使用戶能再誤開狀態(tài)下能較好的停止豆?jié){機工作。程序設(shè)計思路及方案通過設(shè)定一個1分鐘之內(nèi)可以判斷按鍵是否按下,按下就可以退出整個工作狀態(tài)。原理說明及部分代碼 FQ1: DJNZ 69H,FQ2 ;1分鐘倒計時 MOV 69H,#60 DJNZ 6AH
23、,FQ2 MOV 6AH,#100 以上程序為1分鐘主流程循環(huán),通過在一分鐘之內(nèi)可以判斷啟動鍵是否再次按下,再次按下后就可以取消豆?jié){機運作。超過一分鐘后就會跳出一分鐘取消模塊,就不能再按取消鍵結(jié)束豆?jié){機運作。 6.拆字子模塊功能簡述該模塊主要功能是在待機保溫時候拆送實時鐘時分秒到顯緩,其余狀態(tài)下拆送工步號,倒計時到顯緩驅(qū)動八位數(shù)碼管。程序設(shè)計思路及方案通過判斷進程碼,在不同的模式下拆送不同的單元到顯緩驅(qū)動八位數(shù)碼顯示器,以實現(xiàn)所需要的功能。原理說明及部分代碼 CZ: MOV A,23H CJNE A,#00H,CZT SJMP CZ2 ;最開始不工作是顯示電子表 CZT: CJNE A,#25
24、H,CZ5 ;保溫時候也顯示電子表 CZ2:MOV R0,#3AH ;取秒,開始拆字實時種 MOV R1,#30H ;置顯示緩沖單元首地址(對應(yīng)于最右顯示位) 上面為拆字的部分程序,通過程序我們可以清楚的看到,拆字模塊主要通過判斷進程碼,不同的進程碼拆送不同的單元到顯緩,上面一段程序為在待機進程00H,保溫進程25H下拆送時分秒到顯緩,而若非待機,保溫。則程序跳轉(zhuǎn)到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 為拆送倒計時,工步號到對應(yīng)的顯緩單元,以此來實現(xiàn)豆?jié){機運作過程中所需要的打漿倒計時和工步號顯示。7.時鐘設(shè)定子模塊功能簡述該模塊主要功能為提供用戶對實時鐘的調(diào)校功能。程序設(shè)計思路與方案 當(dāng)用戶在使用時,如發(fā)現(xiàn)實時鐘不準(zhǔn)確,可簡單的對實時鐘進行調(diào)校功能
26、,通過設(shè)定按鍵加減時分,輕松的完成實時鐘的調(diào)校。主要設(shè)定六個按鍵,包括進入調(diào)時鍵K4,確定調(diào)時并退出調(diào)時K5,小時加1鍵K0,小時減1鍵K1,分鐘加1鍵K2,分鐘減1鍵K2。原理說明及部分代碼利用進程碼進行設(shè)定,只有在待機,保溫進程下才能對實時鐘進行調(diào)校。通過線反轉(zhuǎn)法掃描鍵號來判斷按鍵是否按下以實現(xiàn)對實時鐘的調(diào)校功能。在進入調(diào)校后通過4個按鍵分別對小時和分鐘進行加減,并將秒單位及前一級單位置0,較準(zhǔn)確的完成實時鐘的調(diào)校功能。 KTE:JNB 24H.0,L2 MOV A,65H CJNE A,#10H,L3 MOV A,64H CJNE A,#04H,L3下面程序為線反轉(zhuǎn)法掃描鍵號,若發(fā)現(xiàn)有按
27、鍵按下,則新鍵號會存到64H中,以此實現(xiàn)對應(yīng)的功能。65H存的10H為初始狀態(tài),即無000F鍵按下。8.工作模式子模塊功能簡述該模塊的功能主要為用戶提供模式選擇,正常的模式選擇有豆?jié){機和果汁,由于本程序只設(shè)計豆?jié){機,但仍然提供了果汁的模式選擇,較好了模擬了正常產(chǎn)品的功能選擇。程序設(shè)計思路及方案當(dāng)用戶按下功能選擇按鍵時, 會將28H.0置0,驅(qū)動L0亮起,模擬豆?jié){模式,而后再按下功能選擇鍵,則模式會在果汁和豆?jié){中切換。原理說明及部分代碼:原理我們可以分析部分程序來進行,以下面部分程序為例: GZMS: MOV A,23H CJNE A,#00H,GZ0 ;剛開始選擇功能鍵才有效 JNB 2FH.
28、1,GZ0 JB 2EH.1,GZ0 ;判斷PB1功能選擇鍵是否按下 以上的程序是通過判斷在待機狀態(tài)時的功能選擇鍵是否按下,通過按鍵的按下再實行以下程序; INC 50H MOV 28H,50H MOV A,50H CJNE A,#0FEH,GZ0 MOV 50H,#0FCH 通過對50H單元加1,而50H內(nèi)容有初值0FDH,加1后變?yōu)镕E即驅(qū)動L0亮起,即選擇豆?jié){模式,而后L0與L1交替切換亮滅,即模擬豆?jié){和果汁模式切換。9.水位告警子模塊功能簡述該模塊主要功能為在啟動時檢測是否水位是否正常程序設(shè)計思路及方案為了模擬高低水位,我們設(shè)置為SW0模擬高水位,SW1模擬低水位,設(shè)立閃爍標(biāo)志位,借此
29、分辨不同水位不同的閃爍告警方式。原理說明及部分代碼水位告警模塊是為了讓用戶能再一個安全的水位狀態(tài)下進行煮漿,即保證了煮出豆?jié){的優(yōu)良度,亦能夠較好的保護使用者的安全與豆?jié){機的使用壽命。通過SW1模擬高水位,當(dāng)SW0為“0”時,則為高水位,反之則未超水位。SW1為“0”時為低水位,反之水位正常。而通過加入閃爍標(biāo)志位和高低水位告警標(biāo)志位26H.4,在調(diào)用告警閃閃閃模塊中,可區(qū)分高低水位的告警,即高水位告警為閃爍3次,同步蜂鳴器響;低水位告警為閃爍一次,同步蜂鳴器。10.模擬水溫子模塊功能簡述該模塊主要功能為在通過AN1控制A/D轉(zhuǎn)換數(shù)據(jù)拆送到數(shù)碼管最右邊兩位模擬水溫。.程序設(shè)計思路與方案為了更好的模
30、擬水溫拆送,在此模塊中獨立進行拆字程序,而非在拆字模塊中進行拆送,通過對A/D數(shù)據(jù)的BCD轉(zhuǎn)換,將0256轉(zhuǎn)換為099拆送顯示溫度,而AN1可調(diào)整模擬水溫。原理說明及部分代碼通過設(shè)定AN1調(diào)整,由以下程序完成: MOV DPTR,#0FBF9H ;A/D子程序。MOVX A,DPTR ;讀取A/D轉(zhuǎn)換結(jié)果的8位二進制數(shù)字值即可以通過AN1調(diào)整模擬水溫。而A/D轉(zhuǎn)換結(jié)果存為緩沖單元,而后進行BCD轉(zhuǎn)換,將其二進制數(shù)轉(zhuǎn)換為099的BCD碼拆送溫度顯示。超過99則送“EE”到溫度顯示顯緩單元中。11.無效啟動子模塊功能簡述該模塊主要功能為防止用戶在未選擇模式就按啟動進入。程序設(shè)計思路及方案通過對功能
31、模式燈的亮滅進行判斷是否選擇完模式,是則正常啟動,若無選擇模式進入,則告警并且退出。原理說明及部分代碼首先檢測功能模式燈是否亮起,若未亮起時檢測到啟動鍵按下,則會有告警程序,并且退出運行。告警程序如下:WX2: JNB 2FH.0,WX0 JB 2EH.0,WX0 ; 啟動鍵是否按下 CLR 26H.2 ; 響1s標(biāo)志位0,持續(xù)響 CLR 26H.3 ; 響 WX3: DJNZ 5CH,WX0 MOV 5CH,#100 ; 響1s SETB 26H.3 ; 停響 SETB 26H.2 ; 響1s標(biāo)志位1,不再響在無選擇模式下,啟動鍵按下后,則會開啟響標(biāo)志位告警,并有1S主流程循環(huán),告警完才關(guān)閉
32、蜂鳴器。12.實時鐘子模塊功能簡述該模塊主要功能為精確實時鐘計時。程序設(shè)計思路及方案利用定時方式1產(chǎn)生中斷進行精確實時鐘計時。原理說明及部分代碼當(dāng)定時器1滿足中斷條件(即定時器計滿256TM),發(fā)生中斷,找到中斷路口地址001BH,跳轉(zhuǎn)到子程序IT1P。子程序的開頭和結(jié)尾分別對累加器A和PSW進行入棧和出棧,保證完成中斷回到主循環(huán)后,能保存累加器和PSW的數(shù)據(jù)。進入IT1P子程序表示完成200us計時,此時先對38H單元加1,用以做200us計時單元。同時判斷38H是否為36次,即是否計滿36*256TM=10ms?當(dāng)時間未到10ms,則跳出子程序,繼續(xù)等待中斷發(fā)生,再過256TM再進入程序,
33、為38H單元加1。當(dāng)計滿10ms,對200us單元38H清零,并對百分秒單元39H加1,判斷計滿100次即1s的時間,將百分秒單元清零,對秒單元3A單元加1,之后按照時間規(guī)律,每60s對秒單元清零、分鐘單元加1;每60min對分鐘單元清零、小時單元加1但處理秒、分和時的加1需要十進制加1(BCD碼加1),使用ADD累加并用DA進行十進制調(diào)整,可以完成此功能。13.顯示更新子模塊功能簡述該模塊主要功能為將顯示緩存單元30H-37H的數(shù)據(jù)通過查表法找到相應(yīng)的段碼表將要顯示的內(nèi)容顯示到數(shù)碼管上。程序設(shè)計思路及方案通過單元指針逐個將顯示緩存單元30H-37H的數(shù)據(jù),查表法找到相應(yīng)的段碼表將要顯示的內(nèi)容
34、顯示到數(shù)碼管上,再通過循環(huán)和判斷執(zhí)行相應(yīng)程序。原理說明及部分代碼置顯緩首位,位碼首位,查詢相關(guān)的字段碼,輸出字段碼,保存顯示1ms,消除串顯,指向下一個單元,在30H-37H單元循環(huán)。14.啟動子模塊功能簡述該模塊為豆?jié){機運行的主要模塊,模塊中實現(xiàn)豆?jié){機的預(yù)加熱,預(yù)打漿,3次加熱打漿以此來完成豆?jié){打磨加熱的主要過程。程序設(shè)計思路及方案通過判斷豆?jié){模式選擇完后正常啟動進入,利用進程碼實行整個過程。利用進程碼來完成預(yù)加熱-預(yù)打漿-加熱-打漿-加熱-打漿-加熱-打漿。利用L2燈模擬加熱是否開啟,L3模擬電機。原理說明及部分代碼正常啟動后即賦進程為10H進程時,進行預(yù)加熱,而后通過判斷溫度是否達到35
35、度,達到后關(guān)閉加熱(即滅L2),開啟電機(即亮L3),進程碼送11H,進行倒計時25秒的預(yù)打漿,通過滿1秒標(biāo)志位的設(shè)立,準(zhǔn)確的進行倒計時。25秒倒計時結(jié)束后重新開啟加熱,關(guān)閉電機,待溫度達到50度后,關(guān)閉加熱,開啟電機進行打漿,接下去重復(fù)加熱打漿兩次,待最后一次打漿完成后即完成整個打磨部分,直接送煮漿程序進程碼。下面示例程序為對進程碼的判斷:Q1: CJNE R1,#10H,Q2 CLR 28H.2 ;加熱 即在不同的進程中完成不同的功能。 15.煮漿子模塊功能簡述 該模塊是在豆?jié){機打漿完成后進行的最后一步煮漿程序,為240秒的加熱過程,并且有水位溢出判斷功能程序設(shè)計思路及方案通過對滿一秒標(biāo)志
36、位的判斷進行較為準(zhǔn)確的240秒加熱倒計時,并且判斷在加熱過程中是否有超溢位,有則停止加熱,待水位恢復(fù)正常持續(xù)5秒后才重新開啟加熱。原理說明及部分代碼通過對進程碼的判斷,當(dāng)進程為20H進程時,進行煮漿。開啟加熱。加熱過程中通過判斷水位情況,若出現(xiàn)高水位則會停止加熱,待恢復(fù)水位持續(xù)5秒后才重新開啟加熱,以下列程序為例: LK1: DJNZ 5CH,LK2 ;5S內(nèi)無益處才重新加熱 MOV 5CH,#100 INC 4FH MOV A,4FH CJNE A,#06H,LK2 ;5秒后無超水位 CLR 28H.2 ;開加熱 即為判斷恢復(fù)水位5秒后才重新開啟加熱。若是為低水位狀態(tài)下,即出現(xiàn)“干燒”,則煮
37、漿模式停止,并退出運行?;謴?fù)到待機狀態(tài)。240秒煮漿完成后,即進入保溫模塊。16.保溫子模塊功能簡述 該功能模塊是對煮完的豆?jié){訊響1分鐘后,以20%的功率進行加熱保溫。程序設(shè)計思路及方案設(shè)定響標(biāo)志位來開啟蜂鳴器訊響通知。而后進入保溫,通過設(shè)定加熱4秒,停熱16秒,來實現(xiàn)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通過調(diào)用主流程循環(huán),以此來實現(xiàn)4秒的加熱以及16秒的停熱來進行加熱保溫。 第六章 系統(tǒng)功能與操作說明系統(tǒng)功能全自動豆?jié){機能夠自主的在啟動后進行整個豆?jié){的打磨煮漿過程,全程自動化,無需使用者額外操作。而本全自動豆?jié){機還包括有水位情況的報警,實時鐘的模塊,很好的滿足用戶的需求,以及保護使用者。用戶在使用時候,可以輕松操作,無需任何學(xué)習(xí),只需要在選擇模式后按下啟動后即可,豆?jié){機將全程自動化完成,用戶只需輕輕一點,稍等段時間即可以享受一杯美味的豆?jié){。用戶若有誤啟動,在啟動的一分鐘內(nèi)可再按此啟動鍵取消啟動。用戶界面
39、及操作說明針對用戶需求進行說明。常規(guī)顯示界面及其說明常規(guī)顯示狀態(tài)下,8位數(shù)碼管是顯示“時鐘 - 分鐘 - 秒鐘”,當(dāng)用戶按下進入啟動后,最左邊兩位顯示當(dāng)前所進行的工步的工步號。左邊第三位到第六位則顯示豆?jié){過程中打漿倒計時,煮漿倒計時。最右邊兩位數(shù)碼管則顯示當(dāng)前豆?jié){溫度。數(shù)碼管顯示界面,從左到右分別為第一位至第八位常規(guī)顯示狀態(tài),即顯示當(dāng)前時間 1. 進入運行界面如下:01 240 55 工部號 倒計時 溫度2、L0為豆?jié){模式指示燈,L1為果汁模式指示燈,L7為保溫?zé)簦琇3加熱燈,L4為電機燈,PB0為功能選擇鍵,PB1為啟動/取消鍵,如下圖 L0L1L3L4L7PB0PB1 豆?jié){模式 果汁模式
40、加熱 電機 保溫 啟動鍵 功能選擇鍵 以上為各個功能模式燈與按鍵,用戶可通過對比參照使用與觀察。時間調(diào)整模式當(dāng)用戶按下調(diào)時功能鍵后,則會進入調(diào)時,然后用戶根據(jù)所需要調(diào)整的時間進行按鍵加減操作,K0和K1為分別對小時單位進行加減1操作,而K2和K3則為對分鐘單位進行加減1操作。用戶可以簡單輕松的對實時鐘進行調(diào)校,在調(diào)校完成后,用戶只需按下確定調(diào)時鍵K5,即可退出調(diào)時。調(diào)時各個按鍵功能如下圖: 進入調(diào)時鍵 確定調(diào)時退出鍵 小時+1 小時-1 分鐘+1 分鐘-1K1K0K3K2K4K8K12K5K9K6K7K14K10K13K11K15水位警告模式當(dāng)用戶開啟時,若發(fā)現(xiàn)功能燈閃爍三次并同步伴有蜂鳴器響
41、,則為高水位。若功能燈閃爍一次,同步伴有蜂鳴器響,則為低水位。用戶通過報警的不同自行改變水量重新進行煮豆?jié){。保溫模式當(dāng)煮漿完成時,會有一分鐘提示音提示用戶已完成,用戶聽到提示音就可提取美味豆?jié){。再按次啟動鍵即可退出保溫。第七章 存在問題與改進程序說明 在整個程序的設(shè)計中,仍然有著一些程序存在問題,這是在設(shè)計的時候沒有考慮周全導(dǎo)致的,在經(jīng)過了與老師的探討和同學(xué)間的互相討論下,對程序進行了完善。以下為幾個存在問題的程序以及其改進后的程序。1.模擬水溫模塊在水溫模擬模塊中,設(shè)計時由于考慮不周全,單純的認為只需要拆送099到顯緩中就可以,于是設(shè)計出了錯誤的程序,如下:CJNE A,#9AH,LA1 L
42、A1:JNC LA2 ;超過99顯示EE CLR C DA A MOV 58H,A MOV B,A ;A/D轉(zhuǎn)換結(jié)果拆送最右兩位顯示緩沖單元 ANL A,#0FH MOV 30H,A MOV A,B ANL A,#0F0H SWAP A MOV 31H,A 這個程序模塊,是個虛假數(shù)據(jù),拆送了一個虛假的099到顯緩,并沒有經(jīng)過BCD轉(zhuǎn)換,在溫度送顯緩調(diào)整過程中會有跳步現(xiàn)象,無法完整的模擬出溫度變化,是我當(dāng)初設(shè)計時候沒有考慮周全造成的。而后在老師的指導(dǎo)與同學(xué)的探討下,有了水溫拆送的正確拆送方法,自己加以改進程序。改進程序如下:MOV A,58HMOV B,#10HDIV ABMOV 31H,AMOV 30H,B即可以完整的模擬099的水溫變化,而非虛假的數(shù)據(jù)轉(zhuǎn)換。通過BCD轉(zhuǎn)換拆送到顯緩。較為完整的模擬出了水溫。2.水位告警模塊在最初始的水位告警模塊中,初始判斷只判斷了預(yù)加熱狀態(tài)下的水位告警,而沒有考慮到接下去的預(yù)打漿模塊,使整個豆?jié){機在模擬過程中,跳過了在預(yù)打漿進程下的水位檢測告警。經(jīng)老師指正修改后,添加了判斷進程,使整個過程中都有著水位檢測的功能,改進后的程序如下:SWGJ: JNB 26H.0,SW ;JNB,0跳轉(zhuǎn), MOV
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版數(shù)學(xué)六年級下冊《經(jīng)典應(yīng)用題全面提升訓(xùn)練》(試題)
- 福建省泉港區(qū)第二中學(xué)2024-2025學(xué)年第二學(xué)期高三期末考試生物試題含解析
- 衡陽師范學(xué)院南岳學(xué)院《幼兒園課程與教學(xué)理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 兒童畫水仙課程
- 河北省邯鄲市磁縣2025年中考化學(xué)試題考前最后一卷預(yù)測卷(四)含解析
- 河北省定州市第五中學(xué)2024-2025學(xué)年初三學(xué)生學(xué)業(yè)調(diào)研抽測(第一次)英語試題含答案
- 浙江省杭州市西湖區(qū)杭州外國語校2025屆初三聯(lián)合模擬考試化學(xué)試題含解析
- 2014食品安全課件
- 鄭州幼兒師范高等專科學(xué)?!兜V圖及CAD基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 哈爾濱鐵道職業(yè)技術(shù)學(xué)院《基礎(chǔ)生物學(xué)實驗Ⅱ》2023-2024學(xué)年第二學(xué)期期末試卷
- 國防教育和兵役法
- 品牌管理塑造、傳播與維護課件 第7章 品牌傳播管理
- 2025屆遼寧省名校聯(lián)盟高三一模地理試題(原卷版+解析版)
- 國家之間的合作發(fā)展-以“一帶一路”為例 課件 2024-2025學(xué)年高二下學(xué)期 地理 魯教版(2019)選擇性必修2
- Premiere視頻編輯案例教程(PremierePro2021)課件 第 6 章 字幕與字幕特效
- ESC急慢性心力衰竭診斷和治療指南
- 周日值班制度
- 湖南水泥倉施工方案
- 肺栓塞的護理診斷及護理措施
- 老人預(yù)防電信詐騙
- 2024年11月-礦山隱蔽致災(zāi)因素普查
評論
0/150
提交評論