1、目 录第一部分 设计任务与调研31.毕业设计的主要任务32.设计的思路和方法33.调研的目的4第二部分 设计说明51.单片机最小系统设计52.温度传感器的选型和设定103.显示与报警电路设计114.系统软件设计14第三部分 设计成果161.系统仿真162.程序代码17第四部分 结束语22第五部分 致谢23第六部分 参考文献24第一部分 设计任务与调研1.毕业设计的主要任务本设计的主要任务是设计一个温室大棚的温度智能监测系统,其应具有以下主要功能:(1)可以自行设定所要监测的温度值;(2)实际温度与设定监测的温度相差在不同范围内做出不同的提示:1)不大于1时,绿灯常亮;2)不小于3时,红灯常亮;
2、3)大于1且小于3时,绿灯闪烁。(3)LCD显示温室内的实时温度。2.设计的思路和方法思路该系统通过单片机接受温度传感器测量的温度信号,并进行控制,依托自动化设备维修实训中心的AT89C51系列单片机实训设备充分运用所学专业知识和实践技能,详细制定设计方案和阶段进度计划,通过程序设计、模拟调试、修订完善,完成基于单片机的温室大棚智能监测系统的硬件与软件设计,仿真调试。方法手段:文献检索参考、图书馆借阅、手册查询、设备选型、AT89C51系列单片机编程、实训室程序调试; 步骤:分析工艺与控制流程、分析控制要求与方式、分析系统设计的原则和方法、确定AT89C51的封装和引脚功能、存储空间配置和功能
3、、复位电路和时钟电路、硬件系统设计、软件程序设计、 绘制程序设计流程图、程序调试。3.调研的目的在工业设计、农业生产、国防安全等行业,环境参数的监测都有着非常广泛的实际应用。因为使用的环境不同、采集的参数不同,其系统设计也有着很大不同。在现代实际生活和发展中这一系统的应用十分广泛,温度和湿度是室温大棚环境检测系统中两个举足轻重的显示和判断指标,需要对温度和湿度进行定期的抽样检测和分析,从而采用合理的方法进行应对。现如今,国内外的温湿度检测器件种类五花八门,而且拥有比较广泛的应用,再加上现代科技不断发展的单片机和大规模集成电路技术,随之产生了可行性比较高、稳定性比较高的单片环境参数采集体系。随着
4、国内外社会的不断发展和进步,很多人对现有所处的生活环境要求变得越来越严格。为了让人们在一年四季都能吃到优质的蔬菜,在培育蔬菜的温室大棚中,对这一点要求尤其严格。运用单片机的温室大棚监控系统的设计,将对大棚中环境的温湿度监控进行具体的设计与实现。在智能测试器件、工业生产操控、机械统一控制等方面,AT89C51单片机是很好的控制芯片,在很多温湿度监控系统的实际应用也比较常见。用AT89C51单片机实现温湿度实时的自动监控和显示不仅性能良好,而且价格也非常便宜。同时,在学习和应用中,AT89C51单片机也易于掌握。使用这一监控系统,可以对温室大棚内的温湿度变化及时、精确的监控和显示以及更重要的报警功
5、能。在温室大棚当中采用此系统对植物的生活环境进行了时刻的监控,以便能对植物提供更加适宜的环境。第二部分 设计说明1. 单片机最小系统设计1.1 AT89C51单片机的简介MCS-51系列单片机最基础的成果是8031/8051/8751(8031/8051/8751是对应的低功耗单片机以及其增强产品8032/8052/8752)。它们具有品种全、兼容性强、性价比高等特点,然而它们却是8位的单片机,同时具有足够齐全丰富的软硬件应用设计内容,在国内外设计人员中都有所认识。在1980年到1990年期间,MCS-51系列单片机是中国设计运用非常普遍的单片机机型。图2-1 AT89C51单片机实物图中央微
6、处理机AT89C51:它是一个消耗功率低、运行性能高的CMOS8位单片计算机。拥有4K字节的ISP(在一些系统中可以编程成片状)的Flash程序存储器只读反复1000次。使用Atmel高密度不容易丢失的存储器设备、匹配准则、制造技术、一系列MCS-51指令系统和80C51引脚的基本结构,通用8位CPU和ISP闪存存储单元,AT89C51强大的计算机可以为许多嵌入式控制应用系统提供高可比性的解决方案。AT89C51具有以下特点:看门狗(WDT)电路,片内时钟振荡器,2个16位可编程定时计数器,40个引脚,2层中断嵌套中断,32个外部双向输入/输出(I/O)口,2个全双工串行通信口,128字节的R
7、AM,4000字节BytesFlash片内程序存储器, 5个中断优先级。此外,振荡频率在AT89C51中,也相应地进行了设计和配置。而且运用软件设置合理的省电模式。在掉电模式下,振荡器停止工作来保护RAM的数据,阻止其他芯片功能,直到外部中断或硬件复位被激活。空闲模式下,RAM定时器/计数器、串行端口和中断系统可继续工作。但是中央处理器就会结束工作。而且,该芯片包含三种封装:PDIP,TQFP和PLCC。根据现实的选择需求,并且也考虑到了整个系统的设计和精致的成本,因此在本系统的设计中采用 AT89C51单片机作为整个系统的控制器,因为它的价格便宜、运行也比较可靠。1.2 AT89C51单片机
8、的引脚介绍AT89C51的引脚封装如图1-2所示。AT89C51共40个引脚,可划分为以下3种:电源及时钟引脚:VCC、VSS;XTAL1、XTAL2。控制引脚:PSEN、ALE/PROG、EA/VPP、RST。I/O口引脚:P0、P1、P2、P3,为4个8位I/O口的外部引脚。图2-2 AT89C51单片机引脚分布图1.3 各引脚功能简单介绍VCC:供电电压;GND:接地;P0口:P0口为一个8位漏级开路双向I/O口,每个管脚可吸收8TTL门电流。当P1口的管脚写“1”时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FLASH编程时,P0口作为原码输
9、入口,当FLASH进行校验时,P0输出原码,此时P0外部电位必须被拉高;P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入“1”后,电位被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收;P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚电位被内部上拉电阻拉高,且作为输入。作为输入时,P2口的管脚电位被外部拉低,将输出电流,这是由于内部上拉的缘故。P2口当用于外部程序存储器或
10、16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0)P3.3IN
11、T1(外部中断1)P3.4T0(记时器0外部输入)P3.5T1(记时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)同时P3口同时为闪烁编程和编程校验接收一些控制信号;RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高平时间;ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想
12、禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令时ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效;PSEN:外部程序存储器的选通信号。在由外部程序存储器取址期间,每个机器周期PSEN两次有效。但在访问内部部数据存储器时,这两次有效的PSEN信号将不出现;EA/VPP:当EA保持低电平时,访问外部ROM;注意加密方式1时,EA将内部锁定为RESET;当EA端保持高电平时,访问内部ROM。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP);XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2
13、:来自反向振荡器的输出。1.4时钟电路设计AT89C51单片机的每个模块的运作均是依靠时钟信号为统一标准,按先后顺序、一定规则地操作。所以单片机的运行速度会被时钟频率非间接影响,单片机系统的稳定性也会被时钟电路的质量非间接影响。在AT89C51单片机中,高增益反相放大器是为了产生内部震荡的,XTAL1是它的输入端,XTAL2是它的输出端。二者之间接有12M的石英晶体和30pF的电容,以此来形成一个相对稳定的振荡器。而外部时钟方式时,XTAL2端悬空,它的外部时钟电源将会接到XTAL1端。时钟电路如图2-3所示。XTAL1XTAL2VCC12MC330pf图2-3单片机AT89C51的时钟电路图
14、1.5复位电路设计单片机的初始化运作是复位,在RST复位端上外加两个机器周期可使单片机复位。复位电路通常采用两种方式自动复位和复位按钮。电源由电容C添加到复位端短的高电平信号,信号逐渐下降与VCC电容C充电时间RST充电过程,在这一高度的持续时间取决于电容C。因此,为了保证系统能够可靠地复位,在EST引脚高水平必须保持足够长的时间。有两种类型的复位方式,手动按钮和水平脉冲复位。复位电路如图2-4所示图2-4 单片机的复位电路图2.温度传感器的选型和设定2.1温度传感器的设定常用的温度传感器有热敏电阻、热电偶、PN结温度传感器、集成温度传感器、热电阻等。对于温室内部温度的检测,温度传感器选择DA
15、LLAS公司生产的一线制数字,它具有3引脚TO92小体积封装形式;温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出。如图2-5所示,DS18B20有三个引脚,GND接地;DQ数字信号的输出/输入;Vdd为外接电源输入端。VCCBQGNDVCC4.7KLSDS18B20图2-5 温度传感器DS18B20引脚图2.2温度采集电路由于DS18B20只有一个串行通信接口,与单片机的连接电路非常简单,只需和单片机的一个I/O端口连接即可,本系统选择了接口接的是P2.0端口,其连接电路图如图2-6所示。DS18B20的I/
16、O口属于漏极开路输出,外接上拉电阻后常态下呈高电平。该器件内含寄生电源,其供电方式可以选择寄生电源方式,也可以选用外部电源。为方便起见,采用外部电源供电。图2-6温度检测电路图3.显示与报警电路设计3.1 液晶显示电路设计LCD1602液晶是一类特定用来显示符号、字母、数字等的点阵型液晶模块,是由很多点阵字符位组成,但是只能显示字符不能显示图像,而且只能显示两行。1602实物图如图2-7所示。图2-7 LCD1602实物图LCD1602主要技术参数如下:(1)显示容量:162个字符;(2)芯片工作电压:4.55.5V;(3)工作电流:2.0mA(5.0V);(4)模块最佳工作电压:5.0V;(
17、5)字符尺寸:2.954.35(WH)mm;(6)LCD1602采用标准的16脚(带背光)或14脚(无背光)接口。以下是每个引脚端情况:第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,当对比度比较高的时候会出现“鬼影”,调整对比度时便可调节一个10000的变阻器。第4脚:RS是寄存器选择端口,高电平是数据寄存器的选择,低电平是指令寄存器的选择。第5脚:R/W为读写数据线,高电平为读操作,低电平为写操作。假如RS和R/W同一时间均是低电平,便可以写入指令或者显示地址。第6脚:E端为使能端口,如果E端从高电平变为低电
18、平的时候,此液晶模块执行相应的命令。第714脚:这八个脚为八位双向通信的数据线。第15脚:背光源正极。第16脚:背光源负极。LCD1602与AT89C51的电路连接方式如图2-8所示。图2-8 LCD1602与AT89C51电路连接图3.2 蜂鸣器报警电路本设计采用峰鸣音报警电路。如图2-9所示。蜂鸣器额定电流30Ma,而对于AT89C51单片机,P3口的灌电流为15mA,由此可见,仅靠单片机的P3口电流是不能驱动蜂鸣器的,必须使用晶体管放大电路,为了使单片机的功率更小,所以使用PNP型晶体管,当外部环境的温度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫。图2-9 监测温度设置电路4.系统
19、软件设计4.1 设计思路该系统通过单片机接受温度传感器测量的温度信号,并进行控制,依托自动化设备维修实训中心的AT89C51系列单片机实训设备充分运用所学专业知识和实践技能,详细制定设计方案和阶段进度计划,通过程序设计、模拟调试、修订完善,完成基于单片机的温室大棚智能监测系统的硬件与软件设计,仿真调试。4.2 程序模块分析主程序:主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。读取温度子程序:读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。主要
20、包括以下三个命令:1写暂存器命令【4EH】这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。所有数据必须在复位脉冲前写完。即如果只想写一个字节的数据到地址2,可按如下流程:初始化写0CCH,跳过ROM检测写4EH写1字节数据复位,即向DQ输出480960us低电平2读暂存命令【BEH】这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程3转换温度命令【44H】这个命令启动温度转换过程。转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令,DS
21、18B20将输出0直到转换完成,转换完成后将输出1。4.3 温度监测系统流程图系统开始上电启动,蜂鸣器得电鸣一声,LCD显示屏也得电初始化,用温度采集模块采集实时温度,单片机自动检测程序自动检测,判断实时温度与设定温度的差值,当实时温度比设定温度大于3时,红灯长亮,报警器报警,控制设备(降温系统)启动,直到恢复设定值为止。当实时温度比设定温度小于1时,绿灯常亮,当实时温度比设定温度大于1且小于3时,绿灯闪烁,提醒人们温度的范围,经过LCD显示屏显示出来,及结束程序。见下图2-10。系统启动蜂鸣器鸣叫LCD初始化温度采集自动检测判断实时温度 与设定温度值之差大于3红灯长亮绿灯长亮小于1大于1小于
22、3蜂鸣器报警绿灯闪烁LCD显示程序结束图2-10系统软件流程图23第三部分 设计成果1.系统仿真如图3-1所示,建立了一个以单片机,温度传感器,LCD显示屏,及报警器为一个整体来实现温室大棚温度的自动控制和智能监测。图3-1 系统仿真电路图2.程序代码DQBITP3.71wireline(p3.7引脚接DS18B20并置位)swpHequ0d2H(等值伪指令赋值高温与低温)swpLequ0ffHWDLSBDATA30HWDMSBDATA31H*ORG0000H(设置目标程序起始地址)LJMPMAINORG000BHLJMPTMR0;Timer0isr*(T0中断服务循环)TMR0:MOVTH0
23、,#swpHMOVTL0,#swpLJB21H,DSLMOVP0,42H ORLP0,#00100000BSJMPEXITDSL: MOVP0,43H ORLP0,#00010000BEXIT: CPL21HRETI(主程序)MAIN:TOINIT: CLREA MOVTMOD,#01HMOVTH0,#swpHMOVTL0,#swpLSETBEASETBET0SETBTR0*MOVR2,#2MOVR0,#42HOVER:MOVR0,#00H;INCR0DJNZR2,OVER(循环判断)LOOP: LCALLDSWD(调用子程序从DS18B20中读取温度)SJMPLOOP;*(从DS18B20中
24、读温度)DSWD:LCALLRSTSNR;InitoftheDS18B20JNBF0,KENDMOVR0,#0CCHLCALLSEND_BYTEMOVR0,#44HLCALLSEND_BYTE;SendaConvertCommandSETBEAMOV48H,#1SS2:MOV49H,#255SS1:MOV4AH,#255SS0:DJNZ4AH,SS0DJNZ49H,SS1DJNZ48H,SS2CLREALCALLRSTSNRJNBF0,KENDMOVR0,#0CCHLCALLSEND_BYTEMOVR0,#0BEHLCALLSEND_BYTE;SendReadScratchpadcommand
25、LCALLREAD_BYTE;ReadthelowbytefromscratchpadMOVWDLSB,A;保留低温LCALLREAD_BYTE;ReadthehighbytefromscratchpadMOVWDMSB,A;保留高温LCALLTRANS12KEND:SETBEARET;*;TRANS12:MOVA,30HANLA,#0F0HMOV3AH,AMOVA,31HANLA,#0FHORLA,3AHSWAPAMOVB,#10DIVAB;MOV42H,AMOV43H,BMOVb,#10DIVabMOV42H,BMOV41H,ARET;*;Sendabytetothe1wirelineSE
26、ND_BYTE:MOVA,R0MOVR5,#8SEN3: CLRCRRCAJCSEN1LCALLWRITE_0SJMPSEN2SEN1:LCALLWRITE_1SEN2:DJNZR5,SEN3RET;*;Readabytefromthe1wirelineREAD_BYTE:MOVR5,#8READ1:LCALLREADRRCADJNZR5,READ1MOVR0,ARET;*;Reset1wirelineRSTSNR:SETBDQNOPNOPCLRDQMOVR6,#250DJNZR6,$MOVR6,#50DJNZR6,$SETBDQMOVR6,#15DJNZR6,$CALLCHCKMOVR6,#
27、60DJNZR6,$SETBDQRET;* (低温子程序)CHCK: MOVC,DQJCRST0SETBF0SJMPCHCK0RST0: CLRF0CHCK0: RET;*WRITE_0:CLRDQMOVR6,#30DJNZR6,$SETBDQRET;*WRITE_1:CLRDQNOPNOPNOPNOPNOPSETBDQMOVR6,#30DJNZR6,$RET;*READ: SETBDQNOPNOPCLRDQNOPNOPSETBDQNOPNOPNOPNOPNOPNOPNOPMOVC,DQMOVR6,#23DJNZR6,$RET;*DELAY10: MOVR4,#20 (动态显示用于延时)D2:
28、 MOVR5,#30DJNZR5,$DJNZR4,D2RETend第四部分 结束语以上为毕业课题所设计的温室大棚智能控制控制系统,在通过不断地设计与调试后,基本要求还是设计出来了。系统是采用AT89C51单片机、DS18B20数字温度传感器、LCD1602液晶显示模块和蜂鸣器等器件实现的温室大棚智能监控系统,实现了温度采集、数据显示的功能。本次设计基本实现了前期设定的要求,使用AT89C51单片机对温室大棚内的温湿度进行数据的采集、接收,处理、发送和控制。单片机采用汇编语言程序,建立模块化结构,各模块互相独立,有较高的可靠性和扩展性。系统能够随时对温室大棚内的温度进行采集和显示。总体来说相对比
29、较成功,只是在后期的调试中遇到了一点小麻烦,由于时间和经验的不足,技术水平有限,只涉及硬件设计,具体设计还有不足之处,但就是这一点使整个系统不能正常运行,得不出想要的结果,更拖累了设计的进程。千里之堤毁于蚁穴,因此在设计中每一步骤每一过程都应做到百分之百的正确,只有这样最终的成果才能成功体现。第五部分 致谢经过几个月的忙碌和学习,本次毕业设计已经接近尾声。作为一个大专生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有指导教师的的督促和悉心指导,想要完成这个毕业设计是难以想象的。现在我发现,自身的成长离不开大家的支持和帮助,我很庆幸自己生活在这样的空间。我要向那些帮助过我、鼓励过
30、我的人们致以我最诚挚的谢意。首先感谢老师,这次毕业设计中,作为我的指导老师,虽然平日里工作繁多,但在我做毕业设计的每个阶段,从选题到查阅资料,还有设计说明书提纲的确定以及中期设计说明书的修改、后期设计说明书格式调整等各个环节中都给予了我悉心的指导。他严谨的工作作风,渊博的知识,还有平易近人的人格魅力将会对我影响深远。除此之外还让我明白了许多做人的道理。编写毕业设计是一个学习的过程,设计的完成,奠定了我的能力,它会帮助我在今后的工作与学习当中更加有自信。最后,感谢这两年中陪我一起走过的各位老师和同学们,你们的信任和慰勉是我前进的动力!也要感谢我的朋友们,感谢你们在我失意时给我鼓励,在失落时给我支
31、持,感谢你们和我一路走来,在此过程中我倍感温暖!为了那些支持和爱护我的人,我会更加努力,好好学习!好好工作!好好生活!在此我要向我的指导老师,和小组的同学们致以真挚的谢意,感谢谢你们的大力支持和帮助。 第六部分 参考文献【1】 基于单片机的温度控制系统设计J林国汉微计算机信息,2009(25):21-24【2】 基于单片机的大棚温湿度控制系统设计J.易顺明现代电子技术,2011(7):7-15【3】 单片机原理及应用M张毅刚北京:高等教育出版社,2008,12-106【4】MCS-51系列单片微型计算机及其应用(第四版)M孙育才南京:东南大学出版社,2004,56-58【5】电工学电子技术(第7版)M秦曾煌北京:高等教育出版社,2008,34-80【6】C程序设计(第4版)M谭浩强北京:清华大学出版社,2007,21-95