单片机课设-正弦交流信号有效值的测量.doc_第1页
单片机课设-正弦交流信号有效值的测量.doc_第2页
单片机课设-正弦交流信号有效值的测量.doc_第3页
单片机课设-正弦交流信号有效值的测量.doc_第4页
单片机课设-正弦交流信号有效值的测量.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录摘要iabstractii1 电路设计11.1信号采集与转换电路设计11.2 单片机控制电路设计21.3显示电路设计31.4总体电路42 软件设计53 仿真结果124 心得体会14参考文献15武汉理工大学单片机原理与应用课程设计说明书摘要正弦交流信号有效值的测量,需要测量正弦信号的峰值,利用正弦信号有效值的计算公式就可以得到正弦信号的有效值。要进行基于单片机的正弦信号有效值的测量,需要先将模拟量转换为数字量,将所得的数据经由单片机处理,再将最后的结果显示出来。设计的电路主要包括信号采集与转换电路,单片机控制电路和显示电路。其中,有效值的计算在本次设计中主要利用软件部分的设计完成。关键词:有效值测量,模数转换电路,单片机控制abstractsinusoidal ac signal effective value measurement, need to measure the peak value of the sine signal, using the sine signal effective value calculation formula of the effective value of sine signal can be calculated out. must carry on the sine signal rms measurement based on single chip microcomputer, need to convert analog to digital quantity, will the data processed by single chip microcomputer, then the final result of display. design the circuit mainly includes signal acquisition and conversion circuit, scm control circuit and display circuit. among them, the rms calculation in the design of the main use of the design of the software part is complete.keywords: rms measurement, modulus conversion circuit, single chip microcomputer controlii1 电路设计 为了测得正弦信号的有效值,硬件电路的设计应包括信号的输入采集电路,模拟量与数字量转换电路,单片机控制电路与数字显示电路。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 单片机控制电路设计控制电路系统采用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显示电路设计显示电路主要由lcd显示器构成, r/w端口用于控制数据的操作是读取还是写入,因为本次设计中lcd显示器只用来显示数据,所以将r/w端接地即可。rs与e端与at89c52相应端口相连接,e端口是启动信号端口,rs端为高电平时,功能为数据输入,低电平时为指令代码输入。d0到d7端口与at89c51的p0口相连,单片机将要显示的数据传送到lcd显示器,因为在此处,p0口作为普通的i/o口使用,因此需要在外部加上拉电阻才可以使用。图3 显示电路1.4总体电路总体电路如下图:图4 总体电路正弦波信号经过合适的处理后,经由a/d转换芯片,将模拟量转化为数字信号,交由at89c52处理,最后将处理结果通过p0口传输到lcd显示器,至此,完成了正弦波模拟信号的采集,数字转换,软件处理以及显示的过程。2 软件设计本次设计要求是测量50hz的正弦波信号,一个周期为20毫秒,而我们所需要的是正弦波的峰值,在20毫秒内,将采集的数据等时间间隔采样50个,然后比较这50个数据的大小,将最大的那一个数据作为该周期内的峰值,将峰值除以根号2作为该正弦信号的有效值。程序系统框图如下:开始定时器初始化lcd初始化是否采集完毕?否排序求最大值即峰值峰值除以根号2得到有效值是结束采集完毕定时器停止工作lcd显示图5 程序系统框图程序代码如下:#include#include#include tlc549.h#include lcd1602.hsbit s1=p15;sbit s2=p16;uchar table50,times=0;bit flag=0;void initt0();void main()uchar j;uchar max,result;initlcd();initt0();while(1)if(flag)max=table0;for(j=1;jmax)max=tablej;if(s1=0)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;void initt0()tmod=0x01;th0=(65536-400)/256;tl0=65136%256;et0=1;tr0=1;ea=1; void t0_time() interrupt 1th0=(65536-400)/256;tl0=65136%256;tabletimes=adconvert();times+;if(times=50)tr0=0;times=0;flag=1;tlc549转换源代码如下:#include#include#include lcd1602.h #include tlc549.hsbit cs=p11;sbit clk=p12;sbit dout=p10;uint adconvert() uchar i,temp; uint shuju; cs=1; clk=0; cs=0; _nop_(); _nop_(); 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显示源代码如下:#include #include lcd1602.h #define lcd_data p0uchar rmsv=rms vol: ;sbit rs=p13;sbit en=p14;void delayms(uint delaytime)uchar i;for(;delaytime0;delaytime-)for(i=124;i0;i-);void writelcd_com(uchar com)rs=0;lcd_data=com;delayms(5);en=1;delayms(5);en=0;/en=1;void writelcd_data(uchar dat)rs=1;lcd_data=dat;delayms(5);en=1;delayms(5);en=0;void write_string(uchar col, uchar line, uchar *table)if(col=0)writelcd_com(0x80+line);while(*table!=0)writelcd_data(*table+);else if(col=1)writelcd_com(0xc0+line);while(*table!=0)writelcd_data(*table+);else return;void initlcd()writelcd_com(0x38);writelcd_com(0x0c);writelcd_com(0x06);writelcd_com(0x01);write_string(0,2,rmsv);3 仿真结果图6 仿真结果图7 仿真结果图8 仿真结果图9 仿真结果图10 仿真结果图11 仿真结果可以看到,仿真显示结果基本符合输入信号的有效值。4 心得体会通过本次课程设计,我明白了模拟量与数字量之间的转换,模拟量的采集,单片机控制的工作原理,定时器的工作方式以及显示电路的设计与原理。在本次课程设计过程中,遇到的问题首先是芯片的使用,例如,tlc549的使用,lcd显示器的使用等。通过查找芯片资料解决了芯片使用上的问题。这些问题在课程设计之前,都不清楚,通过查资料,相关书籍,以及问同学,将这些问题一一解决,为电路的设计做好了铺垫。在设计电路过程中,设计的思路很重要,例如,如何得到正弦波的峰值成为本次课程设计的关键,在获得正弦波峰值的方案上也有很多,为了简化设计,采用了本次设计的方案。在芯片的选取上也有很多方案,a/d转化芯片种类繁多,本次设计选取的tlc549在硬件电路的搭建上有很多方便之处。当然,本次课程设计存在一些不足之处,例如,tlc549的输入电压有一定范围,小于设计要求的电压,对于一个未知的电压容易超出量程,需要在设计中加入超量程报警电路。软件编程设计上仍然存在很多不足,在查阅资料,请教同学之后,才完成了软件的设计。这次课程设计,我收获很大,提高了我遇到问题解决问题的能力,加强了与同学就学习问题的交流讨论,加强了自己的动手能力,明白了团队合作的作用,同时也认识到了自己不足,在电路设计,元件参数的选取,芯片的选取,软件编程的问题上仍然存在不足,最重要的是认识到了光有理论知识是远远不够的,理论

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论