dz20062008 发表于 2012-5-12 03:45:42

用单片机输出方波,还能再快点吗?

本帖最后由 dz20062008 于 2012-5-12 03:50 编辑

          org 0000h
          nop
          sjmp main
          org 0030h
main:cpl p2.0
          sjmp main
          end
前一天在坛子看到单片机io口输出方波,能最快多少,于是好奇自己就写了几句,
用12m晶振 at89s52 谁能写出输出更快
的方波代码?我这个是输出标准周期为
6us方波,占空比50%   不要求开头准确,不要告诉我 als直接六分频!

shamiao 发表于 2012-5-12 06:47:56

又一个楼主位被吃了的。

用单片机输出方波,还能再快点吗?
本帖最后由 dz20062008 于 2012-5-12 03:50 编辑

          org 0000h
          nop
          sjmp main
          org 0030h
main:cpl p2.0
          sjmp main
          end
前一天在坛子看到单片机io口输出方波,能最快多少,于是好奇自己就写了几句,
用12m晶振 at89s52 谁能写出输出更快
的方波代码?我这个是输出标准周期为
6us方波,占空比50%   不要求开头准确,不要告诉我 als直接六分频!
页:

eastboy 发表于 2012-5-12 09:01:35

还是认真看下AT89S52的手册吧,89S52的定时器2可配置为可编程时钟输出,12M时钟理论上最快可以出12/4=3M的方波。见手册第16页。

renwocai 发表于 2012-5-12 09:53:53

仅仅要个方波有什么意义,用晶振好了。

jlhgold 发表于 2012-5-12 10:05:05

eastboy 发表于 2012-5-12 09:01 static/image/common/back.gif
还是认真看下AT89S52的手册吧,89S52的定时器2可配置为可编程时钟输出,12M时钟理论上最快可以出12/4=3M的 ...

真的?你发一个出来看看!io不用时间的?

raxb 发表于 2012-5-12 10:48:55

没意义.大家不要讨论了,难道你的单片机就只输出方波,不用做其它事{:sweat:}{:sweat:}{:sweat:}

skynet 发表于 2012-5-12 10:54:54

关于此问题,论坛神级人物 马老师,专门写了1篇文章,楼主去拜读吧

dudududu 发表于 2012-5-12 10:57:17

楼上,求连接啊,谢谢{:biggrin:}

t2397362 发表于 2012-5-12 10:58:06

一般如果有匹配输出模块的话,应该是首选吧。io的翻转速度没仔细研究过,边沿估计没那么好看,可能是io翻转速度不够,也有可能是示波器的探头不行。

y574924080 发表于 2012-5-12 11:13:37


如何正确产生精确、同步的1M、1K、1Hz方波(STM32通用定时器应用笔记)

http://www.ourdev.cn/forum.php?mod=viewthread&tid=3762261&highlight=%E6%96%B9%E6%B3%A2

y574924080 发表于 2012-5-12 11:18:25

请教:如何用MEGA16产生1M的频率信号?


http://www.ourdev.cn/forum.php?mod=viewthread&tid=3737664

jetli 发表于 2012-5-12 11:49:09

晶振-》74125-》选通{:shocked:}

bbs2009 发表于 2012-5-12 11:52:44

BXAK 发表于 2012-5-12 12:39:57

本帖最后由 BXAK 于 2012-5-12 12:41 编辑

raxb 发表于 2012-5-12 10:48 static/image/common/back.gif
没意义.大家不要讨论了,难道你的单片机就只输出方波,不用做其它事 ...

有的单片机有可编程输出引脚,设置输出频率后,对其相应控制位置1就会有脉冲输出,清0则停止输出,并不占用CPU时间,
像AT89C52、STC89C52……等等都有,可以用来做红外遥控载波、超声波脉冲之类的

eastboy 发表于 2012-5-12 15:57:58

jlhgold 发表于 2012-5-12 10:05 static/image/common/back.gif
真的?你发一个出来看看!io不用时间的?

不想和你争论,AT89S52手册第16页写得很清楚了。

raxb 发表于 2012-5-13 22:49:08

BXAK 发表于 2012-5-12 12:39 static/image/common/back.gif
有的单片机有可编程输出引脚,设置输出频率后,对其相应控制位置1就会有脉冲输出,清0则停止输出,并不占 ...

不好意思,我以为楼主说的是用IO口编程模拟输出,不使用单片机特殊功能

dz20062008 发表于 2012-5-14 06:22:22

raxb 发表于 2012-5-13 22:49
不好意思,我以为楼主说的是用IO口编程模拟输出,不使用单片机特殊功能

就是用单片机,要不来个压控振荡器不是更好。考虑的就是io操作的效率问题

eastboy 发表于 2012-5-14 10:30:20

jlhgold 发表于 2012-5-12 10:05 static/image/common/back.gif
真的?你发一个出来看看!io不用时间的?

你要程序是吧?
#include <reg52.h>
sfr T2MOD = 0xC9;

void main(void)
{
        RCAP2L = 0xFF;
        RCAP2H = 0xFF;
        T2MOD= 0x02;
        TR2 = 1;
        while (1);
}
下面是实验抓的波形:AT89S52 12M晶振,P1.0输出

说实话,很讨厌你说话的口气!叫你看DataSheet,多少页都给你指出来了,你说这话之前你看了手册吗?

chengtina 发表于 2012-5-14 12:19:37

eastboy 发表于 2012-5-14 10:30 static/image/common/back.gif
你要程序是吧?
#include
sfr T2MOD = 0xC9;


你那个抓波形的用的什么东西?是示波器的上位机?

yufei8051 发表于 2012-5-14 12:30:10

你那个抓波形的用的什么东西?是示波器的上位机

蜂巢 发表于 2012-5-14 12:34:55

抓波形可用逻辑分析仪。

haohouse 发表于 2012-5-14 13:06:36

7楼你说的文章给个链接啊

haohouse 发表于 2012-5-14 13:07:13

不能发站内消息,郁闷

jlhgold 发表于 2012-5-14 20:40:01

eastboy 发表于 2012-5-14 10:30 static/image/common/back.gif
你要程序是吧?
#include
sfr T2MOD = 0xC9;


话说,后来看了下,确实可以做到1/4 crystal!之前一直以为在主循环里直接对io取反是io的极限了!

miyadai 发表于 2012-5-15 10:47:58

根据单片机的处理能力,看看是否可以把速度加上去。

raxb 发表于 2012-5-15 11:43:21

蜂巢 发表于 2012-5-14 12:34 static/image/common/back.gif
抓波形可用逻辑分析仪。

也可以用录音
页: [1]
查看完整版本: 用单片机输出方波,还能再快点吗?