200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【毕业设计】47-基于单片机的锅炉过热汽温控制系统设计(原理图工程+仿真工程+源代码+

【毕业设计】47-基于单片机的锅炉过热汽温控制系统设计(原理图工程+仿真工程+源代码+

时间:2019-04-10 23:34:42

相关推荐

【毕业设计】47-基于单片机的锅炉过热汽温控制系统设计(原理图工程+仿真工程+源代码+

typora-root-url: ./

【毕业设计】47-基于单片机的锅炉过热汽温控制系统设计(原理图工程+仿真工程+源代码+答辩论文)

文章目录

typora-root-url: ./【毕业设计】47-基于单片机的锅炉过热汽温控制系统设计(原理图工程+仿真工程+源代码+答辩论文)设计说明书摘要设计框架架构设计说明书及设计文件源码展示

设计说明书

摘要

本次设计的题目为锅炉过热蒸汽控制系统设计。当前锅炉过热控制系统还在使用传统的人工来进行控制,通过使用温度计对系统的温度检测,如果超过温度手动的方式对系统进行调节。所以本次设计系统针对此问题作出改良,设计一款锅炉蒸汽控制系统,选择使用单片机STC89C52作为系统的主控制器,LCD液晶显示器作为本次系统的信息显示设备,独立按键作为温度的上下限来实现温度的控制,使用ABSD-3014红外温度传感器作为温度检测设备,AD0832作为模数转换设备。通过对系统的电路设计,软件程序编写。在软件与硬件的设计上均通过分功能来进行设计,保证系统设计上方便系统移植和拓展,为后期调试与升级做准备。最后通过仿真的方式实现系统的功能。

资料链接

原理图工程文件

原理图截图

仿真模型工程文件

仿真截图

答辩论文低重复率文档,29297字

英文文献及翻译

设计框架架构

摘 要… 1

ABSTRACT… 1

1 概述… 1

1.1 完成本题的目的和意义… 1

1.2 国内外研究动态… 1

1.3 研究目标和内容… 2

2 总体方案… 3

2.1 硬件方案的选择… 3

2.1.1 主控芯片的选择… 3

2.1.2 显示器件的选择… 4

2.1.3 模数转换模块的选择… 5

2.1.4 温度传感器选择… 6

2.2 系统总体方案… 6

3 硬件的介绍与搭接… 9

3.1 STC89C52单片机系统设计… 9

3.1.1 STC89C52的概述… 9

3.1.2 STC89C52单片机的最小系统 10

3.2 LCD1602液晶显示电路设计 11

3.3 测温电路的设计… 12

3.4 继电器控制电路设计… 13

3.5 LED电路设计… 14

3.6 独立按键电路的设计… 14

3.7 报警电路设计… 15

4 软件设计… 17

4.1 软件开发环境的介绍… 17

4.2 系统重要函数的介绍… 17

4.2.1 主函数的设计… 17

4.2.2 LCD1602显示函数的设计 19

4.2.3 按键扫描函数的设计… 21

4.2.4 报警函数的设计… 22

4.2.5 数据读取函数的设计… 23

5 系统调试… 25

5.1 系统硬件测试… 25

5.2 系统软件测试… 26

6 结论与心得… 33

参考文献… 34

外文资料… 36

中文译文… 48

致 谢… 57

附件一… 58

附件二… 72

附件三… 73

附件四… 74

设计说明书及设计文件

源码展示

#include <reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义#include "intrins.h" #defineu8 unsigned char#defineu16 unsigned int#defineuchar unsigned char#defineuint unsigned intuint yushe_yanwu=1000,tihuan;//ADC预设值uchar yanwu; //用于读取ADC数据//运行模式 uchar Mode=0; //=1是设置温度阀值 =2是设置ADC阀值=0是正常监控模式//管脚声明sbit Led_Reg =P2^2; //红灯sbit Led_Yellow =P2^4; //黄灯sbit Buzzer=P2^0; //蜂鸣器sbit Fan=P3^3; //sbit JDQ=P3^1; ///********************************************************************* 名称 : delay_1ms()* 功能 : 延时1ms函数* 输入 : q* 输出 : 无***********************************************************************/void delay_ms(uint q){uint i,j;for(i=0;i<q;i++)for(j=0;j<110;j++);}/***********************************************************************************************************LCD1602相关函数***********************************************************************************************************///LCD管脚声明 (RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平)sbit LCDRS = P2^7;sbit LCDEN = P2^6;sbit D0 = P0^0;sbit D1 = P0^1;sbit D2 = P0^2;sbit D3 = P0^3;sbit D4 = P0^4;sbit D5 = P0^5;sbit D6 = P0^6;sbit D7 = P0^7;//LCD延时void LCDdelay(uint z) //该延时大约100us(不精确,液晶操作的延时不要求很精确){uint x,y;for(x=z;x>0;x--)for(y=10;y>0;y--);}void LCD_WriteData(u8 dat) {if(dat&0x01)D0=1;else D0=0;if(dat&0x02)D1=1;else D1=0;if(dat&0x04)D2=1;else D2=0;if(dat&0x08)D3=1;else D3=0;if(dat&0x10)D4=1;else D4=0;if(dat&0x20)D5=1;else D5=0;if(dat&0x40)D6=1;else D6=0;if(dat&0x80)D7=1;else D7=0;}//写命令void write_com(uchar com){LCDRS=0; LCD_WriteData(com);// DAT=com;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;}//写数据void write_data(uchar date){LCDRS=1;LCD_WriteData(date);// DAT=date;LCDdelay(5);LCDEN=1;LCDdelay(5);LCDEN=0;}/*------------------------------------------------选择写入位置------------------------------------------------*/void SelectPosition(unsigned char x,unsigned char y) {if (x == 0) {write_com(0x80 + y);//表示第一行}else {write_com(0xC0 + y);//表示第二行} }/*------------------------------------------------写入字符串函数------------------------------------------------*/void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) {SelectPosition(x,y) ;while (*s) {write_data( *s);s ++;}}//========================================================================// 函数: void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l)// 应用: LCD_Write_Char(0,1,366,4) ;// 描述: 在第0行第一个字节位置显示366的后4位,显示结果为 0366// 参数: x:行,y:列,s:要显示的字,l:显示的位数// 返回: none.// 版本: VER1.0// 日期: -4-1// 备注: 最大显示65535//========================================================================void LCD_Write_Char(u8 x,u8 y,u16 s,u8 l) {SelectPosition(x,y) ;if(l>=5)write_data(0x30+s/10000%10);//万位if(l>=4)write_data(0x30+s/1000%10);//千位if(l>=3)write_data(0x30+s/100%10);//百位if(l>=2)write_data(0x30+s/10%10);//十位if(l>=1)write_data(0x30+s%10);//个位}/*1602指令简介write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁write_com(0x0d);//打开显示 阴影闪烁write_com(0x0d);//打开显示 阴影闪烁*///1602初始化void Init1602(){uchar i=0;write_com(0x38);//屏幕初始化write_com(0x0c);//打开显示 无光标 无光标闪烁write_com(0x06);//当读或写一个字符是指针后一一位write_com(0x01);//清屏}void Display_1602(yushe_yanwu,temp){//显示预设温度//显示预设ADCLCD_Write_Char(0,12,yushe_yanwu,4) ;//时时ADCLCD_Write_Char(1,12,temp,4) ;}

【毕业设计】47-基于单片机的锅炉过热汽温控制系统设计(原理图工程+仿真工程+源代码+答辩论文)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。