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

📄 ql100.asm

📁 这是一个无线发送
💻 ASM
📖 第 1 页 / 共 2 页
字号:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title></title></head><body><pre id="content" style="width:90%;white-space:normal;word-wrap:break-word;word-break:keep-all;">  LIST P=12F629,R=DEC
;-----------------------
IND EQU 00H
RTCC EQU 01H
PC EQU 02H
STATUS EQU 03H
FSR EQU 04H
GPIO EQU 05H
PCLATH EQU 0AH
INTCON EQU 0BH
CMCON  EQU 19H

OPTION_REG EQU 1H
TRISIO EQU 5H
OSCCAL EQU 10H
EEDATA EQU 1AH
EEADR  EQU 1BH
EECON1 EQU 1CH
RD     EQU 0    
WR     EQU 1
WREN   EQU 2
WRERR  EQU 3
EECON2 EQU 1DH
ANSEL  EQU 1FH
;----------------------
GIE    EQU     7
PEIE   EQU     6
T0IE   EQU     5
INTE   EQU     4
RBIE   EQU     3
T0IF   EQU     2
INTF   EQU     1
RBIF   EQU     0
;----------------------
FLAGS EQU 21H
ADDRESS EQU 22H
;----------------------
CNT0 EQU 23H
CNT1 EQU 24H
CNT2 EQU 25H
CNT3 EQU 26H
CNT_HI EQU 27H
CNT_LW EQU 28H
;----------------------
CSR0 EQU 29H
CSR1 EQU 2AH
CSR2 EQU 2BH
CSR3 EQU 2CH
SOCK EQU 2DH
DATA1 EQU 2EH
DATA2 EQU 2FH
DATA3 EQU 30H
DATA4 EQU 31H
;----------------------
DATA5     EQU 32H
TMP1      EQU 34H
RDATA1    EQU 35H
RDATA2    EQU 36H
RDATA3    EQU 37H
DATA7     EQU 38H
DATA8     EQU 39H
DATA9     EQU 3AH
SPKDATA1   EQU 3CH
SPKDATA2   EQU 3DH
SPKDATA3   EQU 3EH
W_TEMP     EQU 3FH
STATUS_TEMP EQU 40H
DATA10      EQU 41H
BIAOZI      EQU 42H
CNT4        EQU 43H
;----------------------GPIO
SKY     EQU 0H
K0      EQU 1H
SPK     EQU 2H
RFIN    EQU 3H
SDATA   EQU 4H
ACC     EQU 5H
;---------------------BIAOZI
LOCK      EQU 0
POSS      EQU 1
PWWER     EQU 2
AUTO      EQU 3
;----------------------FLAGS
BITIN     EQU 0
STACC     EQU 1
SETACC    EQU 2
SPKK      EQU 3
SPKAL1    EQU 4
SPKAL2    EQU 5
J5MS      EQU 6
SPKTWO    EQU 7
;---------------------STATUS
C         EQU 0
DC        EQU 1
Z         EQU 2
PD        EQU 3
TO        EQU 4
RP0       EQU 5
RP1       EQU 6
;--------------------
RMK_A     EQU 08H
RMK_B     EQU 04H
RMK_C     EQU 02H
RMK_D     EQU 01H
;--------------------
     ORG 0000H
     GOTO MAIN
     ORG 0004H
TMR0SERV
     MOVWF W_TEMP
     SWAPF STATUS,W
     MOVWF STATUS_TEMP
     CLRWDT
     BTFSC FLAGS,SPKAL2
     GOTO TMR0_2
     MOVLW 04
     XORWF GPIO,1
     DECFSZ SPKDATA2,1
     GOTO TMR0_2
     MOVLW 10
     MOVWF SPKDATA2
     BTFSC FLAGS,SPKAL1
     GOTO TMR0_1
     INCF SPKDATA1,1
     DECFSZ SPKDATA3,1
     GOTO TMR0_2
     MOVLW 45
     MOVWF SPKDATA3
     BSF FLAGS,SPKAL1
     GOTO TMR0_2
TMR0_1
     DECF SPKDATA1,1
     DECFSZ SPKDATA3,1
     GOTO TMR0_2
     BSF FLAGS,SPKAL2
TMR0_2
     MOVFW SPKDATA1
     MOVWF RTCC
TMP0_2
     BCF INTCON,T0IF
     SWAPF STATUS_TEMP,W
     MOVWF STATUS
     SWAPF W_TEMP,F
     SWAPF W_TEMP,W
     RETFIE
;---------------------      
EEWRITE
     CLRWDT
     BSF STATUS,RP0
     MOVFW ADDRESS
     MOVWF EEADR
     MOVFW TMP1
     MOVWF EEDATA
     BSF EECON1,WREN
     MOVLW 55H
     MOVWF EECON2
     MOVLW 0AAH
     MOVWF EECON2
     BSF EECON1,WR
     NOP
EEWRITE_1
     CLRWDT
     BTFSC EECON1,WR
     GOTO EEWRITE_1
     BSF EECON1,RD
     NOP
     MOVFW TMP1
     XORWF EEDATA,0
     BTFSS STATUS,Z
     GOTO EEWRITE   
     BCF EECON1,WREN
     BCF STATUS,RP0
     RETLW 00H
EEREAD
     CLRWDT
     BSF STATUS,RP0
     MOVFW ADDRESS
     MOVWF EEADR
     BSF EECON1,RD
     NOP
     MOVF EEDATA,W
     MOVWF TMP1
     BCF STATUS,RP0
     RETLW 00H
;--------------------------  
WRITEBIAOZI:
     CLRF ADDRESS
     MOVFW BIAOZI
     MOVWF TMP1
     CALL EEWRITE
     RETLW 00H
;--------------------
MAIN       
     CALL SET_OPTION
     CLRF GPIO
     MOVLW 07H
     MOVWF CMCON
     
     BSF STATUS,RP0
     MOVLW 3AH
     MOVWF TRISIO
     CLRF EECON1
     CLRF ANSEL
     BCF STATUS,RP0

     CLRF GPIO
     CLRF FLAGS
     CLRF BIAOZI
     CALL DELAY0.8S

     CLRF ADDRESS
     CALL EEREAD
     MOVFW TMP1
     XORLW 0FFH
     BNZ MAIN_1
     MOVLW 0CH
     MOVWF TMP1
MAIN_1
     MOVFW TMP1
     MOVWF BIAOZI
     CALL WRITEBIAOZI
     BTFSS BIAOZI,LOCK
     BSF GPIO,SKY

     MOVLW 03H
     MOVWF ADDRESS
     CALL EEREAD
     MOVLW 0FFH
     XORWF TMP1,0
     BTFSC STATUS,Z
     CLRF TMP1
     MOVFW TMP1
     MOVWF SOCK   

   
     MOVLW 05       ;05,06 romt use
     MOVWF ADDRESS
     CALL EEREAD    
     MOVFW TMP1
     MOVWF RDATA1

     INCF ADDRESS,1
     CALL EEREAD
     MOVFW TMP1
     MOVWF RDATA2
     
     INCF ADDRESS,1
     CALL EEREAD
     MOVFW TMP1
     MOVWF RDATA3
     
     MOVLW 0AH
     MOVWF ADDRESS
     CALL EEREAD
     MOVLW 0FFH
     XORWF TMP1,0
     BZ MAIN_2_B   
     MOVF TMP1,0
     BZ MAIN_2_B
     GOTO M_LOOP

MAIN_2_B
     MOVLW RMK_D
     MOVWF TMP1
     CALL EEWRITE

     INCF ADDRESS,1
     MOVLW RMK_C
     MOVWF TMP1
     CALL EEWRITE

     INCF ADDRESS,1
     MOVLW RMK_B
     MOVWF TMP1
     CALL EEWRITE

     INCF ADDRESS,1
     MOVLW RMK_A
     MOVWF TMP1
     CALL EEWRITE
     GOTO M_LOOP
;--------------------
M_SEARCH
     CLRWDT
     MOVFW RDATA1
     XORWF CSR0,0
     BNZ M_SEARCHEXT
     
     MOVFW RDATA2
     XORWF CSR1,0
     BNZ M_SEARCHEXT
      
     MOVFW RDATA3
     XORWF CSR2,0
     BNZ M_SEARCHEXT
     CLRC
     RETLW 0
M_SEARCHEXT
     SETC
     RETLW 1
;-----------------------
DELAY1MS
     MOVLW 250
     MOVWF DATA1
DELAY1MS_1
     CLRWDT
     DECFSZ DATA1,1
     GOTO DELAY1MS_1
     RETLW 0
;---------------------
DELAY                  ;DELAY0.2S
     MOVLW 200
     MOVWF DATA2
LP1
     CALL DELAY1MS
     DECFSZ DATA2,1
     GOTO LP1
     RETLW 0
;----------------------
DELAY0.8S
     MOVLW 4
     MOVWF DATA10
DELAY0.8S_1
     CALL DELAY
     DECFSZ DATA10,1
     GOTO DELAY0.8S_1
     RETLW 0
;---------------------
SPK0.1MS
     CLRWDT
     MOVLW 162     ;1.8KHZ--3.5K(0.2s)
     MOVWF SPKDATA1
     MOVLW 10
     MOVWF SPKDATA2
     MOVLW 45
     MOVWF SPKDATA3
  
     BSF STATUS,RP0
     MOVLW 10000000B
     MOVWF OPTION_REG
     BCF STATUS,RP0

     BCF FLAGS,SPKAL1 
     BCF FLAGS,SPKAL2
     BCF INTCON,T0IF
     BSF INTCON,T0IE
     BSF INTCON,GIE
     

     MOVFW SPKDATA1
     MOVWF RTCC
SPKAUDIO_1
     CLRWDT
     BTFSC FLAGS,SPKAL2 
     GOTO SPKAUDIO_2
     BTFSS FLAGS,SPKK
     GOTO SPKAUDIO_1
     CALL RECEIVE
     BC SPKAUDIO_1
     CALL M_SEARCH
     BC SPKAUDIO_1
      
     MOVLW RMK_B
     XORWF CSR3,0
     BNZ SPKAUDIO_1
     CALL SET_OPTION
     GOTO RMT_SS1
SPKAUDIO_2
     CALL SET_OPTION
     GOTO RMT_SS2
;----------------------
SET_OPTION
     CLRF RTCC
     CLRF INTCON
     BSF STATUS,RP0
     MOVLW 87H
     MOVWF OPTION_REG
     BCF STATUS,RP0
     RETLW 0
;----------------------
TST_RTCC
     CLRWDT
     BSF STATUS,RP0
     MOVLW 3AH
     MOVWF TRISIO
     BCF STATUS,RP0

     BTFSS RTCC,7
     RETLW 0
     
     BCF RTCC,7
     INCF CNT_LW,F
     BTFSC STATUS,Z
     INCF CNT_HI,F
TST_RTCCEXT
     RETLW 0
;--------------------
SET_RTCC
     CLRF CNT_LW
     CLRF CNT_HI
     CLRF RTCC
     CLRWDT
     RETLW 0
;--------------------
DRMT0.5S
     MOVFW CSR3
     MOVWF DATA5
     MOVLW 18
     MOVWF DATA3
     CALL SET_RTCC
DRMT0.5S_1
     CALL TST_RTCC
     BTFSC CNT_LW,3  ;0.2S
     GOTO DRMT0.5S_2
     CALL RECEIVE
     BC DRMT0.5S_1
     CALL M_SEARCH
     BC DRMT0.5S_1
     
     MOVF CSR3,0
     XORWF DATA5,0
     BNZ DRMT0.5S_EXT
     CLRF CNT_LW
     DECFSZ DATA3,1
     GOTO DRMT0.5S_1
DRMT0.5S_2
     BCF STATUS,C
     RETLW 0
DRMT0.5S_EXT
     BSF STATUS,C
     RETLW 1
;---------------------
M_LOOP
     CALL TST_RTCC 
     BTFSC CNT_HI,1   ;15S
     BCF FLAGS,SPKTWO
     CALL RECEIVE
     BC M_LOOP1
     CALL M_SEARCH
     BC M_LOOP1
;-----------------------
YREM     
     CLRWDT
     MOVF CSR3,0
     XORLW RMK_A
     BZ KEY1

     MOVF CSR3,0
     XORLW RMK_B
     BZ KEY2

     MOVF CSR3,0
     XORLW RMK_C
     BZ KEY3

     MOVF CSR3,0
     XORLW RMK_D
     BZ KEY4
     GOTO M_LOOP1
;-------------------------
KEY1
     CALL DRMT0.5S
     BC M_LOOP  
     
     MOVF DATA3,1
     BZ KEY1C
     MOVLW 10
     SUBWF DATA3,0
     BNC M_LOOP    
KEY1_1
     BTFSC GPIO,ACC ;ACC ON WORING
     GOTO M_LOOP   
 
     CALL SPK0.1MS   
     BCF GPIO,SKY
     BSF BIAOZI,LOCK
     BCF FLAGS,SPKTWO
     BTFSC BIAOZI,PWWER
     BSF BIAOZI,POSS
     NOP
     CALL WRITEBIAOZI 
     GOTO M_LOOP
KEY1C
     BTFSC BIAOZI,LOCK
     GOTO M_LOOP
     BTFSS BIAOZI,PWWER
     GOTO M_LOOP
     BCF STATUS,C
     CALL DPOSS
     BC M_LOOP
KEY1C_3   
     CALL SPK0.1MS
     BCF BIAOZI,POSS
     BSF GPIO,SKY
     CALL WRITEBIAOZI
     CALL DELAY0.8S   
     GOTO M_LOOP
;--------------------------
KEY2
     BTFSS BIAOZI,LOCK  ;ACC ON WORING
     GOTO KEY2_1  
KEY2_I
     CALL SPK0.1MS    
     CALL DELAY
     CALL SPK0.1MS
     
     BCF BIAOZI,LOCK
     
     CALL WRITEBIAOZI
     BTFSS BIAOZI,POSS
     BSF GPIO,SKY
     GOTO M_LOOP
KEY2_1 
     BTFSS GPIO,ACC
     GOTO KEY2_I

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -