久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2123|回復: 0
收起左側(cè)

NRF24I01的單片機匯編程序

[復制鏈接]
ID:319118 發(fā)表于 2018-4-29 21:15 | 顯示全部樓層 |閱讀模式
NRF24I01的c語言匯編程序
0.jpg
實驗時收發(fā)雙方都采用相同的電路
  1. 發(fā)送方程序如下:
  2.                 org        0000H         
  3.                 AJMP        START

  4. ;延時1/4s子程序
  5. YANSHI1S:        MOV        R7,#250
  6. YANSHI1S1:        MOV        R6,#250
  7. YANSHI1S2:        NOP
  8.                 NOP
  9.                 DJNZ        R6,YANSHI1S2
  10.                 DJNZ        R7,YANSHI1S1
  11.                 RET


  12. ;將58開始的單或多字節(jié)(字節(jié)數(shù)在R3中)寫入芯片
  13. XIENB:                MOV        R0,#58H
  14.                 CLR        P1.7                ;SCN變低
  15. XIE00:                ACALL        XIE1B
  16.                 INC        R0
  17.                 DJNZ        R3,XIE00
  18.                 SETB        P1.7
  19.                 RET

  20. ;;將R0所指1單元按SPI時序?qū)懭肽K,調(diào)用該子程序前,應(yīng)將CSN線變低
  21. ;單次或多次調(diào)用完成后將CSN線變高
  22. XIE1B:                MOV        R2,#8
  23.                 MOV        A,@R0
  24. XIE1B1:                RLC        A
  25.                 MOV        P1.5,C                ;數(shù)據(jù)送上MOSI線
  26.                 SETB        P1.4                ;數(shù)據(jù)移入模塊
  27.                 CLR        P1.4
  28.                 DJNZ        R2,XIE1B1
  29.                 RET

  30. ;讀芯片狀態(tài)字        將芯片狀態(tài)字讀到5FH
  31. DUZT:                MOV        R2,#8
  32.                 SETB        P1.5
  33.                 CLR        P1.7                ;CSN變低,
  34. DUZT1:                SETB        P1.4                ;時鐘上升
  35.                 MOV        C,P1.3                ;讀入MISO線上的數(shù)據(jù)
  36.                 MOV        A,5FH
  37.                 RLC        A                ;數(shù)據(jù)移入5FH寄存器
  38.                 MOV        5FH,A
  39.                 CLR        P1.4                        
  40.                 DJNZ        R2,DUZT1
  41.                 SETB        P1.7                ;CSN變高,完成一次命令
  42.                 RET






  43. START:                MOV        P1,#0AFH        ;模塊待機
  44.                 MOV        58H,#20H        ;準備寫0寄存器
  45.                 MOV        59H,#0EH        ;上電,發(fā)射模式
  46.                 MOV        R3,#02H
  47.                 ACALL        XIENB
  48.                 MOV        58H,#21H        ;01寄存器
  49.                 MOV        59H,#03H        ;0,1通道允許自動應(yīng)答
  50.                 MOV        R3,#02H
  51.                 ACALL        XIENB
  52.                 MOV        58H,#22H        ;02
  53.                 MOV        59H,#03H
  54.                 MOV        R3,#02H
  55.                 ACALL        XIENB
  56.                 MOV        58H,#23H        ;03寄存器
  57.                 MOV        59H,#03H        ;5字節(jié)地址寬帶
  58.                 MOV        R3,#02H
  59.                 ACALL        XIENB
  60.                 MOV        58H,#24H        ;04
  61.                 MOV        59H,#14H        ;重發(fā)等待500uS,重發(fā)4次,1A則重發(fā)10次,在206c處
  62.                 MOV        R3,#02H
  63.                 ACALL        XIENB
  64.                 MOV        58H,#25H        ;05寄存器
  65.                 MOV        59H,#07H        ;射頻頻率(匯編后在2076處)
  66.                 MOV        R3,#02H
  67.                 ACALL        XIENB
  68.                 MOV        58H,#26H        ;06
  69.                 MOV        59H,#27H        ;07為1M傳輸速率,0dB增益,27則為250k傳輸速率
  70.                 MOV        R3,#02H
  71.                 ACALL        XIENB
  72.                 MOV        58H,#27H        ;07
  73.                 MOV        59H,#70H        ;清模塊內(nèi)中斷
  74.                 MOV        R3,#02H
  75.                 ACALL        XIENB
  76.                 MOV        58H,#2AH        ;0A寄存器(通道0)
  77.                 MOV        59H,#02H        ;配置地址
  78.                 MOV        5AH,#3AH
  79.                 MOV        5BH,#39H
  80.                 MOV        5CH,#38H
  81.                 MOV        5DH,#37H
  82.                 MOV        R3,#06H
  83.                 ACALL        XIENB
  84.                 MOV        58H,#30H        ;10寄存器
  85.                 MOV        R3,#06H                ;發(fā)送地址
  86.                 ACALL        XIENB
  87.                 MOV        58H,#2BH        ;0B寄存器(通道1)
  88.                 MOV        59H,#01H        ;本機地址
  89.                 MOV        R3,#06H
  90.                 ACALL        XIENB
  91.                 MOV        58H,#31H        ;11寄存器
  92.                 MOV        59H,#10H        ;0通道有效數(shù)據(jù)寬帶16字節(jié)
  93.                 MOV        R3,#02H
  94.                 ACALL        XIENB
  95.                 MOV        58H,#32H        ;12寄存器
  96.                 MOV        59H,#10H        ;1通道有效數(shù)據(jù)寬度16字節(jié)
  97.                 MOV        R3,#02H
  98.                 ACALL        XIENB
  99. XIEFS:                MOV        58H,#0A0H        ;寫發(fā)送數(shù)據(jù)到芯片
  100.                 MOV        R0,#58H
  101.                 MOV        R3,#10H
  102.                 CLR        P1.7
  103.                 ACALL        XIE1B
  104.                 MOV        R0,#70H
  105. XIEXUN:                ACALL        XIE1B
  106.                 INC        R0
  107.                 DJNZ        R3,XIEXUN
  108.                 SETB        P1.7         
  109.                 SETB        P1.6                ;啟動發(fā)射
  110.                 MOV        R7,#5
  111.                 DJNZ        R7,$
  112.                 CLR        P1.6
  113.                 JB        P3.2,$
  114.                 cpl        p1.0
  115.                 ACALL        DUZT                ;讀狀態(tài)寄存器
  116.                 MOV        58H,#27H        ;07
  117.                 MOV        59H,#70H        ;清中斷
  118.                 MOV        R3,#02H
  119.                 ACALL        XIENB
  120.                 MOV        58H,#0E1H        ;清模塊發(fā)送緩沖區(qū)
  121.                 MOV        R3,#01H         
  122.                 ACALL        XIENB
  123.                 ACALL        YANSHI1S
  124.                 SJMP        XIEFS
  125.                  
  126.          
  127. end

  128. 接收端程序:

  129.                 org        0000H         
  130.                 AJMP        START

  131.                 org        0003H
  132.                 AJMP        EXINT0

  133. ;延時1/4s子程序
  134. YANSHI1S:        MOV        R7,#250
  135. YANSHI1S1:        MOV        R6,#250
  136. YANSHI1S2:        NOP
  137.                 NOP
  138.                 DJNZ        R6,YANSHI1S2
  139.                 DJNZ        R7,YANSHI1S1
  140.                 RET


  141. ;將58開始的單或多字節(jié)(字節(jié)數(shù)在R3中)寫入芯片
  142. XIENB:                MOV        R0,#58H
  143.                 CLR        P1.7                ;SCN變低
  144. XIE00:                ACALL        XIE1B
  145.                 INC        R0
  146.                 DJNZ        R3,XIE00
  147.                 SETB        P1.7
  148.                 RET

  149. ;;將R0所指1單元按SPI時序?qū)懭肽K,調(diào)用該子程序前,應(yīng)將CSN線變低
  150. ;單次或多次調(diào)用完成后將CSN線變高
  151. XIE1B:                MOV        R2,#8
  152.                 MOV        A,@R0
  153. XIE1B1:                RLC        A
  154.                 MOV        P1.5,C                ;數(shù)據(jù)送上MOSI線
  155.                 SETB        P1.4                ;數(shù)據(jù)移入模塊
  156.                 CLR        P1.4
  157.                 DJNZ        R2,XIE1B1
  158.                 RET

  159. ;按SPI時序讀模塊一字節(jié)入單片機R0所指單元,調(diào)用該子程序前,應(yīng)將CSN線變低
  160. ;單次或多次調(diào)用完成后將CSN線變高
  161. DU1B:                MOV        R2,#8
  162. DU1B1:                SETB        P1.4
  163.                 MOV        C,P1.3
  164.                 RLC        A
  165.                 CLR        P1.4
  166.                 DJNZ        R2,DU1B1
  167.                 MOV        @R0,A
  168.                 RET

  169. ;按SPI時序讀模塊接收緩沖區(qū)數(shù)據(jù)入單片機R0所指單元,字節(jié)數(shù)在R3中
  170. DUNB:                PUSH        00H
  171.                 MOV        58H,#61H        ;寫一字節(jié)命令
  172.                 MOV        R0,#58H
  173.                 CLR        P1.7
  174.                 ACALL        XIE1B
  175.                 POP        00H                ;R0指向接收緩沖區(qū)首地址
  176. DUXUN:                ACALL        DU1B
  177.                 INC        R0
  178.                 DJNZ        R3,DUXUN
  179.                 SETB        P1.7
  180.                 RET         

  181. ;讀芯片狀態(tài)字        將芯片狀態(tài)字讀到5FH
  182. DUZT:                MOV        R2,#8
  183.                 SETB        P1.5                ;輸入芯片1
  184.                 CLR        P1.7                ;CSN變低,
  185. DUZT1:                SETB        P1.4                ;時鐘上升
  186.                 MOV        C,P1.3                ;讀入MISO線上的數(shù)據(jù)
  187.                 MOV        A,5FH
  188.                 RLC        A                ;數(shù)據(jù)移入5FH寄存器
  189.                 MOV        5FH,A
  190.                 CLR        P1.4                        
  191.                 DJNZ        R2,DUZT1
  192.                 SETB        P1.7                ;CSN變高,完成一次命令
  193.                 RET






  194. START:                MOV        P1,#0AFH        ;模塊待機
  195.                 SETB        0A8H                ;允許外部中斷0
  196.                 CLR        88H                ;電平觸發(fā)
  197.                 SETB        0B8H                ;高優(yōu)先級
  198.                 SETB         0AFH                ;CPU開中斷

  199.                 MOV        58H,#20H        ;準備寫0寄存器
  200.                 MOV        59H,#0FH        ;上電,接收模式(發(fā)射時,設(shè)置為0EH)
  201.                 MOV        R3,#02H
  202.                 ACALL        XIENB
  203.                 MOV        58H,#21H        ;01寄存器
  204.                 MOV        59H,#03H        ;0,1通道允許自動應(yīng)答
  205.                 MOV        R3,#02H
  206.                 ACALL        XIENB
  207.                 MOV        58H,#22H        ;02
  208.                 MOV        59H,#03H        ;允許0,1通道接收
  209.                 MOV        R3,#02H
  210.                 ACALL        XIENB
  211.                 MOV        58H,#23H        ;03寄存器
  212.                 MOV        59H,#03H        ;5字節(jié)地址寬帶
  213.                 MOV        R3,#02H
  214.                 ACALL        XIENB
  215.                 MOV        58H,#24H        ;04
  216.                 MOV        59H,#14H        ;重發(fā)等待500uS,重發(fā)4次
  217.                 MOV        R3,#02H
  218.                 ACALL        XIENB
  219.                 MOV        58H,#25H        ;05寄存器
  220.                 MOV        59H,#07H        ;射頻頻率
  221.                 MOV        R3,#02H
  222.                 ACALL        XIENB
  223.                 MOV        58H,#26H        ;06
  224.                 MOV        59H,#27H        ;設(shè)置為07為1M傳輸速率,0dB增益(若為27,則是250kpbs,0dB)
  225.                 MOV        R3,#02H
  226.                 ACALL        XIENB
  227.                 MOV        58H,#27H        ;07
  228.                 MOV        59H,#70H        ;清模塊內(nèi)中斷
  229.                 MOV        R3,#02H
  230.                 ACALL        XIENB
  231.                 MOV        58H,#2AH        ;0A寄存器(通道0)
  232.                 MOV        59H,#01H        ;配置地址(對方地址)
  233.                 MOV        5AH,#3AH
  234.                 MOV        5BH,#39H
  235.                 MOV        5CH,#38H
  236.                 MOV        5DH,#37H
  237.                 MOV        R3,#06H
  238.                 ACALL        XIENB
  239.                 MOV        58H,#30H        ;10寄存器
  240.                 MOV        R3,#06H                ;發(fā)送地址
  241.                 ACALL        XIENB
  242.                 MOV        58H,#2BH        ;0B寄存器(通道1)
  243.                 MOV        59H,#02H        ;本機地址
  244.                 MOV        R3,#06H
  245.                 ACALL        XIENB
  246.                 MOV        58H,#31H        ;11寄存器
  247.                 MOV        59H,#10H        ;0通道有效數(shù)據(jù)寬帶16字節(jié)
  248.                 MOV        R3,#02H
  249.                 ACALL        XIENB
  250.                 MOV        58H,#32H        ;12寄存器
  251.                 MOV        59H,#10H        ;1通道有效數(shù)據(jù)寬度16字節(jié)
  252.                 MOV        R3,#02H
  253.                 ACALL        XIENB
  254.                 SETB        P1.6                ;啟動接收
  255. HALT:                SJMP        HALT


  256. EXINT0:                PUSH        ACC
  257.                 PUSH        PSW
  258.                 ACALL        DUZT                ;讀狀態(tài)寄存器
  259.                 MOV        58H,#27H        ;07
  260.                 MOV        59H,#70H        ;清中斷
  261.                 MOV        R3,#02H
  262.                 ACALL        XIENB
  263.                 MOV        R0,#60H                ;讀接收數(shù)據(jù)到60H到6FH
  264.                 MOV        R3,#10H
  265.                 ACALL        DUNB
  266.                 CPL        P1.0
  267. FANHUI:                POP        PSW
  268.                 POP        ACC
  269.                 RETI
  270.          
  271.          
  272. end
復制代碼


51匯編程序帶原理圖.rar

39.98 KB, 下載次數(shù): 5, 下載積分: 黑幣 -5

NRF24I01

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a久久久久久 | 国产乱人伦| 精品国产乱码久久久久久久久 | 久久高清精品 | 99r在线| 久久精品视频在线观看 | 亚欧精品| 亚洲性人人天天夜夜摸 | www久久久| 亚洲午夜av | 亚洲午夜精品在线观看 | 日韩免费视频 | 日本久久久久久久久 | 欧美日韩成人在线 | 99久久国产综合精品麻豆 | 国产精品影视在线观看 | 日韩伦理一区二区三区 | 欧美日韩亚洲一区 | 国产精品久久久久久久久久东京 | 东方伊人免费在线观看 | 国产精品久久国产精品久久 | 成人国产精品视频 | 草久视频| 99久久精品视频免费 | a中文在线视频 | 99久久婷婷国产综合精品电影 | 男人的天堂久久 | 国产特级毛片aaaaaa | 手机三级电影 | 国产视频中文字幕 | 久久精品国产一区二区三区不卡 | 久久国产精品一区二区三区 | 亚洲日日夜夜 | 久久蜜桃av | 在线免费观看毛片 | 亚洲免费人成在线视频观看 | 欧美日韩视频在线播放 | 9久久精品 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 手机在线一区二区三区 | 国产精品无码专区在线观看 |