ImageVerifierCode 换一换
格式:DOC , 页数:16 ,大小:66.54KB ,
资源ID:3933145      下载积分:7 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/3933145.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     留言反馈    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【丰****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【丰****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(基于单片机的数字温度计课程设计.doc)为本站上传会员【丰****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

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

1、河南理工大学本科课程设计报告河南理工大学单片机应用与仿真训练设计报告基于单片机的数字温度计设计姓 名:学 号:专业班级:指导老师:所在学院: 电气工程与自动化系 2011年6月26日基于单片机的数字温度计设计摘要随着现代信息技术的飞速发展和传统工业改造的逐步实现能够独立工作的温度检测和显示系统应用于诸多领域.传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。选用AT89S52型单片机作为主控制器件,DSl

2、8B20作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示.通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0100最大线性偏差小于0.1。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。目录1 概述4 1。1课题名称 4 1。2课题要求4 1.3设计的目的意义42 系统总体方案及硬件设计 5 2.1单片机的选择5 2.2温度传感器的介绍6 2.3温度传感器与单片机的连接8 2.4复位信号及外部复位电路8 2。5单片机与报警电路92。6显示电路93 软件设

3、计104Proteus软件仿真12 4。1 仿真图 12 4。2仿真结果分析135 总结体会14参考文献 15附录 1 程序源代码 15附录 2 系统原理图231概述1。1课题名称 基于单片机的数字温度计的设计1.2课题要求1)基本范围-501102)精度误差小于0。53)LED数码直读显示4)可以设定温度的上下限报警功能1.3设计目的和意义温度数我们日常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大概的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度。数字温度计采用温

4、度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给处理单元,如单片机或者PC机等,处理单元经过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25。0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观察。这样就完成了数字温度计的基本测温功能.数字温度计根据使用的传感器的不同,AD转换电路,及处理单元的不同,它的精度,稳定性,测温范

5、围等都有区别,这就要根据实际情况选择符合规格的数字温度计。数字温度计有手持式,盘装式,及医用的小体积的等等.另外作为电气工程及其自动化的学生,通过基于单片机数字温度计的设计可以提高自己理论联系实际的能力,可以更好的掌握所学的专业理论只是,也培养了自己的动手能力,同时,也培养了信息搜集能力和分析问题解决问题的能力 2系统总体设计方案及硬件设计作为对专业理论知识学习后的实践环节,我选择了自行设计基于AT89S52单片机的数字温度计.设计原理框图如,图 1。图 1 数字温度计原理框图2。1单片机的选择AT89S52是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。

6、使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。Protues仿真软件中用AT89C51代替AT89S52,单片机小系统的电路图如图2所示.图2 单片机小系统电路 AT89S52主要性能1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期; 4、全静态操作:0Hz33MHz; 5、三级加密程序存储器;6、32个可编程I/O口线;

7、7、三个16位定时器/计数器;8、六个中断源;9、全双工UART串行通道; 10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定时器;13、双数据指针;14、掉电标识符 .2.2 温度传感器介绍DS18B20可以程序设定912位的分辨率,精度为0.5C.可选更小的封装方式,更宽的电压适用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后依然保存。图3 温度传感器引脚功能说明: NC :空引脚,悬空不使用; VDD :可选电源脚,电源电压范围35。5V.当工作于寄生电源时,此引脚必须接地。 DQ :数据输入/输出脚。漏极开路,常态下高电平。 GND :为电源地DS18

8、B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的.DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0。0625/

9、LSB形式表达,其中S为符号位。这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0。0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0。0625即可得到实际温度.例如+125的数字输出为07D0H,+25。0625的数字输出为0191H,25。0625的数字输出为FF6FH,-55的数字输出为FC90H。DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器.暂存

10、存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。该字节各位的意义如下:TM R1 R0 1 1 1 1 1低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动.R1和R0用来设置分辨率,如表1所示:(DS18B20出厂时被设置为12位)表1 DS18B20温度转换时间表

11、R1R0分辨率/位温度最大转向时间00993.750110187。510113751112750根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功。2.3温度传感器与单片机的连接DS18B20采用外部电源供电方式,在外部电源供电方式下,DS18B20工作电源由VCC引脚接入

12、,此时I/O线不需要强上拉,不存在电源电流不足的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空 ,否则不能转换温度,读取的温度总是85.图4 DS18B20接线2。4 复位信号及外部复位电路该复位信号高电平有效,其有效时间应持续24个振荡脉冲周期即两个机器周期以上.若使用频率为12 MHz的晶体振荡器,则复位信号持续时间应超过2s才完成复位操作。 图 5 复位电路2。5 单片机与报警电路报警电路分为两部分,一部分是蜂鸣器声音报警,另一部分是发光二极管放光报警。具体情况如下:接通电源,两

13、个(红色,黄色)发光二极管都不亮,当温度超过上线设定值(如38摄氏度)时,红色二极管亮,同时蜂鸣器也报警;当温度低于下限设定值时(如5摄氏度)时,黄色二极管亮,同时蜂鸣器也开始报警。图6 蜂鸣器报警 图7 发光二极管报警2。6显示电路采用技术成熟的5461AS共阴4位数码管 0.56英寸红色。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示.串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12.当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许R

14、XD发送数据,同时允许从TXD端输出移位脉冲.图8为显示电路的连接图。 图 8 数码显示连接图3 软件设计DSl8820的主要数据元件有:64位激光Lasered ROM,温度灵敏元件和非易失性温度告警触发器TH和TL.DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5 V电源,给DSl8820供电。DSl8820的供电方式灵活,利用外接电源还可增加系统的稳定性和可靠性。图9为读取数据流程图。开始DS18B20的初始化启动温度转换读取温度寄存器跳过读序列号的操作

15、跳过读序列号的操作DS18B20的初始化RETLOW-低八位 HIGH-高八位图9读取数据的流程图读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0。0625,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位全部为1表示负数,全为0表示正数.所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入处理:大于0。5的话,向个位进1;小于0。5的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还因为DS18B20最低温度只能为55,所以可以将整数部分的最高位换成一个“”,表示为负数。图10为温度数据处理程

16、序的流程图。开始提取整数部分存入HT提取小数部分存入LTLT右移三位,将精度降低到0.5摄氏度HT+将小数部分整数化提取符号部分存入signLT是否大于5Sign=?0XF0RET负数表示flag=1 HT=HT+1YNNY图10 温度数据处理流程图4Proteus软件仿真 仿真过程相当顺利,需要注意原件的选取,尤其是数码管显示块的共阴、共阳,还有就是电阻的选取,太大太小都会影响实验效果。在仿真中不存在焊接的问题,所以接线只要引脚接口正确就是没问题的。另外就是程序的调试,相当重要.4。1仿真图图 11 当温度为上下限之间时的仿真情况图 12 温度在温度下限设定值以下的仿真图 图 13 温度在温

17、度上限设定值以上的仿真图4.2仿真结果分析温度在上下限设定值范围内是,放光二极管都是不亮的,当实际温度值,低于设定下限时,黄色放光二极管亮;当实际温度高于上限设定值时,红色发光二极管亮。 原因,通过程序控制P1。0(红色放光二极管)P1。1(黄色发光二极管),度在上下限设定值范围内是,P1。0,P1.1都是低电平,故发光二极管不会亮,当实际温度值,低于设定下限时,P1.0 为低电平P1.1为高电平,故黄色放光二极管亮;当实际温度高于上限设定值时,P1.0为高电平P1。1为低电平,故红色发光二极管亮。5 总结与体会作为一名电气工程及其自动化大三学生,我觉得做单片机课程设计是很有意义的,而且也是必

18、要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。其次,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、C语言、模拟和数字电路知识等.虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清晰的思路和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改进是程序设计的必经

19、之路;要养成注释程序的好习惯,这样为资料的保留和交流提供了方便;在设计中遇到的问题要记录,以免下次遇到同样的问题.在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。参考文献1单片机原理及应用技术.余发山,王福忠 徐州 中国矿业大学出版社。2微型计算机控制技术 王新 中国电力出版社3 模拟电子技术 艾永乐 中国电力出版社附录 1 程序源代码/*程序名称:DS18B20温度测量、报警系统简要说明:DS18B20温度计,温度测量范围099.9摄氏度 可设置上限报

20、警温度、下限报警温度 即高于上限值或者低于下限值时蜂鸣器报警 默认上限报警温度为38、默认下限报警温度为5 报警值可设置范围:最低上限报警值等于当前下限报警值 最高下限报警值等于当前上限报警值 将下限报警值调为0时为关闭下限报警功能 */include AT89X52。h#include DS18B20.h #define uint unsigned intdefine uchar unsigned char /宏定义define SET P3_1 /定义调整键define DEC P3_2 /定义减少键define ADD P3_3 /定义增加键#define BEEP P3_7 /定义蜂鸣

21、器bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P07; /小数点uchar x=0; /计数器signed char m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0; /状态标志signed char shangxian=38; /上限报警温度,默认值为38signed char xiaxian=5; /下限报警温度,默认值为5uchar code LEDData=0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00;unsigne

22、d int ReadTemperature(void);/延时子程序/void Delay(uint num) while( -num );/*初始化定时器0*/void InitTimer(void) TMOD=0x1; TH0=0x3c; TL0=0xb0; /50ms(晶振12M)/*定时器0中断服务程序*/void timer0(void) interrupt 1 using 0 TH0=0x3c; TL0=0xb0; x+;/*外部中断0服务程序/void int0(void) interrupt 0using 1 EX0=0; /关外部中断0 if(DEC=0&set_st=1)

23、shangxian; if(shangxianxiaxian)shangxian=xiaxian; else if(DEC=0&set_st=2) xiaxian; if(xiaxian0)xiaxian=0; /*外部中断1服务程序*/void int1(void) interrupt 2 using 2 EX1=0; /关外部中断1 if(ADD=0set_st=1) shangxian+; if(shangxian99)shangxian=99; else if(ADD=0set_st=2) xiaxian+; if(xiaxianshangxian)xiaxian=shangxian;

24、 /*读取温度*/void check_wendu(void) uint a,b,c; c=ReadTemperature()-5; /获取温度值并减去DS18B20的温漂误差 a=c/100; /计算得到十位数字 b=c/10a*10; /计算得到个位数字 m=c/10; /计算得到整数位 n=ca*100-b*10; /计算得到小数位 if(m0)m=0;n=0; /设置温度显示上限 if(m99)m=99;n=9; /设置温度显示上限 /*显示开机初始化等待画面*/Disp_init() P0 = 0x40; /显示- P2 = 0xf7; Delay(200); P2 = 0xfb;

25、Delay(200); P2 = 0xfd; Delay(200); P2 = 0xfe; Delay(200); P2 = 0xff; /关闭显示/*显示温度子程序*/Disp_Temperature() /显示温度 P2 = 0xf7; P0 =0x39; /显示C Delay(300); P2 = 0xfb; P0 =LEDDatan; /显示个位 Delay(300); P2 = 0xfd; P0 =LEDDatam10; /显示十位 DIAN = 1; /显示小数点 Delay(300); P2 = 0xfe; P0 =LEDDatam/10; /显示百位 Delay(300); P

26、2 = 0xff; /关闭显示/*显示报警温度子程序*/Disp_alarm(uchar baojing)P2 = 0xf7; P0 =0x39; /显示C Delay(200); P2 = 0xfb; P0 =LEDDatabaojing10; /显示十位 Delay(200); P2 = 0xfd; P0 =LEDDatabaojing/10; /显示百位 Delay(200); P2 = 0xfe; if(set_st=1)P0 =0x76; else if(set_st=2)P0 =0x38; /上限H、下限L标示 Delay(200); P2 = 0xff; /关闭显示/*报警子程序

27、*/void Alarm() unsigned int i; for(i=0;i200;i+)/喇叭发声的时间循环,改变大小可以改变发声时间长短 Delay(80);/参数决定发声的频率,估算值 BEEP=!BEEP; BEEP=1; /喇叭停止工作,间歇的时间,可更改 Delay(20000); /*主函数*/void main(void) uint z; InitTimer(); /初始化定时器 EA=1; /全局中断开关 TR0=1; ET0=1; /开启定时器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z300;z+) D

28、isp_init(); while(1) if(SET=0) Delay(2000); dowhile(SET=0); set_st+;x=0;shanshuo_st=1; if(set_st2)set_st=0; if(set_st=0) EX0=0; /关闭外部中断0 EX1=0; /关闭外部中断1 check_wendu(); Disp_Temperature(); if(m=shangxian) P1_0=0; else P1_0=1; if(m=shangxian)(mxiaxian)) Alarm(); /报警检测 else if(set_st=1) BEEP=1; /关闭蜂鸣器 EX0=1; /开启外部中断0 EX1=1; /开启外部中断1 if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(shangxian); else if(set_st=2) BEEP=1; /关闭蜂鸣器 EX0=1; /开启外部中断0 EX1=1; /开启外部中断1 if(x=10)shanshuo_st=shanshuo_st;x=0; if(shanshuo_st) Disp_alarm(xiaxian); /*END*附录 2 系统原理图- 16 -

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服