硬件课程设计模拟温度控制Word下载.docx
- 文档编号:19806496
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:18
- 大小:616.49KB
硬件课程设计模拟温度控制Word下载.docx
《硬件课程设计模拟温度控制Word下载.docx》由会员分享,可在线阅读,更多相关《硬件课程设计模拟温度控制Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
1.2提出问题
1)如何实时反映外部温度的变化?
2)如何将模拟量转变成数字量?
3)如何将采集到的数据显示在液晶显示器上?
2需求分析
目前在很多领域的一些特殊地方,对环境的要求非常苛刻,要有严格的控制,例如,在一个大企业的计算机数据中心,它们的温度有严格限制范围,这就需要一个可靠地温度控制系统时刻监管着环境的温度,因此各种各样的温度控制系统孕育而生。
利用微机接口技术实验系统设计制作一个温度控制系统。
由于硬件条件有限,所以只能实现上下限温度的控制,要求是能够利用实验箱中的LCD液晶屏显示实时温度,同时当温度高于上限温度时,启动直流电机模拟散热系。
当温度低于下限温度时,启动继电器模拟加热系统。
实现的功能与流程如下所述:
2.1设计思想
该温度控制系统设计的思想是通过一个模拟温度变化的感应设备,将检测到的模拟温度转换成数据保存起来,并用相应传感器对室内人数进行统计,执行相应的控制设备,同时还将检测到的温度数据和人数数据显示在LCD液晶屏上。
2.1.1模拟温度要求
(1)实时反映外部温度的变化;
(2)将采集到的温度数据显示在LCD液晶显示屏上;
(3)将采集到的人数显示在LCD液晶显示屏上;
当人数高于设置的人数上限时,自动启动直流电机模拟散热;
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.2.28255A芯片介绍
图3-18255A引脚图图3-28255A内部电路图
图3-3方式选择控制字格式图
引脚功能:
(只记述用到的引脚)
CS:
芯片选择信号线,当这个输入引脚为低电平时,即/CS=0时,表示芯片被选中,允许8255与CPU进行通讯;
/CS=1时,8255无法与CPU做数据传输.
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位的输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位的数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
3.2.3AD0809芯片介绍
图3-4AD0809引脚信号图
(1)主要特性
1)8路输入通道,8位A/D转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
(2)内部结构
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。
外部特性(引脚功能)
ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。
下面说明各引脚功能。
IN0~IN7:
8路模拟量输入端。
2-1~2-8:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。
EOC:
A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
地。
实验连线图
图3-5AD0809引脚及连线图
(3)工作过程
首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。
此地址经译码选通8路模拟输入之一到比较器。
START上升沿将逐次逼近寄存器复位。
下降沿启动
A/D转换,之后EOC输出信号变低,指示转换正在进行。
直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。
当OE输入高电平
时,输出三态门打开,转换结果的数字量输出到数据总线上。
(EOC)作为中断请求信号,以中断方式进行数据传送。
不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。
首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受
3.2.3AD0832芯片介绍
图3-6DA0832引脚信号图
(1)主要特性:
DAC0832是采用CMOS工艺制成的单片直流输出型8位数/模转换器。
如图4-82所示,它由倒T型R-2R电阻网络、模拟开关、运算放大器和参考电压VREF四大部分组成。
运算放大器输出的模拟量V0为:
图3-7DA0832内部运算放大器电路
1)特点:
一个8位D/A转换器有8个输入端(其中每个输入端是8位二进制数的一位),有一个模拟输出端。
输入可有28=256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内任意值,而只能是256个可能值。
D0~D7:
数字信号输入端。
ILE:
输入寄存器允许,高电平有效。
CS:
片选信号,低电平有效。
WR1:
写信号1,低电平有效。
XFER:
传送控制信号,低电平有效。
WR2:
写信号2,低电平有效。
IOUT1、IOUT2:
DAC电流输出端。
Rfb:
是集成在片内的外接运放的反馈电阻。
Vref:
基准电压(-10~10V)。
Vcc:
是源电压(+5~+15V)。
AGND:
模拟地NGND:
数字地,可与AGND接在一起使用。
DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。
实验线路如图
图3-8DA0832内部电路
IN0~IN7:
8路模拟信号输入端。
A1、A2、A0:
地址输入端。
ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。
启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。
转换结束输出信号(转换接受标志),高电平有效。
输入允许信号,高电平有效。
CLOCK(CP):
时钟信号输入端,外接时钟频率一般为640kHz。
+5V单电源供电。
、
Vref(+),Vref(-):
基准电压的正极、负极。
一般Vref(+)接+5V电源,Vref(-)接地。
D7~D0:
数字信号输出端。
由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A/D转换。
3.3硬件电路
图3-9实验硬件电路连接图
3.4实验连线图
图3-10温度控制实验连线图
3.4.1硬件连接图描述:
8255A引脚接线:
CS-288H-28BH
A口:
PA0-PA7-------LCD液晶屏八位数据口
B口:
PB0——红外线传感器
C口:
PC0-液晶屏的D/I口PC1--液晶屏的RW口
PC2--液晶屏的E口
AD0809引脚接线
CS--298HIN0--电位器
DA0832引脚接线
CS--280HUa--直流电机
4软件方案
4.1功能模块
图4-1软件功能模块图
4.2系统各模块程序流程图
4.2.18255初始化模块:
8255A的初始化:
图4-28255初始化流程图
4.2.2人数过多启动直流电机模块:
启动直流电机
4.2.5显示程序模块:
液晶屏显示
5源程序清单和注释
#include<
stdio.h>
conio.h>
#include"
ApiExusb.h"
#pragmacomment(lib,"
ApiExusb.lib"
)
charnum[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};
//GBK温CEC2度B6C8:
A3BA数字0-9的GBK编码
voidclear();
voidcmdsetup();
voiddatasetup();
voidmain()
{
intb;
intx=0;
intp=0;
bytedata;
//温度数据
bytedata1;
//人数数据
floattemperature;
//温度
charout[16];
//存放温度信息的字符串
charpout[16];
//存放人数信息的字符串
inttemp;
printf("
Pressanykeytobegin!
\n\n"
);
getch();
if(!
Startup())/*打开设备*/
{
printf("
ERROR:
OpenDeviceError!
\n"
return;
}
PortWriteByte(0x28b,0x82);
//55为方式0,C口输出,A口输出,B口输入
clear();
PortWriteByte(0x288,0x90);
cmdsetup();
Sleep(10);
while(!
kbhit()){
PortWriteByte(0x298,0x00);
//初始化AD0809
Sleep(10);
PortWriteByte(0x288,0x90);
//重定位LCD显示
PortReadByte(0x298,&
data);
//AD0809转化为数字量存入data中
temperature=20.0+5.0*data/255.0;
temp=(int)(temperature*100);
//类型转换
intw1,w2,w3,w4;
w1=temp/1000;
//分位操作
w2=temp%1000/100;
w3=temp%100/10;
w4=temp%10;
out[0]=0xce,out[1]=0xc2;
//温
out[2]=0xb6,out[3]=0xc8;
//度
out[4]=0xa3,out[5]=0xba;
//:
out[6]=num[w1+1],out[7]=num[w2+1];
out[8]=0x2e,out[9]=num[w3+1],out[10]=num[w4+1];
for(intj=0;
j<
11;
j++)
{
PortWriteByte(0x288,out[j]);
//LED屏显示当前温度
datasetup();
}
PortWriteByte(0x288,0x88);
PortWriteByte(0x289,0x00);
//8255清零
PortReadByte(0x289,&
data1);
//红外线传感器将采集到的信号输入给8255B口
b=data1;
if(b!
=0)x=1;
if(b==0&
&
x==1){p++;
x=0;
}//传感采集过程中的停顿标志
intv1,v2,v3;
v1=p/100;
v2=p%100/10;
v3=p%10;
pout[0]=0xB5,pout[1]=0xB1;
//当
pout[2]=0xC7,pout[3]=0xB0;
//前
pout[4]=0xC8,pout[5]=0xCB;
//人
pout[6]=0xCA,pout[7]=0xFD;
//数
pout[8]=0xA3,pout[9]=0xBA;
//:
pout[10]=num[v1];
pout[11]=num[v2];
pout[12]=num[v3];
for(inti=0;
i<
13;
i++)
PortWriteByte(0x288,pout[i]);
//将人数信息显示到LED屏幕
if(p>
30){
PortWriteByte(0x280,0xff);
//0832置为0xff控制电机转动,人数大于上限30时转动
Cleanup();
/*关闭设备*/
}
voidclear()
{
PortWriteByte(0x288,0x0c);
voidcmdsetup()
PortWriteByte(0x28a,0x00);
Sleep
(1);
PortWriteByte(0x28a,0x04);
voiddatasetup()
PortWriteByte(0x28a,0x01);
PortWriteByte(0x28a,0x05);
6运行结果
注:
1)温度:
36.11
2)人数:
016
图6-1结果图
7结论
结论:
本次模拟温度控制实验所设计的芯片有8255A,AD0809,DA0832,红外线传感器,LCD液晶显示屏,,直流电机,导线若干。
实验的设计思路是通过电位器模拟温度变化,AD0809不断地采集模拟电压,然后转换成数字量保存在数据区的一个单元里,再利用红外线传感器采集相应信号作为人数信息,经过人数判断然后依次调用电机子程序,直流电机做出反应,接下来调用数据分离子程序使A采集到的数据量分离成对应的个,十,百位,并将其存入数据区,然后调用显示子程序在LCD液晶屏上显示相应的温度信息。
1)温度的模拟量是以AD0809获得的;
2)人数是由红外线传感器模拟获得的;
3)LCD液晶屏是以芯片8255A来控制的;
4)直流电机是以芯片DA0832来控制的
8设计体会
体会:
通过本次硬件课程设计的学习,我对计算机微机原理与接口这门课有了新的认识,以前学习这门课的时候只是书面作业没有做过相关实验,这就从根本是导致了我对这门课的学习仅仅处于理论范围,本次实践课程的学习,让我对0809,0832,8255,8253等芯片有了更深的认识,搞清楚了他们的工作原理,这对于我以后的学习帮助很大!
在本次课程设计,我学会了独立思考学会了如何与同学交流学习共同协作,计算机软件设计是一项庞大的工程,只有团队间密切的配合才能创造出好的产品
。
还加强了我的编程能力。
我相信在以后的学习中,硬件课程设计肯定能带给我很大好处!
参考文献
[1]周荷琴、冯焕清编著.微型计算机原理与接口技术.中国科学技术大学出版社:
第5版
[2]微机原理及接口技术.赵志诚,段中兴.清华大学出版社.第二版
(注:
专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
可复制、编制,期待你的好评与关注)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 硬件 课程设计 模拟 温度 控制