找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3061|回復(fù): 3
收起左側(cè)

315M 433M無線溫度收發(fā) 單片機匯編語言程序 LCD2004顯示

[復(fù)制鏈接]
ID:261025 發(fā)表于 2021-2-20 20:58 | 顯示全部樓層 |閱讀模式
利用串口+315M 433M模塊傳輸溫度    15W204S發(fā)射     AT89C2051接收   
由于不會使用18B20的序列號  所以使用了三個端口檢測溫度  
發(fā)送的數(shù)據(jù)一共16位   前3位加密  (如果覺得不夠可以占用后面的位繼續(xù)加密)
第4位到第11位顯示被測設(shè)備名稱 設(shè)備名不夠長就用空位代替   第12位設(shè)備序號   第13到16位是四位溫度(含零下)
根據(jù)接收的設(shè)備序號循環(huán)顯示設(shè)備號  顯示一秒就隱去  下次收到在顯示在隱去
未接入18b20時溫度位顯示四個橫杠    收不到設(shè)備信號顯示  No input  
一個設(shè)備發(fā)送三個溫度數(shù)據(jù)時  只有接收端收不到信號5秒才會顯示三行  No input  
如果改一下程序 發(fā)射的設(shè)備由一個變?nèi)齻 每個只發(fā)送一路數(shù)據(jù)  (三個不能同時發(fā)射 否則接收端會收不到信號)
三個設(shè)備任何一個設(shè)備無法發(fā)送信號   接收端過5秒就會顯示  No input

制作出來的實物圖如下:
51hei截圖20210220170827.jpg 51hei截圖20210220210208.jpg 51hei截圖20210220210239.jpg

單片機源程序如下:




  1. ;  延時、波特率由單片機小精靈V1.3生成  晶振 12M   12T模式
  2. ;  89C2051   12M           2400BPS   接收溫度
  3.           RS  BIT P3.3;                                                                                          
  4.           RW  BIT P3.4;                                                                                             
  5.           E   BIT P3.5;         
  6.                   LED BIT P3.7;           收到信號閃一下

  7.                   RX1 EQU 02H;           用于無信號計時  改地址后有可能計時無效
  8.                   RX2 EQU 03H;
  9.                   RX3 EQU 08H;

  10.                   FLAG1   EQU   20H.1;         收到信號后置1  無信號置0
  11.                   FLAG2   EQU   20H.2;
  12.                   FLAG3   EQU   20H.3;

  13.             ORG 0000H
  14.         LJMP START
  15.         ORG 0023H
  16.         LJMP UART_ISR;串口中斷
  17. ;--------------------------------------
  18. START:  MOV RX1,#0;
  19.                 MOV RX2,#0;
  20.             MOV RX3,#0;

  21.             CLR FLAG1
  22.                 CLR FLAG2
  23.                 CLR FLAG3

  24.                 MOV 40H,#" ";
  25.                 MOV 41H,#" ";
  26.                 MOV 42H,#" ";

  27.         MOV SP,#60H
  28.         LCALL InitUART
  29.         LCALL LCD1602;初始化
  30.             LCALL DIP_G;顯示固定符號          TEMP
  31.                 LCALL DIP_N_1;顯示無信號輸入  No input
  32.                 LCALL DIP_N_2;
  33.                 LCALL DIP_N_3;

  34. ;設(shè)備檢測           檢測是否有設(shè)備斷開  整體延時大約5秒
  35. LOOP:
  36.                 LCALL DELAY100MS;         100*50=5000MS=5S
  37. ;設(shè)備1        
  38.         JNB FLAG1,TM2;                收到信號向下執(zhí)行
  39.                 MOV A,RX1;
  40.                 INC A;
  41.                 MOV RX1,A;
  42.                 CJNE A,#10,TMA;                延時1秒
  43.                 MOV 40H,#" ";
  44.                 LCALL DIP_SHU;            不顯示接收設(shè)備號
  45. TMA:        CJNE A,#50,TM2;                延時5秒
  46.                 CLR FLAG1;                        
  47.                 MOV 40H,#" ";
  48.                 LCALL DIP_N_1;      顯示無信號輸入  No input
  49.                 LCALL DIP_SHU;            不顯示接收設(shè)備號
  50. ;-----------------------------------------------------
  51. ;設(shè)備2
  52. TM2:         JNB FLAG2,TM3;
  53.         MOV A,RX2;
  54.         INC A;
  55.                 MOV RX2,A;
  56.                 CJNE A,#10,TMB;                延時1秒
  57.                 MOV 41H,#" ";
  58.                 LCALL DIP_SHU;            不顯示接收設(shè)備號
  59. TMB:        CJNE A,#50,TM3;                延時5秒
  60.             CLR FLAG2;
  61.                 MOV 41H,#" ";
  62.                 LCALL DIP_N_2;            顯示無信號輸入  No input
  63.                 LCALL DIP_SHU;            不顯示接收設(shè)備號
  64. ;-----------------------------------------------------
  65. ;設(shè)備3
  66. TM3:        JNB FLAG3,TMO;
  67.              MOV A,RX3;
  68.         INC A;
  69.                 MOV RX3,A;
  70.                 CJNE A,#10,TMC;                延時1秒
  71.                 MOV 42H,#" ";
  72.                 LCALL DIP_SHU;            不顯示接收設(shè)備號
  73. TMC:        CJNE A,#50,TMO;                延時5秒
  74.                 CLR FLAG3;
  75.                 MOV 42H,#" ";
  76.                 LCALL DIP_N_3;            顯示無信號輸入  No input
  77.                 LCALL DIP_SHU;            不顯示接收設(shè)備號
  78.          
  79. TMO:        LJMP LOOP;
  80. ;---------------------------------------
  81. InitUART:
  82.         MOV TMOD,#20H ;12M           2400BPS   波特率由單片機小精靈V1.3生成  晶振 12M   12T模式
  83.         MOV SCON,#50H
  84.         MOV TH1,#0F3H
  85.         MOV TL1,TH1
  86.         MOV PCON,#00H
  87.         SETB EA
  88.         SETB ES
  89.         SETB TR1
  90.                 RET;
  91. ;-----------------------------------------------
  92. DELAY100MS:   ;誤差 0us                 延時由單片機小精靈V1.3生成  晶振 12M   12T模式
  93.         MOV R7,#13H
  94. DL5:        MOV R6,#14H
  95. DL4:    MOV R5,#82H
  96.         DJNZ R5,$
  97.         DJNZ R6,DL4
  98.         DJNZ R7,DL5
  99.         RET
  100. ;-----------------------------------------------
  101. $INCLUDE (DIP.ASM)
  102. $INCLUDE (WUXINHAO.ASM)
  103. $INCLUDE (UART.ASM)

  104.             END
復(fù)制代碼

所有程序51hei提供下載:
315M 433M無線溫度收發(fā).rar (1.24 MB, 下載次數(shù): 27)

評分

參與人數(shù) 1黑幣 +90 收起 理由
admin + 90 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:336378 發(fā)表于 2021-2-23 15:52 | 顯示全部樓層
大神,程序小點用繪編方便,  如大了的話就比較麻煩了的, 后面升級維護帶來不方便。
回復(fù)

使用道具 舉報

ID:261025 發(fā)表于 2021-2-23 17:22 | 顯示全部樓層
cba_cba 發(fā)表于 2021-2-23 15:52
大神,程序小點用繪編方便,  如大了的話就比較麻煩了的, 后面升級維護帶來不方便。

不會C語言 C語言確實需要的程序少 可我怎么改怎么錯   
匯編我分類了  需要改哪就去哪里改  比程序全在一頁里輕松多了   
$INCLUDE (DIP.ASM)
$INCLUDE (WUXINHAO.ASM)
$INCLUDE (UART.ASM)
回復(fù)

使用道具 舉報

ID:336378 發(fā)表于 2021-2-25 08:27 | 顯示全部樓層
匯編來說,總體用空間小,芯片資源可以小點,相對成本要底,大部分方案公司都是這樣的。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表