|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
基于PT100的数字温度计的设计 课程设计报告及源代码下载
1 t X# ~0 A- R& {4 M+ _% p0 r' a3 s/ _! W4 u- I
4 Y4 L$ W3 r4 T! C, Z2 k. g以下是本报告的部分内容预览:
5 l1 p3 y( q% b) s4 i-----------------------------------------------6 D9 A) t' r l+ h
2 ~5 R- q( Y3 {1 n6 R; V i
, T3 y* T: }; g) P1 X
学生姓名 | / m4 | {. _- q5 ^( \1 y
| 9 e" _6 x7 b# q
班级学号 |
% b9 c/ G! z: O% }4 W# ^. R |
( x+ {$ j8 @, y$ q5 P& J专 业 | 测控技术与仪器 | # Q1 y, p$ d* ^5 |& s. p' E
课程设计题目 | 基于PT100热电阻的温度检测系统的设计 |
5 p {9 u2 c4 R5 |& H Z
) N7 K, t0 V) x5 _评
6 y2 L" q' B+ Y6 n5 v* L3 {/ O
+ U0 y# z+ _0 I6 f语 | : e& b7 W7 A$ O' x. [
; h1 i; o1 e6 O) Y
组长签字: |
7 z* V& M- @3 A. ~
! Q2 ]6 f& O3 g2 t
+ \3 Q, N' i9 Q( ]
/ C9 @+ N* ^: g! J# x* j8 W7 G- e0 o8 k0 W6 ^
成绩 |
( V% }" Q# {0 Q7 j8 _ |
8 U4 `, S% C5 o i8 V1 i1 K# A7 F
! _6 C/ }. R" ]6 P" O) m# ^" e' v' ?0 W* R3 ?+ A+ ?
日期 |
- T$ {5 T( |, {8 n q( ]" u
" C. J. V% U7 [2 s S9 |
5 _0 u% F" t) x( c/ d- o- O, t201 年 月 日 | + v7 K. b2 E, Y& Y/ H
7 F1 |9 S4 ^9 |3 a& w( S# j$ P
' J" |% `% t% t" N9 S. L7 K
课程设计任务书 ' @9 I ~" W0 C4 S( a) w5 m
+ w& n$ {/ E2 N7 x/ I9 y# `% d' j
+ |8 i1 ?! r4 ~- w$ ?学 院 | 自动化与电气工程学院 | 专 业 | 测控技术与仪器 | 学生姓名 | 1 e' l- S& c, k. G5 Y5 k2 ?
| 班级学号 |
2 ~9 t9 c( y. {, f | 课程设计题目 | 基于热电阻的温度检测系统的设计 | ' M0 b9 g0 ^$ S+ ^- m$ x$ U# D
2 t9 j' h0 N) g8 h8 t; w
实践教学要求与任务: 1、熟悉所确定的题目,从问题需求、程序结构、难点及关键技术等方面进行分析, 形成系统的设计方案; 2、根据方案设计硬件电路; 3、软件编程并调试; 4、完成课程设计报告,打印程序,给出运行结果。 9 X( q) @% i% d
* p6 [6 ~5 Q: A4 t
工作计划与进度安排: 第 18 周(12 月 28 日-12 月 31 日):根据设计要求和内容查阅参考文献或资料, 提出设计方案,进行原理设计。 第 20 周(1 月 11 日-1 月 15 日):根据设计方案,完善设计,并进行硬件及软 件调试,测试,撰写课程设计报告,答辩。 | 指导教师:
/ @. y# L( J6 P! `% F5 |7 P/ W6 i! B* p8 U) O$ a& _ Y
201 年 月 日 | 专业负责人: 5 r& P% ?. ~ ]4 r/ |$ w' t
t! d" Q; y; b" z1 U201 年 月 日 | 学院教学副院长:
& E" [9 O- r) q3 d5 a7 m% ]
& _3 F0 r/ J. R0 m201 年 月 日 |
/ y; v* K7 A+ x! k* q/ Y& S
- Y( `& @7 @4 J7 f$ l; i5 x6 d8 E u8 g" f
1引言...........................................................................................................1 - q" H2 I5 T" |5 C& ? l& w
1 V5 [) R! Z; e6 @2 Z- v
2系统总体设计方案.................................................................................2
. @9 m: h: w. L8 z5 q
" \: u: m! K% T1 H2.1方案设计.......................................................................................2
( W4 |' T1 T* y2 D! t
, [. I9 U. l! D: M* y( `9 \2.2工作原理.......................................................................................2 3 X" R" d, B/ u; @' b7 C* t/ q' w- {! ^
* W. U1 p8 `6 ]. o. b, X3系统硬件设计.........................................................................................3
1 b' U* V( O2 ^5 E2 \1 b1 ?% w3 Y* G/ t' }+ ~
3.1铂热电阻简介...............................................................................4 $ T6 L" _( c1 E6 f
& c7 X# B" v2 Z$ R1 C7 H3.2运算放大器 LM324简介...........................................................5 3 t4 T* N$ r) z2 E# q
( Z$ g; {' h+ l& A
3.3ADC0804芯片简介.....................................................................6
% T0 q* v! }2 k' m# R
; L$ p5 \! Q' [; J. }1 c, p3.4控制电路......................................................................................7
$ o H/ D! b5 q6 W- d4 w
' O4 P" U2 m% m6 T/ h# l) b# X3.5显示电路.....................................................................................10
4 k! s" [, a. ~% U, s e0 M) `3 e' q4 D. h! N: x
4系统软件设计........................................................................................11
3 u1 |9 |& c j; P8 I+ x" _1 x3 g3 _" X% T2 |. s4 T& d
4.1软件介绍.....................................................................................11
# y$ J7 l$ l5 P. U/ a$ X8 j
- d8 x4 l" c( z2 \3 R0 m1 a4.2程序流程图.................................................................................13
( s( o( ]2 P4 I
0 q% B( i6 }" f- u2 \5元件清单...............................................................................................14 ( E/ \7 |4 I5 c; d) A, M: H9 A9 o
( f: r+ n. M* W" R; l1 Z9 k
6系统调试与测试结果...........................................................................14 * k/ V+ w k) j' M6 D' S% m
& e* F# S- y! f8 ]* ^4 q) t7测量结果分析.......................................................................................15 6 P' d; ?# A1 ~+ A$ s- w6 q
, q8 ^3 C" V4 W) n
7.1结果分析.....................................................................................15
" p, D. V+ T6 r* V2 o' }. R- |6 d* s/ D' K( u% \) K
7.2误差分析.....................................................................................16 s: k5 K: K6 b' M& k
h8 y% a9 ^, j
8总结........................................................................................................19+ H2 g; F8 N9 q v
) K: L3 A4 y+ K' M: R% ^1 B5 N- j, J
9 Q9 R3 e' {7 v, E# a( L
m$ D* h9 G6 C1 M
1 P% b3 M, x! K- ^1 v
7 R) {0 q, F- Z9 d1 b" b" }8 `1 U& o9 w6 d' }; v, Q9 z6 w
! a. }, g3 @4 h$ B, ?1引言
0 c5 t0 A/ q% c2 i3 g
2 j( x( W. y* o D+ v. b" X在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息 技术的飞速发展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示 系统已经应用于诸多领域。要达到较高的测量精度需要很好的解决引线误差补偿 问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂 化。模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于 多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各 感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。 单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为 自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥 越来越大的作用。采用单片机对温度采集进行控制,不仅具有控制方便、组态简 单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大 提高产品的质量和数量。 由于科学技术的飞速发展,特别是微电子加工技术,计算机技术及信息处理 技术的发展,人们对信息资源的需求日益增长,作为提供信息的传感技术及传感 器愈来愈引起人们的重视,而综合各种技术的传感器技术也进入到一个飞速的发 展阶段。要及时正确地获取各种信息,解决工程、生产及科研中遇到的各种具体 的检查问题,就必须合理选择和善于应用各种传感器及传感技术。如最简单的温 度的测量,有热电偶、光纤温度传感器等等。但是,热电阻是开发早、种类多、 发展较成熟的感元器。热电阻由半导体陶瓷材料组成,利用的原理是温度引起电 阻变化。热电阻器是感元件的一类,按照温度系数不同分为正温度系数热电阻器 和负温度系数热电阻器。热电阻器的典型特点是对温度感,不同的温度下表现出 不同的电阻值。正温度系数热电阻器在温度越高时电阻值越大,负温度系数热电 阻器在温度越高时电阻值越低,它们同属于半导体器件。随着半导体技术的不断 发展,热电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵度高、 重量轻、热惯性小、寿命长以及价格便宜等优点,最重要的是作为温度传感器的 热电阻的灵度非常高,这是其他测温传感器所不能比拟的。
& m( f p* j- P+ {9 j/ [1 x
7 J- p/ H$ Y$ @
/ i$ s5 y6 }. Q+ H$ ]8 f. [( g3 e( c本课题基于热电阻的以上优点,并利用单片机和放大器等元器件,在 protus
3 ~9 k9 t1 Z( }! j3 p! P* |
: o' w8 _" O0 J) n0 q& Q' Q, b/ f和 keil 软件环境下,对热电阻的测温系统进行仿真。 ! Q) f. A& x" i+ o& o
. Q* I+ V7 S8 f0 [$ m
1 f0 z' V& S I+ B6 k8 _) S* l! @: K" D4 n: w
2系统总体设计方案 {3 u5 m6 `* P% d" v- t
! z: i& ]% @& ~5 f: @
! Z' M7 u# I. K: S5 ~7 x8 T0 C/ [6 E. Q# L$ b
2.1方案设计 使用热电阻 pt100 温度传感器利用其感温效应,热电阻随环境温度的变化而 变化,在电路图中将电阻值的变化转换成电压的变化,再将电压值作为输入信号 输入至 AD 转换器中进行模拟信号到数字信号的转换,其输出端接单片机,向单 片机内写入源程序,将被测温度在显示器上显示出来: 测量温度范围−50℃~110℃。 精度误为 1℃。 V2 }: Z6 L4 z' }! F: Q% y# }
8 j9 c y7 H+ f% |2 Z
/ I, C) ^6 e' `, F' ~5 s2.2工作原理 % e8 v" j6 M/ @
7 \6 T: `$ T5 P, O5 b6 L7 p( M# v9 ` Q d- ]: M0 K5 \7 q9 i
本题目使用铂热电阻 PT100,其阻值会随着温度的变化而改变。PT 后的 100 即表示它在 0℃时阻值为 100 欧姆,在 100℃时它的阻值约为 138.5 欧姆。厂家 提供有 PT100 在各温度下电阻值值的分度表,在此可以近似取电阻变化率为 0.385Ω/℃。向 PT100 输入稳恒电流,再通过 A/D 转换后测 PT100 两端电压,即 得到 PT100 的电阻值,进而算出当前的温度值。 采用 2.55mA 的电流源对 PT100 进行供电,然后用运算放大器 LM324 搭建的 5 {) B* {4 S6 s
- F5 } w8 W+ ~% l) `
0 F7 ^5 A( `+ s 同相放大电路将其电压信号放大 10 倍后输入到 AD0804 中。利用电阻变化率$ o$ |4 {8 K8 {; R. M
+ l! ~, }2 u/ [ L1 Q
0 w6 N- Q2 D7 V& B$ o! E0 |; m7 o0.385Ω/℃的特性,计算出当前温度值。 测温系统如图 2 所示: 8 i) ?/ n, t) p) l
4 T9 Z! w4 }3 K9 l
图 2 温度检测系统
& X( f4 e% w4 E; m* a
$ B3 s3 e" m( c; }2 y4 U如图 2 所示,热电阻 RT 和 RA1,RB1 和 RC1,可以改变电阻 R2 组成一 个测温点桥,在温度为 20 度时,调节 R2 使点桥达到平衡。当温度升高时,热 电阻的阻值变大,电桥失去平衡,电桥输出不平衡的电压,经过滤波后,输入运 算放大器,进行放大处理。
; }6 v% z2 h$ `& P& @
9 d! k) `; }* Q, Y* b
. q a1 l+ c- k3系统硬件设计
3 P6 }: Q7 q6 }& A2 @) d
2 ~8 o# T- ~0 x5 y1 O# `4 A+ w
$ p; e* t9 w+ _# Y3 F0 g5 \: Y2 f" W9 A9 E/ p8 n( y) L% @$ }7 V
系统硬件连接图如图 3 所示:
$ A4 O7 s7 }" v3 ~& e& x, S% o Q+ |0 m
: g3 m: P9 [2 B1 A- t* ]9 O1 g' z# n
图 3 系统硬件连接图 . y8 F; o; a* h0 z
4 [6 |" C6 M8 Q! r. b0 J, o
) L/ y0 c" g* {' n% c8 {
5 i2 `7 y( D. L: `) K1 y) k1 B" e
% D6 L! |# E# Y! i7 ~3 f: y现对各部分硬件进行介绍。
: b0 ] i) t- ?0 ?+ I0 ]- c t9 X
7 E8 d" H( ~1 p$ ~1 E/ L" D' E3 Q8 Y7 U: ^
3.1铂热电阻简介 & a/ J* ]+ q W6 e2 W P0 S/ i% ]% S2 C
z& \+ @5 b1 M4 y6 R0 U) @
/ x; V( x& u6 x7 X1 N* ]% U' b+ d2 P+ e" _* t8 ?: v
pt100 是铂热电阻,它的阻值会随着温度的变化而改变。PT 后的 100 即表 示它在 0℃时阻值为 100 欧姆,在 100℃时它的阻值约为138.5 欧姆。它的工业 原理:当 PT100 在 0℃的时候他的阻值为 100 欧姆,它的的阻值会随着温度上升 它的阻值是成匀速增涨的。 " {4 r! F6 O3 \% D
1 l" [. }/ n; c. I! s
9 o: S! T" c* @: `- i+ I) \) e5 }* Y
式中,A=0.00390802;B=-0.000000580;C=0.0000000000042735。可见 Pt100 在 常温 0~100℃之间变化时线性度非常好,其阻值表达式可近似简化为:RPt=100 (1+At),当温度变化 1 ℃,Pt100 阻值近似变化 0.39 欧。 9 v! O1 H Z3 e0 E6 b7 M8 t F' @
6 [# `$ J0 g. r, Y+ H) F2 l
# w0 n, X- l1 a3 K" H9 G# ^# D# Z& O/ H. L- x8 A
图 4 Pt100 的分度表(0℃~100℃)
, _& ]4 d; W1 y3 \
% K8 ]0 o7 c, Z. {* i: C
' E9 t- a# a" O ?. A1 W$ p6 s; Z( E
2 \! c$ }6 I. g2 _6 [# b
0 v# [5 E& t8 b. u' b8 F$ w9 f0 Q& s7 H# L4 V+ ^ [, {
图 5 电阻温度曲线图
- N. z# R5 I) {8 t/ f5 p O5 J4 V8 y4 s* n! Q. v
! e1 `$ s& z' G" ]- i
; A6 I8 I9 o9 h) M& ]+ H3.2运算放大器 LM324简介 & W! b7 i. n& h8 U
- r4 `/ [) Q- J7 S7 h
' ?4 |4 w7 u% O; {0 @" _4 x$ Y" V j8 v3 h
LM324 系列器件带有差动输入的四运算放大器。与单电源应用场合的标准 运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到 3.0V 或者 高到 32V 的电源下,静态电流为 MC1741 的静态电流的五分之一。共模输入范 围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。每一 组运算放大器可用图 1 所示的符号来表示,它有 5 个引出脚,其中“+”、“-” 为两个信号输入端,“V+”、“V-”为正、负电源端,“Vo”为输出端。两个 信号输入端中,Vi-(-)为反相输入端,表示运放输出端 Vo 的信号与该输入端 的位相反;Vi+(+)为同相输入端,表示运放输出端 Vo 的信号与该输入端的相 位相同。如图 6 所示: 图 6 LM324 引脚图 图 7 是 LM324 运算放大器的工作原理图,同相交流放大器的特点是输入阻抗
0 h+ ~4 n& f& q: L/ @% `
6 f' c2 g, n" \8 G6 {( ]' o& `) E2 ?7 c1 N
5 t1 B0 v0 k; u/ H/ B: t6 n6 f
3 H) Q1 ]- l; C高。其中 R1、R2 组成 1/2V+分压电路,通过 R3 对运放进行偏置。电路的电压 放大倍数 Av 也仅由外接电阻决定:Av=1+RF/R4,电路输入电阻为 R3。R4 的阻 值范围为几千欧姆到十几千欧姆。 图 7 LM324 原理图
+ [ i1 z: {0 Q z
4 O3 R9 }% T2 N6 ?$ _5 b+ t! m
: v: z1 Q9 h" r7 f5 ?3.3ADC0804芯片简介
. s0 }; O, f( C& D9 ?8 n# q# E4 u& h" l$ Q9 W! o2 |
z* b( q. j7 L$ _
/ n, N5 @! d8 a2 EADC0804 是用 CMOS 集成工艺制成的逐次比较型模数转换芯片。分辨率 8 位,转换时间 100μs,输入电压范围为 0~5V,增加某些外部电路后,输入模 拟电压可为 5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的 输出可以直接连接在 CPU 数据总线上,无需附加逻辑接口电路。ADC0804 芯片 管脚如图 8 所示引脚名称及意义如下: 图 8 ADC0804 管脚图 ! u" O' a' g" `) U0 B. @2 J
# h, K) }% c& |; F# z' x1 G
& _) d, o" ^' c5 L. l% o7 p
7 Q& f/ v' M/ [, p$ ?: q0 z
: \' ^3 e. x( y# x" I4 K
. U+ r- C7 [+ w% Y6 J9 i9 A; c+ K6 kVIN+、VIN-:ADC0804 的两模拟信号输出端,用以接收单极性、双极性和 差模输入信号。 ! E3 [) t. v" r+ M! s
! p) d) a" H( F% e% Y( vD7~D0:A/D 转换器数据输出端,该输出端具有三态特性,能与微机总线相 接。 AGND:模拟信号地。 DGND:数字信号地。 CLKIN:外电路提供时钟脉冲输入端。 CLKR:内部时钟发生器外接电阻端,与 CLKIN 端配合可由芯片自身产生时钟 脉冲,其频率 为 1.1/RC。 CS:片选信号输入端,低电平有效,一旦 CS 有效,表明 A/D 转换器被选中, 可启动工作。 WR:写信号输入,接收微机系统或其它数字系统控制芯片的启动输入端,低 电平有效, 当 CS、WR 同时为低电平时,启动转换。 RD:读信号输入,低电平有效,当 CS、RD 同时为低电平时,可读取转换输 出数据。 INTR:转换结束输出信号,低电平有效。输出低电平表示本次转换已完成 。 该信号常作为向微机系统发出的中断请求信号。 ; g$ E7 q g `3 Q
. O) g" |! N5 m# G! u) y" J) @( M6 {' U
" R7 T) G4 M9 q3.4控制电路 4 v$ s. r8 K1 r! I, T1 ?4 ^) p
: _5 F' S" M8 z6 wAT89C51 是一种带 4K 字节 FLASH 存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS8 位微处理器,俗称 单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。 单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非 易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由 于将多功能 8位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种 高效微控制器,AT89C2051 是它的一种精简版本。AT89C51 单片机为很多嵌入式
8 n# m) ~2 H* c+ g% C9 T9 p+ a1 L9 d控制系统提供了一种灵活性高并且价廉的方案。AT89C51 引脚图如图 9 所示:
' v( p- [6 S0 R# O+ [2 k( J. k% j. w0 Z. H; Q- X
. P3 l6 `) h: M( E2 c
d% B$ k% Z& G/ ]: d2 t
- {: b$ i1 {8 c# H2 b# ^
: i+ J' n5 j" x8 y& }% m/ L5 M$ P7 ?7 o/ N6 |: K6 _
VCC:供电电压。 GND:接地。 图 9 AT89C51 管脚图 / l6 u* M7 e4 V4 k6 A5 w$ q
* B/ `" j4 V1 I7 q; ^% j
4 _8 Y0 M2 @8 f* K. b2 W+ D: |! t
5 w- A, p/ T2 w( V0 Z7 u
- J& Q" n/ _/ q4 Y2 ^P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 1 I7 L0 Z4 |- {
9 `& \3 U% N% _( C4 H T+ {
P0 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储 器,它可以被定义为数据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入 口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须接上拉电阻。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接 收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为低八位地址接收。 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收, 输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作 为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于 内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行 存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势, 当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。 P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。
% [; n, M2 f+ _, v. b
- D v, R9 o5 e/ E& g
; l J8 I* ?; z& U2 z; gP3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL # j( [! i* V1 r- V! A
: o2 i: L, A9 c% P4 F7 Z R门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 P3 口也可作为 AT89C51 的一些特殊功能口,如表 1 所示: 3 [6 n+ X& A( z, ?: x- P: Y
: ]- X5 S9 z, N) M表 1 P3 口第二功能表
6 U. P2 T- y+ i& Z! F5 `
% `: [% A' q' l$ G; S- bP3 口密位 | 第二功能 | 功能 | P3.0
- S" K. H1 q/ ^2 X8 L0 EP3.1
- W- c' `$ x% gP3.2 - }0 E. i0 p: P, \" r7 d
P3.3
% M' m3 R: q9 S8 f% LP3.4 & \6 Q1 |' `8 V! m
P3.5 ' m6 O, E: a! Y; j) x k1 n
P3.6
3 k2 V7 s4 n, t& JP3.7 | RXDTXDINT0
' R" v: w/ w3 R* L: I4 K3 q# KINT1 * `9 F; |, a& y7 v. ~
T0 + A1 g5 W& S+ K6 Z# l# O
T1
. i7 A. F) V& ^4 |7 z2 nWRRD7 c* v( }: j, V. M6 ^
| 串行输入口串行输出口外部中断 0外部中断 1
9 g* \8 V+ r \# R计时器 0 外部输入计时器 1 外部输入外 部 数 据 存 储 器
) Q/ K% g8 e& _% a4 `写选通
3 r: Q5 T# @' k8 h外 部 数 据 存 储 器读选通- {: W. F3 S; ?; H
| ; @* S8 S% y! `) z- e8 n9 l5 G
8 t, M" p" w# y! f/ {
0 E3 s3 ? ~1 ^) _3 J0 K
W# ]5 j$ q' s5 t0 oRST:复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电
( X# o+ |* S% F4 b: a$ \+ Z1 }1 f, L( K# Q7 l: A
平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的 低位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时,ALE 端以不 变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外 部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时, 将跳过一个 ALE 脉冲。如想禁止ALE 的输出可在 SFR8EH 地址上置 0。此时, ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果 微处理器在外部执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机 器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号 将不出现。 ; M- Z* |# l u# L# V9 ]( [% L; _
/ l- a* b# Q$ a4 {2 P7 D
[- v' q6 V4 R9 p! ]' S" |7 FEA/VPP:当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),
- B D u$ Y) T0 B( q7 b6 w1 y: H, ^% T% S' E* h; Y! H: t" l
不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET;当
% x- N4 H# d$ ^: l" g+ M5 u4 _/ J& ]9 L0 J3 S4 \. k% V
/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于 施加 12V 编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 晶振电路如图 10 所示: ; w) P1 T! Z4 k
1 o( `! G8 k& ]/ R3 ?# l图10 晶振电路
+ Q# Z% `: T- g' d# ~* ^- x5 ~% E' o' | l
7 G2 S6 w& `* _ y! ~8 a0 ?
8 v5 S$ b! O9 u, t) G. E
; e# l) E$ w4 r* z" a" U: z- t. C$ x& f! G
3.5显示电路
* {) h. x) a2 V# @6 ]; @8 Y2 v9 Q. G& k: i/ v2 }
7 z7 @9 Y4 M2 V本课程采用 MPX4-DCC 作为显示器。该显示器由四个八段数码管组成,如 图 10 所示,该显示器是共阴极显示器,A、B、C、D、E、F、DP 与 P0 口相连, 1、2、3、4 与 P0 口的 P0~P3 相连。所以,当显示器开始工作时,必须向 P0 口 写 0。通过控制数码显示管的位选,来实现显示温度的目的。
7 K( u* q' V( A1 s7 L" J3 P9 k
- z. Z! D) `( u9 X* v$ S
9 T5 i, g- N" c0 \5 b! g/ G
. D. H4 N" @% Z
1 C ?; _# c4 ]* f* _6 i; u: {* |' {" V2 J
) L4 T2 f( ?$ {: x6 d+ _4 v' K
) X' \" i, f1 J R9 y/ T4 A; F7 V% |1 z4 Y, V- [. g
图 11 MPX4-DCC # e6 W1 d1 L3 B7 L4 \- o
1 F, _* O q0 N& M* H, V* `% J
3 ~0 q- b7 `# D+ n0 l7 `9 t9 C) o+ `9 V
: e! k$ C+ N8 L% x- i1 r' o% o
4系统软件设计 . H- y% [) w* @1 z2 H
. u" m- x w2 S4 e" r+ t6 V6 X7 Z
}$ t4 @' [$ f4 p, P0 e" ]; v
. D! @1 K1 L4 ^( b. M& Z4.1软件介绍 , t/ [/ d' y1 f5 ^5 H- S
' t# m+ f0 T" G! e/ f' B
! R% H8 `# g+ _: R' |
) Y. @2 d# s6 _- ?) V3 F& M1 E' f
1.Proteus 软件
( ^ H4 v( m8 d" d. S- {4 G
6 F- }+ I" T$ E4 x2 qProteus 是世界上著名的 EDA 工具(仿真软件),从原理图布图、代码调试到 单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的 完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软 件 三 合 一 的 设 计 平 台 , 其处 理 器 模 型 支 持 8051 、 HC11 、 PIC10/12/16/18/24/30/DSPIC33、AVR、ARM、8086 和 MSP430 等。 Proteus 软件是英国 Lab Center Electronics 公司出版的 EDA 工具软件(该 软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它 EDA 工具软件 的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围 器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教
2 m" k7 y1 ?9 a; F. f. l! `
2 V3 u7 v( d; q @4 k! H- u, X9 {; I* F. j6 Y2 R9 s. s/ p
" h1 X0 x5 S0 y* \! ]
3 `6 W; o. u. g9 N. r5 h% V8 _
学的教师、致力于单片机开发应用的科技工作者的青睐。
# j; X; P/ m; I4 G: t* o5 T, P/ F6 `# `4 _* }& x
在 PROTEUS 绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以 在 PROTEUS 的原理图中看到模拟的实物运行状态和过程。 PROTEUS 不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行 过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示 实验难以达到的效果。 它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程 度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检 测、电路修改、软件调试、运行结果等。 课程设计、毕业设计是学生走向就业的重要实践环节。由于 PROTEUS 提供了 实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验 室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、 创造精神的平台 使用 Proteus 软件进行单片机系统仿真设计,是虚拟仿真技术和计算机多 媒体技术相结合的综合运用,有利于培养学生的电路设计能力及仿真软件的操作 能力。实践证明,在使用 Proteus 进行系统仿真开发成功之后再进行实际制作, 能极大提高单片机系统设计效率。因此,Proteus 有较高的推广利用价值。 2.Keil 软件 7 e7 b. p4 x8 ]7 ?$ ]
+ r6 a i; A4 qKeil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件 开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显 的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、链接器、库管理 和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境 (μVision)将这些部分组合在一起。
% j5 ^. ~0 V0 u |+ O9 [" `/ w# v) d$ i
KeilμVision2 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语 言软件开发系统,使用接近于传统 C 语言的语法来开发,与汇编相比,C 语言易 学易用,而且大大的提高了工作效率和项目开发周期,他还能嵌入汇编,可以在关 键的位置嵌入。Keil C51 标准 C 编译器为 8051 微控制器的软件开发提供了 C 语 言环境,同时保留了汇编代码高效,快速的特点。C51 编译器的功能不断增强,使 你可以更加贴近 CPU 本身,及其它的衍生产品。C51 已被完全集成到μVision2 7 N" b& Q; m" j+ h8 {
6 _6 @2 N5 h4 z
$ k4 j6 p" H' `9 ]3 V ]* }0 T+ F1 N& J1 i9 c! f
7 G5 ~- z' e. Z4 @/ l0 z+ e- w3 I的集成开发环境中,这个集成开发环境包含:编译器,汇编器,实时操作系统, $ O( L. r- `# E6 P/ _! N" A T
$ g) K' R; r4 l0 x, w' X0 b9 _0 K
项目管理器,调试器。μVision2 IDE 可为它们提供单一而灵活的开发环境。 ; r- a9 l+ B$ v3 T# s
6 H. o8 F" {" n
+ s: a8 n7 `. j3 F+ }$ M0 O
! f" u: z- `+ m K x0 V3 C7 I4.2程序流程图 主程序流程图如图 12 所示:
9 T' t: [9 D9 U7 @ Y8 m6 i, R2 b, ]4 u
* c; P6 Q9 M4 W& `, x% v ^1 J+ M w' H
6 z3 K- X) Z, ^2 y
- i! G o' ?7 `; |0 _( @5元件清单
& g9 d$ v5 ]1 K' V w
/ J# V& n0 ?- X7 n$ r* x
+ W# h9 y% k: {" }7 v s4 D所用元件如表 2 所示: 表 2 元件清单 * S4 |* n8 p, a8 Z8 J
3 g9 x, ^5 s# s/ }! m
名称 | 规格 | 数量 | 普通电容 | 16pF | 2 个 | 晶振 | 12MHZ | 1 个 | ADC0809 芯片 | 0 Q' I) q6 E8 i3 s! x
| 1 片 | AT89C51 芯片 |
* J( t. i6 c% @6 i | 1 片 | 运算放大器 | LM324 | 1 个 | 电阻 | 16K | 1 个 | 电阻 | 10K | 4 个 | 电阻 | 90K | 1 个 | 电容 | 20PF | 1 个 | 恒流源 | 2.55mA | 1 个 | 热电阻 | PT100 | 1 个 | 信号发生器 | 100u16V | 1 个 | 显示器 | MPX4-CC | 1 个 | 电压表 | -10V-10V | 1 个 |
- m, X( Q! r7 C9 e; ], K
% ]: o6 M# P4 ` R' Q; K) f* I: G- B9 t. T I
" y! |, n4 ~3 v( R* t. [7 m2 `( y7 L
6系统调试与测试结果
: j4 j- {" l: T- O7 H3 O5 T+ g- f. c) _ z. H; b0 @/ E
O4 f) ^( [' s' u9 l
6 S6 n$ z) U. _7 [8 i
调节热电阻的“↓”和“↑”,观察显示器的示数找到环境温度与示数之间的 线性关系,不断调整程序使环境温度与示数相对应。 在这一环节,示数与温度本来就是呈线性的,寻找示数与温度之间的关系, 即找到示数与环境温度相差多少。在原理上,显示器上的实数是指经 AD 转换后 的电压值,并非环境温度,所以,示数与环境温度必相差一定的值,只要找到这 个值,并在程序中稍加改动,显示器上显示的数就可以看作是所测的环境温度了。 ; W, }, o( N7 }4 F: b
/ S/ r2 N' \ P2 y8 U2 o2 Q
- o$ o! A6 t& `4 _# B$ \( @( @
( B1 B/ l( I7 q% a0 p _( f
' O o4 `# i* b7 {+ O9 K! C0 l' x7测量结果分析
% a [& A: j: r; d7 F3 L% I. s! Y* G$ l* T
7 Y, y5 \- c0 K. e; D9 t7 N6 J
" r4 ~+ d2 Q1 a9 F1 w7 I
7.1结果分析
; R0 h' X. h$ i4 u# m, I: A' D. t' w; E# ]+ I2 f
: ]5 G5 j6 N' j6 i
1 o0 K+ F$ c# R& }0 v0 S, X
^3 b: n$ x- s* m6 e当环境温度大于零℃时,测量结果如图 13 所示:
2 m0 N& @# [% f) B, [# K g f
+ U. Y9 K' T- X: d. y9 }5 }1 k7 {2 O* e! }0 W+ g* o
; R0 [; [ S5 D+ u
( f/ E1 ?: ?* I6 p
7 ^6 Z/ P, |, ~' t3 l ]- }# Z) a! ? q/ h. R- q4 m! J
图13 温度大于零℃
/ g0 \, x5 {4 M
! ?( P: A! s9 G- I2 d. h( I, `" t% G4 `' A
. {$ p$ W7 E+ R$ H t8 N( ^1 @3 M3 ^ t$ j+ G- L- b7 ^
当环境温度小于 0℃时,测量结果如图 14 所示:
9 d c( u. s5 E1 k; c' G+ F5 H/ S) }3 H; i0 u% ?0 _6 G# @
1 s! ^: y. i) R9 l
u( o: t( {1 E( E
$ I# D# m7 T, O4 u# l) r
$ @1 }; g1 O9 n8 H* W; f- h# G$ e9 e. M2 A$ G; X
, y5 U: d/ |* t, v/ Q9 x! V7 e
5 j3 p! I; Y3 l8 h7 S# x) F, y
图14 温度小于 0℃ + Z5 @! R8 A: Z# p# m5 t
: j$ o9 i4 x- \' G9 o" ^" ~
0 W2 B0 e3 J& n( K4 t7 L E' t( q7 S% Q0 Q
7.2误差分析
) d/ H7 |( t' T' m, i7 V Z0 ]3 E* E; g+ X% ~- X f y% Y
( j8 U" j; \+ a/ y+ L( [# N
由于 ADC0804 为八位 AD 转换器,精度不高,而且 PT100 的阻值与温度并非 纯线性关系,所以,本系统必然存在一定的误差。下面对本系统的误差进行分析。
- u Y d2 `2 ~0 J5 @ b
9 z* S% r- f( Z: d9 I( d$ r6 Y& C( N
0 h+ q- |# Y: W Y* h" E6 o) G9 G7 w: N- h3 l* ~* I
6 _% V( R' a* H7 h' E1 G* q# I) {
图15 环境温度-26℃,测量温度-26℃
X' R8 E. G9 t* U- H! Q
8 S- f+ q) o8 Y3 k% o8 P+ `; J) e
) E6 C: R$ {1 J: z4 h! H) s, ^
" C# @3 `+ P1 \+ C) ]6 F; w s图16 环境温度-16℃,测量温度-18℃ $ g2 @/ R1 k% K( @* b
3 C4 I" e1 @ |& U
. Y* b: A5 h ~
! Z( g# a$ q* d& V5 N* }7 ]& c' R3 J. Y5 X ~3 p
5 j8 b) ~: G; E% ?
图17 环境温度 0℃,测量温度 0℃
( k& H' b1 |: _) T' l) v0 W: h! Y8 M5 b/ V3 k7 c. z4 ^) g$ h9 f
5 w" F% T) Q1 _7 N f, k$ j2 w. |$ V" d- r2 v: W3 y
图18 环境温度 10℃,测量温度 10℃
- z7 [9 {. L, o' ^
+ @; k% B d0 g" b$ m) X: }9 ~1 J- Y1 w. r; l& g7 x- s5 r
9 A n& d% ~& H. e( v. J2 c
' a# { w7 W( R) c4 k1 i
& p& A* S4 I! ^, v; @, C1 d3 Y& o! E! s/ t/ Y8 P3 Z
5 R, | S3 k7 b# l/ l, |8 i% {# S0 v
7 [0 ` @% m2 i! ]! Y
$ Z+ q/ T P8 ]3 s. i4 g$ ]$ e- V图19 环境温度 36℃,测量温度 36℃ $ z" E/ h, }5 t# w4 s
; g/ s; `& ]1 P4 f/ `$ ]& U! ^% p
: X4 t+ ^' H0 v2 G3 H/ |: Q! S8 ? J3 t& F I T, Q7 z- i
图20 环境温度 54℃,测量温度 56℃
6 m. E2 F5 c- {5 [) C1 k5 `+ ?' |$ D+ b$ s: \! O
% l% V0 z( l d
9 K/ @7 ` @! y3 u
% T7 x$ c( u( k6 O* ^1 t' [' j; W" B/ y+ C$ q3 D
图21 环境温度 66℃,测量温度 66℃ ! H4 j4 z0 ?3 f* ~2 d/ I) ~
* A& h8 w/ ^* m6 a0 r; l5 _+ C3 H8 a- k6 Y1 G+ \8 \
& n/ s* M x7 Q8 Z3 b# H* g9 V' y% N
6 J9 I' q$ H z3 M+ A, O+ ~. f9 B' E
" Q% a0 m* E& B0 V/ x1 L图22 环境温度 75℃,测量温度 74℃ 7 ], p9 T0 `" M0 |0 v8 w: L
! d/ r; G9 L, Q* W
3 {( }9 ^: ], |" ^) I( f
& ^4 |1 n; R$ w, [# f& X! R; J由图 15—图 22 可知,本系统的最大误差为±2℃,由于本系统的测量范围 为-50℃—+110℃,所以,本系统的线性误差为±0.0125。
^ |& M, c, J
" o3 G! w0 ]0 \+ r0 J0 o d+ g, R2 U: {! I( t7 G, j1 P
; U' i! Y4 V5 K& t' {8 z3 m; }( [# \: N9 {" Q2 y; Q
8总结
, q0 N3 |& `: O& W9 F+ K0 P: U1 x- [/ }$ q; d, h6 w3 A" d+ {
数字温度计是为了测温而设计开发的。在单片机技术与热电阻的巧妙结合 下,可以有效测出温度,并实时数字显示。 该系统虽然设计比较简单,但是对所学的知识应用的很多,对锻炼实际能力 有很大的帮助。在查找资料和设计的过程中,对热电阻传感器、基本的测控输入 通道、基本的信号调理电路有了比较深刻的认识。由于时间有限,并受 ADC0832 的精度限制,目前只能测量室内的基本温度,再加上 PT100 的线性只存在与理想 状况下,实际操作中会产生一定的误差,以至于不能达到更高的精度,有待提高。 & r7 N: a( x- O6 T+ q5 ~7 X; a4 R
8 e) H/ W8 e) c3 a3 p
$ d3 g# O' c* V- N5 |2 e
* I$ w5 |. o7 h7 x+ n
5 a& `. b; ]. r+ ]! T: h参考文献:
/ o0 x% i& e' i% ^0 e
! a; Q) H' ^% j" ?+ }0 k1 n【1】黄贤武,郑筱霞.传感器原理与应用.第二版.北京:高 等教育出版社
1 w0 v( m2 Y& C. p' V6 }: H/ R
& b0 }" L) O' `- i5 W【2】梁福平.传感器检测原理及技术.武汉:华中科技大学出 版社
3 A, }; J* q# |( Y7 C$ N
$ D! \( h. U& v) `) X0 D5 x# @4 ]【3】康华光.电子技术基础(模拟部分).第五版.武汉:华 中科技大学出版
+ z r' B- i7 E# q. e% ^源程序:
9 e T( q& {' Q5 M7 t& ~! r#include! K h3 o9 |1 K1 D! t8 J) C$ J
#include
; R2 D' r' x7 ?# Dsbit rd=P2^1;1 x4 T. E- Z; ]6 w. h
sbit wr=P2^2;
1 y; P( S* {. J% l7 K3 q( A, x# P3 [1 w: Tsbit led=P2^3;
& ]* ~# Q& }, h- pbit f=0;! a/ w- w3 ]1 s. x
#define uint unsigned int, g1 Q6 H" u5 H) j) \8 X+ U8 ^
#define uchar unsigned char7 U( j D5 C$ I* a: K. ^ y; ~
uint bai,shi,ge,a,n;# V y! Q ~7 _; C0 U) e
uchar v;
- C1 w) H8 C3 Y5 s4 ~( S6 Hsigned char x;+ y) G' Z$ S- C4 _. L6 [& {5 q$ C- y
uchar code table[]=
+ y; A8 W3 S" N: d9 p{0x3f,0x06,0x5b,0x4f,# r2 Y8 ?. X3 n* ?" G% q
0x66,0x6d,0x7d,0x07,
3 `; y9 l- k* b# d 0x7f,0x6f,0x77,0x7c,* k5 E: i" ]% J! C. ]" p
0x39,0x5e,0x79,0x71};/ U- t. a+ ]5 `8 a3 B
uchar code table1[]=
% {: v" a8 j2 B$ U, r* z{0xbf,0x86,0xdb,0xcf,# D# b. }( o1 e# ~3 f% H N2 d# R. ~
0xe6,0xed,0xfd,0x87,( V. x$ H3 {7 Z' o, h3 T' H6 w
0xef,0xdf,0xe7,0xec,; S, i0 I G! `) V
0xb9,0xde,0xe9,0xe1};, }) j8 M: |* A1 O; H
void delay(uint);/ Q, y, L5 `" ]3 G
void display(uint); z1 } F g1 m- G' t
void main()
! z9 m: T l! `% N2 F{
& T, u; u% l% Z5 { while(1)
# L1 o, o5 ~# p4 e0 { {- J1 g0 A" W/ O- k
wr=0;
- K1 u" G' f6 b a _nop_();
4 a; c/ c* y. b1 u5 i: I wr=1;
) P3 G/ ], D9 L/ i display(x);6 n/ [4 m3 |) Q' Z$ E
rd=0;
7 H: y+ ~3 b! z* c C _nop_();
. [: i1 y7 ?3 W v=P1;
# i1 [2 [/ ]7 U. @) a- ]# J2 Q if(v>=133). I$ v* |! u; a1 P/ a5 H8 [: Q0 v
{
; J0 ?: I/ ~. a+ u5 `# K) z x=(v-133)*2;
$ q8 o) H, z) T f=0;- S% P+ j* a) k1 c$ t
}
' N4 B( }# r: q1 @% N3 Z: N3 n else
1 r S# G- l) _ L0 s4 r- O {
1 L- r+ j( { T9 f x=(133-v)*2;" o& O1 z" I3 e3 w2 B
f=1;
' T+ F: \* K" U0 Z l }1 S& d7 ?0 i. P4 a/ P# X
rd=1;
: y3 N8 S- b3 A2 ~) A+ S$ Z6 Z }
U; | E7 k4 \+ N% B6 G}, H$ S) W( U: [
void delay(uint x)
% {( o- m2 v* B, `) J7 J: `{
& S5 k) G" [) f5 W2 S/ Y9 ~2 a g uint i,j;
/ X8 A, Y" K: v) N for(i=x;i>0;i--)
7 @3 Q8 l4 M/ U2 j for(j=110;j>0;j--);
1 t* j( O, g! x& s; I$ z}
/ c; N- K4 K! [& Mvoid display(uint x)" u, @- b$ p5 U6 n7 R
{* @: y" x* o) C I7 S" @0 v
bai=x/100;# h) x9 r# c$ P4 h# ]
shi=x%100/10;
7 j3 e9 f F) c2 x- d6 d- B2 N7 n: C ge=x%100%10;
4 n7 a/ Q/ `9 Q2 ` if(f==1)
2 \. d5 x$ N; z3 @2 G {
# c" K5 ?9 h! j$ R P0=0x7e;1 ^5 E! g) ^1 E3 W8 [( }) h
P3=0x40;
$ m9 J: b u' J delay(5);
. F& H$ I; }* M$ [- q2 z& w; \) p+ \ P3=0x00;3 n3 B* x' N+ f8 e6 }2 H0 x
7 L8 x+ T8 P( ?; {4 }) Z
…………限于本文篇幅 余下代码请从论坛下载附件…………( B+ {" M' x3 D# Z
" N3 d' p& ?& Q* l' V. Z9 G& I1 ^
|
|