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

標題: 51單片機半導體甲醛傳感器模塊顯示程序 [打印本頁]

作者: cell    時間: 2017-3-22 17:03
標題: 51單片機半導體甲醛傳感器模塊顯示程序
無意中某寶發現一款甲醛傳感器,資料顯示為每秒發送一組串口數據,其中包含甲醛值,使用的stc89c52rc,分享一下


半導體甲醛模塊單片機源程序:


  1. #include<reg52.h>
  2. #include "lcd.h"
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5.                                                        //可一次接收數據量
  6. void rs232_init();
  7. uchar flag,i,k,l;
  8. uint num;                                                       //刪除無用變量                           

  9. uchar table1[9];
  10. uchar table2[6]={0x20,0x20,0x39,0x2e,0x39,0x39};                                             //接收緩存數組
  11. uchar j=0;                                                             //接收計數器

  12. void shujuchuli ()
  13. {
  14.   if(flag==1)
  15.                  {
  16.                          ES=0;
  17.                      
  18.                         for(j=0;j<9;j++)                        
  19.                            {
  20.                                 SBUF=table1[j];
  21.                                  while(!TI);
  22.                                  TI=0;
  23.                                                 }
  24.                                                             num=table1[4]*256+table1[5];

  25.                                                                 table2[0]=num/10000;
  26.                                                                 table2[1]=num%10000/1000;
  27.                                                        
  28.                                                                  
  29.                                                                 table2[2]=num%10000%1000/100+0x30;
  30.                                                                 table2[3]=0x2e;
  31.                                                                 table2[4]=num%10000%1000%100/10+0x30;
  32.                                                                 table2[5]=num%10000%1000%100%10+0x30;
  33.                                                                 
  34.                                 
  35.                          j=0;                                           //清零接收計數器
  36.                          ES=1;
  37.                          flag=0;
  38.                  }

  39. }




  40. main()
  41. {
  42.          rs232_init();
  43.                
  44.                   
  45.          while(1)
  46.          {
  47.        
  48.                  LcdInit();

  49.                  shujuchuli ();
  50.                  
  51.         

  52.             LcdWriteData(0x43);
  53.                 LcdWriteData(0x48);
  54.                 LcdWriteData(0x32);
  55.                 LcdWriteData(0x4f);
  56.                 LcdWriteData(0x3a);
  57.         for(l=0;l<6;l++)
  58.         {
  59.                 LcdWriteData(table2[l]);       
  60.         }
  61.                 LcdWriteData(0x6d);
  62.                 LcdWriteData(0x67);
  63.                 LcdWriteData(0x2f);
  64.                 LcdWriteData(0x6d);
  65.                 LcdWriteData(0x33);
  66.        
  67.            Lcd1602_Delay1ms(300);
  68.         }
  69. }
  70. void rs232_init()
  71. {
  72.          TMOD=0x20;
  73.          TH1=0xfa;
  74.          TL1=0xfa;
  75.                  PCON=0x80;
  76.          TR1=1;
  77.                  SCON=0x50;
  78.                                                                //先設定號工作方式,在打開允許接收
  79.          EA=1;
  80.          ES=1;        
  81. }
  82. void ser()interrupt 4
  83. {                 
  84.      RI=0;  
  85.          table1[j] = SBUF;
  86.     if(table1[j]==0xff&&j==0)
  87. {
  88. j=1;
  89. }
  90. else if(j==1&&table1[j]==0xff)
  91. {
  92. j=2;
  93. }

  94. else if (j==2&&table1[j] == 0x01)
  95. {

  96. j=3;

  97. }
  98. else if (j==3&&table1[j] == 0x27)
  99. {

  100. j=4;

  101. }

  102. else if(j>=4&&j<8)
  103. {


  104. j ++;
  105. }

  106. else if(j == 8)
  107. {

  108. flag=1;
  109. j=0;
  110. }
  111. else
  112. {
  113. j=0;
  114. }         


  115. }         
復制代碼



全部代碼下載:
甲醛半導體模塊數據在1602.rar (29.24 KB, 下載次數: 137)

作者: 方俱滅    時間: 2017-4-12 16:04
LcdInit();這個應該放在while外面吧?有空試試看程序

作者: 方俱滅    時間: 2017-4-12 16:14
另外程序應該有問題,這個傳感器的測量范圍是0-1mg,你這里竟然顯示了3.2mg

作者: cell    時間: 2017-4-15 06:30
方俱滅 發表于 2017-4-12 16:04
LcdInit();這個應該放在while外面吧?有空試試看程序

好像是,不過這樣也能用
作者: cell    時間: 2017-4-15 06:32
方俱滅 發表于 2017-4-12 16:14
另外程序應該有問題,這個傳感器的測量范圍是0-1mg,你這里竟然顯示了3.2mg

這是剛預熱成功,讀數還在下降中
作者: Thanksgod1990    時間: 2017-5-3 11:21
樓主,可以提供這個模塊的購買地址嗎,萬分感謝!!!
505078640@qq.com
作者: thatkey    時間: 2017-5-11 22:13
本帖最后由 thatkey 于 2017-5-12 12:44 編輯

你好  我的個位數之前兩個字符有亂碼
作者: hanjiao    時間: 2017-5-15 19:29
傳感器選的什么啊?
作者: levyjersy    時間: 2017-5-17 21:41
我的為什么總是顯示9.99呀
作者: levyjersy    時間: 2017-5-17 21:42
大神,我的為什么總是顯示9.99呀??
作者: 我們失戀在夏季    時間: 2017-5-18 22:10
大神 我的為什么總顯示9.99啊

求解答啊
作者: smile123    時間: 2017-5-19 15:48
想知道將輸出的電壓怎么轉換成濃度
作者: cell    時間: 2017-5-21 21:59
我們失戀在夏季 發表于 2017-5-18 22:10
大神 我的為什么總顯示9.99啊

求解答啊

顯示9.99說明沒有接收到串口信號,檢查一下接線,波特率,不行用usb串口監測一下通信內容有問題嗎
作者: cell    時間: 2017-5-21 22:01
smile123 發表于 2017-5-19 15:48
想知道將輸出的電壓怎么轉換成濃度

甲醛模塊干的事,模塊用的stm8模數轉換的
作者: normandy2010    時間: 2017-6-17 21:58
謝謝大神,好好學習。
作者: 沉睡的淚    時間: 2017-6-27 09:57
mark學習
作者: czg01122    時間: 2017-7-21 17:15
多謝樓主,下載下來試試。
作者: 1602    時間: 2017-7-31 15:16
哪位大神有甲醛測試儀的完整程序啊,急需啊,傳感器是和這個一樣的
希望有的大神可以給我一下
作者: 1602    時間: 2017-8-1 16:08
為什么我直接將程序燒進去,1602也沒字顯示啊!
作者: 1602    時間: 2017-8-3 15:40
怎么在這個程序里加入語音芯片呢!當超過標準時·語音報警
作者: sjr02    時間: 2017-12-29 15:14
cell 發表于 2017-5-21 21:59
顯示9.99說明沒有接收到串口信號,檢查一下接線,波特率,不行用usb串口監測一下通信內容有問題嗎

我的也是,程序下進去后總是顯示9.99,都檢查了,也沒啥不對啊
作者: 梁光陽    時間: 2017-12-29 20:25
levyjersy 發表于 2017-5-17 21:41
**** 作者被禁止或刪除 內容自動屏蔽 ****

這個應該是模擬了,得需要模數轉換
作者: 急不可待    時間: 2017-12-29 22:25
仿真圖。沒有傳感器,

2017-12-29_222241.jpg (141.84 KB, 下載次數: 100)

2017-12-29_222241.jpg

作者: 急不可待    時間: 2018-1-8 18:56
thatkey 發表于 2017-5-11 22:13
你好  我的個位數之前兩個字符有亂碼

你好,傳感器在哪里購買的,有地址嗎。
作者: 米諾子    時間: 2018-3-21 18:18
你好,這個傳感器輸出是電壓還是數字信號?一直搞不明白,謝謝。
作者: cell    時間: 2018-3-22 13:48
米諾子 發表于 2018-3-21 18:18
你好,這個傳感器輸出是電壓還是數字信號?一直搞不明白,謝謝。

傳感器輸出數字信號,串口輸出
作者: 飛科技    時間: 2018-4-23 23:14
   if(table1[j]==0xff&&j==0) { j=1; } else if(j==1&&table1[j]==0xff) { j=2; }  else if (j==2&&table1[j] == 0x01) {  j=3;  } else if (j==3&&table1[j] == 0x27) {  j=4;  }為啥table【i】要等于0xff呢
作者: 飛科技    時間: 2018-4-23 23:27
if(table1[j]==0xff&&j==0) { j=1; } else if(j==1&&table1[j]==0xff) { j=2; }  else if (j==2&&table1[j] == 0x01) {  j=3;  } else if (j==3&&table1[j] == 0x27) {  j=4;  }為啥table【j】要等于0xff呢?j==1&&table1[j]==0xff,else if (j==2&&table1[j] ==0x01) else if (j==3&&table1[j] == 0x27) {  j=4;  }
大神這幾句能解釋下嗎

作者: cell    時間: 2018-6-10 09:27
飛科技 發表于 2018-4-23 23:27
if(table1[j]==0xff&&j==0) { j=1; } else if(j==1&&table1[j]==0xff) { j=2; }  else if (j==2&&table1[j] ...

傳感器發來的數據有固定格式,為FF FF 01 27...........,為確保數據從第一幀開始接收,所以這里做了一些判斷,以防甲醛值數據正確
作者: 真正的小白    時間: 2018-10-12 09:11
是什么傳感器啊,大神求回復
作者: zhongmiaoyuan    時間: 2019-2-5 16:42
這甲醛傳感器接STC89C52哪幾個端口啊?
作者: zhongmiaoyuan    時間: 2019-2-5 18:10
這甲醛傳感器接STC89C52哪幾個端口啊?
作者: zhongmiaoyuan    時間: 2019-4-14 12:31
51單片機甲醛傳感器測試濃度
作者: zhongmiaoyuan    時間: 2019-4-14 15:39
這甲醛傳感器接STC89C52哪幾個端口啊?
作者: 錒木木哦    時間: 2019-4-16 10:34
zhongmiaoyuan 發表于 2019-4-14 15:39
這甲醛傳感器接STC89C52哪幾個端口啊?

同問,我也發現代碼里面沒有定義端口,甲醛傳感器的端口
作者: 錒木木哦    時間: 2019-4-16 11:31
請問用的是usb接口嗎,還是轉換了RS232,還有甲醛傳感器連51的 IO  口,我看程序里沒有定義這幾個接口呀,應該就是P30和P31吧,希望解釋一下
作者: NPC-1024    時間: 2019-4-19 14:06
sjr02 發表于 2017-12-29 15:14
我的也是,程序下進去后總是顯示9.99,都檢查了,也沒啥不對啊

請問你后來解決了嗎





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 殴美黄色录像 | 亚洲精品字幕 | 国产精品毛片一区二区在线看 | 日韩av在线不卡 | 久草视频在线播放 | 日韩成人免费在线视频 | 羞羞视频在线观看网站 | 欧美日韩在线一区 | 99精品欧美一区二区三区综合在线 | 精品国产一区二区三区成人影院 | 久国产| 在线观看成人小视频 | 超碰在线播 | 久久ww| 五月婷婷色 | www.成人在线视频 | 日韩在线免费视频 | 国产精品69久久久久水密桃 | 午夜性视频| 亚州精品天堂中文字幕 | 精品粉嫩超白一线天av | 国产精品18久久久久久白浆动漫 | 国产乱码久久久久久一区二区 | 成人在线不卡 | 久久精品亚洲精品国产欧美 | 欧美日韩国产一区二区三区 | 91精品在线观看入口 | 国产一区二区欧美 | 色婷婷精品国产一区二区三区 | 国产精品久久久久久久久久久久久 | 日韩欧美精品在线 | 亚洲毛片| 欧美黄在线观看 | 91精品久久久久久久久 | 99小视频| 亚洲午夜小视频 | 日日射夜夜骑 | 国产精品一码二码三码在线 | 区一区二区三在线观看 | 午夜资源| 日韩精品在线观看免费 |