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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机半导体甲醛传感器模块显示程序: o: Z* P' v3 `1 O" s

( o' O3 F- p. Y
, u7 N/ M/ x' O% T, s. Y3 _* N
无意中某宝发现一款甲醛传感器,资料显示为每秒发送一组串口数据,其中包含甲醛值,使用的stc89c52rc,分享一下
' f: M$ I* E) _' R4 g 1 \! X' q/ G: h4 W$ o

6 m9 G6 Z2 L" A9 V. W半导体甲醛模块单片机源程序:

4 J  r5 x+ r% o, @. \) m7 M9 A+ \. Q$ d( r4 g
3 @, ~; E; O' S9 B$ n4 q7 [8 i" }

3 k) {, D7 z- \7 L- M) ]" K' x/ T

; |9 c: m) k! s$ G; `& Z#include<reg52.h>8 F7 F( l5 y% p& h
#include "lcd.h"+ c& i7 C# ]" M
#define uchar unsigned char! E! a5 t1 s3 O9 I
#define uint unsigned int  Q# u6 A4 N; k
                                                       //可一次接收数据量4 M) X$ M# f4 y* o2 i$ E
void rs232_init();
0 U( X. L4 R  K0 O5 ~! f7 K) n uchar flag,i,k,l;! a- J+ O5 ]4 u% ^
uint num;                                                       //删除无用变量                           : h$ S/ [) Z& s7 O% m0 N2 S' q1 L
% H. q6 |/ }2 ?- Z& O# h
/ J5 S; z$ b3 _! i
uchar table1[9]; ; m1 U9 e6 J  Q- e, _7 N6 E8 ~
uchar table2[6]={0x20,0x20,0x39,0x2e,0x39,0x39};                                             //接收缓存数组) W2 Q  n5 [" f; g
uchar j=0;                                                             //接收计数器
$ d( c/ X3 Q0 v/ S8 e/ I& c' q* ~  n: z8 A+ `9 R2 q
" \6 Z# B; R' D& Y/ U
void shujuchuli ()
! {! A5 N! R# R+ N( } {( p1 f5 Q& e* A0 x, R
  if(flag==1)
3 Z( M* K$ \* j9 a                 {3 A9 i! c) }% N6 s  Z2 Z! P+ P
                         ES=0;, }" h4 q( w% |: `9 P$ ?
                     
" ~0 M* \9 ], T                        for(j=0;j<9;j++)                        
; Q6 k4 _; J" u6 A                           {1 P2 S7 A3 r, ^0 c: n6 T
                                SBUF=table1[j];* ^+ x7 v4 N4 B: e6 q1 h
                                 while(!TI);; V' U: A, p, y9 |) z: G- F
                                 TI=0;
; B1 a) O: ~7 t8 n9 A% W& ]                                                }4 ?, U% s1 ?) ~' t7 a2 z- K% m
                                                            num=table1[4]*256+table1[5];, }' q) Y5 m6 k  k
" Z, G2 i) F; Q$ f7 `) j

+ ]) \/ a" s0 a  }2 v# V% \                                                                table2[0]=num/10000;
" l! Q2 V9 E) g$ @2 j; H: A                                                                table2[1]=num%10000/1000;( x  B& D( U9 p3 h0 x, s" E
                                                        
6 s; M9 z+ q% _( Y8 ]2 g                                                                 
9 J: G/ G/ t& i; G1 N9 Q& ~                                                                table2[2]=num%10000%1000/100+0x30;+ u% G' z: R5 x* W; Q, I
                                                                table2[3]=0x2e;
  h$ ?7 @8 ?  S3 t                                                                table2[4]=num%10000%1000%100/10+0x30;& l- l" \6 G5 Q) s& X) u+ J
                                                                table2[5]=num%10000%1000%100%10+0x30;
" H# z8 H9 Z: @0 ~. S) m) f0 t                                                               
+ @: H0 N. G2 r/ G: ?% \6 B                                
  n1 G3 C; T5 {. `. U9 s5 A% T$ H& Y                         j=0;                                           //清零接收计数器- w7 w( n$ K$ s+ R
                         ES=1;
7 _3 M9 Q) l% b# Y# b4 T' B                         flag=0;
+ V) B9 F' D6 q' d: S! E; V) a1 j' D                 }   F5 a* o- J" ?0 u0 P' d) j

2 I1 K6 O6 W5 K# l4 W; h. e& Y+ O

, h1 H8 W! X- L/ P7 M; G }# C+ Z: T0 g- i7 E: {. I0 m. l% v

6 E+ |  w! g5 R. X% j6 y" z
/ F- S9 P0 Y) g8 r# e3 [* o0 X' r2 O: s
  G' t) t2 L2 P
& y- c7 C( o' h( L9 v7 e
: m4 U# U: J% V' I, F

- N. e* s, S3 r( V, F! v$ H# {
5 R6 d) a0 N$ U) ]

$ a4 _2 r( G9 d/ x, s5 p  ?6 F: v main()
6 z* Y" G' P6 j" x8 ^5 D {9 z, u% M2 s6 M, h1 J+ h
         rs232_init();* L& E3 W- _3 J* h' U3 Y
                0 ^0 \, e1 Q7 {; U( Y, f: z
                    ?6 t! s- C7 s! N
         while(1); a' x% j8 i. j1 J" @$ D
         {
- ^; `; {7 f  i4 D; F! J        7 a: a5 Z8 K: Y! a3 d
                 LcdInit();/ U: h0 K6 L/ [

+ d1 ~- g( y$ b1 v7 j

9 \3 |5 ]5 Z/ p- n  t/ {; i0 W, k                 shujuchuli ();- D$ n' X7 B1 Y9 Y1 Z8 {3 h
                 
4 X* q' d% @7 O2 O5 o, |; E8 g        $ }3 G4 A$ s$ O( z7 W4 q2 d8 A6 Y

1 z, a* l9 M/ K; L) C4 S

* k) B( [2 B- |' z& @8 \7 F+ w            LcdWriteData(0x43);
6 |0 P$ `( I7 G# @$ H& u: V                LcdWriteData(0x48);) d4 l: {( M- w* F0 i
                LcdWriteData(0x32);: w0 r! Q6 @5 i; S8 ?( I
                LcdWriteData(0x4f);
  g& ]! p2 v9 a" I3 b3 ^                LcdWriteData(0x3a);) J" |8 J- E8 y5 M* U8 U
        for(l=0;l<6;l++)
$ I* a) Y/ j. C        {# _% p( F) _$ f
                LcdWriteData(table2[l]);        4 E( N' d0 k. I: j! O* V
        }; h- r7 s0 ?- X+ N) \/ |) x$ e
                LcdWriteData(0x6d);
0 P2 c5 R8 B4 \                LcdWriteData(0x67);
- w- U3 g: ]5 f& t0 u                LcdWriteData(0x2f);3 r& c) Y: m& C2 S) `
                LcdWriteData(0x6d);
2 Y3 j* i- V4 t5 e- u                LcdWriteData(0x33);& s6 K4 i4 a* [2 ]/ \* R1 Y8 D
        2 i9 u9 Y2 T, w9 e; ^+ B
           Lcd1602_Delay1ms(300);
- L. s& y$ v  @9 y        }  V* [+ G9 ?: o! `/ R$ a& F
}
( \! x* y. Q- _' T3 h void rs232_init()
( Y8 Q1 N, w/ X/ ? {
9 ~1 O  P% l; p+ i9 P2 W. Z& K3 g         TMOD=0x20;6 E- P; r' d$ \& l% C1 k
         TH1=0xfa;
7 U/ Y! q6 G: g6 U$ ]! b         TL1=0xfa;3 l* k5 R" Q) J
                 PCON=0x80;
9 Z6 U4 C. X" `9 s         TR1=1;
' U# d4 e. f* |  I4 Q- m                 SCON=0x50;: Z7 g$ n7 a$ ^0 W) Y' `
                                                               //先设定号工作方式,在打开允许接收  W3 _# K1 Q. o: t
         EA=1;' }1 Q$ a& {7 K7 s4 `+ M
         ES=1;        ( F8 _# }; H' |1 @
}; N. u; n' u6 s7 |5 S$ p  S
void ser()interrupt 43 B% E5 a8 N7 F' n+ K3 f! W
{                 # K: F  e4 t1 K2 k, H5 @
     RI=0;  2 P- A6 c% z( S* G2 S- w$ n
         table1[j] = SBUF;) U; s2 ^9 }  m* I
    if(table1[j]==0xff&&j==0)
. f. ~4 I" {2 h; g$ g! P5 j {
7 o9 x& O, }6 l2 A j=1;
, i& A: l' |' B/ ]: U% N- { }
% E  o9 J) L* w7 @else if(j==1&&table1[j]==0xff); K4 T5 t. Q7 b1 H3 L/ L
{
6 {  W7 B( @- Y# | j=2;
5 Q$ a( }( ^) D0 w) U}# g! k# i$ ]/ J# h

" G7 p1 Y  z  V9 v7 A; }5 O

2 i  G, I) k. p else if (j==2&&table1[j] == 0x01)
$ W" q) C8 L4 k, p{# P% M0 @9 Z$ |1 V  i- _

+ C. e0 {  W8 M6 C

) Y  H0 @2 I- D! ?3 k/ l2 P j=3;
& Y3 I8 q+ M! y1 V! H6 {* O
. X1 T* ~1 l# Q# y3 M4 ^. s  n2 X( {

4 J. p2 f! F1 O}
  [) \1 |- i/ X/ Y9 @& s* L% v2 ]else if (j==3&&table1[j] == 0x27)& o; ^4 C+ r0 A+ U- Z6 E4 K
{( d: g/ z4 ]1 n- \: \+ r

  C/ U: n# U: r& F% |

/ t8 [( q6 M0 i; k j=4;! I1 D  z. e  Q+ \

4 y8 M7 ~  \7 ~  U8 V2 E

( G' z1 _% [3 I1 ]1 |# L5 F8 R6 \}: j9 P" W3 r. p! F

& ^2 y1 A" n, ?, S* y0 R5 T0 ]7 h

5 x( O# ^% g8 Q8 _else if(j>=4&&j<8)5 f! {! {/ W! q8 L0 A
{( w, g; [0 @% {2 z2 }* h6 K
9 l& g- K6 Z& D
3 Z) n- I$ G2 M5 x# j$ _

' d1 x& o  g0 `j ++;
, b2 [# D" [  t' K3 |}
( w0 C6 p  D: U' c
# C0 _6 S7 c. }

! G! z3 O& ^' [2 y1 C3 Q# k1 e9 celse if(j == 8)& M+ [% y5 @6 k
{( `3 I- ?% U8 @$ m9 ^: p+ k: Z' U2 C
4 F% C$ Q# V0 U
flag=1;
+ c5 T! M" _2 V5 T6 \5 Ej=0;% \' h% V8 x: }6 b6 w1 \
}
  q+ {# _# ?: |2 y4 P% y5 C# o. @6 I else
: f8 C% X( G/ b6 ]1 o# @7 _$ J{2 g& K6 C+ l5 p$ L1 K3 H
j=0;- ?% `5 O4 P1 Y" F# O! a# E
}         
+ f1 Y! ?! w' [; N9 \9 D
/ R  b3 i9 u7 \; W

# K9 O" A- q! m0 q+ O  T4 ^. s! ?; j2 h
8 |3 ]# u: }$ G  ~
}         1 L) v5 }, g5 w7 A* n$ U

' T, o; N( A! ?6 x* x$ Y( Y: Z" ?9 Y2 p/ _
下载:9 Z0 k8 d% Q( U5 m/ a1 b) o9 p
游客,如果您要查看本帖隐藏内容请回复
2 Z8 J; D7 T  k* i
9 \% z9 i4 C% d: _. h9 O2 W8 a

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 00:03 , Processed in 0.156250 second(s), 26 queries , Gzip On.

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

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

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