单片机课设正弦交流信号有效值的测量Word文件下载.docx

上传人:b****5 文档编号:20361191 上传时间:2023-01-22 格式:DOCX 页数:13 大小:107.17KB
下载 相关 举报
单片机课设正弦交流信号有效值的测量Word文件下载.docx_第1页
第1页 / 共13页
单片机课设正弦交流信号有效值的测量Word文件下载.docx_第2页
第2页 / 共13页
单片机课设正弦交流信号有效值的测量Word文件下载.docx_第3页
第3页 / 共13页
单片机课设正弦交流信号有效值的测量Word文件下载.docx_第4页
第4页 / 共13页
单片机课设正弦交流信号有效值的测量Word文件下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

单片机课设正弦交流信号有效值的测量Word文件下载.docx

《单片机课设正弦交流信号有效值的测量Word文件下载.docx》由会员分享,可在线阅读,更多相关《单片机课设正弦交流信号有效值的测量Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。

单片机课设正弦交流信号有效值的测量Word文件下载.docx

Keywords:

RMSmeasurement,modulusconversioncircuit,singlechipmicrocomputercontrol

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单片机控制电路设计

控制电路系统采用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作为该正弦信号的有效值。

程序系统框图如下:

图5程序系统框图

程序代码如下:

#include<

reg52.h>

math.h>

#include"

TLC549.h"

LCD1602.h"

sbitS1=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;

j<

50;

j++)

{

if(Table[j]>

Max)

Max=Table[j];

}

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);

V'

flag=0;

TR0=1;

}

}

}

voidinitT0()

TMOD=0x01;

TH0=(65536-400)/256;

TL0=65136%256;

ET0=1;

TR0=1;

EA=1;

voidT0_time()interrupt1

Table[times]=ADConvert();

times++;

if(times==50)

TR0=0;

times=0;

flag=1;

TLC549转换源代码如下:

intrins.h>

sbitcs=P1^1;

sbitclk=P1^2;

sbitdout=P1^0;

uintADConvert()

uchari,temp;

uintshuju;

cs=1;

clk=0;

cs=0;

_nop_();

for(i=0;

i<

8;

i++)

_nop_();

clk=1;

temp=(temp<

<

1)|dout;

clk=0;

shuju=5.0/255*10*temp+0.5;

return(shuju);

LCD显示源代码如下:

#include<

#defineLCD_DATAP0

ucharRMSV[]="

RMSVol:

"

;

sbitRS=P1^3;

sbitEN=P1^4;

voiddelayms(uintdelaytime)

uchari;

for(;

delaytime>

0;

delaytime--)

for(i=124;

i>

i--);

voidwriteLCD_com(ucharcom)

RS=0;

LCD_DATA=com;

delayms(5);

EN=1;

EN=0;

//EN=1;

voidwriteLCD_data(uchardat)

RS=1;

LCD_DATA=dat;

voidwrite_string(ucharcol,ucharline,uchar*table)

if(col==0)

writeLCD_com(0x80+line);

while(*table!

='

\0'

writeLCD_data(*table++);

elseif(col==1)

writeLCD_com(0xc0+line);

}

elsereturn;

voidinitLCD()

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]李群芳.单片微型计算机.北京:

电子工业出本社,2008

[2]伍时和.数字电子技术基础.北京:

清华大学出版社,2009

[3]胡乾斌.单片微型计算机原理与应用.武汉:

华中科技大学出版社,2006

[4]李刚.51系列单片机系统设计与应用技巧.北京:

北京航空航天大学出版社,2004

[5]孙育才,MCS-51系列单片微型计算机及其应用.南京:

东南大学出版社,1997

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1