|
;-------------------------------------------------------------兩鍵控制豆?jié){機(jī)程序(芯片AT89C2051)------------------------------------------------------------
;P3.2中斷口作為水位檢測端
;=========================================聚寶工業(yè)設(shè)計室(2011-12)==============================================
LEDPOWER BIT P1.7 ;電源開關(guān)顯示
LEDGD BIT P1.6 ;干豆顯示
LEDSD BIT P1.5 ;濕豆顯示
LEDMH BIT P1.4 ;米糊顯示
;----------------------------------------------------------------------------
DM BIT P1.3 ;電機(jī)控制端
DH BIT P1.2 ;發(fā)熱管控制
;----------------------------------------------------------------------------
KG BIT P1.1 ;開關(guān)鍵
GN BIT P1.0 ;功能鍵
;=========================================================================================
ORG 0000H
JMP START
ORG 00BH
JMP STOP_1 ;水位檢測中斷服務(wù)程序
ORG 0030H
START:
SETB EA
SETB EX0
MOV P1,#00H
ACALL YSH1
ACALL YSH1
ACALL YSH1 ;端口初始化調(diào)延時等待
MOV P1,#0FFH
ACALL YSH1
ACALL YSH1
ACALL YSH1
;----------------------------------------------------------------------------
LOOP0:
JB KG,LOOP1 ;開/關(guān)功能鍵檢測
ACALL YSH2 ;去抖動延時
JB KG,LOOP1
POWER:
JNB KG,$ ;如果還沒有松開按鍵則等待松開
CPL LEDPOWER ;電源 控制 P1.7
JMP LOOP0
;------------------------------------------------------------------------------------------------------------------------
LOOP1:
CJNE A,#03,GOOD ;判斷功能鍵是否按了3次
MOV A,#00H
GOOD:
JB GN,LOOP0 ;功能選擇鍵檢測
ACALL YSH2 ;去抖動延時
JB GN,LOOP0
JNB GN,$ ;等待功能鍵松開
;----------------------------------------------------------------------------------
JMP THERRSUN ;轉(zhuǎn)向三功能豆?jié){控制程序
THERRSUN:
CJNE A,#00H,SHI_DOU
INC A
JMP GANG_DOUSTART ;轉(zhuǎn)向干豆程序
SHI_DOU:
CJNE A,#01H,MI_HU
INC A
JMP SHI_DOUSTART ;轉(zhuǎn)向濕豆程序
MI_HU:
CJNE A,#02H,LOOP0 ;循環(huán)檢測
INC A
JMP MI_HUSTART ;轉(zhuǎn)向米糊程序
;-----------------------------------------------------------------------------------------------------------------------
GANG_DOUSTART:
CLR LEDGD ;煮干豆程序(P1.6口LED顯示)
CLR DH ;讓發(fā)熱管加熱水
SETB DM ;斷開電機(jī)
ACALL YS_1 ;調(diào)用加熱水5分鐘延時
CLR DM ;接通過電機(jī),斷開發(fā)熱管,開始打豆?jié){
SETB DH ;斷開發(fā)熱管
ACALL YS_2 ;調(diào)用打豆?jié){延時5分鐘
CLR DH ;接通發(fā)熱管
SETB DM ;斷開電機(jī)
ACALL YS_1 ;煮豆?jié){5分鐘
CLR DM
SETB DH
ACALL YS_1 ;再打5分鐘豆?jié){
SETB DM
CLR DH
ACALL YS_1 ;煮豆?jié){5分鐘
JMP STOP ;完成干豆的打磨和煮豆?jié){,轉(zhuǎn)到停機(jī)程序
;-----------------------------------------------------------------------------------------------------------------------
SHI_DOUSTART:
CLR LEDSD ;煮濕豆程序(P1.5口LED顯示)
CLR DM ;先打豆后才煮豆?jié){
SETB DH
ACALL YS_1 ;打豆5分鐘
CLR DH ;煮豆?jié){
SETB DM
ACALL YS_1 ;煮5分鐘
CLR DM ;再打豆
SETB DH
ACALL YS_1 ;打豆5分鐘
SETB DM ;煮豆?jié){
CLR DH
ACALL YS_1 ;煮5分鐘
JMP STOP
;-----------------------------------------------------------------------------------------------------------------------
MI_HUSTART:
CLR LEDMH ;煮干豆程序(P1.4口LED顯示)
CLR DH ;讓發(fā)熱管加熱水
SETB DM ;斷開電機(jī)
ACALL YS_1 ;調(diào)用加熱水5分鐘延時
CLR DM ;接通過電機(jī),斷開發(fā)熱管,開始打豆?jié){
SETB DH ;斷開發(fā)熱管
ACALL YS_2 ;調(diào)用打豆?jié){延時5分鐘
CLR DH ;接通發(fā)熱管
SETB DM ;斷開電機(jī)
ACALL YS_1 ;煮豆?jié){5分鐘
CLR DM
SETB DH
ACALL YS_1 ;再打5分鐘豆?jié){
SETB DM
CLR DH
ACALL YS_1 ;煮豆?jié){5分鐘
JMP STOP ;完成干豆的打磨和煮豆?jié){,轉(zhuǎn)到停機(jī)程序
;==========================================================================
STOP:
JMP START
STOP_1:
MOV P1,#00H
JMP $
;========================================端口初始==============
YSH1:
MOV R3,#250
D0: MOV R4,#250
DJNZ R4,$
DJNZ R3,D0
RET
;----------------------------------------------------------------按鍵去抖----------------------
YSH2:
MOV R3,#10
D1:
MOV R4,#250
DJNZ R4,$
DJNZ R3,D1
RET
;----------------------------------------------------------------5分鐘----------------------------
YS_1:
MOV R3,#50
D2: MOV R4,#50
D3: MOV R2,#50
DJNZ R2,$
DJNZ R4,D3
DJNZ R3,D2
RET
;----------------------------------------------------------------2分鐘---------------------------
YS_2:
MOV R3,#50
D4: MOV R4,#50
D5: MOV R2,#50
DJNZ R2,$
DJNZ R4,D5
DJNZ R3,D4
RET
END
;以上程序經(jīng)過試驗OK!
|
評分
-
查看全部評分
|