logo资料库

51单片机的多路温度采集控制系统设计.pdf

第1页 / 共24页
第2页 / 共24页
第3页 / 共24页
第4页 / 共24页
第5页 / 共24页
第6页 / 共24页
第7页 / 共24页
第8页 / 共24页
资料共24页,剩余部分请下载后查看
基于 51 单片机的多路温度采集控制系统设计 言: 随着现代信息技术的飞速发展,温度测量控制系统在工业、农业 及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活 具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的 意义。 本次设计的目的在于学习基于 51 单片机的多路温度采集控制 系统设计的基本流程。本设计采用单片机作为数据处理与控制单元, 为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单 总线从数字温度传感器传递到单片机上。单片机数据处理之后,发出 控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送 到 LED 进行显示。本系统可以实现多路温度信号采集与显示,可以使 用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制 信号达到控制蜂鸣器和继电器的目的。 我所采用的控制芯片为 AT89c51,此芯片功能较为强大,能够 满足设计要求。通过对电路的设计,对芯片的外围扩展,来达到对某 一车间温度的控制和调节功能。 关键词:温度 多路温度采集 驱动电路 - 1 -
正文 : 1、温度控制器电路设计 本电路由 89C51 单片机温度传感器、模数转换器 ADC0809、窜入 并出移位寄存器 74LS164、数码管、和 LED 显示电路等组成。由热敏 电阻温度传感器测量环境温度,将其电压值送入 ADC0809 的 IN0 通道 进行模数转换,转换所得的数字量由数据端 D7-D0 输出到 89C51 的 P0 口,经软件处理后将测量的温度值经单片机的 RXD 端窜行输出到 74LS164,经 74LS164 窜并转换后,输出到数码管的 7 个显示段,用 数字形式显示出当前的温度值。89C51 的 P2.0、P2.1、P2.2 分别接 入 ADC0809 通道地址选择端 A、B、C,因此 ADC0809 的 IN0 通道的地 址为 F0FFH。输出驱动控制信号由 p1.0 输出,4 个 LED 为状态指示, 其中,LED1 为输出驱动指示,LED2 为温度正常指示,LED3 为高于上 限温度指示,LED4 为低于下限温度指示。当温度高于上限温度值时, 有 p1.0 输出驱动信号,驱动外设电路工作,同时 LED1 亮、LED2 灭、 LED3 亮、LED4 灭。外设电路工作后,温度下降,当温度降到正常温 度后,LED1 亮、LED2 亮、LED3 灭、LED4 灭。温度继续下降,当温度 降到下限温度值时,p1.0 信号停止输出,外设电路停止工作,同时 LED1 灭、LED2 灭、LED3 灭、LED4 亮。当外设电路停止工作后,温度 开始上升,接着进行下一工作周期。 2、 温度控制器程序设计 本软件系统有 1 个主程序,6 个子程序组成。6 个子程序为定时/ - 2 -
计数器 0 中断服务程序、温度采集及模数转换子程序 ADCON、温度计 算 子程序 CALCU、驱 动控制子 程序 DRVCON 、十进制 转换 子程序 METRICCON 及数码管显示子程序 DISP。 (1)主程序 主程序进行系统初始化操作,主要是进行定时/计数器的初始化。 (2)定时/计数器 0 中断服务程序 应用定时计数器 0 中断的目的是进行定时采样,消除数码管温度 显示的闪烁现象,用户可以根据实际环境温度变化率进行采样时间调 整。每当定时时间到,调用温度采集机模数转换子程序 ADCON,得 到一个温度样本,并将其转换为数字量,传送给 89C51 单片机,然后 在调用温度计算子程序 CALCU,驱动控制子程序 DRVCON,十进制 转换子程序 MERTRICCON,温度数码显示子程序 DISP。 (3)温度采集及模数转换子程序 ADCON 该子程序进行温度采样并将其转换为 8 位数字量传送给 89C51 的 P0 口。采样得到的温度数据存放在片内 RAM 的 20H 单元中。 (4)温度计算子程序 CALCU 根据热敏电阻的分度值和电路参数计算出出一张温度表,存放在 DATATAB 数据表中,由于篇幅关系,本程序只给出 0-49℃的温度数 据。一个温度有两个字节组成,前一字节为温度值,后一字节为该温 度所对应的热敏电阻上的电压的数字量。根据采样值,通过查表及比 较的方法计算出当前的温度值,并将其存入片内 RAM 的 21H 单元。 采用查表法计算温度值时为了克服热敏电阻的阻值——温度特性曲 - 3 -
线的非线性,提高测量精度。 (5)驱动控制子程序 DRVCON 该子程序调节温度,当温度高于上限温度时(本程序设为 30℃), P1.0 输出驱动控制信号,驱动外设工作降温;当温度下降到下限温度 时(本程序设为 25℃),P1.0 停止输出,温度上升,周而复始;工作 状态有 LED1-LED4 指示。 (6)十进制转换子程序 METRICCON 将存放于内部 RAM21H 单元的当前温度值得二进制数形式转换 为十进制数(BCD 码)形式,以便输出显示,转换结果存放在片内 RAM 的 32H 单元(百位)、31H(十位)、30H 单元(个位)。 (7)数码显示子程序 DISP 该子程序利用 89C51 串口的方式 0 串行移位寄存器工作方式,将 片内 RAM 的 30H、31H、32H 单元的 BCD 码查表转换为七段码后由 RXD 端串行发出去,然后经 74LS164 串并转换,将七段值传送给数 码管,以十进制形式显示出当前温度值。 根据以上分析画出的部分程序设计流程图如图 1-0 至图 1-4 所示。 - 4 -
开始 在 0000H 处放置一条长跳转 指令 LJMP MAIN 跳转到主程序 在 0000H 处放置一条长跳转指令 LJMP T0INT 跳转到 T0 中断服务程 序 图 1-0 部分程序设计流程图的设计框架 - 5 -
主程序 计数寄存器 R1 赋初值 10 P1 口赋初值 FFH,所有指示 灯全灭 堆栈指针 SP 赋初值 60H TMOD 赋初值 01H T0 工作于定时方式 1 软启动 TH0 赋初值 3CH, TL0 赋初值 B0H, T0 定时 100ms IE 赋初值 82H,T0 允许中断 SETB TR0 启动 T0 工作 动态停机 图 1-1 主程序流程图 - 6 -
N T0 中断服 务程序 温度采样时 间间隔到否 Y 调用温度采用及模数转换 子程序 ADCON 调用温度计算子程序 CALCU 调用驱动控制子程序 DRVCON 调用十进制转换子程序 METRICCON 调用数码管显示子程序 DISP T0 重装初值 中断返回 图 1-2 T0 中断服务程序流程图 - 7 -
温度采样及模数 转换子程序 将 ADC0809 启动 A/D 转换 转换结束否 读取转换数据 将转换数据存于片内 RAM20H 单元 返回 图 1-3 温度采样及模数转换子程序流程图 - 8 -
分享到:
收藏