单片机课设正弦交流信号有效值的测量.doc

上传人:文库蛋蛋多 文档编号:4251520 上传时间:2023-04-12 格式:DOC 页数:18 大小:122KB
返回 下载 相关 举报
单片机课设正弦交流信号有效值的测量.doc_第1页
第1页 / 共18页
单片机课设正弦交流信号有效值的测量.doc_第2页
第2页 / 共18页
单片机课设正弦交流信号有效值的测量.doc_第3页
第3页 / 共18页
单片机课设正弦交流信号有效值的测量.doc_第4页
第4页 / 共18页
单片机课设正弦交流信号有效值的测量.doc_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《单片机课设正弦交流信号有效值的测量.doc》由会员分享,可在线阅读,更多相关《单片机课设正弦交流信号有效值的测量.doc(18页珍藏版)》请在三一办公上搜索。

1、目 录摘要IAbstractII1 电路设计11.1信号采集与转换电路设计11.2 单片机控制电路设计21.3显示电路设计31.4总体电路42 软件设计53 仿真结果124 心得体会14参考文献15摘要正弦交流信号有效值的测量,需要测量正弦信号的峰值,利用正弦信号有效值的计算公式就可以得到正弦信号的有效值。要进行基于单片机的正弦信号有效值的测量,需要先将模拟量转换为数字量,将所得的数据经由单片机处理,再将最后的结果显示出来。设计的电路主要包括信号采集与转换电路,单片机控制电路和显示电路。其中,有效值的计算在本次设计中主要利用软件部分的设计完成。关键词:有效值测量,模数转换电路,单片机控制Abs

2、tractSinusoidal 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 microcom

3、puter, 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 des

4、ign of the main use of the design of the software part is complete.Keywords: RMS measurement, modulus conversion circuit, single chip microcomputer control1 电路设计 为了测得正弦信号的有效值,硬件电路的设计应包括信号的输入采集电路,模拟量与数字量转换电路,单片机控制电路与数字显示电路。1.1信号采集与转换电路设计本次设计所使用的A/D转换芯片是TLC549,它是一个串行8位A/D转换器,通过三线与通用微处理器进行串行接口。因为是使用的串行

5、接口电路,电路设计较简单,但是传输数据较慢。通过阅读TLC549的资料手册,可以知道其具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17微秒,本次设计要求检测的是50Hz的正弦波信号,其转换时间完全可以满足电路设计要求,因此不用担心串行电路的传输速率较慢的问题。 TLC549所允许的输入电压不超过5v,设计要求能够检测的正弦波幅值为0到15v,所以在测量超过5v的正弦波信号时,需要先将信号分压到5v以下,才能输入TLC549。电路图如下图所示,当所测信号在5v以下时,SW3开关接上,信号不需要分压直接输入芯片;当信号在5到10v之间时,SW3开关接中,信号经由电阻R3和R4分压后,将

6、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

7、显示屏的工作状态,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口使用,因此需要在外部

8、加上拉电阻才可以使用。图3 显示电路1.4总体电路总体电路如下图:图4 总体电路正弦波信号经过合适的处理后,经由A/D转换芯片,将模拟量转化为数字信号,交由AT89C52处理,最后将处理结果通过P0口传输到LCD显示器,至此,完成了正弦波模拟信号的采集,数字转换,软件处理以及显示的过程。2 软件设计本次设计要求是测量50Hz的正弦波信号,一个周期为20毫秒,而我们所需要的是正弦波的峰值,在20毫秒内,将采集的数据等时间间隔采样50个,然后比较这50个数据的大小,将最大的那一个数据作为该周期内的峰值,将峰值除以根号2作为该正弦信号的有效值。程序系统框图如下:开始定时器初始化LCD初始化是否采集完

9、毕?否排序求最大值即峰值峰值除以根号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

10、*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() interrup

11、t 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+)

12、_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(ucha

13、r 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+l

14、ine);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 心得体会通过本次课程设计,我明白了模拟量与数字量之间的转换,模拟量的采集,单片机控制的工作原理,定时器的工作方

15、式以及显示电路的设计与原理。在本次课程设计过程中,遇到的问题首先是芯片的使用,例如,TLC549的使用,LCD显示器的使用等。通过查找芯片资料解决了芯片使用上的问题。这些问题在课程设计之前,都不清楚,通过查资料,相关书籍,以及问同学,将这些问题一一解决,为电路的设计做好了铺垫。在设计电路过程中,设计的思路很重要,例如,如何得到正弦波的峰值成为本次课程设计的关键,在获得正弦波峰值的方案上也有很多,为了简化设计,采用了本次设计的方案。在芯片的选取上也有很多方案,A/D转化芯片种类繁多,本次设计选取的TLC549在硬件电路的搭建上有很多方便之处。当然,本次课程设计存在一些不足之处,例如,TLC549

16、的输入电压有一定范围,小于设计要求的电压,对于一个未知的电压容易超出量程,需要在设计中加入超量程报警电路。软件编程设计上仍然存在很多不足,在查阅资料,请教同学之后,才完成了软件的设计。这次课程设计,我收获很大,提高了我遇到问题解决问题的能力,加强了与同学就学习问题的交流讨论,加强了自己的动手能力,明白了团队合作的作用,同时也认识到了自己不足,在电路设计,元件参数的选取,芯片的选取,软件编程的问题上仍然存在不足,最重要的是认识到了光有理论知识是远远不够的,理论需要结合实践才能发挥最大的作用。这些问题的暴露让我知道了以后努力的方向,在加强理论学习的基础上,提高自己解决问题的能力,提高自己动手实践的能力。参考文献1李群芳.单片微型计算机.北京:电子工业出本社,20082伍时和.数字电子技术基础.北京:清华大学出版社,20093胡乾斌.单片微型计算机原理与应用.武汉:华中科技大学出版社,20064李刚.51系列单片机系统设计与应用技巧.北京:北京航空航天大学出版社,20045孙育才,MCS-51系列单片微型计算机及其应用.南京:东南大学出版社,1997

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号