已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机原理及系统课程设计报告 单片机原理及系统课程设计评语:考勤10分守纪10分过程30分设计报告30分答辩20分总成绩100分专 业: 信号 班 级: 信号201402 姓 名: 牛志强 学 号: 201409217 指导教师: 张鑫 兰州交通大学自动化与电气工程学院2016 年 12 月 30 日4单片机原理及系统课程设计报告1、 设计题目基于单片机的智能数显调温系统设计2、 设计目的和方法1. 目的 本设计目的是根据环境温度实时显示并动态调温以保持环境温度在一固定范围。2. 方法 本设计采用工程化思想,从问题入手,透彻的分析问题,然后描绘出整体实现的思路,再将系统分割为一个个的小模块来分别进行功能的设计,模块化设计调试完成后整合为一体的程序再进行联调,最后采用EDA工程进行仿真实验,这样开发目的性强,周期短,成本低,且容易实现。3、 设计方案及原理图 1 系统结构图 本系统如图 1以主控制模块为核心,以温度采集模块、显示模块、电机驱动模块和加热模块为功能模块共五部分构成。单片机作为主控制模块通过预定程序来对其他功能模块进行管理。在整个系统运行过程中,首先由温度传感器采集环境温度并进行AD转换,主控将所得温度数据显示出来并进行判断,随后选择合适的调温模式驱动电机,本设计中当0T25时,风扇停转;当25T50时,风扇转速与温度成正比降温;当T50时,风扇以最快速度转动降温;当T0时,风扇停转并使用电热器加热。4、 硬件设计图 2如图2主要硬件选取的有AT89C51单片机、DS18B20数字温度传感器、LCD1602液晶屏、DC12V电机、热炉和若干电阻、电容、晶振、三极管、继电器和按键等。A模块是12MHz晶振电路,为单片机提供稳定精确的时钟脉冲,有利于准确控制延时。B模块为复位电路,提供两种复位模式,上电复位和手动复位。系统上电后,电容充电使得RST高电平复位,当需要手动对系统复位时,短暂按下按键使得RST高电平复位,CPU从0000H开始执行程序。C模块为DS18B20数字温度传感器,它是一种不需要外围设备、单口线双向传输且分辨率为可编程9-12位的温度传感器,其温度最大转换时间为750毫秒,其RAM前两个字节存放温度值,通过配置寄存器R0和R1控制分辨率。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位为1时,LCD忙,将无法再处理其他的指令要求。表 1E模块为PWM电机驱动电路,利用单片机的数字输出来对模拟电路进行控制,本次设计是单片机调制输出波形占空比来实现调速,驱动电机时使用了晶体管放大电路,D端可用作方向选择,PWM端可用作调速,驱动电路也可选用达林顿管或者专用的驱动器驱动电机,电机也可根据实际需求改变。F模块为OVEN加热电路,利用单片机的一个口线控制继电器来控制电热器的通断,实现低温加热功能。5、 软件设计1. 主程序 系统程序采用模块化设计,系统上电之后,对DS18B20温度传感器和LCD1602进行初始化,随后显示系统初始化界面。系统主要功能在循环中完成,先采集温度数据,进行温度数值转换并显示到LCD屏幕上,接下来根据温度范围的不同选择是加热还是散热,散热时又选择不同的散热等级进行散热。如此往复循环,让温度平衡在某一水准,主程序中基本不进行功能操作,各个功能均调用各个功能子函数实现,数据除长周期变量,其他均使用参数传递,体现完整的工程化模块化思想,流程图如图 3所示。源代码详情见附录。图 3主程序流程图2. 温度读取程序 温度传感器选用的是较常用的DS18B20,使用时,先要对其进行初始化,初始化有严格的时序要求。单片机应先向DS18B20发送一个长480-960s的脉冲,再拉高至高电平15-60s等待DS18B20响应低电平后一段时间即完成DS18B20的初始化。一个简单的读取温度流程应如图 4所示,复位DS18B20后由于本设计不需读取设备序列号故跳过读ROM直接启动温度转换,延时等待温度转换完成再次复位DS18B20,跳过读ROM写入一个读命令,从口线每8位循环读出一个字节,前两个字节是温度低字节和高字节。单口线的特点是每次读写一个指令或者数据都需要每8位循环来完成一个字节的操作。读出的温度数据在分辨率为12位时,温度低字节里包括4位小数与4位整数位,温度高字节里包括3位整数位与5位符号位,如图 5将数据进行操作和整合成十进制BCD码以便LCD显示出正确的数值。源代码详情及注解见附录。 图 4 温度读取程序流程图 图 5 温度转化程序流程图3. LCD显示程序 由于要求显示温度,用到很多的字符,LCD1602内部有字符集可供使用,显示效果较数码管友好。LCD1602使用时也要先对其进行初始化设置,配合使能端通过D0-D7口线8位并行对LCD1602写入相应的命令即可。基本显示是不可变友好提醒“T Monitor”和温度单位“”,动态显示的是温度的正负“+”、“-”和十进制温度数值,故而在初始化显示LCD时,先显示不可变的友好提醒和温度单位,这样随后的温度变化仅改变1位符号位和3位BCD数码即可,优化系统的效率。写显示数据时,先选择写起始位置,每次写入一个字符,到写入字符串的末尾时停止。动态更新温度数据流程如图 6,先设定写入起始位置,判断温度正负标志位改变可变温度值字符串,而后更改变化后的数值,动态更新LCD显示。源代码详情及注解见附录。图 6 温度显示程序流程图4. 电机和电热器驱动程序 这部分的程序主要负责判断温度区间然后做出相应的控温措施。主要的部件有两个,电机和电热炉分别用来降温和加热。电机有停转,转速根据温度智能可调和全速三种状态,控制引脚的高低电平即可控制相应器件的工作状态,其中电机转速与温度成正比这种模式主要采用调制占空比来达到控速的目的。源代码详情及注解见附录。 图 7 电机和电热器驱动程序流程图 6、 系统仿真如图 8为环境温度为18时的仿真结果截图,LCD显示与环境温度相同为18,直流电机停转。如图 9为环境温度为35时的仿真结果截图,LCD显示与环境温度相同为35,直流电机转速为47.0转/分钟。如图 10为环境温度为60时的仿真结果截图,LCD显示与环境温度相同为60,直流电机转速为62.6转/分钟。如图 11为环境温度为-12时的仿真结果截图,LCD显示与环境温度相同为-12,直流电机停转,电热器加热。图 8 18仿真结果图图 9 35仿真结果图图 10 60仿真结果图图 11 -12仿真结果图7、 总结课程设计是培养学生来综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,当今单片机在工业控制领域广泛应用,且EDA开发在实际中非常重要,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度,因此我们必须掌握这种简单高效的开发技术去实现各种工业控制实例。回顾起此次课程设计,感触颇多,从理解题目到完成整个系统,从理论到实践,两个星期的日子里,可以学到很多很多的东西,同时巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到过各种各样的问题,同时还发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定要将以前所欠缺的知识再温故,多动手提高实际操作能力。这次课程设计终于顺利完成,在设计中遇到了很多问题,学会利用书本,网络,人力资源等多种途径解决问题,这是对自己能力的一种提升。在此,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!8、 附录main.c源程序代码:/*头文件*/#include /*符号定义*/#define uchar unsigned char/定义缩写uchar#define uint unsigned int/定义缩写uint#define LCDData P0/定义LCD的数据口为P0/*接口定义*/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=0x20,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;i0x07)/若温度为负 TempBuffer0=0x2d;/温度显示符号位为“-” t1=t1;/将负数的补码转化为正数 t0=t0;/ if(t0=0xff)/ t1+=1;/ x=t0+1;/ t0=x;/ if(x255)/ t1+=1;/ else/若温度为正 TempBuffer0=0x2b;/温度显示符号位为“+” t1=4;/取温度低字节整数部分4位 x=x&0x0f;/ t1=t1|x;/温度整合为一个字节 temperature=t1;/将温度数值转存 TempBuffer1=t1/100+0x30;/取百位并转化为ASCII码 if(TempBuffer1=0x30)/若百位为0,消隐 TempBuffer1=0xfe; TempBuffer2=(t1%100)/10+0x30;/取十位并转化为ASCII码 TempBuffer3=(t1%100)%10+0x30;/取个位并转化为ASCII码void InitDS18B20()/初始化DS18B20 DQ=1;/DQ复位 delay_DS18B20(8);/ DQ=0;/复位脉冲拉低480um960um后拉高1560um delay_DS18B20(80);/ DQ=1;/ delay_DS18B20(14);/ delay_DS18B20(20);/延时完成初始化uchar ReadOneChar()/从DS18B20读一个字节 uchar i=0; uchar word=0; for(i=8;i0;i-)/循环串行读取8位得到一个字节 DQ=0; word=1; DQ=1; if(DQ) word|=0x80; delay_DS18B20(4); return word;/返回读到的字节void WriteOneChar(uchar word)/向DS18B20写一个字节 uchar i=0; for(i=8;i0;i-)/循环串行写入8位完成写一个字节 DQ=0; DQ=word&0x01; delay_DS18B20(4); DQ=1; word=1; void ReadTemperature()/读取温度 InitDS18B20();/初始化DS18B20 WriteOneChar(0xcc);/跳过读序列号命令 WriteOneChar(0x44);/启动温度转换命令 delay_DS18B20(80);/延时等待温度转换完成 InitDS18B20();/初始化DS18B20 WriteOneChar(0xcc);/跳过读序列号命令 WriteOneChar(0xbe);/读取温度值命令 t0=ReadOneChar();/t0存放温度低字节 t1=ReadOneChar();/t1存放温度高字节/*电机PWM驱动程序*/void delay_motor(uchar i)/电机占空比延时子程序 uchar j; for(;i0;i-) for(j=100;j0;j-);void motor()/电机调速程序 uchar x; if(TempBuffer0=0x2b)/若温度为正 if(temperature25)/T50) D=0; PWM=1; x=250; delay_motor(x); PWM=0; x=5; delay_m
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 催收中介课件
- 催收相关课件
- 催收思维课件
- 2026及未来5年古铜色开瓶器项目可行性研究报告(市场调查与数据分析)
- 2026及未来5年发球机摆动器项目可行性研究报告(市场调查与数据分析)
- 2026及未来5年双面平顶面包展示柜项目可行性研究报告(市场调查与数据分析)
- 2026及未来5年双组引线音圈项目可行性研究报告(市场调查与数据分析)
- 2026及未来5年双带伸缩式拉带护栏项目可行性研究报告(市场调查与数据分析)
- 2026及未来5年双刀距切绞肉两用机项目可行性研究报告(市场调查与数据分析)
- 2026及未来5年厌氧环境测试条项目可行性研究报告(市场调查与数据分析)
- 贵州部分学校2026-2027学年高三上学期10月联考语文试题及参考答案
- 2026-2027学年八年级上学期统编版历史期中测试卷(含答案)
- 中国外运(中外运)校园招聘笔试参考题库(含答案详解)
- 2026电子封装材料技术路线比较与替代趋势研究
- 2026年针灸学常考题库及答案
- 开展岗位能力提升全员培训实施方案
- 小腿肌肉静脉血栓诊疗护理共识解读2026
- 五年级语文知识树解析
- 四川省土地开发项目预算定额标准
- 2026版高中汉水丑生生物-第五章第1节植物生长素
- 冬季四防安全知识培训课件
评论
0/150
提交评论