液位监测系统.docx

上传人:b****5 文档编号:5759250 上传时间:2023-01-01 格式:DOCX 页数:10 大小:187.19KB
下载 相关 举报
液位监测系统.docx_第1页
第1页 / 共10页
液位监测系统.docx_第2页
第2页 / 共10页
液位监测系统.docx_第3页
第3页 / 共10页
液位监测系统.docx_第4页
第4页 / 共10页
液位监测系统.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

液位监测系统.docx

《液位监测系统.docx》由会员分享,可在线阅读,更多相关《液位监测系统.docx(10页珍藏版)》请在冰豆网上搜索。

液位监测系统.docx

液位监测系统

题目:

液位监测系统

液位监测系统

一、设计目的

.采用单片机、ADC0809、压力变送器为主要器件,设计水深检测系统;

.通过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的了解;

.掌握定时器、外部中断的设置和编程原理;

.通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。

二、设计要求

1.压力变送器输出为4-20mA电流信号,通过转换电路把其转换为电压信号;

2.处理模拟信号并显示其实际水的深度数值。

三、设计器材

器件

个数

器件

个数

STC89C52

1

晶振(12M)

1

ADC0809

1

22uf电容

1

直流电机

1

1KΩ电阻

1

9012型三极管

4

10KΩ电阻

1

开关

1

10Ω电阻

1

4位数码管

1

470Ω电阻

1

底座

2

液位变送器

1

四、设计方案及分析

.单片机最小系统电路

单片机最小系统电路如图1所示,由主控器STC89C52、时钟电路和复位电路三部分组成。

单片机STC89C52作为核心控制器控制着整个系统的工作,而时钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、有序、稳定地工作。

图1单片机最小系统

.时钟电路

STC89C52单片机芯片内部设有一个由反向放大器所构成的振荡器。

19脚(XTAL1)为振荡器反相放大器和内部时钟发生电路的输入端,18脚(XTAL2)为振荡器反相放大器的输出端。

在XTAL1和XTAL2引脚上外接定时元器件,内部振荡电路就会产生自激振荡。

本系统采用的定时元器件为石英晶体(晶振)和电容组成的并联谐振回路。

晶振频率为12MHz,电容大小为33pF,时钟电路如图所示。

图2时钟电路(晶振)

.复位电路

STC89C52的复位是由外部的复位电路来实现的,复位电路通常采用上电复位和按钮复位两种方式,本设计采用的是最按钮复位电路,其电路图如图所示。

图3复位电路

4.数码管显示电路

LED又称为数码管,它主要由8段发光二极管组成的不同组合,可以显示a~g为数字和字符显示段,h段为小数点显示,通过a~g为7个发光段的不同组合,可以显示0~9和A~F共16个数字和字母。

LED可以分为共阴极和共阳极两种结构。

共阳极结构即把8个发光二极管阳极连在一起。

这种装入数码管中显示字形的数据称字形码,又称段选码。

本设计用到的是LED显示器静态显示方式,其电路如图所示是发光二极管显示器(LED)的结构、工作原理及接口电路。

图4数码管电路

五、问题分析与解决方法

问题1.连接硬件电路时错将NPN三极管当作了PNP。

问题2.数码管显示太亮。

问题3刚连接好电路时数码管显示灯不亮,原因是接入的保护电阻本来是10Ω而我们接的是10KΩ的电阻,换了电阻后数码管就亮了。

六、设计结果

1.方案图

2.总体电路原理图

3.软件流程图

4.软件设计

#include

typedefunsignedcharuint8;

typedefunsignedintuint16;

typedefunsignedlonguint32;

uint8a[5];

uint8j=0;

sbiteoc=P3^1;

sbitoe=P3^0;

sbitst=P3^2;

sbitADDR0=P2^0;

sbitADDR1=P2^1;

sbitADDR2=P2^2;

sbitADDR3=P2^3;

sbitclock=P2^4;

bitflag=0;

codeuint8table[]={0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90};

voiddelay()//延时子函数

{

uint8i,K;

for(i=1;i>0;i--)

for(K=10;K>0;K--);

}

voiddiplay()

{

switch(j)

{

case0:

ADDR0=1;ADDR1=1;ADDR2=1;ADDR3=0;

j++;

P0=table[a[0]];delay();//显示第一位数码管

break;

case1:

ADDR0=1;ADDR1=1;ADDR2=0;ADDR3=1;

j++;//显示第二位

P0=table[a[1]];delay();

break;

case2:

ADDR0=1;ADDR1=0;ADDR2=1;ADDR3=1;

j++;

P0=table[a[2]];delay();//显示第三位

break;

case3:

ADDR0=0;ADDR1=1;ADDR2=1;ADDR3=1;

j++;

P0=table[a[3]];delay();//显示第四位

break;

case4:

ADDR0=0;ADDR1=0;ADDR2=0;ADDR3=0;

j=0;

P0=table[a[4]];delay();//显示第四位

break;

default:

break;

}

}

voidtimer0()interrupt1

{

flag=~flag;

clock=flag;

}

main()

{

uint16temp=P1;

TMOD=0x02;

TL0=0xFF;

TH0=0xFF;

TR0=1;

EA=1;

ET0=1;

while

(1)

{

st=0;//给start一个上升沿脉冲,将内部所有寄存器清零

st=1;

st=0;//给start一个下降沿脉冲,开启AD转换

while(!

eoc)//转换结束标志

oe=1;//允许输出转换后的数据

temp=P1;//定义temp,用于表示从0809接收的数据

oe=0;

a[3]=temp/1000;//ADC来的数据的各个位

a[2]=(temp/100)%10;

a[1]=(temp/10)%10;

a[0]=temp%10;

diplay();

}

}

七、设计体会与收获

历经两个星期的单片机课程实习,我们对Keil软件,Proteus仿真软件更加熟练,对单片机的实际运用有了了解。

我们的课程设计题目是液位测量,需要利用C51,以及0809芯片等器件搭成仿真电路,通过改变电阻从而来改变液位,通过显示管显示出结果。

通过这次实习,我学到的不仅是那些知识,更多的是团队和合作。

现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!

自我感觉,实习之前我对单片机的实际运用掌握的远远不够,对相关的软件也不是很熟练,对这次的课程设计更是摸不着头脑,不知道从哪下手,软件编程只会写它的一部分,不能将整体连接起来,对于硬件仿真,我也是一头雾水,就这样,我一边学一边做,我们组的组员也都耐心的给我讲解,葛浩给我讲了软件的调试,以及这两个软件的运用,李国强给我分析了程序的功能,让我进一步对每条语句的功能有了更深的理解,在后期的硬件调试中,李欢给我说了我不懂的硬件问题,就这样,通过合作,通过学习,我又学到了很多东西。

在后期的焊板子的过程中,这项看起来不需要多少技术的工作却是非常需要耐心和精力在两个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结。

作为一名自动化专业的学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。

在已度过的大学时间里,我们大多数接触的是专业课。

我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?

如何把我们所学的专业基础课理论知识运用到实践中去呢?

我想做类似的课程设计就为我们提供了良好的实践平台。

在做本次课程设计的过程中,我感触最深的当属查阅设计资料了。

为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。

其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:

汇编语言、模拟和数字电路知识等。

虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。

同时,课程实习中的提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。

通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好的榜样。

每个小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的,在以后的学习工作中,我会积极锻炼自己的这种能力,让自己做的更好!

通过这次课程设计,我不仅仅是在知识上有丰富的收获,在团队合作上有更大的丰富经验。

老师在我们团队分工上指出了很多。

在实验中参考了一些书籍,但是设计和实际有很大的差距。

最突出的是:

设计好的电路,在模拟仿真中能够实现,但在连接实际电路中问题多多;就在四位七段数码管前接地时,我们通过计算估计出需要的电阻值(8.7——12.3)欧姆,后来也在模拟实验中也调试了,发现只有在这个区间,四位七段数码管才能正常工作。

还有在使用三级管上也有收获,三极管有npn和pnp两种之分,还有再放大功能上同类的不同型号的放大值不同,通过实验法测得只有型号为9012的三极管符合要求。

但是实际电路问题还有的,我用万用表测得有个功能管角也存在设置问题,后来查看程序发现初始化设置不完整,缺少高低电平的初始化。

经过我们反复检查模拟电路和程序已经能很好的运行,实际电路还是有误差,这可能是实际电路中有的电阻值过大或电路中功率过大导致的。

这次是课程设计我们从中的受益匪浅。

本次历经两周的课程设计,我们做的是液位检测系统的设计,其中包括相关资料的查找,资料的整理,然后是电路仿真,硬件电路的焊接,C51程序的编写,调试等,本次实验我主要负责硬件电路的焊接及写实验报告的工作,以前我对仿真软件protus不太熟悉,本次实验通过其他组员用该软件仿真我也对该软件的基本功能有了比较深得了解,在实验中也遇到许多问题,比如把保护电阻阻值接的太大导致数码管不亮,还有在连硬件电路时由于前几天做的比较慢所以连的比较粗心,错把NPN当作PNP连到了电路中导致显示结果与仿真结果不符合。

虽然最后还是没能达到和仿真结果一样的结果但在实验中我学会了解决基本问题的能力;做什么事都应该认真的去做,这是走向社会也很实用的东西。

通过这两个星期的课程设计,我们组主要做液位监测系统,我主要负责电路的设计、仿真、程序的调试。

在电路的仿真中我学会了protues这个软件,它能仿真很多电路,只要能在它上面实现的电路,在实际电路中都能实现,只要哪里有错,我们直接在那上面改错既可以了,这样就节省了很多的器材。

对于这个软件,我现在已经能很好的运用了。

在程序的调试中,我们找了很多文献和资料,通过这学期对单片机的学习,我们已经能较好的掌握它,在实际中应用它,调试程序的keil软件我现在也已经能很好的应用它了。

在电路的仿真中我发现了接数码管的限流电阻是有一定的限制范围的,值为(8.4-11.6)欧姆。

还有我们在实际操作中也遇到了很多的问题。

但总体而言,这次课程设计是我学会了很多东西,也学到了以后在工作单位中一定要讲究效率与工作业绩。

八、参考文献

[1]彭介华编.电子技术课程设计指导[M].北京:

高等教育出版社,1997

[2]张建华主编.数字电子技术[M].第2版.北京:

机械工业出版社,2000 

[3]常健生主编.检测与转换技术[M].第3版.北京:

机械工业出版社,2003

[4]张毅刚主编.单片机原理及应用[M].北京:

高等教育出版社,2003

[5]欧阳文主编.ATMEL89系列单片机的原理与开发实践[M].北京:

中国电力出版社,2007

[6]李全利主编.单片机原理及技术-2版,高等教育出版社,2009.1

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

当前位置:首页 > 医药卫生 > 基础医学

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

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