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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4903|回復: 6
收起左側

315M無線遙控單片機軟件解碼

[復制鏈接]
ID:72088 發表于 2021-9-3 20:54 | 顯示全部樓層 |閱讀模式
學習單片機很久了,沒做過像樣的東西,對315M和433M無線遙控做過很多維修,也安裝過一些遙控開關,更遇到過配遙控的客戶無數,研究了配遙控器的方法。

用單片機STC15W204S軟件解碼密碼,同步頭長度,做過兩個版本的線路板,第一版這里不介紹了,這里說一下第二版,看圖
1.jpg

圖上說的清楚,接收模塊供電是單獨濾波后的,防止干擾單片機,信號輸出經一集成塊放大(貼片5腳的那個),隔離單片機與接收模塊干擾,是遠距離解碼的關鍵。
上原理圖和PBC圖,省的你們樓層問我要,呵呵!!
10.png 11.png

這是焊接好的線路板,這里沒用時鐘,所以沒焊接DS3231,
2.jpg 3.jpg

顯示屏是0.91寸的OLED屏,這玩意老貴了,用一個心疼半天。
4.jpg

寫入程序,開機嘍!!!!只看屏幕,不算丑,
5.jpg

解碼一個遙控試試,4M是單片機震蕩頻率,燒寫時需手動填寫,選項里沒有4M
順便說明一下意思啊,圖片介紹更清楚:
6.jpg

多解碼幾個不同震蕩電阻試試看效果:
7.jpg 8.jpg

9.jpg

發射按鍵就是P3.3腳,這里沒法演示發射,需要視頻才能演示,我不會發鏈接
發射也是很精準的,接收設備很靈敏解碼,第一版不介紹就是因為發射不精準
設備解碼很不靈,用的發射模塊是1000米的,這3.7V供電肯定達不到這距離,
要9V-12V才能600米左右,天線和障礙物因素眾多,沒詳細實驗距離
接收普通遙控信號最遠30米,接收遠距離遙控100米成功解碼,
謝謝大家的閱讀,此板已在某條魚出售

程序只起到拋磚引玉的功能,不能全部分享給大家,有人收獲多,有人收獲不到,


下面是發射程序和顯示程序,匯編寫的大家輕噴!!!!!
  1. ;=============================按鍵發射接收到的編碼==================================
  2. TTTT:
  3.         CLR LED_F        ;發射指示燈
  4.         MOV R3,#8        ;每字節調用8次
  5. TTT_1:
  6.         mov 20h,24h
  7.         mov 21h,25h
  8.         mov 22h,26h
  9.         MOV R0,#20H
  10. TTT_2:
  11.         LCALL FASE_T0
  12. TTT_3:
  13.         CLR C
  14.         MOV A,@R0
  15.         RLC A               
  16.         MOV @R0,A
  17.         JC TTT_4        
  18.         LCALL FASE_0        ;輸出0碼               
  19.         JMP TTT_5
  20. TTT_4:
  21.         LCALL FASE_1        ;輸出1碼
  22. TTT_5:
  23.         DJNZ R3,TTT_3        ;一字節是否發完
  24.         MOV R3,#8
  25.         INC R0
  26.         CJNE R0,#23H,TTT_3        ;3字節是否發完
  27.         MOV R3,#8        ;每字節調用8次
  28.         MOV R0,#20H

  29.         JNB K1,TTT_1
  30.         CLR FAST
  31.         SETB LED_F
  32.         RET
  33. ;-------------同步碼----------------
  34. FASE_T0:
  35.         SETB FAST
  36.         LCALL DEL_FS
  37.         MOV R5,#31
  38. FASE_T1:
  39.         CLR FAST
  40.         LCALL DEL_FS
  41.         DJNZ R5,FASE_T1
  42.         RET
  43. ;--------------0碼-----------------
  44. FASE_0:        SETB FAST
  45.         LCALL DEL_FS
  46.         MOV R5,#3
  47. FASE_01:CLR FAST
  48.         LCALL DEL_FS
  49.         DJNZ R5,FASE_01
  50.         RET
  51. ;--------------1碼-----------------
  52. FASE_1:        MOV R5,#3        ;
  53. FASE_11:SETB FAST
  54.         LCALL DEL_FS
  55.         DJNZ R5,FASE_11
  56.         CLR FAST
  57.         LCALL DEL_FS
  58.         RET



  59. ;-----------數據解碼顯示-----------------20H/21H/22H/2FH------
  60. ;顯示0/F/D/1
  61. DISP_JMB:
  62.         MOV R0, #20H        ;原數據地址
  63.         MOV R1, #40H
  64.         MOV R7, #0                ;左移次數計數
  65.         MOV 2FH,#0                ;該位可以位操作(位操作地址是7FH--78H)
  66. DISP_JM:
  67.         MOV A,@R0
  68.         CLR C
  69.         RLC A        ;C→A0  A7→C  數據存入C
  70.         MOV 79H,C        ;移入2FH單元A1位
  71.         CLR C
  72.         RLC A        ;C→A0  A7→C  數據存入C
  73.         MOV 78H,C        ;移入2FH單元A0位
  74.         MOV @R0,A        ;暫存@R0
  75.         MOV A,2FH        
  76.         JNZ        DISP_0F
  77.         MOV @R1,#0          ;------00--0解碼顯示
  78.         JMP DISP_01DF
  79. DISP_0F:
  80.         CJNE A,#01,DISP_0D
  81.         MOV @R1,#15        ;--------01--F解碼顯示
  82.         JMP DISP_01DF        
  83. DISP_0D:
  84.         CJNE A,#02,DISP_0H
  85.         MOV @R1,#13        ;--------10--D解碼顯示
  86.         JMP DISP_01DF
  87. DISP_0H:
  88.         CJNE A,#03,DISP_01DF
  89.         MOV @R1,#1        ;--------11--1解碼顯示
  90.         JMP DISP_01DF
  91. DISP_01DF:
  92.         MOV 2FH,#0
  93.         INC R1
  94.         INC R7
  95.         CJNE R7,#4,DISP_JM        ;是否移動了4次,夠4次說明一字節輸出完成
  96.         MOV R7,#0        ;左移次數清零
  97.         INC R0
  98.         CJNE R0,#23H,DISP_JM;3字節是否調取完成
  99.         MOV 4CH,#36
  100.         MOV 4DH,#36
  101.         MOV 4EH,#4
  102.         MOV 4FH,#22
  103. DISP_EN:
  104.         RET

  105. ;===========================第一排顯示=====================================
  106. DISP_A:
  107.         MOV R0,#40H
  108.          MOV DIZHI_X,#00H ;列地址 1
  109.         LCALL DISP_B0
  110.         INC R0
  111.         MOV DIZHI_X,#08H ;列地址 2
  112.         LCALL DISP_B0
  113.         INC R0
  114.         MOV DIZHI_X,#10H ;列地址 3
  115.         LCALL DISP_B0
  116.         INC R0
  117.         MOV DIZHI_X,#18H ;列地址 4
  118.         LCALL DISP_B0
  119.         INC R0
  120.         MOV DIZHI_X,#20H ;列地址 5
  121.         LCALL DISP_B0
  122.         INC R0
  123.         MOV DIZHI_X,#28H ;列地址 6
  124.         LCALL DISP_B0
  125.         INC R0
  126.         MOV DIZHI_X,#30H ;列地址 7
  127.         LCALL DISP_B0
  128.         INC R0
  129.         MOV DIZHI_X,#38H ;列地址 8
  130.         LCALL DISP_B0
  131.         INC R0
  132.         MOV DIZHI_X,#40H ;列地址 9
  133.         LCALL DISP_B0
  134.         INC R0
  135.         MOV DIZHI_X,#48H ;列地址 10
  136.         LCALL DISP_B0
  137.         INC R0
  138.         MOV DIZHI_X,#50H ;列地址 11
  139.         LCALL DISP_B0
  140.         INC R0
  141.         MOV DIZHI_X,#58H ;列地址 12
  142.         LCALL DISP_B0
  143.         INC R0
  144.         MOV DIZHI_X,#60H ;列地址 13
  145.         LCALL DISP_B0
  146.         INC R0
  147.         MOV DIZHI_X,#68H ;列地址 14
  148.         LCALL DISP_B0
  149.         INC R0
  150.         MOV DIZHI_X,#70H ;列地址 15
  151.         LCALL DISP_B0
  152.         INC R0
  153.         MOV DIZHI_X,#78H ;列地址 16
  154.         LCALL DISP_B0
  155.         RET
  156. ;=========================第二排顯示程序==============================
  157. DISP_B:
  158.         MOV R0,#40H
  159.          MOV DIZHI_X,#00H ;設置列地址 1
  160.         LCALL DISP_B2
  161.         INC R0
  162.         MOV DIZHI_X,#08H ;列地址 2
  163.         LCALL DISP_B2
  164.         INC R0
  165.         MOV DIZHI_X,#10H ;列地址 3
  166.         LCALL DISP_B2
  167.         INC R0
  168.         MOV DIZHI_X,#18H ;列地址 4
  169.         LCALL DISP_B2
  170.         INC R0
  171.         MOV DIZHI_X,#20H ;列地址 5
  172.         LCALL DISP_B2
  173.         INC R0
  174.         MOV DIZHI_X,#28H ;列地址 6
  175.         LCALL DISP_B2
  176.         INC R0
  177.         MOV DIZHI_X,#30H ;列地址 7
  178.         LCALL DISP_B2
  179.         INC R0
  180.         MOV DIZHI_X,#38H ;列地址 8
  181.         LCALL DISP_B2
  182.         INC R0
  183.         MOV DIZHI_X,#40H ;列地址 9
  184.         LCALL DISP_B2
  185.         INC R0
  186.         MOV DIZHI_X,#48H ;列地址 10
  187.         LCALL DISP_B2
  188.         INC R0
  189.         MOV DIZHI_X,#50H ;列地址 11
  190.         LCALL DISP_B2        
  191.         INC R0
  192.         MOV DIZHI_X,#58H ;列地址 12
  193.         LCALL DISP_B2
  194.         INC R0
  195.         MOV DIZHI_X,#60H ;列地址 13
  196.         LCALL DISP_B2
  197.         INC R0
  198.         MOV DIZHI_X,#68H ;列地址 14
  199.         LCALL DISP_B2
  200.         INC R0
  201.         MOV DIZHI_X,#70H ;列地址 15
  202.         LCALL DISP_B2
  203.         INC R0
  204.         MOV DIZHI_X,#78H ;列地址 16
  205.         LCALL DISP_B2
  206.         RET
  207. ;--數值第一排8*16顯示子程序---------
  208. DISP_B0:
  209.           MOV DIZHI_Y,#0B0H ;設置頁起始地址(B0-B7)(第一排)
  210.           LCALL TBT_0                ;根據值取表
  211.         LCALL XIE_MLING        ;寫頁地址和列地址
  212.          MOV R6,#8
  213.         LCALL MAK_XZJ  ;
  214.         INC DIZHI_Y                ;8*16下半部分頁地址加1
  215.         LCALL XIE_MLING;寫頁地址和列地址
  216.         MOV R6,#8
  217.         LCALL MAK_XZJ
  218.         RET
  219. ;--數值第二排8*16顯示子程序---------
  220. DISP_B2:
  221.           MOV DIZHI_Y,#0B2H ;設置頁起始地址(B0-B7)(第2排)
  222.           LCALL TBT_0        ;根據值取表
  223.         LCALL XIE_MLING        ;寫頁地址和列地址
  224.          MOV R6,#8
  225.         LCALL MAK_XZJ  ;
  226.         INC DIZHI_Y                ;8*16下半部分頁地址加1
  227.         LCALL XIE_MLING;寫頁地址和列地址
  228.         MOV R6,#8
  229.         LCALL MAK_XZJ
  230.         RET
  231. ;=========================數據區清零程序======================================
  232. QLCX:
  233.         MOV A,#0        ;清零程序
  234.         MOV R6,#40H
  235.         MOV R0,#20H
  236. QQQQ:
  237.         MOV @R0,A
  238.         INC R0
  239.         DJNZ R6,QQQQ
  240.         RET
  241. ;============================初始化0.91寸OLED=================================
  242. RESET:
  243.         MOV R7,#0AEH        ;關閉顯示
  244.         LCALL COMMAND
  245.         MOV R7,#20H                ;設置模式命令
  246.         LCALL COMMAND
  247.         MOV R7,#10H                ;00水平地址,01垂直地址,10頁地址
  248.         LCALL COMMAND
  249.         MOV R7,#0B0H        ;設置頁起始地址(B0-B7)
  250.         LCALL COMMAND
  251.         MOV R7,#0C8H        ;設置COM輸出掃描方向(C8從上到下,C0反向)
  252.         LCALL COMMAND
  253.         MOV R7,#00H                ;設置低列地址
  254.         LCALL COMMAND
  255.         MOV R7,#10H                ;設置高列地址
  256.         LCALL COMMAND
  257.         MOV R7,#40H                ;設置起始行地址
  258.         LCALL COMMAND
  259.         MOV R7,#81H                ;設置對比度
  260.         LCALL COMMAND
  261.         MOV R7,#200                ;對比度值(00-255)
  262.         LCALL COMMAND
  263.         MOV R7,#0A1H        ;設置egment re-map 0 to 127
  264.         LCALL COMMAND
  265.         MOV R7,#0A6H        ;正常顯示(A6正常,A7反相顯示)
  266.         LCALL COMMAND
  267.         MOV R7,#0A8H        ;設置驅動路數
  268.         LCALL COMMAND
  269.         MOV R7,#31                ;路數(0-63)
  270.         LCALL COMMAND
  271.          MOV R7,#0A5H        ;
  272.         LCALL COMMAND
  273.         MOV R7,#0A4H        ;全部顯示開啟
  274.         LCALL COMMAND
  275.         MOV R7,#0D3H        ;設置顯示偏移
  276.         LCALL COMMAND
  277.         MOV R7,#0                ;偏移量
  278.         LCALL COMMAND
  279.         MOV R7,#0D5H        ;設置震蕩頻率
  280.         LCALL COMMAND
  281.         MOV R7,#0F0H        ;
  282.         LCALL COMMAND
  283.         MOV R7,#0D9H        ;設置充電周期
  284.         LCALL COMMAND
  285.         MOV R7,#22H                ;
  286.         LCALL COMMAND
  287.         MOV R7,#0DAH        ;引腳硬件配置
  288.         LCALL COMMAND
  289.         MOV R7,#02H                ;
  290.         LCALL COMMAND
  291.         MOV R7,#0DBH        ;設置電壓倍率
  292.         LCALL COMMAND
  293.          MOV R7,#20H                ;
  294.         LCALL COMMAND
  295.         MOV R7,#8DH                ;設置
  296.         LCALL COMMAND
  297.         MOV R7,#14H               
  298.         LCALL COMMAND
  299.         MOV R7,#0AFH        ;打開顯示
  300.         LCALL COMMAND
  301.         RET



  302. ;====================清屏程序=================================
  303. QPCX:
  304.         MOV R7,#00H                ;00水平地址,01垂直地址,10頁地址
  305.         LCALL COMMAND
  306.            MOV R6,#0
  307.            MOV R4,#252
  308.         MOV R7,#0B0H        ;設置頁起始地址(B0-B7)
  309.         LCALL COMMAND
  310.         MOV R7,#00H        ;設置低列地址
  311.            LCALL COMMAND
  312.         MOV R7,#10H        ;設置高列地址
  313.         LCALL COMMAND
  314. MAH:
  315.         MOV A,20h
  316.         MOV R7,A
  317.         LCALL COMDADA
  318.         INC R6                          
  319.         CJNE R6,#0,MAH
  320.         INC R4
  321.         CJNE R4,#0,MAH
  322.         RET        


  323. ;==================================================================
  324. ;--------寫命令程序----------
  325. COMMAND:
  326.           MOV R3,#3
  327. COMMAND_1:
  328.         DEC R3          ;######防止出現程序檢測不到I2C出現死循環
  329.         lcall start                ;啟動總線        
  330.         mov a,#78h           ;地址寫入
  331.         lcall send
  332.         lcall ack
  333.         MOV A, R3
  334.         JZ COMMAND_EN
  335.         jc         command_1


  336.         mov a,#00h
  337.         lcall send
  338.         lcall ack


  339.         mov a,R7
  340.         lcall send
  341.         lcall ack
  342.          lcall stop
  343. COMMAND_EN:
  344.         ret
  345. ;--------寫數據程序----------
  346. COMDADA:
  347.         MOV R3,#3
  348. COMDADA_1:
  349.         DEC R3                 ;######防止出現程序檢測不到I2C出現死循環
  350.         lcall start                ;啟動總線        
  351.         mov a,#78h
  352.         lcall send
  353.         lcall ack
  354.         MOV A, R3
  355.         JZ COMDADA_EN
  356.         jc         comdada_1


  357.         mov a,#40h
  358.         lcall send
  359.         lcall ack
  360.         mov a,R7
  361.         lcall send
  362.         lcall ack
  363.          lcall stop
  364. COMDADA_EN:
  365.         ret
  366. ;------寫頁、列地址命令-----------
  367. XIE_MLING:
  368.         MOV R7,DIZHI_Y        ;設置頁起始地址(B0-B7)
  369.         LCALL COMMAND
  370.         MOV A,DIZHI_X
  371.         ANL A,#0FH        ;
  372.         MOV R7,A        ;設置低列地址
  373.         LCALL COMMAND
  374.         MOV A,DIZHI_X
  375.         SWAP A
  376.         ANL A,#0FH        ;
  377.         ORL A,#10H
  378.          MOV R7,A        ;設置高列地址
  379.         LCALL COMMAND
  380.         RET
  381. ;--------寫一字節數據--------------
  382. MAK_XZJ:
  383.         CLR A
  384.         MOVC A,@A+DPTR               
  385.         MOV R7,A
  386.         LCALL COMDADA
  387.         INC DPTR                          
  388.         DJNZ R6,MAK_XZJ
  389.         RET
  390. ;============================IIC總線程序=================================
  391. ;-------總線啟動程序---------
  392. start:
  393.         setb         scl
  394.         setb         sda
  395.         nop
  396.         nop
  397.         clr         sda
  398.         nop
  399.         nop
  400.         clr         scl
  401.         ret
  402. ;-------總線停止程序---------
  403. stop:
  404.         clr         sda
  405.         nop
  406.         nop
  407.         setb         scl
  408.         nop
  409.         nop
  410.         setb         sda
  411.         ret
  412. ;-----------應答----------
  413. ack:
  414.         setb         sda
  415.         nop
  416.         nop
  417.         setb         scl
  418.         jb         sda,        ack_0
  419.         clr         c
  420.         sjmp         ack_1
  421. ack_0:
  422.         setb         c
  423. ack_1:
  424.         nop
  425.         nop
  426.         clr         scl
  427.         ret
  428. ;--------------發送8位數據---------
  429. send:
  430.         mov         b,        #08h
  431. send_1:
  432.         rlc         a
  433.         mov         sda,        c
  434.         setb         scl
  435.         nop
  436.         nop
  437.         clr         scl
  438.         djnz         b,        send_1
  439.         ret
  440. ;--------------接收8位數據-----------
  441. receive:
  442.         mov         b,        #08h
  443.         clr         a
  444.         setb         sda
  445. receive_1:
  446.         setb         scl
  447.         nop
  448.         nop
  449.         mov         c,sda
  450.         rlc         a
  451.         clr         scl
  452.         djnz         b,        receive_1
  453.         ret
  454. ;----------10MS--------------
  455. DELAY10ms:
  456.           MOV  6EH, #100
  457. DLY5: MOV  6FH, #100
  458.       DJNZ 6FH, $
  459.       DJNZ 6EH, DLY5
  460.       RET
復制代碼


評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:1041599 發表于 2022-8-8 07:42 | 顯示全部樓層
感謝樓主分享,那個74AHC1具體型號是? 具體如何起到抗干擾的作用?
回復

使用道具 舉報

ID:72088 發表于 2022-8-11 15:52 | 顯示全部樓層
月亮小小鳥 發表于 2022-8-8 07:42
感謝樓主分享,那個74AHC1具體型號是? 具體如何起到抗干擾的作用?

緩沖隔離作用,
回復

使用道具 舉報

ID:68189 發表于 2022-8-11 17:29 | 顯示全部樓層
74AHC1 是反相器(施密特)? ArSnag_20220811172405.png

回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
ID:1034262 發表于 2022-8-12 14:29 | 顯示全部樓層
315M和433M通信,自己定義編碼的話,我都用曼徹斯特編碼,這是歸0碼,很合適做無線編碼。
回復

使用道具 舉報

ID:1041599 發表于 2022-8-14 05:11 | 顯示全部樓層
74AHC1G125  這個型號適用不?

74ahc1g125.png
回復

使用道具 舉報

ID:72088 發表于 2025-1-11 17:08 | 顯示全部樓層
月亮小小鳥 發表于 2022-8-14 05:11
74AHC1G125  這個型號適用不?

也可以不用,隔離干擾最好
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美性网站 | 久久久精品久久 | 成人精品毛片 | 蜜桃传媒一区二区 | av色站| 老司机67194精品线观看 | 黄色一级大片在线免费看产 | 精品国产一区二区三区日日嗨 | 国产精品1区2区 | 欧洲成人 | 草久久久 | 国产日韩欧美91 | 国产乱码精品一品二品 | 久久国产精品视频 | 国产精品久久久久久吹潮日韩动画 | 午夜免费视频 | 久久精品网 | 久久婷婷色 | 日韩在线小视频 | 做a视频 | 中文字幕1区2区 | 日韩综合在线播放 | 久久久国产精品一区 | 成人亚洲网 | 毛片免费视频 | 黄色免费网站在线看 | 欧美成人免费 | 欧美精品一区二区在线观看 | 国产欧美日韩一区 | 四虎精品在线 | 国产目拍亚洲精品99久久精品 | 一区二区三区免费观看 | 亚洲 91| 久久亚洲精品国产精品紫薇 | 成人日韩 | 日韩91 | 男女下面一进一出网站 | 青青草网站在线观看 | 嫩草视频入口 | 国产精品嫩草影院精东 | 精品国产乱码久久久久久丨区2区 |