湊一個熱鬧,多年前給一家公司做的推桿控制器,有遙控,正反轉,暫停,到位停止,過載保護等等功能
窗戶自動開啟,電機正反轉,升降控制,折疊控制都可以用上。
匯編寫的!!
CPU板.png (134.88 KB, 下載次數: 64)
下載附件
CPU板
2021-4-16 16:20 上傳
電源繼電器板.png (178.25 KB, 下載次數: 80)
下載附件
繼電器底板
2021-4-16 16:20 上傳
側板.png (51.53 KB, 下載次數: 66)
下載附件
側板
2021-4-16 16:20 上傳
單片機源程序如下:
; 輸入端口 輸出端口
; 2.4 對碼輸出(確認對碼)
; 2.0 LED輸出
; 3.2 手動折疊 ; 2.3 蜂鳴器輸出
; 3.3 手動打開 ; 2.1 繼電器折疊
; 3.4 座位傳感器 ; 2.2 繼電器打開
; 3.5 備用(輪椅車程序用)
; 3.6 備用
; 1.0 推桿過載
; 1.1 推桿確認
; 1.2 對碼按鍵
; 1.7 遙控按鍵折疊
; 1.6 遙控按鍵打開
ORG 00H
L1 : MOV 61H , #0
MOV 60H , #0
MOV 65H , #50
;==========================================================================================
MOV P3 , #0FFH
MOV P1 , #0FFH
W : MOV R7 , #2 ;程序入口
W1 :
ACALL DKQ
DJNZ R7 , W1
CLR P2.3
ACALL K21
SETB P2.3
;========================================================================對碼入口
LOOP : ACALL FM
JNB P1.2 , LOOP1
JMP B2
LOOP1 : MOV 66H , #15
LOOP2 : CLR P2.0
CLR P2.4
ACALL FM
SETB P2.0
ACALL FM
DJNZ 66H , LOOP2
SETB P2.0
SETB P2.4
JMP LOOP4
;========================================================================對碼入口
LOOP3 : ACALL FM
CLR P2.3
JB P1.7 , LOOP3
JB P1.6 , LOOP3
SETB P2.3
ACALL FM
JMP B2
LOOP4 : MOV 67H , #40
LOOP5 : ACALL FM
JB P1.7 , LOOP3
JB P1.6 , LOOP3
DJNZ 67H , LOOP5
JMP B2
;=======================================================待機操作
B2 : CLR P2.0
ACALL FM
JNB P3.2 , ZHANG1 ;到折疊程序
JNB P3.3 , ZHANG2 ;到打開程序
JB P1.7 , ZHANG1 ;到折疊程序
JB P1.6 , ZHANG2 ;到打開程序
JNB P1.2 , LOOP ;對碼學習
JMP B2 ;停止返回
;=======================================================折疊按鍵防抖和干擾
ZHANG1 : MOV R4 , #255 ;防抖時間設置
Z10 : MOV R5 , #255
Z12 : MOV R6 , #3
DJNZ R6 , $
DJNZ R5 , Z12
DJNZ R4 , Z10
JNB P3.2 , Z11 ;比較按鍵是否按下 ,按下跳轉
JB P1.7 , Z11 ;比較按鍵是否按下 ,按下跳轉
JMP B2 ;停止返回
;=======================================================折疊部分
Z11 : JMP C1 ;跳轉折疊主程序
JMP B2
;=======================================================打開按鍵防抖和干擾
ZHANG2 : MOV R4 , #255 ;防抖時間設置
Z20 : MOV R5 , #255
Z22 : MOV R6 , #3
DJNZ R6 , $
DJNZ R5 , Z22
DJNZ R4 , Z20
JNB P3.3 , Z21 ;比較按鍵是否按下 ,按下跳轉
JB P1.6 , Z21 ;比較按鍵是否按下 ,按下跳轉
JMP B2
;=======================================================打開部分
Z21 : JMP D1
JMP B2 ;跳轉打開主程序
;============================================================================================================以上是按鍵操作和遙控部分
;===========================================================================================================
C1 : ACALL DAKAI11
SETB P2.0 ;蜂鳴器開始響
MOV R7 , #10 ;折疊延時設置
JNB P3.2 , C1 ;按鍵確認
JB P1.7 , C1 ;按鍵確認
C2 :
JNB P3.4 , SS ;座位傳感器
CLR P2.2 ;折疊馬達啟動
ACALL FM
ACALL ZHEDIE ;折疊延時程序
JNB P1.0 , C3 ;檢測馬達運行
ACALL DWFZ ;行程到位反轉
JMP C4 ;跳到報警子程序
SS : JMP E3
JMP B2
C3 : DJNZ R7 , C2 ;折疊延時
ACALL ZDFZ ;折疊完成反轉
JMP B2 ;停止返回
C4 : MOV 61H , #3 ;折疊到位 (三聲)
ACALL DKQ ;蜂鳴器報警
ACALL BJ2 ;蜂鳴器報警
DJNZ 65H , C5
JMP L1
C5 : CLR P2.0
ACALL FM
JNB P3.2 , C4
JNB P3.3 , ZHANG2
JB P1.7 , C4
JB P1.6 , ZHANG2
JMP C5
;-------------------------------------------------------------------------------------------------------------
D1 : ACALL DAKAI11
SETB P2.0 ;蜂鳴器開始響
MOV R7 , #10 ;打開延時設置
JNB P3.3 , D1
JB P1.6 , D1
D2 : CLR P2.1 ;打開馬達啟動
ACALL FM
ACALL DAKAI ;打開延時程序
JNB P1.0 , D3
ACALL DKFZ
JMP D4
JMP B2
D3 : DJNZ R7 , D2
ACALL DKFZ
JMP B2 ;停止返回
D4 : MOV 61H , #3 ;打開到位 (三聲)
ACALL DKQ
ACALL BJ2
DJNZ 65H , D5
JMP L1
D5 : CLR P2.0
ACALL FM
JNB P3.2 , D6
JNB P3.3 , D4
JB P1.7 , D6
JB P1.6 , D4
JMP D5
D6 : JMP ZHANG1
;============================================================================================================以上是馬達的驅動部分
;===========================================================================================================
ZDGZ : SETB P2.2 ;=!!!!折疊過載保護
SETB P2.3
ACALL DWFZ
GZ : MOV 61H , #4 ;=!!!!報警設置和子程序 (四聲)
ACALL DKQ
ACALL BJ2
GZ2 : ACALL FM
JNB P3.2 , GZ
JNB P3.3 , H2
JB P1.7 , GZ
JB P1.6 , H2
JMP GZ2
H2 : JMP ZHANG2
JMP B2
DKGZ : SETB P2.1 ;=!!!!打開過載保護
SETB P2.3
ACALL DKFZ
GZ3 : MOV 61H , #4 ;=!!!!報警設置和子程序 (四聲)
ACALL DKQ
ACALL BJ2
GZ4 : ACALL FM
JNB P3.2 , H1
JNB P3.3 , GZ3
JB P1.7 , H1
JB P1.6 , GZ3
JMP GZ4
H1 : JMP ZHANG1
JMP B2
;============================================================================================================以上是過流保護部分
;===========================================================================================================
;=======================================================折疊延時
ZHEDIE : CLR P2.3 ;改成SETB,取消蜂鳴器
ACALL ZD
SETB P2.3
ACALL ZD
RET
ZD : MOV R0 , #255
ZD1 : MOV R1 , #255
ZD2 : MOV R2 , #15
DJNZ R2 , $
DJNZ R1 , ZD2
JNB P3.2 , E1
JNB P3.3 , E1
JB P1.7 , E1
JB P1.6 , E1
JNB P3.4 , E3 ;座位傳感器
JNB P1.1 , ZDGZ ;檢測電流
DJNZ R0 , ZD1
RET
;=======================================================打開延時
DAKAI : CLR P2.3 ;改成SETB,取消蜂鳴器
ACALL DK
SETB P2.3
ACALL DK
RET
DK : MOV R0 , #255
DK1 : MOV R1 , #255
DK2 : MOV R2 , #15
DJNZ R2 , $
DJNZ R1 , DK2
JNB P3.2 , E2
JNB P3.3 , E2
JB P1.7 , E2
JB P1.6 , E2
JNB P1.1 , DKGZ ;檢測電流
DJNZ R0 , DK1
RET
;=========================================================================================================以上是馬達運行延時程序
;===========================================================================================================
DAKAI11 : CLR P2.3
ACALL DKQ
SETB P2.3
ACALL DKQ
RET
DKQ : MOV R0 , #255
DKQ1 : MOV R1 , #255
DKQ2 : MOV R2 , #15
DJNZ R2 , $
DJNZ R1 , DKQ2
DJNZ R0 , DKQ1
RET
;============================================================================================================以上是允許開始的空程序
;===========================================================================================================
;============ 折疊暫停程序
E1 : SETB P2.2
SETB P2.3
JNB P3.2 , E1
JNB P3.3 , E1
JB P1.7 , E1
JB P1.6 , E1
MOV 61H , #1 ;=!!!!報警設置和子程序 (一聲)
ACALL ZDFZ
ACALL DKQ
ACALL BJ2
JMP B2
;============ 打開暫停程序
E2 : SETB P2.1
SETB P2.3
JNB P3.2 , E2
JNB P3.3 , E2
JB P1.7 , E2
JB P1.6 , E2
MOV 61H , #1 ;=!!!!報警設置和子程序
ACALL DKFZ
ACALL DKQ
ACALL BJ2
JMP B2
;============================================================================================================以上是暫停處理部分
;===========================================================================================================
;============ 座位傳感器
E3 : SETB P2.2 ;=!!!!座位傳感器保護
SETB P2.3
;ACALL ZDFZ
E31 : MOV 61H , #2 ;=!!!!報警設置和子程序 (二聲)
ACALL DKQ
ACALL BJ2
E32 : MOV R7 , #15
E34 : ACALL FM
JNB P3.2 , E31
JNB P3.3 , E33
JB P1.7 , E31
JB P1.6 , E33
DJNZ R7 , E34
E33 : JMP ZHANG2
JMP B2
;============================================================================================================以上是座位傳感器部分
;===========================================================================================================
;============ 折疊反轉
ZDFZ : SETB P2.2
ACALL K01
CLR P2.1
ACALL K11
SETB P2.1
RET
;============ 打開反轉
DKFZ : SETB P2.1
ACALL K01
CLR P2.2
ACALL K11
SETB P2.2
RET
;============ 打開反轉
DWFZ : SETB P2.2
ACALL K01
CLR P2.1
ACALL K21
SETB P2.1
RET
;=======================================================蜂鳴器程序
FMQ : MOV R3 , 60H
FMQ1 : CLR P3.3
CLR P2.0
ACALL FM
SETB P3.3
SETB P2.0
ACALL FM
DJNZ 60H , FMQ1
RET
FM : MOV R0 , #255
FM1 : MOV R1 , #255
FM2 : MOV R2 , #5
DJNZ R2 , $
DJNZ R1 , FM2
DJNZ R0 , FM1
RET
;=======================================================暫停反轉延時設置
K1 : MOV R0 , #255
K2 : MOV R1 , #255
K3 : MOV R2 , #5
DJNZ R2 , $
DJNZ R1 , K3
DJNZ R0 , K2
RET
K11 : MOV R0 , #255
K12 : MOV R1 , #255
K13 : MOV R2 , #5 ;=========折疊反轉延時設置
DJNZ R2 , $
DJNZ R1 , K13
DJNZ R0 , K12
RET
K21 : MOV R0 , #255
K22 : MOV R1 , #255
K23 : MOV R2 , #15 ;=========打開反轉延時設置3022,3041---10 3051----35 (????????????????)
DJNZ R2 , $
DJNZ R1 , K23
DJNZ R0 , K22
RET
;===========================================================================================================蜂鳴器的報警設置
;===========================================================================================================
;=======================================================蜂鳴器報警處理程序
BJ : MOV R3 , #6
BJ1 : CLR P3.3
ACALL G1
SETB P3.3
ACALL G1
DJNZ R3 , BJ1
RET
G1 : MOV R0 , #200
G11 : MOV R1 , #180
G12 : MOV R2 , #2 ;==蜂鳴器短聲
DJNZ R2 , $
DJNZ R1 , G12
DJNZ R0 , G11
RET
BJ2 : ;==61H放置報警參數
BJ21 : CLR P2.3
CLR P2.0
ACALL G2
SETB P2.3
SETB P2.0
ACALL G2
DJNZ 61H , BJ21
RET
G2 : MOV R0 , #255
G21 : MOV R1 , #255
G22 : MOV R2 , #4 ;==蜂鳴器長聲
DJNZ R2 , $
DJNZ R1 , G22
DJNZ R0 , G21
RET
K01 : MOV R0 , #255
K02 : MOV R1 , #255
K03 : MOV R2 , #25
DJNZ R2 , $
DJNZ R1 , K03
DJNZ R0 , K02
RET
END
|