业余无线电论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6381|回复: 0

利用单片机发出频率不同的矩形波信号

[复制链接]

19

主题

1

回帖

948

积分

版主

Rank: 7Rank: 7Rank: 7

积分
948
发表于 2015-7-31 14:28 | 显示全部楼层 |阅读模式
利用单片机发出两个时间间隔相同但是频率不同的矩形波信号
                             
         自从我在本版块发表了名为《采用单片机控制的无线电遥控发射机的一种新的形式》和《采用单片机控制的无线电遥控接收机的一种新的形式》两篇文章后,就不断的有网友询问我,怎样来利用单片机发出两个时间间隔相同但是频率不同的矩形波信号?他们跟我说,这个问题看起来很简单,但是做起来却很难啊!既然网友们有如此只说,我也就尝试了一下,果不其然,此问题并不简单啊!                     
    一开始,我打算采用调用定时和中断子程序的办法来解决此问题,即将定时器的计时时间设定为5mS,在第一个5mS的时间发出频率为a的矩形波信号,在第二个5mS的时间则发出频率为b的矩形波信号,在第三个5mS的时间再发出频率为a的矩形波信号,···,如此这般不断的循环下去,便可得到两个时间间隔相同但是频率不同的矩形波信号。但是通过使用Proteus软件对相应的电路进行仿真实验后,发现要达到这个目的确实有点困难啊!熟悉51单片机的汇编程序的网友们一般都清楚,若是让单片机发出一个频率为f(若采用12MHz的晶振片,则f<12MHz)的矩形波信号,并且该矩形波信号由某一个引脚,例如是从P1.0引脚输出,那是很容易的事啊!但是若让单片机发出两个时间间隔相同且频率分别为a和b的矩形波信号,以及让它们都从P1.0引脚输出的话,做起来是很困难的啊!因为若是采用调用定时和中断子程序的办法来解决此问题的话,中断的时间要设置的比较合适(注:如果中断时间过短的话,容易出现一些莫名其妙的问题),以及在返回主程序的时间也要恰到好处。基于这些原因,我便放弃了采用调用定时和中断子程序的办法来解决此问题的念头,而采用了在“无限循环中嵌入延时程序”的方法来进行尝试,果不其然,该方法简单易行啊!在附件s23所示的电路中给出了从单片机U2的P1.0引脚输出的信号U(out)的动态分析(ANALOGUE ANALYSIS)图像。观察U(out)的动态分析(ANALOGUE ANALYSIS)图像,在0~5mS这个区间内的矩形脉冲的个数为12个,其中有两个是宽度较小的脉冲,产生这种现象的原因是由于在主程序中采用了调入两个能发出不同频率的矩形脉冲的子程序。其中一个子程序产生的矩形脉冲的频率为2107Hz,而另一个子程序产生的矩形脉冲的频率则为6936Hz。由于计算机在执行程序中的每条指令都是需要时间的,因此通过仿真实验所得到的数值与自己事先所预期的数值之间有所偏差是可以接受的。附件s24为该电路运行时的QQ截图。若有网友需要我的帮助来索取与单片机U2被写进的HEX文件相对应的汇编程序的话,最好通过QQ与我进行联系。联系方法见那篇名为<<用Proteus软件可以确定LC选频网络的各个元件的参数吗?>>的帖子。
s23.jpg
s24.png
载入中...
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ留言|联系我们|手机版|业余无线电论坛 ( 苏ICP备12066006号 )
     

GMT+8, 2024-11-22 09:05

Powered by 中国业余无线电

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表