《西华大学电气信息学院智能化测控应用系统设计报告.docx》由会员分享,可在线阅读,更多相关《西华大学电气信息学院智能化测控应用系统设计报告.docx(28页珍藏版)》请在课桌文档上搜索。
1、西华大学电气信息学院智能化测控应用系统设计报告目录1前言22总体方案设计32.1方案比较32.1.1方案一32.1.2方案二32.1.3方案三42.2方案论证52.3方案选择53单元模块设计53.1各单元模块功能介绍及电路设计53.2各单元模块53.2.1电压电流采样模块设计53.2.2按键和复位模块设计63.2.3数码显示电路模块设计83.2.4电源电路设计93.2.5基准电压电路设计103.3 电路参数的计算及元件选择103.4 特殊器件的介绍113.4.1TL431芯片简介113.4.2STCI2C52A06S2单片机简介114软件设计124.1 说明软件设计原理及所用工具124.2 软
2、件设计结构及其功能134.3 软件设计流程框图145系统调试155.1 调试环境155.2 硬件调试166系统功能、指标参数166.1 系统能实现的功能166.2 系统指标参数测试166.3 系统功能及指标参数分析177结论188总结与体会199谢辞2010【参考文献】21附录1系统的原理电路图22附录2系统PCB图25附录3设计实物图25附录4程序代码261.前言当今时代,电子器件广泛应用于各行各业,功率作为表征电信号能量的基本参数,对其的测量非常重要,现在市面上也有很多测量功率的仪器。作为电气专业的我们,更是要掌握功率的测量方法,因此,我们选择了直流功率计的设计。随着单片机在各个领域的广泛
3、应用,许多用单片机作控制测量系统也应运产生,本课程制作就是利用宏晶公司的STC系列单片机STC12C5A32S2编程控制LED七段数码管完成功率大小的计算和动态显示,设计中我们通过电阻分压采样负载两端电压,通过在被测点串联一个很小的电阻测其两端电压,间接进行电流采样,将所采集的电压经过适当放大后送入单片机,然后由程序控制单片机计算出被测电路的直流输入功率并显示在数码管上,且能用键盘切换显示负载电压和被测点电流。另外在单片机工作过程中,工作电压有变化,所以额外加入一个基准电压,以确保所采样的电压准确。这个功率计能测量被测负载电压不超过25V,被测电流不超过2A的直流电路的输入功率(精确到小数点后
4、6位),能在两个四位七段LED数码管上直观的动态显示出功率大小,并能通过键盘切换显示被测负载的电压和电流大小。通过此次直流功率计的设计,使我更加熟悉有关单片机开发设计原理及方法,并能使自己加深了对单片机的理解和运用以及掌握了单片机与外围接口的方法和技巧,这些主要体现在以下方面:1 .学会了单片机总线控制方式的运用,懂得了利用单片机内部A/D转化简化外部电路,节约成本,同时在此基础上扩展了一些实用性强的外围电路。2 .可以了解到LED显示器的结构、工作原理以及这种显示器的接口实例。3 .怎样扩展显示接口、如何驱动外围元件等。4 .了解了通过电压间接测电流和电流电压同步采样的方法。2总体方案设计通
5、过查阅大量相关技术资料,并结合自己的实际知识,我们主要提出了三种技术方案来实现系统功能。下面我将首先对这三种方案的组成框图和实现原理分别进行说明,并分析比较它们的特点,然后阐述我最终选择方案的原因。2.1 方案比较2.1.1 方案一本方案的整体思路是:根据功率计算公式P=U/,要计算功率我们需要知道负载的电压和电流,因此首先对电路中被测负载进行电压采样和电流采样,将采样的电压送入单片机,由单片机内部集成的A/D转换电路对采样进行模数转换,然后通过编写程序让单片机计算出功率并将功率大小显示在LED数码管上,且能通过按键切换显示负载电压和被测电流,由于在单片机实际工作过程中,电压有可能发生变化,为
6、确保采集的电压的准确性,因此额外提供了一个基准电压。方案一整体结构框图如图2-1-1所示:图2TT方案一系统结构框图2.1.2方案二方案二总体思路是:在被测电路中进行电压采样和电流采样后,先由外部器件进行A/D转换,再送入单片机计算和显示,这里的单片机只需要一般的不自带A/D转换的单片机就行了。系统框图如图2-1-2所示:图2-1-2方案二系统结构框图1.1. 3方案三方案三的总体思路就是用一个功率传感器,直接采集被测电路的功率送入单片机,由单片机控制LED数码管显示出功率大小。系统框图如图2-1-3所示:2. 2方案论证方案一电压和电流采样后采用单片机自带的A/D转换器进行A/D转换,节约了
7、成本,简化了外围电路,而且方案一外加了基准电压,使电路进行A/D转换时有基准,克服了单片机实际工作时电压不稳定的情况,使测量结果更加准确,方案二采用外接A/D转换器进行数模转换,提高了成本,也使外围电路复杂化了,方案三虽然简单,但是传感器价格昂贵,而且方案三没有起到通过这次课程设计让我们对所学知识进行实际应用的能力。2. 3方案选择本设计是利用单片机测量被测负载的直流输入功率,并要求显示,通过以上对三个方案的论证,方案一既能相对准确的测量功率,还能将我们所学知识进行实际运用,是我们对所学知识进一步掌握,而且成本低,电路简洁明了,符合设计要求;方案二相对方案一成本较高,电路叫复杂;方案三成本高。
8、综合考虑我们选择了方案一。3单元模块设计2.1 各单元模块功能介绍及电路设计本系统主要分为电压采样,电流采样,按键复位及档位选择,数码显示,电源电路的设计等模块。各单元模块功能及相关电路的具体说明如下。3. 2各单元模块3.1.1 电压电流采样模块设计电压和电流需要同步采样,采样的方式有很多,本次设计中我们采用电阻分压采样电压,对于电流采样,我们通过电压进行间接采样,具体方式是在电路中串联一个很小的电阻,通过测这个很小的电阻两端的电压,根据/=2得到电路电流,这个小R电阻我们利用3个0.33和一个0.1的电阻并联得到,采样所得的电压可能很小要经过适当放大再送入单片机。电路中运放0P07采用外接
9、双电源供电。电压电流采样电路如图3-2-1所示。电压电流采样电路如图3-2-1所示3.2.2按键和复位模块设计单片机采用总线控制方式,由单片机P2.7、P2.6和P2.5作片选控制信号,通过74HCI38译码器来选通。74HC138是一个3-8译码器。74HCI38的A、B、C与单片机的P2.5、P2.6和P2.7相连通,我们可以通过程序控制P2.5、P2.6、P2.7的输出进而控制3-8译码器的输出,从而达到选位的目的。其选通情况如表3-2-2,位选电路如图3-2-2(a)o表3-2-2P2.7P2.6P2.5CBA选位情况001001Yl输出低电平即第1位被选中011011Y3输出低电平即
10、第3位被选中100100Y4输出低电平即第4位被选中RSTRXDTxD IX H) INTI TOWRK 7STCl 2C5A16S214JCS IV9C5 2C18白OppRDl_o12_oXlI 1.0592PI.0/ADC0/CLCK2P0.0PI.1/ADCIPOJPI.2ADC2BC!4.5NXVP4 .423P22I)X22P21AD238AD!37AD236AD335ArM34AD533AD632AD725P 24AD5 7-)cDdddddd 一CC 12 3 4 5 6 7IC3 74IICI S图3-2-2(a)位选电路当丽和CS3任一位为低电平时输入缓冲器74HC541工
11、作,此时按键有效,键盘分为8个独立按键,一端与74HC541的D1-D8引脚及IOK上拉电阻相连,另一端接地,当任一按键按下时,D1-D8低电平有效对应的QI-Q8输出就可以对单片机PO口输入信号进行相应控制,比如KEY4可以切换数码管显示功率、电压和电流。模拟量输入就是把采样的电压输入单片机A/D转换引脚。电路图如图3-2-2(b)所示:WKKlKK2.KEY4KEY4KEY4KEY4KEY44 KEY41 KEY4I KEY4ADO ADl AD2 757 ADl AD5 AU6 AD7-IC4D74HC02IC4A74HCO2图3-2-2(b)按键和复位电路3. 2.3数码显示电路模块设
12、计本设计制作中选用两个四位共阳极数码管作为显示模块,由丽和CSl共同控制74HC573作为段锁存器,当他们低电平时,74HC573工作,由丽和CS?共同控制75HC573作为的位锁存器,位锁存器连接驱动芯片ULN2803,驱动数码管工作。显示的连接电路图如图3-2-3所示:28 -* 6 5 S 3 2 - O OlDDDDDDDDF9.三 IJ二=二二二二图3-2-3数码管显示电路3. 2.4电源电路设计在电路中由于我们所用0P07运算放大器需要9V双电源供电,由于我们测量需要稳定的供电而USB供电不稳定,所以我们自制+5V电源供电,电源电路图如图3-2-4:3. 2.5基准电压电路设计我们
13、用单片机自带的AD进行A/D转换,而单片机实际工作时电压会发生变化,所以在单片机AD检测时外加TL431作为基准源,当输出电压变化时,PL7口电压保持恒定。电路图如图3-2-5:vcci=LW图3-2-5基准电压3. 3电路参数的计算及元件选择因为我们要测量的范围是,负载电压不超过25V,电流不超过2A,而单片机能够接受的电压小于5V,所以我们电压采样时,用Io02和152电阻分压的方式,这样就算电压得到25V时,我们所采的电压也只有3.261V,单片机也能正常工作,电压采样后经过一个电压跟随器,降低输出阻抗,电流采样时,通过电压间接采样,因为我们所串联的电阻很小,由3个0.33和一个0.1的
14、电阻并联,所采得的电压也很小,经过放大单片机识别更准确,所以放大26倍后再送入单片机。3. 4特殊器件的介绍3.1. .1TL431芯片简介TL431是一个有良好的热稳定性能的三端可调分流基准电压源。它的输出电压用两个电阻就可以任意地设置到从Vref(2.5V)到36V范围内的任何值。TL431特点: 可编程输出电压为36V 电压参考误差:0.4%,典型值25C(TL431B) 低动态输出阻抗,典型0.22Q 负载电流能力LOmAto100mA 等效全范围温度系数50ppmC典型 温度补偿操作全额定工作温度范围 低输出噪声电压图3-4TT092封装引脚3.4. .2STC12C52A06S2单
15、片机简介STC12C5A60S2系列单片机是由宏晶科技生产的单时钟/机器周期(IT)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机,指令代码完全兼容传统的8051单片机,但速度要快812倍,内部集成8路高速10位A/D转换(250K/S)。STC12C5A60S2单片机管脚图如图3-4-20CLK0UT2/ADC0/P1.OADC1P1.1ECIADC2P1.2CCPOADC3P1.3SSCCP1ADC4P1.4MoSLADC5PL5MISOADC6P1.6SCLKADC7P1.7P4.7/RSTRxDP3.OTxDP3.1INT0P3.2IN11zP3.3CLK0UT0T0P3.
16、4CLKOUT1T1P3.5TCP3.6RDP3.7XTAL2XTALlGnd012345678901xCJOo4*TfOoQ11x1x1A1x1x11x1x1xOzwPDIP4。0987654321098765432143333333333222222222VCCPO.O/ADOPO.1AD1PO.2AD2PO.3AD3PO.4AD4PO.5AD5PO.6AD6PO.7AD7EX.LVDP4.6RST2ALEP4.5NAP4.4P2.7A15P2.6A14P2.5A13P2.4A12P2.3A11P2.2A10P2.1A9P2.0A8图3-4-2STCI2C5A60S2单片机引脚图4软件设计
17、4.1说明软件设计原理及所用工具本系统的程序设计使用KeiIUViSiOr13软件进行编写,编译,链接,软件调试等。目标单片机型号为STCI2C5A32S2,该单片机具有完全兼容51单片机,功耗小,内部资源丰富,价格便宜等优点;本设计应用单片机内部自带A/D完成电压、电流样本的采集。该系统程序的主要功能是对电压、电流信号和基准电源进行同时采集,然后根据采样比例计算出实际电压、电流和功率,再转换成相应显示码,由8位数码管显示出结果。功率或者电压和电流的显示通过按键进行切换。A/D采样为单片机内部寄存器操作,采取多次采样求平均值的方式进行软件滤波可减小误差,同时也达到了显示结果稳定的目的。在A/D
18、转换过程中停止单片机所有I/O口操作可提高转换的准确度。1.ED显示使用的是单片机内部定时器产生定时中断进行扫描显示,通过设置合理的定时初值可以稳定不间断地显示,超出量程时可闪烁显示进行报警。由于A/D转换时间极短,所以在A/D转换时停止的I/O操作对显示没有影响。键盘扫描程序使用了延时去抖的算法可避免了误触发,并在程序主循环中进行调用,能保证按键信息实时捕捉的不丢失的要求。STC系列单片机具有在系统可编程(ISP)的特性,程序下载使用厂商提供的ISP下载工具STCJSP_V4.78通过单片机串口完成程序烧写,使用方便,无需其他编程工具。4. 2软件设计结构及其功能z1.系统初始化程序:对单片
19、机系统硬件初始化;所涉及内存空间初始化;A/D转换器初始化;定时器0和中断初始化,为显示做准备。2 .A/D转换程序:对电压、电流、基准源进行模数转换并保存到相应变量中,为计算提供原始数据。/3 .结果计算和处理程序:对采集到的原始数据进行运算得到测量结果;通过计算将测量结果转换成可直接被数码管显示的字码信息;若超出量程可设置相应标志供显示查询达到闪烁报警的目的。l附录2系统PCB图附录3设计实物图万用板:公板:附录4程序代码主程序includeSTC_NEW_8051.H一-完整版学习资料分享一-ftinclude#includetype.h#includez,hardware.h#incl
20、ude“ADC.h#definevol_scale7.66667f#definecur_scale1.42727f#definevolmax50000.Of#definecur_max5000.Of/ch5电压采样比/ch6电流采样比最大电压最大电流voidmain()tO_dis_init();delay(200);面while(l)(key_scan();if(keyl)dis_mod=dis_mod;ADreaddata(42000,0);dis_change(dis_mod);初始化系统延时显示hello欢迎界切换显示模式/AD采集42000次转换成显示码中断显示程序voidtimer-init()interrupt1using1(staticuchari,j;TH0=0xf8;TLO=Oxcf;R0=0;中断显示赋值定时器初值/关闭Toif(i+7)移位i=0;if(j+80)j=0;if(led_flag&(li)&j40)ledsel_port=(li);ledcomport=1edtab17;TRO=I;return;)1ed_sel_port=(1i);ledcomport=dis_tabi;TRO=I;闪烁频率调整闪烁判断位选关闭显示位选段码输出/TO运行