[国产单片机] STC在KEIL中调试遇到的问题

[复制链接]
4403|17
 楼主| JasonAnderson 发表于 2012-7-10 09:00 | 显示全部楼层 |阅读模式
我在keil中把调试的时钟设置为硬件上用到的时钟11.0592Mhz,执行一面一延时程序
void delay_ms(uint i)
{
uchar jj;
while(i--)for(jj=0;jj<125;jj++)_nop_();
}


需要的时间显示1.2ms左右,但把程序下到硬件中却没有那么长,时间短了很多,求解释

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
McuPlayer 发表于 2012-7-10 09:07 | 显示全部楼层
Keil里面仿真的是纯粹的8051,而STC是速度优化的8051
 楼主| JasonAnderson 发表于 2012-7-10 09:14 | 显示全部楼层
2# McuPlayer
那怎样才能获得比较准确的时间?!
McuPlayer 发表于 2012-7-10 09:18 | 显示全部楼层
1、要求Keil公司增加STC的对应内核软仿
2、要求STC使用标准的8051
3、其他

评分

参与人数 2威望 +2 收起 理由
autopccopy + 1 haha :)
JasonAnderson + 1

查看全部评分

 楼主| JasonAnderson 发表于 2012-7-10 09:30 | 显示全部楼层
4# McuPlayer 那就现在是不能准确软仿了
gtekled 发表于 2012-7-10 17:12 | 显示全部楼层
STC调试问题
ayb_ice 发表于 2012-7-17 20:01 | 显示全部楼层
用定时器产生滴答时钟是王道

评分

参与人数 1威望 +4 收起 理由
McuPlayer + 4

查看全部评分

logokfu 发表于 2012-7-19 17:17 | 显示全部楼层
STC号称1T单片机啊,速度比传统51要快很多。
logokfu 发表于 2012-7-19 17:18 | 显示全部楼层
STC号称1T单片机啊,速度比传统51要快很多。
ye781205 发表于 2012-7-23 09:51 | 显示全部楼层
STC号称1T单片机啊,速度比传统51要快很多。
也有6t,12t的
qiujiahongde 发表于 2012-7-27 08:44 | 显示全部楼层
KEIL不能仿真STC的单片机的!!那是其他51的!!
xzp114 发表于 2012-8-24 10:44 | 显示全部楼层
理论上仿真都是12T的,所以计算起来,软件仿真应该是1.25ms,但是楼主下载到单片机里面,可能和单片机的型号有关,比如你使用的是1T,6T的单片机呢?或者你市区中使用的晶振频率更高呢??
xzp114 发表于 2012-8-24 10:47 | 显示全部楼层
再说,计算时序用C语言本就不是很准的,推荐你使用while(i--)_nop_;这个,比用for循环要好!
wgdjwjch 发表于 2012-9-12 14:25 | 显示全部楼层
可以开始的时候用延时程序调整啊,看一下真实的与软件的比值是多少,再不就用13楼说的那样。
电工胶带 发表于 2012-11-7 16:45 | 显示全部楼层
用示波器看下
autopccopy 发表于 2012-11-7 18:54 | 显示全部楼层
哎,其实最简单的最方便,STCISP.EXE 有【延时计算器】,我用过示波器来测量,还是很准确的(包括12T,6T,1T,新1T)!

=====
(补充:注:延时的毫秒、微秒不能输入小数,只能整数。)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
ml0943 发表于 2012-12-25 20:50 | 显示全部楼层
void delay(LWORD sms)
{
        LWORD x,y;
        for(x=sms;x>0;x--)
                for(y=110;y>0;y--);
}
zf_015820 发表于 2012-12-26 14:22 | 显示全部楼层
看看汇编出来的代码,再用STC单片机的指令码执行时间 ,计算下,就知道 了呀;这是个小的延时程序,想精准,就这么做,就OK了,仿什么真呀
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

22

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部