找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC 硬件仿真如何看运行时间?

查看数: 3577 | 评论数: 14 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2022-12-18 11:53

正文摘要:

在做的项目里有倒计时的功能,用STC 8G1K08设置芯片仿真,自动设定的频率总是有误差,并且每次的设定频率误差还不一样。比如:   . 用户设定频率: 11.059MHz   . 调节后的频率: 11.040MH ...

回复

ID:1149881 发表于 2025-5-8 14:27
搞一个定时器中断,举个例子,里面不是有TL0和TH0,,查手册找到它们的地址,然后用keil的debug,找里面的memory,然后你去搜你要找的l0和h0的地址,然后打断点运行,看时间变化量就可以了。注意观察是否重新开始加载值了
ID:1061331 发表于 2023-2-6 00:42
用DEBUG断点调试
ID:401564 发表于 2023-2-5 19:35
ningsy 发表于 2022-12-19 09:15
多谢以上各位指导!我会试试看,或许就能用到。

对于精确的长时间,STC单片机都是用定时器的
不会用while这种代码的
至于调节片上的时钟,感觉没必要
ID:1044091 发表于 2022-12-19 09:15
多谢以上各位指导!我会试试看,或许就能用到。
ID:1034262 发表于 2022-12-18 23:21
用一个IO来指示时间。
ID:1044091 发表于 2022-12-18 19:28
网上查了一下,有人让单片机产生1S(或100ms)的波形,配合逻辑分析仪,调整IRTRIM寄存器的值,即可调整STC单片机的频率。但这个调整是一次性的,不同的单片机,就可能有所不同,不同的环境(特指温度,也可能不同)。 这就很麻烦了。我还是先接受它自动调整的精度,实在不行了,就接个晶振上去爽快些。
ID:624769 发表于 2022-12-18 18:36
ningsy 发表于 2022-12-18 13:51
我加了一个断点,按F5数码管就可以按数字倒计时了。但问题是左下角的时间一直是0啊,不显示时间。我再试 ...

左下角是一直0的,所以我说没有办法直接得到,只能要么用变量记录时钟周期,比如开个定时器,每50000个周期,变量+1,然后结合定时器和变量,算出过了多少周期,要么某个IO输出高低电平,让第三方芯片来计算。
ID:624769 发表于 2022-12-18 18:33
ningsy 发表于 2022-12-18 14:08
您说的是不是这样,下载时需要选择22.1184Mhz吗,还是根本就不用管这项了,直接在代码里手动设置IRC频率 ...

下载时可以不需要设置22.1184, 但是,由于频段的关系,要选同一频段的,为了避免麻烦,你还是选22.1184吧,8g1k没有chipID,所以,你只能ROM读取,记得下载时勾选“末尾添加重要参数”选项,才能读取成功。最后,这个数值,是出厂是stc测试时最接近22.1184频率的值,如果这个频率最终依然无法满足你的需要,你只能考虑其他时钟源了。就我的使用结果来看,比电脑自动调的要准太多了。
ID:401564 发表于 2022-12-18 16:50
一两个小时的倒计时是不会有问题的,只要IRC时钟选择对了,再用定时器做延时,保证没有问题
STC8G1K08A,我用来定时六个小时,在分上跟时钟IC是没有区别的,但有时会误差三五分钟
做项目是不可能让你每个单片机去调节时钟的,每个单片机的RC时钟误差都是差不多的
如果你要是想知道怎么测量,最好是下载后用IO进行测量,示波器或者逻辑分析仪都可以
ID:213173 发表于 2022-12-18 14:40
实际运用中,一小时内这点误差可以忽略不计。如果对时间精度有特别需求就要另外添置高精度时钟芯片。
ID:624769 发表于 2022-12-18 12:53
要想得到较准的频率,应当读取出厂的22.1184校验值,用这个,再根据你的实际需要分频,ISP下载设置的频率是不准的,受限你的电脑,至少我用电脑设能误差3%以上。
ID:624769 发表于 2022-12-18 12:49
直接看不了,只能间接看,比如利用某变量记录两个时间点之间的机器周期,又比如某个IO在两个不同时间点输出高低电平,第三方采集等。

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表