




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南理工大学《单片机应用与仿真训练》设计报告基于单片机的数字温度计设计姓名:学号:专业班级:指导老师:所在学院:电气工程与自动化系2023年6月26日基于单片机的数字温度计设计摘要随着现代信息技术的飞速发展和传统工业改造的逐步实现.可以独立工作的温度检测和显示系统应用于诸多领域。传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号解决电路,并且可靠性相对较差,测温准确度低,检测系统也有一定的误差。与传统的温度计相比,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,合用范围宽等特点。选用AT89S52型单片机作为主控制器件,DSl8B20作为测温传感器通过4位共阳极LED数码管串口传送数据,实现温度显示。通过DSl8B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.1℃。该器件可直接向单片机传输数字信号,便于单片机解决及控制。此外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与解决过程。目录1概述……………41.1课题名称…………………41.2课题规定……………………41.3设计的目的意义……………42系统总体方案及硬件设计……………………52.1单片机的选择………………52.2温度传感器的介绍…………62.3温度传感器与单片机的连接………………82.4复位信号及外部复位电路…………………82.5单片机与报警电路…………92.6显示电路……………………93软件设计………………………104Proteus软件仿真……………124.1仿真图……………………124.2仿真结果分析………………135总结体会………………………14参考文献………………………15附录1程序源代码……………15附录2系统原理图………………231概述1.1课题名称基于单片机的数字温度计的设计1.2课题规定1)基本范围-50℃~110℃2)精度误差小于0.5℃3)LED数码直读显示4)可以设定温度的上下限报警功能1.3设计目的和意义温度数我们平常生产和生活中实时在接触到的物理量,但是它是看不到的,仅凭感觉只能感觉到大约的温度值,传统的指针式的温度计虽然能指示温度,但是精度低,使用不够方便,显示不够直观,数字温度计的出现可以让人们直观的了解自己想知道的温度到底是多少度。数字温度计采用温度敏感元件也就是温度传感器(如铂电阻,热电偶,半导体,热敏电阻等),将温度的变化转换成电信号的变化,如电压和电流的变化,温度变化和电信号的变化有一定的关系,如线性关系,一定的曲线关系等,这个电信号可以使用模数转换的电路即AD转换电路将模拟信号转换为数字信号,数字信号再送给解决单元,如单片机或者PC机等,解决单元通过内部的软件计算将这个数字信号和温度联系起来,成为可以显示出来的温度数值,如25.0摄氏度,然后通过显示单元,如LED,LCD或者电脑屏幕等显示出来给人观测。这样就完毕了数字温度计的基本测温功能。数字温度计根据使用的传感器的不同,AD转换电路,及解决单元的不同,它的精度,稳定性,测温范围等都有区别,这就要根据实际情况选择符合规格的数字温度计。数字温度计有手持式,盘装式,及医用的小体积的等等。此外作为电气工程及其自动化的学生,通过基于单片机数字温度计的设计可以提高自己理论联系实际的能力,可以更好的掌握所学的专业理论只是,也培养了自己的动手能力,同时,也培养了信息搜集能力和分析问题解决问题的能力2系统总体设计方案及硬件设计作为对专业理论知识学习后的实践环节,我选择了自行设计基于AT89S52单片机的数字温度计。设计原理框图如,图1。图1数字温度计原理框图2.1单片机的选择AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有机灵的8位CPU和在系统可编程Flash,使得AT89S52在众多嵌入式控制应用系统中得到广泛应用。Protues仿真软件中用AT89C51代替AT89S52,单片机小系统的电路图如图2所示。图2单片机小系统电路AT89S52重要性能1、与MCS-51单片机产品兼容;2、8K字节在系统可编程Flash存储器;3、1000次擦写周期;4、全静态操作:0Hz-33MHz;5、三级加密程序存储器;6、32个可编程I/O口线;7、三个16位定期器/计数器;8、六个中断源;9、全双工UART串行通道;10、低功耗空闲和掉电模式;11、掉电后中断可唤醒;12、看门狗定期器;13、双数据指针;14、掉电标记符。2.2温度传感器介绍DS18B20可以程序设定9~12位的分辨率,精度为±0.5°C。可选更小的封装方式,更宽的电压合用范围。分辨率设定,及用户设定的报警温度存储在EPROM中,掉电后仍然保存。图3温度传感器引脚功能说明:NC:空引脚,悬空不使用;VDD:可选电源脚,电源电压范围3~5.5V。当工作于寄生电源时,此引脚必须接地。DQ:数据输入/输出脚。漏极开路,常态下高电平。GND:为电源地DS18B20内部结构重要由四部分组成: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℃/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和结构寄存器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检查字节。该字节各位的意义如下:TMR1R011111低五位一直都是1,TM是测试模式位,用于设立DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设立为0,用户不要去改动。R1和R0用来设立分辨率,如表1所示:(DS18B20出厂时被设立为12位)表1DS18B20温度转换时间表R1R0分辨率/位温度最大转向时间00993.750110187.510113751112750根据DS18B20的通讯协议,主机控制DS18B20完毕温度转换必须通过三个环节:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才干对DS18B20进行预定的操作。复位规定主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待16~60微秒左右,后发出60~240微秒的存在低脉冲,主CPU收到此信号表达复位成功。2.3温度传感器与单片机的连接DS18B20采用外部电源供电方式,在外部电源供电方式下,DS18B20工作电源由VCC引脚接入,此时I/O线不需要强上拉,不存在电源电流局限性的问题,可以保证转换精度,同时在总线上理论可以挂接任意多个DS18B20传感器,组成多点测温系统。注意:在外部供电的方式下,DS18B20的GND引脚不能悬空,否则不能转换温度,读取的温度总是85℃。图4DS18B20接线2.4复位信号及外部复位电路该复位信号高电平有效,其有效时间应连续24个振荡脉冲周期即两个机器周期以上。若使用频率为12MHz的晶体振荡器,则复位信号连续时间应超过2μs才完毕复位操作。图5复位电路2.5单片机与报警电路报警电路分为两部分,一部分是蜂鸣器声音报警,另一部分是发光二极管放光报警。具体情况如下:接通电源,两个(红色,黄色)发光二极管都不亮,当温度超过上线设定值(如38摄氏度)时,红色二极管亮,同时蜂鸣器也报警;当温度低于下限设定值时(如5摄氏度)时,黄色二极管亮,同时蜂鸣器也开始报警。图6蜂鸣器报警图7发光二极管报警2.6显示电路采用技术成熟的5461AS共阴4位数码管0.56英寸红色。LED显示分为静态显示和动态显示。这里采用静态显示,系统通过单片机的串行口来实现静态显示。串行口为方式零状态,即工作在移位寄存器方式,波特率为振荡频率的1/12。当器件执行任何一条将SBUF作为目的寄存器的命令时,数据便开始从RXD端发送。在写信号有效时,相隔一个机器周期后发送控制端SEND有效,即允许RXD发送数据,同时允许从TXD端输出移位脉冲。图8为显示电路的连接图。图8数码显示连接图3软件设计DSl8820的重要数据元件有:64位激光LaseredROM,温度灵敏元件和非易失性温度告警触发器TH和TL。DSBl820可以从单总线获取电源,当信号线为高电平时,将能量贮存在内部电容器中;当单信号线为低电平时,将该电源断开,直到信号线变为高电平重新接上寄生(电容)电源为止。此外,还可外接5V电源,给DSl8820供电。DSl8820的供电方式灵活,运用外接电源还可增长系统的稳定性和可靠性。图9为读取数据流程图。开始开始DS18B20的初始化启动温度转换读取温度寄存器跳过读序列号的操作跳过读序列号的操作DS18B20的初始化RETLOW-低八位HIGH-高八位图9读取数据的流程图读出温度数据后,LOW的低四位为温度的小数部分,可以精确到0.0625℃,LOW的高四位和HIGH的低四位为温度的整数部分,HIGH的高四位所有为1表达负数,全为0表达正数。所以先将数据提取出来,分为三个部分:小数部分、整数部分和符号部分。小数部分进行四舍五入解决:大于0.5℃的话,向个位进1;小于0.5℃的时候,舍去不要。当数据是个负数的时候,显示之前要进行数据转换,将其整数部分取反加一。还由于DS18B20最低温度只能为-55℃,所以可以将整数部分的最高位换成一个“-”,表达为负数。图10为温度数据解决程序的流程图。开始开始提取整数部分存入HT提取小数部分存入LTLT右移三位,将精度减少到0.5摄氏度HT++将小数部分整数化提取符号部分存入signLT是否大于5Sign=?0XF0RET负数表达flag=1HT=~HT+1YNNY图10温度数据解决流程图4Proteus软件仿真仿真过程相称顺利,需要注意原件的选取,特别是数码管显示块的共阴、共阳,尚有就是电阻的选取,太大太小都会影响实验效果。在仿真中不存在焊接的问题,所以接线只要引脚接口对的就是没问题的。此外就是程序的调试,相称重要。4.1仿真图图11当温度为上下限之间时的仿真情况图12温度在温度下限设定值以下的仿真图图13温度在温度上限设定值以上的仿真图4.2仿真结果分析温度在上下限设定值范围内是,放光二极管都是不亮的,当实际温度值,低于设定下限时,黄色放光二极管亮;当实际温度高于上限设定值时,红色发光二极管亮。因素,通过程序控制P1.0(红色放光二极管)P1.1(黄色发光二极管),度在上下限设定值范围内是,P1.0,P1.1都是低电平,故发光二极管不会亮,当实际温度值,低于设定下限时,P1.0为低电平P1.1为高电平,故黄色放光二极管亮;当实际温度高于上限设定值时,P1.0为高电平P1.1为低电平,故红色发光二极管亮。5总结与体会作为一名电气工程及其自动化大三学生,我觉得做单片机课程设计是很故意义的,并且也是必要的。在做这次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的实际资料是十分必要的,也是必不可少的。另一方面,在这次课程设计中,我们运用了以前学过的专业课知识,如:proteus仿真、C语言、模拟和数字电路知识等。虽然过去我从未独立应用过他们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机有哪些资源;要有一个清楚的思绪和一个完整的软件流程图;在设计程序时,不能妄想一次将整个程序设计好,反复修改、不断改善是程序设计的必经之路;要养成注释程序的好习惯,这样为资料的保存和交流提供了方便;在设计中碰到的问题要记录,以免下次碰到同样的问题。在这次的课程设计中,我真正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有在经常写与读的过程中才干提高,这就是这次课程设计的最大收获。参考文献[1]单片机原理及应用技术.余发山,王福忠徐州中国矿业大学出版社.[2]微型计算机控制技术王新中国电力出版社[3]模拟电子技术艾永乐中国电力出版社附录1程序源代码/******************************************************************程序名称:DS18B20温度测量、报警系统简要说明:DS18B20温度计,温度测量范围0~99.9摄氏度可设立上限报警温度、下限报警温度即高于上限值或者低于下限值时蜂鸣器报警默认上限报警温度为38℃、默认下限报警温度为5℃报警值可设立范围:最低上限报警值等于当前下限报警值最高下限报警值等于当前上限报警值将下限报警值调为0时为关闭下限报警功能******************************************************************/#include<AT89X52.h>#include"DS18B20.h"#defineuintunsignedint#defineucharunsignedchar//宏定义#defineSETP3_1//定义调整键#defineDECP3_2//定义减少键#defineADDP3_3//定义增长键#defineBEEPP3_7//定义蜂鸣器bitshanshuo_st;//闪烁间隔标志bitbeep_st;//蜂鸣器间隔标志sbitDIAN=P0^7;//小数点ucharx=0;//计数器signedcharm;//温度值全局变量ucharn;//温度值全局变量ucharset_st=0;//状态标志signedcharshangxian=38;//上限报警温度,默认值为38signedcharxiaxian=5;//下限报警温度,默认值为5ucharcodeLEDData[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00};unsignedintReadTemperature(void);/*****延时子程序*****/voidDelay(uintnum){while(--num);}/*****初始化定期器0*****/voidInitTimer(void){TMOD=0x1;TH0=0x3c;TL0=0xb0;//50ms(晶振12M)}/*****定期器0中断服务程序*****/voidtimer0(void)interrupt1using0{TH0=0x3c;TL0=0xb0;x++;}/*****外部中断0服务程序*****/voidint0(void)interrupt0 using1{EX0=0;//关外部中断0if(DEC==0&&set_st==1){shangxian--;if(shangxian<xiaxian)shangxian=xiaxian;}elseif(DEC==0&&set_st==2){xiaxian--;if(xiaxian<0)xiaxian=0;}}/*****外部中断1服务程序*****/voidint1(void)interrupt2using2{EX1=0;//关外部中断1if(ADD==0&&set_st==1){shangxian++;if(shangxian>99)shangxian=99;}elseif(ADD==0&&set_st==2){xiaxian++;if(xiaxian>shangxian)xiaxian=shangxian;}}/*****读取温度*****/voidcheck_wendu(void){uinta,b,c;c=ReadTemperature()-5;//获取温度值并减去DS18B20的温漂误差a=c/100;//计算得到十位数字b=c/10-a*10;//计算得到个位数字m=c/10;//计算得到整数位n=c-a*100-b*10;//计算得到小数位if(m<0){m=0;n=0;}//设立温度显示上限if(m>99){m=99;n=9;}//设立温度显示上限}/*****显示开机初始化等待画面*****/Disp_init(){P0=0x40;//显示-P2=0xf7;Delay(200);P2=0xfb;Delay(200);P2=0xfd;Delay(200);P2=0xfe;Delay(200);P2=0xff;//关闭显示}/*****显示温度子程序*****/Disp_Temperature()//显示温度{P2=0xf7;P0=0x39;//显示CDelay(300);P2=0xfb;P0=LEDData[n];//显示个位Delay(300);P2=0xfd;P0=LEDData[m%10];//显示十位DIAN=1;//显示小数点Delay(300);P2=0xfe;P0=LEDData[m/10];//显示百位Delay(300);P2=0xff;//关闭显示}/*****显示报警温度子程序*****/Disp_alarm(ucharbaojing){P2=0xf7;P0=0x39;//显示CDelay(200);P2=0xfb;P0=LEDData[baojing%10];//显示十位Delay(200);P2=0xfd;P0=LEDData[baojing/10];//显示百位Delay(200);P2=0xfe;if(set_st==1)P0=0x76;elseif(set_st==2)P0=0x38;//上限H、下限L标示Delay(200);P2=0xff;//关闭显示}/*****报警子程序*****/voidAlarm(){ unsignedinti;{ for(i=0;i<200;i++)//喇叭发声的时间循环,改变大小可以改变发声时间长短{Delay(80);//参数决定发声的频率,估算值BEEP=!BEEP;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓颉造字教学活动方案
- 仙人指路活动方案
- 代为祭扫活动方案
- 代表视察调研活动方案
- 代销理财活动方案
- 以案释法宣讲活动方案
- 价格打折活动方案
- 任职宣誓活动方案
- 企业九一八活动方案
- 企业元旦春节活动方案
- 2025年中考数学压轴题专练:圆的各性质的综合题(原卷版+解析)
- 2025工贸安全考试题库及答案
- 2025-2030中国保险中介机构行业市场发展现状及竞争格局与投资前景研究报告
- 内在动机:自主掌控人生的力量
- 人教版八年级物理(下册)期末考试题及答案
- 山东省济南市2025届高三三模生物试卷(含答案)
- 2025年网络工程师职业资格认证考试试题及答案
- 2025年铁路助理值班员资格理论必背考试题库(附答案)
- 台球介绍课件
- 中国心力衰竭基层诊疗与管理指南(2024年)解读课件
- 电气工程及其自动化试题及答案
评论
0/150
提交评论