hongli3154 发表于 2013-1-23 22:05:06

用汇编试了一下STC89C52RC的IO最大还是300K左右

程序如下:
ORG 000H
AJMP MAIN
MAIN:CPL P1.0
JMP MAIN
END
还请大侠看看是怎么回事?

rclong 发表于 2013-1-23 22:24:03

取反

IO取反

takashiki 发表于 2013-1-23 22:56:52

给你个代码,你测试一下,是不是变成1M了?STC89C52是12T/6T的,不要想当然的认为是1T。ORG 000H
AJMP MAIN
MAIN:
REPT 1000
      CPL P1.0
ENDM
JMP MAIN
END

wx85105157 发表于 2013-1-23 23:06:40

而且你也要设置成6T模式啊。

dashashi 发表于 2013-1-23 23:22:12

等LZ测试结果- -

af00 发表于 2013-1-23 23:25:02

口是不是要设置为推挽?

dz20062008 发表于 2013-1-24 00:33:46

ORG 0000H
MAIN:CPL P0.0
SJMP MAIN
END

wgui 发表于 2013-1-24 02:56:44

本帖最后由 wgui 于 2013-1-24 02:58 编辑

我用c写的示波器测量过stc89c52循环输出。有300kHZ左右,不记得是几m晶体了,12T模式。12c5a60s2用24m可输出2MHZ以上;

wx85105157 发表于 2013-1-25 12:46:10

用STC15f104E测试了24Mhz,有1.7Mhz的输出。

代码

#include <REG51.H>
sbit out=P3^0;
void main(void)
{
while(1)out=!(out);
}

汇编出来也是
MAIN:
CPL P3^0
SJMP MAIN

usk5yenj4id04dm 发表于 2013-1-25 14:47:50

时钟选的是什么?

majianjia1991 发表于 2013-1-25 16:47:35

你当sjmp不用时间么…

kjspace123 发表于 2013-1-25 21:16:09

sjmp好像为2个机器周

dz20062008 发表于 2013-1-25 21:44:35

这问题归结起来还是说的指令周期

tonyone 发表于 2013-1-26 10:53:38

用在何处?

ttb2008 发表于 2013-1-26 11:00:22

有啥用搞这个?

ckvlhf 发表于 2013-1-26 11:04:29

你用汇编写100行的CPL再跳到开始看看。跳转的时间跟取反可能不一样,很久没用汇编忘了那些周期。

ckvlhf 发表于 2013-1-26 11:05:55

af00 发表于 2013-1-23 23:25 static/image/common/back.gif
口是不是要设置为推挽?

STC89C52不能推挽的。

qwind 发表于 2013-1-26 18:01:30

MAIN:CPL P1.0
JMP MAIN
这两句需要36个时钟周期,如果用24M的晶振,输出频率大约为333333HZ,也就是大约300K。如果用6T模式,输出*2。

Wxy8030 发表于 2013-1-26 20:12:43

STC 的单片机已经不是严格遵守原来INTEL的 8031的指令周期了,尤其是其号称1T的单片机,不要被他的广告忽悠了!
页: [1]
查看完整版本: 用汇编试了一下STC89C52RC的IO最大还是300K左右