温度传感器毕业设计20页_第1页
温度传感器毕业设计20页_第2页
温度传感器毕业设计20页_第3页
温度传感器毕业设计20页_第4页
温度传感器毕业设计20页_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 1 系统总体方案设计.1 1.1 系统硬件设计方案.1 2 系统硬件设计.2 2.1 中央处理器 .2 2.1.1 AT89C51 简介.2 2.12 特殊功能存储器.3 2.1.5 复位电路的设计.3 2.1.6 时钟电路设计.3 2.2 温度传感器 AD590.4 2.3 信号调理电路 .5 2.4 温度标定.6 2.5 A/D 转换 .8 2.6 LED 显示 .9 2.7 控制电路 .11 3 系统软件设计.12 3.1 程序初始化.13 3.2 主程序.14 3.3 A/D 转换子程序 .15 3.4 标度转换子程序 .16 3.5 控制子程序.16 3.6 键盘子程序 .17

2、 4 结论.18 参考文献.19 致谢.20 1 系统总体方案设计 本次设计采用 MCS-51 单片机作为控制芯片,采用半导体集成温度传感器 AD590 采 集温度信号。通过温度传感器将采集的温度信号转换成与之相对应的电信号,经过放 大处理送入 A/D 转换器进行 A/D 转换,将模拟信号转换成数字信号送入到控制芯片进 行数据处理。通过在芯片外围添加显示、控制等外围电路来实现对保温箱温度的实时 检测和控制功能。 本系统功能由硬件和软件两大部分协调完成,硬件部分主要完成传感器信号的采集 处理,信息的显示等;软件主要完成对采集的温度信号进行处理及显示控制等功能。系 统结构框图如图 1.1 所示:

3、保保 温温 箱箱 AD590 热源 交流 电源 调理电路 单片机最小系统单片机最小系统 A/D 控制 单片机 显示 设定 继电器 直流 电源 图 1.1 系统结构框图 2 系统硬件设计 2.1 中央处理器 MCS-51 系列单片机是 8 位增强型,其主要的技术特征是为单片机配置了完善的外 部并行总线和具有多级识别功能的串行通讯接口(UART) ,规范了功能单元的 SFR 控 制模式及适应控制器特点的布尔处理系统和指令系统。属于这类单片机的芯片有许多 种,如 8051、8031、80C51 等等。由于单片机具有较高的性能比,国内 MCS-51 系列 单片机应用最广,易于开发、使用灵活、而且体积小

4、、易于开发、抗干扰能力强,可 以工作于各种恶劣的条件下,工作稳定等特点。本设计本着实用性和适用性的要求, 选择 AT89C51 单片机作为中央处理器。 2.1.1 AT89C51 简介 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器的具有低电压,高性能 CMOS 的 8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造 技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,为很多 嵌入式控制系统提供了一种灵活性高且价廉的方案。如图 2.1

5、 为 AT89C51 的内部结构 框图。 图 2.1AT89C51 的内部结构框图 2.1.3 特殊功能存储器 在单片机内高 128B RAM 中,由有 21 个特殊功能寄存器(AFR) ,它们离散的分布在 80H- FFH 的 RAM 空间中,访问特殊功能寄存器只允许使用直接寻址方式。3.1.4 芯片擦除 整个 EPROM 阵列电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电平 10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重 复编程以前,该操作必须被执行。此外,AT89C51 设有稳态逻辑,可以在低到零频率 的条件下静态逻辑,支持两种软件可选的掉

6、电模式。在闲置模式下,CPU 停止工作。 但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内 容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 2.1.4 复位电路的设计 复位使单片机处于起始状态,并从该起始状态开始运行。AT89C51 的 RST 引脚为 复位端,该引脚连续保持 2 个机器周期(24 个时钟振动周期)以上高电平,则可使单 片机复位。内部复位电路在每一个机器周期的 S5P2 期间采样斯密特触发器的输出端, 该触发器可抑制 RST 引脚的噪声干扰,并在复位期间不产生 ALE 信号,内部 RAM 处于 不断电状态。其中的数据信息不会

7、丢失,也即 复位后,只影响 SFR 中的内容,内部 RAM 中的 数据不受影响。外部复位有上电复位和按键电 平复位。由于单片机运行过程中,其本身的干 扰或外界干扰会导致出错,此时我们可按复位 键重新开始运行。为了便于本设计运行调试, 复位电路采用按键复位方式。按键复位电路如 图 2.2 所示。 图 2.2 复位电路 2.1.5 时钟电路设计 时钟电路是单片机的心脏,它控制着单片机的工作节奏。MCS-51 单片机允许的时 钟频率是因型号而异的,其典型值为 12MHZ。AT89C51 内部有一个反相振荡放大器,XTAL1 和 XTAL2 分别是 该反向振荡放大器的输入端和输出端。该反向放大器可 配

8、置为片内振荡器,石晶振荡和陶瓷振荡均可采用。本 设计采用的晶振频率为 12MHZ。其时钟电路如图 3.4 所 示。51 系列单片机还可使用外部时钟。在使用外部时钟时,外部时钟必须从 XTAL1 输 入,而 XTAL2 悬空。 2.2 温度传感器 AD590 温度传感器的应用范围很广,它不仅用于日常生活中,而且也大量应用于自动化 和过程检测控制系统。温度传感器的种类很多,根据现场使用条件,选择恰当的传感 器类型才能保证测量的准确可靠,并且同时达到增加使用寿命和降低成本的目的。 AD590 温度传感器不但实现了温度转化为线性电量测量,而且精度高、互换性好。 AD590 测量热力学温度、摄氏温度、两

9、点温度差、多点最低温度、多点平均温度的具 体电路,广泛应用于不同的温度控制场合。由于 AD590 精度高、价格低、不需辅助电 源、线性好,常用于测温和热电偶的冷端补偿。本设计采用 AD590 作为温度传感器, 它只需要一个电源即可实现温度到电流的线性变换,然后再终端使用一只取样电阻, 即可实现电流到电压的转换。它使用方便,并且具有较高的精度。图 3.5 为 AD590 的 封装形式和基本应用电路。 图 2.3 AD590 封装形式和应用电路 AD590 集成温度传感器是将温敏电阻晶体管与相应的辅助电路集成在同一块芯片 上,能直接给出正比于绝对温度的理想线形输出,温敏晶体管在管子的集电极电流恒

10、定时,其基极发射极电压与温度成线形关系,由于生产厂家生产时采用激光微调来校 正集成电路内的薄膜电阻,使其在摄氏零度(对应绝对温度为 273.2K) ,输出电流微 273.2uA,灵敏度微 1uA/K。当其感受的温度升高或者降低时,则其电流就以 1uA/K 的 速率增大或减小,从而将被测电流转换为电压,则可以用电压来表示其温度大小。为 克服温敏晶体管 vb 电压产生时的离散性,采用了特殊的差分电路。集成温度传感器具 有电压型和电流型两种。因此,它不容易受接触电阻、引线电阻、电压噪音的干扰, 具有很好的线性特性。 AD590 温度传感器作为一个恒流源,在本设计的温度检测电路中在 AD590 的输出

11、 端接一取样电阻可将输出电流信号变化转换为电压信号变化。由于 AD590 温度传感器 温度每变化 1其输出电流变化 1A。所以在接上 10K 的取样电阻的情况下,温度每 变化 10,输出电压就将变化 0.1V。 2.3 信号调理电路 经过温度传感器采集输出的电压信号一般来说是非常微弱的,因此,在送往单片 机处理之前应对该信号进行放大。本系统所采用的 A/D 转换器为 ADC0809,由于 ADC0809 的输入信号应在 05V 之间,因此,经过放大电路放大的信号进入 A/D 转换 器的电压信号应控制在 05V 之间,根据此原则可设计合适的放大倍数。 信号调理电路主要由运算放大器 0P07 等组

12、成。为了使温度检测电路的输出电压能 够适合于 A/D 转换器的参考电压,利用超低温漂移高精度运算放大器 0P07 将温度电压 信号进行放大到 05V 的范围之内,便于 A/D 进行转换,以提高温度采集电路的可靠性。 本设计中,信号调理电路部分由集成运放 OP07 分别构成一个电压跟随器,电压比 较器和一个同相输入放大器用于对 AD590 输出的小电压信号进行放大处理9。信号调 理电路如图 3.6 所示 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date:18-Jun-2007Sheet of File:C:Document

13、s and SettingsAdministratorM y Documents件件件件件件件件件件件件件件.ddbDrawn By: 2 3 74 6 1 8 U1 OP07 2 3 74 6 1 8 U2 OP07 2 3 74 6 1 8 U3 OP07 R5 100K R7 100K R6 100K R4 100K R8 100K R9 100K R10 20K +15 +15 R1 10K 1 1 2 2 3 3 R3 100K + - 1 2 J1 AD590 +15 +15 -15 +15 -15 -15 Uo Uo1 Ui Ui1 Ui2 图 2.4 温度检测电路 在该放大电路

14、中,电压跟随器起阻抗匹配的作用。反馈电阻为零时,放大倍数为 1,电压跟随器的输入电压等于输出电压 oi VV 11 电压比较器用于对输出电压小信号电压进行调零,在上述电路图中的电压比较器 部分由于 R2=R4 R3=R5 可得电压比较器的输出电压 根据电压跟随 120ii UUU 器的输出电压调节电位计 R9 就改变电压比较器的输入电压。使得当温度为温度 2i U 1 i U 测量下限时电压比较器的输出电压为零。 起放大作用的是同相输入放大器 OP07。其放大倍数: 因此放大器 7 6 1 R R A 的输出电压 i UAU* 0 2.4 温度标定 一元线性回归是处理两变量之间的关系,即两个变

15、量 X 和 Y 之间若存在一定的关 系,则可通过试验,分析所得数据,找到两者之间的关系的经验公式。假如两变量之 间的关系是线性的则称为一元线性回归。由于变量测量中存在随机误差,一元线性方 程回归可用最小二乘法处理求得一元线性回归方程。最小二乘原理指出,最可信赖值 应在使残余误差平方和最小的条件下求得。 输出电压 y 与温度 x 大致成线性关系。因此,我们假设 x 与 y 之间的内在关系是 一条直线,有些点偏离了直线,这是试验过程中其他随机因素的影响而引起的。这样 就可以假设这组测量数据有如下结构形式: , t=1,2, N (3-2) ttt xy 0 式中的 ,分别表示其他随机因素对电压测得

16、值 , , 1 2 N 1 y 2 y 的影响,一般假设它们是一组相互独立、并服从同一正态分布的随机变量,式(3-2) N y 就是一元线性回归的数学模型。此例中 N7。 我们用最小二乘法来估计式(3-2)中的参数、。 0 设 b0和 b 分别是参数和的最小二乘估计,便可得到一元线性回归的回归方 0 程 (3-3)bxby 0 式中的 b0和 b 是回归方程的回归系数。对每一个实际测得值与这个回归值 t y 之差就是残余误差: t y t v , t=1,2, N (3-4)bxbyv tt 0 应用最小二乘法求解回归系数,就是在使残余误差平方和为最小的条件下求得回 归系数 b0和 b 的值。

17、用矩阵形式,令 , , , N y y y Y 2 1 N x x x X 1 . . . 1 1 2 1 b b B 0 N v v v V 2 1 则式(3-2)的矩阵形式为 (3-5)XBYV 假定测得值的精度相等,根据最小二乘原理,回归系数的矩阵解为 t y (3-6) YXXXB TT1 )( 代入数据后: , 46 . 3 85 . 2 26 . 2 67 . 1 06 . 1 42 . 0 0 Y 801 701 601 501 401 301 221 X 求解线性方程系数: b b YXXXB TT01 06 . 0 34 . 1 )( 因此 b0=-1.34 b=0.06 线

18、性方程为: (3-7)34 . 1 06 . 0 xy 2.5 A/D 转换 ADC0809 是一种 8 位逐次逼近式 A/D 转换器,其内部有一个 8 位“三态输出锁存 器”可以锁存 A/D 转换后的数字量,故它本身既可看作一种输入设备,也可以认为是 并行 I/O 接口芯片。故 ADC0809 可以和微机直接接口,本设计就是用 AT8951 和 ADC0809 直接相连的。 AT89C51 与 ADC0809 的连接方法如图 3.9 所示,AT89C51 通过地址线 P2.7 和写 控制信号线用一个或非门联合控制启动转换信号端(START)和地址锁存信号端(ALE)。 _ WR 地址线 P2

19、.7 和读控制信号线用一个或非门联合控制输出允许控制端(EOC)。低三位 _ RD 地址线加到 ADC0809 的 ADDA、ADDB、ADDC 端,所以选中 ADC0809 的 IN0 通道 的地址为 7FF8H。转换结束信号 EOC 通过一个反相器接到 INT1。 AT89C51 和 ADC0809 连接通常可以采用查询和中断两种方式。本系统采用中断 方式传送数据,EOC 线作为 CPU 的中断请求输入线。CPU 线响应中断后,应在中断 服务程序中使 OE 线变为高电平,以提取 A/D 转换后的数字量。 123456 A B C D 654321 D C B A Title NumberR

20、evisionSize B Date:18-Jun-2007Sheet of File:C:Documents and SettingsAdministratorMy Documents件件件件件件件件件件件件件件.ddbDrawn By: IN-0 26 msb2-1 21 2-2 20 IN-1 27 2-3 19 2-4 18 IN-2 28 2-5 8 2-6 15 IN-3 1 2-7 14 lsb2-8 17 IN-4 2 EOC 7 IN-5 3 ADD-A 25 IN-6 4 ADD-B 24 ADD-C 23 IN-7 5 ALE 22 ref(-) 16 ENABLE 9

21、ST ART 6 ref(+) 12 CLOCK 10 U8 ADC0809 D0 3 Q0 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 U6 74LS373 EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35

22、 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE /P 30 TXD 11 RXD 10 U5 AT89C51 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 CLK DIN CLK 3 D 2 SD 4 CD 1 Q 5 Q 6 U7A 74LS74 CLK 11 D 12 SD 10 CD 13 Q 9 Q 8 U7B 74LS74 VCC VCC VCC 5 6 4

23、 U9B 74LS02 2 3 1 U9A 74LS02 8 9 10 U9C 74LS02 VCC GND P1.2 图 2.5 AT89C51 与 ADC0809 连接图 和 START 的逻辑关系分别为: _ OE P2.7P2.7 + _ OEWR _ WR START= P2.7= P2.7 + RD _ RD 对 ADC0809 地址的确定:根据系统硬件连接图可知所选定模拟电压路数为 IN0, 其对应的地址为 ABC=000,即 P0.0、P0.1、P0.2=0 0 0;又 P2.7=0 时才能启动 ADC0809 工作和使 AT89C51 从 ADC0809 接收 A/D 转换电

24、压的数字量。故确定 ADC0809 其中 一个地址为: 0111 1111 1111 1000B=7FF8H ,其中“_ ”表示固定量。 ADC0809 的 IN0 和变送器输出端线连,故 IN0 上输入的 0V5V 范围的模拟电 压经 A/D 转换后可由 AT89C51 通过程序从 P0 口输入到它的内部 RAM 单元。 2.6 LED 显示 单片机应用系统中使用的显示器主要有发光二极管显示器,简称 LED;液晶显示 器,简称 LCD。前者价廉,配置灵活,与单片机接口方便;后者可进行图形显示,但 接口复杂,成本较高。结合本设计的特点,在这里系统的显示采用发光二极管作为显 示器件。 单片机中使

25、用 7 段 LED 构成字形“8” ,另外,还与一个小数点发光二极管用以显 示数字、符号及小数点。这种显示器有共阴极和共阳极两种,如图 3.11 所示。发光二 极管的阳极连在一起称为共阳极显示器,阴极连在一起的称为共阴极显示器。一位显 示器由八个发光二极管组成,其中,7 个发光二极管构成字形“8”的各个笔划(段) a-g,另一个小数点为 dp 发光二极管。当在某段发光二极管施加一定的正向电压是,该 段笔划即点亮;不加电压则该段二极管不亮。为了保护各段 LED 不被损坏,需要外加 限流电阻。 图 2.6 数码管 如果要显示某个字形,则应使此字形的相应段点亮,也即送一个不同的电平组合 代表的数据来

26、控制 LED 的显示字形,此数据称为字符的段码。如使用共阳极数码管, 数据为 0 表示对应字段亮,数据为 1 表示对应字段暗;如使用共阴极数码管,数据为 0 表示对应字段暗,数据为 1 表示对应字段亮。如要显示“0” ,共阳极数码管的字型编 码应为:11000000B(即 C0H) ;共阴极数码管的字型编码应为:00111111B(3FH) 。 74LS164 是 8 位串入并出移位寄存器。它的引脚如图 3.12 所示。A、B 为串行输入 端,QAQH 为串行输出端,CLK 为串行时钟输入端,为串行输出清零端,VCCRM 为+5V 电源输入端,GND 为接地端。具体输入输出关系如表 3-6 所

27、示。X 代表任意状 态;QA0、QB0 QH0 代表在稳态输入条件建立之前 QA、QBQH 的输出状态; QAn、QBn QHn 代表在最近的时钟上升沿转换之前 QA、QBQH 的输出状态; H/L、QAn QBn 代表在最近的时钟上升沿转换之后 QA、QBQH 的输出状态。 表表 2-62-6 74LS16474LS164 输入输出关系如所示输入输出关系如所示 输入输出 清除 时钟 A B QA QB QH L X X X H L X X H H H H L X H X L L L L QA0 QB0 QH0 H QAn QGn L QAn QGn L QAn QGn 图 2.7 74LS1

28、64 引脚如图 串行显示电路属于静态显示,比动态显示亮度更大一些。由于 74LS164 在低电平 输出时,允许通过的电流达 8mA,故不必添加驱动电路,亮度也比较理想。与动态扫 描相比较,无需 CPU 不停的扫描,频繁地为显示服务,节省了 CPU 时间,软件设计 也比较简单。由于本设计采用的是共阳极数码管,所以相应的亮段必须送 0,相应的暗 段必须送 1。原理图如图 2.8 所示: 123456 A B C D 654321 D C B A Title NumberRevisionSize B Date:18-Jun-2007Sheet of File:C:Documents and Sett

29、ingsAdministratorMy Documents件件件件件件件件件件件件件件.ddbDrawn By: A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U1 74LS164 RXD TXD A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U2 74LS164 A 1 B 2 Q0 3 Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U3 74LS164 A 1 B 2 Q0 3

30、Q1 4 Q2 5 Q3 6 Q4 10 Q5 11 Q6 12 Q7 13 CLK 8 MR 9 U4 74LS164 VCC TXDTXDTXD a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 9 DS1 DPY_7-SEG_DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 9 DS2 DPY_7-SEG_DP a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 9 DS3 DPY_7-SEG_DP a b

31、f c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp 9 9 DS4 DPY_7-SEG_DP R1 10K R2 10K R3 10K R4 10K 图 2.8 LED 串行静态显示 2.7 控制电路 在本设计中,被测温度信号经采样处理后,还需要通过单片机系统的 P1.2 口输出 用以控制保温箱的温度,通过这种方式达到控制的目的。控制的方式主要有模拟量控 制和开关量控制。本系统采用的是开关量控制。所谓的开关量控制就是通过控制设备 的“开”或“关”状态的时间来达到控制的目的6。 由于输出设备往往需要大电压来控制,而单片机系统输出的为 TTL 电平,

32、这种电 平不能直接驱动外部设备的开启和关闭。另一方面,许多外部设备在开关过程中会产 生很强的电磁干扰信号,如果不隔离会使系统进行错误的处理。因此在开关量的输出 控制过程中要考虑到两个问题,一要隔离;二要放大。 本设计采用继电器作为控制电路的主要器件,继电器具有一定的隔离作用,在继 电器前面加一个三极管用以放大输出信号就可以驱动继电器的闭合和断开,从而实现 弱电控制强电的效果。继电器是一种电子控制器件,它具有控制系统(又称输入回路) 和被控制系统(又称输出回路) ,通常应用于自动控制电路中,它实际上是用较小的电 流控制较大电流的一种开关。故在电路中起自动调节、安全保护、转换电路等作用。 在工业自

33、动化控制系统中,继电器经常被用来控制执行机构, 特别是应用在一些耐潮、 耐腐蚀、防爆的特殊装置中。固态继电器和 MCS-51 系列单片机组成的控制系统, 具有 抗干扰性强、编程简单、系统兼容性好等特点,具有非常广阔的应用前景。继电器一般 由通电线圈和触电组成。当线圈通电时,由于磁场作用,使开关触电闭合。当不通电 时,则开关触点断开。一般线圈可用直流低电压控制(+5V,+9V,+12V) 。 继电器的特性参数包括输入和输出参数,主要的参数为额定输入电压、额定输出 电流、浪涌电流。根据输入电压参数值大小,可确定工作电压大小。如采用 TTL 或 CMOS 等逻辑电平控制时,采用有足够带载能力的低电平

34、驱动,并尽可能使“0”电平低 于 0.8 V。如在噪声很强的环境下工作,不能选用通、断电压值相差小的产品,必需选 用通、断点压值相差大的产品,(如选接通电压为 8 V 或 12 V 的产品)这样不会因噪声 干扰而造成控制失灵 。本设计就是采用直流驱动电压为+5V 的继电器。触电输出部分 可以直接与市电连接。继电器控制电路如图 3.14 所示: 开始 初始化温度参数 采样当前温度 当前温度和设定温度送显示缓冲 设定温度-当 前温度 继电器闭合继电器断开维持状态 读键盘 键值? 向上键向下键 设定温度减 1设定温度加 1无键按下 2.9 继电器控制电路 3 系统软件设计 本次单片机温控系统的功能是

35、由硬件电路配合软件来实现的,当硬件基本定型后, 软件的功能也就基本定下来了。系统软件的功能又可分为两大类:一是监控软件,它 是整个控制系统的核心,专门用来协调各执行模块和操作者的关系。二是执行软件, 它是用来完成各种实质性的功能如测量、显示等功能。每一个执行软件也就是一个小 的功能执行模块。本文将各执行模块一一列出,各执行模块规划好后,就可以规划监 控程序了。本系统程序设计包括温度采集子程序、显示子程序、标度转换资程序、键 盘子程序、控制子程序11。程序流程图如图 4.1 所示。 小于等于-2 大于等于 2 图 3.1 系统流程图 3.1 程序初始化 程序初始化部分根据系统硬件原理图及设计要求

36、对单片机系统进行系统资源分配、 参数的设置以及定义。系统内部资源分配和参数设置如下: A/D 端口地址(ADPORT): 7FF8H 显示缓冲起始地址:(LEDBUF): 30H 段码存储起始地址(TEMP): 40H 设定温值存储地址(SETTEMP): 50h 测量温度存储地址(CURTEMP):51H 温度设定上限(HIGHLIMIT): 80 温度设定下限(LOWLIMIT): 25 温度测量上限(HIGHTEMP) 107 温度测量下限(LOETEMP) 21 初始化程序代码如下: ADPORT EQU 7FF8H ;A/D 端口地址 LEDBUF EQU 30H ;显示缓冲 TEM

37、P EQU 40H ;段码存储 UP EQU 1 ;增温 DOWN EQU 2 ;减温 LOWLIMIT EQU 25 ;设定值下限 HIGHLIMIT EQU 80 ;设定值上限 LOWTEMP EQU 21 ;A/D 0 HIGHTEMP EQU 107 ;A/D 255 SETTEMP EQU 50H ;设定温值 CURTEMP EQU 51H ;测量温度 DIN BIT 0B0H ;P3.0 CLK BIT 0B1H ;P3.1 ORG 0000H LJMP START 3.2 主程序 主程序的编写是为了实现程序在各个模块间的跳转。这样使程序编写思路更加明 了,简化了程序的编写难度,有

38、利于程序的调试。本软件系统包括 A/D 转换模块,标 度转换模块,显示模块,键盘模块,控制模块等。 主程序代码如下: START: MOV SETTEMP, #20 ;初始恒温值为 20 MLOOP: CALL TESTKEY ;测试有无键 入 JNZ KEYPRESSED ;更改设定值 CALL DISPLAYRESULT ;数制转换 CALL DISPLAYLED ;显示 CALL READTEMP ;读入温度 CONTROL: ;控制子程序 KEYPRESSED: ;键盘子程序 END 开始 初始化 启动 A/D 转换 A/D 转换 完 成? 数据输出 延时 结束 3.3 A/D 转换子

39、程序 根据系统硬件连接图可知,在系统中将 ADC0809 作为一个外部扩展并行 I/O 口, 采用线选寻址。由 P2.7 和联合控制启动转换信号端(ATART)和 ALE 端,低三 RW 位地址线架到 ADC0809 和 ADDA,ADDB,ADDC 端,所以选中 ADC0809 的 IN0 通 道的地址为 7FF8H。 启动 DAC0809 的工作过程是:先送通道号地址到 ADDA,ADDB,ADDC,由 ALE 信号锁存通道号地址,后让 ATART 有效,启动 A/D 转换,即执行一道“MOVX DPTR ,A”指令产生信号,使 ALE,START 有效,锁存通道号并启动 A/D 转换,

40、RW A/D 转换完毕后,EOC 端发出一正脉冲,申请中断。 图 4.2 A/D 转换流程图 在中断服务程序中, “MOV A , DPTR”指令产生信号,使 OE 端有效,打开输出 DR 锁存器三态门,8 位数据便读入到 CPU 中。A/D 转换子程序流程图如图 4.2 所示。 A/D 转换子程序代码如下: READAD: MOV DPTR, #ADPORT CLR A MOVX DPTR, A ;START A/D JNB P3.3, $ MOVX A, DPTR ;读入结果 RET 3.4 标度转换子程序 系统温度测量范围的计算原理:根据温度标定结果选取两个温度状态 T1 T2,模拟 输

41、出电压 V1 V2;根据 0809 的输入范围在 0 到 5 伏,即可计算出温度极限。计算公式 如下: 0 伏时对应的温度 TL:T1-(V1-0) (T2-T1)/(V2-V1) 5 伏时对应的温度 TH:T1-(V1-5) (T2-T1)/(V2-V1) 根据所得结果采用在温度为 50和 60下所测量的电压输出 1.6V 和 2.2V 为计算 温度测量范围的参数,根据上式可得: TL=50-(1.68-0)(50-40)/(2.26-1.68)=21 TH=50-(1.68-5)(50-40)/(2.26-1.68)=107 所以 A/D 转化的极限范围为 21-107之间,而根据系统要求

42、温度的控制范围为 25-80之间,符合系统要求。 程序中温度的计算原理:首先用温度范围除以 0 到 256(即每个十六进制数的温度 增长率) ,然后乘以模拟转换的数字量,即得到升高的温度,再和最低温度相加,就可 以得到实际的温度值。其公式为:TL+AX(TH-TL)/256 TL:显示的最低温度 TH:显示的最高温度 AX:模拟电压所转换的数字量 3.5 控制子程序 本设计采用 P1.2 作为输出控制口。当设定温度比当前温度高 2以上时,P1.2 置 1,使其输出高电平,用以驱动继电器,使继电器闭合,电炉开始加热。当设定温度比 当前温度低 2以下时,P1.2 置零,使继电器断开,电炉停止加热。

43、 3.6 键盘子程序 键盘是人与微机打交道的主要设备,从系统监控软件的设计角度来看,仅仅通过 键盘扫描,读取当前时刻的键盘状态是不够的,还有不少问题需要解决,否则,在操 作键盘时就容易引起误操作和操作失控等现象。 在非编码键盘系统中,键闭合和键释放的信息的获取,键抖动的消除,键值查找 及一些保护措施的实施等任务,均由软件来完成。非编码键盘的键输入程序应完成的 基本任务:监测有无键按下;键的闭合与否,反映在电压上就是呈现出高电平或低 电平,所以通过电平的高低状态的检测,便可确认按键按下与否。判断是哪个键按 下。完成键处理任务。 按键的触点在闭合和断开时均会产生抖动,这时触点的逻辑电平是不稳定的,如 不妥善处理,将会使按键命令的错误执行或重复执行。在这里采用软件延时的方法来 避开抖动阶段,这一延时程序一般大于 5ms。在第一次检测到有键按下时,执行一段 延时子程序后,再确认电平是否仍保持闭合状态电平,如果保持闭合状态电平,则确 认真正有键按下,进行相应处理工作,消除了抖动的影响。这种消除抖动影响的软件 措施是切实可行的。键盘子程序流程图如图 4.5 所示。 4 结论 本设计本着方便、实用性、易于扩

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论