- 註冊時間
- 2006-7-20
- 最後登錄
- 2015-2-6
- 在線時間
- 288 小時
- 閱讀權限
- 20
- 積分
- 166
- 帖子
- 76
- 精華
- 0
- UID
- 948
 
|
在下木頭:
給對岸的飛友!!請自行剪貼組合語言程式碼 Hf.txt
電裝: hitec 6 改九動
用得到的歡迎取用.
請自行剪貼組合語言程式碼 Hf.txt
;===================
;程式檔名: He.TXT (89c2051) date: 96/02/27 木頭(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 保險開;P1.5 八動H ;P1.4 八動L
; 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
ORG 0
JMP RESET
ORG 03H
ACALL INT0
RETI
ORG 13H
ACALL INT1
RETI
JMP INT1
;SSSSSSSSSSSSSSSSSSSSS
RESET: mov 60h,#128;60H 控制加入第六動之增減 襟翼;起落架(2/23加入調速功能)
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
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 ========
;7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
;======== 插入第七動A START ========
TX77: ;P1.6 保險開 ;P1.7 飛彈發射 ;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,#2 ;LLL L R6=2 M R6=128 H R6=255
JB P1.6,G7G1
CLR P3.2 ;P1.6 保險開 燈號P3.2 亮
; JB P1.7,G7G1
MOV R6,#255 ;HHH P1.7 飛彈發射 L R6=2 M R6=128 H R6=255
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
;======== 插入第七動B START ========
TX77B: ;P1.7 油門漸H ;P1.6 保險開;P1.5 八動H ;P1.4 八動L
SETB P3.4 ;CH7=H
MOV R7,#1 ;可延時(r7)* 0.20 ms
CALL delay3
MOV R6,#255 ;HHH L R6=2 M R6=128 H R6=255
JNB P1.6,G7BG1
MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=255
JNB P1.7,G7BG1
MOV R6,#2 ;LLL 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.4 ;CH7=0
MOV R7,#125
MOV R6,#2 ;MOV R6,#10
G7BG2:DJNZ R7,$
DJNZ R6,G7BG2
SETB P3.7 ;SETB 輸出為 H
JMP TX88
;======== 插入第七動B END ========
;======== 插入第八動 START ========
; TX88a: ;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,#255 ;HHH L R6=2 M R6=128 H R6=255
; JNB P1.5,G8aG1
; MOV R6,#2 ;LLL L R6=2 M R6=128 H R6=255
; JNB P1.4,G8aG1
; MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=255
; 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 ========
;======== 插入第八動 START ========襟翼;起落架(02/26加入調速功能)
TX88: ;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,60H
JB P1.5,G8J1 ;HHH L R6=2 M R6=128 H R6=255
CJNE A,#255,Ad8
MOV R6,60H ;MOV R6,#253=HHH
JMP G8G1
Ad8: ;第八動之遞增
INC 60H
MOV R6,60H
JMP G8G1
G8J1: JB P1.4,G8J2 ;LLL L R6=2 M R6=128 H R6=255
CJNE A,#2,Dc8
MOV R6,60H ;MOV R6,#2=LLL
JMP G8G1
Dc8: ;第八動之遞減
DEC 60H
MOV R6,60H
JMP G8G1
G8J2: MOV A,60H ;MMM L R6=2 M R6=128 H R6=255
CLR C
SUBB A,#128
JZ G8J3
JC Ad8
JMP Dc8
G8J3:MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=255
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加入調速功能)========
;======== 插入第九動 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=255
JNB P1.5,G9G1
MOV R6,#255 ;HHH L R6=2 M R6=128 H R6=255
JNB P1.4,G9G1
MOV R6,#128 ;MMM L R6=2 M R6=128 H R6=253
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,#116 ;可延時(r7)* 0.20 ms ;#130
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 |
|