资源描述
目 录
第一部分 设计任务与调研 3
1.毕业设计的主要任务 3
2.设计的思路和方法 3
3.调研的目的 4
第二部分 设计说明 5
1.单片机最小系统设计 5
2.温度传感器的选型和设定 10
3.显示与报警电路设计 11
4.系统软件设计 14
第三部分 设计成果 16
1.系统仿真 16
2.程序代码 17
第四部分 结束语 22
第五部分 致谢 23
第六部分 参考文献 24
第一部分 设计任务与调研
1.毕业设计的主要任务
本设计的主要任务是设计一个温室大棚的温度智能监测系统,其应具有以下主要功能:
(1)可以自行设定所要监测的温度值;
(2)实际温度与设定监测的温度相差在不同范围内做出不同的提示:
1)不大于1℃时,绿灯常亮;
2)不小于3℃时,红灯常亮;
3)大于1℃且小于3℃时,绿灯闪烁。
(3)LCD显示温室内的实时温度。
2.设计的思路和方法
思路∶该系统通过单片机接受温度传感器测量的温度信号,并进行控制,依托自动化设备维修实训中心的AT89C51系列单片机实训设备充分运用所学专业知识和实践技能,详细制定设计方案和阶段进度计划,通过程序设计、模拟调试、修订完善,完成基于单片机的温室大棚智能监测系统的硬件与软件设计,仿真调试。
方法手段:文献检索参考、图书馆借阅、手册查询、设备选型、AT89C51系列单片机编程、实训室程序调试;
步骤:分析工艺与控制流程、分析控制要求与方式、分析系统设计的原则和方法、确定AT89C51的封装和引脚功能、存储空间配置和功能、复位电路和时钟电路、硬件系统设计、软件程序设计、 绘制程序设计流程图、程序调试。
3.调研的目的
在工业设计、农业生产、国防安全等行业,环境参数的监测都有着非常广泛的实际应用。因为使用的环境不同、采集的参数不同,其系统设计也有着很大不同。在现代实际生活和发展中这一系统的应用十分广泛,温度和湿度是室温大棚环境检测系统中两个举足轻重的显示和判断指标,需要对温度和湿度进行定期的抽样检测和分析,从而采用合理的方法进行应对。
现如今,国内外的温湿度检测器件种类五花八门,而且拥有比较广泛的应用,再加上现代科技不断发展的单片机和大规模集成电路技术,随之产生了可行性比较高、稳定性比较高的单片环境参数采集体系。随着国内外社会的不断发展和进步,很多人对现有所处的生活环境要求变得越来越严格。为了让人们在一年四季都能吃到优质的蔬菜,在培育蔬菜的温室大棚中,对这一点要求尤其严格。运用单片机的温室大棚监控系统的设计,将对大棚中环境的温湿度监控进行具体的设计与实现。
在智能测试器件、工业生产操控、机械统一控制等方面,AT89C51单片机是很好的控制芯片,在很多温湿度监控系统的实际应用也比较常见。用AT89C51单片机实现温湿度实时的自动监控和显示不仅性能良好,而且价格也非常便宜。同时,在学习和应用中,AT89C51单片机也易于掌握。使用这一监控系统,可以对温室大棚内的温湿度变化及时、精确的监控和显示以及更重要的报警功能。在温室大棚当中采用此系统对植物的生活环境进行了时刻的监控,以便能对植物提供更加适宜的环境。
第二部分 设计说明
1. 单片机最小系统设计
1.1 AT89C51单片机的简介
MCS-51系列单片机最基础的成果是8031/8051/8751(8031/8051/8751是对应的低功耗单片机以及其增强产品8032/8052/8752)。它们具有品种全、兼容性强、性价比高等特点,然而它们却是8位的单片机,同时具有足够齐全丰富的软硬件应用设计内容,在国内外设计人员中都有所认识。在1980年到1990年期间,MCS-51系列单片机是中国设计运用非常普遍的单片机机型。
图2-1 AT89C51单片机实物图
中央微处理机AT89C51:它是一个消耗功率低、运行性能高的CMOS 8位单片计算机。拥有4K字节的ISP(在一些系统中可以编程成片状)的Flash程序存储器只读反复1000次。使用Atmel高密度不容易丢失的存储器设备、匹配准则、制造技术、一系列MCS-51指令系统和80C51引脚的基本结构,通用8位CPU和ISP闪存存储单元,AT89C51强大的计算机可以为许多嵌入式控制应用系统提供高可比性的解决方案。AT89C51具有以下特点:看门狗(WDT)电路,片内时钟振荡器,2个16位可编程定时计数器,40个引脚,2层中断嵌套中断,32个外部双向输入/输出(I/O)口,2个全双工串行通信口,128字节的RAM,4000字节Bytes Flash片内程序存储器, 5个中断优先级。
此外,振荡频率在AT89C51中,也相应地进行了设计和配置。而且运用软件设置合理的省电模式。在掉电模式下,振荡器停止工作来保护RAM的数据,阻止其他芯片功能,直到外部中断或硬件复位被激活。空闲模式下,RAM定时器/计数器、串行端口和中断系统可继续工作。但是中央处理器就会结束工作。
而且,该芯片包含三种封装:PDIP,TQFP和PLCC。根据现实的选择需求,并且也考虑到了整个系统的设计和精致的成本,因此在本系统的设计中采用 AT89C51单片机作为整个系统的控制器,因为它的价格便宜、运行也比较可靠。
1.2 AT89C51单片机的引脚介绍
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口作为原码输入口,当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口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉的优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号;
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入时,由于外部下拉为低电平,P3口将输出电流(ILL),也是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口:
P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 WR (外部数据存储器写选通) P3.7 RD (外部数据存储器读选通)
同时P3口同时为闪烁编程和编程校验接收一些控制信号;
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高平
时间; ALE / PROG :当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止 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:来自反向振荡器的输出。
1.4时钟电路设计
AT89C51单片机的每个模块的运作均是依靠时钟信号为统一标准,按先后顺序、一定规则地操作。所以单片机的运行速度会被时钟频率非间接影响,单片机系统的稳定性也会被时钟电路的质量非间接影响。在AT89C51单片机中,高增益反相放大器是为了产生内部震荡的,XTAL1是它的输入端,XTAL2是它的输出端。二者之间接有12M的石英晶体和30pF的电容,以此来形成一个相对稳定的振荡器。而外部时钟方式时,XTAL2端悬空,它的外部时钟电源将会接到XTAL1端。时钟电路如图2-3所示。
XTAL1
XTAL2
VCC
12M
C3
30pf
图2-3单片机AT89C51的时钟电路图
1.5复位电路设计
单片机的初始化运作是复位,在RST复位端上外加两个机器周期可使单片机复位。复位电路通常采用两种方式自动复位和复位按钮。电源由电容C添加到复位端短的高电平信号,信号逐渐下降与VCC电容C充电时间RST充电过程,在这一高度的持续时间取决于电容C。因此,为了保证系统能够可靠地复位,在EST引脚高水平必须保持足够长的时间。有两种类型的复位方式,手动按钮和水平脉冲复位。复位电路如图2-4所示
图2-4 单片机的复位电路图
2.温度传感器的选型和设定
2.1温度传感器的设定
常用的温度传感器有热敏电阻、热电偶、PN结温度传感器、集成温度传感器、热电阻等。对于温室内部温度的检测,温度传感器选择DALLAS公司生产的一线制数字,它具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。
如图2-5所示,DS18B20有三个引脚,GND接地;DQ数字信号的输出/输入;Vdd为外接电源输入端。
VCC
BQ
GND
VCC
4.7K
LS
DS18B20
图2-5 温度传感器DS18B20引脚图
2.2温度采集电路
由于DS18B20只有一个串行通信接口,与单片机的连接电路非常简单,只需和单片机的一个I/O端口连接即可,本系统选择了接口接的是P2.0端口,其连接电路图如图2-6所示。DS18B20的I/O口属于漏极开路输出,外接上拉电阻后常态下呈高电平。该器件内含寄生电源,其供电方式可以选择寄生电源方式,也可以选用外部电源。为方便起见,采用外部电源供电。
图2-6温度检测电路图
3.显示与报警电路设计
3.1 液晶显示电路设计
LCD1602液晶是一类特定用来显示符号、字母、数字等的点阵型液晶模块,是由很多点阵字符位组成,但是只能显示字符不能显示图像,而且只能显示两行。1602实物图如图2-7所示。
图2-7 LCD1602实物图
LCD1602主要技术参数如下:
(1) 显示容量:16×2个字符;(2) 芯片工作电压:4.5~5.5V;(3) 工作电流:2.0mA(5.0V);(4) 模块最佳工作电压:5.0V;(5) 字符尺寸:2.95×4.35(W×H)mm;(6) LCD1602采用标准的16脚(带背光)或14脚(无背光)接口。
以下是每个引脚端情况: 第1脚:VSS为地电源。 第2脚:VDD接5V正电源。
第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,当对比度比较高的时候会出现“鬼影”,调整对比度时便可调节一个10000的变阻器。
第4脚:RS是寄存器选择端口,高电平是数据寄存器的选择,低电平是指令寄存器的选择。
第5脚:R/W为读写数据线,高电平为读操作,低电平为写操作。假如RS和R/W同一时间均是低电平,便可以写入指令或者显示地址。
第6脚:E端为使能端口,如果E端从高电平变为低电平的时候,此液晶模块执行相应的命令。
第7~14脚:这八个脚为八位双向通信的数据线。
第15脚:背光源正极。
第16脚:背光源负极。
LCD1602与AT89C51的电路连接方式如图2-8所示。
图2-8 LCD1602与AT89C51电路连接图
3.2 蜂鸣器报警电路
本设计采用峰鸣音报警电路。如图2-9所示。蜂鸣器额定电流≤30Ma,而对于AT89C51单片机,P3口的灌电流为15mA,由此可见,仅靠单片机的P3口电流是不能驱动蜂鸣器的,必须使用晶体管放大电路,为了使单片机的功率更小,所以使用PNP型晶体管,当外部环境的温度超过预设值的时候,基级变为低电平,蜂鸣器导通鸣叫。
图2-9 监测温度设置电路
4.系统软件设计
4.1 设计思路
该系统通过单片机接受温度传感器测量的温度信号,并进行控制,依托自动化设备维修实训中心的AT89C51系列单片机实训设备充分运用所学专业知识和实践技能,详细制定设计方案和阶段进度计划,通过程序设计、模拟调试、修订完善,完成基于单片机的温室大棚智能监测系统的硬件与软件设计,仿真调试。
4.2 程序模块分析
主程序:主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度。
读取温度子程序:读取温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。主要包括以下三个命令:
1.写暂存器命令 【4EH】
这个命令为由TH寄存器开始向DS18B20暂存器写入数据,4EH命令后的3字节数据将被保存到暂存器的地址2、3、4(TH、TL、CONFIG)三个字节。所有数据必须在复位脉冲前写完。即如果只想写一个字节的数据到地址2,可按如下流程:
初始化→写0CCH,跳过ROM检测→写4EH→写1字节数据→复位,即向DQ输出480~960us低电平
2.读暂存命令【BEH】
这个命令由字节0读取9个暂存器内容,如果不需要读取所有暂存内容,可随时输出复位脉冲终止读取过程
3.转换温度命令【44H】
这个命令启动温度转换过程。转换温度时DS18B20保持空闲状态,此时如果单片机发出读命令, DS18B20将输出0直到转换完成,转换完成后将输出1。
4.3 温度监测系统流程图
系统开始上电启动,蜂鸣器得电鸣一声,LCD显示屏也得电初始化,用温度采集模块采集实时温度,单片机自动检测程序自动检测,判断实时温度与设定温度的差值,当实时温度比设定温度大于3℃时,红灯长亮,报警器报警,控制设备(降温系统)启动,直到恢复设定值为止。当实时温度比设定温度小于1℃时,绿灯常亮,当实时温度比设定温度大于1℃且小于3℃时,绿灯闪烁,提醒人们温度的范围,经过LCD显示屏显示出来,及结束程序。见下图2-10。
系统启动
蜂鸣器鸣叫
LCD初始化
温度采集
自动检测
判断实时温度 与设定温度值之差
大于3℃
红灯长亮
绿灯长亮
小于1℃
大于1℃小于3℃
蜂鸣器报警
绿灯闪烁
LCD显示
程序结束
图2-10系统软件流程图
23
第三部分 设计成果
1.系统仿真
如图3-1所示,建立了一个以单片机,温度传感器,LCD显示屏,及报警器为一个整体来实现温室大棚温度的自动控制和智能监测。
图3-1 系统仿真电路图
2.程序代码
DQ BIT P3.7 1 wire line (p3.7引脚接DS18B20 并置位)
swpH equ 0d2H (等值伪指令赋值高温与低温)
swpL equ 0ffH
WDLSB DATA 30H
WDMSB DATA 31H
***************************************************************
ORG 0000H (设置目标程序起始地址)
LJMP MAIN
ORG 000BH
LJMP TMR0 ; Timer0 isr
******************************************************** (T0中断服务循环)
TMR0: MOV TH0,#swpH
MOV TL0,#swpL
JB 21H,DSL
MOV P0,42H
ORL P0,#00100000B
SJMP EXIT
DSL:
MOV P0,43H
ORL P0,#00010000B
EXIT:
CPL 21H
RETI
(主程序)
MAIN:
TOINIT:
CLR EA
MOV TMOD,#01H
MOV TH0,#swpH
MOV TL0,#swpL
SETB EA
SETB ET0
SETB TR0
***********************************************************
MOV R2,#2
MOV R0,#42H OVER:
MOV @R0,#00H;
INC R0
DJNZ R2,OVER (循环判断)
LOOP:
LCALL DSWD (调用子程序从DS18B20中读取温度)
SJMP LOOP
;**********************************************************
(从DS18B20中读温度)
DSWD:
LCALL RSTSNR ; Init of the DS18B20
JNB F0,KEND
MOV R0,#0CCH
LCALL SEND_BYTE
MOV R0,#44H
LCALL SEND_BYTE ; Send a Convert Command
SETB EA
MOV 48H,#1
SS2:
MOV 49H,#255
SS1:
MOV 4AH,#255
SS0:
DJNZ 4AH,SS0
DJNZ 49H,SS1
DJNZ 48H,SS2
CLR EA
LCALL RSTSNR
JNB F0,KEND
MOV R0,#0CCH
LCALL SEND_BYTE
MOV R0,#0BEH
LCALL SEND_BYTE ; Send Read Scratchpad command
LCALL READ_BYTE ; Read the low byte from scratchpad
MOV WDLSB,A ; 保留低温
LCALL READ_BYTE ; Read the high byte from scratchpad
MOV WDMSB,A ; 保留高温
LCALL TRANS12
KEND:
SETB EA
RET
;**********************************************************
;
TRANS12:
MOV A,30H
ANL A,#0F0H
MOV 3AH,A
MOV A,31H
ANL A,#0FH
ORL A,3AH
SWAP A
MOV B,#10
DIV AB
;MOV 42H,A
MOV 43H,B
MOV b,#10
DIV ab
MOV 42H,B
MOV 41H,A
RET
;*************************************************
; Send a byte to the 1 wire line
SEND_BYTE:
MOV A,R0
MOV R5,#8
SEN3: CLR C
RRC A
JC SEN1
LCALL WRITE_0
SJMP SEN2
SEN1: LCALL WRITE_1
SEN2: DJNZ R5,SEN3
RET
;*************************************************
; Read a byte from the 1 wire line
READ_BYTE:
MOV R5,#8
READ1: LCALL READ
RRC A
DJNZ R5,READ1
MOV R0,A
RET
;************************************************* ;
Reset 1 wire line
RSTSNR: SETB DQ
NOP
NOP
CLR DQ
MOV R6,#250
DJNZ R6,$
MOV R6,#50
DJNZ R6,$
SETB DQ
MOV R6,#15
DJNZ R6,$
CALL CHCK
MOV R6,#60
DJNZ R6,$
SETB DQ
RET
;*************************************************
(低温子程序)
CHCK: MOV C,DQ
JC RST0
SETB F0
SJMP CHCK0
RST0: CLR F0
CHCK0: RET
;*************************************************
WRITE_0:
CLR DQ
MOV R6,#30
DJNZ R6,$
SETB DQ
RET
;*************************************************
WRITE_1:
CLR DQ
NOP
NOP
NOP
NOP
NOP
SETB DQ
MOV R6,#30
DJNZ R6,$
RET
;*************************************************
READ: SETB DQ
NOP
NOP
CLR DQ
NOP
NOP
SETB DQ
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,DQ
MOV R6,#23
DJNZ R6,$
RET
;**********************************************
DELAY10: MOV R4,#20 (动态显示用于延时)
D2: MOV R5,#30
DJNZ R5,$
DJNZ R4,D2
RET
end
第四部分 结束语
以上为毕业课题所设计的温室大棚智能控制控制系统,在通过不断地设计与调试后,基本要求还是设计出来了。系统是采用AT89C51单片机、DS18B20数字温度传感器、LCD1602液晶显示模块和蜂鸣器等器件实现的温室大棚智能监控系统,实现了温度采集、数据显示的功能。
本次设计基本实现了前期设定的要求,使用AT89C51单片机对温室大棚内的温湿度进行数据的采集、接收,处理、发送和控制。单片机采用汇编语言程序,建立模块化结构,各模块互相独立,有较高的可靠性和扩展性。系统能够随时对温室大棚内的温度进行采集和显示。总体来说相对比较成功,只是在后期的调试中遇到了一点小麻烦,由于时间和经验的不足,技术水平有限,只涉及硬件设计,具体设计还有不足之处,但就是这一点使整个系统不能正常运行,得不出想要的结果,更拖累了设计的进程。千里之堤毁于蚁穴,因此在设计中每一步骤每一过程都应做到百分之百的正确,只有这样最终的成果才能成功体现。第五部分 致谢
经过几个月的忙碌和学习,本次毕业设计已经接近尾声。作为一个大专生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有指导教师的的督促和悉心指导,想要完成这个毕业设计是难以想象的。
现在我发现,自身的成长离不开大家的支持和帮助,我很庆幸自己生活在这样的空间。我要向那些帮助过我、鼓励过我的人们致以我最诚挚的谢意。
首先感谢老师,这次毕业设计中,作为我的指导老师,虽然平日里工作繁多,但在我做毕业设计的每个阶段,从选题到查阅资料,还有设计说明书提纲的确定以及中期设计说明书的修改、后期设计说明书格式调整等各个环节中都给予了我悉心的指导。他严谨的工作作风,渊博的知识,还有平易近人的人格魅力将会对我影响深远。除此之外还让我明白了许多做人的道理。
编写毕业设计是一个学习的过程,设计的完成,奠定了我的能力,它会帮助我在今后的工作与学习当中更加有自信。
最后,感谢这两年中陪我一起走过的各位老师和同学们,你们的信任和慰勉是我前进的动力!也要感谢我的朋友们,感谢你们在我失意时给我鼓励,在失落时给我支持,感谢你们和我一路走来,在此过程中我倍感温暖!为了那些支持和爱护我的人,我会更加努力,好好学习!好好工作!好好生活!
在此我要向我的指导老师,和小组的同学们致以真挚的谢意,感谢谢你们的大力支持和帮助。
第六部分 参考文献
【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.
展开阅读全文