ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:299.19KB ,
资源ID:408699      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

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

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的智能数显调温系统设计.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的智能数显调温系统设计.docx

1、基于单片机的智能数显调温系统设计 单片机原理及系统课程设计评语:考勤10分守纪10分过程30分设计报告30分答辩20分总成绩100分专 业: 信号 班 级: 信号 姓 名: 学 号: 指导教师: 兰州交通大学自动化与电气工程学院2016 年 12 月 30 日1、设计题目基于单片机的智能数显调温系统设计2、设计目的和方法1.目的 本设计目的是根据环境温度实时显示并动态调温以保持环境温度在一固定范围。2.方法 本设计采用工程化思想,从问题入手,透彻的分析问题,然后描绘出整体实现的思路,再将系统分割为一个个的小模块来分别进行功能的设计,模块化设计调试完成后整合为一体的程序再进行联调,最后采用EDA

2、工程进行仿真实验,这样开发目的性强,周期短,成本低,且容易实现。3、设计方案及原理图 1 系统结构图 本系统如图 1以主控制模块为核心,以温度采集模块、显示模块、电机驱动模块和加热模块为功能模块共五部分构成。单片机作为主控制模块通过预定程序来对其他功能模块进行管理。在整个系统运行过程中,首先由温度传感器采集环境温度并进行AD转换,主控将所得温度数据显示出来并进行判断,随后选择合适的调温模式驱动电机,本设计中当0T25时,风扇停转;当25T50时,风扇转速与温度成正比降温;当T50时,风扇以最快速度转动降温;当T0时,风扇停转并使用电热器加热。4、硬件设计图 2如图2主要硬件选取的有AT89C5

3、1单片机、DS18B20数字温度传感器、LCD1602液晶屏、DC12V电机、热炉和若干电阻、电容、晶振、三极管、继电器和按键等。A模块是12MHz晶振电路,为单片机提供稳定精确的时钟脉冲,有利于准确控制延时。B模块为复位电路,提供两种复位模式,上电复位和手动复位。系统上电后,电容充电使得RST高电平复位,当需要手动对系统复位时,短暂按下按键使得RST高电平复位,CPU从0000H开始执行程序。C模块为DS18B20数字温度传感器,它是一种不需要外围设备、单口线双向传输且分辨率为可编程9-12位的温度传感器,其温度最大转换时间为750毫秒,其RAM前两个字节存放温度值,通过配置寄存器R0和R1

4、控制分辨率。D模块为LCD1602,支持16列2行,58点阵显示,8位数据接口,其内部字符发生存储器存储了160个不同的点阵ASCII码字符图形,可以直接使用,引脚定义及功能说明如表 1所列。引脚功能说明VSS接地。VDD接电源(+5V)。VEE液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,使用时可以通过一个10K的电位器调整对比度。RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。RWR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。E使能端,写操作时,下降沿使能。读操作时,E高电平有效。D0-D78位数据总线,其中当D7位

5、为1时,LCD忙,将无法再处理其他的指令要求。表 1E模块为PWM电机驱动电路,利用单片机的数字输出来对模拟电路进行控制,本次设计是单片机调制输出波形占空比来实现调速,驱动电机时使用了晶体管放大电路,D端可用作方向选择,PWM端可用作调速,驱动电路也可选用达林顿管或者专用的驱动器驱动电机,电机也可根据实际需求改变。F模块为OVEN加热电路,利用单片机的一个口线控制继电器来控制电热器的通断,实现低温加热功能。5、软件设计1.主程序 系统程序采用模块化设计,系统上电之后,对DS18B20温度传感器和LCD1602进行初始化,随后显示系统初始化界面。系统主要功能在循环中完成,先采集温度数据,进行温度

6、数值转换并显示到LCD屏幕上,接下来根据温度范围的不同选择是加热还是散热,散热时又选择不同的散热等级进行散热。如此往复循环,让温度平衡在某一水准,主程序中基本不进行功能操作,各个功能均调用各个功能子函数实现,数据除长周期变量,其他均使用参数传递,体现完整的工程化模块化思想,流程图如图 3所示。源代码详情见附录。图 3主程序流程图2.温度读取程序 温度传感器选用的是较常用的DS18B20,使用时,先要对其进行初始化,初始化有严格的时序要求。单片机应先向DS18B20发送一个长480-960s的脉冲,再拉高至高电平15-60s等待DS18B20响应低电平后一段时间即完成DS18B20的初始化。一个

7、简单的读取温度流程应如图 4所示,复位DS18B20后由于本设计不需读取设备序列号故跳过读ROM直接启动温度转换,延时等待温度转换完成再次复位DS18B20,跳过读ROM写入一个读命令,从口线每8位循环读出一个字节,前两个字节是温度低字节和高字节。单口线的特点是每次读写一个指令或者数据都需要每8位循环来完成一个字节的操作。读出的温度数据在分辨率为12位时,温度低字节里包括4位小数与4位整数位,温度高字节里包括3位整数位与5位符号位,如图 5将数据进行操作和整合成十进制BCD码以便LCD显示出正确的数值。源代码详情及注解见附录。 图 4 温度读取程序流程图 图 5 温度转化程序流程图3.LCD显

8、示程序 由于要求显示温度,用到很多的字符,LCD1602内部有字符集可供使用,显示效果较数码管友好。LCD1602使用时也要先对其进行初始化设置,配合使能端通过D0-D7口线8位并行对LCD1602写入相应的命令即可。基本显示是不可变友好提醒“T Monitor”和温度单位“”,动态显示的是温度的正负“+”、“-”和十进制温度数值,故而在初始化显示LCD时,先显示不可变的友好提醒和温度单位,这样随后的温度变化仅改变1位符号位和3位BCD数码即可,优化系统的效率。写显示数据时,先选择写起始位置,每次写入一个字符,到写入字符串的末尾时停止。动态更新温度数据流程如图 6,先设定写入起始位置,判断温度

9、正负标志位改变可变温度值字符串,而后更改变化后的数值,动态更新LCD显示。源代码详情及注解见附录。图 6 温度显示程序流程图4.电机和电热器驱动程序 这部分的程序主要负责判断温度区间然后做出相应的控温措施。主要的部件有两个,电机和电热炉分别用来降温和加热。电机有停转,转速根据温度智能可调和全速三种状态,控制引脚的高低电平即可控制相应器件的工作状态,其中电机转速与温度成正比这种模式主要采用调制占空比来达到控速的目的。源代码详情及注解见附录。 图 7 电机和电热器驱动程序流程图 6、系统仿真如图 8为环境温度为18时的仿真结果截图,LCD显示与环境温度相同为18,直流电机停转。如图 9为环境温度为

10、35时的仿真结果截图,LCD显示与环境温度相同为35,直流电机转速为47.0转/分钟。如图 10为环境温度为60时的仿真结果截图,LCD显示与环境温度相同为60,直流电机转速为62.6转/分钟。如图 11为环境温度为-12时的仿真结果截图,LCD显示与环境温度相同为-12,直流电机停转,电热器加热。图 8 18仿真结果图图 9 35仿真结果图图 10 60仿真结果图图 11 -12仿真结果图7、总结课程设计是培养学生来综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,当今单片机在工业控制领域广泛应用,

11、且EDA开发在实际中非常重要,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,因此我们必须掌握这种简单高效的开发技术去实现各种工业控制实例。回顾起此次课程设计,感触颇多,从理解题目到完成整个系统,从理论到实践,两个星期的日子里,可以学到很多很多的东西,同时巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到过各种各样的问题,同时还发现了自己的不足之处,对以前所学过的知

12、识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定要将以前所欠缺的知识再温故,多动手提高实际操作能力。这次课程设计终于顺利完成,在设计中遇到了很多问题,学会利用书本,网络,人力资源等多种途径解决问题,这是对自己能力的一种提升。在此,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!8、附录main.c源程序代码:/*头文件*/#include /*符号定义*/#define uchar unsigned char /定义缩写uchar#define uint unsigned int /定义缩写uint#define LCDData P0 /定义LCD的数据口为P0/*接口定义

13、*/sbit DQ=P17; /设P1.7为温度传感器DS18B20控制位sbit LCD_RS=P20; /设P2.0为LCD1602寄存器控制位sbit LCD_RW=P21; /设P2.1为LCD1602读写控制位sbit LCD_E=P22; /设P2.2为LCD1602使能控制位sbit PWM=P37; /设P3.7为PWM调速系统脉冲转速控制位sbit D=P36; /设P3.6为PWM调速系统电平转向控制位和加热器加热控制位/*变量定义*/uchar t2,temperature; /温度高低字节数组t,十进制温度temperatureuchar TempBuffer12=0x

14、20,0x20,0x20,0x20,0;/可变温度值uchar tab116=0x54,0x20,0x4d,0x6f,0x6e,0x69,0x74,0x6f,0x72,0;/不可变友好提醒“T Monitor”uchar tab216=0xdf,0x43,0; /不可变温度单位“”/*延时程序*/void delay_20ms() /延时20ms uchar i,temp; for(i=20;i0;i-) temp=248; while(-temp); temp=248; while(-temp); void delay_38us() /延时38us uchar temp; temp=18; while(-temp);void delay_1520us() /延时1520us uchar i,temp; for(i=3;i0;i-) temp=252; while(-temp); void delay_DS18B20(uint i) /DS18B20延时 while(i-);void delay(uint x) /主程序延时 uchar i; while(x-) for(i=0;i123;i+);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1