当前位置:首页 > 单片机 > 单片机
[导读]C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机

C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。扩展阅读:汇编延时程序算法详解

一. 500ms延时子程序

程序:

void delay500ms(void)

{

unsigned char i,j,k;

for(i=15;i>0;i--)

for(j=202;j>0;j--)

for(k=81;k>0;k--);

}

计算分析:

程序共有三层循环

一层循环n:R5*2 = 81*2 = 162us DJNZ 2us

二层循环m:R6*(n+3) = 202*165 = 33330us DJNZ 2us + R5赋值 1us = 3us

三层循环: R7*(m+3) = 15*33333 = 499995us DJNZ 2us + R6赋值 1us = 3us

循环外: 5us 子程序调用 2us + 子程序返回 2us + R7赋值 1us = 5us

延时总时间 = 三层循环 + 循环外 = 499995+5 = 500000us =500ms

计算公式:延时时间=[(2*R5+3)*R6+3]*R7+5

二. 200ms延时子程序

程序:

void delay200ms(void)

{

unsigned char i,j,k;

for(i=5;i>0;i--)

for(j=132;j>0;j--)

for(k=150;k>0;k--);

}

三. 10ms延时子程序

程序:

void delay10ms(void)

{

unsigned char i,j,k;

for(i=5;i>0;i--)

for(j=4;j>0;j--)

for(k=248;k>0;k--);

}

四. 1s延时子程序

程序:

void delay1s(void)

{

unsigned char h,i,j,k;

for(h=5;h>0;h--)

for(i=4;i>0;i--)

for(j=116;j>0;j--)

for(k=214;k>0;k--);

}

关于单片机C语言的精确延时,网上很多都是大约给出延时值没有准确那值是多少,也就没有达到精确高的要求,而本函数克服了以上缺点,能够精确计数出要延时值且精确达到1us,本举例所用CPU为STC12C5412系列12倍速的单片机,只要修改一下参数值其它系例单片机也通用,适用范围宽。

共有三条延时函数说明如下:

函数调用分两级:一级是小于10US的延时,二级是大于10US的延时

//====================小于10US的【用1US级延时】====================

//----------微秒级延时---------

for(i=X;i>X;i--) 延时时间=(3+5*X)/12 提示(单位us, X不能大于255)

//================大于10US<小于21.9955Ms的可用【10US级延时函数】===========

void Delay10us(uchar Ms)

{

uchar data i;

for(;Ms>0;Ms--)

for(i=26;i>0;i--);

}

i=[(延时值-1.75)*12/Ms-15]/4

如想延时60US则 i=[(60-1.75)*12/6-15]/4=25.375≈26; 修改i的值=26,再调用上面的【10US级延时函数】Delay10us(6); 则就精确延时60US;

如果想延时64US可以用这二种函数组合来用: Delay10us(6); for(i=9;i>X;i--) 共延时64US

【更多资源】

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2025年7月27日 /美通社/ -- 在2025世界人工智能大会(WAIC)期间,全球领先消费品企业联合利华首次以企业展商身份亮相,并深度参与多个AI主题论坛和行业对话,展示了其在人工智能领域的战略思考与实践布局。...

关键字: AI FOR SCIENCE 人工智能

-创新邂逅包容,2025年EdHeroes全球论坛探索以人为本的教育技术未来 列支敦士登特里森2025年7月22日 /美通社/ -- 随着创新加速、科技重新定义现代生活的方方面面, 2025年EdHeroes全球论坛(...

关键字: 人工智能 FOR GLOBAL 数字化

上海 2025年6月20日 /美通社/ -- 6月18日至20日,2025世界移动通信大会•上海(MWCS 2025)在上海盛大开幕,全球目光再次聚焦这场通信领域的年度盛会...

关键字: AI 5G WORLD FOR

会议议题将涵盖  AI 驱动的工程设计、智能制造以及基于  HPC 和 AI 相结合的智能扩展 上海 2025年6月19日 /美通社/ -- 全球计算智能领域科技公司Altair将于 2025 年 6 月...

关键字: ENGINEERS FOR TC AIR

采用51单片机最小开发板,由8位自制独立按键控制。单片机芯片为STC89C52RC,晶振为@12.000 mhz。8X8LED点阵屏模块由MAX7219驱动,MAX7219包含一个自动扫描电路。你只需要把要显示的数据发送...

关键字: 51单片机 MAX7219 寄存器

深圳2025年2月28日 /美通社/ -- 作为全球领先的AIoT模组及解决方案提供商,广和通26年来始终致力于为全球千行百业打造创新物联方式。面向全新的AI时代,广和通推出...

关键字: AI FOR 模型 芯片

上海2025年2月19日 /美通社/ --  新品亮点 负载能力达500 kg,最长臂展3700mm,KR FORTEC-2弥补了库卡新一代重载机器人KR QUTANEC和KR FORTEC ultr...

关键字: FOR 机器人 ORTEC ULTRA

北京2025年1月6日 /美通社/ -- 日前,浪潮信息与一实验室(以下简称实验室)正式签署合作协议,将采用42kW智算风冷算力仓打造算效能效双提升、性能扩展双极致、部署运维双简化的领先智算中心,加速实验室开展高端装备制...

关键字: FOR SCIENCE AI 数据中心

长春2024年12月7日 /美通社/ -- 第三届世界中医药科技大会暨2024长春国际医药健康产业博览会(以下简称"健博会"),于2024年12月7日至9日在东北亚国际博览中心隆重举办。欧姆龙健康医疗...

关键字: 欧姆龙 BSP FOR 医疗器械

在嵌入式系统开发的广阔领域,51单片机和STM32无疑是两种极具代表性的微控制器。对于初学者而言,选择学习路径时往往会面临一个抉择:是直接跨越51单片机,挑战更高层次的STM32,还是从51开始,逐步进阶?本文旨在探讨直...

关键字: 51单片机 STM32
关闭