【蓝桥杯】单片机精确延时——软件延时
在编写单片机程序经常会用到延时,做到精确延时的方法有两种:软件延时(采用循环体实现)和硬件延时(定时器/计数器实现)。
补充_nop_()函数
- C语言中没有_nop_()函数,该函数是在51单片机中用的延时函数,延时一个指令周期。在单片机c语言中直接调用库函数即可:#include<intrins.h> // 声明了void nop(void);
- 编写延时函数的时候,要注意,在调用此函数时,需要一个调用指令,即LCALL指令消耗两个周期(2us),延时函数执行完后要返回主调函数,需要一个返回指令,即RET指令(2us)。
- 例如用6MHz的晶振,则如下for循环大约延时1秒。
int i;
for(i=0; i<6000000; i++)
nop(); // 延时一个指令周期,相当于执行一条无意义的语言
指令周期(机器周期=1指令周期):CPU执行一条指令所需要的时间称为指令周期,它是以机器周期为单位的。通常含一个机器周期的指令称为单周期指令,包含两个机器周期的指令称为双周期指令。
振荡周期(时钟周期):一个振荡周期 = 晶振频率的倒数。对于单片机时钟周期,时钟周期是单片机的基本时间单位。两个振荡周期(时钟周期)组成一个状态周期。
机器周期:单片机的基本操作周期,在一个操作周期内,单片机完成一项基本操作,如取指令、存储器读/写等。
1个机器周期=6个状态周期=12个时钟周期=12个振荡周期。
一个机器周期(即一条单周期指令)被执行所占时间为12*(1/ 晶振频率)= x μs。
12MHZ的晶振:一个机器周期=12*[1/(12*10^6)]秒=1微秒
附上常用延时函数
- 11.0592MHz晶振
//延时n毫秒 ms
void delay_ms(usigned int n)
{usigned int i,j;
for(i=n;i>0;i–)
for(y=114;y>0;y–);
}
- 12MHz晶振
//延时n毫秒 ms
void delay_ms(unsigned int n)
{unsigned int i=0,j=0;for(i=0;i<n;i++)for(j=0;j<123;j++);
}
//延时n秒 s
void delay_m(unsigned int n)
{unsigned int i=0,j=0;for(i=0;i<n;i++)for(j=0;j<21738;j++);
}
- 24MHz晶振
//延时n秒 s
void delay_s(unsigned int n)
{ unsigned int i=0,j=0; for(i=0;i<n;i++) for(j=0;j<54053;j++);
}
【蓝桥杯】单片机精确延时——软件延时相关推荐
- 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理
上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...
- 蓝桥杯单片机第七届省赛-模拟风扇控制系统
九层妖塔 起于垒土 ● 改编自国信长天蓝桥杯官方蓝皮书例程,按照自己的习惯进行了补充和修改 蓝桥杯单片机第七届省赛-模拟风扇控制系统 Notes1:按键按下后在某些情况下给一定的缓冲时间 Notes2 ...
- 蓝桥杯——单片机设计与开发初学者必备资料
蓝桥杯--单片机设计与开发初学者必备资料 国信长天 大赛官方指定电子类比赛硬件提供方,可能大家只知道他们提供硬件,殊不知还有一些免费的视频讲解(只是老师可能说话带一点方言,嘻嘻),感兴趣的可以去看看, ...
- 蓝桥杯单片机第十届省赛题程序实现
文章目录 main.c iic.c main.c #include<reg52.h> #include<intrins.h> #include<iic.h>sbit ...
- 蓝桥杯单片机-DAC-用板载板载PCF8591芯片在D/A引脚上输出指定的电压
文章目录 题目 main.c iic.c iic.h 题目 1.控制板载PCF8591芯片在D/A引脚上输出指定的电压 2.数码管前三位显示输入数据0-255,后两位显示输出的电压值 3.按下按键S4 ...
- 蓝桥杯单片机串口通信学习提升笔记
今日得以继续蓝桥杯国赛备赛之旅: 有道是 "不知何事萦怀抱,醒也无聊,醉也无聊,梦也何曾到谢桥." 那我们该如何 让这位诗人纳兰 "再听乐府曲 ,畅解相思苦"呢 ...
- 蓝桥杯单片机学习13——NE555方波发生器频率测量
NE555 简介 引脚图 原理图 真值表 工作原理 频率测量原理 定时器测量频率方法 代码实现 总结(一堆废话) 简介 NE555是一种高度稳定的控制器,内部用三个阻值为5KΩ的电阻分压,因此叫做55 ...
- 【蓝桥杯单片机(24)】历届单片机客观题及答案解析
目录 考前冲刺,专栏完结篇 ## 推荐链接: 推荐视频–小蜜蜂老师讲解 赛点资源包下载,提取码:brno 三极管基本知识总结 运算放大电路的基础 第十三届蓝桥杯单片机官方直播课录屏 目录 一些刷题后的 ...
- 蓝桥杯单片机组——榨干选手资源包(STC)
文章目录 前言 巧用STC STC生成定时器 STC配置定时器(定时器中断) 定时器 定时器中断 STC获取数码管码表 STC上升沿下降沿检测 其他 总结 目录 前言 笔者参加的是第十一届蓝桥杯的单片 ...
- 电子信息工程专业打工人的蓝桥杯单片机竞赛时记
文章目录 前言 一.基础入门 1.基础知识 2.51系列单片机 单片机周期知识: 单片机IO口知识 二.开发学习 1.基本外设功能 LED跑马灯 蜂鸣器与继电器 数码管 按键 外部中断 定时器中断 串 ...
最新文章
- php 添加工信部链接,常见程序(wordpress,dede,discuz)网页下方添加备案号,添加链接跳转到工信部...
- 如何成为一个合格的 Java程序员
- get 和post 方式请求数据
- 变革后的维密,做了一款不赚钱的内衣
- 华为harmonyos公测,华为鸿蒙 Harmony OS 2.0 第二轮公测已开启,赶紧申请报名
- 排序算法 —— 冒泡排序
- 7-48 银行排队问题之单窗口“夹塞”版 (30 分)(思路和详解+map做法)来呀Baby!
- 潭州课堂25班:Ph201805201 django框架 第五课 自定义简单标签,包含标签,模型类创建,梳理类创建 (课堂笔记)...
- VB Environ系统环境变量函数大全
- 各大公司官网都有哪些显而易见的Bug?
- linux内核C -- 第09课:链接过程中的强符号和弱符号
- 在相近背景中找圆和直线
- smartDNS让你的网络一触即达
- 小狼毫输入法配置(搜狗词库+u模式+皮肤+同步)
- java实现同步的几种方式(总结)
- 医院管理系统服务器,医院管理的十大运行系统!
- java反射机制和运用
- 什么是 A 轮融资?有 B轮 C轮么?
- 在Qt中使用OpenGL(二)
- linux下并行运行脚本与让程序可靠运行