请问如何用51单片机生成频率可调的方波?请给出方案或者修改我的方案(如下)

2024-11-07 08:34:27
推荐回答(3个)
回答1:

P0 口,应该加上上拉电阻。

AD 转换的结果,应该是:0~255。
使用真实的硬件,结果是多少?
可以在 P2 口,接上八个 LED,当场显示出来看看。

另外,对于这一批数据,你所期望得到的频率范围,究竟是多少?

还有,采用软件定时,并不准确。

回答2:

从硬件上来说,PO口作为IO口是要加上拉电阻的,你先试一试1K电阻。或者你不要用PO口,改为P1.6和P1.7这样就不用接上拉电阻了(软件要记得改)
如果不行的话,就从你说的一开始有40HZ后来没有了入手查找问题,
首先判断你的硬件是否失效?如果单片机正常运行,那是不是你的d<10了?方法是加2个LED到其中2个端口 ,如P1.3,P1.4,然后在软件中添加相应操作如下,如果单片机正常的跑,那两个LED至少有一个在闪烁,否则单片机就是失效了。如果是P1.4的LED在闪烁,那说明AD部分有问题。如果P1.3在闪烁,呵呵 那就奇怪了!
暂时就这些,希望你试一试!其实你的问题肯定能解决的,相信自己!
if(d>10)
{ P1.3=0;
X1 = 0; X2 = 1;
delay_ms(t);
X1 = 0; X2 = 0;
delay_ms(t);
P1.3=1;
X1 = 1; X2 = 0;
delay_ms(t);
X1 = 1; X2 = 1;
delay_ms(t);
}
else
{ P1.4=0;
X1 = 1; X2 = 1;
delay_ms(4.0 * t);
P1.4=1;
}

回答3:

可以用定时器!好像51有款单片机可以输出可编程方波好像还可以改变占空比好久没用了都忘记了,改变定时器值就可以改变输出波形和频率,你这个又用AD很麻烦!