1、湖 南 工 程 学 院课 程 设 计课程名称 测控电路 课题名称 温度测量显示电路设计 专业班级 测控技术 0981班 姓 名 徐 达 学 号 20 指导教师 李亚、 黄峰 2012年 3 月 10 日湖 南 工 程 学 院课程设计任务书课程名称 测控电路 课题名称 温度测量显示电路设计 专业班级 测控技术0981 班 姓 名 徐 达 学 号 20 指导教师 李亚、黄峰 任务书下达日期 2012年 2月 27 日任务完成日期 2012年 3 月 10 日设计内容与设计要求设计内容:以设计为主完成一个温度范围为0-50的温度测量显示电路的设计与制作。1、主要设计内容: (1)系统原理框图设计与分
2、析(包括传感器的选择与确定);(2)系统方案设计、比较及选定(给出两种以上的方案比较);(3)系统原理图设计(包含测量电路、放大电路、A/D转换及显示电路等);(4)确定原理图中元器件参数(给出测量电路、放大电路计算公式与数据);2、运用protel软件绘出系统原理电路图(鼓励能完成印刷电路板图的绘制)。设计要求:1)确定并分析系统设计要求;2)进行系统的方案设计;3)要绘制原理框图,绘制原理电路4)要有必要的计算及元件选择说明5)如果采用单片机,必需绘制软件流程图6)写说明书7)答辩 所设计的方案能满足题目要求并实现相应的功能,所编写的设计说明书应语句通顺,用词准确,层次清楚,条理分明,重点
3、突出。主 要 设 计 条 件1、Protel软件。2、参考文献若干。说 明 书 格 式1.课程设计说明书封面。2.课程设计任务书。3.说明书目录。4.正文5.总结。6.参考文献。7.附录。8.课程设计评分表。正文部分包括(概述、总体设计、硬件电路设计及调试等)进 度 安 排第1周:星期一上午:布置课题任务,课题内容介绍。星期一下午:仔细阅读设计任务书,明确设计任务与要求,收集设计资料。星期二星期五:阅读相关资料,设计方案确定,相关元器件选型。第2周:星期一星期二:电路设计。星期三星期四:编写设计说明书,准备答辩。星期五:答辩。参 考 文 献1 康华光电子技术基础M模拟部分高等教育出版社,199
4、82 张国雄等编.测控电路.机械工业出版社,2001.8.3 李华MCS一51系列单片机实用接口技术M电子工业出版社,19994 闫玉德,葛龙,俞虹. 单片机微型计算机原理与设计. 中国电力出版社,2010.112-154,197-199,5 郑惟晖,单片机智能温度控制系统的设计D,2008目 录一引言8二系统方案确定92.1系统设计方案论证与确定92.2硬件设计总体方案10三系统软件算法分析123.1主程序流程图123.2读出温度子程序123.3温度转换命令子程序133.4 计算子程序温度143.5显示数据刷新子程序153.6扫描按键处理子程序16四软件仿真17五课程设计心得与体会21六附录
5、226.1 源程序代码226.2 系统硬件原理图28一 引言近几年来随着单片机在检测和控制系统中得到广泛应用,传统控制技术也已经满足不了现代工业生产所需,各行各业对于控制和测量的需求也越来越高。而温度则是系统常需要测量、控制和保持一个量,如何分析和选取就显得尤为重要了。经过对各种温度测量方案的收集整理之后(包括传统的分立式传感器),本系统最终选取采用铂电阻PT100作为温度传感器,恒流测温的方法,通过单片机进行控制,用放大器、A/D转换器进行温度信号的采集本系统以四个部分为主体:放大电路,A/D转换电路,单片机电路,数码管显示电路。设计文氏电桥电路,得到温度与电压的关系,通过控制电阻值改变温度
6、。利用单片机将现在温度与预设温度进行比较,将比较结果在LED数码管上显示,同时实现现在温度与预设温度之间的切换。二 方案论证与确定2.1系统设计方案论证方案一通过温度传感器采集温度信号,经信号放大器放大后,送到A/D转换芯片,将模拟量转化为数字量,传送给单片机控制系统,最后经过LED显示温度。 热电阻也是最常用的一种温度传感器。它的主要特点是测量精度高,性能稳定,使用方便。该方案采用热电阻PT100做为温度传感器、AD620作为信号放大器,TLC2543作为A/D转换部件,对于温度信号的采集具有大范围、高精度的特点并且可以通过编写程序对输入信号进行分段线性化处理,使得测量精度大大提高。这个方案
7、在电路设计上比较麻烦,涉及到A/D转换,温度采集等复杂模块,而且电阻与温度的对应值的计算也无形的增大了设计的工作量,故不作为优先考虑工作方框图如下OP07模拟信号放大PT100温度传感器AD0809信号处理时钟信号控制系统AT89C514联8段数码管FPGA产生50KHZ分频信号方案二进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。从以上两种方案,很容易看出,采用方案二,电路比较
8、简单,费用较低,可靠性高,软件设计也比较简单,故采用了方案二。温度传感器温度电压放大电路A/D转换模块译码显示模块电压译码编码LED数码管2.2硬件设计总体方案2.2.1单片机最小模块AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集
9、和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51单片机引脚结构图如图2-3所示。AT89C51的主要特性如下:与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环,数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 AT89C51单片机引脚图2.3.
10、2 温度传感器模块 DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器,其结构图如图3所示,与传统的热敏电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有
11、了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20的特点:(1)独特的单线接口方式:DS18B20与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 (2)在使用中不需要任何外围元件。(3)可用数据线供电,电压范围:+3.0+5.5V。 (4)测温范围:-55+125。固有测温分辨率为0.5。 (5)通过编程可实现912位的数字读数方式。 (6)用户可自设定非易失性的报警上下限值。 (7)支持多点组网功能,多个DS18B20可以并联在惟一的三线上,实现多点测温。 (8)负压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。2.3.4温度
12、显示模块共阴极数码管中8个发光二极管的阴极连接在一起,即为共阴极接法,简称共阴数码管。通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。同样,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。 本次设计使用了四个型号为ARK SR42056的数码管,其管脚分别接至单片机管脚的10-13、32-39和排阻RP1,确保数码管能够精确显示温度,并能够使温度精确到十分位。其具体管脚连接如图2-4所示。 图2-4 数码管连接图三 .系统软件算法
13、分析系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序,按键扫描处理子程序等。3.1主程序流程图温度读取温度计算与处理调用显示子程序是/否按下复位键K初始化 图3.1 主程序流程图3.2读出温度子程序读出温度子程序的主要功能是读出RAM 中的9 字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。其程序流程图如图3-2所示。3.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12 位分辨率时转换时间约为750ms,在本程序设计中采用1s 显示程序延时法等待转换的完成。温度转换命令子程序流程NYY发DS18B20复位
14、命令发读取温度命令读取操作,CRC校验移入温度暂存器CRC校验正9字节完?结束发跳过ROM命令N图3.2读温度数据流程图 图3-3温度转换流程图3.4计算温度子程序计算温度子程序将RAM 中读取值进行BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图3-4所示。NY温度零下?计算小数位温度BCD值温度值取补码置“1”标志计算整数位温度BCD值 开始置“0”标志结束图3-4计算温度流程图3.5显示数据刷新子程序显示数据刷新子程序主要是对分离后的温度显示数据进行刷新操作,当标志位位为1时将符号显示位移入第一位。程序流程图如图3-5所示。温度数据移入显示寄存器Y分离显示温度温度数据移入显
15、示寄存器标志位为1?最高位显示“”结束最高为显示分理出的数据N图3-5显示数据刷新流程图3.6按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1 时,显示设置温度,否则显示温度。如图3-6所示。K1键按下K2是否按下温度调零加1温度调零减1K3键是否按下显示切换标志位是否为“0”调用显示子程序 四 Proteus软件仿真4.1 Proteus简介 Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真
16、、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软
17、件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。4.2 Proteus仿真过程1、 Proteus软件仿真原理图如下图所示:2、启动该系统,运行如下图所示:3、利用K1、K2功能键,可以设定校正温度加减、开和关等。其界面分别为:4、 温度校正调零示例:如把当前温度设定为28度,利用18b20将温度设定为30度, Proteus仿真如下图(可观察到Q1处指示灯的颜色发生变化): 五课程设计心得与体会本次电子课程综合设计,让我受益匪浅。虽然时间比以往的长了不少,但是开始选题时还是很茫然。从选题到定稿,从理论到实践,在整整一星期的日子里,可以说
18、得是苦多于甜。但是在这过程中我查阅和浏览了很多的相关资料,和同学们一起商量,相互合作,并且对Proteus软件的使用有了很大程度的提高。同时不仅可以巩固和强化以前所学过的知识,还学到了很多书本上所不曾学到的知识。这次我选择了温度测量系统设计,在应用系统设计时,必须先确定该系统的具体要求,这是系统设计的依据和出发点,整个设计过程都必须围绕这个训练要求来做。软件部分的设计,我按照模块化的思想,将各个模块单独调试,然后再一点一点地叠加,这样就容易避免更多错误的出现。在这次单片机系统的课程设计中,我们学到了很多,尤其是在调试程序的过程中,我遇到了很多问题,摸索着改正了一些,还有一些错误在指导老师的帮助
19、下得以解决。这次课程设计,查阅了大量的文献资料和搜索了大量网络资料,也更清楚的认识到自己所学的不足,同时也加深了对以前所学知识的理解,也增强了编程与仿真的操作能力。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正所要的。在设计的过程中所遇到的问题,可以说是很多。难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说刚开始在连仿真图时,不能区分该数码管是共阴极还是共阳极的,等到连好图仿真时出现错误才知道自己用错了数码管,对单片机的C语言掌握得也还不太好通过这次
20、课程设计之后,一定把以前所学过的知识重新温故。总之,这次课程设计让我明白一个道理那就是:只有理论必须和实际结合,才能更好地让我们掌握书本上的知识。同时在设计过程中遇到了很多程序编写出错和系统不能正常仿真的问题,最后在杨庆老师的细心指导和同学们耐心帮助下终于得到解决。同时也让我懂得所学的东西最终是要面向应用的,是为了在以后的工作中能够更好的应用,此时的知识积累是为以后的工作做好准备。这个设计总体上不算完美,但是在这次设计训练的经历的益处是不能言表的,在此谢谢各位老师和同学的解囊帮助! 六参考文献1、 康华光电子技术基础M模拟部分高等教育出版社,19982、张国雄等编.测控电路.机械工业出版社,2
21、001.8.3、 李华MCS一51系列单片机实用接口技术M电子工业出版社,19994、 闫玉德,葛龙,俞虹. 单片机微型计算机原理与设计. 中国电力出版社,2010.112-154,197-199,5、 郑惟晖,单片机智能温度控制系统的设计D,2008七附录附1:源程序代码*LCD1602模块*/#include #define uchar unsigned char#define uint unsigned intsbit rs=P27;/液晶使能端口sbit rw=P26;sbit e=P25;sbit P3_6=P36;sbit P1_0=P10;sbit P1_1=P11;/sbit
22、P1_0 = P10;/sbit P1_1 = P11;void delay_ms(uchar ms) /延时 uint i,j; for(i=0;ims;i+) for(j=0;j120;j+);void lcd_wcmd(uchar cmd) /液晶写指令rs=0;rw=0;e=0;P0=cmd;e=1;e=0;delay_ms(5);void lcd_wdat(uchar dat) /液晶写数据rs=1;rw=0;e=0;P0=dat;e=1;e=0;delay_ms(5);void lcd_dis(uchar post,uchar *p)lcd_wcmd(0x80 | post);/设
23、置数据地址指针显示while(*p!=0)lcd_wdat(*p+);uchar code def_char0=0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00; /字符void lcd_wcgram(uchar adress,uchar tmp)uchar i;for(i=0;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat); void wbyte(uchar dat) uchar i=0; for (i=8; i0; i-) D
24、Q = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; uchar rTempetuare(uchar tmp)uchar a=0,b=0,temp,decimal;uint uival;reset();wbyte(0xCC); /跳过读序号列号的操作wbyte(0x44); /启动温度转?reset();wbyte(0xCC); /跳过读序号列号的操作wbyte(0xBE); /读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=rbyte(); /读取温度值低位b=rbyte(); /读取温度值高位temp=b;temp&=0xf0;i
25、f(temp) /负温if(a=0)a=a+1; /bit7向bit8位产生进位b=b+1; else a=a+1; b=b;tmp0=-;elsetmp0= ;temp=(b4); /组合decimal=a&0x0f; /将小数点后的数据提取出来uival=decimal*625; tmp0=T;tmp1=;tmp2=0x20; /空格 tmp3=temp/100 | 0x30; /取百位tmp4=temp%100/10 | 0x30; /取十位tmp5=temp%100%10 | 0x30; /取个位tmp6=0x2e; /小数点tmp7=uival/1000 | 0x30; /十分位tm
26、p8=uival%1000/100 | 0x30; /百分位tmp9=uival%1000%100/10 | 0x30; /千分位tmp10=uival%1000%100%10 | 0x30; /万分位tmp11=0x20; /空格tmp12=0x01; /字符tmp13=0;return temp; /十进制温度/*红外解码模块*/#define c(x) (x*110592/120000)sbit Ir_Pin=P32; /红外数据管脚unsigned char Ir_Buf4; /用于保存解码结果/=unsigned int Ir_Get_Low() /计数器1,用于解码延时TL1=0;
27、TH1=0;TR1=1;while(!Ir_Pin & (TH1&0x80)=0);TR1=0;return TH1*256+TL1;/=unsigned int Ir_Get_High() /计数器1,用于解码延时TL1=0;TH1=0;TR1=1;while(Ir_Pin & (TH1&0x80)=0);TR1=0;return TH1*256+TL1;char jianche() /解码程序char i,j;uint temp;restart:while(Ir_Pin);temp=Ir_Get_Low();if(tempc(9500) goto restart;/引导脉冲低电平9000t
28、emp=Ir_Get_High();if(tempc(5000) goto restart;/引导脉冲高电平4500for(i=0;i4;i+) /4个字节for(j=0;j8;j+) /每个字节8位temp=Ir_Get_Low();if(tempc(800) goto restart;temp=Ir_Get_High(); if(tempc(2000) goto restart;Ir_Bufi=1;if(tempc(1120) Ir_Bufi|=0x80;return Ir_Buf2&0x0f; /所得码附2:系统原理图电气与信息工程系课程设计评分表项 目评 价设计方案的合理性与创造性开发板焊接及其调试完成情况硬件设计或软件编程完成情况*硬件测试及软件调试结果*设计说明书质量设计图纸质量答辩汇报的条理性和独特见解答辩中对所提问题的回答情况完成任务情况独立工作能力组织纪律性(出勤率)综合评分 指导教师签名:_ 日 期:_ 注:表中标*号项目是硬件制作或软件编程类课题必填内容; 此表装订在课程设计说明书的最后一页。课程设计说明书装订顺序:封面、任务书、目录、正文、评分表、附件(非16K大小的图纸及程序清单)。