📄 rf_sub.s43
字号:
#include "msp430x41x.h"
;******************************************************************************
;;2004.2.17测试射频卡程序,此程序可进行正常操作
;******************************************************************************
;;P1.1--捕获引脚,P1.3--电源控制引脚,P1.0--write引脚, P1.2-pullup
NAME RF_sub
PUBLIC RF_card_initial
PUBLIC RF_read
; PUBLIC RF_configurate_block_write
PUBLIC RF_standard_write
PUBLIC RF_protect_write
PUBLIC RF_aor_mode
EXTERN counter;
EXTERN wait_half_counter;
EXTERN rf_flag_byte;
EXTERN aor_address_byte;
EXTERN rf_counter;
EXTERN address_R4;
EXTERN com_data_R5;
EXTERN com_data_R6;
EXTERN com_data_R7;
EXTERN com_data_R8;
EXTERN bit_counter_R7;
EXTERN rf_capture_data;
EXTERN is_RF_data_ok;
;;++++++++++++++++++++++++++标志位定义++++++++++++++++++++++++++++++++++++++++++++++++++
;;++++++++++++硬件标志位+++++++++++++++++++++++++
rf_write_bit equ BIT0
rf_read_bit equ BIT1
rf_pullup_bit equ BIT2
;;++++++++++++软件标志位++++++++++++++++++++++++
CCI_bit equ 08h
c_bit equ 01h
read_rf_first_bit equ 01h
read_rf_syn_bit equ 02h
read_rf_stop_bit equ 04h
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RSEG CODE
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;+++++++++RF卡初始化+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RF_card_initial
bis.b #rf_pullup_bit,&P1DIR
bic.b #rf_pullup_bit,&P1OUT
;;++++++++++++设置射频卡的各种电气条件+++++++++++++++++
bis.b #rf_write_bit,&P1DIR
bic.b #rf_write_bit,&P1OUT
bis.b #rf_pullup_bit,&P1OUT
mov #03000h,R5
power_wait
dec R5
jnz power_wait
;;+++++++++++++射频卡复位++++++++++++++++++++++++++++++
call #rf_reset
mov #01000h,R5
power_wait_1
dec R5
jnz power_wait_1
ret
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;++++++++++++以下是对射频卡的各种操作+++++++++++++++++++++++++++++++++++++++++++++++++++++++
;call #RF_aor_mode
;mov #747Ah,com_data_R5
;mov #0000h,com_data_R6
;mov #7000h,address_R4
;call #RF_protect_subW1
;mov #1000h,&com_data_R5
;mov #0000h,&com_data_R6
;mov #1111h,&com_data_R5
;mov #1111h,&com_data_R6
;mov #7000h,address_R4
;call #RF_protect_subW2
;call #RF_configurate_block_write
;call #RF_password_write
;call #RF_standard_write
;call #RF_stop
;call #RF_stop
;call #RF_stop
;call #RF_protect_write
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;+++++++++++++++++++外部函数调用+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
RF_read
clr com_data_R5
clr com_data_R6
bic.b #rf_write_bit,&P1OUT
call #rf_card_deal
;;++++++数据处理完成后,关闭射频卡的电气特性+++++++++
; bic.b #rf_power_bit,&P1OUT
; bic.b #rf_write_bit,&P1OUT
; bic.b #rf_read_bit,&P1SEL
; bic.b #rf_read_bit,&P1OUT
;MOV.W #0x0, R12
eint
ret
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;+++++++++++++++++设置区标准的写射频卡++++++++++++++++++++++++++++++++++++++++++++++++++++++
;RF_configurate_block_write
; ;mov #0008h,com_data_R5
; ;mov #080E8h,com_data_R6
; ;bis #10h,com_data_R6 ;;密码位置位。
; ;bis #200h,com_data_R6 ;;AOR位置位。
; ;mov #0000h,address_R4
;
; rlc address_R4
; bis.b #rf_write_bit,&P1OUT ;第一次写时的间隙。
; call #rf_snap_delay
; call #rf_snap_delay
; call #RF_op_code
; call #RF_lock_write
; call #RF_data_write
; call #RF_address_code
; call #RF_stop
; ret
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;++++++++++++++++++++数据区标准的写射频卡++++++++++++++++++++++++++++++++++++++++++++++++
RF_standard_write
;mov #01212h,com_data_R5
;mov #01313h,com_data_R6
;mov #6000h,address_R4
rlc address_R4
bis.b #rf_write_bit,&P1OUT ;第一次写时的间隙。
call #rf_snap_delay
call #rf_snap_delay
call #RF_op_code
call #RF_lock_write
call #RF_data_write
call #RF_address_code
call #RF_stop
;MOV.W #0x0, R12
ret
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;+++++++++++++++++测试带密码的写射频卡++++++++++++++++++++++++++++++++++++++++++++++++
RF_protect_write
;mov #07777h,com_data_R5 ;;密码
;mov #07777h,com_data_R6
bis.b #rf_write_bit,&P1OUT ;第一次写时的间隙。
call #rf_snap_delay
call #rf_snap_delay
call #RF_op_code
call #RF_data_write
;mov #0008h,com_data_R5 ;;数据
;mov #080E8h,com_data_R6
;mov #0000h,address_R4 ;;地址
mov com_data_R7, com_data_R5
mov com_data_R8, com_data_R6
rlc address_R4
call #RF_lock_write
call #RF_data_write
call #RF_address_code
call #RF_stop
;MOV.W #0x0, R12
ret
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;+++++++++++++++protect write+++++++++++++++++++++++++++++++++++++++++++++++++++++++
;RF_protect_subW1
; rlc address_R4
; bis.b #rf_write_bit,&P1OUT ;第一次写时的间隙。
; call #rf_snap_delay
; call #rf_snap_delay
; call #RF_op_code
; call #RF_data_write
; ret
;RF_protect_subW2
; rlc address_R4
; call #RF_lock_write
; call #RF_data_write
; call #RF_address_code
; call #RF_stop
; ret
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;++++++++++++AOR模式读射频卡+++++++++++++++++++++++++++++++++++++++++++++++
RF_aor_mode
;mov #1111h,com_data_R5
;mov #1111h,com_data_R6
;mov #7000h,address_R4
;rlc address_R4
bis.b #rf_write_bit,&P1OUT ;第一次写时的间隙。
call #rf_snap_delay
call #rf_snap_delay
call #RF_op_code
call #RF_data_write
call #RF_stop
ret
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;++++++++++++++++射频卡复位00+++++++++++++++++++++++++++++++++++++++++++++++
rf_reset
bis.b #rf_write_bit,&P1OUT
call #rf_snap_delay
call #rf_snap_delay
bic.b #rf_write_bit,&P1OUT
call #rf_write0_delay
bis.b #rf_write_bit,&P1OUT
call #rf_snap_delay
bic.b #rf_write_bit,&P1OUT
call #rf_write0_delay
bis.b #rf_write_bit,&P1OUT
call #rf_snap_delay
bic.b #rf_write_bit,&P1OUT
ret
;;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;++++++++++++++++操作码10+++++++++++++++++++++++++++++++++++++++++++++++++
RF_op_code
bic.b #rf_write_bit,&P1OUT
call #rf_write1_delay
bis.b #rf_write_bit,&P1OUT
call #rf_snap_delay
bic.b #rf_write_bit,&P1OUT
call #rf_write0_delay
bis.b #rf_write_bit,&P1OUT
call #rf_snap_delay
ret
;;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;;++++++++++++++++射频卡操作子程序--写射频卡+++++++++++++++++++++++++++++
RF_lock_write
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -