基于AT89C51单片机的蔬菜大棚温度控制系统设计 联系客服

发布时间 : 星期三 文章基于AT89C51单片机的蔬菜大棚温度控制系统设计更新完毕开始阅读2f1aa2ca05087632311212b4

应用了光耦合器,光耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。又由于光耦合器的输入端属于电流型工作的低阻元件,因而具有很强的共模抑制能力。所以,它在长线传输信息中作为终端隔离元件可以大大提高信噪比。在计算机数字通信及实时控制中作为信号隔离的接口器件,可以大大增加计算机工作的可靠性。所以选择光耦合器更安全控制更准确。 通过比较,我们选择方案二。 (五)报警模块

按照设计要求,当温度低于下限或高于上限时,应具有报警功能。这样就可以用一只蜂鸣器作为三极管 VT1 的集电极负载,当 VT1 导通时,蜂鸣器发出鸣叫声;VT1 截止时,蜂鸣器不发声。 1.3.2 系统各模块的最终方案

根据以上分析,结合器件和设备等因素,确定如下方案:

1. 采用AT89C51单片机作为控制器,分别对温度采集、数码管显示、温度设定、升温降温控制。

2. 温度测量模块采用数字温度传感器DS18B20。此器件经软件设置可以实现高分辨率测量。

3.电热炉和通风机控制采用光耦合器控制。 4. 显示用数码管显示实时温度值。 系统的基本框图如图1.1所示。

PC输入 温度采集 数码管显示

CPU(AT89C51)首先写入命令给DS18B20,然后DS18B20开始转换数据,转换后通过AT89C51来处理数据。数据处理后的结果就显示到数码管上。另外由键盘设定温度值送到单片机,单片机通过数据处理发出温度控制信息到继电器。

2. 系统硬件设计

2.1 单片机型号选择

单片机型号的选择是根据设计的内容而定的,并不是什么单片机都可以用。一方面要考虑选用的单片机能否在不需要外扩的情况下就可以满足要实现的功能。比如:单片机的存储器空间的大小、单片机的 I/O 口数等。另一方面还要考虑单片机的性价比,是否容易买到等一些外部因素。

由于实现该系统功能的程序不会超过 4K,而 AT89C51 单片机内部有 4K 的 FlASH 程序存储器和 2K 的数据存储器,因而不需要外扩程序存储器和数据存储器。并且该型号单片机程序下载方便、价格便宜的优点,因而被广泛的应用。AT89C51单片机引脚排列及功能见图 2-3 所示。

由图可知该单片机共有40个引脚,按其功能类别将他们分为三类: 1.电源和时钟引脚。如Vcc、GND、XTAL1、XTAL2。 2.编程控制引脚。如 RST、PSEN、ALE、 EA/Vpp。

3.I/O 口引脚。如 P0、P1、P2、P3,4 组 8 位 I/O 口。 管脚说明: VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,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外部输入)