📄 define.asm
字号:
.list
.DATA
org 0h ;Bank 0 data section start from RAM address 0x000
AccBuf ds 1 ;Accumulater buffer
PflagBuf ds 1 ;PFLAG buffer
Keyinbuf ds 1 ;按键
Keychkbuf ds 1
Keycvtbuf ds 1
Keyoldbuf ds 1
Keychat ds 1
; aplcode ds 1
csxtable ds 1 ;csx的表值
gearbuf ds 1 ;输出档位值
inputcount ds 1 ;哪一个控制脚
; wingbuf ds 1 ;左右翼档位
; empennagebuf ds 1 ;尾翼档位
; screwbuf ds 1 ;螺旋桨档位
; swingbuf ds 1 ;摆尾档位
wingbuf1 ds 1 ;左右翼档位1
empennagebuf1 ds 1 ;尾翼档位1
screwbuf1 ds 1 ;螺旋桨档位1
swingbuf1 ds 1 ;摆尾档位1
; wingbuf2 ds 1 ;左右翼档位1
; empennagebuf2 ds 1 ;尾翼档位1
; screwbuf2 ds 1 ;螺旋桨档位1
; swingbuf2 ds 1 ;摆尾档位1
samebuf1 ds 1
samebuf2 ds 1
samebuf3 ds 1
samebuf4 ds 1
leveh ds 1 ;接收信号的高电平计数值
level ds 1 ;接收信号的低电平计数值
levecount ds 1 ;接受信号计数值的中间变量
timerswing ds 1 ;摆尾输出振荡波形的计数值
timerempennage ds 1 ;尾翼输出振荡波形的计数值
timerwing ds 1 ;机翼输出振荡波形的计数值
timerscrew ds 1 ;螺旋桨输出振荡波形的计数值
; tempmaxh ds 1
; tempmaxl ds 1
; tempmidh ds 1
; tempmidl ds 1
; tempminh ds 1
; tempminl ds 1
; tempvalh ds 1
; tempvall ds 1
; tempcount ds 1
; tablebufh ds 1 ;查表值
; tablebufl ds 1 ;
tablecount ds 1 ;查表的计数值
; tablecountbak ds 1 ;上一次的计数值
; samecount ds 1 ;跟上一次相同的次数
; countbuf ds 1 ;最终结果值
; tmrf1 ds 1
; tmrf2 ds 1
; tmrt1 ds 1
; tmrt2 ds 1
; temp6 ds 1
timer1800us ds 1
timer5ms ds 1
timer500ms ds 1
; timer1s ds 1
; timer1m ds 1
; timercount ds 1 ;时间计数
; timertable ds 1 ;定时时间
pulsecount1 ds 1 ;低电平计数
pulsecount2 ds 1 ;高电平计数
r1 ds 1 ;延时
r2 ds 1
;// temp0 ds 1
;// temp1 ds 1
flag ds 1
flag1 ds 1
flag2 ds 1
;// flag3 ds 1
;---------
;飞机各控制脚输出
;//set by carman
wingbuf ds 1 ;控制左右翼高电平输出宽度
empennagebuf ds 1 ;控制尾翼高电平输出宽度
screwbuf ds 1 ;控制螺旋桨高电平输出宽度
swingbuf ds 1 ;控制摆尾高电平输出宽度
;------
;可以通过设定以下RAM来改变各高电平宽度
wingloadbuf ds 1 ;重新载入左右翼高电平控制信号
empennageloadbuf ds 1 ;重新载入尾翼高电平控制信号
screwloadbuf ds 1 ;重新载入螺旋桨高电平控制信号
swingloadbuf ds 1 ;重新载入摆尾高电平控制信号
;-----
winglowbuf ds 1 ;控制左右翼低电平输出宽度
empennagelowbuf ds 1 ;控制尾翼低电平输出宽度
screwlowbuf ds 1 ;控制螺旋桨低电平输出宽度
swinglowbuf ds 1 ;控制摆尾低电平输出宽度
;*************** Define flag ***************
;时间标志
t5msflag1 equ flag.0
t5msflag2 equ flag.1
t5msflag3 equ flag.2
t5msflag4 equ flag.3
t1800usflag equ flag.4
t200usflag equ flag.5
t500msflag equ flag.6
t5msflag equ flag.7
csxenbflag equ flag1.0 ;是否检测csx的信号
winghighflag equ flag1.1 ;机翼是否输出振荡波的标志
empennagehighflag equ flag1.2 ;尾翼是否输出振荡波的标志
screwhighflag equ flag1.3 ;螺旋桨是否输出振荡波的标志
swinghighflag equ flag1.4 ;摆尾是否输出振荡波的标志
errorflag equ flag1.5 ;
; singleflag equ flag1.6 ;遥控接收信号的中断标志
firstflag equ flag1.7 ;第一个接收信号的标志
keystatflag equ flag2.0
t18msflag equ flag2.1
;---------
;飞机各控制脚状态输出切换
;//set by carman
wingstatflag equ flag2.2 ;=0:high output,=1:low output
empennagestatflag equ flag2.3
screwstatflag equ flag2.4
swingstatflag equ flag2.5
; t0count equ #230;231
samecontant equ #5 ;解码得到相同的次数
;----------------------------------------------
;-------------constant define------------------
;*************Port define**************************
singleflag equ p0.0 ;遥控接收脚
ptwing equ p1.1 ;机翼
ptscrew equ p1.0 ;螺旋桨
ptempennage equ p1.2 ;尾翼
ptswing equ p1.3 ;摆尾
ptcsx1 equ p5.0 ;前后陀螺仪控制信号
ptcsx2 equ p5.1 ;
ptcsx3 equ p5.2 ;
ptcsx4 equ p5.3 ;
ptcsy1 equ p5.4 ;左右陀螺仪控制信号
ptcsy2 equ p5.5 ;
ptcsy3 equ p5.6 ;
ptcsy4 equ p5.7 ;
;*********Micro define as following****************
NOTBIT macro bit
b0bts0 bit
jmp $+3
b0bset bit
jmp $+2
b0bclr bit
endm
IFLT16 expand mem1,val1,val2,adr ;mem<val val-->adr
local flt00,flt10,flt20,flt30
mov a,mem1+1
cmprs a,val2
jmp flt10
mov a,mem1
cmprs a,val1
jmp flt20
jmp flt30
flt20:
b0bts1 fc
jmp adr
jmp flt30
flt10:
b0bts1 fc
jmp adr
flt30:
endm
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -