原标题:单片机c语言中nop函数的使用方法和延时计算

标准的C语言中没有空语句。但在 的C语言编程中,经常需要用几个空指令产生短延时的效果。

这在汇编语言中很容易实现,写几个nop就行了。

在C51中,直接调用库函数:

#include // 声明了void _nop_(void);

_nop_(); // 产生一条NOP指令

作用:对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。

NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。

对于延时比较长的,要求在大于10us,采用C51中的循环语句来实现。

在选择C51中循环语句时,要注意以下几个问题

第一、定义的C51中循环变量,尽量采用无符号字符型变量。

第二、在FOR循环语句中,尽量采用变量减减来做循环。

第三、在do…while,while语句中,循环体内变量也采用减减方法。

这因为在C51编译器中,对不同的循环方法,采用不同的指令来完成的。

下面举例说明:

unsigned char I;

for(i=0;i<255;i++);

unsigned char I;

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

其中,第二个循环语句C51编译后,就用DJNZ指令来完成,相当于如下指令:

MOV 09Hÿ

_nop_在c语言里什么作用,单片机c语言中nop函数的使用方法和延时计算相关推荐

  1. c语言中fputc函数的作用是,C语言中fputc函数的用法

    C语言中fputc函数的用法 C语言中fputc函数的用法为"int fgetc (FILE *fp)",该函数的作用是从指定的文件中读取一个字符, 读取成功时会返回读取到的字符, ...

  2. c语言中fputc函数的作用是,C语言中fputc函数的用法_后端开发

    Python画ROC曲线和AUC值计算(附代码)_后端开发 ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器的优劣.这篇文章将先简单的 ...

  3. 51单片机c语言中有file,51单片机C语言中.c文件和.h文件的关联

    1 方便开发:包含一些文件需要的共同的常量,结构,类型定义,函数,变量申明: 2 提供接口:对一个软件包来说可以提供一个给外界的接口(例如: stdio.h). 2)h文件里应该有什么 常量,结构,类 ...

  4. c语言new的作用,关于c语言中new的使用?

    必须使用malloc函数,因为C语言没有new这个操作符,但是如果你的编译器是C++的话,是可以使用new的. 所以程序就是: long *pNumber = (long*)malloc(sizeof ...

  5. c语言中sizeof函数的作用是,c语言中sizeof函数的用法

    C语言sizeof函数如何使用? 怎样利用sizeofCSS布局HTML小编今天和大家分享各种数据类型占用的字节数? (1)sizeof不是函数,它只是一个操作符(operator). (2)size ...

  6. 单片机c语言idata什么意思,单片机C语言中的data,idata,xdata,pdata,code

    从数据存储类型来说,8051系列有片内.片外程序存储器,片内.片外数据存储器,片内程序存储器还分直接寻址区和间接寻址类型,分别对应code.data.xdata.idata以及根据51系列特点而设定的 ...

  7. c语言说明函数的作用是,C语言中rewind函数的作用是什么?

    rewind函数的作用是:使文件位置指针重新返回文件的开始位置. C语言rewind函数 rewind函数是C语言程序中的库函数 功 能:将文件内部的位置指针重新指向一个流(数据流/文件)的开头 注意 ...

  8. c语言extern的作用6,C语言中extern用法详解

    本文基于VC6.0 编译器 首先文档结构如下: myextern.h和myextern.c中定义extern函数 main.c中定义main方法,调用extern函数 1.第一个尝试: myexter ...

  9. 单片机c语言define什么意思,单片机C语言中typedef和define的区别是什么?

    满意答案 vtj2011 推荐于 2019.09.30 采纳率:53%    等级:8 已帮助:263人 1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正 ...

最新文章

  1. unbalanced enable irq 问题的解决 以及共享的gpio中断引起的问题
  2. mysql ddl脚本_MySQL学习之路(1):SQL脚本语言
  3. 记一次 .NET 某市附属医院 Web程序 偶发性CPU爆高分析
  4. python中多维数组_python学习笔记-多维数组
  5. c语言元素插入数组并排序,一数组按顺序序存放,插入一个数,按原来排序规律放在相应位置...
  6. 磕头如捣的拼音及解释
  7. Git学习笔记(2)——版本的回退,和暂存区的理解
  8. 什么是运行时Runtime、运行时库Runtime Library、运行时环境Runtime environment
  9. EndNote 文献管理软件安装包
  10. java restsharp_RestSharp使用总结
  11. ABB机器人Test指令
  12. 软件测试难不难?不是计算机专业也能学吗?
  13. MySQL两种存储引擎: MyISAM和InnoDB 简单总结
  14. OpenDaylight是什么?
  15. java获取浏览器url_java 打开浏览器 url
  16. 推荐系统入门(六):新闻推荐实践1(附代码)
  17. Linux arping :向相邻主机发送ARP请求
  18. html中创建学生对象,在考生文件夹下,存在一个数据库文件“sampl.mdb”。在数据库文件中已经建立了一个表对象“学生基本情_搜题易...
  19. 引用feignClient对象项目启动异常-Consider defining a bean of type ‘com.xxx.service.xxxRemote‘ in your configura
  20. 雅虎邮箱停用对网民的影响

热门文章

  1. 机器学习趋向于平民化
  2. win10电脑禁止启动某软件
  3. RPO和RTO的区别
  4. 微信公众号提示:该地址为ip地址,请使用域名访问网站。继续访问将转换成手机预览模式
  5. element-ui中tree连动
  6. c++ 自己遇到的编程陷阱或技巧
  7. HDU5420:Victor and Proposition(KD树)
  8. 如何才能成为一个成熟的投资者?
  9. 关于感染型病毒的那些事(二)
  10. JAVA知识梳理(日常整理)