51翻转速度有这么慢吗?
本帖最后由 hongli3154 于 2013-1-23 12:23 编辑单片机最小系统(24M)程序如下:
#include<reg52.h>
sbbit l=P1.0
void main()
{
while(1)
{
l=!l;
}
}
用示波器测只有333k。(电源曾经接反过一次难道是被烧坏了?STC的片子) 以下是官方的说法
内部设定一个变量,反转变量值,输出到管脚。
不要直接读出管脚的值,首先读出的数据在低电平的时候可能不正确,另外读出也是需要时间的。
如果你有兴趣测试反转速度,程序就用汇编写 这个问题前几天讨论过,你搜一下 同意3楼的观点。
测试的代码还是用汇编写的比较精准一些。 IO速度我这测过,AVR的明显快不少,有压摆率限制应该。 那实际到底多少呢?
sbit P1_0=P1^0;
void main()
{
while(1)
{
P1_0=0;
P1_0=1;
}
}
stc12c5a60s2/24m可输出2M以上,示波器实测。{:smile:} wgui 发表于 2013-1-24 03:08 static/image/common/back.gif
sbit P1_0=P1^0;
void main()
{:titter:} 你这样占空比不是50%而是36% 本帖最后由 woshigeshuai 于 2013-1-25 13:08 编辑
LZ的代码转换成汇编应该就是
WHILE:
CPL P1.0 ; 1周期
AJMP WHILE ; 2周期
3+3 =一个频率 ,一个频率时间是6*(12/24)=3us注:24是晶振
1秒=1 000 000us 除以3=333333.33333 本帖最后由 laodangong 于 2013-1-25 14:29 编辑
woshigeshuai 发表于 2013-1-25 13:04 LZ的代码转换成汇编应该就是 WHILE: CPL P1.0 ; 1周期 ajmp 是三个时钟吧?
页:
[1]