TA的每日心情 | 开心 2023-5-17 15:19 |
---|
签到天数: 1 天 [LV.1]初来乍到
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
毕业设计论文) M8 f& |3 k7 j6 r3 a# O% O
基于单片机的大气压检测系统的设计
- o+ j* c! c1 P) v* a r摘要: 本系统是以MCS-51 单片机为检测中心的大气压检测系统。其总体设计是围绕低成本、模块6 `0 T1 M* S% z; n
化、微型化的特点展开的。在硬件选择方面, 选择性价比高的AT89 系列单片机、MPX4115压力传感器、) @" x( u9 W; p* s1 R
ADC0832模数转换器、四位一体共阳七段式数码管显示器;在软件方面, 采用了功能模块化; 源程序由C语
% N5 b) R4 L- r( i言编写,经过Keil μVision 软件编译,将hex 文件烧录到芯片中。为了降低整个系统的成本, 在满足性能
3 |. d _' s. q5 Y1 i/ H* G要求的前提下, 选择低成本元器件, 简化系统设计。同时,抗干扰能力强、微型化、微功耗等特点。& `6 {! y3 g" a" O* e1 X: D) x
关键词:大气压检测; MPX4115;ADC0832;C语言程序
4 F- d: w& D$ Q& q% T引言
2 `2 ?$ K, c+ T4 q近年来,随着微型计算机的不断发展, 它的应用在人们的工作和日常生活中越来越普遍。' `7 m. D0 X: Y$ I$ M- p3 C
工业过程控制是计算机的一个重要应用领域。其中由单片机构成的嵌入式系统已经越来越受; o- B8 U+ Q- G |2 ^/ A* }- Z @5 I
到人们的关注。4 c& P0 _& Z' d) C% f, p9 e' h1 H
随着科学技术的迅猛发展, 生产力水平迅速提升, 单片机性能不断提高, 价格不断降低,% H$ a0 g" i1 K
技术日趋成熟, 单片机广泛的应用于人们生活的多个领域, 这些东西都离不开单片机, 例如9 {3 `5 o' ]1 R2 q6 L, x. Z& a
导弹的导航装置, 工业自动化过程的实时控制和数据处理, 计算机的数据传输以及网络通讯,2 f4 ~7 f& z* I0 j& T/ I- R
各种智能IC 卡、摄像机、全自动洗衣机的控制,以及电子琴、电子宠物等等,而基于单片# `6 L) S* F- G0 y1 W0 f) ~" K$ t
机的大气压检测装置也是这类采用了单片机的电子产品。4 D+ m$ c0 k$ O# c6 Q8 A
若使用数字电路完成该设计, 那么所设计的电路就会变得十分复杂, 大概需要很多片数
3 A( I. R- _5 [字集成块, 它的功能的实现主要是依赖于数字电路的各个功能模块的组合, 价格相对来说比6 }0 B1 {# o& y4 n2 o' O
较高,从而成本会提高, 并且焊接的过程也比较复杂。在本次设计中之所以采用单片机制作," {6 W v1 L ~, o
是因为单片机功能的实现主要是通过软件编程来完成的, 同时也使硬件电路简单化, 并且其8 n7 E' H1 y+ o4 Y3 o3 G2 a! d* i# [" Y
成本也有所降低。
' _% V; H! C9 X4 L; h本次设计的压力检测装置是通过压力传感器将检测到的压力信号装换为电信号, 送至8
. _ ?9 E5 s8 q/ O, d1 x位A/D 转换器,然后将模拟信号转换成单片机可以识别的数字信号, 再通过数码管显示输出。0 S- s6 `* j* X8 d. ]* `
基于单片机的压力检测装置, 选择的单片机是基于AT89S52单片机的测量与显示, 将压力经2 d6 H5 {6 E. n0 J6 S
过压力传感器变为电信号,然后进入A/D 转换器将模拟量装换为数字量,这里所采用的A/D) k4 {. K5 S" |: Y) ^+ z! u
转换器为ADC0832,ADC0832为8 位分辨率A/D 转换芯片,其最高分辨率可达256 级,可以
' |2 Y9 o6 \1 Y7 |" ~# y* j+ w适应一般的模拟量转换要求。其内部电源输入与参考电压的复用, 使得芯片的模拟电压输入0 R: Y" ?1 X T
在0-5V 之间。芯片转换时间仅为32 s ,具有双数据输出可作为数据校验,以减少数据误
, x* ~- V. T5 b$ B7 d) b( v差,转换速度快且稳定性强。5 y) w# U, e$ ]' w! j! S
1 大气压检测技术简介
4 |$ `( U6 T; z1.1 大气压的概念及其研究意义
+ s8 @+ E8 k: `" O地球周围包着一层厚厚的空气,它主要是由氮气、氧气、二氧化碳相关试验、水蒸气和
1 Q& K! g! q& z& b1 i+ _ z3 M氦、氖、氩等气体混合组成的,通常把这层空气的整体称之为大气。它上疏下密地分布在地
1 c% w2 G2 O9 H6 |1 C球的周围,总厚度达1000 千米,所有浸在大气里的物体都要受到大气作用于它的压强,就' j) _9 [8 Z9 s' w, y9 h% K- i/ U
像浸在水中的物体都要受到水的压强一样。
( F8 U) B0 W' d5 o r0 _大气压的变化跟压强和压力的变化注意区别。大气压(通常指大气压强和大气压力) 是/ L1 E) h0 l* `, ~: _0 F
从宏观来论述, 压强和压力是从微观来讲。因而在理解上我们要注意区分不要搞混淆。一般$ ]: p" E4 q6 B8 c
来讲: 海拔越高, 大气压越小; 温度越高, 大气压越小; 空气越干, 大气压越大; 纬度越高,
. e3 c4 V% H7 u: T8 N! J大气压越大。
7 U+ ?6 R# C3 B1.2 压力传感器的分类及特点
9 A- Z _- U1 Q7 C! k7 N压力传感器是压力检测系统中的重要组成部分, 由各种压力敏感元件将被测压力信号转
, T1 j! \2 O1 K5 {7 ~9 N! q换成容易测量的电信号作为输出, 给显示仪表显示压力值, 或供控制和报警使用。科学技术3 W+ G! r0 b! `, Q5 ?! h) W3 E
的不断发展极大地丰富了压力测量产品的种类, 现在, 传感器的敏感原理不仅有电容式、压
( L6 s' ?, o. i) ~1 L9 {' b阻式、金属应变式、霍尔式、振筒式等等但仍以电容式、压阻式和金属应变式传感器最为多
$ S7 f% ?# |1 x见。& C W- ?/ J/ ^4 f
(1)电容式压力传感器
1 \7 O/ h) l; M! o电容式压力传感器, 是一种可以利用电容敏感的原件把被测量的压力转换成为跟它有一( x' \8 B+ n0 d' c" w3 f0 ~ _( U0 D) `
定的关系的电信号输出的精密测量仪器。它一般是使用圆形金属薄膜或镀金属薄膜来做电容) [+ C- O0 p3 Q6 X' S. M
器的其中一个电极。在薄膜感受到压力的时候, 它就会变形的, 此时薄膜跟固定的电极间所
( h" c2 E* N! m1 \( @产生的电容量就会发生改变。测量电路就可以输出跟电压形成一定的关系的电信号。
) ^& Y0 F9 w! H! F$ |7 z, b电容式压力传感器是极距变化型的电容式传感器, 有单电容式和差动电容式之分。6 `/ [) t% P0 d
单电容式压力传感器它是由圆形的薄膜和固定的电极组成的。当受到压力作用的时候,! F: ]0 e. R7 \: e
薄膜就会发生变形, 这样就会改变电容器的容量。它的灵敏度大概是跟薄膜与固定的电极之4 \9 L: Z( Q# L5 Z: O5 v V* p
间的距离和薄膜的张力成反比关系的; 而跟压力和薄膜的面积成正比关系的。有另外的一种
( N/ o- y$ |8 G# d c型式, 它是跟固定电极取凹形球面状的, 而膜片是周围边缘的固定的张紧的平面, 膜片能够4 `- [- Q) O- {7 G! N5 }, a. n/ E
使用塑料接着镀上金属层的这个方法制造而成的。这一种型式比较适合于测量低压这个工作+ U/ g$ O! `4 h/ S+ ~
条件的,它有比较高的过载能力。当然,要测量高压工作条件的话,可使用带有活塞动极膜+ v8 l/ b* g+ F% A' Q9 J" A8 u
片制造而成的单电容式压力传感器。这一种型式的传感器可以把膜片的直接的受压面积变 f/ F) K; O# ~' R. T
小,这样就方便使用比较薄的膜片以致来提高它的灵敏度。把它与各种的保护和补偿部还有; e+ C q8 _- L; m
放大电路的整体整合在一起,就会提高抗干扰能力。
@7 _% y5 L" J; s0 v, u4 H差动电容式压力传感器其受压膜片电极是处于两个固定的电极之间的, 可以形成两个电
3 w8 \9 r6 v$ f容器。当受到压力的作用的时候, 其中一个电容器的容量就会变大, 而另一个电容器的容量
; r7 H$ s% w2 B% X+ g) y% [就会相应地变小, 而测量的结果是由差动式的电路输出的。此传感器的固定的电极是由在凹1 O$ n3 C2 x. u5 U4 g, [
而曲的玻璃的表层上面镀上金属层而制造出来的。当过载的时候, 膜片就会受到凹面的保护,
$ g. L6 m/ ]7 N所以, 它是不会破裂的。相对于单电容式压力传感器来说, 它的线性度较好, 灵敏度也较高,
& ^$ i: K: Z* r- p但是在加工方面就比较困难了,并且它不可以完成对被测的液体或者是气体的隔离,所以,
2 q8 [) @" e* |- W$ b它不适合使用在有杂质的或者是有腐蚀性的流体之中。3 f( Z2 m- k0 S, K! X1 J" g
(2)金属应变片式压力传感器
' q T2 }. a, h/ d2 L) \, o. Y电阻应变片是由金属应变丝或者应变箔、基体材料、引出线以及绝缘保护片等部分组成。4 m% E. z! O6 X1 N, ]9 V, I1 |
电阻应变片的阻值根据不同的用途可按需设计, 但是电阻的取值范围应该需要注意: 如果阻9 i+ Q( F4 O9 b: Q
值太小, 所需要的驱动电流就会太大, 并且应变片会发热导致自身的温度过高, 应变片的阻
# X$ H! C" Q: A# H2 K值会因使用环境不同而变化很大, 调零电路过于复杂, 会有很明显的输出零点漂移。但是如: p+ A, Q F+ g! `
果电阻太大,阻抗太高,那么它在抗外界的电磁干扰的能力方面就会显得比较差。$ A T, l3 l7 _4 ~) v
金属电阻应变片的工作原理是吸附在基体材料上应变电阻随机械形变而产生阻值变化
; T& B6 l# h+ Q# R& I5 c5 `" ~的现象, 通常称为电阻应变效应。金属导体的电阻值可以用下面的式子进行表示:
/ ]" @/ Z+ y: B- RS
5 O7 P- N4 v4 W% v, _L
; B7 E; T7 K: k! h5 d$ h y n7 zR
) `. }; z, n/ i: ~式中: ——金属导体的电阻率 ( cm2 m . ): V% I0 Y( }5 o; ^
L ——导体的长度( m)) _. X6 F7 c% s8 @ a/ q- i) [
S ——导体的截面积( 2 cm )
# N5 }# @% F1 C. \2 t! T: a例如金属丝应变电阻, 当金属丝受到外力作用的时候, 它的截面积和长度都会发生一些0 @" Y v# i. ^, t! d5 P% A
变化, 从上述公式中能够看出, 它的电阻值就会发生相应的改变, 或金属丝受到外力作用而6 C: e" J0 p$ r9 E% W
发生压缩时, 其长度就会减小而截面积就会增加, 那么电阻值从而会相应减小。或金属丝受+ Y; B6 r, ?. \2 p6 E6 H, S
到外力作用而使其伸长时, 它的长度就会增加而截面积就会减少, 那么电阻值就会增大。若+ B) b, h; z7 k1 f
要获得应变金属丝的应变情况那么只要测出加在电阻的变化,通常是测量电阻两端的电压
" j7 d1 T! S$ m& e[1] 。, @) Q* o( o. h$ _$ D
(3)压阻式压力传感器
$ L5 {) ]! e0 G+ F6 J e) q压阻式压力传感器通常采用集成电路工艺技术制作, 在硅片上制造出四个等值的薄膜电
0 a& v6 S' t6 {3 O阻并组成电桥电路,当没有受到压力作用的时候,电桥就会处于平衡状态,没有电压输出;( M5 X+ Z: p" P6 y' z
当受到压力作用的时候, 单晶硅就会产生应变, 使直接扩散在上面的应变电阻产生与被测压
+ k, f8 P2 z/ P. F3 f3 q力成比例的变化, 再由桥式电路获得相应的电压输出信号。并且电桥就会失去平衡从而输出
8 I+ r5 l7 v8 R0 U0 m# M$ Y电压,且输出的电压与压力成比例[1] 。
5 R4 @' B" x3 o/ q4 k' j压阻式压力传感器具有以下特点:3 H* Y' i' S9 U/ x& Y& Y
①压阻式压力传感器的灵敏系数要比金属应变式压力传感器的灵敏度系数要大很多, 一6 a# K9 ^# A9 E2 l2 X
般是50-100 倍。有的时候压阻式压力传感器的输出不需要放大器就可以直接进行测量。本
/ x2 N8 i+ w- M% K1 x0 |" Q设计就是应用了此类型的压力传感器。
4 T3 ?' ?. U; G8 ]& b1 a" `$ h②压力分辨率高,它可以检测出像血压那么小的微压。& ^" s; @8 v y2 G0 D H0 J
③由于它是采用集成电路工艺加工,因而结构尺寸小,重量轻、结构简单。, V* R- X: p# ] Y
④它的频率响应非常好,它可以测量几十千赫兹的脉动压力。- o4 s9 {6 V" _) Q6 z+ I( j
⑤传感器的力敏元件及检测元件制在同一块硅片上, 所以它工作可靠, 综合精度高, 且$ W h7 {4 Q$ q: ^. [5 G
使用寿命长。 d: \( F: e8 i
⑥由于采用半导体材料硅制作, 传感器对温度比较敏感, 如不采用温度补偿, 其温度误
0 f3 w1 a9 q. Y' g( Q U3 m差较大。* F. a. C j# x. X' y
1.3 发展趋势& s. N3 W. A' B( D) d. h
现代信息技术的三大基础是信息采集(即传感器技术) 、信息传输(通信技术)和信息/ Z G2 P9 d- \8 r: H. L; z C
处理(计算机技术) 。传感器属于信息技术的前沿尖端产品,随着硅、微机械加工技术、超
$ Y# j9 @6 F6 q# k9 q8 O- J大集成电路技术和材料制备与特性研究工作的进展, 使得压力传感器在光纤传感器的批量生9 F! N8 c% c% f X
产、高温硅压阻及压电结传感器的应用成为可能, 在生物医学、微型机械等领域, 压力传感器+ J- a/ y# |6 D5 e
有着广泛的应用前景[2] 。
0 Z* M* V4 \: I2 基于单片机的大气压检测系统的硬件设计
& V. d6 E$ p' m" m9 n+ v* m2.1 大气压检测系统的原理
# Z2 q* W5 q" h* e, C0 C, W本次设计是以AT89S52单片机组成的气压测量, 系统中必须有前向通道作为电信号的输
! k: l1 Y2 A- L# l" i% W入通道, 用来采集输入信息。气压的测量, 需要传感器, 利用传感器将压力转换成电信号后,
! X* o, A# G; m' i# Z再经A/D 转换为数字量后才能由计算机进行有效处理。然后用LED进行显示, 设置气压上下
" j( q1 f% e; ~: G( ] L7 _限,超过其压力值就报警。使用三极管,电阻和蜂鸣器组成的报警电路。其原理图如图11 y/ a" X; v$ F4 f1 h
所示:' ^4 ]9 |: Q$ w# Z
图1 压力检测系统的原理图
/ s9 H6 S3 _0 ?2 D2.2 主电路的设计
) K5 e& M6 n" m( X% u( T2 ]- d(1)主电路
; P, T9 S7 T3 e本气压检测系统装置微处理器采用AT89S52 单片机,压力传感器为MPX4115,ADC08329 S1 Z6 p" x0 S/ Q4 h3 C9 r6 z
气压传感器" R) V. ?9 h8 n- L+ j. l2 r
报警电路# ?0 h4 i- Z. z/ M: u; i
A/D 转换器AT89S52 单片机% c% Y7 h" F' q& e
复位电路 |- y; g, g4 o2 T: K
数码管显示 O, J$ ^( y% x$ E2 u
模数转换器进行数据转换, 采用单片机直接驱动四位一体共阳七段式数码管进行压力数据的, y% A! J7 i# E% p: J- e5 H
显示。并且系统气压范围为15kpa--110kpa ,如果超过气压设置的上下限,系统就会报警。5 l6 I6 \4 J) O5 a6 ^
硬件电路原理图如图2 所示:
9 b* j; Y" f* p9 Z- a图2 硬件电路原理图, ]- R9 d5 F: h4 G5 m# k/ @3 f
(2)MPX4115管脚连接电路/ _/ \- u8 H9 P) o" V4 h
图3 MPX4115管脚连接图
B! ?+ x# c/ c3 BMPX4115 气压传感器的1 脚接ADC0832的CH0端, 2 脚接地, 3 脚接电源。另接一个电' q. ^) q" c% q6 v* O- }: s
压表,作为参考。( o3 b# ~9 \5 s5 r" d
(3)LED数码管显示电路
1 j# u- F" r6 C5 J& ^ S图4 LED 数码管显示电路
+ r% F( ~) p1 ^9 h5 W Q s; u(4)报警电路7 M1 W& d/ V; E/ h; A
系统中的报警电路是由三极管、蜂鸣器、和限流电阻组成,并与单片机P1.4 相连,其 w$ M" K" O' O: x- k
电路图如下:( T! U2 [4 F1 T4 m' U
图5 报警电路/ ^( l- ]) ]0 B/ R: i8 d9 U
(5)复位电路: `6 p$ c3 o6 |' q# V
图6 复位电路, u; X2 U- ^, q6 E' r' g
2.3 压力传感器
: f9 f- c1 G$ H6 M0 r(1)压力传感器的选择
! ]( x: ? x' q' ?# T& l4 K0 Q% j压力传感器对于系统至关重要, 需要综合实际的需求和各类压力传感器的性能参数加以
8 v; x% I ]; Q选择。一般要选用有温度补偿作用的压力传感器, 因为温度补偿特性可以克服半导体压力传
6 q2 I1 y! y1 e8 i感器件存在的温度漂移问题。' i* Y: L( |9 T( U
本设计要实现的数字压力显示的是绝对压力值,同时为了简化电路,提高稳定性和抗
7 x# O2 D K' q; u2 Y' }' T干扰能力, 要求使用具有温度补偿能力的压力传感器。经过综合考虑, 本设计选用美国摩托! E. W' U( h) E4 u
罗拉公司的集成压力传感器,MPX4115 压力传感器可以产生高精度模拟输出电压,并且内部
4 e- R# H* Q0 K a5 A: k. \, ]含有放大电路,不需要另外加放大电路。. Y% v5 [; M9 V) `. o* c$ {
(2)压力传感器MPX4115的原理[3]6 m$ [. I) Z9 D- C2 c
MPX4115系列是压电电阻传感器是一个硅压力传感器。这个传感器结合了高级的微电子" U* c$ ]8 \" z3 c
技术,薄膜镀金属。还能为高水准模拟输出信号提供一个均衡压力。在0℃ -85 ℃的温度下
/ `! p' B( t. K$ S# X误差不超过1.5%,温度补偿是-40 ℃ -125 ℃。小的外形和片上集成的高可靠性,使得它很受
' t w/ R; y! W! \! [3 c欢迎[3] 。它的实物如下图所示:2 v# y* } H2 I. g
RST
9 e& A. V+ Q, q# O5 `图7 MPX4115 的实物图7 g" } V+ L" D2 h5 J0 \4 C) V
①压力压传感器MPX4115的管脚说明如表1 所示:1 {& h3 T5 V9 e5 N1 U" J0 X7 [
表1 压力传感器MPX4115的管脚说明
3 K' F$ M* M, k$ T. ^7 j. t+ R②压力传感器MPX4114的特性参数如表2 所示:
9 m9 m* M1 f6 U! h& a. O- f5 c: E表2 压力传感器MPX4115的特性参数; X9 f& i. W0 e8 [$ R2 x
2.4 A/D 转换器 p$ \( Y* Y& Y) }& @- E9 w3 x
1 2 3 4 5 6
. c0 A8 M. s* V4 C" ^: pVOUT GND VS N/S N/S N/S
o+ y4 H9 T+ ~/ u; B* D参数符号最小典型最大单位
, }# j5 K, i" j+ f5 ?压力范围Pop 15 - 115 KPa3 y) f% y& I0 Z# ~+ U1 N
供电电压Vs 4.85 5.1 5.35 Vdc. w: w/ k% X& ~& w8 A2 q, t
供电电流Io - 7.0 10 mAdc
. q: w6 R) G6 h3 _最大压力偏置(0℃~ 85℃)+ u* }4 M5 d* {* F6 J. h
@Vs=5.0V7 B; [# u* c7 V; w. m \* l7 w- C
Vpss 0.135 0.204 0.273 Vdc" P8 t* _3 h0 e" c" X
满量程输出(0℃~ 85℃)
0 e2 X1 d3 {1 a@Vs=5.0V
) M4 R. E }) k. P# o8 iVoff 4.725 4.794 4.863 Vdc
0 F& o/ r# r( z& ~1 L1 W9 U满量程比例(0℃~ 85℃)
9 y% l& O5 ^4 X: ?$ w/ p@Vs=5.0V
7 p+ a. t9 x1 o8 ^; dVFSS 4.521 4.590 4.695 Vdc
6 k ]7 M. D0 {2 `6 H精度(0℃~ 85℃) - - - ±1.5 %Vfss
4 k3 o6 s; K: P3 w% o7 _: U5 e# d灵敏度V/P - 45.9 - mV/KPa
# X! y$ u- v" W' w响应时间( 10%~ 90%) tR - 1.0 - ms& {4 e. [ R; }: U2 k
上升报警时间- - 20 - ms6 m m4 m l u7 f% R E& i) E
偏置稳定性- - ± 0.5 - %VFSS7 c0 i( I( X4 S* @
模拟量输入通道的任务是将模拟量转换成数字量。能够完成这一任务的器件称为模数转6 h% t; H& t3 `+ J' K
换器,简称A/D 转换器。
0 [1 N1 h' ?. C. Q2 G4 Z0 I(1)A/D 转换器的选择3 H( Q" s" n7 B5 K- E
目前单片机在电子产品中已经得到广泛应用, 许多类型的单片机内部已带有A/D 转换电3 W& y! ~! V5 v
路,但此类单片机会比无A/D 转换功能的单片机在价格上高出很多, 我们采用一个普通的单
0 p, d. o7 a( n. M0 J- j片机加上一个A/D 转换器,实现A/D 转换功能,可以选择ADC0832、ADC0809等;串行和并
6 {2 h$ b2 A, W% i* z' ?行接口模式是A/D 转换器诸多分类中得一种, 但是却是应用中器件选择的一个重要指标。对
/ a2 C) z# D" L; d' xA/D 转换器的选择我们通过比较ADC0809和ADC0832来决定。这两个转换器都是常见的A/D
5 n k( |' P+ V% U4 f# Q5 H转换器,其中ADC0809是并行接口A/D 转换器, ADC0832是串行接口A/D 转换器。本设计选
2 o! @# b% I, L* a0 K3 K择的是ADC0832,A/D 转换在单片机接口中应用广泛,串行A/D 转换器具有功耗低、性价比2 {9 g) l5 P3 a
较高、芯片引脚少等特点。) e" P% @2 ~* ^7 k" B) K9 `: d# J
(2)ADC0832的简介
& F2 p3 ?1 N R①ADC0832引脚功能6 }2 I+ S1 U( F6 K2 Y2 W! z3 Z8 b
ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D 转换芯片。因为7 H4 w0 v/ U% H/ Y8 U
它有体积小, 兼容性好, 性价比高等特点而得到单片机爱好者的亲赖, 其目前的普及率非常
. E9 K t5 E& k h/ X5 v高。ADC0832 为8 位分辨率A/D 转换芯片, 其最高分辨可达256 级,可以满足一般的模拟量$ M/ t- t' } e' f/ ^" F, n
的转换要求。其参考电压的复用与内部电源输入,使得芯片的模拟电压输入在0~5V 之间。: V2 Z, b. l* ~
芯片转换时间很短,仅为32μS,可以通过双数据输出作为数据校验以减少数据误差,其转1 R+ J9 r) ], j% q# B7 \
换速度快且稳定性能比较强。通过DI 数据输入端,可以轻易的实现通道功能的选择[4] 。其
# Y% t# @6 X/ B) ~+ _; e引脚图如图8 所示:
7 o3 e( P# f/ b( E$ |+ t# C; {图8 ADC0832 引脚图
3 g/ X2 V h( U8 t% b__
3 D) W( W- R0 \ ]- p& r) _cs 片选端口,低电平时芯片工作;
8 R' ~. n! Y. k! X% K( V; i" lCH0 是模拟输入通道0,或者可作为IN+/- 使用;/ Y$ p9 g( D ]. q( K% R
CH1 是模拟输入通道1,或者可作为IN+/- 使用;
9 ]2 W1 F8 d4 `9 x4 V+ [3 gGND 芯片参考0 电位(地);
, B$ N- _# u' w F3 v7 aDI 是数据信号输入,选择通道控制;* a3 d* {. Q: y x% r
DO 是数据信号输出,转换数据输出;
6 Y# `0 h' ^: C9 u. q( yCLK 是芯片时钟信号输入;: f: g: g# Y7 x2 T# w/ f
Vcc/REF 是电源输入及参考电压输入(复用) ;
, J, y9 C. G/ v. w. D. [) y②ADC0832的特点:
% a5 c* R8 ]3 k* u8 w8位分辨率;0 a7 J* H* N+ Z6 |& b. p
双通道A/D 转换;9 _7 w9 z5 m4 `0 K- y/ J
输入输出电平与CMOS/TTL相兼容;
8 T4 e! G8 U# P2 |5V 电源供电的时候输入电压的范围为0~5V;! E5 S8 [. h* _+ J3 ~" Q) {9 g% J
转换时间为32μS,工作频率为250KHZ;( P" Y) S! f: E7 y4 D! ]/ T
一般的功耗仅仅为15mW;6 M" y9 A5 C) v
8P、14P—DIP(双列直插) 、PICC 多种封装;, @+ J6 {5 O* b9 \9 B% e3 q
商用级芯片温宽为0°C ~+70°C,工业级芯片温宽为-40°C ~+85° C;
3 s3 b/ g8 C' Y8 N' Q③配置位说明[5] :
' E3 F% f4 a! M: M9 ~$ }% I4 YADC0832 工作时,输入时序的配置位决定了模拟通道的选择及单端输入和差分输入的 H' x" l! T* }' t8 v
选择, 如果是差分输入的时候, 就需要分配输入通道的正负极性, 两个输入通道的任何一个9 L8 R: G. U7 x; [/ f/ ]" N
通道都可作为正极或着负极。ADC0832的配置位的逻辑表见表3 所示:
4 f7 F. D4 J8 c' }表3 ADC0832的配置位逻辑表
) B# l( l4 R; n2 N" c输入格式配置位选择通道号) W1 V! C$ N" [) b, S2 {% w
CH0 CH1 CH0 CH1
5 g1 P( h) Z! f; `+ D差分L L + -( B) \1 _6 e& T; X9 a
L H - +/ l* T; ~* L! L: g7 z
单端H L +
; A4 P1 a$ R( A$ o- tH H +. T ] j, A* r
表中“ +”则说明输入通道的端点是正极性; “ - ”则说明输入端点是负极性, H 表示高8 P% _! b$ f' S( O4 q" G
电平且L 表示低电平。输入配置位时,低位( CH1)在后,高位( CH0)在前。9 f( [0 Z8 a& u
(3)ADC0832的工作时序图
6 U% B) r# N" L" O由图可知,若当CS从高电平变为低电平的时候,那么就选择ADC0832。在时钟信号的
' X6 d: z4 J8 t; _- p上升沿时DI 端的数据就会移入到ADC0832内部的多路地址移位寄存器。在第一个时钟信号3 p0 k) d1 Z T9 K6 R& r! k. E
期间, DI 为高,则说明启动位,紧接着就会输入两位配置位。当输入启动位和配置位后,- i, A- [0 q3 ~1 v1 Z: C
选通输入模拟通道, 转换开始。转换开始后, 经过一个时钟周期延接着在第一个时钟周期延7 \" j( V J: ^) M) x; h$ b
迟,以使选定的通道稳定。ADC0832紧接着在第4 个时钟下降沿输出转换数据。数据输出时
* I) |, _6 [9 x6 l9 o2 u8 A. }先输出最高位(D7~D0),两次发送的最低位共用。当片选CS为高时, 内部所有寄存器清0,
% ~3 v: R4 b4 l4 _输出变为高阻态。如果再进行一次模拟转换, 片选必须再次从高向低跳变, 后面再输入启动
8 V' a1 |! ^0 x9 S0 a5 o1 T4 Q位和配置位[4] 。. ^3 I$ ?3 E7 ]
图9 ADC0832的工作时序图" k. H7 g: J9 n: Y/ A6 }, }+ A
(4)单片机对ADC0832 的控制原理4 Q- y; C$ q/ {: R
ADC0832 与单片机的接口电路如图10 所示:
% ~- H' G' j) f, [图10 ADC0832与单片机的接口电路图) \6 c. D! b7 }2 } J& j) f3 y/ u
一般情况下, ADC0832 与单片机的接口应为CS、CLK、DI 、DO这4 条数据线。在电路设, ^. f6 w4 ]: |" M9 h! U2 p
计的时候可以把DI 和DO并联在一根数据线上进行使用, 这是因为DI 端与DO端在通信的时' A* c1 V/ B$ X+ G( V$ k. w7 Y3 v
候并没有同时有效的而且它们与单片机的接口是双向的。如果当ADC0832芯片的CS输入端
! T- N" ]7 ?1 g, G- x" n2 c为高电平时表示ADC0832停止使用,若CS输入端为低电平时, 表示此芯片工作。CLK 和DO/DI) j1 b" S* y% J- F9 }) U
的电平可以任意。当要进行A/D 转换时, CS输入端必须要置于低电平并且保持低电平直到; @$ \6 i# h( B, b* e
转换完全结束为止。与此同时芯片开始转换工作,并且同时由处理器向该芯片时钟输入端. J2 Z; S" Y% b" Q7 I: X
CLK 输入时钟脉冲, DO/DI 端则会利用DI 端输入通道功能选择的数据信号。在第一个时钟
3 a: c" e5 l7 i1 Z脉冲的下降之前DI 端一定要是高电平,用来表示启始信号。在第2 个脉冲和3 个脉冲下降$ Y6 N) b3 _( C2 `% I8 ?! E5 R
之前DI 端需要输入2 位数据作为选择通道功能。其功能项如表4、表5 所示:: D' f2 {5 P& e' c9 r8 c( @( c, Y
表4 功能项表( 1)
0 O6 v( I% ?# I$ [- e" y- qMUX Address Channel
5 R2 S% O4 j3 O9 M, B( eSGL/DIF ODD/SIGN 0 1& i2 \! Q' X2 T5 c5 A7 I6 I, Y
1 0 +: t) Y4 n A# U! v1 b
1 1 +
( K% j3 |, p: j* e表5 功能项表( 2)
( W9 d* f6 A" k/ g8 s- W: P3 {/ LMUX Address Channel6 i7 w% x: m- {% Z9 P
SGL/DIF ODD/SIGN 0 1
: ]1 a j9 J2 K, G" ^/ |0 0 + -
" v( k3 X4 K5 k4 b0 Q* z, L0 1 - +
% m& i9 R( U3 t! x如表,若当这2位数据都为“ 1”、“1”时,表示只对CH1进行单通道转换,若当此2位数
8 W6 q _" n+ Q; s z* A- I据为“ 1”、“ 0”时,表示只对CH0进行单通道转换。若当这2位数据为“ 0”、“1”时,表示$ u( Q: k8 V: S# i7 s9 `
将CH0作为负输入端IN- ,CH1 作为正输入端IN+进行输入。若当这2位数据都为“ 0”、“0”
- ]0 u1 g3 T. y. k" S+ T时,表示将CH0作为正输入端IN+,CH1作为负输入端IN- 进行输入。当到第3个脉冲的下降
& w! @4 s0 ^- O/ I之后DI 端的输入电平就会失去输入作用,此后DI/DO 端便会开始读取转换数据,这是利用
. j" g0 ~3 X( y, A c数据输出DO端来进行的,从第4个脉冲下降开始由DO端输出转换数据最高位DATA7,之后
, s' |+ y& S. u( q# L4 z. I, s2 N每一个脉冲下降DO端就会输出下一位数据。直到第11个脉冲时发出最低位数据即是DATA0,/ h7 Z1 n) d6 O( V$ B% E4 I
这样一个字节的数据输出就完成了。同时也正是从此位开始输出下一个相反字节的数据, 也# w) @1 o$ W( s9 G; O
就是说从第11个字节的下降输出DATD0。之后输出8位数据,直到第19个脉冲时数据输出完. L( ]7 Z/ g! n# ^0 L9 |. m
成,这也标志着一次A/D 转换的结束。最后把CS输入端置高电平表示禁用ADC0832芯片,4 K$ Z7 i) r/ W' A: g. D
之后直接将转换后的数据进行处理就可以了。
8 u! b' x( Y* `5 k. H' P: j作为单通道模拟信号输入时ADC0832的输入电压的范围是0~5V 并且8位分辨率时的电压
6 N3 d2 e5 I% U& J精度为19.53mV。如果作为由IN- 与IN+ 输入时, 为了提高转换的宽度, 可以把电压值设定在! \3 h- Q: @9 ~* S5 j% W* b, p
某一个较大范围之内。但是值得注意的是,在进行IN+与IN- 的输入时,如果IN- 的电压大! w$ N% F w; D, F3 G' ]" a% ~
于IN+的电压则转换后的数据结果始终为00H[4] 。
, J2 e# [- l6 [+ ]2.5 单片机
0 N, T, M+ }9 ]随着电子技术的发展。单片机的功能将更加完善,因而单片机的应用将更加普及。它们
8 Y0 ]. S( `) e4 M. Y" q3 }将在智能化仪器、家电产品、工业过程控制等方面得到更广泛的应用。单片机将是智能化仪0 ?/ o7 a0 v- J' y0 M; S- \
器和中、小型控制系统中应用最多的有种微型计算机。
- m: c; t4 z9 D7 b& y! p(1)AT89S52单片机简介[4]
- m6 ], \: ]! S, _: W% pAT89S52 为 ATMEL 所生产的一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可& b7 h" \5 g, z* V! I2 y
编程Flash 存储器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的
! @0 w$ v7 _6 z6 S( L$ n MMCS-51指令集和输出管脚相兼容。其引脚图如图11 所示:6 d* ?/ {# ]9 b) N* m0 _! {7 V
图11 AT89S52 引脚分布图
0 C6 @! l V* v0 U( R# f$ J(2)AT89S52主要功能[6]/ P9 O, @, ]; O& z% b! b: N1 c
①拥有灵巧的8 位CPU和在系统可编程Flash( i8 n) S0 F1 C" q
②晶片内部具时钟振荡器(传统最高工作频率可至 12MHz)
& y# R* \5 D$ w# B' I) _8 a③内部程序存储器( ROM)为 8KB
) G. B' k3 g/ V R. a④内部数据存储器( RAM)为 256 字节" Y# h6 t3 {3 A9 h
⑤32 个可编程I/O 口线4 q. ?2 F% q& v) s# a1 p: A* j
⑥8 个中断向量源0 Q$ A) J; Y" h$ J
⑦三个 16 位定时器/ 计数器7 c3 [+ V" |3 r6 h+ J
⑧三级加密程序存储器
- u0 [' T( C" T# P5 j' F⑨全双工UART串行通道8 A; x/ b5 j, K5 K
(3)AT89S52各引脚功能[6]- G1 f7 N- x: t. o& [7 R
VCC : AT89S52电源正端输入,接+5V。
9 l: l/ g. o. O5 UVSS :电源地端。
- d6 F1 g( X" SXTAL1 :单芯片系统时钟的反相放大器输入端。
' H9 h; L' u2 w& K% yXTAL2 :系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接9 t% G4 I; p+ b! ~; @. r
上一只石英振荡晶体系统就可以动作了, 与此同时还可以在两引脚与地之间加入20PF 的小 ^/ F+ y" G$ _$ Y
电容,这样可以让系统更稳定,避免因为噪声干扰而出现死机情况。
4 }! S( O- u) f3 O+ T8 O; eRESET :它是AT89S52的重置引脚,高电平有效,当要对芯片重置时,让AT89S52完
, z" u" |" L' ]1 I0 ]) s5 v成系统重置的各项动作,则只要对此引脚电平提升至高电平并保持两个机器周期以上的时7 n3 Z# d3 J2 Z' y& s" u
间,可以把内部特殊功能寄存器的内容都被设成已知状态, 并且至地址0000H处开始读入程4 w% l1 q$ q$ C
序代码而执行程序
* n$ E b) Q: L: m" f[7]
3 A9 w4 K: z( F! |。
. I2 w1 ] P/ m) {EA/Vpp :EA:存取外部程序代码,低电平有效,这表示当这个引脚接低电平后,系统3 M& d p3 {3 ^% M' q; Q# M
会取用外部的程序代码(存于外部EPROM中)来执行程序。因此在8032 和8031 中,因为其
7 t3 U, `$ f8 L! s% ~* ]+ ^* k内部无程序存储器空间, EA引脚必须要接低电平。如果使用的是8751 内部程序空间时, 此6 N$ v0 C( a5 j9 s/ c) D
EA引脚必须要接成高电平。
' ]0 s3 q; Y+ M# g3 s0 O( dALE/PROG :地址锁存器启用信号。因为AT89S52是以多工的方式送出地址及数据的,
1 Y( l" C! i" T所以AT89S52可以利用ALE引脚来触发外部的8 位锁存器(如74LS373),将端口0 的地址+ c j5 m6 k& z# K; j
总线( A0~A7)锁进锁存器中。之所以可以利用ALE来驱动其他周边晶片的时基输入,是因3 ?' j, x1 y. \! O, U6 }; ^. [
为程序执行的时候ALE引脚的输出频率约是系统工作频率的1/6 。, d/ g# x6 F$ n K
PSEN :此为“ Program Store Enable ”的缩写,它表示的意思是程序储存启用,将
y; ^6 Z3 y' r+ r8051 设成为读取外部程序代码工作模式时( EA=0),就会送出此信号从而取得程序代码,一
: r8 ~# `) }! O4 d般情况下这支引脚是接到EPROM的OE脚上。AT89S52也可以利用RD及PSEN引脚分别进行% `1 y5 c. i0 s8 c5 M/ _, B
启用存在外部的EPROM与RAM,这样可以让程序存储器与数据存储器合并在一起而共同使用
7 P; I7 c: w/ x1 m6 @+ Z( {* s64K 的定址范围。
: C4 l2 k1 ^7 s9 g; o# C: WPORT0 ( P0.0 ~ P0.7 ):
8 F7 I' d% A' T$ J端口0 是一个8 位宽的开路汲极( Open Drain )双向输出入端口,共有8 个位, P0.0
- S) [+ ]1 K0 D. F* T表示位0,P0.1 表示位1,依此类推。其他三个I/O 端口( P1、P2、P3)则不具有此电路组
1 L8 T2 H/ Y$ v8 l% Y) P8 Y: ~态,而是内部有一提升电路, P0 在当做I/O 用时可以推动8 个LS 的TTL 负载。如果当EA
5 @" V3 j, d3 N$ A D) M) `+ _; s引脚为低电平时(即取用外部程序代码或数据存储器) ,P0 就以多工方式提供地址总线(A0~3 n6 S& M! U8 A; i! z* J4 s
A7)及数据总线( D0~ D7)。设计者必须外加一锁存器将端口0 送出的地址栓锁住成为A0~
9 ?- _- H1 M# h RA7,再配合端口2 所送出的A8~A15 合成一完整的16 位地址总线,而定址到64K 的外部存, d- |/ h# [7 q B2 V$ }
储器空间# c$ R2 \; h) c. m9 h
[8]( G; P; N1 G& S+ U
。
/ a7 b8 Z$ m! ? fPORT2 ( P2.0 ~ P2.7 ):. U6 R f+ z* r' o2 r* ]0 `
端口2 是具有内部提升电路的双向I/O 端口,每一个引脚可以推动4 个LS 的TTL 负. z2 q0 A5 |5 L9 h; j+ Q% j( Z
载,若将端口2 的输出设为高电平时,此端口便能当成输入端口来使用。P2 除了当做一般
3 K6 T Y$ g# [9 j: _I/O 端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的, _/ c. a- q" w+ u5 p- u, O
高字节A8~A15,这个时候P2便不能当做I/O 来使用了。9 \4 r- o' W. {$ e6 q; R( b. r
PORT1 ( P1.0 ~ P1.7 ):4 G9 V+ b6 f! P ~+ [
端口1 也是具有内部提升电路的双向I/O 端口,其输出缓冲器可以推动4 个LS TTL; x" v3 k2 B: n/ T$ z
负载,同样地若将端口1 的输出设为高电平,便是由此端口来输入数据。如果是使用8052( M% i' D$ o6 a( E) F
或是8032 的话, P1.0 又当做定时器2 的外部脉冲输入脚,而P1.1 可以有T2EX功能,可以; ?* Q1 ~6 {! n3 x$ u
做外部中断输入的触发脚位。
5 i8 Y' w" v8 C! ^4 `+ A) m7 |PORT3 ( P3.0 ~ P3.7 ):1 R8 }7 W. O/ g- M7 R. Z$ |
端口3 也具有内部提升电路的双向I/O 端口,其输出缓冲器可以推动4 个TTL 负载,
# g! _ z- U$ ^* E6 J! x) n8 ?同时还多工具有其他的额外特殊功能, 包括外部中断控制、串行通信、计时计数控制及外部
. R7 x3 x% ^( p3 b数据存储器内容的读取或写入控制等功能
2 @' t) k4 ]4 Q[9]
, S' Y6 `' B3 Z% r% {- L2 \。" }5 D- p4 T' D, p. G& l$ {2 t! x
其引脚分配如下:
& O3 X. ?2 N8 `- OP3.0 :RXD,串行通信输入。$ j; ?, n- R+ A$ q, B. n. D
P3.1 :TXD,串行通信输出。) |8 S; X4 O5 X6 ~. N6 z
P3.2 :INT0 ,外部中断0 输入。
' G, ^2 G0 l. S, bP3.3 :INT1 ,外部中断1 输入。9 q0 }0 a4 V5 S% v; e
P3.4 :T0,计时计数器0 输入。0 V/ N. }# z7 [7 B& H" ~: y$ v! ~
P3.5 :T1,计时计数器1 输入。
5 N0 o# x; N zP3.6 :WR:外部数据存储器的写入信号。
7 n. i" I) `: e# xP3.7 :RD,外部数据存储器的读取信号。
! N6 T# C4 S, b* jRST :复位输入。3 s; V4 i9 N% ^# `4 `+ R& ^
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期) v6 p5 `- B# n7 }& v$ n
两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
, T. J$ ]8 u1 |3 Y8 U/EA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器( 0000H-FFFFH),不管& p9 o( V. e% R% E! h/ U. q3 p
是否有内部程序存储器。注意加密方式1 时, /EA 将内部锁定为RESET;当/EA 端保持高电6 E" _( H+ p; u
平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V 编程电源( VPP)。
4 U* s" K: u& ?9 T# [6 g2.6 LED 显示接口) b' [9 z- B% o( B P
本次设计是利用AT89S52单片机与四位一体数码管相连, 这种设计方法具有硬件结构简
( } }( J: Z8 y: x单、软件编程容易和价格低廉等点。. ?% Z* B) \5 N+ d% q
(1)LED数码管+ q x2 p0 }$ g3 \$ n6 w/ ^
数码管由8 个发光二极管构成,通过不同的组合可用来显示数字0~9、字符A ~ F 、H、
% K4 c, M& u; i O$ p0 i. N; O$ @L、P、U 及小数点“ . ”。数码管显示器根据公共端的连接方式,可分为共阴极数码管(将+ I+ z h) p. g6 a% }' i# L- z
所有发光二极管的阴极连在一起)和共阳极数码管(所有发光二极管的阳极连在一起)。以. M$ I4 K. N( B R( s
共阳极数码管为例, 8 个发光二极管的阳极连接在一起,其共阳极接高电平(+5V) ,其它引
$ t9 B U+ A) q9 e; u) r7 B% g脚接段驱动电路输出端。当某一段为低电平的时候, 该端所连接的字段导通并点亮, 根据发8 A, j5 X' y$ ^
光段的不同组合显示数字或字符[11] 。
Y- b) c) f- l) n6 [共阳数码管的七个段笔画是用低电平(“0”) 点亮的, 要求驱动功率很小; 而共阴数码管! ]8 a; r4 }4 ^* J7 T
七个段笔画是用高电平( “ 1” ) 点亮的,要求驱动功率较大。并且每个段笔画要串一个数百8 S2 D6 K6 P, F0 o
欧姆的降压电阻。所以本设计中在共阳数码管的段笔画上串了一个上拉排阻。
3 \! k( n+ B4 O& |图12 LED 数码管
) n! }5 E+ `3 G要使数码管显示出相应的数字或字符, 必须使段数据口输出相应的字形编码。共阴极和
# i2 }# e( J t, F V共阳极数码管的字形编码各不相同,见表6 所示:
! u/ b7 W. R# y9 q5 y/ @5 J* ^* v表6 LED 的16 进制ASCII 码表+ J4 B5 J8 V; Q2 {+ X
显示字符共阳极字符共阴极字符显示字符共阳极字符共阴极字符4 `2 ?- m; T; w$ Q0 F& S( w
0 COH 3FH A 88H 77H# H& B* q4 z1 i9 o7 E! i
1 F9H 06H B 83H 7CH
( K, g( p& w) H$ O4 A2 A4H 5BH C C6H 39H
v+ E$ ^2 F- i- J A7 d! ^& A3 BOH 4FH D A1H 5EH( j" \# w" E# r5 c. r
4 99H 66H E 86H 79H
& |. ?6 b- Y9 o9 x0 g5 92H 6DH F 8EH 71H
; e2 D* b. `* U, F1 C8 A8 |+ t! }( ?6 82H 7DH P 8CH 73H
" Z' _& I e! a5 a7 F8H 07H H 89H 76H
( i6 A5 S( \ s( r( i, q8 80H 7FH L C7H 38H
% Q) F- d& L0 _( L6 R9 90H 6FH “灭” FFH 00H
( e/ M) J" [" h. z(2)四位一体共阳数码管8 N: m9 e# w1 @' u
数码管内部有4 个单个数码管共用a~dp 这8 根数据线,为人们的使用提供了方便,因
$ r! }9 G) j2 }7 t6 ? c为里面有4 个数码管,所以它有4 个公共端,加上a~dp,共有12 个引脚。数码管的外部引4 |$ d& M0 R8 P& o Q' M# k4 D
脚与位选、段选对应如下:
: w7 k" [% s' R) e- z& O3 I3 q9 {A—11;B—7;C—4;D—2;E—1;F— 10;G—5;BIT1 — 6;BIT2 —8;BIT3 —9; BIT4 —12;
0 E+ m. d) P4 j4 ~- N5 aDP— 3;如下图所示:
1 g/ ]( o. g+ P* K$ y& \图13 四位一体数码管3 }. f7 g2 |& v a" E
数码管的驱动是指每个数码管的每一个段码即七段都是由一个单片机的I/O 端口进行9 W, b3 e6 Z" ^6 k0 U
驱动, 也可以使用译码器译码进行驱动如BCD码二—十进制。它的优点是编程简单, 显示的$ ]& x) C; N' N( ^7 m7 p
亮度高,它的缺点是占用的I/O 端口多,如果要驱动6 个数码管静态显示则需要6×8= 48
2 S- r& Q& L2 f; x9 J7 u根I/O 端口来驱动, 因为一个51 单片机可用的I/O 端口只有32 个,在实际应用中必须要增
1 ?* @$ O7 | J5 U加译码驱动器进行驱动,这样做增加了硬件电路的复杂性。
; a7 s- w4 Q. W' v; P* p0 o3 |* @3 压力检测系统的软件设计9 L0 }! A4 |" C
3.1 系统主程序设计9 ~- V9 ]' ^& ]) ^5 W9 O& Q' N" q
主程序的主要功能是负责实时检测、读出并处理MPX4115的测量的气压值, 实时显示压( x s% Y7 F" X' _: d/ S1 Y- y4 e% Y
力。其流程图如图14 所示,主程序见附录Ⅱ。
$ F- S! Z: q2 w1 f% K否是' I4 Q9 m0 @8 B3 s0 O
不报警 报警
. x" w j0 h% q" N若气压值大于95kpa
9 U5 U% h* S- z; i% F3 q或小于20kpa
: q9 v7 {# X. d' C7 H3 \( y% O& F数据采集
, b" Q& F3 i1 n8 W& F9 H送LED 数码管显示
4 n# X$ o0 b3 M系统初始化
7 s' | v! c$ d& b" q/ \开始
# T$ L$ S# Q, l处理读到的数据3 E% K3 F U! f6 X
结束
' o5 Y6 b) G1 x4 ?& r" K: X% s3.2 A/D 转换器的软件设计4 A. i* }; R2 y5 S3 p- `5 u8 T6 q, l
单片机控制系统中通常要用到AD转换, 根据输出格式, 常用的AD转换方式可分为串行
/ q* V! [. a! n# ~9 \% t# sAD和并行AD。串行方式所用到的芯片引脚比较少,而且封装小,但是所需要的数据必须通5 ]1 P, u8 N H' z( T" z
过软件处理才能得到。并行方式一般在转换后可直接接收, 但是芯片的引脚相对来说就会比/ d3 Y) \1 q( T( G0 r" P8 {
较多。而单片机I/O 引脚本来就不是很多, 使用串行器件可以节省I/O 资源。所以本设计使
v) B+ z( C9 M8 U5 O7 z用串行方式。 b& t6 p! C- ~& W
ADC0832是一个8 位逐次逼近型模数转换器, 可支持两个单端输入通道和一个差分输入
/ z; C8 u1 p4 W* v$ I0 w* p/ D通道。与它有相同功能的器件还有ADC0834、ADC0838、ADC0831。所不同的是它们的输入通
- o5 }! X7 X, D道数量不同,通道选择和配置都是通过软件设置的。其流程图如下:6 C; Q& R4 o3 t$ e0 o- M
初始化函数) v1 O- ^7 _5 {" a
开始
$ {: a4 v K8 r O7 n将转换后的电压转换成压力1 v @8 N' H6 X2 h8 n
A/D 转换
* G$ Z1 Y0 H$ _$ Q% D返回7 e$ A, E9 v3 d3 I- z5 s
图14 系统主程序流程图9 y3 p! @: y+ u9 O
图15 A/D 转换子程序流程图
$ T: \& D- t0 F* m }; ] F- p) w3.3 LED 数码管显示程序设计
/ i9 P) T0 R2 V; d3 Z' L在本次设计中用的是7SEG-MPX4-CA(4 位共阳极7 段式数码显示管)亦即相应的单片机
' \6 d: e+ V' kP1.0 、P1.1 、P1.2 、P1.3 为高电平,数码管才能点亮。; l0 `0 l4 {( K. {3 }
( 1)动态扫描显示原理
m" a6 k$ n: V① P1.3 、P1.2 、P1.1 、P1.0 输出低电平,关闭所有数码管;, d3 X F7 x8 b: n& v+ e
②显示个位——把要显示的数据送到P0.0 ~ P0.7 , P1.3 送高电平,延时5 豪秒(时间
( n3 H9 V% x9 t. G( s不能太长,否则数码管会闪烁) , P1.3 送低电平;
& k* o" L/ p% i③显示十位——把要显示的数据送到P0.0 ~ P0.7 , P1.2 送高电平,延时5 豪秒(时间
" _& v+ ?' k0 b9 E' ]% R) d/ u8 [不能太长,否则数码管会闪烁) , P1.2 送低电平;+ k1 `- i$ a; }0 N d3 E) X
④显示百位——把要显示的数据送到P0.0 ~ P0.7 , P1.1 送高电平,延时5 豪秒(时间- U! H. B) m% t3 u3 x" K1 N
不能太长,否则数码管会闪烁) , P1.1 送低电平;. F2 N! D: l1 b U l( F& g
⑤显示千位——把要显示的数据送到P0.0 ~ P0.7 , P1.0 送高电平,延时5 豪秒(时间
, o8 k. z# B' N+ \/ h1 i不能太长,否则数码管会闪烁) , P1.0 送低电平。
8 t( S9 ~ P; f. V& |1 x: d⑥以此顺序循环,把它做成子程序,在主循环中调用。% E G# U/ n5 f. w- ~
(2)LED显示流程图
, `. e4 `/ C0 B! U1 E2 M开始. w8 x7 x( c, X; U" K! n; j, B
调用压力子程序7 R1 _+ E9 m( j
系统初始化
4 n" {3 K# A' T$ V5 v4 X0 |9 U调用显示子程序2 Z- R, ~ Z0 g8 h& Y# j
图16 LED 显示流程图
: Z3 |. c5 p) E6 ~, C! g4 创建Hex程序与系统仿真分析
: f: e5 o& h. U* q- c! n# U+ l& ^' J# _4.1 Keil C51 Windows 集成开发环境
9 d" J0 c+ P f6 e4 _- WKeil C51是目前世界上最优秀、最强大的51单片机开发应用平台之一。它集编辑、编译、9 e3 f/ k# d/ X( \
仿真于一体,支持汇编、PL/M语言和C语言的程序设计,界面友好,易学易用[11] 。
l- Y. r, L- K. o创建Hex 程序步骤:& r5 W1 Q, o9 @2 }) P; E* j/ }2 ^
(1) 创建一个工程项目文件;
2 E G$ l6 n7 N; x) S(2) 为工程选择目标器件;
3 |3 z0 `. f; a(3) 为工程项目设置软硬件调试环境;$ i0 _3 a' r& g4 a! J0 v* n
(4) 创建源程序文件并输入程序代码;# N. T7 U- u. N# [
(5) 保存创建的源程序项目文件;* {2 P2 W! e: Z0 k% V+ o; h5 ?% {
(6) 把源程序文件添加到项目中;4 H4 k' R2 _3 k% w
(7) 编译生成hex 程序文件; Z: l3 i4 r$ X% a m
4.2 系统仿真分析
: g. Z* n2 P; d( I. K. M! O/ |在proteus 里画出电路原理图, 然后再把HEX程序文件导入单片机里即实现了结果仿真,$ Q8 W% m. I! _/ C; Y
调节压力传感器的上下箭头数码管就会显示不同的值,若压力值大于110kpa 或者小于7 x- ?. q% I6 ]$ j* G f
15kpa ,则蜂鸣器会报警。) E6 i2 D/ e: u9 b# \! s+ w
当调节气压传感器的值为103.2 时,那么数码管就会显示相应的压力值, 并且蜂鸣器会
/ r3 b) y; Y4 C4 w7 Q c4 v" H/ J2 }发出声音进行报警。如图17 所示:- U' H$ \0 q9 ]* y) Y; O
图17 系统仿真图
, R) o0 y) A, |- W k, f, Z9 C当调节气压传感器的值为94.5 时,送至ADC0832模数转换器,再经数码管就会显示相
& a% f0 Z2 T$ a: [/ K0 b k0 s应的压力值。如图18 所示:
6 a& [( u/ z( {) `: Y- U图18 系统仿真图
, o& S N( `/ {
( d6 Q( l0 I/ h: j3 \( z9 D& d; q8 g4 v4 R1 k6 }( I
6 T2 L$ A. Q! \! [; ^" e |
|