- 註冊時間
- 2006-7-20
- 最後登錄
- 2015-2-6
- 在線時間
- 288 小時
- 閱讀權限
- 20
- 積分
- 166
- 帖子
- 76
- 精華
- 0
- UID
- 948
 
|
發射機加動 改版
發射機加動
在下木頭:
一般四動搖控器都可輕易改成五動.
在下 亞X小黃改八動飛小暴龍直到搖桿鬆動嚴重,才換HITEC 6動.
忍不住手癢還是拆下把玩,改成八動.
有興趣參考比較!
電裝: hitec 6 改八動+1
用得到的歡迎取用.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;===================
;程式檔名: Hm.TXT (89c2051) date: 96/03/21 木頭(KS)
;===================
;== 主程式 伺服機控制器 (六動IN >> 九動OUT 數位混控 )LCD 20x4 CLK 24M hz
;===================+---------------------+-------------------------+
; 93/04/20 目前
; 96/02/07 H0207.TXT 原 JR0227.TXT 改 六動IN >> 八動OUT 數位混控
; 96/02/07 P1.7 七動H ;P1.6 保險開,七動L ;P1.5 八動H ;P1.4 八動L; P1.3=0 飛彈發射
; 96/02/07 P1.0~P1.4 功能設定; P3.2 P3.3 燈號; P3.4=CH7 P3.5=CH8 P3.0 = IN ;P3.7 = OUT
; 96/02/23 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #150 >> #130 ;中立點 L5 M125 H245
; 96/02/26 MOV 60h,#128;60H 控制加入第六動之增減 襟翼;起落架(2/23加入調速功能)
; 96/02/27 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #150 >> #130 ;中立點 L2 M128 H253
; c 96/02/23 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #150 >> #130中立點1.49ms L5 M125 H245
; d 96/02/27 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #150 >> #120 ;中立點 L2 M128 H253
; e 96/02/27 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #150 >> #110 ;中立點 L2 M128 H253
; f 96/02/28 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #110 >> #116 ;中立點 L2 M128 H255
; g 96/02/28 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #116 >> #132 ;中立點 L2 M128 H255
; h 96/02/28 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #132 >> #131 ;中立點 L2 M128 H255
; i 96/02/28 啟動延遲縮短&信號需溢位 ; 調整信號起始H點 #132 >> #131 ;中立點 L2 M128 H255
; i 96/02/28 啟動功能(P1.3=0開電源)設定 ch7 H=快LMH M=漸LMH L=HL ch8 H=快LMH M=漸LMH L=無斷H<>L
; j 96/03/10 起落架調速功能加速x2 啟動功能設定
;kLm 96/03/19 修改啟動功能設定(P1.3=0開電源) 設定燈號顯示
;kLm 96/03/19 LLL P1.6=0 保險開+ FFF P1.3=0 飛彈發射
ORG 0
JMP RESET
ORG 03H
ACALL INT0
RETI
ORG 13H
ACALL INT1
RETI
JMP INT1
;SSSSSSSSSSSSSSSSSSSSS
RESET: mov 60h,#128;60H 控制加入第7動之增減 襟翼;起落架(2/23加入調速功能)
mov 61h,#128;61H 控制加入第8動之增減 襟翼;起落架(2/23加入調速功能)
MOV 20H,#0 ;20H=0 >> CH7=H L 20H=1 >> CH7=H M L
MOV SP,#6FH ;設定堆疊
;===============================================
DW2: MOV 56H,#60
MOV TMOD,#00000000B ;T0 = T1 = 13位元計時器8000T=4mS
;============================
START: SETB EA
MOV P1,#FFH
MOV P3,#FFH
CLR P3.4 ;CH7=0
CLR P3.5 ;CH8=0
;啟動功能設定 ch7 H=固LMH(P1.6=0) 20h.0=1 1 M=漸LMH(P1.6=1 P1.7=1) 20h.1=1 2 L=HL(P1.7=0) 20h.2=1 4
;啟動功能設定 ch8 H=固LMH(P1.5=0) 20h.3=1 8 M=漸LMH(P1.5=1 P1.4=1) 20h.4=1 16 L=無段H<>L(P1.4=0) 20h.5=1 32
; ** ch7=L(P1.7=0) AND ch8=M(P1.5=1 P1.4=1) 才啟動
MOV 20H,#00010100B
JNB P1.3,S00
JMP JG
S00: SETB P3.2
SETB P3.3
SET0:
MOV 20H,#0
;=================
JB P1.6,S0
ORL 20H,#1 ;7H=固LMH(P1.6=0) 20h.0=1 1
JMP S2
S0: JNB P1.7,S1
ORL 20H,#2 ;7M=漸LMH(P1.6=1 P1.7=1) 20h.1=1 2
JMP S2
S1: ORL 20H,#4 ;7L=HL(P1.7=0) 20h.2=1 4
;=================
S2: JB P1.5,S3
ORL 20H,#8 ;8H=固LMH(P1.5=0) 20h.3=1 8
JMP S5
S3: JNB P1.6,S4
ORL 20H,#16 ;8M=漸LMH(P1.5=1 P1.4=1) 20h.4=1 16
JMP S5
S4: ORL 20H,#32 ;8L=無段H<>L(P1.4=0) 20h.5=1 32
;=================
S5: ;設定燈號顯示
;777777777777777777777
JB 20H.2,S6
MOV A,20H
ANL A,#00000011B
MOV R5,A
JMP S7
S6:MOV R5,#3
S7: CLR P3.2
MOV R7,#250 ;#50
CALL Delay
SETB P3.2
MOV R7,#250 ;#50
CALL Delay
DJNZ R5,S7
;777777777777777777777
mov r5,#5
S7a:MOV R7,#250 ;#50
CALL Delay
DJNZ R5,S7a
;888888888888888888888
JB 20H.5,S8
MOV A,20H
RR A
RR A
RR A
ANL A,#00000011B
MOV R5,A
JMP S9
S8:MOV R5,#3
S9: CLR P3.2
MOV R7,#100 ;#50
CALL Delay
SETB P3.2
MOV R7,#100 ;#50
CALL Delay
DJNZ R5,S9
;888888888888888888888
mov r5,#5
S7b:MOV R7,#250 ;#50
CALL Delay
DJNZ R5,S7b
JNB P1.3,SET0
JG:
CPL P3.2
MOV R7,#50 ;#200
CALL Delay
JB P3.0,JG ;等待信號 L
NOP
NOP
NOP
JG2: JNB P3.0,$
CLR TR0
CLR TF0
MOV TL0,#0
MOV TH0,#0
SETB TR0 ;啟動計時器0 =13位元計時器8000T=4mS
JB P3.0,$ ;等待信號 L
JNB TF0,JG2
JRPROG: CLR TR0 ;停止計時器0
MOV 58H,TL0 ;暫存TL0
MOV 59H,TH0 ;暫存TH0
CLR TF0 ;清除計時器0 溢位指標
;SETB TR0 ;啟動計時器0 =13位元計時器8000T=4mS
;JNB TF0,$
MOV 57H,#0 ;輸入信號合計指標 = 0
SETB P3.2 ;P3.2 P3.3 燈號
JNB P3.0,$ ;等待信號 H
;####### in信號 = L START ########
P20L: CLR TR0 ;停止計時器0
MOV 58H,TL0 ;暫存TL0
MOV 59H,TH0 ;暫存TH0
CLR P3.7 ;SETB 輸出為 L
MOV TL0,#0 ;清除計時器0 L
MOV TH0,#0 ;清除計時器0 H
SETB TR0 ;啟動計時器0
CLR TF0 ;清除計時器0 溢位指標
JNB P3.0,$
;======== in信號 = L END ========
;======== in信號 = H START ========
P20H: SETB P3.7 ;SETB 輸出為 H
CLR TR0 ;停止計時器0
MOV 55H,TL0 ;暫存TL0 >> 55H
MOV 56H,TH0 ;暫存TH0 >> 56H
MOV TL0,#0 ;清除計時器0 L
MOV TH0,#0 ;清除計時器0 H
SETB TR0 ;啟動計時器0
CLR TF0 ;清除計時器0 溢位指標
MOV A,57H
CJNE A,#6,GG0 ;動作信號計數點 #5原五動小黃 #6 HITEC-6
CLR TR0 ;停止計時器0
JMP TX77 ;插入第七動
GG0: JB TF0,TR0F ;計時器溢位
JB P3.0,GG0 ;等待信號 L
INC 57H
JMP P20L
;======== in信號 = H END ========
;======== 計時器溢位 START ========
TR0F:
NLCD: MOV 57H,#0 ;輸入信號合計指標 = 0
clr tr0
clr tf0
JB P3.0,$
JMP P20L
;======== 計時器溢位 END ========
TX77: ;插入第七動
JB 20H.2,TX77a ;TX77a P1.7 飛彈發射
JB 20H.1,TX77b ;TX77b 起落架 H M L
JMP TX77c ;JB 20H.0,TX77c ;TX77c 固HML
;7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
;======== 插入第七動 A 飛彈發射 START ========
TX77a: ;P1.6 保險開 ;P1.3 飛彈發射 ;P1.5 八動H ;P1.4 八動L
JB 20H.0,TX77b ;CH7=H M L
SETB P3.4 ;CH7=H
SETB P3.2 ;燈號P3.2 滅
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV R6,#2 ;LLL L R6=2 M R6=128 H R6=254
JB P1.6,G7G1 ;LLL P1.6=0 保險開
JB P1.3,G7G1 ;FFF P1.3=0 飛彈發射
CLR P3.2 ;P1.7=0 P1.6=0 飛彈發射 燈號P3.2 亮
MOV R6,#254 ;HHH P1.7 飛彈發射 L R6=2 M R6=128 H R6=254
G7G1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G7G1
CLR P3.7 ;SETB 輸出為 L
CLR P3.4 ;CH7=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G7G2:DJNZ R7,$
DJNZ R6,G7G2
SETB P3.7 ;SETB 輸出為 H
JMP TX88
;======== 插入第七動 END ========
;7BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
;======== 插第七動 TX77b 起落架 START ========襟翼;起落架(02/26加入調速功能)
TX77b:
SETB P3.5 ;CH8=H
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV A,60H
JB P1.7,G7J1 ;HHH L R6=2 M R6=128 H R6=254
CJNE A,#254,Ad7
MOV R6,60H ;MOV R6,#253=HHH
JMP G7bG1
Ad7: ;第七動之遞增
INC 60H
INC 60H
MOV R6,60H
JMP G7bG1
G7J1: JB P1.6,G7J2 ;LLL L R6=2 M R6=128 H R6=254
CJNE A,#2,Dc7
MOV R6,60H ;MOV R6,#2=LLL
JMP G7bG1
Dc7: ;第七動之遞減
DEC 60H
DEC 60H
MOV R6,60H
JMP G7bG1
G7J2: MOV A,60H ;MMM L R6=2 M R6=128 H R6=254
CLR C
SUBB A,#128
JZ G7J3
JC Ad7
JMP Dc7
G7J3:MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=255
G7bG1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G7bG1
CLR P3.7 ;SETB 輸出為 L
CLR P3.5 ;CH8=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G7bG2:DJNZ R7,$
DJNZ R6,G7bG2
SETB P3.7 ;SETB 輸出為 H
JMP TX88
;======== 插入第7動B END 襟翼;起落架(02/26加入調速功能)========
;======== 插入第七動c 固定 H M L START ========
TX77c: ;P1.7 油門漸H ;P1.6 保險開;P1.5 八動H ;P1.4 八動L
SETB P3.4 ;CH7=H
SETB P3.2 ;燈號P3.2 滅
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV R6,#254 ;HHH L R6=2 M R6=128 H R6=254
JNB P1.6,G7CG1
MOV R6,#2 ;LLL L R6=2 M R6=128 H R6=254
JNB P1.7,G7CG1
MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=254
G7CG1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G7CG1
CLR P3.7 ;SETB 輸出為 L
CLR P3.4 ;CH7=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G7CG2:DJNZ R7,$
DJNZ R6,G7CG2
SETB P3.7 ;SETB 輸出為 H
JMP TX88
;======== 插入第七動c END ========
TX88: ;======== 插入第八動
JB 20h.3,TX88a ; TX88a 固定 H M L
JB 20h.4,TX88b ; TX88b 起落架
JMP TX88c ; JB 20h.5,TX88c ; TX88c 無段H<>L
;======== 插入第八動A 固定 H M L START ========
TX88a: ; TX88a 固定 H M L ;P1.7 油門漸H ;P1.6 保險開;P1.5 八動H ;P1.4 八動L
SETB P3.5 ;CH8=H
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV R6,#254 ;HHH L R6=2 M R6=128 H R6=254
JNB P1.5,G8aG1
MOV R6,#2 ;LLL L R6=2 M R6=128 H R6=254
JNB P1.4,G8aG1
MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=254
G8aG1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G8aG1
CLR P3.7 ;SETB 輸出為 L
CLR P3.5 ;CH8=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G8aG2:DJNZ R7,$
DJNZ R6,G8aG2
SETB P3.7 ;SETB 輸出為 H
JMP TX99
;======== 插入第八動 END ========
;======== 插入第八動 TX88b 起落架 START ========襟翼;起落架(02/26加入調速功能)
TX88b: ;P1.7 油門漸H ;P1.6 保險開;P1.5 八動H ;P1.4 八動L
SETB P3.5 ;CH8=H
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV A,61H
JB P1.5,G8J1 ;HHH L R6=2 M R6=128 H R6=254
CJNE A,#254,Ad8
MOV R6,61H ;MOV R6,#253=HHH
JMP G8G1
Ad8: ;第八動之遞增
INC 61H
INC 61H
MOV R6,61H
JMP G8G1
G8J1: JB P1.4,G8J2 ;LLL L R6=2 M R6=128 H R6=254
CJNE A,#2,Dc8
MOV R6,61H ;MOV R6,#2=LLL
JMP G8G1
Dc8: ;第八動之遞減
DEC 61H
DEC 61H
MOV R6,61H
JMP G8G1
G8J2: MOV A,61H ;MMM L R6=2 M R6=128 H R6=254
CLR C
SUBB A,#128
JZ G8J3
JC Ad8
JMP Dc8
G8J3:MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=254
G8G1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G8G1
CLR P3.7 ;SETB 輸出為 L
CLR P3.5 ;CH8=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G8G2:DJNZ R7,$
DJNZ R6,G8G2
SETB P3.7 ;SETB 輸出為 H
JMP TX99
;======== 插入第八動 END 襟翼;起落架(02/26加入調速功能)========
;======== 插入第八動 TX88c 無段H<>L START ========襟翼;起落架(02/26加入調速功能)
TX88c: ;P1.7 油門漸H ;P1.6 保險開;P1.5 八動H ;P1.4 八動L
SETB P3.5 ;CH8=H
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV A,61H
JB P1.5,G8cJ1 ;HHH L R6=2 M R6=128 H R6=254
CJNE A,#254,Ad8c
MOV R6,61H ;MOV R6,#254=HHH
JMP G8cG1
Ad8c: ;第八動之遞增
INC 61H
MOV R6,61H
JMP G8cG1
G8cJ1: JB P1.4,G8cJ2 ;LLL L R6=2 M R6=128 H R6=254
CJNE A,#2,Dc8c
MOV R6,61H ;MOV R6,#2=LLL
JMP G8cG1
Dc8c: ;第八動之遞減
DEC 61H
MOV R6,61H
JMP G8cG1
G8cJ2: ;MMM L R6=2 M R6=128 H R6=254
MOV R6,61H
JMP G8cG1
G8cJ3:MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=255
G8cG1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G8cG1
CLR P3.7 ;SETB 輸出為 L
CLR P3.5 ;CH8=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G8cG2:DJNZ R7,$
DJNZ R6,G8cG2
SETB P3.7 ;SETB 輸出為 H
JMP TX99
;======== 插入第八動 END 襟翼;起落架(02/26加入調速功能)========
;======== 插入第九動 START ========
TX99: ;P1.7 油門漸H ;P1.6 保險開;P1.5 八動H ;P1.4 八動L
SETB P3.5 ;CH8=H
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV R6,#2 ;LLL L R6=2 M R6=128 H R6=254
JNB P1.5,G9G1
MOV R6,#254 ;HHH L R6=2 M R6=128 H R6=254
JNB P1.4,G9G1
MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=254
G9G1:MOV R7,#2 ;原#9
DJNZ R7,$
DJNZ R6,G9G1
CLR P3.7 ;SETB 輸出為 L
CLR P3.5 ;CH8=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G9G2:DJNZ R7,$
DJNZ R6,G9G2
SETB P3.7 ;SETB 輸出為 H
JMP JRPROG
;======== 插入第九動 END ========
INT0:
ret
INT1:
ret
;=============================
;== 延時副程式 ==
;=============================
;每呼叫本副程式一次,可延時(r7)*1ms(Delay)
delay3: mov r6,#131 ;可延時(r7)* 0.20 ms ;#132=1.51 ms #130=1.49ms 110=1.43ms
jmp del_1
delay2: mov r6,#ffh ;可延時(r7)* 1.275ms
jmp del_1
Delay: mov r6,#200 ;可延時(r7)* 1ms
del_1: nop
nop
nop
nop
nop
nop
nop
nop
djnz r6,del_1
djnz r7,Delay
ret
;=========
Delay01:mov r6,#20
del_2: nop
nop
nop
nop
nop
nop
nop
nop
djnz r6,del_2
djnz r7,Delay01
ret
END |
|