📄 control1.asm
字号:
sub #47h
bcnd d_axis_kdp,neq ;不相等,则检测下一个
ldp #DP_PF1
splk #0023h,SCICTL1 ;相等,则sleep位清0,准备接收数据
b sci_return ;返回
********************************************************
kqd_rx: ;地址字节相符后,knp_rx作为数据接收标识
ldp #DP_PF1
lacl SCIRXBUF ;读取数据字节
and #00ffh
ldp #6
bit rx_bit_flag,BIT0 ;读取高8位字节
bcnd kqd_high8_rx,ntc
b kqd_low8_rx ;读取低8位字节
kqd_high8_rx:
sacl ref_rx_h ;存储高8位后,修改rx_bit_flag标志,并返回。
b kqd_rx_return2
kqd_low8_rx:
sacl ref_rx_l ;存储低8位
lacc ref_rx_h,8
add ref_rx_l ;读取完整字符
bit option_flag,BIT0 ;option_flag的bit0=1,表示第1次接收的数据
bcnd kqd_rx1,tc ;bit0=0,表示第2次接收的数据
b kqd_rx2
kqd_rx1:
ldp #6
sacl f_ref_rx1 ;获取第1次比例系数
ldp #DP_PF1
splk #0027h,SCICTL1 ;第1次数据接收完毕,sleep置1,准备接收地址
b kqd_rx_return2 ;修改rx_bit_flag标志,并返回。
kqd_rx2:
sub f_ref_rx1 ;第2次接收数据与第1次接收数据比较
bcnd kqd_rx_end,eq
b kqd_rx_return1
kqd_rx_end: ;相等,则赋给kn_p,参与运算。
lacl f_ref_rx1
ldp #DP_BSS2
sacl Kq_d
kqd_rx_return1: ;不相等,则f_ref_rx数值不变,并返回等待新数据输入。
ldp #DP_PF1
splk #0027h,SCICTL1 ;数据接收完毕,sleep重新置1,准备接收地址
kqd_rx_return2:
ldp #6
lacl rx_bit_flag ;修改标志位,用于判断接收高、低8位数据
xor #01h
sacl rx_bit_flag
b sci_return
*********************************************************
*********************************************************
*********d轴比例系数接收*********************************
d_axis_kdp:
lacl option ;检测地址字符是否是48h
sub #48h
bcnd d_axis_kdi,neq ;不相等,则检测下一个
ldp #DP_PF1
splk #0023h,SCICTL1 ;相等,则sleep位清0,准备接收数据
b sci_return ;返回
********************************************************
kdp_rx: ;地址字节相符后,knp_rx作为数据接收标识
ldp #DP_PF1
lacl SCIRXBUF ;读取数据字节
and #00ffh
ldp #6
bit rx_bit_flag,BIT0 ;读取高8位字节
bcnd kdp_high8_rx,ntc
b kdp_low8_rx ;读取低8位字节
kdp_high8_rx:
sacl ref_rx_h ;存储高8位后,修改rx_bit_flag标志,并返回。
b kdp_rx_return2
kdp_low8_rx:
sacl ref_rx_l ;存储低8位
lacc ref_rx_h,8
add ref_rx_l ;读取完整字符
bit option_flag,BIT0 ;option_flag的bit0=1,表示第1次接收的数据
bcnd kdp_rx1,tc ;bit0=0,表示第2次接收的数据
b kdp_rx2
kdp_rx1:
ldp #6
sacl f_ref_rx1 ;获取第1次比例系数
ldp #DP_PF1
splk #0027h,SCICTL1 ;第1次数据接收完毕,sleep置1,准备接收地址
b kdp_rx_return2 ;修改rx_bit_flag标志,并返回。
kdp_rx2:
sub f_ref_rx1 ;第2次接收数据与第1次接收数据比较
bcnd kdp_rx_end,eq
b kdp_rx_return1
kdp_rx_end: ;相等,则赋给kn_p,参与运算。
lacl f_ref_rx1
sacl Kd_p
kdp_rx_return1: ;不相等,则f_ref_rx数值不变,并返回等待新数据输入。
ldp #DP_PF1
splk #0027h,SCICTL1 ;数据接收完毕,sleep重新置1,准备接收地址
kdp_rx_return2:
ldp #6
lacl rx_bit_flag ;修改标志位,用于判断接收高、低8位数据
xor #01h
sacl rx_bit_flag
b sci_return
*********************************************************
*********************************************************
*********d轴积分系数接收*********************************
d_axis_kdi:
lacl option ;检测地址字符是否是49h
sub #49h
bcnd d_axis_kdd,neq ;不相等,则检测下一个
ldp #DP_PF1
splk #0023h,SCICTL1 ;相等,则sleep位清0,准备接收数据
b sci_return ;返回
********************************************************
kdi_rx: ;地址字节相符后,knp_rx作为数据接收标识
ldp #DP_PF1
lacl SCIRXBUF ;读取数据字节
and #00ffh
ldp #6
bit rx_bit_flag,BIT0 ;读取高8位字节
bcnd kdi_high8_rx,ntc
b kdi_low8_rx ;读取低8位字节
kdi_high8_rx:
sacl ref_rx_h ;存储高8位后,修改rx_bit_flag标志,并返回。
b kdi_rx_return2
kdi_low8_rx:
sacl ref_rx_l ;存储低8位
lacc ref_rx_h,8
add ref_rx_l ;读取完整字符
bit option_flag,BIT0 ;option_flag的bit0=1,表示第1次接收的数据
bcnd kdi_rx1,tc ;bit0=0,表示第2次接收的数据
b kdi_rx2
kdi_rx1:
ldp #6
sacl f_ref_rx1 ;获取第1次比例系数
ldp #DP_PF1
splk #0027h,SCICTL1 ;第1次数据接收完毕,sleep置1,准备接收地址
b kdi_rx_return2 ;修改rx_bit_flag标志,并返回。
kdi_rx2:
sub f_ref_rx1 ;第2次接收数据与第1次接收数据比较
bcnd kdi_rx_end,eq
b kdi_rx_return1
kdi_rx_end: ;相等,则赋给kn_p,参与运算。
lacl f_ref_rx1
sacl Kd_i
kdi_rx_return1: ;不相等,则f_ref_rx数值不变,并返回等待新数据输入。
ldp #DP_PF1
splk #0027h,SCICTL1 ;数据接收完毕,sleep重新置1,准备接收地址
kdi_rx_return2:
ldp #6
lacl rx_bit_flag ;修改标志位,用于判断接收高、低8位数据
xor #01h
sacl rx_bit_flag
b sci_return
*********************************************************
*********************************************************
*********d轴比例系数接收*********************************
d_axis_kdd:
lacl option ;检测地址字符是否是4ah
sub #4ah
bcnd isqref_limit,neq ;不相等,则检测下一个
ldp #DP_PF1
splk #0023h,SCICTL1 ;相等,则sleep位清0,准备接收数据
b sci_return ;返回
********************************************************
kdd_rx: ;地址字节相符后,knp_rx作为数据接收标识
ldp #DP_PF1
lacl SCIRXBUF ;读取数据字节
and #00ffh
ldp #6
bit rx_bit_flag,BIT0 ;读取高8位字节
bcnd kdd_high8_rx,ntc
b kdd_low8_rx ;读取低8位字节
kdd_high8_rx:
sacl ref_rx_h ;存储高8位后,修改rx_bit_flag标志,并返回。
b kdd_rx_return2
kdd_low8_rx:
sacl ref_rx_l ;存储低8位
lacc ref_rx_h,8
add ref_rx_l ;读取完整字符
bit option_flag,BIT0 ;option_flag的bit0=1,表示第1次接收的数据
bcnd kdd_rx1,tc ;bit0=0,表示第2次接收的数据
b kdd_rx2
kdd_rx1:
ldp #6
sacl f_ref_rx1 ;获取第1次比例系数
ldp #DP_PF1
splk #0027h,SCICTL1 ;第1次数据接收完毕,sleep置1,准备接收地址
b kdd_rx_return2 ;修改rx_bit_flag标志,并返回。
kdd_rx2:
sub f_ref_rx1 ;第2次接收数据与第1次接收数据比较
bcnd kdd_rx_end,eq
b kdd_rx_return1
kdd_rx_end: ;相等,则赋给kn_p,参与运算。
lacl f_ref_rx1
ldp #DP_BSS2
sacl Kd_d
kdd_rx_return1: ;不相等,则f_ref_rx数值不变,并返回等待新数据输入。
ldp #DP_PF1
splk #0027h,SCICTL1 ;数据接收完毕,sleep重新置1,准备接收地址
kdd_rx_return2:
ldp #6
lacl rx_bit_flag ;修改标志位,用于判断接收高、低8位数据
xor #01h
sacl rx_bit_flag
b sci_return
****************************************
*********扩展***************************
isqref_limit: ;isqref限幅值
; b sci_return
*****************************************
***********发送判断**********************
*****************************************
notzero:
lacl option
sub #31h
bcnd notone,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd uf_tx,ntc ;否则返回
b sci_return
uf_tx:
lar ar1,#UF_E ;读取UF_E空间数据
lar ar0,#UF_E+2048
;ldp #DP_PF1 ;1):在接收中断中使能发送
;splk #03H,SCICTL2 ; 且发送第一个数据
;mar *,ar1
;lacc *,8
;sach SCITXBUF
;b sci_return
b SCI_TX_ISR ;2):初始化时使能发送中断,数据发送全在中断中完成
notone:
lacl option
sub #32h
bcnd nottwo,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd isqq_tx,ntc ;否则返回
b sci_return
isqq_tx:
lar ar1,#ISQQ_E ;读取UF_E空间数据
lar ar0,#ISQQ_E+2048
b SCI_TX_ISR
nottwo:
lacl option
sub #33h
bcnd notthree,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd usq_tx,ntc ;否则返回
b sci_return
usq_tx:
lar ar1,#USQ_E ;读取USQ_E空间数据
lar ar0,#USQ_E+2048
b SCI_TX_ISR
notthree:
lacl option
sub #34h
bcnd notfour,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd usd_tx,ntc ;否则返回
b sci_return
usd_tx:
lar ar1,#USD_E ;读取USD_E空间数据
lar ar0,#USD_E+2048
b SCI_TX_ISR
notfour:
lacl option
sub #35h
bcnd notfive,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd usa_tx,ntc ;否则返回
b sci_return
usa_tx:
lar ar1,#USa_E ;读取ISQQ_E空间数据
lar ar0,#USa_E+2048
b SCI_TX_ISR
notfive:
lacl option
sub #36h
bcnd notsix,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd usb_tx,ntc ;否则返回
b sci_return
usb_tx:
lar ar1,#USb_E ;读取USb_E空间数据
lar ar0,#USb_E+2048
b SCI_TX_ISR
notsix:
lacl option
sub #37h
bcnd notseven,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd isa_tx,ntc ;否则返回
b sci_return
isa_tx:
lar ar1,#ISA_E ;读取ISA_E空间数据
lar ar0,#ISA_E+2048
b SCI_TX_ISR
notseven:
lacl option
sub #38h
bcnd noteight,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd isb_tx,ntc ;否则返回
b sci_return
isb_tx:
lar ar1,#ISB_E ;读取ISB_E空间数据
lar ar0,#ISB_E+2048
b SCI_TX_ISR
noteight:
lacl option
sub #39h
bcnd notnine,neq
lacl rx_bit_flag ;第一次接收完发送地址字符,则
xor #10h ;rx_bit_flag bit4标志位置1
sacl rx_bit_flag
bit rx_bit_flag,BIT4 ;bit4=0,表示第2次发送
bcnd isd_tx,ntc ;否则返回
b s
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -