基于at89s52单片机的温室控制系统设计内容摘要:
开关 8 路A/D转换器 三态输出锁存器 地址锁存与译码器 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 A B C ALE VREF(+) VREF() OE EOC D0 D1 D2 D3 D4 D5 D6 D7 CLK ST 12 IN026IN127IN228IN31IN42IN53IN64IN75ADDA25ADDB24ADDC23ALE22VREF+12VREF16CLOCK10START6EOC7OUT021OUT120OUT219OUT318OUT48OUT515OUT614OUT717OE9VCC11GND13U8ADC0809+5VOUT[0..7]wendu clockstartoeeoc+5VAD 转换电路 引脚结构 IN0- IN7: 8 条模拟量输入通道引脚结构 ADC0809 对输入模拟量要求:信号单极 性,电压范围是 0- 5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线: 4 条 ALE 为地址锁存允许输入线,高电平有效。 当 ALE 线为高电平时,地址锁存与译码器将 A, B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。 A,B 和 C 为地址输入线,用于选通 IN0- IN7 上的一路模拟量输入。 通道选择表如表 3 所示。 C B A 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 表 3 数字量输出及控制线: 11 条 ST 为转换启动信号。 当 ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行 A/D 转换;在转换期间, ST 应保持低电平。 EOC 为转换结束信号。 当 EOC 为高电平时,表明转换结束;否则,表明正在进行 A/D 转换。 OE 为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。 OE= 1,输出转换得到的数据; OE= 0,输出数据线呈高阻状态。 D7- D0为数字量输出线。 CLK 为时钟输入信号线。 因 ADC0809 的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为 500KHZ, VREF(+), VREF(-)为参考电压输入。 ADC0809应用说明 ① ADC0809 内部带有输出锁存器,可以与 AT89S51 单 13 片机直接相连。 ② 初始化时,使 ST 和 OE 信号全为低电平。 ③ 送要转换的哪一通道的地址到 A, B, C 端口上。 ④ 在 ST 端给出一个至少有 100ns 宽的正脉冲信号。 ⑤ 是否转换完毕,我们根据 EOC 信号来判断。 ⑥ 当 EOC 变为高电平时,给 OE 为高电平,转换的数据就输出给单片机。 ADC0809 设计电路如图 36 所示: 图 36 ADC0809 电路图 按键输入和显示模块 按键输入 需用 4 个按钮对植物的 最适宜温度范围进行设定, 所以系统直接采用非编码方式,无需使用键盘,为了降低抖动所产生的噪声,采用 RC 电路来控制抖动 电压 ,这种方式简单 而又有效,所增加成本和电路复杂度都不高,是一种实用的硬件防抖电路。 如图 37 所示: S3TH+S4THS5TL+S6TL10KR1210KR1310KR1410KR15C14C15C16C17+5V按键 RC 去抖电路TH+ TH TL+ TL 图 37 RC 按键输入电路 显示模块 系统采用 LCD1602,显示当前温度,植物适宜温度 TH和 TL,及加热和降温的占空比, 14 P0 和 作为输出口,控制 LCD 显示器, 如图 38 所示: VSS1VDD2VEE3RS4RW5E6D07D18D29D310D411D512D613D714U9 LCD1602+5VLRS LRW LEa b c d e f g hLCD 显示电路 图 38 LCD1602 显示电路 输出控制电路 用两个 LED 指示加热或制冷的状态, 51 单片机的低电平驱动能力较强, LED 可以直接连接单片机的 I/O 口 ;单片机输出 PWM 波经驱动电路从而控制加热或制冷 的转速的大小,当温度过高过低时,产生声、光提示,其电路如下图 39 和 310 所示: EN A6EN B11IN15IN27IN310IN412OUT12OUT23OUT313OUT414ISEN A1ISEN B15VS4VSS9GND8U1L298100nFC2220uFC1D2IN4148D3IN4148D4IN4148D5IN4148D8IN4148D9IN4148D10IN4148D11IN4148+12V+12V+5VO1 O2 O3 O4O1O2O3O4+5V电机驱动执行电路MB1MotorDS1LampI1I2I3I4O1O2O3 O4 图 39 驱动执行电路 15 LS1SpeakerQ19013+5VD6RED220R2D7GREEN220R3+5Vred greenspeaker报警提示电路D1YELLOW 图 310 报警和提示电路 温室控制系统硬件原理图 有上述各个模块的硬件设计得出温室控制系统总体原理图 见附录一。 4 .温室控制系统软件设计 程序设计思想 由系统设计要求可得出任务需求, 我们通过分析总结得出以下功能, 如表 4 所示 : 工作模式 适宜温度 实际温度 制冷电机 加热灯泡 红灯 绿灯 声光 报警 正常 15— 25 20 不工作 不工作 灭 灭 不报警 加热 15— 25 11 不工作 工作 亮 灭 不报警 制冷 15— 25 30 工作 不工作 灭 亮 不报警 高温报警 15— 25 38 工作 不工作 灭 亮 报警 低温报警 15— 25 0 不工作 工作 亮 灭 报警 表 4 16 主程序流程图 主程序流程图如 图 41 所示 : 开 始系 统 初 始 化调 用 滤 波 函 数 , 读 温度 当 前 值当 前 温 度 与 前 一 次是 否 相 等将 本 次 温 度 赋 给 上 次调 用 温 度 控 制 执 行 程 序调 用 L C D 显 示调 用 键 盘 程 序 设 置 T H 和 T L是 否 有 键 按 下清 按 键 标 志 位调 用 温 度 控 制 执 行 程 序调 用 L C D 显 示 YNNY 图 41 主程序流程图 主程序 实现的功能是调用各个子函数,实现循环控制 ,对温度实时采集。 中断程序流程图 T0 中断流程图如图 42 所示: 17 中 断 入 口对 A d C l o c k 取 反中 断 结 束 图 42 T0 中断流程图 T0 中断 实现的功能是给 ADC0809 提供时钟信号 ,对温度信号采样。 T1 中断流程图如图 43 所示: 中 断 入 口重 装 初 值是 否 报 警 对 B e e p 取 反是 否 加 热 驱 动 加 热 灯 泡是 否 降 温 驱 动 降 温 电 机中 断 结 束YNYNYN 图 43 T1 中断流程图 T1 中断 实现的功能是产生 PWM 控制信号 ,控制电机和灯泡的降温和加热程度。 平均中值 滤波法 平均中值 滤波法是对某一参数连续采样 N次 ,然后把 N次采样值按从小到大的顺序排队, 18 再去掉较大值和较小值,然后再给其余值求平均值。 该滤波法适合于去掉偶然因素引起的波动及采样器不稳定而引起的脉动干扰,可以精确地采集到实时温度。 具体程序 流程图如 42 所示 : 连 续 采 集 1 0 次 数 据1 0 次 数 据 从 大 到 小 排 序去 掉 最 大 和 最 小 各 两 个 数 据对 中 间 六 个 数 据 求 其 平 均 值返 回 结 果开 始 图 42 滤波流程图 温室系统仿真 测试 通过各个模块的搭建,得出系统仿真测试图如下: 19 图 51 系统仿真原理图 功能 测试 当温度传感器采集到数据时会在 LCD 上显示当前温度,同时 LCD 上显示出温室温度适宜范围TH 和 TL 且有当前温度占空比显示,如图 52 所示: 图 52 温度显示 R 显示占空比, T 显示当前温度, TH、 TL 显示温室温度适宜范围。 当温度低于 TL 的温度时,会有加热器加热且有灯光 提示 ,如图 53 所示: 20 图 53 升温显示 当温度高于 TH 的温度时,会有降温器降温且有灯光提示 ,如图 54 所示: 图 54 降温显示 当温度高于温室温度 35℃ 和 温度低于 5℃低温时,不但有自动升温降温显示,同时还有 声,光报警提示 ,如图 55 所示: 图 55 声光报警显示 通过 4 个按键分别控制温室温度适宜范围 TH 和 TL,如图 56 所示: 21 图 56 温 室温度调整显示 测试总结 在硬件电路设计的时候考虑了很多实际上的问题,比如按键输入,采用 RC 去抖电路,但去不知道 RC 的参数如何去确定,通过自己的查找资料学习,通过按键去抖时间及 RC 充电常数,最终通过计算设计出 R=10K, C=。 此外还有驱动电路的设计,考虑内阻,发热情况,驱动电流等综合因数来选择,每一个设计都要让理论和实际相结合。 在软件上选择 ADC 芯片时要考虑其分辨率及采样时间,看是否吻合温度的采集。 在写程序时,要先画好流程图,把每个模块弄好,然后再综合调试,采用自底而下的设计方案。 在用 一个芯片时,首先在掌握它的功能和用法,然后才可以如何去编写程序,去实现我们要完成的功能,在不断地学习和实践中完成。 22 通过此次计算机 控制技术的课程设计 ,我们学会了怎样把所学的书本知识应。基于at89s52单片机的温室控制系统设计
相关推荐
(记时器 1 外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) 在 flash编程和校验时, P3口也接收一些控制信号。 此外, P3口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 ⑵ 其他引脚说明: ▪RST:复位输入。 晶振工作时, RST 脚持续 2 个机器周期高电平将使单片机复位。 看门狗计时完成后, RST 脚输出 96 个晶振周期的高电平。
,包括强电部分的供电电源和弱电部分的驱动电源。 驱动电机主要靠供给逆变器的动力电,逆变器由滞环比较器输出的控制信号按一定规律触发导通,将动力电加到电机绕组上控制电机拖动负载运行 [4]。 2. DSP 控制的硬件基础以 DSP 为基 础构建电机控制系统,其硬件资源包括 :信号检测与转换、系统接口、 PWM 控制器等。 控制系统中信号检测是必不可少的,尤其是在闭环控制系统中,状态信息的检测更加重要
子内容。 论坛系统 前台模块 后台模块 注册登陆模块 浏览 贴子模块 发帖回帖模块 论坛管理模块 版块管理模块 用户管理模块 11 搜索需要的帖子。 这些行为是用户读取论坛的版块及其帖子的相关信息,设计成浏览版块。 3. 发帖回帖 ,也可以回复已有的帖子,同时可以编辑自 己写的帖子内容。 这些行为是用户参与论坛讨论,发表自己见解的,设计为发帖回帖模块。 对于管理员,需要负责整个论坛的正常运转
0 1 71 0E 注 : 由于用 MAX7219 驱动译码,所以,本文选用共阴极数码管,只显示 09,如果要用 7 段数码显示器显示多位数字,就用 MAX7219 来驱动,下一节MAX7219 的驱动。 详情请参考上一节。 驱动芯片的简介 MAX7219 是 MAXMI 公司生产的一种串行接口方式 7 段共阴极 LED显示驱动器。 其片内包含有一个 BCD 码到 B 码的译码器
INC R0 RL A DJNZ R7,DSP1 RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H 主程序主程序主要进行按键识别和进行子程序模块的调用,程序清单如下:;函数名 :START ;程序入口:无 ; 出口:无START:SETB K1 JB K1,$ LCALL DELAY10 SETB K1 JB K1,START
K9 0 1 8 1NP N9 0 1 8 2NP NC1( 1 ) 图 32 放大电路 波形变换和整形电路 为了把要检测的正弦波、三角波、方波等各种波形的正负交替的信号波形变换成可被单片机接受的 TTL/CMOS兼容信号。 采用数字芯片( 74HC00)。 数字芯片( 74HC00)是 TTL2输入端四与非门,高电平 4V,低电平 1V。 其引脚功能如表31所示。 74HC00功能表,如图表