单片机课程设计基于单片机的数字温度计设计

上传人:仙*** 文档编号:34349198 上传时间:2021-10-21 格式:DOC 页数:20 大小:893.50KB
收藏 版权申诉 举报 下载
单片机课程设计基于单片机的数字温度计设计_第1页
第1页 / 共20页
单片机课程设计基于单片机的数字温度计设计_第2页
第2页 / 共20页
单片机课程设计基于单片机的数字温度计设计_第3页
第3页 / 共20页
资源描述:

《单片机课程设计基于单片机的数字温度计设计》由会员分享,可在线阅读,更多相关《单片机课程设计基于单片机的数字温度计设计(20页珍藏版)》请在装配图网上搜索。

1、 湖南铁路科技职业技术学院单片机课程设计选题名称: 基于单片机的数字温度计设计 系 (院): 机械工程系(东院) 专 业: 机电一体化 班 级: 3092班 姓 名: 指导老师: 录目1 项目设计综述2 1.1项目设计概述.2 1.2项目设计要求.2 1.3项目程设计方案.22 系统设计.4 2.1 图框设计方案.4 2.2DS18B20简介.4 2.2.1单片机AT89S52简介.43硬件设计.6 3.1电路图原理.6 3.2DS18B20与单片机接口的设计.6 3.3显示电路图接口.7 3.4其他外围电路.84 软件设计.11 4.1 程序设计流程图.11 4.2程序清单.12 5 系统仿

2、真及调试.17 5.1.硬件调试.17 5.2软件调试 .17总结.18参考文献.191项目设计综述1.1项目设计概述在生活和生产中,经常要用到一些测温设备。但是传统的测温设备具有制作成本高、硬件电路和软件设计复杂等缺点。基于AT89S52单片机的数字温度计具有制作简单、成本低、读数方便、测温范围广和测温准确等优点,应用前景广阔。1.2项目设计要求基于AT89S52单片机的数字温度计设计要求如下: 温度值用4位LED数码管显示 测温范围为30100,且测量误差不得大于0.5 成品的体积、质量尽可能小。1.3项目设计方案大多单片机接口输入的信号是数字信号,或有带AD转换的高端单片机也可以输入模拟

3、信号。由单片机获取非电信号的温度信息,必须通过温度传感器。传统的温度测量虽多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测量温度精度较低,而且还需经AD转换成数字信号后才能由单片机进行处理。因此,使用数字温度传感器DS18B20了简化硬件设计、方便单片机读取数据、节约成本。 2 系统设计2.1 图框设计根据设计要求分析,基于AT89S52单片机的数字温度计由AT89S52单片机控制器、电源、显示电路、温度传感器、复位电路和时钟电路组成,系统图框如图21所示。电源给整个电路供电,显示电路显示温度值,时钟电路为AT89S52提供时钟频率。传感器采用美国DALLAS半导体公司生产的一种智能

4、温度传感器DS18B20,其测温范围为-50125,最高分辨率可达0.0625,可完全符合设计要求。2.2DS18B20简介本公司最新推出TS-18B20数字温度传感器,该产品采用美国DALLAS公司生产的 DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。 1: 技术性能描述 1.1 独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯。 1.2 测温范围 55+125,固有测温分辨率0.5。 1.3 支持多点组网功能,多个DS18B20可以并联在唯一

5、的三线上,最多只能并联8个,实现多点测温,如果数量过多,会使供电电源电压过低,从而造成信号传输的不稳定。 1.4 工作电源: 35V/DC 1.5 在使用中不需要任何外围元件 1.6 测量结果以912位数字量方式串行传送 1.7 不锈钢保护管直径 6 1.8 适用于DN1525, DN40DN250各种介质工业管道和狭小空间设备测温 1.9 标准安装螺纹 M10X1, M12X1.5, G1/2”任选 1.10 PVC电缆直接出线或德式球型接线盒出线,便于与其它电器设备连接。 2:应用范围 2.1 该产品适用于冷冻库,粮仓,储罐,电讯机房,电力机房,电缆线槽等测温和控制领域 2.2 轴瓦,缸体

6、,纺机,空调,等狭小空间工业设备测温和控制。 2.3 汽车空调、冰箱、冷柜、以及中低温干燥箱等。 2.5 供热/制冷管道热量计量,中央空调分户热能计量和工业领域测温和控制 2.3单片机AT89S52简介AT89S52具有如下特点:40个引脚,8k Bytes Flash 片内程序储存器,256 bytes的随机存取数据存储器(RAM),32个外部双向输入输出(I0)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S52设计和配置了振荡频率可为并通过软件设置省电模式。空闲模式,暂停工作,而定时计数器,串行口

7、,外中断系统可继续工作,掉电式冻结振荡器而保存的数据,停止芯片其他功能直至外中断激活或硬件复位。同时该芯片还具有、和等三种封装形式,以适应不同产品的需求。主要功能特性:兼容Mcs51指令系统 可反复擦写(1000次)ISP Flash ROM32个双向IO口 4.55.5v工作电压3个16位可编程定时计数器 时钟频率033MHz全双工作UART穿行中断口线256bit内部RAM2个外部中断源 低功耗空闲和省电模式中断唤醒省电模式 3级加密位 看门狗(WDT)电路 软件设置空闲和省电功能灵活的ISP字节和分页编程 双数据寄存器指针3硬件设计3.2 DS18B20与单片机接口的设计DS18B20最

8、大的特点是单总线数据传输方式,DS18B20的数据IO均由同条线来完成。DS18B20的电源供电方式有2种:外部供电方式和寄生电源方式。工作于寄生电源方式时,VDD和GND均接地,他在需要远程温度探测和空间受限的场合特别有用,原理是当1W ire总线的信号线DQ为高电平,窃取电信号能量给DS18B20供电,同时一部分能量虽给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。外部电源供电方式是DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较

9、简单,可以开发出稳定可靠的多点温度监控系统。因此本设计采用外部供电方式。如下图所示:3.3显示电路接口本设计显示电路采用4位共阴极LED数码管来显示测量得到的温度值。LED数码管能在低电压工作,而且体积小、重量轻、使用寿命长,因此本次设计选用此数码管作为显示器件。一个LED数码管只能显示一位的字符,如果字符位数不止一位,可以用几个数码管组成,但要控制多位的显示电路需要有字段控制和字位控制,字段控制是指控制所要显示的字符是什么,控制电路应将字符的七段码通过输出口连接到LED的ag的引脚,是某些段点亮,某些段处于熄灭状态。字位控制是指控制在多位显示器中,哪几位发光或那几位不发光,字位控制则需要通过

10、字位码作用于LED数码管的公共引脚,是某一位或某几位的数码管可以发光。数码光显示电路分为动态显示和静态显示。 静态显示方式时指每一个数码管的字段控制是独立的,每一个数码管都需要配置一个8位输出口来输出该字位的七段码。应此需要显示多位时需要多个输出口,通常片内并口不够用,需要在片外扩展。动态显示又称为扫描显示方式,也就是在某一时刻只能让一个字位处于选通状态,其他字位一律断开,同时在字段线上发出该位要显示的字段码,这样在某一时刻某一位数码管就会被点亮,并显示出相应的字符。下一刻该改变所显示的字位和字段码,点亮另一个数码管,显示另一个字符。绕后一次扫描轮流点亮其他数码管,只要扫描速度快,利用人眼的视

11、觉残留效应,会使人感觉到几位数码管都在稳定的显示。本次试验用74LSO4非门作驱动。如图所示3.4其他外围电路复位电路:在单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作。实际应用中,复位操作有两种形式:一种是上电复位,另一种是上电与按键均有效的复位。上电复位要求接通电源后,单片机自动实现复位操作。上点瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平逐渐下降。只要RST引脚保持两个机器周期的高电平单片机就可以进行复位操作。本设计用的上电与接键均有效的复位。电路图如下:时钟电路:单片机的时钟信号通常有两种方式生产:一是内部时钟方式,二是外部时钟方式。本设计采

12、用内部时钟方式,在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2脚外接石英晶体(简称晶振),就构成了自己震荡器并在单片机内部产生时钟脉冲信号。图中电容器的作用是稳定频率和快速起振,电容值在530pF,典型值为30pF.j晶振CYS的振荡频率范围在1.212MHz和6MHz.本设计采用12MHz晶振,电容值为30pF。在电路总体设计中,先从片内程序储存器取指还是从内部程序储存器取指的选择信号。当EAVpp接高电平时,先从片内程序存储器读取指令,读完4KB后,自动改为片外取指。 若EAVpp接低电平,则所有指令均从片外程序存储器读取。ALE脚用于输出允许地址所存信号。PSEN脚用于外

13、部程序存储器选通信号,在对外部程序存储器取指操作时此引脚置低电平有效。在执行片内程序存储器取指时PESN脚无效。本设计无片外程序储存区扩展,所以将EAVpp接高电平,ALE及PSEN脚悬空。4软件设计4.1程序设计流程图主程序的主要功能是负责温度的实时显示。读出并处理DS18B20测量的当前温度值,温度测量值每1s进行一次。这样可以在1s之内测量一被测温度,其程序流程如图4-1所示读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,其流程图如图42所示。温度转换命令子程序主要是发温度转换开始命令,采用12位分辨率时转换时间约为750ms,在

14、本程序设计中采用1s显示程序延时法等待转换的完成。计算温度子程序RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位0时将符号显示位移入下一位。4.2程序清单#include reg51.h#include intrins.h /延时函数用#define Disdata P1 /段码输出口#define discan P3 /扫描口#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /温度输入口sbit DIN=P17; /LED小数

15、点控制uint h;uchar code 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;/* 共阳LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 - */ uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; / 列扫描控制字uchar data

16、temp_data2=0x00,0x00; / 读出温度暂放uchar data display5=0x00,0x00,0x00,0x00,0x00;/显示单元数据,共4个数据,一个运算暂存用void delay(uint t)/11微秒延时函数for(;t0;t-);scan()/显示扫描函数char k; for(k=0;k0; i-) /DQ=1;_nop_();_nop_(); DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; /最低位移出delay(6); /66usval=val/2; /右移一位DQ

17、 = 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_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value);read_temp()/读出温度函数ow_reset(); /总线复位write_b

18、yte(0xCC); / 发Skip ROM命令write_byte(0xBE); / 发读命令temp_data0=read_byte(); /温度低8位temp_data1=read_byte(); /温度高8位ow_reset();write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 发转换命令work_temp()/温度数据处理函数uchar n=0; /if(temp_data1127) temp_data1=(256-temp_data1);temp_data0=(256-temp_data0);n=1;/负温度求补码display4=te

19、mp_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;/最高位为0时都不显示if(n)display3=0x0B;/负温度时最高位显示-main()/主函数Disdata=0xff; /初始化端口di

20、scan=0xff;for(h=0;h4;h+)displayh=8;/开机显示8888ow_reset(); / 开机先转换一次write_byte(0xCC); / Skip ROMwrite_byte(0x44); / 发转换命令for(h=0;h500;h+) scan(); /开机显示88882秒while(1) read_temp(); /读出18B20温度数据 work_temp(); /处理温度数据 for(h=0;h500;h+) scan(); /显示温度值2秒 5系统设计仿真及调试5.1硬件调试先排除硬件电路故障,包括设计性错误和工艺性故障,一般原则先静态后动态。利用万用

21、表或测试仪器,检查电路中的各器件及引脚是否连接正确,是否有短路故障。先要将单片机AT89S52芯片取下,对电路板进行通电检查,通过观察看是否有异常,然后用万用表测试个电源电压,若这些都没问题,则接上仿真机进行联机调试观察各接线口线路是否正常。5.2软件调试软件调试是利用仿真工具进行再线仿真调试,我们用KELL软件调试,处发现和解决程序错误外,还可以发现硬件上的问题。总结经过将近两周的单片机课程设计,终于完成了我的数字温度计的设计,虽然没有完全达到设计要求,但从心底说,还是高兴的,毕竟这次设计把实物都做了出来,高兴之余不得不深思啊!在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但

22、这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有有巧妙的程序算法,虽然以前写过几次程序,但我觉得写好一个程序并不是一件简单的事,举个例子,在列控制位选择调试时,我刚开始只注意到我用的是74LS04非门驱动,所以就给列控制位都送低电平过去,后来调试时发现并不是这样的数码管并没有显示出我想要的数字来,后来在分析硬件时发现我用的是共阴数码管要送高低平过去才行,还有我的温度数据处理函数没有用直接的加减而是用于上一位BCD码来解决,感觉效果比较好,有好多的东西,只有我们去试着做了,才能真正的掌握,只有学习理论有些东西是很难理解的,更谈不上掌握。还有在硬件调试过程中发现程序捎进单

23、片机中就没有一点反应,后来我终于找到问题的所在在选材时就出现了问题了,数码管分压电阻选错了,电阻阻值太大了,导致数码管的电压不足直接导致数码管不亮,后来我换了个电阻小,在调试是数码管就亮了,那是我很兴奋,也很受教训,做任何是都要从刚开始时就认真做起,要一丝不苟,要精心细心,不能有一刻含糊,只有这样才能做好事,做大事!从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。最后,还要感谢我的指导老师和我们热心的同学,在他们的帮助下我的课程设计才能顺利完成,谢谢你们!参考文献1杨居义. 单片机课程设计指导. 北京:清华大学出版社.2009年9月2李广弟. 单片机基础. 北京:北京航空航天大学出版. 2007年5月3阎石. 单片机技术与应用基础.北京:高等教育出版社.2006年7月4李朝青. 单片机原理及接口技术. 杭州. 北京航空航天大学出版社.2006年3月5王守中.单片机的开发入门与典型实例. 北京:人民邮电出版社. 2002年8月

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!