求助!C51单片机实现2s方波一直不成功

只要你有定时器输出几路都可以啊如果你这是完整程序肯定会报错。P1_0P1_1没有定义应加上sbitP1_0=P1^0;sbitP1_1=P1^1;另外进入中断TR0可以不用关闭你再试试。

1、用定时器做一个1T中断


2、设置┅个周期寄存器C,假设你需要的周期是100T你就让C=100。
3、设置一个占空比寄存器P假设你需要的占空比是70,你就让P=70
定时器每次中断后将C-1,如果P<>0再将P-1,否则P不动!
1、当C-1=0时让IO口置1,同时将C复成100、将P复成70;否则不处理
2、当P-1=0时,让IO口清0;否则不处理
这样IO口的输出就如你所愿了。
再增设两个寄存器MN,将程序中的100用M替代、70用N替代

这样你只要改变M、N的值就可以任意改变周期与占空比了。而且随时改变!不过要保證M>N这很容易吧。

关键不是看你的程序而是看你的构思!你的程序有什么看头。


如果你能理解并认为我的方案可行你就试着写写程序。

我要回帖

 

随机推荐