电机轴承外圈故障诊断装置的设计1(7)

2019-03-11 08:51

本 科 毕 业 设 计

第 31 页 共 35 页

RSTSRC = 0x02; //设置VDD监视器为复位源,代码中所有的对rstsrc的写操作均用直接赋值 方式完成(如rstsrc = 0x02)

//------------------------------------------ sleep(10);

printf(\ UART1printf(\ printf(\

UART1printf(\ printf(\中断UART0 \\r\\n\ UART1printf(\中断UART1 \\r\\n\

while(1) //重复循环显示 {

if(UartCnt != UartCntOld) {

if(UartCnt==0) {

printf(\ }

else {

printf(\ }

UartCntOld = UartCnt; }

if(Time0Cnt > 5000) {

Time0Cnt = 0;

LED1 = ~LED1;

UART1printf(\这是UART%d,波特率是9600\\n\ printf(\这是UART%d,波特率是4800\\n\ }

} }

/***************************************************************** *功能:串行接收 uart1中断服务函数

*****************************************************************/ void UART1_Interrupt(void) interrupt 16 {

while (SCON1&0x01) //接收到数据标志 RI1=1 {

EIE2 &= 0xfD; //禁止UART1中断

本 科 毕 业 设 计

第 32 页 共 35 页

Uart0Str[UartCnt] = SBUF1;

SCON1 = 0x30; //复位RI1、TI1=0 if(++UartCnt > 19) {

UartCnt = 0; } else {

Uart0Str[UartCnt] = '\\0'; } }

EIE2|= 0x02; //允许UART1中断 }

void dectostr(char *s, unsigned long datain) //将10进制数数字转换为10进制字符串 {

int i; char c;

unsigned long tmp = datain; if (tmp == 0) {

i=1; } else {

for (i=0;tmp>0;i++) {

tmp = tmp/10; } }

s[i--] = '\\0'; while(1) {

c= datain; s[i--] = c +'0';

if (datain < 10) break; datain = datain/10; } }

void UART1putchar (char c) {

SBUF1 = c;

while(!(SCON1&0x02));

SCON1 &= 0xFD; //复位TI1=0 }

本 科 毕 业 设 计

//UART1发送函数

int UART1printf(const char *fmt, ...) {

const char *s; int d;

char buf1[16]; va_list ap;

va_start(ap, fmt); while (*fmt) {

if ((*fmt != '%') && (*fmt != '\\0')) {

UART1putchar(*fmt++); continue; }

switch (*(++fmt)) {

case 's':

s = va_arg(ap, const char *); for ( ; *s; s++) {

UART1putchar(*s); }

break; case 'd':

d = va_arg(ap, int); dectostr(buf1,d);

for (s = buf1; *s; s++) {

UART1putchar(*s); }

break; default:

UART1putchar(*fmt); break; }

fmt++; }

va_end(ap);

return 1;

第 33 页 共 35 页

本 科 毕 业 设 计

第 34 页 共 35 页

MATLAB程序代码:

%*************************************************************************% % FFT实践及频谱分析 % %*************************************************************************% %***************1.正弦波****************% fs=100;%设定采样频率 N=128; n=0:N-1; t=n/fs;

f0=10;%设定正弦信号频率

x=sin(2*pi*f0*t); %生成正弦信号 figure(1); subplot(231);

plot(t,x);%作正弦信号的时域波形 xlabel('t'); ylabel('y');

title('正弦信号y=2*pi*10t时域波形'); grid;

%进行FFT变换并做频谱图 y=fft(x,N);%进行fft变换 mag=abs(y);%求幅值

f=(0:length(y)-1)'*fs/length(y);%进行对应的频率转换 figure(1); subplot(232);

plot(f,mag);%做频谱图 axis([0,100,0,80]); xlabel('频率(Hz)'); ylabel('幅值');

title('正弦信号y=2*pi*10t幅频谱图N=128'); grid;

%求均方根谱 sq=abs(y); figure(1); subplot(233); plot(f,sq);

xlabel('频率(Hz)'); ylabel('均方根谱');

title('正弦信号y=2*pi*10t均方根谱'); grid;

%求功率谱 power=sq.^2; figure(1); subplot(234); plot(f,power);

本 科 毕 业 设 计

xlabel('频率(Hz)'); ylabel('功率谱');

title('正弦信号y=2*pi*10t功率谱'); grid;

%求对数谱 ln=log(sq); figure(1); subplot(235); plot(f,ln);

xlabel('频率(Hz)'); ylabel('对数谱');

title('正弦信号y=2*pi*10t对数谱'); grid;

%用IFFT恢复原始信号 xifft=ifft(y);

magx=real(xifft);

ti=[0:length(xifft)-1]/fs; figure(1); subplot(236); plot(ti,magx); xlabel('t'); ylabel('y');

title('通过IFFT转换的正弦信号波形'); grid;

第 35 页 共 35 页


电机轴承外圈故障诊断装置的设计1(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:场内考试要领方法

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: