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