日志档案

发表于 2007-1-13 19:48:00

10

标签: 基于51的NRF2401的汇编程序  

基于51的NRF2401的汇编程序

欢迎大家光临lefish007的博客:

         做了一个暑假的东西!(暑假的时候做的一个基于HT46的无线点菜系统)很希望可以和大家分享,这个程序是拿到2401编写的测试程序,希望可以作为大家的参考!由于水平有限和只是用来自己测试的,程序的结构有点乱,希望大家原谅和大虾的指点。

      本人也是得到网上许多的好心人和大虾的帮助,我也希望我能朝这个方向做,给予那些需要帮助的人一点启示和参考!

org 0000
ljmp main
org 0013h
jmp rx_byte
 main:
  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
  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 60h,#0ddh
  mov 61h,#0ddh
  mov 62h,#10000011b;前六位为地址位数,后为CRC使能
  mov 63h,#01101110b
  mov 64h,#02h;以上用于2401初使化
 
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

也有C语言的程序,有需要的可以在博客里留言!同时也希望大家指正错误!

系统分类: 单片机   |   用户分类: 基于51单片机的2401汇编程序   |   来源: 原创   |   【推荐给朋友】

    阅读(1973)    回复(60)  

投一票您将和博主都有获奖机会!

  • cocappjj

    2007-1-15 11:19:14

    赫赫,鼓励一下,真是不错。

  • laq

    2007-6-3 15:55:26

    你好,我需要C语言写的NRF2401程序,发到我邮箱, 谢谢!!!

    我邮箱laq666@gmail.com

  • 孤狼

    2007-7-16 8:43:15

    我想要一份,可以给我发一份吗?

    邮箱:chenglingyun1985@sina.com

  • JINGJING

    2007-6-22 22:57:15

    我急需一份c的,能给我发一份吗?

    万分感激!!!

  • JINGJING

    2007-6-22 22:57:58

    我的邮箱:

    yanduhantan1001@yahoo.com.cn

  • 刘建华

    2007-6-22 21:50:46

    你好,能发一份C语言的给我吗?多谢!!

    huazai-2008@126.com

  • 机器人开发

    2007-1-17 20:11:19

    你好,我需要C语言写的NRF2401程序,发到我邮箱, 谢谢!!!

    我邮箱fujitsunokia@163.com

  • sicksnail1

    2007-1-25 15:10:57

    请问你试验成功的传输速率和传输距离有多大?

    另外,可以的话发给我一份c的程序,谢谢!

  • sicksnail1

    2007-1-25 15:11:30

    我的邮箱sunonskyrh@163.com

  • luoguo

    2007-5-19 11:20:16

    你好我也想要个c的程序,能给各吗?

    cseasea@163.com

  • lefish007

    2007-1-28 14:49:11

    跟电源的设计和抗干扰有很大的关系,我们只做到了30M

  • sun

    2007-6-20 17:55:31

    C语言的nRF2401程序能发给我一份吗

    邮箱地址suning_bd@163.com      万分感谢!

  • feeling

    2007-6-18 8:56:10

          我的毕业设计要求做出DSP TMSC5402 与射频芯片NRF2401的通信程序。。。。。。

         你如果有的话,发一个最好是C语言的到我邮箱。

        谢谢!

    邮箱:lxs_333@126.com

  • feeling

    2007-6-18 8:58:57

    如果没有的话,希望能发一个参考下

    谢谢

  • programshao

    2007-1-29 21:45:11

    你好,我调c的程序2周了,还是没有通,望不吝赐教,不胜感激。E_mail:shaomingzhen.sdu@163.com

  • programshao

    2007-1-29 22:13:31

    你用多大的晶振?

  • lin

    2007-3-17 21:29:06

    你好,请帮忙把nrf2401的c程序发到我邮箱吧,有急用啊,先谢啦    ^_^

    要不加我qq也好378913685

     

  • programshao

    2007-2-1 16:10:12

    我用你的汇编程序调试了一下,不通,??????????

  • zhiyuankeji

    2007-3-21 13:57:35

    我要一份C的,可以吗? zls2764@163.com

  • EVIL

    2007-4-27 14:38:53

    你好, 我在做基于无线USB的数据采集系统,其中用到nRF2401和AT89C51,我想问下 程序应该是怎样的,谢谢, 我的邮箱是ukatsuya@163.com

  • 忘记

    2007-4-6 12:50:11

    能给我一份c语言的程序,谢谢。

    nooyes@126.com

  • s

    2007-4-18 18:06:40

    Tms320f2812TI公司最新推出的基于控制领域的功能强大的DSP。本开发板是基于Tms320f2812的学习开发平台。为了使大家充分掌握2812的强大功能,以及与DSP开发相关的各类外部接口器件的使用,本开发板安排了多达24项试验。有意者请与我联系!

    v      联系电话:13439227142

    v      电子邮箱:yuanbaogongsi@yahoo.com.cn

     

  • RAN

    2007-4-17 18:16:40

    RYL_522@163.com 谢谢!!!

  • RAN

    2007-4-17 18:17:20

    你好,能发一份C语言的给我吗?

    RYL_522@163.com 谢谢!!!

  • freud

    2007-4-17 11:17:55

    你好,能发一份C语言的给我吗?

    xfreud@gmail.com 谢谢

  • gh

    2007-3-31 19:01:45

    你好,我也想要一份c语言的程序,谢谢。

    ghdong88@163.com

  • nostopper

    2007-2-28 23:56:09

    有基于C语言的nRF2401程序吗?请发一份至nostopper@sina.com,谢谢!

  • jf_lee

    2007-3-11 11:58:34

    c的调了很久,正希望看看有可能错在哪里呢,谢谢!jf_lee@126.com

  • river

    2007-3-8 0:33:15

    你好,

    我想要一份c语言的程序,谢谢了。

    riverabcde@163.com

  • cseaman

    2007-8-13 17:50:17

    你好..我最近也在做无线 ,,也想用2401.

     

    你的c程序能给我借鉴下吗?

    十分感谢!

    我的信箱:cseasea@163.com

  • 朱胜涛

    2007-8-2 16:41:45

    我也想要一份C的,能给我发一份吗?谢谢

    邮箱:lifestar123@163.com

  • joe

    2007-8-4 13:33:39

    可以给我发一份C语言的吗?

    邮箱:joe_zhao@sina.com

  • xzjif

    2007-8-22 17:06:13

    你好,我调了一个星期了就是收不到!郁闷死了,能把你的C程序发给我参考一下吗?谢谢!

    邮箱:xzjif@163.com

  • tamuyu

    2007-9-7 10:25:48

    麻烦您发一份51程序到邮箱tamuyu@gmail.com可以吗?

    感谢您的帮助!

  • 西山会议

    2007-9-19 9:51:40

    不错,不错, 我现在做msp430的nrf2401程序,废了老大劲,还是不通,不知是哪里出了问题,可以借鉴一下你的nrf2401——C程序吗?

     

    邮箱:zhang123lan345@126.com

    QQ:413408269  

  • 陈好

    2007-9-23 11:11:43

    请发一份C语言到 j9j8j7@163.com

     

  • QQ:154180615

    2007-10-15 15:07:54

    你这段程式能动吗,?????

  • 你好啊

    2007-10-19 11:58:27

    给我也发一份哈!c 语言的程序哈

    我的邮箱是jennic@yahoo.cn谢谢了啊

    我的qq是278214084

  • s

    2007-10-24 9:16:49

    给我也发一份c 语言的程序

    我的邮箱是s13062564975@126.com谢谢了啊

  • 吴晓磊

    2007-11-11 10:46:37

    你好 我十分需要一个c语言的程序 谢谢你了 wu9961@yahoo.com.cn

  • 知音

    2007-12-21 10:50:24

    我也需要一份C语言的程序。zhangzhiyin88@126.com

    谢谢!

  • 小菜

    2007-12-29 19:26:07

    谢谢,帮助很大

  • vic

    2008-1-11 20:57:42

    我也需要一份C语言的程序,先谢谢啦~

    vicjiang1113@hotmail.com

  • 谭涛

    2008-1-12 15:33:36

    我也需要一份C语言的程序,先谢谢啦~

    ilovett2020@sina.com

     

  • GAOMING

    2008-2-22 15:25:06

    你好我需要一份C的源程序,能不能给我发一份,谢谢 gaoming1981@163.com

  • glppost

    2008-2-27 21:16:29

    能不能给我发个C语言的无线点菜系统的程序阿?我的邮箱是glppost@163.com.我也是用的nrf2401。谢谢阿!

  • 2008-3-14 11:26:40

    我也需要一份C语言的程序,先谢谢啦~ dongtinghuan@126.com

  • 张洪硕

    2008-3-20 19:03:22

    恩,确实不错啊!我现在想用nrf2401做一个无线视频传输的东西,渴望你的c语言程序,谢谢您了!我的邮箱是,zhang.hongshuo@163.com.(注意邮箱中间zhang和hong中间有个小点呢,呵呵)

  • 江山

    2008-4-7 12:05:17

    haphgph@163.com 我不知道c程序如何解决希望得到帮助,谢谢

  • 2008-4-13 15:25:24

    你好 我也需要一份C的源程序,现在正做无线视频传输 huangsh-147@163.com

  • km

    2008-4-15 15:35:28

    你好 我也需要一份C的源程序,km221@163.com谢谢

  • phile

    2008-4-26 13:58:35

    你好 我也需要一份C的源程序,想学习一下 谢谢

  • phile

    2008-4-26 14:02:21

    你好 我也需要一份C的源程序,想学习一下 谢谢 youxiaofei5549@sina.com

  • shenrenren

    2008-4-28 20:46:40

    你好,我也需要一份C的源程序,编程困难阶段... 十分感激。。。。。

  • shenrenren

    2008-4-28 20:48:10

    你好,我也需要一份C的源程序,编程困难阶段... 十分感激。。。。。 shenwzhong@163.com

  • 陈子明

    2008-5-8 21:56:54

    你好,我需要C语言的nRF2401的收发程序,可以发我一份吗??我的邮箱chenhmhesz@163.com

    急着要用的,麻烦你啦..

  • 陈子明

    2008-5-8 21:59:40

    你好,我需要C语言的nRF2401的收发程序,可以发我一份吗??我的邮箱chenhmhesz@163.com

    急着要用的,麻烦你啦..

  • chenyi

    2008-5-9 22:02:37

    你好 我十分需要一个c语言的程序 谢谢你了 chenyi419212441@163.com

  • chenyi

    2008-5-9 22:03:03

    你好 我十分需要一个c语言的程序 谢谢你了 chenyi419212441@163.com

  • chenyi419212441

    2008-5-9 22:03:17

    你好 我十分需要一个c语言的程序 谢谢你了 chenyi419212441@163.com