专业课程设计说明书课程设计名称:专业课程设计课程设计题目:温度的采集与控制(2)学院名称:信息工程学院专业:电子信息工程班级:学号:姓名:评分:教师:20 年月日专业课程设计任务书2012-2013学年第二学期分散1周第17 周- 19 周集中摘要随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。
本次设计的目的在于学习基于51单片机的温度采集控制系统设计的基本流程。
本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从温度传感器传递到单片机上。
单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。
本系统可以实现温度信号采集与显示,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。
关键词:温度温度采集温度控制目录第一章系统组成及工作原理 (1)1.1 设计要求 (1)1.2 系统组成 (1)1.3 工作原理 (1)第二章硬件电路设计 (2)2.1 温度转换电路 (2)2.2 A/D转换电路 (2)2.3 控制电路 (3)2.4 单片机最小系统 (3)第三章软件设计 (5)3.1 主程序流程图 (5)3.2 7279初始化程序INIT7279 (6)3.3 发送字节程序STFS (7)3.4 延时程序 (9)3.5 中断程序 (10)3.6 AD采样程序 (12)3.7 数值转换程序 (13)3.8 7279送显程序 (14)第四章实验、调试和测试结果分析 (16)4.1 主要仪器和工具 (16)4.2 调试过程及测试结果 (16)结论 (18)参考文献 (19)附录 (20)第一章、系统组成及工作原理1.1、设计要求(1)、采用PT-100温度传感器测温;(2)、采用0804 A/D转换器;(3)、测温范围:0℃ - 255℃,分辨率为±1℃;(4)、当采集温度超过200℃时能能用继电器控制一LED发光管亮。
1.2、系统组成图1.1 系统组成框图1.3、工作原理(1)、温度转换电路:可由用PT-100或热敏电阻构成的电桥与放大电路组成;(2)、A/D转换电路:可采用转换器为ADC0804,将模拟量转换为数字量;(3)、单片机控制:可采用51系列单片机构成的最小系统;(4)、显示电路:可采用7279键盘、显示接口电路;(5)、控制装置:通过一个继电器控制一LED发光管亮。
第二章、硬件电路设计2.1、温度转换电路如图3—1所示为温度转换电路,由热敏电阻和普通电阻构成的电桥与放大电路组成,通过热敏电阻阻值随温度的变化改变电压从而实现对温度的采集,本方案中采用了三运放结构的测量电路,两个对称的同相放大器构成第一级,第二级为差动放大器——减法器,提高了电路的抗共模干扰能力和抑制温漂的影响。
图2.1 温度转换电路原理图2.2、A/D转换电路图3—2是AD转换及单片机控制电路,AD转换电路主要由芯片ADC0804构成。
其中ADC0804的引脚CS 和WR 用来控制A/D 转换的启动信号。
CS 、RD 用来读A/D 转换的结果,当它们同时为低电平时,输出数据锁存器DB0~DB7 各端上出现8 位并行二进制数码。
CLKI(引脚4)和CLKR(引脚19)是片内时钟电路,在外部“CLKI”和“CLKR”两端外接一对电阻电容即可产生A/D 转换所要求的时钟,其振荡频率为fCLK≈1/1.1RC。
其典型应用参数为:R=10KΩ,C=150PF,fCLK≈640KHZ,转换速度为100μs。
INTR (引脚5)是转换结束信号输出端,输出跳转为低电平表示本次转换已经完成,将其与单片机AT89C511的INT1引脚连接可作为微处理器的中断信号。
被转换的电压信号从VIN(+)和VIN(-)输入,允许此信号是差动的或不共地的电压信号。
芯片的VIN(-)端接地,输入电压加到VIN(+)引脚,输入电压VIN的变化范围从0V到Vmax。
VREF/2 端电压值输入电压范围的二分之一,输入电压的范围可以通过调整VREF/2 引脚处的电压加以改变,转换器的零点无需调整。
ADC0804 数据输出线与AT89C51 的数据总线直接相连,AT89C51 的RD 、WR 和INT1直接连到ADC0804,由于用P1.5线来产生片选信号,故无需外加地址译码器。
当AT89C51 向ADC0804 发WR (启动转换)、RD (读取结果)信号时,只要虚拟一个系统不占用的数据存储器地址即可。
2.3、控制电路引脚P1.4接一个继电器用于控制发光二极管,当P1.4输出高电平时继电器导通从而发光二极管发光,P1.4输出低电平时继电器处于断路状态,发光二极管灭。
图2.2 AD转换及控制电路2.4、单片机最小系统复位电路和时钟电路:复位电路有手动复位、上电自动复位(见下图2-7)两种简单的方式。
考虑到减少操作,采用上电自动复位方图2.3 复位电路时钟电路采用f=12MHZ晶振在外接两个30PF进行微调,从XTAL1XTAL2端口接入89c51提供标准时钟信号图2.4 时钟电路第三章、软件设计3.1、主程序流程图图3.1 主程序流程主程序:主程序开始先进行堆栈初始化然后调用子程序INIT7279对7279显示系统进行初始化,使数码管初始显示的数据为0,初始化完成后将地址40H~4AH 和68H~86H清零,接着进行定时器初始化,使定时器T0以方式1进行定时中断定时时间为5ms,对中断允许控制寄存器IE置82H允许定时器/计数器0溢出中断,最后等待中断。
3.2、7279初始化程序INIT7279图3.2 7279初始化流程7279初始化程序:调用该子程序后程序将立即数0A4H,然后调用发送一字节子程序STFS将0A4H一移位形式送入7279中,在7279中0A4H为复位清除指令代码,当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。
执行该指令后,芯片所处的状态与系统上电后所处的状态一样。
3.3、发送字节程序STFS否图3.3 发送字节程序STFS流程发送字节程序STFS:进入发送字节程序后先将可编程I/O口P1.0置为低电平,与之连接的7279片选端CS有效使7279工作,调延时子程序LDelay延时50us,累加器A中可存放8位二进制数,将A中的数通过I/O口P1.2移入7279中必须移八次,则对R7送数08H置循环次数,然后将A中的数左移一位到进位标志位,将移入cy的一位二进制数送入P1.2进入与P1.2连接的7279DAT引脚,接着通过对I/O 口P1.1置高电平延时8us接着取反置低电平延时8us从与P1.1连接的7279CLOCK 引脚输入脉冲信号,从而将数据送入7279中,送完一位数后将R7中的数减一判断结果是否为零,如果不为零则循环执行送数程序,如果为零则将P1.0置为高电平使7279停止接收数据,然后返回。
3.4、延时程序否图3.4 延时程序流程延时程序:以上三个流程框图分别是延时子程序Delay、SDelay、LDelay,延时时间分别为7ms、8us、50us。
3.5、中断程序图3.5 中断程序流程中断程序:当定时器计数溢出后程序响应中断,进行堆栈保护现场然后对定时器重新赋初值并且定时次数寄存器加一,调AD转换子程序读取模拟量转换后的数字量,调数值转换子程序得出该数字量所对应的温度值并将其转换成BCD码的形式,按照从高位到低位的顺序存于32H到30H地址中,调阈值子程序将数字量与在地址48H中所设定的阈值进行比较,若大于阈值则将P1.4置为高电平使发光二极管亮发出警告,若低于阈值则将P1.4置为低电平使发光二极管灭,然后判断定时次数是否达到255次若没有达到则调用显示子程序将所测得的温度送入7279中显示,并且将定时次数寄存器清零最后恢复现场并返回,若定时次数达到255次则直接恢复现场返回。
3.6、AD采样程序图3.6 AD采样程序流程AD采样子程序:进入采样程序后先将累加器A清零,向DPTR置数0A000H即单片机片外AD转换所的数据的存储地址,然后利用指令MOVX将该地址清零,延时120us后同样运用指令MOVX将地址0A000H中的数据线传送给A最后将数据存入地址4CH中。
3.7、数值转换程序数值转换子程序:进入此程序后先将R3、R4清零分别用于存放温度值的十位数和百位数,将温度值送入累加器A中并且清进位标志位,将温度值减去100若结果大于零则将R4加一接着返回继续减100直到结果小于零,若结果小于零则将数值加100恢复数据,然后进行下一步将温度值减10若结果大于零则将R,3加一接着返回继续减10直到结果小于零,若结果小于零则将数值加10恢复数据,以上操作完成后将A中的结果存入30H,将R3中的数据存入31H,将R4中的数据存入32H,即分别将转换后BCD码的个、十、百位分别存入地址30H、31H3、2H。
3.8、7279送显程序否图3.8 7279送显程序流程7279送显程序:程序调该子程序后先置循环次数,因为一个字节有八位数所以循环次数为八次,将存储地址37H赋给R0作为指针,然后将7279的固定指令代码97H送入R2再送入A最后调用发送字节程序使八位数码管的最高位显示,执行延时使指令有足够的时间送入7279中,将R0中的地址所存的BCD码送入A查表得到该BCD码的显示码,掉发送字节程序使其显示在最高位数码管,R0、R2减一时期分别指向下一个地址中的BCD码和下一个数码管,然后R5减一判断结果是否为零若不为零则重复送数,若为零则返回。
第四章、实验、调试和测试结果分析4.1、主要仪器和工具计算机,7279显示板,综合实验仪,模块电路。
图4.1实验连线图4.2、调试过程及结果A、硬件调试调零:调节PT-100(电位器逆时针旋转到顶)使得数码管显示“00000000”,即0℃;调满:调节PT-100(电位器顺时针旋转到底)使得数码管显示“00000255”,即255℃;调阈值200℃,当温度从0℃上升到200℃时,LED由灭变亮,发出警报信号;当从255℃下降到200℃时,LED灯由亮变灭,表示温度低于200℃,在正常值内。
B、软件调试调试时,最初数码管显示数据从最高位的数码管开始显示,虽然显示的数据准确但是与正常的显示顺序相反,检查程序后发现7279的显示子程序DISP中送入7279的现实代码为MOV R2,#97H即从最高为数码管开始显示,但是送显的数据是MOV R0,#30H从最低位开始,将送数的收地改为最高为MOV R0,#37H并依次减一后数据的显示顺序恢复正常。