推荐-畜舍通风换气风机自动控制设计 精品 精品
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机原理课程设计报告题目:畜舍通风换气风机自动控制设计学生姓名:刘桂奇
学号:20XX17010121
专业班级:计算机科学与技术08101班
同组姓名: 王国策
指导教师:杨红杰
设计时间:20XX年上学期第19周指导老师意见:
评定成绩:签名:
日期:年月日
目录
一、设计前言
1.1设计目的意义
随着智能畜禽农业规模的不断扩大,环境的好坏对农业产品健康的影响逐步地体现出来,只有创造一个空气新鲜,温、湿度适宜,干暖舒适的环境条件,才能让农业产品更好的生长,保持旺盛,发病率降低,获得较高的增长速度和转换率,创造较高的经济效益。因此,调控好室内空气、湿度和温度等环境,是农业产品管理的最根本问题。
1.2设计任务
通过A/D采集并存储蓄舍温度,根据蓄舍温度要求,通过D/A输出控制信号,控制风机的转速及风机的启动、停止,实现蓄舍温度及空气的自动调节。
1.3设计要求
(1)当温度≤18℃,风机不转动,并且四个红灯闪烁。
(2)当18℃<温度≤20℃,启动风机低速转动。
(3)当20℃<温度≤25℃,启动风机中速转动。
(4)当25℃<温度≤30℃,启动风机高速转动。
(5)当温度超过30℃,红色发光二极管全亮、喇叭连续发声报警。
(6)用直流电机带动风机,计算机输出的数字量经D/A转换后变为高、中、低三种电压,控制直流风机的三种转速。
二、总体设计
使用可编程并行接口8255对实验箱上的温度检测芯片DS18B20进行控制和数据传输,编写程序对数据进行读取并转换为相应的BCD码,判断从外界采集的温度并根据此温度与所在的不同区间的温度来调用的相应的子程序,并利用DA0832进行数模转换来控制风机的转动。利用8255PA端口控制LED灯的显示、
PC端口(C1)进行蜂鸣器的控制,并提取温度转换为非压缩的BCD码,显示到八段数码管上。
该设计主要分为以下几个主要功能模块:
2.1温度数据采集模块
本模块利用实验箱自带的数字温度计DS18B20测量温度,程序通过可编程并行接口8255的PC0口对DS18B20写读写命令,并将读到的温度数据从PC0口按位读取出来,存放在AX寄存器内。
2.2 温度转换及显示模块
本模块将数据采集模块得到的温度数值首先转换为BCD码,提取温度数据,转换为非压缩型BCD码。具体转换过程可参考附录II的核心代码的BCD转换部分。转换完后调用Display8在八段数码管上显示温度。
2.3 LED显示控制模块
根据此次课程设计的目的与要求,当温度超过30℃时,红色发光二极管闪烁。
用8255的PA端口来控制红灯亮,中间再调用一个延时,可以从视觉上
看出红灯闪烁。具体过程可参考附录中的程度代码。
2.4蜂鸣器控制模块
根据此次课程设计的目的与要求,当温度值大于30℃时,要控制蜂鸣器做出报警。本程序是利用8255PC端口(PC1)来控制蜂鸣器发出报警声音。
2.5直流电机控制模块
根据此次课程设计的目的与要求,当温度超过20℃小于25℃时,要控制风机低速转动。当温度超过25℃小于30℃时,要控制风机中速转动,当温度超过30℃时,要控制风机高速转动。设计中通过不同区间数据的比较,给低、中、高三种不同的转速赋予不同的电压值传送给DA0832,利用DA0832控制直流电机转动,由于输出高电平功率较小,导致无法自动驱动电机转动,所以在输出之后接试验箱的功放模块,放大功率后,输出高电平可自动驱动直流电机转动。
三、课程设计过程
3.1硬件设计
3.1.1硬件电路连线
表1硬件连线
3.2软件设计
软件部分利用实验箱为运行平台,运用汇编指令编写。控制程序主要包括温
度数据采集模块、温度转换及显示模块、LED显示控制模块、蜂鸣器控制模块、风机控制模块等。初始化程序包含:8255初始化程序、18B20初始化子程序。
四、系统测试
4.1系统调试
按照硬件连线连接电路,为方便调试,将程序内的温度区间作了调整。将原来设计要求里的<=10℃暂时设定为18℃到20℃,10℃到30℃设定为25℃到30℃。系统启动后,温度传感器得到当前室温,但是温度过低。之后给温度采集模块的Ctrl引脚一定的电压,手动升温,当温度到20℃不超过25℃风机开始低速转动,当温度到了25℃但不超过30℃时,风机开始中速转动,当温度超过30℃时,此时蜂鸣器开始发出报警声,红色发光二极管开始闪烁,表示温度过高。
4.2过程调试
在调试过程中,虽然遇到了很多的问题,程序代码有错误,线路连接的不恰当等,通过老师和同学的帮助,出通过查一些资料,最终解决了这些问题。完成了设计。
4.2.1蜂鸣器控制问题
设计中,当温度低于20℃或者温度大于40℃时,需要控制蜂鸣器报警,设计初期想利用可编程并行接口8255的PC1口输出低电平控制蜂鸣器,但是调试过程中发现,由于程序运行过程中需要对8255不断的进行初始化操作,导致PC1口的电平不稳定,使蜂鸣器不能很好的控制,通过查资料,修改设计,利用PC1、PC2 、PC3输出高电平,接74LS138译码器控制蜂鸣器报警,这样就能很好的解决该问题。
4.2.2电机控制问题
调试中,由于室内的温度过低,在要求的温度范围内带动风机不能转动,所以决定加上一定的电压使采集的温度不至少于太低,经过调试后,由于输出的功率不高,带动风机转动不明显,所以在DA0832的输出端口OUT端连上了功放电
路,这时当温度在某个区间时,风机就可以明显地看出转速的快慢。由此解决了电机的控制问题。
4.3.3发光管问题
设计中,利用可编程并行接口8255的PA口控制发光管。当需要某一颜色的发光管常亮时,其他的发光管需要处于熄灭状态,但通过调试发现,实际运行过程中,当某一颜色的发光管常亮时,其他发光管长时间处于熄灭状态,但还会出现一个短暂的点亮的过程,导致其他发光管出现闪烁,后来经过请教老师得知,由于程序运行过程中需要对8255不断的进行初始化操作,每次初始化,8255的PA口会输出高电平,导致某些发光管出现短暂的闪烁,解决方法是可以使用另外一个可编程并行接口8255,用这个8255的PA口来控制发光管,程序运行过程不会多次对这个8255初始化,所以不会再出现上一个问题。经过测试,这样做可以解决该问题。
五、程序代码清单
.MODEL TINY
;连线
;8255 CS-->CS1
; 8255.PC.0-->18B20.TOUT
; A0-->A0
; A1-->A1
;18B20 18B20.TOUT-->8255.PC.7
CON_8255 EQU 0F003H
PC_8255 EQU 0F002H
PB_8255 EQU 0F001H
PA_8255 EQU 0F000H
DA0832 EQU 0D000H
EXTRN DISPLAY8:NEAR
.STACK 300
.DATA
VOLTAGE DB 0
BUFFER DB 8 DUP(0) ;温度临时存放区