看你的程序,你的电路图应该是这样的吧(用P2.0做片选)
锯齿波源程序如下:
ORG 0000H
AJMP START
ORG 0050H
START: MOV DPTR,#0FEFFH
LP: MOV A,#00H
LP1: MOVX @DPTR,A
INC A
AJMP LP1
END
三角波源程序如下:
ORG 0000H
AJMP START
ORG 0050H
START: MOV DPTR,#0FEFFH
TRI: MOV A,#00H
UP: MOVX @DPTR,A
INC A
CJNE A,#0FFH,UP
DOWN: MOVX @DPTR,A
DEC A
CJNE A,#00H,DOWN
LJMP UP
END
周期性矩形波(方波)信号:在MATLAB中用square函数来表示,其调用形式为
y=square(t,DUTY)
其作用类似于sin(t),用以产生一个时长为t、幅值为±1的周期性方波信号,其中的DUTY参数表示占空比,即在信号的一个周期中正值所占的百分比。例如频率为30Hz的周期性方波信号的 MATLAB 参考程序如下:
t=-2*pi/100:pi/1024:2*pi/100
y=square(2*pi*30*t,50)
plot(t,y)
grid
ylim([-1.5 1.5])
扩展资料
模拟的正弦信号中负半周期中最后一个点为正数,符号取为正1,和0连在一起肯定要间断的;产生思路是可以的,但是要注意下端点的连续性,这样生成你要保证前半周期是正,后半周期为负才可以。
就是指电路系统中信号的质量,如果在要求的时间内,信号能不失真地从源端传送到接收端,就称该信号是方波信号。
信号具有良好的方波信号是指当在需要的时候,具有所必需达到的电压电平数值。差的方波信号不是由某一单一因素导致的,而是板级设计中多种因素共同引起的。主要的方波信号问题包括反射、振荡、地d、串扰等。
对于C语言编写的程序你的要求太高了啊你可以使用keil进行软件仿真,你会发现连软件仿真这种形式也做不到500khz,实际场合就会误差更大主要是因为C这种语言已经忽略了指令周期这种概念,而且软件仿真可以看到,每次中断执行AA=!AA,结束之后程序会跳回主函数等待,这个时间已经是错过好一些中断了如果你还要执行其他任务的话就更难控制精度了。而1us的精度就连汇编也很难做到的,51单片机主要用在控制场合,而对于高精度或者强调复杂计算的场合还是少用,这个应该属于本身的局限。你可以把精度放低一些,或者试试其他的cpu欢迎分享,转载请注明来源:内存溢出
评论列表(0条)