单片机组专业综合训练报告Word文档格式.docx
- 文档编号:3765687
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:23
- 大小:400.68KB
单片机组专业综合训练报告Word文档格式.docx
《单片机组专业综合训练报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机组专业综合训练报告Word文档格式.docx(23页珍藏版)》请在冰点文库上搜索。
(6)调试程序,实现信号的实时采集和液位的两点和连续控制。
3.3系统组成
本装置主要由89C52、逐次逼近式转换器MAX197、驱动电路、LCD显示器、Festo控制台等组成。
3.3过程控制原理
利用超声传感器或流量传感器把液位或流量信号变为0-10v的电压信号,经数据采集卡的模拟输入通道采集到计算机,由单片机根据实测信号和设定值发出控制信号,经NI-6221数据采集卡的模拟输出通道输出0-10v的信号控制泵的驱动器,从而改变泵的开启或关闭,达到控制液位或流量的目的,系统组成结构下图所示。
设定值
4、硬件设计
液位控制的硬件主要包括由单片机、Festo控制台、LCD液晶显示器、A/D转换器和输出控制电路等。
4.1FESTO过程控制系统介绍
德国FESTOPCS过程控制培训系统以模块化的结构详细地模拟了实际工业生产加工的控制过程。
FESTO紧凑型过程控制系统综合温度、流量、液位及压力四种工业过程控制中的典型环节,通过手动阀不同的开关组合,实现不同的控制回路。
根据不同的控制对象应用不同的程序,来完成对独立控制系统的控制。
图4-1FESTO过程控制系统
紧凑过程控制系统结构如图4-2所示。
B101超声波液位传感器,B102流量传感器,B103压力传感器、压力表,B104PT100温度传感器。
B113,B114电容式临近开关,S112浮子式液位开关,S111溢出报警液位开关。
P101离心泵、离心泵控制电机,V106比例控制阀,Eio4加热器,V1o2气动控制阀。
PressureTank102压力罐,Tank101,tank102上、下水箱,手动阀,I/O终端,Easyport。
图4-2紧凑过程控制系统结构示意图
4.2测量信号输入与控制信号输出
4.2.1数字信号输入
输入位
描述
流量传感器数字信号
1
下水箱溢出报警液位开关S111
2
上水箱液位开关S112
3
下水箱液位下限开关B113
4
下水箱液位上限开关B114
5
气动控制阀V102关闭
6
气动控制阀V102打开
7
未用到
表4-1数字信号输入
4.2.2数字信号输出
输出位
气动控制阀V102打开/关闭标准值0
加热器E104打开/关闭标准值0
选择泵模拟量控制或数字量控制,为0时,泵处于数字量控制(标准值)为1时,泵处于模拟量控制
当泵为数字量控制时,控制泵打开/关闭
激活比例阀
表4-2数字信号输出
4.2.3模拟量输入
输入通道
液位信号
流量信号
压力信号
温度信号
表4-3模拟信号输入
4.2.4模拟量输出
输出通道
泵模拟量控制信号
要求泵处于模拟量控制状态
输出电压能在0~10V范围内变化
比例阀模拟量控制信号
要求比例阀处于激活状态
4.3单片机
单片机采用由蓝海微芯公司生产的40脚AT89C52芯片。
其中,P0口用于A/D转换和显示;
P1口连接一个3×
5的键盘;
P2口用于控制电磁阀和水泵动作;
P3口用于读写控制和中断等。
5、软件设计
7系统测试
单片机的程序设计调试分为两种,一种是使用软件模拟调试,意思就是用开发单片机程序的计算机去模拟单片机的指令执行,并虚拟单片机片内资源,从而实现调试的目的,但是软件调试存在一些问题,如计算机本身是多任务系统,划分执行时间片是由操作系统本身完成的,无法得到控制,这样就无法时时的模拟单片机的执行时序,也就是说,不可能像真正的单片机运行环境那样执行的指令在同样一个时间能完成(往往要完成的比单片机慢)。
为了解决软件调试的问题,第二种是硬件调试,硬件调试其实也需要计算机软件的配合,大致过程是这样的:
计算机软件把编译好的程序通过串行口、并行口或者USB口传输到硬件调试设备中(这个设备叫仿真器),仿真器仿真全部的单片机资源(所有的单片机接口,并且有真实的引脚输出),仿真器可以接入实际的电路中,然后与单片机一样执行。
同时,仿真器也会返回单片机内部内存与时序等情况给计算机的辅助软件,这样就可以在软件里看到真实的执行情况。
不仅如此,还可以通过计算机断的软件实现单步、全速、运行到光标的常规调试手段。
8、结论
本文设计了一套基于单片机的液位控制系统。
以LJD—51—A+单片机为开发环境,以德国FESTO过程控制系统教学实验台为控制对象,编写单片机程序实现了对液位的实时测量与控制。
设计的控制系统经过实际测试系统稳定可靠,控制响应速度快,曲线变化平稳,完全满足了液位控制要求,并运用LCD液晶显示器进行显示,克服了单片机人机交互差的缺点。
尤其是其扩展性很好,可以随时添加更加先进的控制算法以及其它如流量、压力控制功能,而且开发周期很短。
本文设计的液位控制系统已经成功的应用于教学和实验中,取得了良好的调节效果。
因此,该系统具有推广使用价值。
9、参考文献
【1】高锋.单片微型计算机原理与接口技术[M].北京:
科学出版社,2003.
【2】郑风翼.电工仪表与测量[M]一E京:
人民邮电出版社。
1999.
【3】房小翠,王金凤.单片机实用系统设计技术.北京:
国防工业出版社。
【4】李朝晖,吴新峰.单片机控制的自来水节能加热装置[J].自动化博览,1999.
【5】网络资源:
XX百科21IC中国电子网
10、附录
10.1LJD—51—A+单片机原理图
10.2液位控制电路图
10.3程序清单
10.3.1两点液位控制
#include<
reg52.h>
#include<
absacc.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineADLOXBYTE[0x9000]
#defineADHIXBYTE[0x9001]
sbitM0=P1^2;
sbitM1=P1^3;
uchars1[]={0xf0,0x5a,0x15,0x00,0x25,0x80,0xa5,0xf0};
uchars2[]={0xf0,0x5a,0x82,0x00,0xff,0x00,0xa5,0xf0};
uchars3[]={0xf0,0x5a,0x85,0xff,0x25,0x80,0xa5,0xf0};
uchars4[]={0xf0,0x5a,0x89,0x4C,0x43,0x44,0xa5,0xf0};
uchardat;
ucharadbusy=0;
uintresult,oresult;
uchari=0;
voiddelay(ucharx)
{
while(x--);
}
voiddianji(ucharx)
switch(x)
{
case0:
M0=0;
M1=0;
break;
case1:
M0=1;
M1=0;
break;
default:
;
break;
}
uintad197(void)
{ADLO=0X50;
while(adbusy==0);
adbusy=0;
result=(ADHI<
<
4)+(ADLO&
0x0f);
result=result*30;
result=result/51;
return(result);
voidInit_Com(void)
TMOD=0x21;
PCON=0x00;
SCON=0x50;
TH1=0xfd;
TL1=0xfd;
TR1=1;
voidinit_time0(void)
TH0=(65536-20000)/256;
TL0=(65563-20000)%256;
TR0=1;
ET0=1;
EA=1;
voidtimer0(void)interrupt1using2
i++;
voidsiod(void)interrupt4using1
{
if(RI)
dat=SBUF;
RI=0;
SBUF=dat;
if(TI)
TI=0;
voidinter1(void)interrupt2using0
adbusy=1;
main()
ucharj;
init_time0();
Init_Com();
EX1=1;
ES=1;
for(j=0;
j<
8;
j++)
SBUF=s1[j];
delay(200);
ad197();
oresult=result;
delay(200);
while
(1)
if(i==10)
{
ad197();
i=0;
}
for(j=0;
SBUF=s2[j];
delay(200);
SBUF=s3[j];
delay(200);
SBUF=0xf0;
SBUF=0X5A;
SBUF=0X89;
SBUF=result/100+0x30;
SBUF=result%100/10+0x30;
SBUF=result%100+0x30;
SBUF=0xa5;
SBUF=0Xf0;
if(result>
oresult)
if(result<
30)
dianji
(1);
else
dianji(0);
else
if(result>
=100)
dianji(0);
else
dianji
(1);
oresult=result;
10.3.2连续液位控制
string.h>
sbitM0=P1^0;
sbitM1=P1^1;
uinthigh,time,period=120;
ucharPWM;
typedefstructPID
doubleSetPoint;
doubleProportion;
doubleIntegral;
doubleDerivative;
doubleLastError;
doublePrevError;
doubleSumError;
}PID;
doublePIDCalc(PID*pp,doubleNextPoint)
doubledError,Error;
Error=pp->
SetPoint-NextPoint;
pp->
SumError+=Error;
dError=Error-pp->
LastError;
PrevError=pp->
LastError=Error;
return(pp->
Proportion*Error+pp->
Integral*pp->
SumError+pp->
Derivative*dError);
}
voidPIDInit(PID*pp)
memset(pp,0,sizeof(PID));
M0=PWM;
ADLO=0X40;
TMOD=0x11;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
voidinit_time1(void)
TH1=(65536-20000)/256;
TL1=(65563-20000)%256;
TR1=1;
ET1=1;
voidtimer0(void)interrupt1using0
TL0=(65563-1000)%256;
if(++time==high)
PWM=0;
elseif(time==period)
{
time=0;
PWM=1;
}
voidtimer1(void)interrupt3using2
voidinter1(void)interrupt2using1
PIDsPID;
doublerOut;
doublerIn;
PIDInit(&
sPID);
sPID.Proportion=0.01;
sPID.Integral=0;
sPID.Derivative=0;
sPID.SetPoint=100.0;
init_time1();
{if(i==10)
{rIn=ad197();
rOut=PIDCalc(&
sPID,rIn);
high=rOut*120;
if(high>
=120)
else
10.3.3AD转换(汇编)
AD197LEQU9000H
AD197HEQU9001H
ORG0000H
AJMPMAIN
ORG0013H
LJMPXAD
ORG0030H
MAIN:
MOVIE,#84H
MOVTCON,#00H
MOVDPTR,#AD197L
MOVA,#40H
MOVX@DPTR,A
SJMP$
**********************************
*A/D197的中断子程序*
XAD:
CLREX1;
关中断
PUSHDPH
PUSHDPL
PUSHACC
LCALLREADAD
POPACC
POPDPL
POPDPH
RETI
;
*****************************************
读AD结果
READAD:
MOV40H,#00H
MOV41H,#00H
MOVDPTR,#9000H;
读入高8位结果放入41H
MOVXA,@DPTR
MOV41H,A
INCDPTR
MOVXA,@DPTR;
读入低4位结果放入40H
ANLA,#0FH
MOV40H,A
MOVA,41H
SWAPA
ORLA,40H
ANLA,#0F0H
RET
END
工作细分表
工作
人员
程序
PPT制作
电路图绘制
实验总报告
王云霄(组长)
部分程序
部分工作
进行监督
全部工作
卢爱青
主要程序
提供意见
张谦
部分了解
主要负责
袁大力
辅助工作
姓名
成绩自评
王云霄
优
李远
良
张谦
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片 机组 专业 综合 训练 报告