硬件课程设计模拟温度控制_第1页
硬件课程设计模拟温度控制_第2页
硬件课程设计模拟温度控制_第3页
硬件课程设计模拟温度控制_第4页
硬件课程设计模拟温度控制_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、硬 件 课 程 设 计(C语言)姓 名: 赵 都 督 学 号:_08143086_班 级:计算机科学与技术14-02班题 目:室内环境监控 指导老师: 张 莉中国矿业大学计算机科学与技术学院摘 要温度是生产生活中最基本的物理量之一,它反映出了物体的冷热程度,在自然界中有很多的物理、化学过程都与温度有着紧密的联系。目前随着信息技术的发展,传感器技术的广泛应用,温度的测量与控制已向自动化、智能化的方向发展。数字温度计相对于传统的温度计有读书更为方便且准确的优点。目前,在很多生产过程中,温度的测量和控制都直接和安全生产、提高生产效率、节约能源等重大技术指标密切联系。所以,温度的测量与控制在生产生活的

2、各个领域中都受到了高度的重视。在许多情况下,在实际生活生产活动要考虑温度的影响 和对温度的精确控制,如食物的存储、自动控制的空调和房屋防火装置等。因为集成电路制造技术的不断提高,出现了高性能、高可靠的集成芯片。温度控制系统在工业领域得到了广泛的应用。温度控制系统在性能方面具有精度高,实时性好,易于测量环境温度并控制。而且,温度控制系统在很大程度上节约了人力资源,改善了传统温度测量的繁琐和效率低。这些使得温度控制系统的研究和开发得到的各方面的广泛关注和支持。关键词:温度控制;8255芯片;AD0809;DA0832;模数转换;红外线传感器;LCD液晶显示器 目 录1设计任务与要求11.1 选题报

3、告11.2 提出问题12需求分析12.1 设计思想22.1.1模拟温度要求23硬件方案23.1 设备器材23.2 硬件的选择以及芯片说明23.2.1系统所需硬件23.2.2 8255A芯片介绍33.2.3 AD0809芯片介绍43.2.4 DA0832芯片介绍7 3.3 硬件电路9 3.4 实验连线图103.4.1硬件连接图描述:114软件方案124.1 功能模块124.2 系统各模块程序流程图124.2.1 8255初始化模块:124.2.2启动直流电机:144.2.3显示程序程序模块:155源程序清单和注释176运行结果237结论258设计体会:25参考文献261设计任务与要求1.1 选题

4、报告这次所选择的实验是温度控制实验,要求利用可编程并行接口元件8255A,模数转换器AD0809,数模转换器DA0832,直流电机,红外线传感器模拟环境温度和人数统计。1.2 提出问题1) 如何实时反映外部温度的变化?2) 如何将模拟量转变成数字量?3) 如何将采集到的数据显示在液晶显示器上?2需求分析 目前在很多领域的一些特殊地方,对环境的要求非常苛刻,要有严格的控制,例如,在一个大企业的计算机数据中心,它们的温度有严格限制范围,这就需要一个可靠地温度控制系统时刻监管着环境的温度,因此各种各样的温度控制系统孕育而生。利用微机接口技术实验系统设计制作一个温度控制系统。由于硬件条件有限,所以只能

5、实现上下限温度的控制,要求是能够利用实验箱中的LCD液晶屏显示实时温度,同时当温度高于上限温度时,启动直流电机模拟散热系。当温度低于下限温度时,启动继电器模拟加热系统。实现的功能与流程如下所述:2.1 设计思想 该温度控制系统设计的思想是通过一个模拟温度变化的感应设备,将检测到的模拟温度转换成数据保存起来,并用相应传感器对室内人数进行统计,执行相应的控制设备,同时还将检测到的温度数据和人数数据显示在LCD液晶屏上。2.1.1模拟温度要求(1)实时反映外部温度的变化;(2)将采集到的温度数据显示在LCD液晶显示屏上;(3)将采集到的人数显示在LCD液晶显示屏上;当人数高于设置的人数上限时, 自动

6、启动直流电机模拟散热;3硬件方案3.1 设备器材硬件课程设计实践TPC-ZK实验箱一个PC电脑一台,红外线传感器一台3.2 硬件的选择以及芯片说明3.2.1系统所需硬件设计所需芯片:8255A、AD0809、DA0832所需设备:LCD液晶显示器、直流电机、红外线传感器。将8255A的A口与LCD液晶屏的八为数据口相连,对8255A进行初始化编程,控制LCD液晶屏显示,8255A的B口的PB0口作为输入接受传感器的输入。将AD0809的IN0、IN1与电位器相连,编程启动AD0809实时采集外部温度变化的数据。将DA0832的Ua口与直流电机相连,编程启动AD0832,对直流电机的控制。 3.

7、2.2 8255A芯片介绍 图3-1 8255A引脚图 图3-2 8255A内部电路图图3-3 方式选择控制字格式图引脚功能:(只记述用到的引脚)CS:芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;/CS=1时,8255无法与CPU做数据传输. PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方

8、式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。3.2.3 AD0809芯片介绍图3-4 AD0809引脚信号图(1)主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。 2) 具有转换起停控制端。 3) 转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) 4)单个+5V电源供电  5)模拟输入电压范围0+5V,不需零点和满刻度校准。   6)工作温度范围为-40+85摄氏度 7)低功耗,约15mW。(2)内部结构ADC080

9、9是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。  START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿

10、使0809复位,下降沿启动A/D转换)。  EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。  OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。实验连线图 图3-5 AD0809引脚及连线图(3)工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路

11、模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 (EOC)作为中断请求信号,以中断方式进行数据传送。       不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受3.2.

12、3 AD0832芯片介绍 图3-6 DA0832引脚信号图(1)主要特性: DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。运算放大器输出的模拟量V0为: 图3-7 DA0832内部运算放大器电路 1)特点: 一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。 D0D7:数字信号输入端。 ILE:输入寄存器允许,高

13、电平有效。 CS:片选信号,低电平有效。 WR1:写信号1,低电平有效。 XFER:传送控制信号,低电平有效。 WR2:写信号2,低电平有效。 IOUT1、IOUT2:DAC电流输出端。 Rfb:是集成在片内的外接运放的反馈电阻。 Vref:基准电压(-1010V)。 Vcc:是源电压(+5+15V)。 AGND:模拟地 NGND:数字地,可与AGND接在一起使用。 DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。实验线路如图 图3-8 DA0832内部电路 IN0IN7:8路模拟信号输入端。 A1、A2、A0 :地址输入端。ALE地址锁存允许输入

14、信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。 START:启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。 EOC:转换结束输出信号(转换接受标志),高电平有效。 OE:输入允许信号,高电平有效。 CLOCK(CP):时钟信号输入端,外接时钟频率一般为640kHz。 Vcc:+5V单电源供电。 、 Vref(+),Vref(-):基准电压的正极、负极。一般Vref(+)接+5V电源,Vref(-)接地。 D7D0:数字信号输出端。 由A2、A1、A0三地址输入端选通8路模拟信

15、号中的任何一路进行A/D转换。3.3 硬件电路 图3-9 实验硬件电路连接图3.4 实验连线图 图3-10 温度控制实验连线图3.4.1硬件连接图描述:8255A引脚接线: CS -288H-28BHA口:PA0-PA7 -LCD液晶屏八位数据口B口:PB0 红外线传感器C口:PC0 -液晶屏的D/I口 PC1-液晶屏的RW口PC2- -液晶屏的E口 AD0809引脚接线CS -298H IN0 -电位器 DA0832引脚接线 CS-280H Ua-直流电机 4软件方案4.1 功能模块图4-1 软件功能模块图4.2 系统各模块程序流程图4.2.1 8255初始化模块: 8255A的初始化: 图

16、4-2 8255初始化流程图4.2.2人数过多启动直流电机模块:启动直流电机 4.2.5显示程序模块:液晶屏显示5源程序清单和注释 #include <stdio.h>#include <conio.h>#include "ApiExusb.h"#pragma comment(lib,"ApiExusb.lib")char num10=0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39;/GBK 温CEC2 度B6C8 :A3BA 数字0-9的GBK编码void c

17、lear();void cmdsetup();void datasetup();void main() int b; int x=0; int p=0;byte data;/温度数据byte data1;/人数数据float temperature;/温度char out16;/存放温度信息的字符串char pout16;/存放人数信息的字符串int temp ; printf("Press any key to begin!nn");getch();if(!Startup()/*打开设备*/printf("ERROR: Open Device Error!n&q

18、uot;);return; PortWriteByte(0x28b,0x82);/55为方式0,C口输出,A口输出,B口输入 clear(); PortWriteByte(0x288,0x90); cmdsetup(); Sleep(10);while(!kbhit()PortWriteByte(0x298, 0x00);/ 初始化AD0809Sleep(10);PortWriteByte(0x288,0x90);/重定位LCD显示 cmdsetup();PortReadByte(0x298, &data);/AD0809 转化为数字量存入data中temperature = 20.0

19、 + 5.0 * data / 255.0;temp=(int)(temperature * 100);/类型转换 int w1, w2, w3, w4;w1 = temp / 1000;/分位操作w2 = temp %1000 / 100;/分位操作w3 = temp% 100 / 10;/分位操作w4 = temp % 10;/分位操作out0 = 0xce, out1 = 0xc2;/温out2 = 0xb6, out3 = 0xc8;/度out4 = 0xa3, out5 = 0xba;/:out6 = numw1+1, out7 =numw2+1;out8 = 0x2e, out9

20、= numw3+1, out10 = numw4+1; for (int j=0;j<11; j+) PortWriteByte(0x288,outj);/LED屏显示当前温度 datasetup(); PortWriteByte(0x288,0x88); cmdsetup(); Sleep(10);PortWriteByte(0x289,0x00);/8255清零PortReadByte(0x289,&data1);/红外线传感器将采集到的信号输入给 8255B口b=data1;if(b!=0)x=1;if(b=0&&x=1)p+;x=0;/传感采集过程中的停顿

21、标志int v1,v2,v3;v1 = p / 100;/分位操作v2 = p% 100 / 10;/分位操作v3 = p% 10;/分位操作pout0 = 0xB5, pout1 = 0xB1;/当pout2 = 0xC7, pout3 = 0xB0;/前pout4 = 0xC8, pout5 = 0xCB;/人 pout6 = 0xCA, pout7 = 0xFD;/数pout8 = 0xA3, pout9 = 0xBA;/:pout10 = numv1;pout11 = numv2;pout12 = numv3; for (int i=0;i<13; i+) PortWriteBy

22、te(0x288,pouti);/将人数信息显示到LED屏幕 datasetup(); if(p> 30) PortWriteByte(0x280, 0xff); /0832置为0xff 控制电机转动,人数大于上限30时转动 Cleanup();/*关闭设备*/void clear() PortWriteByte(0x288,0x0c); cmdsetup();void cmdsetup() PortWriteByte(0x28a,0x00); Sleep(1); PortWriteByte(0x28a,0x04); Sleep(1); PortWriteByte(0x28a,0x00); Sleep(1); void datasetup() PortWriteByte(0x28a,0x01); Sleep(1); PortWriteByte(0x28a,0x05); Sleep(1); PortWrit

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论