用汇编试了一下STC89C52RC的IO最大还是300K左右
程序如下:ORG 000H
AJMP MAIN
MAIN:CPL P1.0
JMP MAIN
END
还请大侠看看是怎么回事? 取反
IO取反 给你个代码,你测试一下,是不是变成1M了?STC89C52是12T/6T的,不要想当然的认为是1T。ORG 000H
AJMP MAIN
MAIN:
REPT 1000
CPL P1.0
ENDM
JMP MAIN
END 而且你也要设置成6T模式啊。 等LZ测试结果- - 口是不是要设置为推挽? ORG 0000H
MAIN:CPL P0.0
SJMP MAIN
END 本帖最后由 wgui 于 2013-1-24 02:58 编辑
我用c写的示波器测量过stc89c52循环输出。有300kHZ左右,不记得是几m晶体了,12T模式。12c5a60s2用24m可输出2MHZ以上; 用STC15f104E测试了24Mhz,有1.7Mhz的输出。
代码
#include <REG51.H>
sbit out=P3^0;
void main(void)
{
while(1)out=!(out);
}
汇编出来也是
MAIN:
CPL P3^0
SJMP MAIN 时钟选的是什么? 你当sjmp不用时间么… sjmp好像为2个机器周 这问题归结起来还是说的指令周期 用在何处? 有啥用搞这个? 你用汇编写100行的CPL再跳到开始看看。跳转的时间跟取反可能不一样,很久没用汇编忘了那些周期。 af00 发表于 2013-1-23 23:25 static/image/common/back.gif
口是不是要设置为推挽?
STC89C52不能推挽的。 MAIN:CPL P1.0
JMP MAIN
这两句需要36个时钟周期,如果用24M的晶振,输出频率大约为333333HZ,也就是大约300K。如果用6T模式,输出*2。 STC 的单片机已经不是严格遵守原来INTEL的 8031的指令周期了,尤其是其号称1T的单片机,不要被他的广告忽悠了!
页:
[1]