周期性矩形波(方波)信号:在MATLAB中用square函数来表示,其调用形式为
y=square(t,DUTY)
其作用类似于sin(t),用以产生一个时长为t、幅值为±1的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值所占的百分比。例如频率为30Hz的周期性方波信号的 MATLAB 参考程序如下:
t=-2pi/100:pi/1024:2pi/100;
y=square(2pi30t,50);
plot(t,y);
grid
ylim([-15 15])
#include<reg51h>
#define uchar unsigned char
#define uint unsigned int
uint num;
uchar times=0;
bit flag=0;
void t0isr() interrupt 1
{
num++;
}
void t1isr() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
times++;
if(times>=20)
{
times=0;
TR0=0;
flag=1;
}
}
main()
{
TMOD=0x16; //定时器0做计数器接受外部脉冲输入,定时器1做定时器
TH0=0xff;
TL0=0xff;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
TR0=1;
TR1=1;
ET0=1;
ET1=1;
while(1)
{
if(flag)
{
提取num脉冲数供处理
}
}
}
#include"reg52h"
sbit PWM=P1^0;//定义输出脚
void main()
{
TMOD=0x01; //定时器0工作方式1
TH0=(65536-10000)/256; //12M晶振10MS计时常数
TL0=(65536-10000)%256;
EA=1; //开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器0
while(1);
}
//中断函数,启动后每10MS进入一次中断
void T0_time(void) interrupt 1
{
TH0=(65536-10000)/256; //12M晶振10MS计时常数
TL0=(65536-10000)%256;
if(PWM)PWM=0; //输出脚取反
else PWM=1;
}
以上就是关于帮帮忙啊,初学matlab遇到很多问题,我要产生一个周期为1M的周期矩形脉冲信号,要用什么函数全部的内容,包括:帮帮忙啊,初学matlab遇到很多问题,我要产生一个周期为1M的周期矩形脉冲信号,要用什么函数、51单片机大神们编个程序: 频率为25Hz的矩形波给单片机脉冲!求解1秒内输入的脉冲数…、求高手 用51单片机输出产生方波的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)