请问Keil中的STC库指令周期是准确的吗?

[复制链接]
 楼主| ar3000a 发表于 2020-6-21 01:02 | 显示全部楼层 |阅读模式
我导入了STC库,模拟运行时,发现Y3指令集的CPL A指令是一个周期,但手册写着2周期。
正在验证其他指令。
麻烦有研究过的老师给个回复,用keil模拟运行能不能模拟出STC单片机的各种指令周期呢?
xxdcq 发表于 2020-6-21 10:20 | 显示全部楼层
定时器和串口波特率是准确的,指令周期别指望它准确,说的是1T的,我们测试的实际是1.38T 左右
 楼主| ar3000a 发表于 2020-6-21 10:32 | 显示全部楼层
xxdcq 发表于 2020-6-21 10:20
定时器和串口波特率是准确的,指令周期别指望它准确,说的是1T的,我们测试的实际是1.38T 左右 ...

在keil里面能不能自己调整一下。软仿真指令周期怎么自定义啊?
jekey 发表于 2020-6-21 11:17 | 显示全部楼层
写程序最好不要跟指令周期相关,方便移植到其他平台。
wztoad 发表于 2020-6-21 16:01 | 显示全部楼层
不准确,我都延时10秒,然后掐秒表校准
 楼主| ar3000a 发表于 2020-6-23 01:45 | 显示全部楼层
我一般会很认真搞清楚各种细枝末节的问题,求得安心。 经过在实际电路实验得出点结论:
实际搭了电路测试了几条指令,INC A,2周期,keil里面正确,实际电路正确。
CPL A 实际电路正确,keil里面不正确。NOP都正确,SETB P3.7都正确。

查看Y3,Y5等指令集表格,发现只有Y3的才会INC A是2周期,其他都不是2周期。
这样能不能下结论,keil的STC库,至少对Y3指令集来说,一部分指令是正确的,另一些则没搞好。 官网下载来的。
 楼主| ar3000a 发表于 2020-6-23 01:52 | 显示全部楼层
jekey 发表于 2020-6-21 11:17
写程序最好不要跟指令周期相关,方便移植到其他平台。

我是做时间相关工作的,程序每个分支,跳转,都需要等时。也没有平台可移植,因为水平差,只追究每个指令就累死我了。好容易想到在电脑模拟一下,又遇上这种库并不正确的事情。
coody 发表于 2020-6-23 22:21 | 显示全部楼层
要想知道程序执行时间,参考STC手册中的汇编指令,没条都有时钟数,这个是准确的。KEIL里的时钟数是按8031来计数显示的。
 楼主| ar3000a 发表于 2020-6-24 17:07 | 显示全部楼层
coody 发表于 2020-6-23 22:21
要想知道程序执行时间,参考STC手册中的汇编指令,没条都有时钟数,这个是准确的。KEIL里的时钟数是按8031 ...

不是,STC做了库,导入以后,keil时钟数就不是12T了。
 楼主| ar3000a 发表于 2020-6-27 08:41 | 显示全部楼层
官方有没有人在?
oufuqiang 发表于 2020-8-2 10:48 | 显示全部楼层
最求极致性能的时候,这些周期就用得上了。
Q624353765 发表于 2020-8-9 16:54 | 显示全部楼层
没法比的,以stc官方数据为准
xiaowuzxc 发表于 2020-10-28 20:42 | 显示全部楼层
应该是准的。stc15,用示波器看io口翻转,周期符合指令数目。精准延时还是用定时器比较好

21

主题

201

帖子

1

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