打印
[51单片机]

如何用51单片机输出500KHz的时钟频率

[复制链接]
9402|30
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kenny2012|  楼主 | 2013-12-2 17:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
coody| | 2013-12-2 17:33 | 只看该作者
如果是STC的MCU,则可以用定时器产生.这个频率有点偏差不要紧的。我还是建议使用实际点的ADC,8腿的,或者使用MCU自带的ADC。

使用特权

评论回复
板凳
youimiss| | 2013-12-2 18:39 | 只看该作者
要那么高频率干嘛,降一点嘛

使用特权

评论回复
地板
yangfan19641964| | 2013-12-3 09:39 | 只看该作者
用ATMEL或STC的单片机,它们的T2定时器可设置成在P1.0管脚上可编程时钟输出

使用特权

评论回复
5
yangfan19641964| | 2013-12-3 09:46 | 只看该作者
 TL2=RCAP2L=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))%256;
 TH2=RCAP2H=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))/256;
T2CON=0x00;   //C/T2=0,  CP/RL2=0
T2MOD=0x02;   // T2OE=1,在P1.0输出方波       
TR2=1;        //开始输出方波
EXEN2=1;      //允许T2EX触发T2中断
ET2=1;       EA=1;

使用特权

评论回复
6
kenny2012|  楼主 | 2013-12-3 10:17 | 只看该作者
coody 发表于 2013-12-2 17:33
如果是STC的MCU,则可以用定时器产生.这个频率有点偏差不要紧的。我还是建议使用实际点的ADC,8腿的,或者使 ...

STC89C52内部不带AD模块的,手上还有一块PCF8591,不会用~~~早知道0809这么麻烦我也不买这个咯~

使用特权

评论回复
7
kenny2012|  楼主 | 2013-12-3 10:18 | 只看该作者
youimiss 发表于 2013-12-2 18:39
要那么高频率干嘛,降一点嘛

最低50KHz,也是略显吃力~~~

使用特权

评论回复
8
kenny2012|  楼主 | 2013-12-3 10:20 | 只看该作者
yangfan19641964 发表于 2013-12-3 09:46
 TL2=RCAP2L=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))%256;
 TH2=RCAP2H=(uint)((floa ...

这样的话会不会占用过多的系统资源,我怕定时时间太短的话,一直在执行定时--中断,都不能执行其它的程序

使用特权

评论回复
9
youimiss| | 2013-12-3 12:43 | 只看该作者
kenny2012 发表于 2013-12-3 10:18
最低50KHz,也是略显吃力~~~

用555吧

使用特权

评论回复
10
yangfan19641964| | 2013-12-3 13:10 | 只看该作者
你可以不开中断。

TL2=RCAP2L=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))%256;
 TH2=RCAP2H=(uint)((float)65536-(float)Fosc*1000000/((float)4*freq))/256;
T2CON=0x00;   //C/T2=0,  CP/RL2=0
T2MOD=0x02;   // T2OE=1,在P1.0输出方波        
TR2=1;        //开始输出方波

使用特权

评论回复
11
yangfan19641964| | 2013-12-3 13:12 | 只看该作者
T2触发中断——在P1.1上的一个下降沿引起中断。与P1.0上的方波输出时互相独立的。

使用特权

评论回复
12
coody| | 2013-12-3 13:36 | 只看该作者
STC89C52RC是跟通用的AT89C52兼容的,定时器T2可以16位自动重装输出方波而不用中断,是硬件输出的,不占用CPU,输出1MHZ都木问题。

你可以使用STC12C5A60S2,引脚兼容,带8路10位ADC。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
kenny2012 + 1 很给力!
13
mcuatmel| | 2013-12-3 15:46 | 只看该作者
楼主,你搞错了吧,ADC0809用不了那么高的频率的,用1K就不错了。你仔细看下资料。一般用ALE输出的时钟就可以了。

使用特权

评论回复
14
欧阳旭李| | 2013-12-3 16:10 | 只看该作者
好高的频率啊。。。。

使用特权

评论回复
15
taamhb| | 2013-12-3 16:10 | 只看该作者
逛一逛,学习学习!

使用特权

评论回复
16
kenny2012|  楼主 | 2013-12-3 16:18 | 只看该作者
mcuatmel 发表于 2013-12-3 15:46
楼主,你搞错了吧,ADC0809用不了那么高的频率的,用1K就不错了。你仔细看下资料。一般用ALE输出的时钟就可 ...

真心没搞错,是500KHz的~~~一块0809比51单片机贵好多~~~

使用特权

评论回复
17
kenny2012|  楼主 | 2013-12-3 16:19 | 只看该作者
coody 发表于 2013-12-3 13:36
STC89C52RC是跟通用的AT89C52兼容的,定时器T2可以16位自动重装输出方波而不用中断,是硬件输出的,不占用C ...

嗯,好像知道STC的有个T2,今晚去查资料:loveliness:

使用特权

评论回复
18
tergy2012| | 2013-12-3 16:42 | 只看该作者
单片机啊不是很懂,学习

使用特权

评论回复
19
dragon_hn| | 2013-12-3 16:57 | 只看该作者
放弃ADC0809吧,太老古董了.

使用特权

评论回复
20
kenny2012|  楼主 | 2013-12-3 17:05 | 只看该作者
dragon_hn 发表于 2013-12-3 16:57
放弃ADC0809吧,太老古董了.

之前百度了一下,说0809已经是淘汰产品了,不过还是挺贵的0.0那现在一般都用什么AD芯片,或者说都倾向于把AD模块集成到单片机中~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

17

帖子

0

粉丝