液位监测系统.docx
《液位监测系统.docx》由会员分享,可在线阅读,更多相关《液位监测系统.docx(19页珍藏版)》请在冰豆网上搜索。
液位监测系统
题目:
液位监测系统
液位监测系统
一、设计目的
1.采纳单片机、ADC0809、压力变送器为主要器件,设计水深检测系统;
2.经过本次课程设计加深对单片机课程的全面认识和掌握,对单片机课程的应用进一步的认识;
3.掌握准时器、外面中止的设置和编程原理;
4.经过此次课程设计能够将单片机软硬件联合起来,对程序进行编写,校验。
二、设计要求
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.单片机最小系统电路
单片机最小系统电路如图1所示,由主控器STC89C52、时钟电路和复位电
路三部分构成。
单片机STC89C52作为核心控制器控制着整个系统的工作,而时
钟电路负责产生单片机工作所必需的时钟信号,复位电路使得单片机能够正常、
有序、稳固地工作。
图1单片机最小系统
2.时钟电路
STC89C52单片机芯片内部设有一个由反向放大器所构成的振荡器。
19脚
(XTAL1)为振荡器反相放大器和内部时钟发生电路的输入端,18脚(XTAL2)为振
荡器反相放大器的输出端。
在XTAL1和XTAL2引脚上外接准时元器件,内部振荡
电路就会产生自激振荡。
本系统采纳的准时元器件为石英晶体(晶振)和电容组
成的并联谐振回路。
晶振频次为12MHz,电容大小为33pF,时钟电路如下图。
图2时钟电路(晶振)
3.复位电路
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.软件流程图
ADC0
809
信L
号E
转单片机办理D
换显
示
开始
数码管的初始化
准时器,计数器中止初始化
准时器定
时500ms
N
持续等候准时计数
数码管显示
Y
准时器0准时标记位清0
计数器1清0
结束
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软件我此刻也已经能很好的应用它了。
在电路的仿真中我发现了
接数码管的限流电阻是有必定的限制范围的,值为()欧姆。
还有我们在实质操作中也碰到了好多的问题。
但整体而言,此次课程
设计是我学会了好多东西,也学到了此后在工作单位中必定要讲究效
率与工作业绩。
八、参照文件
[1]彭介华编.电子技术课程设计指导[M].北京:
高等教育第一版社,1997
[2]张建华主编.数字电子技术[M].第2版.北京:
机械工业第一版社,2000
[3]常健生主编.检测与变换技术[M].第3版.北京:
机械工业第一版社,2003
[4]张毅刚主编.单片机原理及应用[M].北京:
高等教育第一版社,2003
[5]欧阳文主编.ATMEL89系列单片机的原理与开发实践[M].北京:
中国电力出
版社,2007
[6]李全利主编.单片机原理及技术-2版,高等教育第一版社,