简易环境测试仪设计.docx

上传人:b****7 文档编号:9032591 上传时间:2023-02-02 格式:DOCX 页数:21 大小:401.95KB
下载 相关 举报
简易环境测试仪设计.docx_第1页
第1页 / 共21页
简易环境测试仪设计.docx_第2页
第2页 / 共21页
简易环境测试仪设计.docx_第3页
第3页 / 共21页
简易环境测试仪设计.docx_第4页
第4页 / 共21页
简易环境测试仪设计.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

简易环境测试仪设计.docx

《简易环境测试仪设计.docx》由会员分享,可在线阅读,更多相关《简易环境测试仪设计.docx(21页珍藏版)》请在冰豆网上搜索。

简易环境测试仪设计.docx

简易环境测试仪设计

信息与控制工程学院硬件课程设计说明书

 

简易环境测试仪设计

 

学生学号:

学生姓名:

专业班级:

指导教师:

职称:

讲师

起止日期:

2010.04.05~2010.04.25

 

吉林化工学院

JilinInstituteofChemicalTechnology

课程设计任务书

一、设计题目:

简易环境测试仪设计

二、设计目的

1.了解MAX232串口通讯原理以及单片机与PC机通讯电路。

2.了解LED数码管显示及按键电路的组成原理,熟悉LED动态显示原理及实现方法。

3.掌握LM7805构成直流稳压电源电路组成及工作原理。

4.掌握光敏电阻测量光强的原理。

5.掌握DS18B20温度传感器的驱动原理,熟悉DS18B20的性能指标及特点。

三、设计任务及要求

设计并实现具有显示当前环境温度和光强的环境测试仪,具有以下基本功能:

1.使用3位LED数码管显示当前环境温度;

2.环境光强度分为“强”和“弱”两档,并用发光二极管指示。

四、设计时间及进度安排

设计时间共三周(2010.04.05~2010.04.25),具体安排如下表:

设计内容

设计时间

第一周

学习单片机开发工具Keil软件的实用,查找资料并设计测量环境温度电路,实现其基本功能。

2010.04.05

2010.04.11

第二周

硬件电路的焊接与调试。

学习实用Keil软件并实用c语言编写环境测试仪的程序,下载程序实现环境测试仪的基本功能。

2010.04.12

2010.04.18

第三周

实现基本要求之外的其他扩展功能;用PROTEL-DXP软件绘制硬件原理图;撰写并完成硬件课程设计说明书,测试硬件设计作品的功能,进行课程设计答辩。

2010.04.19

2010.04.25

五、指导教师评语及学生成绩

指导教师评语:

年月日

成绩

指导教师(签字):

目录

课程设计任务书Ⅱ

第1章绪论Ⅲ

1.1课程设计目的1

1.2开发工具1

第2章总体设计方案2

2.1工作原理2

2.2总体设计2

第3章系统硬件设计3

3.1单片机最小系统3

3.1.1复位电路4

3.1.2晶振电路4

3.2显示模块5

3.2.1LED显示器结构5

3.2.2LED显示器分类5

3.2.1LED动态显示方式5

3.3温度测试模块5

3.3.1DS18B20芯片的概述5

3.3.2DS18B20芯片的内部结构6

3.3.3DS18B20芯片的性能特点6

3.4串口模块7

3.4.1MAX232芯片的概述7

3.4.2DS1302芯片的应用7

3.5电源模块8

第4章系统软件设计9

4.1硬件设计过程9

4.2软件设计过程9

4.2.1流程框图9

4.2.2程序9

附录10

结论15

参考文献15

第1章绪论

1.1课程设计目的

课程设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。

通过课程设计使学生获得以下几方面能力,为毕业设计(论文)奠定基础。

1.进一步巩固和加深学生所学一门或几门相关专业课(或专业基础课)理论知识,培养学生设计、计算、绘图、计算机应用、文献查阅、报告撰写等基本技能;

2.培养学生实践动手能力及独立分析和解决工程实际问题的能力;

3.培养学生的团队协作精神、创新意识、严肃认真的治学态度和严谨求实的工作作风。

1.2开发工具

利用KeilC5进行简易环境测试仪的设计与调试。

KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

用过汇编语言后再使用C来开发,体会更加深刻。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及A51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

 

第2章总体设计方案

2.1工作原理

本电路是由SST89E516RD单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;测温电路由DS18B20提供,它体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。

新的"一线器件"DS18B20总线技术具有节省I/O资源、结构简单、成本低廉、便于总线扩展和维护等特点。

测光强电路由光敏电阻提供;光照检测,通过对光照进行检测,当光强超过某一强度时,发光二极管亮,当低于某一强度时,发光二极管熄灭。

以LED数码管动态扫描作为显示模块,把单片机传来的数据显示出来。

MAX232作为下载模块的接口芯片。

显示部分由三个数码管,使用动态扫描显示方式对数字的显示;下载部分由MAX232标准串行通信接口芯片作为接口芯片。

2.2总体设计

图2-1系统设计框图

整体电路图见附录A

第3章系统硬件设计

3.1单片机最小系统

单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。

这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规定的任务。

MCS-51单片机是在一块芯片中集中了CPU,RAM,ROM,定时器/计数器和多种功能的I/O线等一台计算机所需要的是基本功能部件。

单片机系统是整个硬件系统的核心,它即协调整机工作,又是数据处理器,是软硬件系统连接的桥梁。

而单片机最小系统是单片机能正常工作的必要条件。

它主要由时钟电路,复位电路构成。

图3-1单片机的最小系统

3.1.1复位电路

复位是由外部的复位电路来实现的。

片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。

复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路

图3-2单片机的复位电路

3.1.2晶振电路

晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。

有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。

因价格等因素,实际应用中多采用无源晶振设计的电路居多,除非电路设计时序极其敏感或芯片内部无振荡器的情况(如一些型号的DSP或精密仪器中)。

XAL1就是一个两脚的无源晶振,11.0592MHZ振荡频率,匹配电容是两个30P的瓷片电容。

图3-3单片机的时钟电路

 

3.2显示模块

3.2.1LED显示器结构

基本的半导体数码管是由七个条状发光二极管芯片按图排列而成的。

可实现0~9的显示。

其具体结构有“反射罩式”、”条形七段式”及“单片集成式多位数字式”

3.2.2LED显示器分类

所谓共阳方式是指笔画显示器各段发光管的阳极(即P区)是公共的,而阴极互相隔离。

所谓共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离。

3.2.3LED动态显示方式

LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。

对于多位LED显示器,通常都是采用动态扫描的方法进行显示,其硬件连接方式如系统原理图。

在动态方式中,逐个地循环地点亮各位显示器。

这样虽然在任一时刻只有一位显示器被点亮,但是由于人眼具有视觉残留效应,看起来与全部显示器持续点亮效果完全一样。

3.3温度测试模块

3.3.1.DS18B20芯片的概述

DS18B20是DALLAS公司生产的一线式数字温度传感器。

具有3引脚TO-92小体积封装形式;温度测量范围喂-55℃~+125℃,可编程为9~12位A/D转换精度、测温分辨率可达0.0625℃、被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并立案到3或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路,以上特点使DS18B20非常适合于远距离多点温度检测系统中。

DS18B20可组网数字温度传感器芯片封装而成,具有耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。

3.3.2DS18B20芯片的内部结构

DS18B20内部结构如图所示,主要由四部份构成:

64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。

光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。

64位光刻ROM的排列是:

开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码(CRC=X8+X5+X4+1)。

光刻ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。

DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:

用16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。

 

图3-5DS18B20的内部结构

3.3.3DS18B20芯片的性能特点

DS18B20的性能特点如下:

●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

●无须外部器件;

●可通过数据线供电,电压范围为3.0~5.5V;

●零待机功耗;

●温度以9或12位数字;

●用户可定义报警设置;

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;

3.4串口模块

3.4.1MAX232芯片的概述

MAX232是一种双组驱动器、接收器,片内含有一个电容性电压发生器以便在单5V电源供电时提供EIA/TLA-232-E电平、每个接收器将EIA/TLA-232-E电平转换为5VTTL/CMOS电平。

这些接收器具有1.3V的典型门限值及0.5V的典型迟滞,而且可以接受±30V的输入。

每个驱动器将TTL/CMOS输入电平转换为EIA/TLA-232-E电平。

主要特点:

1、单5V电源工作

2、LinBiCOMSTM工艺技术

3、两个驱动器及两个接收器

4、±30V输入电平

5、低电源电流:

典型值是8mA

6、符合甚至优于ANSI标准EIA/TLA-232-E及ITU推荐标准V.28

7、ESD保护大于MIL-STD-883(方法3015)标准的2000V

图3-7MAX232的引脚图

3.4.2DS1302芯片的应用

DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。

采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。

图3-8MAX232电平转换电路图

3.5电源模块

电源模块是可以直接贴装在印刷电路板上的电源供应器,其特点是可为专用集成电路(ASIC)、数字信号处理器(DSP)、微处理器、存储器、现场可编程门阵列(FPGA)及其他数字或模拟负载提供供电。

第4章系统硬件设计

4.1硬件设计过程

环境测试电路的电路系统较大,电路的线路交线多,对电路的设计布局要慎重考虑,否则可能造成电路板不够用或者焊接错误的情况出现,因此布局至关重要。

焊接时对于各种锋利的引脚要注意处理,否则会刺破带皮的导线,则会对电路造成短路现象。

4.2软件设计过程

4.2.1程序流程框

4.2.2程序

详细见附录B

附录A

附录B

#include

#include

sbitP2_0=P2^0;

sbitP2_1=P2^1;

sbitP2_2=P2^2;

sbitP2_3=P2^3;

sbitP2_4=P2^4;

sbitP2_5=P2^5;

sbitP2_6=P2^6;

sbitP2_7=P2^7;

sbitP1_7=P1^7;

sbitP1_4=P1^4;

sbitDQ=P1^2;

charg=1;

floattl=0,th=0;

intta=0;

inttempe=0;

charduanma[]={0x11,0x7d,0x23,0x29,0x4d,0x89,0x81,0x3d,0x01,0x09};

charbuf[3];

//////////////////////////////////////////////////////////////////////

voiddelay(unsignedints)

{

while(s>0)s--;

}

voiddelay15us(unsignedintt)

{

do{

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();

t--;

}while(t);

}

///////////////////////////////////////////////////////////////////////

voidscan()

{

chari=0;

for(i=0;i<3;i++)

{

P2=duanma[buf[i]];

if(i==1)P2_0=0;

elseP2_0=1;

P0=~(1<

delay(2000);

}

}

///////////////////////////////////////////////////////////////////////

bitresetpulse(void)//初始化函数

{

bitt;

DQ=0;

delay15us(33);

DQ=1;

delay15us(4);

t=DQ;

delay15us(28);

return(t);

}

voidwritecommand(unsignedcharcommand)

{

unsignedchari;

//unsignedcharj;100101

for(i=0;i<8;i++)

{

if((command&0x01)==0)

{

DQ=0;

delay15us(4);

DQ=1;

}

else

{

DQ=0;

_nop_();_nop_();

DQ=1;

delay15us(4);

}

command=command>>1;

}

}

unsignedcharreaddata(void)

{

unsignedchari;

unsignedchartemp;

temp=0;

for(i=0;i<8;i++)

{

temp=temp>>1;//01010000

DQ=0;

_nop_();

_nop_();

_nop_();

DQ=1;

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

_nop_();

if(DQ==1)

{

temp=temp|0x80;

}

else

{

temp=temp|0x00;

}

delay15us(4);

}

return(temp);

}

////////////////////////////////////////////////////////

inttemperature()

{

while(resetpulse());

writecommand(0xcc);

writecommand(0x44);

delay15us(60000);

while(resetpulse());

writecommand(0xcc);

writecommand(0xbe);

_nop_();

tl=readdata();

th=readdata();

ta=((th*256+tl)/16)*10;

while(resetpulse());

returnta;

}

/////////////////////////////////////////////////////////

voidtime()interrupt1

{

scan();

}

voidmain()

{

TMOD=0x01;

ET0=1;

EA=1;

TR0=1;

while

(1)

{

tempe=temperature();

buf[2]=tempe/100;

buf[1]=tempe%100/10;

buf[0]=tempe%10;

g=P1_7;

if(g==0)

P1_4=0;

elseP1_4=1;

}

}

结论

此次课程设计完成了一个简易的环境测试仪。

这三周的实习,使我看到了自己在实践方面的经验匮乏以及基础结构知识体系的遗忘。

通过这次课程设计,使我了解了一些产品开发的基本素质和设计过程,设计要先整体构思,在理解设计要求的基础上,通过思考,查资料,初步拟订设计方案,在设计过程中还要考虑设计的经济性和实用性等。

然后在设计过程中进一步修改和完善设计方案,最后进行总结等。

对我而言,从画电路图,焊电路到最后调试,虽然我做的不够好甚至有时没有帮上忙,但是在这些过程中学到了怎样更好的与团队的其他队员沟通,去相信队友的成果怎样用恰当的方式去向队友提出问题,提出意见,来世我们的设计更合理,更美观。

知识上的收获重要,精神上的丰收更加可喜。

让我知道了学无止境的道理。

我们每一个人永远不能不能满足于现有的成就。

挫折是一份财富,经历是一份拥有。

最后感谢学校给予我们这次实习的机会,让我能找到自己的不足之处,在未来就业和工作的道路上迈出坚实的一步,同时也锻炼了我的动手能力。

在设计过程中,对应用软件的熟练程度有所提高,还从老师身上学到了很多东西。

在此感谢刘老师的耐心辅导。

参考文献

[1]张毅刚,彭喜元,董继成.单片机原理及应用.高等教育出版社,2009.2

[2]翟玉文,梁伟,艾学忠,施云贵.电子设计与实践.中国电力出版社,2005.5

[3]金炯泰.如何使用KEIL8051C编译器.北京航空航天大学出版社,2002.12

[4]求是科技编.单片机典型外围器件及应用实例.人民邮电出版社,2006.2

[5]谢维成,杨加国.单片机原理与应用及C51程序设计.清华大学出版社,2006.8

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

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

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