资源描述
自动检测课程设计
南京工程学院
课程设计任务书
课 程 名 称 检测技术与系统课程设计
院(系、部、中心) 电力工程学院
专 业 电气工程及其自动化
目录
一、 设计要求....................................................................1
二、 功能要求....................................................................1
三、 原理及方案论证........................................................1
1、电压互感器的选型及工作原理....................................................1
1.1选型及外形.................................................................................1
1.2工作原理....................................................................1
1.3原理接线图.......................................................2
2、AT89C52单片机...................................................3
3、通用A/D转换器...................................................4
四、 硬件系统的设计及总体框图..................................6
1.1 系统仿真接线简图.............................................6
1.2总体框图................................................................7
五、小结...........................................................................8
附录1、电路仿真图......................................................8
附录2、程序..................................................................10
南京工程学院
课程设计任务书
课 程 名 称 检测技术与系统课程设计
院(系、部、中心) 电力工程学院
专 业 电气工程及其自动化
班 级
姓 名
起 止 日 期
指 导 教 师 许大宇
1.课程设计应达到的目的
通过对本课程的设计,使学生掌握常见被测量的检测原理、方法和技术,了解国内外对这些工程量进行测控的系统组建原理,通过对检测系统的设计与分析,增强学生理解和运用所学知识来解决实际问题的能力,逐步掌握根据具体测控要求、性能指标设计出先进测控系统的方法和技术。
2.课程设计题目及要求
题目:基于电压互感器的单相交流电流测量系统设计
要求:
(1)电流测量范围:0~5A .AC,检测精度: 0.1A;
(2)根据题意,明确被控对象的功能及性能指标;
(3)根据系统要求,选择合适的电流传感器(尽量选择实验室中已有的传感器);
(4)设计传感器测量电路;
(5)选择单片机的品种、型号,设计单片机的外围测量电路;
(6)计算有关的电路参数,有条件的情况下,根据实验室现有设备进行实验数据的测取,明确测量电路输出与被测非电量的关系;
(7)画出系统原理框图(此部分放在说明书的开始);
(8)画出系统电路图,最好用PROTEL画;
(9)在说明书中详细说明本系统工作原理。
3.课程设计任务及工作量的要求〔包括课程设计计算说明书、图纸、实物样品等要求〕
(1) 给出设计说明书一份;
(2) 有条件的情况下尽量给出必要的实验数据;
(3) 在说明书中附上完整的系统电路原理图(手画或用PROTEL画)。
4.主要参考文献
1、 李现明,吴皓编著.自动检测技术.北京:机械工业出版社,2009
2、 徐仁贵.单片微型计算机应用技术.北京:机械工业出版社.2001
3、 陈爱弟.Protel99实用培训教程.北京:人民邮电出版社.2000
5.课程设计进度安排
起 止 日 期
工 作 内 容
年月日
布置设计任务,熟悉课题,查找资料;
月日
结合测控对象,选择合适的传感器,理解传感器性能;
年月日
设计传感器测量电路,选择合适的单片机,设计其外围电路;
年月日
设计电路参数,有条件情况下,在实验室进行实验,进一步理解测量电路输入输出关系;
年月日
继续设计论证电路参数,完善系统设计方案;
年月日
查找资料,理解系统各部分工作原理;
年月日
理清系统说明要点,着手设计说明书的书写;
年月 日
书写设计说明书,充分理解系统每一部分作用;
年月日
完善设计说明书,准备设计答辩。
年 月 日
设计答辩。
6.成绩考核办法
平时表现30%,设计成果40%,答辩表现30%.
教研室审查意见:
教研室主任签字:
年 月 日
院(系、部、中心)意见:
主管领导签字:
年 月 日
一、设计目的
基于电压互感器的单相交流电流测量系统的设计(通过单片机对电流的测量)
二、功能要求
1、数字电流表在平常工作环境中能良好工作;
2、能测0——5A电流,检测精度0.1A;
3、A/D转换器的使用和数据采集系统的设计
4、电流表能数字显示,且由单片机处理采集数据并驱动LED显示
三、原理及方案论证
1、电压互感器的选型及工作原理
1.1选型及外形
电压电流的测量选用TVA1421型立式穿芯小型精密交流电压,电流互感器,这种通用型互感器是由两个相同副线圈构成的电流互感器,测量精度高,采用范围宽,也较灵活。
1.2工作原理
其工作原理与变压器相同,基本结构也是铁心和原、副绕组。特点是容量很小且比较恒定,正常运行时接近于空载状态。 电压互感器本身的阻抗很小,一旦副边发生短路,电流将急剧增长而烧毁线圈。为此,电压互感器的原边接有熔断器,副边可靠接地,以免原、副边绝缘损毁时,副边出现对地高电位而造成人身和设备事故。 测量用电压互感器一般都做成单相双线圈结构,其原边电压为被测电压(如电力系统的线电压),可以单相使用,也可以用两台接成V-V形作三相使用。实验室用的电压互感器往往是原边多抽头的,以适应测量不同电压的需要。供保护接地用电压互感器还带有一个第三线圈,称三线圈电压互感器
电压互感器
。三相的第三线圈接成开口三角形,开口三角形的两引出端与接地保护继电器的电压线圈联接。 正常运行时,电力系统的三相电压对称,第三线圈上的三相感应电动势之和为零。一旦发生单相接地时,中性点出现位移,开口三角的端子间就会出现零序电压使继电器动作,从而对电力系统起保护作用。 线圈出现零序电压则相应的铁心中就会出现零序磁通。为此,这种三相电压互感器采用旁轭式铁心(10KV及以下时)或采用三台单相电压互感器。对于这种互感器,第三线圈的准确度要求不高,但要求有一定的过励磁特性(即当原边电压增加时,铁心中的磁通密度也增加相应倍数而不会损坏)
1.3原理接线图
2. AT89C52单片机
AT89C52 是美国ATMEL 公司生产的低电压,高性能CMOS 8 位单片机,片内含8k bytes 的可反复擦写的只读程序存 储器(PEROM)和256 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产, 与标准MCS-51 指令系统及8052 产品引脚兼容,片内置通用8 位 央处理器(CPU)和Flash 存储单元,功能强大AT89C52 单片机适合于许多较为复杂控制应用场合。
主要性能参数
·与MCS-51 产品指令和引脚完全兼容
·8k 字节可 擦写Flash 闪速存储器
·1000 次擦写周期
·全静态操作:0Hz-24MHz
·三级加密程序存储器
·256 ×8 字节内部RAM
·32 个可编程I /O 口线
·3 个16 位定时/计数器
·8 个 断源
·可编程串行UART 通道
·低功耗空闲和掉电模式
功能特性概述
AT89C52 提供以下标准功能:8k 字节Flash 闪速存储器,256 字节内部RAM,32 个I /O 口线,3 个16位定时/计数器,一个6 向量两级 断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C52 可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3、通用A/D转换器
ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双通道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
ADC0832 具有以下特点:
◆ 8 位分辨率;
◆ 双通道 A/D转换;
◆ 输入输出电平与 TTL/CMOS 相兼容;
◆ 5V 电源供电时输入电压在 0~5V 之间;
◆ 工作频率为 250KHZ,转换时间为 32μS;
◆ 一般功耗仅为 15mW;
◆ 8P、14P—DIP(双列直插)、PICC 多种封装;
◆ 商用级芯片温宽为0°C to +70°C,工业级芯片温宽为- 40°C to +85°C;
芯片接口说明
CS_ 片选使能,低电平芯片使能。
CH0 模拟输入通道 0,或作为 IN+/-使用。
CH1 模拟输入通道 1,或作为 IN+/-使用。
GND 芯片参考 0 电位(地)。
DI 数据信号输入,选择通道控制。
DO 数据信号输出,转换数据输出。
CLK 芯片时钟输入。
Vcc/REF 电源输入及参考电压输入(复用)。
四、 硬件系统的设计及总体框图
五、 1. 系统仿真接线简图
系统仿真接线简图
本设计中用到AT89C52单片机、八位ADC AD0832、六位八段显示数码管LED,通用运放 UA741 、必要的电阻、电容元件等。系统原理方框图电路仿真见上图所示。
交流电源
电压互感器
AD转换采样 电路
AT
89
C
51
L
E
D
显示
2、 设计的总体框图
开始
写AD0832
设置状态
设置状态
读AD0832
读数×5
除256
读数×5
除256
10mA量程
0.1A量程C程
1A量程
10A量程
显示译码
读数×10
五、 小结
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,和同学一起相互探讨,相互学习。体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用,突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢我们的许大宇老师,老师严谨细致,一丝不苟的作风一直是我们学习工作中的榜样,您开朗的个性和宽容的态度,帮助我们很顺利的完成了这次的课程设计。同时感谢帮助过我们的同学,谢谢你们对我的帮助和支持,让我感受到同学的友谊。
六、 参考文献
1、 李现明,吴皓编著.自动检测技术.北京:机械工业出版社,2009
2、 徐仁贵.单片微型计算机应用技术.北京:机械工业出版社.2001
3、 陈爱弟.Protel99实用培训教程.北京:人民邮电出版社.2000
附录1.
仿真电路图
附录2
程序
#include<reg52.h>//包含相应的头文件
#include<intrins.h>
#include<math.h>
#define uchar unsigned char
#define uint unsigned int
uchar axs[6],azs[6],ac[10],dc[6];
void ITOAZ(int num,uchar *p);
void ITOAX(int num,uchar *p);
float U,U1;
sbit CS=P3^4;//定义数模转换器硬件对应引脚
sbit CLK=P3^5;
sbit DO=P3^6;
sbit DI=P3^7;
/******************读写AD0832函数****************/
/************************************************/
unsigned char ReadADC(unsigned char channel)
{
unsigned char j;
unsigned char Temp=0;
DI=1;
_nop_();
_nop_();
CS=0;//拉低CS端
_nop_();
_nop_();
CLK=1;//拉高CLK端
_nop_();
_nop_();
CLK=0;//拉低CLK端,形成下降沿1
_nop_();
_nop_();
CLK=1;//拉高CLK端
DI=(channel>>1)&0x1;
_nop_();
_nop_();
CLK=0;//拉低CLK端,形成下降沿2
_nop_();
_nop_();
CLK=1;//拉高CLK端
DI=channel&0x1;
_nop_();
_nop_();
CLK=0;//拉低CLK端,形成下降沿3
DI=1;//控制命令结束
_nop_();
_nop_();
for(j=0;j<8;j++) //处理读入8位数据
{
CLK=0;
_nop_();
Temp=(Temp<<1)|DO;
_nop_();
CLK=1;
}
CS=1;
CLK=0;
DI=1;
return(Temp); //返回转换值
}
/************************************************/
/************************************************/
/******************显示转换函数******************/
/************************************************/
//延时函数
void delay(uint n)
{
uint a;
uchar i;
for(a=n;a>0;a--)
for(i=0;i<2;i++);
}
//将浮点数转成函数
void ITOC(float f,uchar *c)
{
float zs,xs;
int bxs,bzs,i,k=0;
xs=modf(f,&zs); //分离整数部分与小数部分函数
if(P3==0XFE)
bxs=(int)((xs*100)+0.5);
else
bxs=(int)((xs*100)+0.5); //小数点后两位有效数字
ITOAX(bxs,axs); //把小数部分转换成字符串存入axs数组
bzs=(int)zs; //把整数部分转成整型
ITOAZ(bzs,azs); //把整数部分转换成字符串存入azs数组
for (i=0;axs[i]!='s';i++) //把最终结果存入c数组
c[i]=axs[i];
c[i]='.';
for(k=0,i=i+1;azs[k]!='s';k++,i++)
c[i]=azs[k];
if(U<0) c[i]='-';
else c[i]=0xff;
c[i+1]='s';
}
//将整型数转换成对应的
void ITOAZ(int num,uchar *p)
{
uchar w,i=0;
do
{
w=num%10; //将整型数各位分离,并转换成对应的字符存入a中
p[i]=w;
num=num/10;
i++;
}while(num);
p[i]='s';
}
//将小数数部分转换成对应的
void ITOAX(int num,uchar *p)
{
uchar w,i=0;
do
{
w=num%10; //将整型数各位分离,并转换成对应的字符存入a中
p[i]=w;
num=num/10;
i++;
}while(num);
while(i<2)
{p[i]=0;i++;}
p[i]='s';
w=p[i];
}
//显示译码函数
void decode(uchar *n,uchar *dn)
{uchar i;
for(i=0; n[i]!='s';i++)
{switch( n[i])
{case 0: dn[i]=0x3F;break;
case 1: dn[i]=0x06;break;
case 2: dn[i]=0x5B;break;
case 9: dn[i]=0x6F;break;
case 3: dn[i]=0x4F;break;
case 4: dn[i]=0x66;break;
case 5: dn[i]=0x6D;break;
case 6: dn[i]=0x7D;break;
case 7: dn[i]=0x07;break;
case 8: dn[i]=0x7F;break;
case 46: dn[i]=0x80;break;
case'-':dn[i]=0x40;break;
default:dn[i]=0x00;break;
}
}
dn[i]='s';
}
/************************************************/
/************************************************/
/********************主换函数********************/
/************************************************/
void main(void)
{
uchar i,j,P2_;
float A;
while(1)
{
U=ReadADC(0)/256.0;
switch(P1)
{case 0xfe:A=U*10*1.025;break;
case 0xfd:A=U*100/1.09;break;
case 0xfb: A=U*1000;break;
default: A=0.0;break;
}
A=10*A;
ITOC(A,ac);
decode(ac,dc);
P2=0XFf;
P2_=0Xfe;
for(j=0;dc[j]!='s';j++)
{P2=0XFf;
P0=dc[j];
P2=P2_;
delay(150);
P2_=_crol_(P2_,1);
/*P2_<<=1;*/
}
}
}
17
展开阅读全文