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