c程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsignedchar类型具有比unsignedint更优化的代码,在使用时应该使用unsignedchar作为延时变量。以某晶振为12mhz的单片机为例,晶振为12mhz即一个机器周期为1us。
一.500ms延时子程序
程序:
voiddelay500ms(void)
{
unsignedchari,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=162usdjnz2us
二层循环m:r6*(n+3)=202*165=33330usdjnz2us+r5赋值1us=3us
三层循环:r7*(m+3)=15*33333=499995usdjnz2us+r6赋值1us=3us
循环外:5us子程序调用2us+子程序返回2us+r7赋值1us=5us
延时总时间=三层循环+循环外=499995+5=500000us=500ms
计算公式:延时时间=[(2*r5+3)*r6+3]*r7+5
二.200ms延时子程序
程序:
voiddelay200ms(void)
{
unsignedchari,j,k;
for(i=5;i》0;i--)
for(j=132;j》0;j--)
for(k=150;k》0;k--);
}
三.10ms延时子程序
程序:
voiddelay10ms(void)
{
unsignedchari,j,k;
for(i=5;i》0;i--)
for(j=4;j》0;j--)
for(k=248;k》0;k--);
}
四.1s延时子程序
程序:
voiddelay1s(void)
{
unsignedcharh,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--);
}
浅析异构网络安全解决方案及关键技术
采用双旋翼设计的无人机进行货物配送
this可以出现在类方法中吗
歌尔股份全新“声、光、电”技术与解决方案亮相CES 2024
OPPOR17怎么样 新爆款诞生
C51单片机延时时间的计算方法解析
Zynq-7000 SoC 启动镜像布局
你知道嵌入式linux系统下简单守护进程(daemon)的编写?
小米行车记录仪体验 值不值得买
关于人工智能对泛娱乐业的发展和应用
百度发布第四季度财报 将AI技术有效赋能“抗疫”
解析现阶段2G、3G和4G模拟网自动化测试实现方法
苹果计划推出搭载自家处理器的MacBook
基于WT588F02B-8S芯片带语音播放和闹钟提醒的的手写提示板方案
航顺HK32U1xx9系列MCU的应用场景介绍
Tempus DRA 套件加速先进节点技术
模数混合电路的电源和接地布局原则
15000颗COF芯片正式量产下线 欣盛成为我国唯一一家集多种芯片技术于一体的企业
瑞为“数智哨兵”产品充分适应不同场景的使用需求
使用Docker容器做更多事情