




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-. z 目 录 TOC o 1-3 h z u HYPERLINK l _Toc2937841861 引言2HYPERLINK l _Toc2937841872 设计要求2HYPERLINK l _Toc2937841882.1 设计目的2HYPERLINK l _Toc2937841892.2 根本要求3HYPERLINK l _Toc2937841903 方案设计3HYPERLINK l _Toc2937841913.1 温度传感器方案论证3HYPERLINK l _Toc2937841923.1.1 方案一3HYPERLINK l _Toc2937841933.1.2 方案二3HYPE
2、RLINK l _Toc2937841943.2 总体设计框图3HYPERLINK l _Toc2937841954 硬件设计4HYPERLINK l _Toc2937841964.1 单片机系统4HYPERLINK l _Toc2937841974.2 数字温度传感器模块5HYPERLINK l _Toc2937841984.2.1 DS18B20性能6HYPERLINK l _Toc2937841994.2.2 DS18B20外形及引脚说明6HYPERLINK l _Toc2937842004.2.3 DS18B20接线原理图6HYPERLINK l _Toc2937842014.2.4
3、DS18B20时序图 PAGEREF _Toc293784201 h 7HYPERLINK l _Toc2937842024.2.5 数据处理8HYPERLINK l _Toc2937842034.3 L298电机驱动模块9HYPERLINK l _Toc2937842034.4LCD显示电路模块9HYPERLINK l _Toc3754011395应用软件介绍10HYPERLINK l _Toc2937842075.1Proteus仿软真件的介绍10HYPERLINK l _Toc2937842085.2Keil软件 PAGEREF _Toc293784208 h 10HYPERLINK l
4、 _Toc2937842066软件设计 PAGEREF _Toc293784206 h 10HYPERLINK l _Toc2937842076.1 主程序模块 PAGEREF _Toc293784207 h 10HYPERLINK l _Toc2937842086.2 读温度值模块 PAGEREF _Toc293784208 h 11HYPERLINK l _Toc2937842096.3 中断模块136.4 仿真模块14HYPERLINK l _Toc2937842137源程序16HYPERLINK l _Toc2937842148总结19HYPERLINK l _Toc293784215
5、参考文献:201 引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否认的,各种数字系统的应用也使人们的生活更加舒适。数字化控制、智能控制为现代人的工作、生活、科研等方面带来方便。其中温度控制电机转速就是利用单片机实现的典型实例。测量温度时使用数字温度计,其与传统的温度计相比,具有读数方便、测温围广、测温准确、功能多样话等优点。其主要用于对测温要求准确度比较高的场所,或科研实验室使用,该设计使用STC89C51单片机作控制器,数字温度传感器DS18B20测量温度,单片机承受传感器输出,经处理用LCD实现温度值显示。电机由L298电机驱动芯片控制,实现电
6、机的正反转和加速减速.2 设计要求2.1设计目的 设计一个基于温度的电动机转速控制电路,在相应的软件控制下可以完成要求的功能,即外部温度大于65C时,直流电动机在L298驱动下加速正转,温度大于75C全速正转,当外部温度小于0C时电动机加速反转,温度小于-10C时电动机全速反转。温度回到0C-65C时电动机逐渐停顿转动。在液晶显示屏1602LCD上显示当前的温度值。2.2 根本要求控制电机正反转即加速减速,实现实时温度显示,测温围-551280C,误差50C以。画出基于温度的电动机转速控制电路的原理图,通过仿真软件来检测所写程序实现功能的正确与否.3 方案设计3.1 温度传感器方案论证3.1.
7、1 方案一由于本设计是测温电路,可以使用热敏电阻之类的器件,将随被测温度变化的电压或电流采样,进展A/D转换后就可以用单片机进展数据处理,实现温度显示。这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。3.1.2 方案二考虑到在单片机属于数字系统,容易想到数字温度传感器,可选用DS18B20数字温度传感器,此传感器为单总线数字温度传感器,起体积小、构成的系统构造简单,它可直接将温度转化成串行数字信号给单片机处理,即可实现温度显示。另外DS18B20具有3引脚的小体积封装,测温围为-55+125摄氏度,测温分辨率可达0.0625摄氏度,其测量围与精度都能符合设计要求
8、。以上两种方案相比较,第二种方案的电路、软件设计更简单,此方案设计的系统在功耗、测量精度、围等方面都能很好地到达要求,故本设计采用方案二。3.2 总体设计框图本方案设计的系统由单片机系统、DS18B20数字温度传感器、LCD温度显示模块、L298电机驱动模块、电机组成,其总体架构如下列图1。单片机测温电路时钟、复位电路L298电机驱动LULU路电路电机转动电路LCD温度显示电路图1 系统总体方框图4 硬件设计 4.1 单片机系统本设计采用STC89C52单片机作为控制器,完成所有功能的控制,包括:DS18B20数字温度传感器的初始化和读取温度值LCD显示驱动与控制L298电机驱动芯片驱动电机温
9、度值的存储和读取单片机系统电路原理图:图2 单片机系统原理图 4.2 数字温度传感器模块 4.2.1 DS18B20性能独特的单线接口仅需一个端口引脚进展通信简单的多点分布应用无需外部器件可通过数据线供电零待机功耗测温围-55+128,以1递增可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625温度数字量转换时间200ms,12位分辨率时最多在750ms把温度转换为数字应用包括温度控制、工业系统、消费品、温度计和任何热感测系统负压特性:电源极性接反时,传感器不会因发热而烧毁,但不能正常工作 4.2.2 DS18B20外形及引脚说明图3 DS18B20外形及
10、引脚GND:地DQ:单线运用的数据输入/输出引脚VD:可选的电源引脚 4.2.3 DS18B20接线原理图单总线通常要求接一个约4.7K左右的上拉电阻,这样,当总线空闲时,其状态为高电平。图4 DS18B20接线原理图 4.2.4 DS18B20时序图主机使用时间隙来读写DS18B20的数据位和写命令字的位。初始化时序如下列图:图5 DS18B20初始化时序DS18B20读写时序:图6 DS18B20读写时序 4.2.5 数据处理高速暂存存储器由9个字节组成,其分配如表5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在 高速暂存存储器的第0和第1个字节。单片机可通过单线接口
11、读到该数据,读取时低位在前,高位在后。图7 字节分配下表为12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0, 这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际 温度。 例如+125的数字输出为07D0H,实际温度=07D0H*0.0625=2000*0.0625=125。例如-55的数字输出为FC90H,则应先将11位数据位取反加1得370H符号位不变,也不作运算,实际温度=370H*0.0625=880*0.0625=55。可见其
12、中低四位为小数位。图8 DS18B20温度数据表 4.3关于L298电机驱动芯片的简介L298是ST公司生产的一种高电压、大电流电机驱动芯片。该芯片的主要特点是:工作电压高,最高工作电压可达46V;输出电流大,瞬间峰值电流可达3A,持续工作电流为2A;含两个H桥的高电压大电流全桥式驱动器,可以用来驱动直流电动机和步进电动机、继电器、线圈等感性负载;采用标准TTL逻辑电平信号控制;具有两个使能控制端,在不受输入信号影响的情况下允许或制止器件工作;有一个逻辑电源输入端,使部逻辑电路局部在低电压下工作;可以外接检测电阻,将变化量反应给控制电路。 4.4 显示电路LCD显示简单明了,可以直接读出温度值
13、。图9 LCD驱动显示电路5应用软件介绍 5.1Proteus仿软真件的介绍Proteus是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。该软件的特点:1全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。2具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC1
14、2系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。支持大量的存储器和外围芯片。总之该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真51、AVR、PIC。5.2Keil软件KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC
15、51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。6 软件设计6.1 主程序模块主程序流程图:主程序流程图6.2 读温度值模块读温度值模块需要调用4个子程序,分别为:DS18B20初始化子程序:让单片机知道DS18B20在总线上且已准备好操作DS18B20写字节子程序:对DS18B20发出命令DS18B20读字节子程序:读取DS18B20存储器的数据延时子程序:对DS18B20操作时的时序控制读温度值模块流入口数据转换处理读取温度值上下位跳过读序列号DS18B20初始化延时DS18B20初始化跳过读序列号启动温度转换返回 读温度值子
16、程序流程图 DS18B20初始化子程序流程图:入口DQ为低电平?延时1560msDQ拉高电平延时480msDQ复位0稍延时DQ置高电平N返回Y DS18B20初始化子程序流程图DS18B20写字节和读字节子程序流程图: DS18B20写字节子程序流程图 DS18B20读字节子程序流程图6.3 中断模块中断采用T0方式1,初始值定时为50ms。中断模块需调用两个子程序:读温度值子程序:定时读取温度值,实时更新温度值记录温度值子程序:定时记录温度值,供查询使用把这两个子程序放在中断的原因是,不会因为调整报警温度或查询历史温度值而停顿更新温度值和记录温度值。中断模块流程图:1秒?计数值加1定时器重置
17、初值中断入口读温度值Y中断返回记录温度值 N中断模块流程图6.3 中断模块 仿真图65 - 1250- 6535- 07 源程序#include#include#include#define INT8U unsigned char#define INT16U unsigned inte*tern INT8U Temp_Value;e*tern INT8U read_Temperature();e*tern void delay_ms(INT16U *);e*tern void LCD_Initialise();e*tern void LCD_ShowString(INT8U,INT8U,INT
18、8U*) reentrant;sbit MA=P10;sbit MB=P11;sbit PWM1=P12;INT8U Back_Temp_Value=0*FF,0*FF;char Temp_Disp_Buff17;float f_Temp=35.0;void T0_INT() interrupt 1 static INT8U t_Count=0; TH0=(INT16U)(-11.0592/12*500)/256; TL0=(INT16U)(-11.0592/12*500)%256; if(+t_Count=100) t_Count=0; if(Read_Temperature() ) if(
19、Temp_Value0!=Back_Temp_Value0|Temp_Value1=Back_Temp_Value1) Back_Temp_Value0=Temp_Value0; Back_Temp_Value1=Temp_Value1; f_Temp=(int)(Temp_Value1=75) f_Temp=75; if (f_Temp=45) MA=1;MB=0; #include#include#include#define INT8U unsigned char#define INT16U unsigned inte*tern INT8U Temp_Value;e*tern INT8U
20、 read_Temperature();e*tern void delay_ms(INT16U *);e*tern void LCD_Initialise();e*tern void LCD_ShowString(INT8U,INT8U,INT8U*) reentrant;sbit MA=P10;sbit MB=P11;sbit PWM1=P12;INT8U Back_Temp_Value=0*FF,0*FF;char Temp_Disp_Buff17;float f_Temp=35.0;void T0_INT() interrupt 1 static INT8U t_Count=0; TH0
21、=(INT16U)(-11.0592/12*500)/256; TL0=(INT16U)(-11.0592/12*500)%256; if(+t_Count=100) t_Count=0; if(Read_Temperature() if(Temp_Value0!=Back_Temp_Value0|Temp_Value1!=Back_Temp_Value1) Back_Temp_Value0=Temp_Value0; Back_Temp_Value1=Temp_Value1; f_Temp=(int)(Temp_Value10)i-; return (dat); uchar tmpread(v
22、oid) uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); return(dat); void tmpwritebyte(uchar dat) uint i; uchar j; bit testb; for(j=1;j1;if(testb) /write 1 DS=0; i+;i+; DS=1; i=8;while(i0)i-; else DS=0; i=8;while(i0)i-;/write 0 DS=1; i+;i+; if (f_Temp=75) f_Temp=75; if (f_Temp=45) MA=1;MB=0; if(f_Temp=45) PWM1=0;delay_ms(30);return; else if(f_Temp=75) PWM1=1;delay_ms(30);return; PWM1=1;delay_ms(f_Temp-45); PWM1=0;delay_ms(75-f_Temp);else if(f_Temp=10) MA=0;MB=1; if (f_Temp=10) PWM1=0;delay_ms(10);return;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁管理制度
- led英文合同标准文本
- 13监理合同样本
- 劳务协议合同书范例模板二零二五年
- 2025年节能技术服务合作协议书
- 家暴起诉离婚协议书
- 建筑工程基础知识
- 二零二五版工程外包安全责任书
- 中小学教师课堂教学评价表
- 围挡广告合同
- 眼科诊所安全消毒规程
- 1248国开电大本科《公共部门人力资源管理》自检自测试题及答案
- 家庭教育指导师考试题库(附答案)
- 部编教材《村居》《咏柳》1-古诗两首名师公开课获奖课件百校联赛一等奖课件
- 2024年山东春季高考语文试题答案详细解析
- 患病儿童护理及其家庭支持(儿科护理课件)
- 2024年江苏省扬州市邗江区中考一模物理试题(解析版)
- 智联招聘行测笔试题库
- 三年级数学两位数乘两位数笔算题综合考核训练题大全附答案
- NB-T20307-2014核电厂冷却塔环境影响评价技术规范
- 高中数学选修二(人教A版2019)课后习题答案解析
评论
0/150
提交评论