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

📄 新建 文本文档 (2).txt

📁 无线通信效果受周围环境
💻 TXT
字号:
	powe_up equ p2.0 
  	dataio equ p2.4
  	clk1   equ p2.3
  	dr1    equ p3.3
  	ce     equ p2.0
  	cs     equ p2.2
        org    0000h
	ljmp   main 
	org    0013h
	jmp    rx_byte  	
main: 	mov 50h,#08h
  	mov 51h,#08h
  	mov 52h,#00h
 	mov 53h,#0ddh
  	mov 54h,#0ddh
  	mov 55h,#0ddh
  	mov 56h,#0ddh 
  	mov 57h,#00h
  	mov 58h,#0ddh
  	mov 59h,#0ddh
  	mov 5ah,#0ddh
 	mov 5bh,#0ddh
  	mov 5ch,#83h;前六位为地址位数,后为CRC使能
  	mov 5dh,#6eh
  	mov 5fh,#02h;以上用于2401初使化
        mov r0,#50h
peizhi:
        setb cs
        mov r3,#08h
        mov a, @r0
lop:    rlc a
        jnc next3 
        setb dataio        
next3:  clr cs
        nop 
        nop
        djnz r3,lop
        inc r0
        djnz r6,peizhi
        mov r7,#0fh
        mov r0,50h
        lcall 
  	mov p2,#00h
 	setb power_up
  	clr  ce
  	lcall tx_byte
  	mov 70h,#02h 
  	mov p0,#0ffh
  
 start:    
           mov p1,#0ffh
           mov a,p1
           cjne a,#0ffh,next
    
          ljmp start
next:  
           mov p0,#0
           lcall tx_byte
           jmp start
tx_byte:mov a,@r0;装载待发送的数据或地址入2401
	mov r6,#08h 
	setb dataio 
shift_up: rlc a ;循环装载数据
	clr clk1
	mov dataio,c
	setb clk1 ;clk上升沿采样数据
	djnz r6,shift_up
	ret


rx_byte: ;接收中断服务子程序
	mov r6,#8h 
	setb dataio 
	shift_down:clr clk1 ;循环下载数据
	mov c,dataio
	setb clk1 
	rlc a 
	djnz r6,shift_down
 	mov @r0,a
 	inc r0 ;数据从50h单元开始暂存
 	jnb dr1,rx_byte 
 	mov a,50h
 	lcall chang
	reti
CHANG: 
       MOV DPTR,#TAB
       MOVC A,@A+DPTR
       RET
TAB:   DB 0C0H,0F9H,0A4H,0B0H
       DB 99H,92H,82H,83H
       DB 80H,90H,88H,83H
       DB 0C6H,0A1H,86H,8EH

        end

 

org 0000
ljmp main 
          
   main:
        call build_word
        call nrf_in          
 start:    
           setb ce
           lcall delay3ms          
           mov p1,#0fh
           mov a,p1
           cjne a,#0ffh,next    
    ljmp start
    next:  lcall delay12ms
           cjne a,#0ffh,next1
           ljmp start
    next1: 
          
           mov p0,#0
           lcall sendaddr
    djnz r4,next1
    lcall tx_byte         
           jmp start

  build_word:
  mov p1,#0ffh
  mov p2,#0ffh
  mov p3,#0ffh
  mov r1,#70h  
  mov r4,#04h
  mov 70h,#08h
  power_up equ p2.0 
  ce     equ p2.1
  cs     equ p2.2
  clk1   equ p2.3
  dataio equ p2.4
  dr1    equ p3.3
  mov 47h,#08h
  mov 48h,#08h
  mov 49h,#1ch
  mov 4ah,#08h
  mov 4bh,#08h
  mov 4ch,#00h;\2
  mov 4dh,#0d0h
  mov 4eh,#0ddh
  mov 4fh,#0ddh
  mov 50h,#0ddh 
  mov 51h,#00h;以channel 1
  mov 52h,#0ddh
  mov 53h,#0ddh
  mov 54h,#0ddh
  mov 55h,#0ddh
  mov 56h,#10000011b;前六位为地址位数,后为CRC使能
  mov 57h,#01001111b;one channel recv,in shockburst mode,250kbps
  mov 58h,#00001000b;以上用于2401初使化,发送
  ret
  
  delay5us:
  nop 
  nop
  nop
  nop
  nop
  ret

  nrf_in:
  clr power_up
  clr clk1
  clr ce
  clr cs
  clr dataio
  setb power_up
  lcall delay3ms
  setb cs 
  mov r5,#0fh
  mov r0,#4ah
peizhi:   
     mov r3,#08h
     mov a, @r0     
 lop: clr clk1 
      nop
      nop
      rlc a
      mov dataio,c    
 next3: setb clk1
        nop 
        nop
        djnz r3,lop
        inc r0
        djnz r5,peizhi
 setb dr1
        clr cs;使配置开始工作 
        lcall delay5us  
        ret

 

delay3ms:  mov r3,#10
     d1:  mov r2,#150
     d2:  djnz r2,d2
          djnz r3,d1
           ret

delay12ms: lcall delay3ms
           lcall delay3ms
           lcall delay3ms
    lcall delay3ms
           ret

tx_byte: mov a,@r1;装载待发送的数据或地址入2401
mov r6,#08h 
shift_up:clr clk1
nop
rlc a ;循环装载数据
nop
mov dataio,c
setb clk1 ;clk上升沿采样数据
nop
djnz r6,shift_up
clr ce
lcall delay3ms
ret

sendaddr: mov a,#0ddh;装载待发送的数据或地址入2401
mov r6,#08h 
shift_u: clr clk1
nop 
rlc a ;循环装载数据
mov dataio,c
setb clk1 ;clk上升沿采样数据
nop
djnz r6,shift_u
ret


⌨️ 快捷键说明

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