求助!用IO口能发出8M脉冲用那款51单片机!!

[复制链接]
7596|42
chongxing 发表于 2008-8-23 01:53 | 显示全部楼层

至少应该使用一个支持晶振频率在12*8*2M

 楼主| ZGH51688 发表于 2008-8-25 15:34 | 显示全部楼层

各位!就是不发脉冲!帮忙看一下谢谢大家

#include<AT89X52.H>
main(void){
T2MOD =0X00;  //C_T2=0
T2CON=0x02;   //
RCAP2H =0xff;
RCAP2L =0xff;
TR2=1;}
 楼主| ZGH51688 发表于 2008-8-25 15:38 | 显示全部楼层

各位帮忙看看!!谢谢

我用这个程序在T2口输出时钟脉冲,可是频率只有1.6KHZ
无论怎么改TL2,TH2频率都不变


#include<AT89X52.H>
main(void){
T2MOD =0X02;  //T2OE=1
T2CON=0x00;   //C_T2=0
RCAP2H=0X0FF;
RCAP2L=0X0FF;
TR2=1;       //开始
}

 
lyjian 发表于 2008-8-25 15:45 | 显示全部楼层

错了

应该
T2MOD=0x02;  //C_T2=0
T2CON=0x00;   //
RCAP2H=0xff;
RCAP2L=0xff;
芯行天下 发表于 2008-8-25 15:58 | 显示全部楼层

PWM问题

要产生8MHZ方波,CPU频率最低要过到16M,所以来说选用一般的芯片还是达不到要求的。

可以选用MSP430系列16M的芯片,可以产生8M方波,当然430的片子也不便宜,也可以使用低成本的ARM芯片,片子也不贵,也就10几块钱吧。这应该是比较好的选择。
lyjian 发表于 2008-8-25 16:06 | 显示全部楼层

楼主用的晶振是多少?

上面的软件应该是没问题的
另外,改TL2,TH2的值频率是不会变的
要改RCAP2H/RCAP2L才行
1lixz 发表于 2008-8-25 22:07 | 显示全部楼层

用C8051

那你就用c8051F系列单片机吧,不过才能出6M,哈哈,但他不占用资源,用PCA硬件发。如果你能用外部时钟,就能达到8M,外部加32M时钟,用其4分频就可以得到。
lyjian 发表于 2008-8-26 09:18 | 显示全部楼层

楼上对C8051F并不了解

用C8051F系列单片机的话,XTAL=24M时可以输出12M
zgh51688 发表于 2008-8-26 16:31 | 显示全部楼层

在此感谢各位!

最终程序改到:
#include<AT89X52.H>
main(void){
T2MOD =0X02;  //T2OE=1
T2CON=0x00;   //C_T2=0
RCAP2H=0X0FF;
RCAP2L=0X0FE;
TR2=1;       //开始}

单片机是STC89C52RC支持到44M
晶振的频率现在是12MHZ
发出的频率是1.5MHZ
符合Lyjian和各位提出的公式.
输出频率=1/(4*(65536-(RCAP2H,RCAP2L)))
最后改到RCAP2L=0X0FE,有1.5MHZ输出
当改到RCAP2L=0XFF时,就无输出.
不知是不是单片机的问题!
请各位帮帮忙!

lyjian 发表于 2008-8-26 16:59 | 显示全部楼层

是你的软件有问题

在最后加一条while(1);
zgh51688 发表于 2008-8-27 09:39 | 显示全部楼层

回Lijian,我以前加过等待程序的.

结果一样.RCAP2L=0XFF;时就无输出
请问以前有没有用过,实在不行就选其他方法了.
再次谢谢支持
lyjian 发表于 2008-8-27 09:56 | 显示全部楼层

如果不行的话那就是你的芯片有问题

同样的软件我在P89V51RD2上测试了,没任何问题
XTAL=18.432MHz,RCAP2L=0XFF,RCAP2H=0XFF时,输出为4.6MHz
zgh51688 发表于 2008-8-27 10:17 | 显示全部楼层

回Lijian

谢谢!我再找其他单片机看看.
可否推荐价格便宜点6时钟模式的51单片机
我只用过STC89,
太慢了
功能不用多就要快!
lyjian 发表于 2008-8-27 10:30 | 显示全部楼层

最便宜的应该是STC的吧

我用过NXP的P89C61X2和P89V51RD2,感觉还行
P89V51RD2大概一块多美金
其他SST的应该比较便宜
zgh51688 发表于 2008-8-27 10:52 | 显示全部楼层

速度快不快?30以下都能接受

我作的东西就看速度,效率
郑成功了 发表于 2008-8-27 11:27 | 显示全部楼层

8M是比较高的频率了

传统12T的51片子是不好做这么高频率的脉冲的。
STC倒是用过,PWM在32M时也就125K,已经接近极限了。
其他的片子没有用过,但个人认为8M不太好搞的。

建议直接用硬件振荡器,在控制要求满足的范围内,这个应该是一个思路。
lyjian 发表于 2008-8-27 11:36 | 显示全部楼层

要快用一个时钟周期的51

C8051F系列
STC12C系列
DS89C4xx系列
等等
6个时钟周期的51在XTAL=20MHz时我觉得已经够快了
lyjian 发表于 2008-8-27 11:49 | 显示全部楼层

36楼说的不对

PWM输出和方波输出是两回事
如果要用51输出8M的PWM确实难
但要输出8M的方波确是很简单的
T2的频率输出功能就可以只要XTAL=32MHz就可以了(12T 51)
现在一大堆普通51最高可以跑在40M(如Winbond、NXP、SST、STC等公司的51)(对于6T 51,只需XTAL=16M就可以了)
PowerAnts 发表于 2008-8-30 07:38 | 显示全部楼层

CPU不用干别的话?

11楼: 6时钟模式的51晶振用16M就可以输出8M了 
lyjian 发表于 2008-8-30 10:01 | 显示全部楼层

楼上复习一下51

用51定时器2的时钟输出功能是不需要软件干预的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部