课程设计(论文)基于单片机的温度控制系统.doc

上传人:仙人指路1688 文档编号:3993509 上传时间:2023-03-30 格式:DOC 页数:22 大小:233.50KB
返回 下载 相关 举报
课程设计(论文)基于单片机的温度控制系统.doc_第1页
第1页 / 共22页
课程设计(论文)基于单片机的温度控制系统.doc_第2页
第2页 / 共22页
课程设计(论文)基于单片机的温度控制系统.doc_第3页
第3页 / 共22页
课程设计(论文)基于单片机的温度控制系统.doc_第4页
第4页 / 共22页
课程设计(论文)基于单片机的温度控制系统.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《课程设计(论文)基于单片机的温度控制系统.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)基于单片机的温度控制系统.doc(22页珍藏版)》请在三一办公上搜索。

1、基于单片机的温室温度控制系统专 业:电 信 班级学号:08级2班指导教师:余秋菊 学 生:谢宝辉 史龙嘉 牛威 曹金凤 李花晶目 录第1节:引言2第2节 系统硬件模块化设计42.1 系统硬件结构42.2信号采集模块52.3 显示模块6第3节 系统的软件设计7温度控制系统程序8第四节、结束语22第五节、参考文献22 第1节:引言一、设计题目:基于单片机的温室温度控制系统 二、设计任务查找资料,确定蔬菜大棚温室在植物生长的不同阶段所需的温度范围与控制精度,并以此为依据设计以单片机为核心的温度控制系统。要求:1写出温度控制过程,绘制控制系统组成框图2选择性能、价格合适的器件,给出温度检测与控制电路3

2、、编写温度检测与控制程序框图三、设计说明书的内容设计题目与设计任务(设计任务书)前言(绪论)(设计的目的、意义等)主体设计部分结束语参考文献前言蔬菜是人民生活中不可缺少的副食品,人们要求周年不断供应新鲜、多样的蔬菜产品,仅靠露地栽培是很难达到目的的,尤其是我国北方地区无霜期短,而长江流域地区虽然冬季露地能生产一些耐寒蔬菜,但种类单调,且若遇冬季寒潮或夏秋暴雨,连绵阴雨等灾害性天气,则早春育苗和秋冬蔬菜生产都可能会受到较大的损失,影响蔬菜的供应。大棚栽培蔬菜可促进早熟、丰产和延长供应期,是人类征服自然、扩大蔬菜生产、实现周年供应的一种有效途径,是发展三高农业、振兴农村经济的组成部分,是现代农业的

3、标志之一。 而利用大棚进行蔬菜栽培可利用保护设备在冬、春、秋进行蔬菜生产,以获得多样化的蔬菜产品,可提早和延迟蔬菜的供应期,能对调节蔬菜周年均衡供应,满足人们的需要起重要作用,随着人们生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需求,但对于和农作物生长密切相关的大棚温度的控制,对大部分没有专业知识的农民来说着实是一件头疼的事。基于单片机的大棚种植的温度控制系统,能顺利解决长期以来困扰农民的问题,它不仅便于农民操作,更重要的是,在无形之中提高了作物的产量,增加了农民的收入,满足了人们对大棚蔬菜的需求。大棚蔬菜满足了人民能一年四季吃到新鲜蔬菜的愿望,为提

4、供更多量、更有营养价值的蔬菜,智能的大棚温度控制系统已成为农民的迫切需要。以89S52单片机为主的温度控制系统可对大棚内部的温度和蔬菜所需的正常温度进行比较,以人性化的方式向大棚管理人员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。温度控制系统采用89S52单片机为核心。大棚温度经温度传感器采样后变换为模拟电压信号,经低通滤波滤掉干扰信号后送放大器,信号放大后送模/数转换器转换为数字信号送单片机,单片机根据输入的温度得出结果,片提醒农民作出适当的温度调节。该系统成本低,操作方便,设计人性化,具有良好的推广价值。第2节 系统硬件模块化设计2.1 系统硬件结构P10P11P12P

5、10P11P12P13P13P14P14l1l2l3r1r2r3r4r1r2r3r4l1l2l3XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P

6、3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115U180C51AIN2REF+1REF-3SDO6CS5SCLK7U2TLC549+5vD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1CLK11U374LS374D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1CLK11U474LS374234567891RP1RESPACK-8+5v16%RV11kRV1(3)数据采集部分123456789

7、0#123ABCDSW1SW-SPDTBUZ1BUZZERD1LED-REDQ1FMMTH10R1PULLUPABCD2.2信号采集模块主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送tplsb单元,低位字节送tpmsb单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。 2.3 显示模块将AT89S52接到排阻上,然后接到74LS374上,最后连接到数码管显示器上。(1)RESPACK8一

8、般接在89S52单片机的P0口,因为P0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。排阻就是好多电阻连载一起,他们有一个公共端。(2)74LS374具有三态输出的边沿触发器,374输出端O0O7可直接与总线相连,当三态允许控制端OE为低电平,O0O7为正常逻辑状态,可用来驱动负载总线。OE为高电平,O0O7高阻态,不驱动总线负载。当时钟端脉冲上升没作用下,O随数据D而变。本次试验,采用两个74LS374芯片,一个用作段选U3,控制八位数码管的各段显示管,另一个用作片选U4。(3)数码管显示电路。2.4键盘模块将键盘与AT89S52连接到一起,如硬件连接图连接方式连接电路。键盘作为可输

9、入设定值,在之后的模块中与检测到的温度值作比较。2.5转换模块当SW 接于高电平时,选择数码显示模块,当SW接于低电平时,选择键盘设定值模块。硬件设施很简单,在AT89S52的P1.7口引出一条线,让它控制选择个模块。第3节 系统的软件设计3.1 系统控制流程图开始系统初始化键盘设定温度值显示温度采集模拟温度A/D转换模拟量设定值?PWM控制加热功率声音报警32温度控制系统程序 #include #include #define unit unsigned int#define uchar unsigned charsbit io_LCD12864_RS = P10 ;sbit io_LCD1

10、2864_RW = P11 ;sbit io_LCD12864_EN = P12 ;sbit bj=P15;sbit DQ=P16;#define io_LCD12864_DATAPORT P0#define SET_DATA io_LCD12864_RS = 1 ;#define SET_INC io_LCD12864_RS = 0 ;#define SET_READ io_LCD12864_RW = 1 ;#define SET_WRITE io_LCD12864_RW = 0 ;#define SET_EN io_LCD12864_EN = 1 ;#define CLR_EN io_LC

11、D12864_EN = 0 ; unit Temperature=0,Temp_H=0, Temp_L=0; uchar tplsb,tpmsb;void int_converter_char(unsigned int i) Temp_H=i/10+48; Temp_L=i%10+48; void v_Lcd12864CheckBusy_f( void ) /忙检测函数 unsigned int nTimeOut = 0 ; SET_INC SET_READ CLR_EN SET_EN while( ( io_LCD12864_DATAPORT & 0x80 ) & ( +nTimeOut !

12、= 0 ) ) ; CLR_EN SET_INC SET_READvoid v_Lcd12864SendCmd_f( unsigned char byCmd ) /发送命令 v_Lcd12864CheckBusy_f() ; SET_INC SET_WRITE CLR_EN io_LCD12864_DATAPORT = byCmd ; _nop_(); _nop_(); SET_EN _nop_(); _nop_(); CLR_EN SET_READ SET_INCvoid v_Lcd12864SendData_f( unsigned char byData ) /发送数据 v_Lcd1286

13、4CheckBusy_f() ; SET_DATA SET_WRITE CLR_EN io_LCD12864_DATAPORT = byData ; _nop_(); _nop_(); SET_EN nop_(); _nop_(); CLR_EN SET_READ SET_INCvoid delay(uchar z) /延时函数0 uchar x,y; for(x=z;x0;x-) for(y=125;y0;y-);void v_Lcd12864Init_f( void ) /初始化 v_Lcd12864SendCmd_f( 0x30 ) ; /基本指令集 delay( 50 ) ; v_Lc

14、d12864SendCmd_f( 0x01 ) ; /清屏 delay( 50) ; v_Lcd12864SendCmd_f( 0x06 ) ; /光标右移 delay( 50 ) ; v_Lcd12864SendCmd_f( 0x0c ) ; /开显示void v_Lcd12864SetAddress_f( unsigned char x, y ) /地址转换 unsigned char byAddress ; switch( y ) case 0 : byAddress = 0x80 + x ; break; case 1 : byAddress = 0x90 + x ; break ;

15、case 2 : byAddress = 0x88 + x ; break ; case 3 : byAddress = 0x98 + x ; break ; default : break ; v_Lcd12864SendCmd_f( byAddress ) ; void v_Lcd12864PutString_f( unsigned char x, unsigned char y, unsigned char *pData ) v_Lcd12864SetAddress_f( x, y ) ; while( *pData != 0 ) v_Lcd12864SendData_f( *pData

16、+ ) ; /DS18B20 void TxReset(void)unit i;DQ=0;i=100;while(i0) i-;DQ=1;i=4;while(i0) i-;void RxWait(void)unit i;while (DQ);while (DQ);i=4;while(i0) i-;bit Rdbit(void)unit i;bit b;DQ=0;i+;DQ=1;i+;i+;b=DQ;i=8;while(i0) i-;return (b);uchar RdByte(void)uchar i,j,b;b=0;for(i=1;i=8;i+)j=Rdbit();b=(j1); retu

17、rn(b);void WrByte(uchar b)unit i;uchar j;bit btmp;for(j=1;j1;if(btmp)DQ=0;i+;i+;DQ=1;i=8;while(i0) i-;elseDQ=0;i=8;while(i0) i-;DQ=1;i+;i+;void convert(void)TxReset();RxWait();delay(1);WrByte(0xcc);WrByte(0x44);void RdTemp(void)TxReset();RxWait();delay(1);WrByte(0xcc);WrByte(0xbe);tplsb=RdByte();tpm

18、sb=RdByte();void main( void ) unit p; bj=1; v_Lcd12864Init_f() ; v_Lcd12864PutString_f( 0,0, 西安文理学院) ; v_Lcd12864PutString_f( 0,1, Xian University) ; v_Lcd12864PutString_f( 1,2, of Arts and) ; v_Lcd12864PutString_f( 0,3, 1 Science) ; p=90000; while(p-)p=90000; while(p-) p=90000; while(p-) p=90000; w

19、hile(p-) p=90000; while(p-)p=190000; while(p-) while(p-) p=90000; while(p-) p=90000; while(p-)p=90000; while(p-) v_Lcd12864Init_f() ; v_Lcd12864PutString_f( 1,0, 温度报警器) ; v_Lcd12864PutString_f( 0,1, 机械电子工程系) ; v_Lcd12864PutString_f( 1,2, 电子信息工程) ; v_Lcd12864PutString_f( 0,3, 2 08级2 班) ; p=90000; whi

20、le(p-) p=90000; while(p-)p=90000; while(p-) p=90000; while(p-) p=90000; while(p-) p=90000; while(p-)p=190000; while(p-) while(p-) p=90000; while(p-) p=90000; while(p-)p=90000; while(p-) v_Lcd12864Init_f() ; v_Lcd12864PutString_f( 0,0, 成员:) ; v_Lcd12864PutString_f( 1,1, 谢宝辉 曹金凤) ; v_Lcd12864PutString

21、_f( 1,2, 牛 威 李花晶) ; v_Lcd12864PutString_f( 1,3, 史龙嘉) ; p=90000; while(p-) p=90000; while(p-)p=90000; while(p-) p=90000; while(p-) p=90000; while(p-) p=90000; while(p-)p=90000; while(p-) while(p-) p=90000; while(p-) p=90000; while(p-)p=90000; while(p-) do v_Lcd12864Init_f() ; v_Lcd12864PutString_f( 0

22、,0, 温度:) ; delay(1);convert(); delay(600);RdTemp(); Temperature=(unit)(tpmsb%8*16+tplsb/16); int_converter_char(Temperature); / delay( 5000); v_Lcd12864SetAddress_f(5,1); v_Lcd12864SendData_f(Temp_H); v_Lcd12864SendData_f(Temp_L); if(Temperature33) unit i,j; for(i=0;i3;i+) v_Lcd12864Init_f() ; v_Lcd

23、12864PutString_f( 1,1, 温度太高!) ; for(j=0;j111;j+) delay(1000); /调用延时 bj=bj; /取反输出到喇叭的信号 bj=0; while( 1 ) ;第四节、结束语本次课程设计,我们小组完成了基于单片机的温度控制系统,了解了大棚内温度控制系统的重要意义和控制原理,大棚种植不仅提高了产量,也丰富了每个季节的果蔬品种,提高了农业生产总值,提高了农民的收入,是利国利民的好事,应该在全国范围内推广普及!基于80c51单片机的温度控制系统通过采集现场温度和设定温度进行比较,采用PID控制温度,若采集温度超过设定温度则报警,否则加热,温度相差越大加热功率越高。在两个星期时间内,我们小组成功完成了仿真实验。在设计过程中我们变得更耐心,更严谨,更科学,更懂得团队合作!此次课程设计让我们印象深刻!第五节、参考文献模拟电子技术,数字电子技术,单片机原理,自动控制系统。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号