课程设计(论文)-基于单片机的温度控制系统.doc_第1页
课程设计(论文)-基于单片机的温度控制系统.doc_第2页
课程设计(论文)-基于单片机的温度控制系统.doc_第3页
课程设计(论文)-基于单片机的温度控制系统.doc_第4页
课程设计(论文)-基于单片机的温度控制系统.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的温室温度控制系统专 业:电 信 班级学号:08级2班指导教师:余秋菊 学 生:谢宝辉 史龙嘉 牛威 曹金凤 李花晶目 录第1节:引言2第2节 系统硬件模块化设计42.1 系统硬件结构42.2信号采集模块52.3 显示模块6第3节 系统的软件设计7温度控制系统程序8第四节、结束语22第五节、参考文献22 第1节:引言一、设计题目:基于单片机的温室温度控制系统 二、设计任务查找资料,确定蔬菜大棚温室在植物生长的不同阶段所需的温度范围与控制精度,并以此为依据设计以单片机为核心的温度控制系统。要求:1写出温度控制过程,绘制控制系统组成框图2选择性能、价格合适的器件,给出温度检测与控制电路3、编写温度检测与控制程序框图三、设计说明书的内容设计题目与设计任务(设计任务书)前言(绪论)(设计的目的、意义等)主体设计部分结束语参考文献前言蔬菜是人民生活中不可缺少的副食品,人们要求周年不断供应新鲜、多样的蔬菜产品,仅靠露地栽培是很难达到目的的,尤其是我国北方地区无霜期短,而长江流域地区虽然冬季露地能生产一些耐寒蔬菜,但种类单调,且若遇冬季寒潮或夏秋暴雨,连绵阴雨等灾害性天气,则早春育苗和秋冬蔬菜生产都可能会受到较大的损失,影响蔬菜的供应。大棚栽培蔬菜可促进早熟、丰产和延长供应期,是人类征服自然、扩大蔬菜生产、实现周年供应的一种有效途径,是发展三高农业、振兴农村经济的组成部分,是现代农业的标志之一。 而利用大棚进行蔬菜栽培可利用保护设备在冬、春、秋进行蔬菜生产,以获得多样化的蔬菜产品,可提早和延迟蔬菜的供应期,能对调节蔬菜周年均衡供应,满足人们的需要起重要作用,随着人们生活条件的不断改善,人们更关注自身的健康,绿色蔬菜尤其受到重视。大棚种植充分满足了人们的需求,但对于和农作物生长密切相关的大棚温度的控制,对大部分没有专业知识的农民来说着实是一件头疼的事。基于单片机的大棚种植的温度控制系统,能顺利解决长期以来困扰农民的问题,它不仅便于农民操作,更重要的是,在无形之中提高了作物的产量,增加了农民的收入,满足了人们对大棚蔬菜的需求。大棚蔬菜满足了人民能一年四季吃到新鲜蔬菜的愿望,为提供更多量、更有营养价值的蔬菜,智能的大棚温度控制系统已成为农民的迫切需要。以89s52单片机为主的温度控制系统可对大棚内部的温度和蔬菜所需的正常温度进行比较,以人性化的方式向大棚管理人员提供温度调节的信息,帮助农民提高农作物的产量,减少农民的工作量。温度控制系统采用89s52单片机为核心。大棚温度经温度传感器采样后变换为模拟电压信号,经低通滤波滤掉干扰信号后送放大器,信号放大后送模/数转换器转换为数字信号送单片机,单片机根据输入的温度得出结果,片提醒农民作出适当的温度调节。该系统成本低,操作方便,设计人性化,具有良好的推广价值。第2节 系统硬件模块化设计2.1 系统硬件结构p10p11p12p10p11p12p13p13p14p14l1l2l3r1r2r3r4r1r2r3r4l1l2l3xtal218xtal119ale30ea31psen29rst9p0.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/txd11p3.2/int012p3.3/int113p3.4/t014p3.7/rd17p3.6/wr16p3.5/t115u180c51ain2ref+1ref-3sdo6cs5sclk7u2tlc549+5vd03q02d14q15d27q26d38q39d413q412d514q515d617q616d718q719oe1clk11u374ls374d03q02d14q15d27q26d38q39d413q412d514q515d617q616d718q719oe1clk11u474ls374234567891rp1respack-8+5v16%rv11krv1(3)数据采集部分1234567890#123abcdsw1sw-spdtbuz1buzzerd1led-redq1fmmth10r1pullupabcd2.2信号采集模块主机控制ds18b20完成温度转换必须经过三个步骤:初始化、rom操作指令、存储器操作指令。必须先启动ds18b20开始转换,再读出温度转换值。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送tplsb单元,低位字节送tpmsb单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。 2.3 显示模块将at89s52接到排阻上,然后接到74ls374上,最后连接到数码管显示器上。(1)respack8一般接在89s52单片机的p0口,因为p0口内部没有上拉电阻,不能输出高电平,所以要接上拉电阻。排阻就是好多电阻连载一起,他们有一个公共端。(2)74ls374具有三态输出的边沿触发器,374输出端o0o7可直接与总线相连,当三态允许控制端oe为低电平,o0o7为正常逻辑状态,可用来驱动负载总线。oe为高电平,o0o7高阻态,不驱动总线负载。当时钟端脉冲上升没作用下,o随数据d而变。本次试验,采用两个74ls374芯片,一个用作段选u3,控制八位数码管的各段显示管,另一个用作片选u4。(3)数码管显示电路。2.4键盘模块将键盘与at89s52连接到一起,如硬件连接图连接方式连接电路。键盘作为可输入设定值,在之后的模块中与检测到的温度值作比较。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_lcd12864_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_lcd12864_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 != 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_lcd12864checkbusy_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_lcd12864sendcmd_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 ; 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+ ) ; /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); return(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();tpmsb=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; 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( 1,0, 温度报警器) ; v_lcd12864putstring_f( 0,1, 机械电子工程系) ; v_lcd12864putstring_f( 1,2, 电子信息工程) ; v_lcd12864putstring_f( 0,3, 2 08级2 班) ; 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=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_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,0, 温度:)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论