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