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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
51单片机半导体甲醛传感器模块显示程序
" ~4 \9 a: ?/ T0 m& K+ v; R3 e7 @! a% N( J6 Q4 R! F

% ]+ N1 {5 \1 p) N6 d- v3 j/ Z6 R无意中某宝发现一款甲醛传感器,资料显示为每秒发送一组串口数据,其中包含甲醛值,使用的stc89c52rc,分享一下8 b! z- ~/ e& N0 E8 s  T1 ^
! v$ t/ D: y$ x
5 O" W4 I: c6 ?7 s% U; A
半导体甲醛模块单片机源程序:

, @) k3 [1 o. z3 _# E
0 {- t" z2 H% X( v) \8 k% U% T, b: F
8 u* x% y( u/ M9 o
1 i5 Y1 f$ r- X( s0 T% o6 E: m

  \# Z* X9 W- S* D" ~: U( }#include<reg52.h>
0 }$ S" {- v3 I3 e" V  c4 W#include "lcd.h"( Y" O& a! z/ k; A. u0 h6 L
#define uchar unsigned char8 z' E' d. h% J2 `; b4 R0 R
#define uint unsigned int
4 p: I, M. }5 e4 b- W+ o                                                       //可一次接收数据量
; U" `& J& [2 Z: \- { void rs232_init();1 s- d# Q& J7 k0 `9 b8 g  O' m
uchar flag,i,k,l;
% B0 G  h1 G: R/ [. g; m! y1 A uint num;                                                       //删除无用变量                           
4 ?7 }4 l& c" a* r" T1 @' t% W$ M# A3 o% Q5 K2 R
1 q" W/ G; l9 W6 {
uchar table1[9]; : q2 i- r7 c' W% t( M3 n. Y! r! `
uchar table2[6]={0x20,0x20,0x39,0x2e,0x39,0x39};                                             //接收缓存数组
/ ]3 j8 j. G) E) [" Y uchar j=0;                                                             //接收计数器6 x" R+ y' _3 b( P9 u

! i0 D) p3 {$ o
1 h' i% L- I0 o* d- o
void shujuchuli ()- T1 I$ i0 i( ?% S8 U+ m, p: G
{
: {$ r( U9 G6 K+ w- n- y  if(flag==1)( Y! K3 R( E9 n& c! j5 T
                 {' F9 J% t& O0 n6 K! ^. p1 I6 ~" n
                         ES=0;
( ^$ \: v% \, j                      4 Z3 ]2 j# Q5 p& n8 Q
                        for(j=0;j<9;j++)                        
9 c) _' a* u' v8 m                           {
1 H6 c' U. D- z' z% r- h                                SBUF=table1[j];7 P8 l, t5 ?% R
                                 while(!TI);5 l3 }/ F2 B+ {, r9 v$ h: F
                                 TI=0;
3 ~, Z7 Z" v/ x                                                }
3 W6 l& ?* T1 K6 I+ r; d* H                                                            num=table1[4]*256+table1[5];: x* {: x: _1 V  n" d/ G

. w* F5 y  q( l/ `0 \+ T* J

7 z  l7 T- w" V$ U: q                                                                table2[0]=num/10000;# h& ?$ P3 B7 a7 c6 p
                                                                table2[1]=num%10000/1000;5 p6 k) h) ~4 g3 o4 l9 i
                                                        
3 S# \5 y, n  E. r" \6 i/ b% L9 X                                                                 . w* I: x2 {; V1 b* Y! T
                                                                table2[2]=num%10000%1000/100+0x30;
1 R6 ~3 [: b" h$ g& G) }$ H                                                                table2[3]=0x2e;0 I1 `7 |* R" E3 M7 k  R5 ^
                                                                table2[4]=num%10000%1000%100/10+0x30;0 Q* r0 V  J" w% f4 g
                                                                table2[5]=num%10000%1000%100%10+0x30;
1 n7 M2 P. _3 U9 R; V                                                                ) _! V( a! z) ]
                                
9 v) j) q# ^2 L- U. o5 ^( m! Q& A                         j=0;                                           //清零接收计数器2 T, g$ @5 D0 @  r
                         ES=1;/ G: u2 u$ f% W( P+ h: W
                         flag=0;8 b, g/ `, _" y/ z
                 } 2 k3 L' t: u: P. D9 Y+ b7 n0 |1 x

* e( ]5 i) m, J% V, {2 Z. O6 Z

" I2 j2 Q- K% P* c8 C }
* }: p0 L; J. ?: a2 p; `; b' I8 }# L9 @! O9 g
; @8 o* P. }* M6 F2 o- I7 l3 }6 \

! ~: h5 d  j  N$ Z) l4 N

! [, j8 H' e1 Z, T0 O4 L: r6 V1 s1 x, y8 E1 b" z% {1 b

- ^( E) n6 M4 h9 ]
- D) }3 O$ Q  v* U0 l; \
% i) A$ Q5 A% }6 D8 R( n( o
main()
0 ^* X% m; Q0 t7 o {
+ ]* c  L: Z2 Z: g         rs232_init();4 g' ^% Q; M( I5 x  l; r) w3 h
               
; S& x+ q( l3 I- K8 O                  
0 [, I* o  j) K. @- [         while(1)" ]- ~, K: F5 }& u" j3 n6 c
         {! K9 v6 b2 U# O2 Z9 \
        
  t/ R1 e  R& F+ e* O                 LcdInit();, ~: {8 ~! `- @: `7 B

/ }. `* }" x2 H0 g# I9 f# t
" M5 ~, f! Y1 g/ I3 {1 f
                 shujuchuli ();
( r' p) g2 _, @  J& i7 q! F0 m' t                 
# J; l7 Q; y/ H  m3 e+ g7 n6 O/ @$ o  F        
& H3 R& u% L' x  E; @0 I: i
( `; L& E2 a& i
0 @" e, d* f; f0 {
            LcdWriteData(0x43);& b0 j+ C/ o9 C6 |6 X
                LcdWriteData(0x48);
4 e9 B! y* R; _4 |; {$ v! Y2 a2 _                LcdWriteData(0x32);
2 d: x% q. _: ?+ Z) R4 X* n                LcdWriteData(0x4f);
' o1 d8 K( z9 a' Y5 V) i! Q1 U' o                LcdWriteData(0x3a);( B2 I3 A- x0 }2 q. X5 g) {& R' X
        for(l=0;l<6;l++)1 X! X" P3 z5 i
        {
5 S8 m" e! a! E) p; I                LcdWriteData(table2[l]);        
; H+ _+ {* N, O- P7 `: h6 J; d        }
8 Q+ J: |: d* U' T1 s5 y! v8 Y* z                LcdWriteData(0x6d);
9 \8 p3 _. A2 f" l                LcdWriteData(0x67);
9 ~. ^# n( f9 }4 u# F: D) X1 [6 L: ]                LcdWriteData(0x2f);
% u- }) q2 F9 |' I                LcdWriteData(0x6d);
2 e" c9 W( _2 p/ x) v/ W  i                LcdWriteData(0x33);
+ h4 z; [$ t* x2 t5 _# r' Y        
7 d$ K0 H5 o( R- k3 H+ v           Lcd1602_Delay1ms(300);: ~$ c4 I* P3 ^4 j% z& ]+ N0 n
        }8 t1 p# r$ `" ^; v' P
}+ Q& F2 Z- @' l9 s# L4 X
void rs232_init()
8 F, C  C; f) L' J {
5 o, g* `/ l# @1 O) p         TMOD=0x20;% }: M' h# C. l; e" e5 d. f- z
         TH1=0xfa;+ t- Q4 n8 c; F6 E! G
         TL1=0xfa;1 p2 Q- S. e+ s+ v" I! h9 m
                 PCON=0x80;. M+ h. `" j- f/ T4 I2 H$ y
         TR1=1;* o! ?4 x# @  w( [: \8 Y% i& D) D  H
                 SCON=0x50;
: _: f: D8 ~$ o6 |8 V7 D0 ]                                                               //先设定号工作方式,在打开允许接收
. d& B1 m; t& f         EA=1;
0 a/ z# a1 p' H7 R         ES=1;        
" j3 s0 k; q. ^ }! h$ Y; W0 q: `( }# H2 S& G0 F
void ser()interrupt 4+ L. S' m  y( z0 d
{                 
+ }; F+ C* ~0 G' g     RI=0;  
3 E* |! ]4 |: q7 F         table1[j] = SBUF;
( {5 L  c4 ?% R: }) h    if(table1[j]==0xff&&j==0)
/ }6 y) X6 f( u* [" r {, B0 Z$ F' i: l0 a
j=1;1 {( X- K7 l* L# X( o" c0 w
}& m/ _1 D+ r6 D4 B) e
else if(j==1&&table1[j]==0xff)4 t8 a( W% T3 X+ X' {: R# M
{, V8 Q# M/ R& O
j=2;
2 u0 v) V! X% c}
; j+ t4 N# }$ ^; ], U
- R$ {" c  h' I  z. P$ N* A
( l1 q7 a: D9 m  C1 i' `1 @; Q% I1 n
else if (j==2&&table1[j] == 0x01)
) n2 R  ^& H7 _{5 |, y. N$ q! w5 d
7 e. b1 ?; @1 ]
5 z# n( Z- S& @8 P
j=3;
2 W. w' z, t  Z9 N. J0 `9 l) `9 a/ L" b- O6 f0 P( Q9 [
5 x9 w- s9 b& p3 n! C$ Y
}9 Z+ a9 a$ k- _- J4 W4 a- s7 Y
else if (j==3&&table1[j] == 0x27)
6 `& H" y; F$ c8 a% v; S* ~{
2 R; C: r6 H; k1 e) Y. Y
/ z3 r" ]1 @. T( z) l
# R9 B- C4 h- B( P4 x; m
j=4;
* O$ Z, v8 x# j. _1 X6 e  v8 g7 h+ {( P1 X* ~( V# ?
% F' A! k8 M. S# _7 g0 A9 q. ^4 y8 p
}3 x8 P0 h, y0 Q8 ~: g+ T
) H1 g9 h+ a9 z' g  t( P

7 h. [% X) N: U: A8 ]else if(j>=4&&j<8)
6 T  S0 \. `4 z{7 z# X3 }, M' y. N; b7 I9 ?# _

: c+ r3 l: ?. U8 |" ^0 A

+ A' d7 M9 I0 O& }2 Y# y: W1 ^$ {
3 P, C! M* }; k+ E+ ]0 jj ++;$ C) j2 ]/ G$ l/ o
}. z! A/ I! _7 F- l  e

6 T9 I& J2 T9 j
+ M( m0 h+ l0 |0 j1 B
else if(j == 8)
! V8 r/ ~8 z9 h/ t) ~{5 W: J  L0 @6 b5 t% p0 m6 Y

2 _9 k6 @* l. a7 x" eflag=1;
: l4 u4 t; D# I; s6 ^j=0;; o0 h3 Q5 k4 b# d
}- i: l0 n! k' h" w; v/ `7 K
else, ^  m- E9 P* e( i1 d5 v  _
{
$ M6 e. u  E: `" ^: V8 g j=0;* |' I* R5 K$ h  l/ i/ j
}         
& D) l4 {* B: O' _% O8 c$ i# g% _! Z+ d4 k% I$ x

1 g' N. D/ K2 X& R  j
2 f0 {$ N% q" A, K
+ V4 b5 k5 s( ~% z
}         " I8 e. a4 Q4 Y
7 m, W  R' E" f
2 ]6 C4 n, n% d" T, ~6 ?, o
下载:
, Y( Z! v8 s7 C: ^6 M* m
游客,如果您要查看本帖隐藏内容请回复
0 x6 d$ a7 y% }- Z; @
0 P) u* Y0 l$ {0 w# G

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-18 09:51 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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