《温室内部温度控制系统硬件论文.doc》由会员分享,可在线阅读,更多相关《温室内部温度控制系统硬件论文.doc(20页珍藏版)》请在三一办公上搜索。
1、 计算机科学与技术学院硬件课程设计报告l 姓 名: 学 号: l 专 业: 计算机科学与技术学院 l 班 级: 信息安全061班 l 设计题目: 温室内部温度控制系统 l 成 员: l 指导教师: 职 称: 副教授 2008年 6月 课程设计指导教师评阅书指导教师评语:成 绩: 指导教师签字: 年 月 日摘 要l 拟采用8255A并行输入芯片,8253串行输入芯片,ADC0809模数转换器,温度传感器,设计一个温室内部温度控制与调节系统,用来监测温室内的温度变化,并根据不同的温度变化,采取相应控制措施,保证温室内花苗的生长。l 我们的设计思路是假定我们控制的温室控制温度为10摄氏度20摄氏度这
2、样根据在这个温度变化范围传感器的电压变换范围,通过ADC0809转换后的数字范围是0000111111110000然后根据在这个数据范围内进行温度控制,当高于上限启动制冷,低于下限启动加热,没超出范围启动保温这就是我们的设计思路。l 针对于ADC0809主要就是完成模拟信号的转换,然后将转换出来的数字信号和我们事先准备的范围进行比较,然后根据情况启动温控装置从而达到温控系统的作用。l 针对8255,它主要完成的是对ADC0809的EOC端口的检测,将A端口设为输入通过A口实现对EOC的检测,还有就是由于设备所限没有温控设备,将小灯泡1,2,3代表保温控系统,所以通过8255实现小灯泡的置亮和置
3、暗。l 针对8253就是实现一个ADC0809的所需转换频率,我们预期的是实现1秒转换一次,所以我们将0通道和1通道级联,将1MHz的脉冲变为1Hz,通过OUT1输入到ADC0809的CLK端。l 以上就是我们的设计思路目 录1、总体设计部分 1.1设计思路5 1.2任务需求5 1.2.1用到的芯片及其作用5 1.2.2其他硬件设备及其作用72、 总体设计方案8 2.1硬件部分8 2.2软件部分83、小组分工部分11 3.1转换控制( )113.2信号采集( )143.3转换频率( )17参考文献20总体设计部分1、 设计任务与要求1.1 设计思路温室内部的温度对植物的生长至关重要,设计一个温
4、度控制器,实现对温室内部的温度控制,保障植物能够在始终适宜的温度下生长。要求温度控制系统能实时检测温室内的温度,首先由热敏式传感器完成对温室内温度的模拟信号量的采集,经由IN0端口输入到模数转换器ADC0809,完成对模拟量向数字量的转换。然后,在设定的检测时间间隔计算机下,将数字量输入并依次与事先所设定的控制温度进行比较,符合条件则跳转至相应的控制措施下执行,否则继续按设定的时间间隔检测。此外,还可以设置一个外部手动中断操作,可以随时控制此系统的工作与否。1.2 芯片选择和其它器件(1) 编程外围接口芯片8255A:8255A是一个典型的可编程通用并行接口芯片,它具有3个8位的并行口,有三种
5、工作方式,可作为单片机与各种外部设备连接的接口电路(2) 模/数转换器ADC0809:ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常
6、使用频率为500KHz,IN0-IN7上的一路模拟量输入。通道选择表如下:CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7(3) 8253的工作原理8253是可编程的计数器/定时器,其内部有三个独立的16位计数器/定时器通道,每个计数器通道均可按6种不同的方式工作,并且都可以按二进制或十进制计数。其CLK0CLK2是计数器02的时钟脉冲输入端, GATE0GATE2是门控脉冲输入端, OUT0OUT2是输出端及内部结构见下图。(3) 其它器件热敏电阻式温度传感器一只,导线若干,8086CPU2、 总体方案2.1 硬件部分 连接图如
7、下:2.2 软件部分开始2.2 (1)流程图如图:采样频率为1Hz,所以每一秒来读取一次转换的值将ADC0809完成的一次转换输出,赋值到AL,进行温度的监控通过对EOC的检测启动ADC0809将模拟信号输入开始一次转换当al11110000时, 是温度高启动降温系统,关闭其他 否Al11110000时, 是温度高启动降温系统,关闭其他 否Al00001111时 是 温度过低,启动供暖系统,关闭其他xit 温度适中,关闭加热和制冷系统,启动保温系统是否停止温控 否 结束温度控制 是源代码:ADINT: MOV DX , 300H DX指向ADC的通道0NEXT: OUT DX , AL 启动一
8、次转换 PUSH DX MOV DX , 308H 指向状态端口308HPOLL: IN AL , DX 读入EOC状态TEST AL , 80H EOC=0?是就开始转换JZ POLL 非 循环等待NO_END IN AL , DX 开始转换后再次读入EOC状态 TEST AL , 80H 检查EOC=0 ?JZ NO_END 是,继续等待转换结束 IN AL , DX EOC=1,转换结束,将数据读入ALCMP AL , 00001111 温度是否低于下限?JB HEAT_ON 是,启动加热CMP AL , 11110000 否,看是否高于上限?JNB COLD 是,制冷JMP KEEP
9、都不是,保温HEAT_ON: MOV DX , 321H 加热器的端口地址MOV AL , 01 启动命令OUT DX , AL 启动加热器JMP ADINT 跳回,继续检测COLD : MOV DX , 323H 制冷器的端口地址MOV AL , 01 启动命令OUT DX , AL 启动制冷器JMP ADINT 跳回,继续检测KEEP: MOV DX , 325H 保温器的端口地址MOV AL , 01 启动命令OUT DX , AL 启动保温器JMP ADINT 跳回,继续检测3.2 信号采集部分( )主要作用是检测ADC0809的EOC转化状态,进而决定对温度的控制操作。鉴于物理器件的
10、缺陷,采用小灯泡的亮与灭来对应最初设计的不同的控制手段,具体为灯泡亮为不采取措施状态,灯泡亮时为采取控制手段8255A的简易设计图如下:主要作用是检测ADC0809的EOC转化状态,进而决定对温度的控制操作。鉴于物理器件的缺陷,采用小灯泡的亮与灭来对应最初设计的不同的控制手段,具体为灯泡亮为不采取措施状态,灯泡亮时为采取控制手段8255A设计的流程图部分如下:前面以实现与0809的EOC连接,检验EOCEOC状态读入8255A 的PA0端从端口308读数监测EOC状态与小灯泡连接(主流程中完善)温度大于上限? 是温度过高,从B口输入11111110否温度小于下限?温度过低,从B口输入11111
11、101采取控温措施,B口输入11111011后续连接设备程序代码如下:8255A初始化如下:MOVAL,10011001MOVDX,30BHOUTDX,AL ;设置控制字并初始化HEAT_ON:MOVAL,11111110MOVDX,309HOUTDX,ALJMP ADINT ; 加热控制措施COLD:MOVAL,11111101MOVDX,309HOUTDX,AL JMP ADINT ;降温控制措施KEEP:MOVAL,11111011MOVDX,309HOUTDX,AL JMP ADINT ;保温系统3.3转换频率( )设计思路: 实验所用的实验箱由于只能提供1MHZ的时钟频率,因此我们用
12、8252来转换时钟频率,达到每秒检测1次的效果;通道1的OUT1与ADC0809的CLK引脚,当它为高电平时,ADC0809转换一次,并将结果与设定值进行比较;低电平时等待;只要对8253编程,是OUT1输出周期为1秒,占空比为1:1的方波,就能使ADC0809每秒转换一次, 将频率为1MHZ的时钟信号加在CLK0输入端,让通道0工作与方式2,选择计数初值为1000,则从OUT0端得到序列负脉冲,其频率为1MHZ/1000=1000HZ,周期为1ms。再把该信号连到CLK1输入端,使通道1工作与方式3,取计数初值为1000,则从OUT1端就可以得到频率为1HZ的时钟信号电路设计图:流程图: 程
13、序代码:MOV DX , 31EH MOV AL , 00110101B ;通道0控制字,先读低字节,后读高字节,方式2,BCD计数 OUT DX , AL MOV DX , 318H MOV AL , 00H ;计数初值低字节 OUT DX , AL MOV AL , 10H ;计数初值高字节 OUT DX , ALMOV DX , 31EH MOV AL , 01110111B ;通道1控制字,先读低字节,再读高字节,方式3,BCD计数 OUT DX , AL MOV DX , 31AH MOV AL , 00H ;计数初值低字节 OUT DX , AL MOV AL , 10H ;计数初
14、值高字节 OUT DX , AL体会:通过小组合作,让我感受到集体的力量,本来程序很多错误,胡君从整体上把握得很好,但是细节上不太注意,这正好是我的长处,我负责将他设计的程序段的小瑕疵予以纠正。胡君在硬件电路的设计方面做了很多工作,最初考虑采用温度传感器,我们设计了简易的热敏电阻式温度传感器,虽然误差会比较大。后来老师提议简化设计,用变频电压器充当模拟量的采集,在控制措施的实现环节,再度简化,用灯泡的亮与灭来表示采取的相应措施,具体的对应情况已在上面提及,这里不再赘述。高亚明负责8253和软件方面的设计,这正好能展现他编程的长处,我们最初是要利用C语言的嵌套来实现对此温度控制系统的自动监控,后来由于器材的限制还是放弃了。总的来说,在设计方面我们是筛选了几个方案的,但是,落实到实处时老是犹豫不决,最终没能得到一个完美的实验成果,这是令我们感到遗憾的地方。课程设计让我对新技术,新产品的研发有个粗略的认识,给我实践的机会,我收获到的不只是对知识的一种巩固效果,更是一种全新的思维和学习方式。参考文献:1、传感器技术大全 孙惠芹 刘南平 张林中 (科学出版社)2、传感器应用电路300例孙余凯 吴鸣山 项绮明(电子工业出版社)3、硬件编程接口与系统软件实现 朱春森 (北京大学出版社)4、微机原理与接口技术习题与解析温阳东 鲍远慧(清华大学出版社)