首页 > 其他分享 >【STC8H】通用的软件延时函数

【STC8H】通用的软件延时函数

时间:2024-11-04 23:42:24浏览次数:3  
标签:Fosc 单片机 STC STC8H 延时 软件 毫秒 MAIN

单片机程序用软件延时来进行时间控制是经常的,比如让LED按一定的规律闪动。过去我用IAP15W4K58S4单片机时,我采用STC官网上下载的STC15实验箱范例程序的延时程序,其延时函数的定义为:

void delay_ms(u8 ms){
    u16 i;
    do{
        i = MAIN_Fosc / 13000;
    while(--i) ; //14T per loop
    }while(--ms);
}

 

其中计算每毫秒做空循环次数的公式为:“i = MAIN_Fosc / 13000”。
我实际进行测量,挺准的,在主频为22118400赫兹的情况下,延时1秒钟,实际为1001毫秒。

最近STC官网上又给出了STC8实验箱范例程序,其中的延时函数和STC15实验箱的一摸一样。处于好奇,我用STC8G1K12-20做了测试,结果在主频为22118400赫兹的情况下,延时1秒钟,实际只有768毫秒,整整少了232毫秒。
我怀疑是不是我的芯片有什么问题,于是用STC8A8K64S4单片机做了测量,结果仍然是一样的。也就是说STC8G和STC8A的实际运行速度比理论值快了近25%,这显然不是简单的误差可以解释的,一定是出现系统的偏差。

然后我用一款STC15W4K48S4单片机进行验证,结果在主频为22118400赫兹的情况下,延时1秒钟,实际为920毫秒,少了80毫秒。比同系列的IAP15W4K58S4单片机快了8%,也不像是简单的误差可以解释的,很可能是出现了系统的偏差。
同为1T周期的单片机,为什么有如此大的差别,秘密应该就在1T单片机内核使用的流水线结构上。STC官方芯片手册上提到STC8系列单片机内核采用了4级流水线结构,在STC ISP软件上称为“STC-Y6”结构。部分STC15系列单片机的内核也采用了4级流水线结构,称为“STC-Y5”结构,比如STC15Wxx系列。其余部分STC15系列单片机的内核采用的流水线结构不同,称为“STC-Y3”结构。
传统的12T周期STC单片机,没有流水线结构,称为“STC-Y1”结构,比如STC89xx和STC90xx系列。

我经过实际测试,STC不同内核结构的经验延时公式如下:
对于STC-Y6结构, 每毫秒做空循环次数的公式为:i = MAIN_Fosc / 10000
对于STC-Y5结构, 每毫秒做空循环次数的公式为:i = MAIN_Fosc / 119000
对于STC-Y3结构, 每毫秒做空循环次数的公式为:i = MAIN_Fosc / 13000
对于STC-Y1结构, 每毫秒做空循环次数的公式为:i = MAIN_Fosc / 96000
用C语言写软件延时函数,同样的程序,不同编译器编译出来的结果可能不同。这些经验公式是在使用Keil的C51编译器,在small模式和C语言8级优化的编译环境下测试得到的。当然同一个编译器对于不同的模式和优化方法,产生的延时也不一定相同。
要避免这种C语言程序延时效果依赖编译模式和优化方法的缺点,软件延时函数应该用汇编语言来写。

转载自:子牙篇(1)软件延时程序—STC8单片机隐藏的秘密

链接:https://m.weibo.cn/status/4524911408654095

作者:微博:单片机大哥

标签:Fosc,单片机,STC,STC8H,延时,软件,毫秒,MAIN
From: https://www.cnblogs.com/FBsharl/p/18526969

相关文章

  • 软件架构演变:从单体架构到LLM链式调用
    0前言软件架构——我们数字世界的蓝图——自20世纪中叶计算机时代诞生以来,已经发生了巨大演变。20世纪60年代和70年代早期,以大型主机和单体软件为主导。而今天,数字领域已完全不同,运行在由云计算、API连接、AI算法、微服务和编排平台组成的分布式网络上。软件架构是如何随着岁......
  • 牛客软件开发专项练习-Day6
    1.若一个具有N个结点,M条边的无向图构成一个森林,(N>M),则该森林必有多少棵树(N-M)2.某网络的IP地址空间为192.168.5.0/24 , 采用定长子网划分,子网掩码为255.255.255.248,则该网络的最大子网个数 、每个子网内的最大可分配地址个数(32,6)解释:由192.168.5.0/24可知子网掩码是255.......
  • CAD、BOM、PLM、PDM……国产工业软件为何被“卡脖子”
    卡脖子,不挣钱——工业软件成为开发禁区国内一直流传着芯片“卡脖子”的说法,但CAD、PDM、PLM等工业软件“卡脖子”的状况也由来已久了,二三十年来,这一直是行业内人人皆知的现实。工业软件是中国工业体系中最大的短板之一,尤其是核心工业软件,更是大家避之不及的开发禁区。原因很......
  • 1D+洪水淹没制图软件(洼地处理、流向计算、集水面积计算、绘制洪水淹没图)DEM GIS HecRA
    1. 软件原理简介基于洪水频率计算得到的设计洪水成果,通过水位流量关系将常见年遇洪水的洪峰流量转化为水位,进一步结合洪泛平原DEM数据,采用GIS水文分析方法计算洪泛平原内任一栅格的水流流程,耦合一维水力学模拟计算,用于大范围洪水淹没制图。淹没制图算法近似于HecRAS等水力学......
  • 软件测试--BUG篇
     博主主页: 码农派大星.  数据结构专栏:Java数据结构 数据库专栏:MySQL数据库JavaEE专栏:JavaEE软件测试专栏:软件测试关注博主带你了解更多知识目录1.软件测试的⽣命周期2.BUG 1.BUG 的概念2.描述bug的要素3.bug级别4.bug的⽣命周期 5与开发产......
  • Ai绘画软件 Stable Diffusion 最新安装包
    StableDiffusion,作为近年来备受瞩目的AI图像生成工具,以其强大的文本到图像生成能力,正在逐步改变创意产业与商业应用的格局。随着StableDiffusion4.9的发布,这款工具在技术性能上取得了显著提升,以满足从专业研究到普通用户的多样化需求。需要stablediffusion可以扫描下......
  • 常见的软件安全性缺陷和漏洞
    软件的安全有很多方面的内容,主要的安全问题是由软件本身的漏洞造成的,下面介绍常见的软件安全性缺陷和漏洞。1、缓冲区溢出缓冲区溢出已成为软件安全的头号公敌,许多实际中的安全问题都与它有关。造成缓冲区溢出问题通常有以下两种原因。1)设计空间的转换规则的校验问题即缺乏......
  • 国标GB28181设备管理软件EasyGBS国标GB28181公网平台创新应用
    在当今数字化时代,视频监控技术在各个领域发挥着至关重要的作用。随着科技的不断进步GB28181标准的广泛应用为视频监控系统带来了更高的兼容性和稳定性。而国标GB28181公网平台EasyGBS作为一款基于GB28181标准的视频监控平台,正以其强大的功能和创新的应用,为用户带来全新的监控体......
  • 国标GB28181网页直播平台EasyGBS国标GB28181软件与GB28181应用场景分析
    随着5G、AI、云计算、大数据、物联网等新兴技术的快速发展,各行各业都在积极探索智能化、现代化的管理与运营模式。国标GB28181网页直播平台EasyGBS作为一款基于国标GB28181协议的视频云服务平台,凭借其强大的功能和广泛的应用场景,在众多领域中展现出了独特的优势。一、EasyGBS......
  • 国标GB28181-2022平台EasyGBS国标GB28181设备管理软件:GB28181标准下的视频监控集成与
    随着信息技术的飞速发展,视频监控领域正经历从传统安防向智能化、网络化安防的深刻转变。在这一变革中,国标GB28181-2022平台EasyGBS作为一款基于GB28181标准的视频监控集成与管理平台,凭借其卓越的性能、高度的灵活性和用户友好的设计,广泛应用于智慧城市、智慧园区、智慧交通、智......