⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rf_sub.s43

📁 一个基于MSP430F135单片机的热量计量表的C语言原码
💻 S43
📖 第 1 页 / 共 2 页
字号:
#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 + -