找回密码
 注册
关于网站域名变更的通知
查看: 542|回复: 1
打印 上一主题 下一主题

51单片机半导体甲醛传感器模块显示程序

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-1-16 10:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
51单片机半导体甲醛传感器模块显示程序
7 q. F& v1 v& n& m, r5 g- J9 _- K0 i! I, O: ~2 O; K

0 @0 U: t0 @0 I9 z$ K. j无意中某宝发现一款甲醛传感器,资料显示为每秒发送一组串口数据,其中包含甲醛值,使用的stc89c52rc,分享一下5 R8 M5 s* u3 S" {) z7 T7 z
0 ^7 P4 R/ Z1 |/ q7 Q; D3 b5 S
  e- z/ a* u, G* Q. k/ D& ~
半导体甲醛模块单片机源程序:
4 V: ?! c% s( }. h3 Z6 l. P
8 h# j; ?" G! X, K1 O4 d  E' C4 _
9 n5 o/ K2 D5 {3 f9 b' Q
: `. {+ ?' B1 z9 ]2 W$ n
* H# C5 I+ j: b2 G4 m  u4 T5 t! r
#include<reg52.h>: m& `& a: I5 O% S1 z; V
#include "lcd.h"2 d. q( {$ t1 J3 d
#define uchar unsigned char& r) c  Q) L& M7 s, b
#define uint unsigned int) Y+ r. ]& P1 I2 G% v; z
                                                       //可一次接收数据量
, e" s! }) l8 d) V6 v, F' h& @ void rs232_init();
/ o5 d, @- T5 A5 [6 } uchar flag,i,k,l;
8 K( }" R5 k- ?( N9 B- l1 i uint num;                                                       //删除无用变量                           
3 L$ T5 n! d$ f
2 s8 q% U5 j2 s- t5 q) c

- t( b1 ?& i$ m uchar table1[9];
4 e3 B* i  j; d) _& S& p: y* O4 g uchar table2[6]={0x20,0x20,0x39,0x2e,0x39,0x39};                                             //接收缓存数组
. l7 {4 E- }3 w( j# ?2 |' a6 Q uchar j=0;                                                             //接收计数器
5 j7 |" |+ [3 l9 `/ q( |
; Q! t; ^1 u; h5 U! a" o) W7 X* {

8 L' z: @8 w/ B( T void shujuchuli ()  E$ B/ Z- V4 {" h( a' p7 e% z+ Q
{
2 r8 ?! ~) j" M2 O  if(flag==1)8 F9 b. L* Y) F; @
                 {
, W9 u& X" T( c& Z6 Z2 V9 ~                         ES=0;
$ Y+ Y  X  X/ _" l# i$ k                      8 |1 L& v9 w; e* k6 a# y
                        for(j=0;j<9;j++)                        
/ m* y, U: W) E9 M/ l1 n8 H                           {
. ^8 v2 e) T* |+ |$ Z. B3 M                                SBUF=table1[j];
% ^1 C( {, q9 W  o                                 while(!TI);
, J  ~  x4 M9 i( l                                 TI=0;
0 D& N. o5 D- n% c* j                                                }
7 c' I" }! k" J% v6 @3 a! E                                                            num=table1[4]*256+table1[5];
  Z; Y3 d. h# L+ C* o& u
- g! L% i7 G9 a7 l# w, m& Q& l
* s3 i: ?6 ?) h* v" X
                                                                table2[0]=num/10000;8 e% z$ {! L1 K9 R
                                                                table2[1]=num%10000/1000;
5 G; `) m7 s5 r! F+ O3 q                                                        . m0 w" B. i  Q  w$ W. o6 Q$ A
                                                                 ) e1 I) X. Y, {5 O* c
                                                                table2[2]=num%10000%1000/100+0x30;+ k5 |+ q4 H3 N* h& A* K1 R
                                                                table2[3]=0x2e;
3 x" |9 S$ s  t, O2 d) {                                                                table2[4]=num%10000%1000%100/10+0x30;: d4 r5 {, M* W, j4 x5 r% T
                                                                table2[5]=num%10000%1000%100%10+0x30;9 r2 H9 A5 Y; i5 P
                                                                4 Q& c* s* u# X; L9 t  r% h6 m1 l4 Z
                                
( I9 _8 N( f- u. r' Q: [                         j=0;                                           //清零接收计数器
5 u, J( L% K- q7 b' v8 f" [                         ES=1;
0 S% k% I: L3 P/ y+ q                         flag=0;/ F9 Q4 o: [" F8 Z- Q
                 }
- z& ], b- Q& s( ~( w) `
3 a( n/ _% h7 E* E! M
, o+ v6 c$ }8 g& r9 D3 x
}: [7 Q# e! a; y) ~' f. w
/ I" `- k# c: B) D

6 U9 ^, G' F' n: j- y# V$ n1 Y( ?( l7 e4 Q, d0 y- U
, c# X4 C& v% ]& I5 D

. u5 I1 m0 D  O8 F0 N2 y
- L/ p* B$ W& c  k, R7 m0 |

' a7 W  X; j) b- k5 \3 y5 ^+ ^

1 s% H' y0 G% E main()2 u2 }4 {/ |/ ?( z$ \* X2 w# c
{
! k0 f' ?9 x6 o$ L+ |2 I4 W0 x5 N         rs232_init();. h; v# J  x! k$ [" L2 @
                . n6 f  [6 P( v- J: k
                    q6 A$ {  s! x! d
         while(1)
) H1 D4 n% s) L" Z6 Y! {1 v$ q' @         {, |9 ]: P2 R3 D0 s! Y
        
5 V7 w4 c5 w$ D  x3 n" F- I                 LcdInit();( s* f/ g; T3 v6 T& m" k
3 G3 p) A( d2 `$ @. J

) x& T/ j2 i& y1 l( y6 w                 shujuchuli ();" H3 t/ L. J2 O+ I
                 
6 j3 C7 R+ k! \# I1 }0 _        5 L  c) r! w1 F1 ^0 W

  d) [$ C( _4 t  X, E8 _' N

, d: Y& u- f% L2 z! s9 x            LcdWriteData(0x43);
1 i. g( b: ^# s/ ~5 |; Z+ _9 c                LcdWriteData(0x48);$ l4 k. R  o" C& t, q* W4 E
                LcdWriteData(0x32);, R% t& K6 L4 ], p
                LcdWriteData(0x4f);
8 C6 \3 v( }. j7 c                LcdWriteData(0x3a);; c, v/ `$ ~/ u( Q' O4 V) }
        for(l=0;l<6;l++)
. z7 C, ]5 n4 T' I' k5 R) k        {$ [2 I# [0 B$ _, j
                LcdWriteData(table2[l]);        
$ \6 N* z" Z* D  C2 h1 ]1 J        }
# y- `" K: W$ a1 A0 l; `* B, Q                LcdWriteData(0x6d);5 ]5 j! p& y% Y% P+ U
                LcdWriteData(0x67);. ^* Z) Q5 }; Q
                LcdWriteData(0x2f);
  j7 C4 `) e6 h, A: t                LcdWriteData(0x6d);3 m2 p! `5 R# J% P# N4 q
                LcdWriteData(0x33);* N- V6 A+ b' S
        % W4 A7 l# ]" ^% ?+ I; o
           Lcd1602_Delay1ms(300);
' M9 t& E5 @* y( z+ i        }
* f  U% c/ ~6 ~4 D: k }3 J  l$ F1 I9 E0 [/ g$ q( a4 p
void rs232_init()
7 G: Z% M* E- @: w {
" @! t2 M: d0 z0 D; V# @  p         TMOD=0x20;
1 C2 z$ c2 ~- U  {' _1 _         TH1=0xfa;1 X0 u' Z2 Q8 E
         TL1=0xfa;; z$ A/ ?( j, a" {
                 PCON=0x80;, m2 p& @% c$ ~
         TR1=1;  K3 _' p6 d4 Y" V# R( P6 d8 b
                 SCON=0x50;
, h: `% W4 u7 z2 J) i                                                               //先设定号工作方式,在打开允许接收
- Z) J  x; _4 P; ~; u& T         EA=1;
# G% \% l2 v7 Z4 D& l4 B) Y2 d         ES=1;        / G& f8 G$ Y% C  }* {
}7 o6 Q* ~! I- B8 k9 l2 D! k
void ser()interrupt 4
: P: A4 c/ H- x {                 
0 G) _& T, d7 v, C5 ~; K; C     RI=0;  
! D. I7 {2 P2 `6 N! ~         table1[j] = SBUF;+ Q. }( c( U; f" D6 r4 c4 }
    if(table1[j]==0xff&&j==0)# x4 b$ p) N9 y+ w# d" w
{- r6 `4 c& O3 b6 A9 r
j=1;+ b2 x/ Z/ [" U' B5 q
}: M* e# M$ l! k$ ?6 V0 T
else if(j==1&&table1[j]==0xff)
/ C  ]) k0 e' R{" R% R0 B' u) w' \3 G- O  {  K
j=2;# @% h/ X: X) {$ D/ {1 o
}3 u2 y. S4 E% g' v1 \
+ n4 }% q! L) i  i% w: M
; M9 x7 \% j% ]( ^4 L& k, H
else if (j==2&&table1[j] == 0x01)6 d& O4 ^8 @/ P+ b+ S
{: S: `1 ?: K; a9 v# _

# J, o9 ^% X& E# C8 Y( ~; `/ O

: Z9 U( b' F$ c+ Y2 v$ M j=3;+ s: N/ e6 k3 B) K( S

5 r  x+ [, E7 h1 E/ N- D* Q( ^
+ c/ i  ~8 T& M" H& }: A
}
6 k0 E1 j% x* _2 Jelse if (j==3&&table1[j] == 0x27)
+ h3 _1 f+ ?7 L" Q{5 e, ^! ?: _' R- u( J" f

! D  W' W5 j. i! v! V! z4 e* v

) S" m7 B: ^& s# @ j=4;0 g5 q. K; [' B' y

- C( t1 m2 ?( e) f5 v% `
2 |6 Y; q7 x0 T, B
}
7 J2 p/ T6 h5 B" k
, L) j1 b4 N7 H8 K
: E3 }$ ]8 n" k' D
else if(j>=4&&j<8)2 e2 V4 E' |- ^' I
{
+ j& v; k) d; n
- r3 C' B* E3 e
# s  W+ U$ @7 x. @

& m7 h. e9 e4 Z' cj ++;8 a5 O$ l. c, I2 y' b! {1 @
}
5 P4 n( ?1 o/ D; ^0 S5 q& D
' ~; r9 v+ x( Q: H

- g% F" {/ F2 H5 d% h2 a8 kelse if(j == 8)
* y' Q8 N! \  X, u6 f{6 B  _0 T: K! y5 Z9 J6 g
9 q9 ^- R+ X$ h
flag=1;$ v3 p" w* E& I( W# _
j=0;
; [! `( M$ ~3 T6 x( z! m}
1 `5 n) I8 b1 P7 s; L; x: h else9 ]- t& Z7 f8 x* `$ v8 U$ p
{
( O) d* M$ ^! z. J9 i- N% M+ V j=0;( J$ u7 w9 C& u7 F% J
}         * o& K$ ?# a  L( x$ `, }) R
; N4 j/ Q( ~$ k3 Q

* w% j( w, l0 S" r2 U- h
% m6 _2 g9 V6 r2 O" S/ t
6 e+ r6 P7 p. h* a' N' K$ B5 T
}         
) T! o1 v: n9 H; L% w/ ~( n% b7 `. ?) @  X
0 ]$ b5 X& u* A5 S: u, R, ?
下载:
1 M" [% `/ W0 R7 V0 l; X. z
游客,如果您要查看本帖隐藏内容请回复
8 S8 {" Y3 {* z" W7 ~9 k

# _9 t. q6 D1 i

该用户从未签到

2#
发表于 2019-1-16 21:53 | 只看该作者
全很,学习,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-7-18 10:55 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表