2019年 10月 25日 星期五
您的位置: 威廉希尔主页 > 单片机技术 >

C51单片机的几种常用延时程序设计

来源:未知     作者:威廉希尔     发布时间:2019-10-23 08:20         

  众所周知,c51在编程时很难掌握程序运行的时间,所以编写延时程序时很难做到很精确,解决的方式有插入汇编语句,但总觉得汇编用起来不是那么顺手,还可以用来做,但只是一个很小的延时程序而已,不必小题大作。其实办法还是有的,下面介绍一下常用的几种延时程序。

  因为汇编中的DJNZ 语句是先减一再判断的,和-xx的算法一致,所以--x和x--相差了很多。上述函数只适合x的范围是0-255,如果需要延时大于255*2+5us,则可以连续调用几次函数。

  可见,精度不“精”,随着x值的增大,延时误差越大,只适合在延时不要求很准确的地方使用。于是想到对程序进行一些修改,想到125是不是取的太大了,假如把它变为可变,不同的x值取值不同,就可以对延时时间进行一些修正,把程序改为如下:

  对不同的延时时间取不同的y值,发现一个“怪”现象,当取y=123时,延时时间的误差是一个固定值:

  除了x=1外,其余的误差都为16us, 即不管x为多大都只有16us的误差,精度大幅度提高,可以满足大多数的需要!

  在该通信测试仪器中,实时控制模块主要实现对射频接收频综、射频发生频综、滤波器组件、射频输入模块、射频....

  在该通信测试仪器中,实时控制模块主要实现对射频接收频综、射频发生频综、滤波器组件、射频输入模块、射频....

  想要实现单片机定时器的短暂延时,我们可以通过函数设计的方式来实现,在C文件中通过使用带_NOP_()....

  加入ucosII系统的程序变慢了。通过缩短每个任务中的延时程序,速度会有所提高,但是仍然比不加系统的程序慢。大家会...

  关于单片机DTH11温湿度测量仿真,过去大多无法进行,都用的SHT11来代替,但实际上,DHT11的....

  typedef struct { uchar DC0_ALA:1; //电源0告警 ....

  很 显然,C51中缺省的putchar函数是靠查询并等待TI这个标志位来实现串口发送的,也就是说,在....

  Modbus协议是应用于电子控制器上的一种通用语言。通过此协议,控制器相互之间、控制器经由网络和其它....

  基于Modbus现场总线的数据采集与控制系统基础电如何实现,电图怎么设计? 1.系统由一个主机和四个从机构成。其中...

  C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsignedchar类型具有比uns....

  #defineucharunsignedchar #defineuintunsignedint....

  #i nclude #i nclude #i nclude #define INB....

  急急急,各位大佬们救救小弟!!! 有手动能力强的发烧友没有,需要组装一只智能赛车,要求: AT89C51 单片机 ,...

  DJNZ:这是另一条指令,我们来看一下这条指令后面跟着的两个东西,一个是R6,一个是D2,R6我们当....

  请问有没有大神做过这个题目,主要是有没有实际搭成功过电,而且所有功能都能实现的?因为我仿真成功了,但是实际搭...

  关键字则是编程语言保留的特殊标识符,它们具有固定名称和含义,在程序编写中不允许标识符与关键资亦同。在....

  C51中断函数必须通过该修饰符进行修饰。在C51程序设计中,当函数定义时用了interruptm修饰....

  #include//包含 单片机 内部资源预定义 __CONFIG(0x1832); /....

  智能功率控制器的硬件系统以新华龙电子公司为C8051F206配套的实验板为基础,新增输出电和键盘显....

  原理,利用h,i,j,k循环指令消耗掉一定时间来达到延时,为什么利用循环延时的做法,在12M晶振延时....

  该部分的硬件电如图所示,U1的P0口和P2口的部份引脚构成了6位LED数码管驱动电,数码管采用共....

  c程序: //温馨提示: /*程序还没有调试完成,实际电板调节时间时时-分-秒都会有闪....

  为提高代码的容错能力,在没用到的中断入口处生成iret语句,定义没用到的中断。 /* defi....

  1.储存了40种精选的花样不重复运行达5分钟;15个I/O口,除P34、P35、P37为功能测试端外....

  共阳极数码管的编码表如下,注意a---最低位,dp---最高位: 【0---3】0xco,0x....

  定义这样的结构: typedef struct { uchar DC0_ALA:1....

  MOVSCON,#00H CLRP1.1 MOVR7,#16 MOVA,#1000....

  8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位....

  //主程序=============================================....

  说明:1.晶体:11.0592MHz 2.1602驱动:ks0066 *********....

  Keil C51编写的192*64液晶片驱动程序,感谢很多网友提供了参考源程序, 本程序是在网....

  本试验板设有四个按键,其功能分别为“启动/停止”“正转/反转”“速度-”“速度+”。 定义P2....

  [存储器类型1] 表示被定义为基于存储器的指针。无此选项时,被定义为一般指针。这两种指针的区别在于它....

  程序一:在液晶屏上显示一个1 //在液晶屏上显示一个字符 #include #de....

  该单片机电机转速测量系统仿真仿真采用测频法“M法”测量电机转速。即在一定测量时间T内,测量脉冲发生器....

  全局变量被定义在内存中的专门地址上,存储固定。对于频繁存取的重要变量但可以采用全局变量以减少代码....

  上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平....

  18B20温度计,正负温度显示。最大99摄氏度。用万能板手工焊接。调试成功,正常显示。共阳数码管由三....

  8051 系列 MCU 的基本结构包括:32 个 I/O 口(4 组8 bit 端口);两个16 位....

  #defineWriteDeviceAddress0x0A2//定义器件在I2C总线中的写地址(注意....

  通信头-》巴克码-》地址字-》长度字-》命令字-》信息位-》校准字 1.通信头:占1~8个字节....

  前面我们介绍了延时程序,但这还不完善,因为,我们只知道DJNZ R6,D2这句线次....

  MCS-51单片机的指令有单字节、双字节和三字节的,它们的指令周期不尽相同,一个单周期指令包含一个机....

  下面几个是单片机的延时程序(包括asm和C程序,都是我在学单片机的过程中用到的),在单片机延时程序中....

  标准51单片机是12T的,就是说12个时钟周期而现在很多51核的单片机工艺质量上去后,频率大大提高,....

  单片机(Microcontrollers)是一种集成电芯片,是采用超大规模集成电技术把具有数据处....

  摘 要:介绍了基于移动GSM\GPRS 网络的远程红外管理系统的总体设计方案。本系统采用C805....

  电子发烧友网讯:应广大电子发烧友网读者要求,本《C51单片机及C语言知识点必备秘籍》为《单....

  电子发烧友网讯:继《单片机学习知识点全攻略》得到广大读者好评,根据有网友提出美中不足的是所用单片机编....

  如图所示,开关 SP1 接在 P3.7/RD 管脚上,在 AT89S51 单片机的 P1 端口接有四....

  利用 AT89S51 单片机来制作一个手动计数器,在 AT89S51 单片机的 P3.7 管脚接一个....

  如下图所示,在 AT89S51 单片机的 P0 和 P2 端口分别接有两个共阴数码管 P0 口驱动显....

  每按下一次开关 SP1 ,计数值加 1 ,通过 AT89S51 单片机的 P1 端口的 P1.0 到....

  如图 13 所示,利用 AT89S51 单片机的 P0 端口的 P0.0 - P0.7 连接到一个共....

  用 P1.0 输出 1KHz 和 500Hz 的音频信号驱动扬声器,作报警信号,要求 1KH z信号....

  如下图所示, AT89S51 单片机的 P1.0 - P1.3 接四个发光二极管 L1 - L4 ,....

  C51单片机矩阵键盘电子扫描去抖程序 这段有1个C51的项目,用的是新华龙的C51 F020单片机。....

  本设计是基于校园的一种电子产品,将旅游景点的解说以MP3格式存储,通过无线形式实现智能控制。本文还对....

      威廉希尔