}原理:3层for循环,循环次数是 NUM = 4X5X248 = 4960次,由每次循环都有条件判断(如 i >0)和自减语句(如 i--),因此每次循环又耗费两个机器周期
所以,总耗费的机器周期为 SUM = NUM x 2 = 9920个
又因为 12M 晶振频率,每一个机器周期为 1us,所以 这个函数话费的时间 为9920us = 9.920 ms 约等于10ms,而把赋值语句,压栈出栈操作计算在内,加起来差不多10ms
谁说C语言不能精确延时,用51
单片机
的定时/计数器一或者用定时/计数器2的工作方式2,自动再装入8位计数器,就可以精确延时,别说1MS了就是100um也能精确做到。用在
单片机
里的可以C和汇编混合使用,因为用汇编
编写
延时要准确些,所以你不妨写一个汇编程序,然后再调用它好了,要用C来编精确的延时确实是比较难的哦.呵呵。其实很简单,采用定时器,将需要定时时间算好后写入
单片机
中断程序中即可,这种方法可以实现精确定时,最终的误差仅由。不过C的延时不是非常准确,你得根据反汇编,看汇编语句的数量和指令周期来计算时间。
c语言及
单片机
delay
延时函数
延时函数
1、是什么2、为什么3、用在哪里?4、怎么做1、循环延时
延时函数
,作为一种常用函数,在不同的领域有不同的用处。而在嵌入式以及C语言的
编写
中,我们常常遇到需要自己来
编写
延时函数
的情况,这种情况之下,了解其原理就显得必要。
1、是什么
简单来说,
延时函数
的目的就在于等,实际上就是要等一段时间再来执行接下来的代码。而这种简单的等,又可以采用多种方法来实现。例如:
初次系统地用keil for
C51
软件学习
C51
单片机
,今天就简单地聊聊如何创建keil工程
编写
延时函数
delay
().
1.首先,打开keil软件,在工程菜单栏(project)里选择New Project,并命名一个工程。
2.接着,选择所要使用的芯片类型,比如我所学的芯片是STC89C52RC,虽然这个国产的芯片在keil中没有相应的选项,但是因为这个芯片是以
C51
的为内核的,那么我们
LED1(ON);
Delay
(0XFFFEF);
}2.C语言函数使用规范:return_type/*类型*/ function_name/*函数名*/( parameter list /*参数*/)
我们在学习 51
单片机
的过程中会用到延时,比如一个简单的流水灯就需要延时来控制依次点亮的时间,或者一些模块在
单片机
发出读数据指令后,需要延时几十微秒才可以读出数据等等,这些都离不开延时,所以我们需要一个精准的
延时函数
来满足我们的需求。本篇介绍一个最简单并且延时最精准的 51
单片机
延时函数
的生成方法。
1. c语言
延时函数
delay
,怎么算延时下面是
delay
函延迟函数里执行的都是空语句,也就是说通过循环执行空语句来达到延迟的目的.每执行一条语句,即使是空语句都要耗费电脑一些处理时间的,就是因为这个,在延迟函数里写一些无关紧要的东西,用来浪费电脑处理时间,从而达到延迟目的。数原型:原型:void
Delay
(unsigned int n
Delay
){unsigned int i,j,k;...
延时函数
跟 晶振频率 有很大的关系,因为晶振频率影响程序执行速度。
1、打开Keil 4 - Target Options - Target - Xtal(MHz) -里填写 你
单片机
的晶振频率,如我的
单片机
晶振频率是 11.0592 就填 11.0592
2、创建c文件,
编写
函数
void
Delay
_U...