..word完美格式目录摘要........................................................................IAbstract...................................................................II1电路设计..................................................................11.1信号采集与转换电路设计...............................................11.2单片机控制电路设计..................................................11.3显示电路设计.........................................................21.4总体电路.............................................................32软件设计..................................................................43仿真结果.................................................................124心得体会.................................................................14参考文献...................................................................15..word完美格式摘要正弦交流信号有效值的测量,需要测量正弦信号的峰值,利用正弦信号有效值的计算公式就可以得到正弦信号的有效值。要进行基于单片机的正弦信号有效值的测量,需要先将模拟量转换为数字量,将所得的数据经由单片机处理,再将最后的结果显示出来。设计的电路主要包括信号采集与转换电路,单片机控制电路和显示电路。其中,有效值的计算在本次设计中主要利用软件部分的设计完成。关键词:有效值测量,模数转换电路,单片机控制..word完美格式AbstractSinusoidalacsignaleffectivevaluemeasurement,needtomeasurethepeakvalueofthesinesignal,usingthesinesignaleffectivevaluecalculationformulaoftheeffectivevalueofsinesignalcanbecalculatedout.MustcarryonthesinesignalRMSmeasurementbasedonsinglechipmicrocomputer,needtoconvertanalogtodigitalquantity,willthedataprocessedbysinglechipmicrocomputer,thenthefinalresultofdisplay.Designthecircuitmainlyincludessignalacquisitionandconversioncircuit,SCMcontrolcircuitanddisplaycircuit.Amongthem,theRMScalculationinthedesignofthemainuseofthedesignofthesoftwarepartiscomplete.Keywords:RMSmeasurement,modulusconversioncircuit,singlechipmicrocomputercontrol..word完美格式..word完美格式1电路设计为了测得正弦信号的有效值,硬件电路的设计应包括信号的输入采集电路,模拟量与数字量转换电路,单片机控制电路与数字显示电路。1.1信号采集与转换电路设计本次设计所使用的A/D转换芯片是TLC549,它是一个串行8位A/D转换器,通过三线与通用微处理器进行串行接口。因为是使用的串行接口电路,电路设计较简单,但是传输数据较慢。通过阅读TLC549的资料手册,可以知道其具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17微秒,本次设计要求检测的是50Hz的正弦波信号,其转换时间完全可以满足电路设计要求,因此不用担心串行电路的传输速率较慢的问题。TLC549所允许的输入电压不超过5v,设计要求能够检测的正弦波幅值为0到15v,所以在测量超过5v的正弦波信号时,需要先将信号分压到5v以下,才能输入TLC549。电路图如下图所示,当所测信号在5v以下时,SW3开关接上,信号不需要分压直接输入芯片;当信号在5到10v之间时,SW3开关接中,信号经由电阻R3和R4分压后,将R4两端电压作为输入信号输入芯片;当信号在10到15v之间时,SW3开关接下,信号经由R5、R6和R7分压后,将R7两端的电压作为输入信号输入芯片。这样的设计满足了TLC549对输入信号的要求,只需在后续设计中将结果线性放大就可以得到正确测量值。图1信号采集与转换电路1.2单片机控制电路设计..word完美格式控制电路系统采用AT89C52作为主控制器,单片机具有体积小,方便操作,应用灵活,运行稳定准确等特点,现已广泛应用于各方各面。单片机控制电路如下图所示,P1.0接收经TLC549转换后的数字信号,P1.1用于控制TLC549的工作状态,P1.2给TLC549提供时钟信号,P1.3与P1.4用于控制LCD显示屏的工作状态,P1.5与P1.6用于选择还原分压信号的放大系数,开关S1放大2倍,开关S2放大3倍,具体使用哪个开关视情况而定,P0口接LCD显示器。图2单片机控制电路1.3显示电路设计..word完美格式显示电路主要由LCD显示器构成,R/W端口用于控制数据的操作是读取还是写入,因为本次设计中LCD显示器只用来显示数据,所以将R/W端接地即可。RS与E端与AT89C52相应端口相连接,E端口是启动信号端口,RS端为高电平时,功能为数据输入,低电平时为指令代码输入。D0到D7端口与AT89C51的P0口相连,单片机将要显示的数据传送到LCD显示器,因为在此处,P0口作为普通的I/O口使用,因此需要在外部加上拉电阻才可以使用。图3显示电路1.4总体电路..word完美格式总体电路如下图:图4总体电路正弦波信号经过合适的处理后,经由A/D转换芯片,将模拟量转化为数字信号,交由AT89C52处理,最后将处理结果通过P0口传输到LCD显示器,至此,完成了正弦波模拟信号的采集,数字转换,软件处理以及显示的过程。2软件设计..word完美格式本次设计要求是测量50Hz的正弦波信号,一个周期为20毫秒,而我们所需要的是正弦波的峰值,在20毫秒内,将采集的数据等时间间隔采样50个,然后比较这50个数据的大小,将最大的那一个数据作为该周期内的峰值,将峰值除以根号2作为该正弦信号的有效值。程序系统框图如下:否是图5程序系统框图开始定时器初始化LCD初始化排序求最大值即峰值峰值除以根号2得到有效值是否采集完毕?LCD显示采集完毕定时器停止工作结束..word完美格式程序代码如下:#includereg52.h#includemath.h#includeTLC549.h#includeLCD1602.hsbitS1=P1^5;sbitS2=P1^6;ucharTable[50],times=0;bitflag=0;voidinitT0();voidmain(){ucharj;ucharMax,Result;initLCD();initT0();while(1){if(flag){Max=Table[0];for(j=1;j50;j++){if(Table[j]Max)Max=Table[j];}if(S1==0)..word完美格式Max=2*Max;if(S2==0)Max=3*Max;Result=Max/sqrt(2);writeLCD_com(0x80+11);writeLCD_data(Result/100+48);writeLCD_data(Result%100/10+48);writeLCD_data('.');writeLCD_data(Result%10+48);writeLCD_data('V');flag=0;TR0=1;}}}voidinitT0(){TMOD=0x01;TH0=(65536-400)/256;TL0=65136%256;ET0=1;TR0=1;EA=1;}voidT0_time()interrupt1{TH0=(65536-400)/256;TL0=65136%256;..word完美格式Table[times]=ADConvert();times++;if(times==50){TR0=0;times=0;flag=1;}}TLC549转换源代码如下:#includereg52.h#includeintrins.h#includeLCD1602.h#includeTLC549.hsbitcs=P1^1;sbitclk=P1^2;sbitdout=P1^0;uintADConvert(){uchari,temp;uintshuju;cs=1;clk=0;cs=0;_nop_();_nop_();..word完美格式for(i=0;i8;i++){_nop_();clk=1;temp=(temp1)|dout;clk=0;}cs=1;_nop_();shuju=5.0/255*10*temp+0.5;return(shuju);}LCD显示源代码如下:#includereg52.h#includeLCD1602.h#defineLCD_DATAP0ucharRMSV[]=RMSVol:;sbitRS=P1^3;sbitEN=P1^4;voiddelayms(uintdelaytime){uchari;for(;delaytime0;delaytime--)for(i=124;i0;i--);}voidwriteLCD_com(ucharcom)..word完美格式{RS=0;LCD_DATA=com;delayms(5);EN=1;delayms(5);EN=0;//EN=1;}voidwriteLCD_data(uchardat){RS=1;LCD_DATA=dat;delayms(5);EN=1;delayms(5);EN=0;}voidwrite_string(ucharcol,ucharline,uchar*table){if(col==0){writeLCD_com(0x80+line);while(*table!='\0'){writeLCD_data(*table++);}}elseif(col==1)..word完美格式{writeLCD_com(0xc0+line);while(*table!='\0'){writeLCD_data(*table++);}}elsereturn;}voidinitLCD(){writeLCD_com(0x38);writeLCD_com(0x0c);writeLCD_com(0x06);writeLCD_com(0x01);write_string(0,2,RMSV);}..word完美格式3仿真结果图6仿真结果图7仿真结果图8仿真结果图9仿真结果..word完美格式图10仿真结果图11仿真结果可以看到,仿真显示结果基本符合输入信号的有效值。..word完美格式4心得体会通过本次课程设计,我明白了模拟量与数字量之间的转换,模拟量的采集,单片机控制的工作原理,定时器