?? 時(shí)序控制器匯編程序.asm
字號(hào):
;///////////////////////////////////////////////////////////////////////////
;// 時(shí)序控制器程序 //
;// 作用:分時(shí)接通/斷開(kāi)各路加熱板(有24路),防止大電流對(duì)電網(wǎng)過(guò)沖擊 //
;// 晶振3.57MHz //
;// P2.6為接通/斷開(kāi)控制端,P2.7預(yù)留 //
;// P0、P1、P2.0~P2.5為輸出端,經(jīng)過(guò)驅(qū)動(dòng)電路驅(qū)動(dòng)各繼電器 //
;// 2008年4月18日,通過(guò)測(cè)試,實(shí)際使用 //
;///////////////////////////////////////////////////////////////////////////
WDT EQU 0E1H ;定義看門狗地址
ORG 0000H ;主程序入口
LJMP KS
;****************************************************************************
;初始化程序
;****************************************************************************
ORG 0100H
KS: MOV WDT,#00111100B ;設(shè)置看門狗
MOV P0,#0FFH ;設(shè)置PO口繼電器斷開(kāi)
MOV P1,#0FFH ;設(shè)置P1口繼電器斷開(kāi)
MOV P2,#0FFH ;設(shè)置P2口繼電器斷開(kāi)
MOV R0,#0FFH ;延時(shí),待電源正常后系統(tǒng)才開(kāi)始工作
DJNZ R0,$
MOV SP,#60H ;設(shè)SP開(kāi)始位置
;****************************************************************************
;檢測(cè)是否啟動(dòng)
;****************************************************************************
L1: MOV R0,#100 ;延時(shí),作喂狗準(zhǔn)備
L2: JNB P2.6,L3 ;P2.6為接通/斷開(kāi)控制端,檢查是否接通(0為接通)
DJNZ R0,L2
MOV WDT,#00111100B ;喂狗
SJMP L1
L3: ACALL YS1 ;延時(shí)防誤
JB P2.6,L1
;L1: JB P2.6,$
; ACALL YS1 ;延時(shí)防誤
; JB P2.6,L1
;****************************************************************************
;以下為繼電器接通程序,分時(shí)接通,防止固態(tài)繼電器全部接通時(shí)對(duì)電網(wǎng)的過(guò)沖擊
;****************************************************************************
MOV A,#0FFH ;設(shè)置A初值
LL1: CLR C
RLC A
MOV P0,A ;P0端各口依次輸出低電平
ACALL YS2 ;延時(shí)
JNZ LL1 ;判斷P0端的各繼電器是否全部接通,全部接通后開(kāi)始接通P1口
MOV A,#0FFH
LL2: CLR C
RLC A
MOV P1,A ;P1端各口依次輸出低電平
ACALL YS2
JNZ LL2
MOV A,#0FFH
LL3: CLR C
RLC A
MOV P2,A ;P2端各口依次輸出低電平
ACALL YS2 ;長(zhǎng)延時(shí)
SETB ACC.7 ;屏蔽高4位(使其不受P2.7狀態(tài)的影響)
SETB ACC.6 ;屏蔽高3位(使其不受P2.6狀態(tài)的影響)
CJNE A,#11000000B,LL3;P2等于C0H時(shí)接通完畢,P2.6、P2.7為輸入端,不接繼電器
;****************************************************************************
;檢測(cè)啟動(dòng)/斷開(kāi)開(kāi)關(guān)是否斷開(kāi)
;****************************************************************************
Z1: MOV R0,#100 ;延時(shí),作喂狗準(zhǔn)備
Z2: JB P2.6,Z3 ;P2.6為接通/斷開(kāi)控制端,檢查是否斷開(kāi)(1為斷開(kāi))
DJNZ R0,Z2
MOV WDT,#00111100B ;喂狗
SJMP Z1
Z3: ACALL YS1 ;延時(shí)防誤
JNB P2.6,Z1
; SJMP L4
;Z1: JNB P2.6,$
; ACALL YS1 ;延時(shí)防誤
; JNB P2.6,Z1
; SJMP L4
;****************************************************************************
;檢測(cè)啟動(dòng)/斷開(kāi)開(kāi)關(guān)是否斷開(kāi)
;****************************************************************************
;L5: MOV R0,#100 ;延時(shí),作喂狗準(zhǔn)備
;L6: JNB P2.7,L7 ;P2.7為斷開(kāi)端,檢查是否斷開(kāi)(為0斷開(kāi))
; DJNZ R0,L6
; MOV WDT,#00111100B ;喂狗
; SJMP L5
;L7: ACALL YS1 ;延時(shí)防誤
; JB P2.7,L5
;L2: JNB P2.7,$ ;P2.7為斷開(kāi)端,檢查是否斷開(kāi)(為0斷開(kāi))
; ACALL YS1 ;延時(shí)防誤
; JNB P2.7,L2
;****************************************************************************
;以下為斷開(kāi)繼電器程序,分時(shí)斷開(kāi),防止沖擊
;****************************************************************************
L4: CLR A ;設(shè)置A初值
LY1: SETB C
RLC A
MOV P0,A ;P0端各口依次輸出低電平
ACALL YS3 ;延時(shí)
CJNE A,#11111111B,LY1;判斷P0端的各繼電器是否全部接通,接通后開(kāi)始接通P1口
CLR A
LY2: SETB C
RLC A
MOV P1,A ;P1端各口依次輸出低電平
ACALL YS3
CJNE A,#0FFH,LY2
CLR A
LY3: SETB C
RLC A
MOV P2,A ;P2端各口依次輸出低電平
ACALL YS3 ;延時(shí)
SETB ACC.7 ;屏蔽高4位(使其不受P2.7狀態(tài)的影響)
SETB ACC.6 ;屏蔽高3位(使其不受P2.6狀態(tài)的影響)
CJNE A,#11111111B,LY3;P2等于3FH時(shí)接通完畢,P2.6、P2.7為輸入端,不接繼電器
SETB P2.7 ;P2.7恢復(fù)高電平
SETB P2.6 ;P2.6恢復(fù)高電平
AJMP L1
;****************************************************************************
;以下為延時(shí)子程序
;****************************************************************************
;開(kāi)關(guān)延時(shí)防誤延時(shí)子程序
YS1: MOV R1,#200 ;延時(shí)1
Y1: MOV R2,#100
Y2: NOP
NOP
NOP
DJNZ R2,Y2
MOV WDT,#00111100B ;設(shè)置看門狗
DJNZ R1,Y1
RET ;返回
;繼電器延時(shí)接通延時(shí)子程序
YS2: MOV R1,#60 ;延時(shí)2
S1: MOV R2,#100
S2: NOP
NOP
NOP
DJNZ R2,S2
MOV WDT,#00111100B
DJNZ R1,S1
RET
;繼電器延時(shí)斷開(kāi)延時(shí)子程序
YS3: MOV R1,#40 ;延時(shí)2
X1: MOV R2,#100
X2: NOP
NOP
NOP
DJNZ R2,X2
MOV WDT,#00111100B
DJNZ R1,X1
RET
;****************************************************************************
;軟件陷阱程序
;****************************************************************************
ORG 0300H ;程序入口
NOP ;軟件陷阱
NOP
NOP
LJMP KS ;返回主程序
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -