课程设计任务书
课 程 名 称 检测技术与系统课程设计
院(系、部、中心)
专 业 电气工程及其自动化
班 级
学 号
姓 名
起 止 日 期
指 导 教 师 许大宇
1、设计要求....................................................................1
2、功能要求....................................................................1
3、原理及方案论证........................................................1
1、电流互感器的选型及工作原理........................................................1
1.1选型及外形..............................................................................1
1.2工作原理.................................................................1
1.3原理接线图.............................................................2
2、ATC52单片机........................................................3
3、通用A/D转换器........................................................4
4、硬件系统的设计及总体框图.....................................6
1、系统仿真接线简图......................................................6
2、总体框图.......................................................................7
五、小结...............................................................................8
六、参考文献.......................................................................8
附录、单片机程序................................................................8
南京工程学院
课程设计任务书
课 程 名 称 检测技术与系统课程设计
院(系、部、中心) 电力工程学院
专 业
班 级
姓 名
起 止 日
指 导 教 师 许大宇
1.课程设计应达到的目的 |
通过对本课程的设计,使学生掌握常见被测量的检测原理、方法和技术,了解国内外对这些工程量进行测控的系统组建原理,通过对检测系统的设计与分析,增强学生理解和运用所学知识来解决实际问题的能力,逐步掌握根据具体测控要求、性能指标设计出先进测控系统的方法和技术。 |
2.课程设计题目及要求 |
题目:基于电流互感器的单相交流电流测量系统设计 要求: (1)电压测量范围:0~5A .AC,检测精度: 0.1A; (2)根据题意,明确被控对象的功能及性能指标; (3)根据系统要求,选择合适的电流传感器(尽量选择实验室中已有的传感器); (4)设计传感器测量电路; (5)选择单片机的品种、型号,设计单片机的外围测量电路; (6)计算有关的电路参数,有条件的情况下,根据实验室现有设备进行实验数据的测取,明确测量电路输出与被测非电量的关系; (7)画出系统原理框图(此部分放在说明书的开始); (8)画出系统电路图; (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. ATC52单片机
ATC52 是美国ATME 公司生产的低电压,高性能CMOS 8 位单片机,片内含8k bytes 的可反复擦写的只读程序存 储器(PEROM)和256 bytes 的随机存取数据存储器(RAM ),器件采用ATMEL 公司的高密度、非易失性存储技术生产, 与标准MCS-51 指令系统及8052 产品引脚兼容,片内置通用8 位 央处理器(CPU)和Flash 存储单元,功能强大ATC52 单片机适合于许多较为复杂控制应用场合。
2.1 主要性能参数
·与MCS-51 产品指令和引脚完全兼容
·8k 字节可 擦写Flash 闪速存储器
·1000 次擦写周期
·全静态操作:0Hz-24MHz
·三级加密程序存储器
·256 ×8 字节内部RAM
·32 个可编程I /O 口线
·3 个16 位定时/计数器
·8 个 断源
·可编程串行UART 通道
·低功耗空闲和掉电模式
2.2功能特性概述
ATC52 提供以下标准功能:8k 字节Flash 闪速存储器,256 字节内部RAM,32 个I /O 口线,3 个16位定时/计数器,一个6 向量两级 断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,ATC52 可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU 的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
3、通用A/D转换器
ADC0832 是美国国家半导体公司生产的一种 8 位分辨率、双道 A/D 转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。
3.1 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;
3.2芯片接口说明:
CS 片选使能,低电平芯片使能。
CH0 模拟输入通道 0,或作为 IN+/-使用。
CH1 模拟输入通道 1,或作为 IN+/-使用。
GND 芯片参考 0 电位(地)。
DI 数据信号输入,选择通道控制。
DO 数据信号输出,转换数据输出。
CLK 芯片时钟输入。
Vcc/REF 电源输入及参考电压输入(复用)。
4、硬件系统的设计及总体框图
1、 系统仿真接线简图
系统仿真接线图
本设计中用到ATC52单片机、八位ADC AD0832、六位八段显示数码管LED,通用运放 UA741 、必要的电阻、电容元件等。系统原理方框图电路仿真见上图所示。
2、 设计的总体框图
5、小结
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,和同学一起相互探讨,相互学习。体现出自己单独设计的能力以及综合运用知识的能力,体会了学以致用,突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。在此感谢我们的许大宇老师,老师严谨细致,一丝不苟的作风一直是我们学习工作中的榜样,您开朗的个性和宽容的态度,帮助我们很顺利的完成了这次的课程设计。同时感谢帮助过我们的同学,谢谢你们对我的帮助和支持,让我感受到同学的友谊。
6、参考文献
1、 李现明,吴皓编著.自动检测技术.北京:机械工业出版社,2009
2、 徐仁贵.单片微型计算机应用技术.北京:机械工业出版社.2001
3、 陈爱弟.Protel99实用培训教程.北京:人民邮电出版社.2000
附录
单片机程序:
#include #include #include #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;*/ } } }