ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:296.04KB ,
资源ID:6368818      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6368818.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(畜舍通风换气风机自动控制设计 精品.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

畜舍通风换气风机自动控制设计 精品.docx

1、畜舍通风换气风机自动控制设计 精品微机原理课程设计报告题 目: 畜舍通风换气风机自动控制设计 学生姓名: 刘桂奇 学 号: 200817010121 专业班级: 计算机科学与技术08101班 同组姓名: 王国策 指导教师: 杨红杰 设计时间: 2011年上学期第19周 指导老师意见:评定成绩: 签名: 日期: 年 月 日 目录一、设计前言 21.1设计目的意义 21.2设计任务 21.3设计要求 2二、总体设计 22.1温度数据采集模块 32.2 温度转换及显示模块 32.3 LED显示控制模块 42.4蜂鸣器控制模块 42.5直流电机控制模块 4三、课程设计过程 53.1硬件设计 53.2软

2、件设计 5四、系统测试 64.1系统调试 64.2过程调试 6五、程序代码清单 7六、课程设计总结 15一、设计前言1.1设计目的意义 随着智能畜禽农业规模的不断扩大,环境的好坏对农业产品健康的影响逐步地体现出来,只有创造一个空气新鲜,温、湿度适宜,干暖舒适的环境条件,才能让农业产品更好的生长,保持旺盛,发病率降低,获得较高的增长速度和转换率,创造较高的经济效益。因此,调控好室内空气、湿度和温度等环境,是农业产品管理的最根本问题 。1.2设计任务 通过A/D采集并存储蓄舍温度,根据蓄舍温度要求,通过D/A输出控制信号,控制风机的转速及风机的启动、停止,实现蓄舍温度及空气的自动调节。1.3设计要

3、求(1)当 温度18,风机不转动,并且四个红灯闪烁。(2)当18 温度 20,启动风机低速转动。(3)当20 温度 25,启动风机中速转动。(4)当25 温度 30,启动风机高速转动。(5)当温度超过30,红色发光二极管全亮、喇叭连续发声报警。(6)用直流电机带动风机,计算机输出的数字量经D/A转换后变为高、中、低三种电压,控制直流风机的三种转速。二、总体设计 使用可编程并行接口8255对实验箱上的温度检测芯片DS18B20进行控制和数据传输,编写程序对数据进行读取并转换为相应的BCD码,判断从外界采集的温度并根据此温度与所在的不同区间的温度来调用的相应的子程序,并利用DA0832进行数模转换

4、来控制风机的转动。利用8255PA端口控制LED灯的显示、PC端口(C1)进行蜂鸣器的控制,并提取温度转换为非压缩的BCD码,显示到八段数码管上。该设计主要分为以下几个主要功能模块:2.1温度数据采集模块本模块利用实验箱自带的数字温度计DS18B20测量温度,程序通过可编程并行接口8255的PC0口对DS18B20写读写命令,并将读到的温度数据从PC0口按位读取出来,存放在AX寄存器内。2.2 温度转换及显示模块本模块将数据采集模块得到的温度数值首先转换为BCD码,提取温度数据,转换为非压缩型BCD码。具体转换过程可参考附录的核心代码的BCD转换部分。转换完后调用Display8在八段数码管上

5、显示温度。2.3 LED显示控制模块根据此次课程设计的目的与要求,当温度超过30时,红色发光二极管闪烁。用8255的PA端口来控制红灯亮,中间再调用一个延时,可以从视觉上看出红灯闪烁。具体过程可参考附录中的程度代码。2.4蜂鸣器控制模块根据此次课程设计的目的与要求,当温度值大于30时,要控制蜂鸣器做出报警。本程序是利用8255PC端口(PC1)来控制蜂鸣器发出报警声音。2.5直流电机控制模块根据此次课程设计的目的与要求,当温度超过20小于25时,要控制风机低速转动。当温度超过25小于30时,要控制风机中速转动,当温度超过30时,要控制风机高速转动。设计中通过不同区间数据的比较,给低、中、高三种

6、不同的转速赋予不同的电压值传送给DA0832,利用DA0832控制直流电机转动,由于输出高电平功率较小,导致无法自动驱动电机转动,所以在输出之后接试验箱的功放模块,放大功率后,输出高电平可自动驱动直流电机转动。三、课程设计过程3.1硬件设计3.1.1硬件电路连线表1 硬件连线E5:B、C-G5: B、CA3:CS1-B4:CSA3:CS2-B4:CSA3:CS5-E5:CSA3:A0-E5:A0A3:A1、A0-B4:A1、A0G1:TOUT-B4:PC0G6:发光二极管-B4:JP56B2:2M-G1:TCTRLE2:IN1-B3:OUTE2:OUT1-F1:CTRLB4:PC1-D1:CT

7、RL3.2软件设计软件部分利用实验箱为运行平台,运用汇编指令编写。控制程序主要包括温度数据采集模块、温度转换及显示模块、LED显示控制模块、蜂鸣器控制模块、风机控制模块等。初始化程序包含:8255初始化程序、18B20初始化子程序。四、系统测试 4.1系统调试按照硬件连线连接电路,为方便调试,将程序内的温度区间作了调整。将原来设计要求里的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_82

8、55 EQU 0F000H DA0832 EQU 0D000H EXTRN DISPLAY8:NEAR.STACK 300.DATA VOLTAGE DB 0 BUFFER DB 8 DUP(0) ;温度临时存放区.CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP CALL INIT8255 MAIN: CALL START_TEMPERATURE ;向DS18B20发送读温度指令 JB MAIN CALL DELAYTIME CALL RD_TEMPERATURE ;读出温度值,并转换为BCD码 CALL TEMPERATURE_CASE CAL

9、L DELAYTIME CALL DAC0832 CALL DIS_BCD ;提取温度数据,转换为非压缩型BCD码,并显示 JMP MAIN;判断温度控制电机速度 TEMPERATURE_CASE PROC NEAR PUSH AX;写1(8255.PC.1=1) MOV DX,PC_8255 ;蜂鸣器不响 MOV AL,03H OUT DX,AL MOV BX,AX CMP BX,0120H ;18 JB CASE1 CMP BX,0140H ;20 JB CASE2 CMP BX,0190H ;25 JB CASE3 CMP BX,01E0H ;30 JB CASE4 ;写0(8255.P

10、C.1=0) MOV DX,PC_8255 ;超过30时,驱动蜂鸣器响 MOV AL,02H OUT DX,AL JMP CASE5 RETURN: POP AX RET CASE1: MOV VOLTAGE,0FH JMP RETURN CASE2: MOV VOLTAGE,0FH JMP RETURN CASE3: MOV VOLTAGE,20H ;2025间风机开始低速转动 JMP RETURN CASE4: MOV VOLTAGE,55H ;2530间风机中速转动 JMP RETURN case5: MOV DX,PA_8255 ;超过30时风机高速转动,此时红灯闪烁 MOV AL,0

11、CCH OUT DX,AL CALL DELAYTIME MOV DX,PA_8255 MOV AL,00H OUT DX,AL MOV VOLTAGE,99H JMP RETURN TEMPERATURE_CASE ENDP DAC0832 PROC NEAR PUSH AX MOV DX,DA0832 MOV AL,VOLTAGE OUT DX,AL POP AX RET DAC0832 ENDP;*;温度转换/显示;* DIS_BCD PROC NEAR MOV BX,AX LEA DI,BUFFER+7 STD MOV AL,10H ;10H表示不需要显示 STOSB STOSB ST

12、OSB STOSB TEST AH,08H JNZ DIS_BCD1 STOSB ;正数 JMP DIS_BCD2 DIS_BCD1: MOV AL,11H STOSB ;负数 NEG BX DIS_BCD2: ;将温度整数位转换为ASCI SHL BX,1 ;将温度的个位与十位合在BH中 SHL BX,1 SHL BX,1 SHL BX,1 MOV AX,10 XCHG AL,BH DIV BH CMP AL,0 JNZ DIS_BCD3 ;判断温度的十位是否为0进行相应处理 MOV AL,10H ;十位为0 XCHG AL,DI+1 STOSB JMP DIS_BCD4 DIS_BCD3:

13、 STOSB DIS_BCD4: MOV AL,AH OR AL,80H ;小数点 STOSB XOR AL,AL ;转换小数部分 TEST BL,10H JZ DIS_BCD5 MOV AL,6 DIS_BCD5: TEST BL,20H JZ DIS_BCD6 ADD AL,12H DAA DIS_BCD6: TEST BL,40H JZ DIS_BCD7 ADD AL,25H DAA DIS_BCD7: TEST BL,80H JZ DIS_BCD8 ADD AL,50H DAA DIS_BCD8: MOV CL,4 ROR AL,CL AND AL,0FH STOSB CLD LEA

14、SI,BUFFER ;显示温度 CALL DISPLAY8 RET DIS_BCD ENDP;延时程序 DELAYTIME PROC NEAR XOR CX,CX LOOP $ LOOP $ LOOP $ RET DELAYTIME ENDP ;写 0 W_L PROC NEAR PUSH AX MOV DX,CON_8255 MOV AL,80H OUT DX,AL POP AX RET W_L ENDP;写 1 W_H PROC NEAR PUSH AX MOV DX,CON_8255 MOV AL,01H OUT DX,AL POP AX RET W_H ENDP;DS18B20复位初始

15、化子程序 INIT_18B20 PROC NEAR CALL W_L ;主机发出501us复位低脉冲 MOV CX,136 LOOP $ MOV DX,CON_8255 MOV AX,89H OUT DX,AL ;PC输入状态 DEC DX MOV CX,15 INIT_18B20_1: IN AL,DX TEST AL,01H JZ INIT_18B20_2 LOOP INIT_18B20_1 STC ;置位标志位,表示DS18B20不存在 RET INIT_18B20_2: MOV CX,136 LOOP $ CLC ;复位标志位,表示DS18B20存在 RET INIT_18B20 EN

16、DP;写操作 WRITE_18B20 PROC NEAR MOV CX,8 ;一共8位数据 WRI: CALL W_L ;0-PC0 ROR AL,1 JNB WRI1 CALL W_H WRI2: PUSH CX MOV CX,12 LOOP $ ;延时55us POP CX CALL W_H LOOP WRI RET WRI1: PUSH CX POP CX JMP WRI2 WRITE_18B20 ENDP;读操作 READ_18B20 PROC NEAR MOV CX,8 ;数据一共有8位 READ: MOV DX,CON_8255 MOV AL,80H OUT DX,AL ;0-PC

17、0 MOV AL,89H OUT DX,AL ;输入状态 NOP NOP NOP MOV DX,PC_8255 IN AL,DX ROR AL,1 RCR BL,1 MOV DX,CON_8255 MOV AL,80H OUT DX,AL MOV AL,01H OUT DX,AL ;1-PC0 LOOP READ MOV AL,BL RET READ_18B20 ENDP;*; 判断DS18B20是否存在,启动DS18B20 ;CY为判断标志;* START_TEMPERATURE: CALL INIT_18B20 ;先复位DS18B20 JB GET_T MOV AL,0CCH ;跳过ROM

18、匹配 CALL WRITE_18B20 MOV AL,44H ;发出温度转换命令 CALL WRITE_18B20 CLC GET_T: RET;*; 读出转换后的温度值,存在AX;* RD_TEMPERATURE: CALL INIT_18B20 ;准备读温度前先复位 MOV AL,0CCH ;跳过ROM匹配 CALL WRITE_18B20 MOV AL,0BEH ;发出读温度命令 CALL WRITE_18B20 CALL READ_18B20 ;读出温度 MOV AH,AL ;存放到AX CALL READ_18B20 XCHG AL,AH RET INIT8255 PROC NEAR

19、 MOV DX,CON_8255 MOV AL,80H OUT DX,AL DEC DX MOV AL,0FFH OUT DX,AL RET INIT8255 ENDP END START 六、课程设计总结 本次的课程设计通过使用实验箱上自带的DS18B20温度模块采集温度数据,并使有可编程并行接口8255芯片根据温度数据调用子程序来控制风机的转动、发光管的亮灭以及蜂鸣器的报警等。在设计过程中遇到了很多问题,如风机的控制、发光二极管的显示、蜂鸣器发声音等等,通过与同学的相互交流,在老师的帮助下,查一些相关资料,成功地解决了问题。在此,感谢老师,感谢同学的热心的帮助。同时,通过此次的课程设计,使我们更好地把学过的接口知识运用到实践当中去,实现了硬件和软件相结,理论和实践相结合。拓宽了我们学习的知识面。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1