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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3438|回復: 1
打印 上一主題 下一主題
收起左側

STC12C5A60S2單片機接MAX485模塊,讀取485溫濕度傳感器的數據(MODBUS)OLED顯示程序

  [復制鏈接]
跳轉到指定樓層
樓主
ID:929006 發表于 2022-1-17 23:19 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC12C5A60S2單片機接MAX485模塊,讀取485溫濕度傳感器的數據(MODBUS),并顯示在OLED屏上
說明:主機發送數據幀:01 03 02 00 00 03 04 73


單片機源程序如下:

  1. /************************************************************************************
  2. 功能:單片機作為主機讀取基于RS485的MODBUS協議的溫濕度傳感器數據測試
  3. **************************************************************************************/
  4. //頭文件
  5. #include "main.h"

  6. int temp=2500;
  7. int humidity=3500;

  8. unsigned char code read_temp_hum_cmd[]={0x01,0x03,0x02,0x00,0x00,0x03,0x04,0x73};

  9. void main(void)
  10. {
  11.         Timer0Init();
  12.         UartInit();
  13.         OLED_Init();
  14.         OLED_Clear();
  15.         EA = 1;
  16.         printf("RS485 Modbus Test\r\n");
  17.         while(1)
  18.         {
  19.         if (sec_flag)
  20.         {
  21.         sec_flag=0;
  22.         uart_sendbuf(read_temp_hum_cmd,8);
  23.         }
  24.         if (rxd_flag)
  25.         {
  26.         rxd_flag=0;
  27.         uart_sendbuf(rxd_buf,rxd_index);
  28.         modbus_handle(rxd_buf,rxd_index);
  29.         rxd_index=0;
  30.         }
  31.         display_temp_hum(temp,humidity);
  32.         }
  33. }

  34. void display_temp_hum(int t,int h)
  35. {
  36.   unsigned char tempstr[8];
  37.   unsigned char humiditystr[8];
  38.   if(t<0)
  39.   {
  40.     IntegerToStr(t,tempstr);
  41.         OLED_ShowString(0,4,"TEMP:",16);
  42.         OLED_ShowString(48,4,tempstr,16);
  43.   }
  44.   else
  45.   {
  46.     IntegerToStr(t,tempstr);
  47.         OLED_ShowString(0,4,"TEMP:",16);
  48.         OLED_ShowString(56,4,tempstr,16);
  49.   }
  50.   IntegerToStr(h,humiditystr);
  51.   OLED_ShowString(0,6,"RH  :",16);
  52.   OLED_ShowString(56,6,humiditystr,16);
  53.   OLED_ShowChar(96,6,'%',16);
  54. }

  55. void modbus_handle(unsigned char *buf,unsigned char len)
  56. {
  57.   unsigned int crc;
  58.   unsigned char crch,crcl;

  59.   if (buf[0] != TEMP_HUM_ADDR)
  60.   {
  61.   return;
  62.   }
  63.   else if (buf[0] == TEMP_HUM_ADDR)
  64.   {
  65.        crc=GetCRC16(buf,len-2);
  66.        crch=crc>>8;
  67.        crcl=crc&0xff;
  68.       if((buf[len-2]!=crch)||(buf[len-1]!=crcl))
  69.       {
  70.       return;
  71.       }
  72.       temp=((int)buf[3]<<8) + buf[4];
  73.       humidity=((int)buf[5]<<8) + buf[6];
  74.   }
  75. }
復制代碼

Keil代碼下載:
RS485型MODBUS協議的溫濕度傳感器.zip (112.17 KB, 下載次數: 164)


評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏11 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1103462 發表于 2023-12-9 19:36 | 只看該作者
#include "main.h"頭文件是什么,是標準的庫文件碼
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧洲一级毛片 | 久久新| 日韩av在线免费 | 91精品国产综合久久久久久 | 日本淫视频 | 久久国际精品 | 欧美日韩中文字幕在线播放 | 亚洲日本中文 | 精品国产精品一区二区夜夜嗨 | 久久久久资源 | 久草综合在线 | 欧美日韩黄色一级片 | 欧美日韩国产一区二区三区 | 国产日韩欧美在线播放 | 99精品一区二区 | 久久久久久国产精品免费免费男同 | 国产一级视频免费播放 | 精品日韩电影 | 欧美一级在线 | 91视频在线看 | 国内精品视频免费观看 | 国产精品久久久久免费 | 日本激情视频在线播放 | 久久久精品一区 | 国产午夜亚洲精品不卡 | 色狠狠一区 | 春色av| 国产精品久久久久久久免费大片 | 九九导航 | 九九综合 | 91成人在线 | 欧美a级成人淫片免费看 | 在线成人 | 久久最新网址 | 国产午夜亚洲精品不卡 | 一级毛片免费视频观看 | 欧美视频一级 | 91视频在线观看 | 午夜电影合集 | 久久久久久久久久久久久91 | 777zyz色资源站在线观看 |