1、開機進行適當的有關接口部件及數碼顯示器、指示燈、訊響器等自檢。 2、八位LED七段數碼管作為時鐘及其他界面信息顯示。 3、基本顯示模式為按照24小時制動態顯示實時鐘的時、分、秒信息。 4、4×4鍵盤作為參數設定與設備操作的輸入設備,由“0”~“9”數字鍵及若干個功能鍵組成,“0”~“9”數字鍵須按照國際通行排列布局,鍵按下時應回饋短促的鍵音,鍵盤掃描還應采取消抖動處理。 5、時鐘調校功能:按下“時鐘設定”鍵則進入時鐘設定界面,在調取并顯示當前實時鐘的時、分值基礎上供逐位輸入新的時、分值,當前數字位以2Hz頻率閃爍顯示的形式標示;按“確定”鍵則審核不存在超值域的情況下存入新的時、分值,同時對秒清0以及對秒的前級計時環節置初值;按“取消”鍵則不存新值返回基本顯示模式;還可設置“←”鍵、“→”鍵等以方便操作。 6、利用實驗板上的按鈕、撥動開關替代設備的開關量輸入信號,應當由開關量輸入處理子模塊程序統一對開關量輸入信號進行檢測輸入并進行軟件消抖動處理;利用實驗板上的驅動LED指示燈的輸出接口電路替代設備的開關量輸出驅動信號,應當對輸出控制信息建立輸出緩存,并統一由輸出驅動子模塊程序根據輸出緩存內容執行實質的輸出驅動;利用實驗板上的蜂鳴器替代設備的訊響部件,應當統一由訊響驅動子模塊程序綜合各功能程序模塊所產生的訊響邏輯標記信息執行實質的蜂鳴器驅動。 7、當切換到壓力煲工作模式時(用撥動開關模擬),機器“嘀”一聲長鳴同時顯示待機界面(待機提示符可自行定義),表示機器進入待機狀態。 8、將裝有實物的內膽放入機器內,旋轉上蓋至合蓋位置(用撥動開關模擬),合緊時機器“嘀”提示一聲。 9、烹飪功能選擇:選擇相應的烹飪功能按鍵(用單按鍵模擬,可設置不同的烹飪功能鍵,也可用用一個按鍵切換),對應功能的指示燈閃爍(用L0~L15模擬),默認壓力和口感指示燈亮(可用L0~L15模擬),如無其他操作7秒鐘后功能指示燈常亮,數碼管動態顯示跑圈,開始加熱。 10、口感選擇:選取烹飪功能后(蛋糕功能除外),用戶通過按“口感”鍵來調節食物的烹飪效果,按照“標準---濃郁---清香”的順序循環,數碼管顯示相應保壓時間。(沒有要求可不選,即按默認值) 11、壓力選擇:選取烹飪功能后(蛋糕和焗功能除外),如需調整壓力,可按壓力鍵選擇其他壓力,支持三檔壓力循環選擇“微壓---中壓---高壓” (沒有要求可不選,即按默認值) 12、預約時間設置:預約時間范圍為“0:30~24:00,調整方法為:選定烹飪功能后(蛋糕功能除外),按“預約”鍵,顯示屏顯示預約時間“0:30”,每按一次該鍵,預約時間增加30分鐘,直到24小時,時間循環變化,支持長按,即按住該鍵不放開,預約時間自動增加。 預約時間設定完成后,若無需進行其他功能設定,該功能指示燈閃爍7秒后,數碼管顯示的預約時間開始閃爍并倒計時,預約時間結束時開始加熱。 13、加熱:高壓或低壓開關閉合,機器通電開始加熱,烹飪功能指示燈常亮。加熱達到設定的壓力上限時則進入保壓。 14、保壓:進入保壓階段,數碼管顯示保壓時間倒計時值,同時對壓力進行檢測,低于下限值則相應的壓力開關再次閉合通電加熱,高于上限值則開關斷開撤除加熱,不斷重復這一過程。 13、保溫/取消:保溫功能用于維持電壓力煲內的食物溫度,當烹飪結束后,機器自動進入保溫功能,數碼管顯示保溫提示符(自行設定),保溫燈亮起,并“嘀”提示5聲;也可在待機狀態時,按下“保溫/取消”鍵,啟動保溫功能,保溫8小時后自動退出保溫進入待機狀態。 進入保溫時先對溫度檢測,當溫度低于40℃則啟動低功率加熱,即3分鐘加熱,6分鐘停止加熱,并重復這一過程。 14、在電壓力煲工作的任何階段(待機除外),若要取消現有狀態,可按“保溫/取消”鍵,返回待機狀態。 15、開蓋報警:在待機、功能選擇或保溫階段(安全眼已落下,壓力假設低于10KPa),可以正常開蓋,機器“嘀-嘀”兩聲,數碼管、指示燈的顯示同各階段,但若是保溫階段則要撤除通電加熱。 在加熱或保壓階段開蓋則報警,蜂鳴器“嘀---嘀---嘀……”長鳴,數碼管提示錯誤信息,如“E1”,此時合蓋則各階段恢復正常。 超溫報警:無論哪個階段,只要溫度超過145℃則報警,數碼管提示錯誤信息,如“E2”,此時應斷電撤除加熱。
ORG 0000H ;復位入口 LJMP MAIN ;轉往主程序 ORG 0003H ;外部中斷0服務子程序入口 LJMP IX0P ;INT0下降沿請求中斷:將小時數加1 ORG 000BH ;定時器0中斷服務子程序入口 LJMP IT0P ;對T0引腳輸入的負脈沖每計滿2次即請求中斷:將分鐘數加1 ORG 001BH ;定時器1中斷服務子程序入口 LJMP IT1P ;定時中斷:進行實時鐘計時
ORG 0030H ;主程序 MAIN:MOV SP,#6FH ;總初始化,設定棧底指針 LCALL D60MS ;稍加延時(60mS),以待各芯片均退出復位狀態 MOV DPTR,#0FEFFH ;對U3(8255)接口芯片初始化 MOV A,#89H ;設定為A口輸出(驅動字段)、B口輸出(驅動字位),C口輸入(鍵盤) MOVX @DPTR,A ;向U3(8255)控制口寫入方式控制字 MOV DPTR,#0FEFCH ;DPTR指向U3(8255)-A口,8255輸出口初始值全0,應即刻清為無效電平 MOV A,#0FFH ;A口應清為全1,即對應八段均不亮的字段碼 MOVX @DPTR,A ;輸出到U3(8255)的A口 (B口初始值全0就是全無效電平,無需改變) MOV DPTR,#0FDFFH ;對U5(8255)接口芯片初始化 MOV A,#8BH ;設定為A口輸出(驅L8~15),B口輸入(按鈕PB0~7),C口輸入(開關SW0~7) MOVX @DPTR,A ;向U5(8255)控制口寫入方式控制字 MOV DPTR,#0FDFCH ;DPTR指向U5(8255)-A口 MOV A,#0FFH ;A口應清為全1,即對應所驅動的L8~15初始不亮 MOVX @DPTR,A ;輸出到U5(8255)的A口
;**********自檢燈與蜂鳴器******************************* CLR P3.2 ;自檢,蜂鳴器響 LCALL D1S ;延時1S SETB P3.2 ;關蜂鳴器
MOV P1,#00H ;自檢,P1口輸出所驅動的L0~L7指示燈全亮 LCALL D1S ;延時1S MOV P1,#0FFH ;熄L0~L7指示燈 ;******************************************************
SETB EA ;開中斷總允許 SETB IT0 ;設定INT0中斷請求輸入信號下降沿有效 SETB EX0 ;開外部INT0中斷允許 MOV 38H,#00H ;38H單元為實時鐘200uS計數單元,清0 MOV 39H,#00H ;39H單元為10mS計數單元,清0
;************初值顯示******************* MOV 3AH,#45H ;秒單元初值 MOV 3BH,#59H ;分單元初值 MOV 3CH,#08H ;時單元初值,對應時鐘初值08:59:45 ;**************************************************
MOV TMOD,#22H ;初始化T1為定時方式2,T0為計數方式2。 MOV TL0,#00H ;置T0計數初值。00H-FEH=2,每計數2次請求中斷 MOV TH0,#00H SETB ET0 ;開T0中斷允許 SETB TR0 ;啟動T0計數工作 MOV TL1,#00H ;置T1計數初值。00H-48H=C8H=184,184TM≈200uS(實際199.6527778μS) MOV TH1,#00H ;即每約200uS請求中斷一次。(存在一些走時誤差)(TM=12/11.0592MHZ) SETB ET1 ;開T1中斷允許 SETB TR1 ;啟動T1定時工作 MOV 50H,#00H ;D/A輸出數據單元初始值
;************AD轉換結果單元的初值設置*************************** MOV 52H,#0AAH ;A/D轉換結果數據單元初值AN1(壓力) MOV 53H,#50H ;A/D轉換結果數據單元初值AN0(溫度) MOV 56H,#36 ;T0中斷,計數1秒 MOV 11H,#100
篇幅有限,請下載查看,目前還缺少原理圖,壓縮包里面只有代碼
ddhh.rar
(8.63 KB, 下載次數: 21)
2020-4-23 15:48 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|