专业课程设计说明书课程设计题目:温度的采集与控制(2)学院名称:信息工程学院专业:电子信息工程班级:学号:姓名:评分:教师:2013年06月29日专业课程设计任务书2012-2013学年第二学期分散1周第17周-19周集中题目温度的采集与控制(2)内容及要求技术要求:(1)、采用PT-100温度传感器测温;(2)、采用0804A/D转换器;(3)、测温范围:0℃-255℃,分辨率为±1℃;(4)、当采集温度超过200℃时能能用继电器控制一LED发光管亮。进度安排分散1周:查资料、方案确定。第17周:多路数据采集系统编程及调试。第18周:温度的采集与控制的软硬件设计、调试。第19周:考试、撰写并上交报告。学生姓名:指导时间:分散1周,集中指导:2012.6.17-7.5指导地点:中506室任务下达2013年6月6日任务下达2013年7月5日考核方式1.评阅□2.答辩□3.实际操作√4.其它□指导教师系(部)主任摘要随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。本次设计的目的在于学习基于51单片机的温度采集控制系统设计的基本流程。本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从温度传感器传递到单片机上。单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。本系统可以实现温度信号采集与显示,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。关键词:温度温度采集温度控制目录设计要求11.1设计要求11.2系统组成11.3工作原理1硬件电路设计22.1温度转换电路22.2A/D转换电路22.3控制电路32.4单片机最小系统3第三章软件设计53.1主程序流程图53.27279初始化程序INIT727963.3发送字节程序STFS73.4延时程序93.5中断程序103.6AD采样程序123.7数值转换程序133.87279送显程序14第四章实验、调试和测试结果分析164.1主要仪器和工具164.2调试过程及测试结果16结论18参考文献19附录20、设计要求1.1、设计要求(1)、采用PT-100温度传感器测温;(2)、采用0804A/D转换器;(3)、测温范围:0℃-255℃,分辨率为±1℃;(4)、当采集温度超过200℃时能能用继电器控制一LED发光管亮。1.2、系统组成图1—1系统组成框图1.3、工作原理、温度转换电路:可由用PT-100或热敏电阻构成的电桥与放大电路组成;、A/D转换电路:可采用转换器为ADC0804,将模拟量转换为数字量;、单片机控制:可采用51系列单片机构成的最小系统;、显示电路:可采用7279键盘、显示接口电路;、控制装置:通过一个继电器控制一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—2AD转换及控制电路2.4、单片机最小系统复位电路和时钟电路:复位电路有手动复位、上电自动复位(见下图2-7)两种简单的方式。考虑到减少操作,采用上电自动复位方图2—3时钟电路采用f=12MHZ晶振在外接两个30PF进行微调,从XTAL1XTAL2端口接入89c51提供标准时钟信号图2—4、软件设计3.1、主程序流程图主程序:主程序开始先进行堆栈初始化然后调用子程序INIT7279对7279显示系统进行初始化,使数码管初始显示的数据为0,初始化完成后将地址40H~4AH和68H~86H清零,接着进行定时器初始化,使定时器T0以方式1进行定时中断定时时间为5ms,对中断允许控制寄存器IE置82H允许定时器/计数器0溢出中断,最后等待中断。3.2、7279初始化程序INIT72797279初始化程序:调用该子程序后程序将立即数0A4H,然后调用发送一字节子程序STFS将0A4H一移位形式送入7279中,在7279中0A4H为复位清除指令代码,当HD7279A收到该指令后,将所有的显示清除,所有设置的字符消隐、闪烁等属性也被一起清除。执行该指令后,芯片所处的状态与系统上电后所处的状态一样。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、延时程序否否否否是是是是延时程序:以上三个流程框图分别是延时子程序Delay、SDelay、LDelay,延时时间分别为7ms、8us、50us。3.5、中断程序是否否是中断程序:当定时器计数溢出后程序响应中断,进行堆栈保护现场然后对定时器重新赋初值并且定时次数寄存器加一,调AD转换子程序读取模拟量转换后的数字量,调数值转换子程序得出该数字量所对应的温度值并将其转换成BCD码的形式,按照从高位到低位的顺序存于32H到30H地址中,调阈值子程序将数字量与在地址48H中所设定的阈值进行比较,若大于阈值则将P1.4置为高电平使发光二极管亮发出警告,若低于阈值则将P1.4置为低电平使发光二极管灭,然后判断定时次数是否达到255次若没有达到则调用显示子程序将所测得的温度送入7279中显示,并且将定时次数寄存器清零最后恢复现场并返回,若定时次数达到255次则直接恢复现场返回。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送显程序否是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的现实代码为MOVR2,#97H即从最高为数码管开始显示,但是送显的数据是MOVR0,#30H从最低位开始,将送数的收地改为最高为MOVR0,#37H并依次减一后数据的显示顺序恢复正常。开始时,显示不能从零开始,是因为在查表时没有加偏移量,使得查得的表不是从首址开始,将累加器A加上偏移量后即可以从零开始显示。C、测试结果实现温度范围在0℃到255℃的显示,且分辨率为1℃。当采集的温度值超过200℃时,能由单片机P1.4口控制继电器点亮发光二极管。结论:本次课程设计的目地实现是对温度的采集与控制,通过利用PT-100的电阻值随温度的增加而增加的性质实现温度的采集,用平衡电桥和PT—100将温度量转换为电压量。然后通过A/D采样将电压的模拟量转换成数字量,编写程序通过单片机对其进行控制使得温度值超过200℃时,能够使继电器控制LED灯点亮,并且同时由单片机向7279键盘显示模块发送数据并显示。这样就实现了温度采集与控制的功能,可用于工业控制中对温度的监控和处理,也可以用于日常的温度测量中。并且通过提高元器件的性能提高测量精度和改进程序,可以提高温度的测量精度,这样也能将改进后的器件用于对温度控制较高的环境当中。通过本次设计,加深了运用了单片机能力,将上课所学的理论知识应用到设计当中,更好的将理论与实际联系在一起,对单片机的应用和掌握更加熟练。参考文献:【1】贾好来.MCS-51单片机原理及应用.北京:机械