单片机产生正反方波信号的C程序

q254947131   2009-5-21 14:20 楼主
用的芯片是AT89S52,
目前初步设想
1:通过其中的一个输出端口P1.1输出1-2MHz方波信号.
2:定时器1做计时器,设定方波信号的半个周期产生中断,每次中断P1.1取反。
3:方波信号每个1S,2S反向一次。正向时电机正转,反向时电机反转。

现在的问题是如何通过编写C语言程序。
请高手指点一下,如果有类似的程序推荐一下。

回复评论 (9)

先说说你提的问题:

1 通过其中的一个输出端口P1.1输出1-2MHz方波信号。
  ——要1~2MHz方波吗,那么其周期只有0.5~1us哦!

2 定时器1做计时器,设定方波信号的半个周期产生中断,每次中断P1.1取反。
  ——定时器1产生中断,要0.25~0.5us产生中断吗?你觉得定时器1最小定时可以为多少呢?

3 方波信号每过1S,2S反向一次。正向时电机正转,反向时电机反转。
  ——电机每过1S、2S反向,一会1~2S正转,一会1~2S反转,电机能转动反应过来吗?

希望再详细提供你的合理要求,也许大家才能帮到你……
点赞  2009-5-21 17:55
方波倒是可以使用低频率的晶振在ale管脚直接输出。
后面的问题没搞明白。
点赞  2009-5-22 09:37
引用: 引用 2 楼 zhkflying 的回复:
先说说你提的问题:

1 通过其中的一个输出端口P1.1输出1-2MHz方波信号。
——要1~2MHz方波吗,那么其周期只有0.5~1us哦!

2 定时器1做计时器,设定方波信号的半个周期产生中断,每次中断P1.1取反。
——定时器1产生中断,要0.25~0.5us产生中断吗?你觉得定时器1最小定时可以为多少呢?

3 方波信号每过1S,2S反向一次。正向时电机正转,反向时电机反转。
——电机每过1S、2S反向,一会1~2S正转,一会1~2S反转,电…

输出端口的波形不变的,
定时器1产生中断貌似有点困难,还没验证过。
方波信号在0---100S之内方向不变,若需要改变电机方向即可变换方波方向,也就是说电机反转。所以前面说的时间1s\2s是太少了。


点赞  2009-5-22 11:09
介个可以用H桥

再用逻辑电路分出个控制H桥的接口即可
点赞  2009-5-21 17:19
定时中断:
TH0=XX
TL0=XX
E=1;
TR0=1;
TCON=0X01;

P1^1 !=1;
点赞  2009-5-22 09:44
上面那里是EA=1,
发贴后怎么修改贴的啊?
点赞  2009-5-22 09:46
这样的还是汇编方便
点赞  2009-5-22 09:46
谢谢大家啦!继续验证中。
点赞  2009-5-22 11:10
引用: 引用 4 楼 FCARM 的回复:
定时中断:
TH0=XX
TL0=XX
E=1;
TR0=1;
TCON=0X01;

P1^1 !=1;


汇编的确很简练,但有没有C语言的呢。
点赞  2009-5-22 11:11
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复