资源描述
单片机原理及应用课程设计任务书二级学院:电子信息与电气工程学院 专业: 班级: 学生姓名指导老师职 称讲师 课题名称数字温度计的设计 课题工作内容1、 设计内容:硬件电路的设计、软件电路的设计 2、 总体方案的选择、讨论确定。软件流程图的设计,硬件电路各部分的设计,程序的软调试、整机的调试。 3、 撰写设计报告 指标要求1、温度值用LED显示 2、测量范围为-30 100 3、温差为0.5 进程安排第一天 下达任务、讲授、查资料 第二天 方案确定 第三天、第四天 软、硬件设计 第五天第八天 软、硬件调试 第九天 撰写报告 第十天 答辩考核主要参考文献单片机原理及应用技术 范力旻 电子工业出版社 例说8051 谢亮、陈敌北、 张义和 人民邮电出版社 单片机C语言应用100例 王东锋 王会良 电子工业出版社 51系列单片机设计实例 楼然苗 李光飞 北航出版社 单片微机测控系统设计大全 王福瑞编著 北航出版社 地点起止日期2011.09.052011.09.16 单片机原理及应用课程设计 题 目 数字温度计的设计 二级学院 电子信息与电气工程学院班 级 姓 名 学 号 指导教师 设计时间 2011.09.052011.9.15 目录一、概述1二、系统设计 1(一)温度计设计方案论证 1 (二)框图设计1(三)硬件设计 2 (四)软件设计7三、调试 9 四、课程设计小结 9五、参考文献 9六、附件10附录1、电路原理10附录2、实拍照片10附录3、元件清单11附录4、程序清单12数字温度计的设计一、概述生活和生产中,经常用到一些测温设备,但是传统的测温设备但是传统的测温设备具有制作成本高、硬件电路和软件设计复杂等缺点,基于AT89C52单片机的数字温度计具有制作简单,成本低,度数方便,测温范围广和测温准确等优点,应用前景广阔。设计参数规格设计:1、温度值用LED显示 2、测量范围为-30 100 3、温差为0.5 二、系统设计(一)温度计设计方案论证 方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。方法简单制作简便,故采用方案一来实现数字温度计的控制。(二)框图设计根据设计要求分析,数字温度计由STC89C52单片机、电源、显示电路、温度传感器、复位电路和时钟电路组成、系统框图如图1所示。电源给整个电路供电。显示电路显示温度值,时钟电路为STC89C52提供时钟频率。电源STC89C52单片机复位电路显示电路DS18B20时钟电路 图1 基于STC89C52单片机的数字温度计系统框图(三)硬件设计1、最小系统(1)电源本次采用的是普通USB 5V直流电源。(2)单片机:本次设计使用单片机芯片STC89C52 STC89C52的工作特性:主要特性: 与MCS-51 兼容 8K字节可编程闪烁存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 512内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 图2 S TC89C52引脚图低功耗的闲置和掉电模式 片内振荡器和时钟电路(3)时钟电路图 3 时钟电路 本次设计采用的是12M的晶振,电路图如下图3,两只电容在20pF100pF之间取值,其取值在60pF70pF时振荡器频率稳定性较高,按照一般经验,外接晶体时两个电容的取值为30pF。(4)复位电路在时钟电路工作后,只要在单片机的RST引脚上出现24个时钟振荡脉冲(2个机器周期)以上的高电平,单片机便可实现初始化状态服务。为保证应用系统可靠的复位在设计复位电路时,通常使RST引脚保持4ms以上的高电平,只要RST保持高电平,MCS-51单片机就会循环复位;当RST从高电平变为低电平时,MCS-51单片机就从0000H地址开始执行程序,在单片机复位的有效期间,ALE、PSEN 引脚输出高电平。本次设计采用的是手动复位,其电路图如下:图4复位电路2.接口(1)数字温度传感器DS18B20由DALLAS半导体公司生产的DS18B20型单线智能温度传感器,属于新一代适配微处理器的智能温度传感器,可广泛用于工业、民用、军事等领域的温度测量及控制仪器、测控系统和大型设备中。它具有体积小,接口方便,传输距离远等特点。 A. DS18B20性能特点 :独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。测温范围为-55-+125,测量分辨率为0.0625。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内。适应电压范围更宽,电压范围:3.05.5,在寄生电源方式下可由数据线供电。测量结果直接输出数字温度信号,以一 线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力。负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。图5 . DS18B20封装图B. DS18B20内部结构 DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。图6 温度传感器接线图(2) 双向总线发送器/接收器74LS24574LS245为三态输出的八组总线收发器引出端符号: A A总线端 B B总线端 /G 三态允许端(低电平有效) DIR 方向控制端 图7. 74LS245内部逻辑图功能表:DirectionControlDIREnable/G OperationL LL HH XB data to A busA data to B busIsolation(3)74LS07 六高压输出缓冲器/驱动器简要说明 54/7407 为集电极开路输出的六组驱动器,其主要电特性的典型值如下: tPLH tph1 PD 6ns 20ns 125m W引出端符号 1A-6A 输入端 1Y-6Y 输出端极限值电源电压7V输入电压5V输出截至态电压 30V图8 74LS07管脚图(4)显示电路内部的四个数码管共用adp这8根数据线,为人们的使用提供了方便,因为里面有四个数码管,所以它有四个公共端,加上adp,共有12个引脚,下面便是一个共阳结构图。图9码管内部逻辑图管脚顺序:从数码管正面看,以第一脚为起点,管脚的顺序是逆时针方向排列的。12-9-8-6为公共脚,A-11,B-7,C-4,D-2,E-1,F-10,G-5,DP-3。图10显示电路(四)软件设计主程序的主要功能是负责温度的实时显示、读出并处理DS18B20测量的当前温度值,温度测量每1s进行一次,这样就可以在1s之内测量一次被测温度,其程序流程图如图11所示。初始化调用显示子程序1s到?N初次上电YY读出温度值,温度计算处理显示数据刷新N发温度转换开始命令图1 1主程序流程图读出温度子程序的主要功能是读出RAM中的9字节,在读出时需要进行CRC校验,校验有错时不能进行温度数据的改写,其程序流程图如图8所示。发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验 Y9字节完成? NCRC校验正? N Y移入温度暂存器结束图 8 读温度流程图温度转换命令子程序主要是发温度转换开始命令,采用12位分辨率转换时间为750ms.程序设计中采用1s显示程序延时等待转换的完成。计算温度子程序将RAM 中读取值进行BCD码转换运算,并进行温度值正负的判定,显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。三、调试此设计软件部分用uvision4编写与编译源程序,并生成HEX文件,编译完成后用Proteus仿真,仿真完成后将HEX文件烧制到单片机中,然后就是对硬件电路的检查,排除硬件电路故障包括设计错误和工艺连接错误,检查各芯片是否有短路或断路故障。先将单片机取下,对电路板进行通电检查,通过观察是否有异常然后用万用表测试个电源电压,若这些都没有问题,则接上仿真机进行联机调试观察各接口线路是否正常。四、课程设计小结近两周的单片机课程设计,终于完成了我的数字温度计毕业设计,虽然途中还遇到不少困难,但最终还是把实物做出来,从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论运用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。通过这次对数字温度计的设计与制作,让我了解了设计电路的程序,也让我了解了关于数字温度计的原理与设计理念,要设计一个电路总要先用仿真成功之后才实际接线的。但是最后的成品却不一定与仿真时完全一样,因为,在实际接线中有着各种各样的条件制约着。而且,在仿真中无法成功的电路接法,在实际中因为芯片本身的特性而能够成功。所以,在设计时应考虑两者的差异,从中找出最适合的设计方法。五、参考文献1.范力旻,单片机原理及应用技术,电子工业出版社,2010.2.杨居义,单片机课程设计指导,清华大学出版社,2009.3.沙占友,孟志永,王彦朋,单片机外围电路设计,电子工业出版社,2006.4百度文库,5百度文库,6.丁元杰,单片机微机原理及应用技M,机械工业出版社,2001.六.附录1.硬件原理图2.实拍照片3.元件清单元件名称型号数量/个用途单片机STC89C521控制核心晶振12MHz1晶振电路电容30pF2晶振电路电解电容22uF/50V1复位电路电阻1K13复位电路,上拉电阻集成块74LS071显示驱动集成块74LS2451显示驱动集成块DS18B201温度传感器电阻4K71复位电路按键1复位电路电源+5V/0.5A1提供+5V电源七段四位数码管4位1显示电路电阻4K71测温电路4.程序清单#includereg51.h#includeintrins.h#defineDisdataP1#definediscanP3#defineuchar unsigned char#define uint unsigned intsbitDQ = P37;sbitDIN = P17;uinth;ucharcode ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;uchar code dis_712 = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xbf;uchar code scan_con4 = 0xfe,0xfd,0xfb,0xf7;uchar data temp_data2 = 0x00,0x00;uchar data display5 = 0x00,0x00,0x00,0x00,0x00;void delay(uint t)for(;t0;t-); scan()char k;for(k=0;k0;i-)DQ = 1;_nop_();_nop_();DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();DQ = val & 0x01;delay(6);val = val1;DQ = 1;delay(1);uchar read_byte(void)uchar i;uchar value = 0;for(i=8;i0;i-)DQ=1;_nop_();_nop_();value = 1;DQ = 0;_nop_();_nop_();_nop_();_nop_();DQ = 1;_nop_();_nop_();_nop_();_nop_();if(DQ)value|=0x80;delay(6);DQ = 1;return(value);read_temp()ow_reset();write_byte(0xCC);write_byte(0xBE);temp_data0 = read_byte();temp_data1 = read_byte();ow_reset();write_byte(0xCC);write_byte(0x44);work_temp()uchar n = 0;if (temp_data1127)temp_data1 = (255 - temp_data1);temp_data0 = (256 - temp_data0);n=1;display4 = temp_data0 & 0x0f;display0 = ditabdisplay4;display4 = (temp_data0 & 0xf0)4) | (temp_data1 & 0x0f)4);display3 = display4/100;display1 = display4%100;display2 = display1/10;display1 = display1%10;if(!display3)display3 = 0x0A;if(!display2) display2 = 0x0A;if(n)display3 = 0x0B;main()Disdata = 0xff;discan = 0xff;for(h=0;h4;h+)displayh = 8;ow_reset();write_byte(0xCC);write_byte(0x44);for(h=0;h250;h+)scan();while(1)read_temp();work_temp();for(h=0;h200;h+)scan();18
展开阅读全文