|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
一、单片机简单控制应用3 c5 e2 }# H6 T" }
自动化、数字化和智能化是现代科技发展的潮流,而凡是需要自动化、数字化和智能化的产品和设备等都离不开单片机。
, v! w1 U1 ~: r5 R. }1、 时钟计时
. U. ?8 K8 ^, ]! P8 G! y" J1 J; q(1)时钟计时设置# u+ M% l( q7 y1 h7 L& d
使用80C51的定时器/计数器来实现时钟计时,是一个很好的应用课题。说明如下:
6 }! y" X( [6 P9 R' q要计算计数初值。
- U( K q, U$ \# z$ O0 R/ _ _# y8 i采用中断方式,即通过中断服务程序进行计数器溢出次数的累计,计满8次即得到秒计时。
+ B" G0 j Z" s通过在程序中的数值累加和数值比较来实现从秒到分和从分到时的计时。
: \" i6 x; b) ]设置时钟显示缓冲区。+ D4 m; b! c- ]; x2 b: g" [
(2)程序流程# l& b3 E$ i0 u, _" [' @
①主程序MAIN9 ?8 \4 [5 i6 j' a1 B; I; Y
主程序的主要功能是进行定时器/计数器的初始化编程,然后通过反复调用显示子程序的方法,等待125 ms定时中断的出现。流程图如下:
6 V2 ?+ K7 h! V7 R& J- V
# u. ^8 |" z- q B5 c
②中断服务程序PIT0
! a5 H( m, ~( ~) [; }- a中断服务程序的主要功能是进行计时操作。程序开始先判断计数溢出是否满了8次,若不满8次表明还没有达到最小计时单位秒,则中断返回;若满8次表明已达到最小计时单位秒,则程序继续向下执行,进行分和时的计时。中断服务程序流程如图所示:
3 ~& o' r+ |4 r. o" \ q
! Q1 H8 A5 k7 i; V( v" b
③ 加1子程序DAAD1
. R7 M" h8 ^9 f( W& i$ g" I4 I; A加1子程序用于完成对秒、分、时的加1操作,中断服务程序中在秒、分、时加1时共有3处调用此子程序。, i6 C# v8 H: L$ ]" |
加1操作共包括以下3项内容:
3 ^2 i( j8 k7 l3 @+ j; I- d合数。由于每位LED显示器对应一个8位缓冲单元,因此,由两位BCD码表示的时间值各占用一个缓冲单元,且只占其低4位。所以在加1运算之前需把两个缓冲单元中存放的数值合并起来,构成一个字节,然后才能进行加1运算。所以也称为“合字”。
! E9 |7 P3 z& N _! Y2 {十进制调整。加1后须进行十进制调整。
8 N, o: K/ L0 e3 E% { T0 f分数。把加1后的时间值再拆分成两个字节,送回各自的缓冲单元中。
1 s- W" s. ?( h5 |9 y" H
4 x+ U+ R& b5 a( Z' {9 q2 、数字式热敏电阻温度计
# p) M, R5 r- w) D% Q(1) 热敏电阻温度转换原理, L" t8 Y- r$ @4 m0 \1 b. \
热敏电阻与普通热电阻不同,它具有负电阻温度特性,当温度升高时,电阻值减小。其特性曲线如下图所示 。常在要求不高的一般应用中,作出在一定的温度范围内温度与阻值成线性关系的假定,以简化计算。; Z6 Z/ a1 L; _; ^
8 P8 T) ^3 @1 h1 W: w, b& E热敏电阻的应用是为了感知温度,为此给热敏电阻通以恒定的电流,测量电阻两端得到一个电压,然后就可以通过下列公式求得温度:
3 C# M" L2 C3 U) O- E8 A3 It=t0-KVT2 T% _( c" H O
式中:6 e6 |9 M& x! W/ \ ?$ |& A& P7 E# m
t为被测温度
m2 n0 N& V4 G% z- \" d' X* X8 V t0为与热敏电阻特性有关的温度参数。
7 d$ M/ G( V8 l. y j7 k K为与热敏电阻特性有关的系数。
& }% z- X) k0 Z VT为热敏电阻两端的电压。
! J# v. t8 s( V$ y$ U(2) 基本电路; T. ~ v/ ], g$ U
假定使用ADC0809进行A/D转换。0 P/ ?) r0 w( b8 U
(3)程序设计
2 m1 I5 d; _3 C5 _5 N1)温度计算程序* ?, {7 t; y4 p1 n4 t
在温度计算公式中,系数值K是一个很小的数,为计算方便,取扩大256倍后的K值与VT做乘法运算,即256×K×VT。相乘后如果对乘积只取其高8位而舍弃其低8位,就可以抵消K的256倍扩大,得到正确的结果。$ }, v; c. n( P& V8 F; C5 T
另外,从热敏电阻的阻值-温度特性图中可以看出,在+10~+150℃的温度范围内,阻值与温度的关系线性度比较好。通常就把这个温度范围作为有效温度范围。当温度超出此范围时以数码管全部显示F作为标志。
/ g0 o3 ]9 V5 u; u$ ~- x9 l6 n
. |; Q" f, p. T* r4 a
4 H0 i5 G, g) R& Q3 _+ S |
|