汇编延时1ms的延时子程序

作者&投稿:苏享 (若有异议请与网页底部的电邮联系)

51单片机c语言延时函数 Void delay 1ms(unsigned int ms){un
C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。void delay_ms(unsigned int ms_number) \/\/ ms延时函数 (AT89C51 @ 11....

C51单片机,谁帮我写个1ms的延时
void delay(uint i) \/\/调用子程序所需时间){ uchar j,k;for (j=i; j>0; j--)for(k=0;k<30;k++);} 在程序调用函数就可以得到1ms的程序,具体调用如下:delay(10); \/\/延时1.011ms

单片机编程:设置一个1ms的延时程序 晶振12MHZ
简单的方法,做一个循环,自加,然后算好时间,每条指令需要多长时间,然后对应的,自加多少次就够1秒就OK了

用C语言编写1ms延迟子程序,不明白for (j=0;j<120;j++),求助大大们_百度...
for (j=0;j<120;j++); \/\/计数120次,延迟1ms } 这是一个for循环嵌套,每执行一次第一个for语句,那么第二个for语句要执行120次 for (j=0;j<120;j++); 就是没执行一次第一个for循环,就令 j =0,再判断是否 j 满足循环条件(这里就是判断是否 j 小于120)如果满足就继续循环,如果...

...想写一个大概延时1MS的子程序,应该怎样写?(用C语言)
void delay(uint n){ uint i,j;for(i=n;i>0;i--){ for(j=110;j>0;j--);} } 当n=1是延时大约是1ms,就是说n等于都少就延时多少ms,当然n的值不超过uint的最大值。头文件下请定义宏 define uchar unsigned char define uint unsigned int ...

c编程时,51单片机怎么用定时器写一个延时1ms的子函数
51单片机的定时器工作方式有4中,其中3种需要在中断函数中重装初值,而且C51明确规定中断函数不能传入参数也不能返回参数,那么这样一来就只能用不用重装初值的工作方式2了,我给出了工作方式2的初始化函数:void init(unsigned int x){ TMOD=0x02;TH0=x;TL0=x;EA=1;ET0=1;TR0=1;} 这样将x...

设单片机8051的时钟频率为MHZ,试编写Ms的软件延时程序。
一般采用循环结构,达到多次反复执行某一段指令的目的,来增加延时的时间,可以通过对循环次数的控制,来达到控制延时时间长短的目的。为了延长延时时间,一般要采用多重循环,即由外循环内部又含有内循环。延时时间=(内循环时间)×外循环次数。例如:设计一个延时1ms的延时子程序ys1ms,设单片机8051的时钟...

8051单片机,此延时1ms是怎么来的?语法略懂得,求大神告知关键的地方,当 ...
{ unsigned int i,j;for(i=0;i<ms;i++)for(j=0;j<100;j++);} 抛开软件延时是否准确而言,这段代码要配用原设计的晶振频率(貌似为12MHz),如果需要延时1ms,则ms=1,那么单片机就运行一遍for(j=0;j<100;j++);当j=99运行完成后,程序在这里正好空转了100圈而耽搁了1ms的时间,如果再...

求一个1ms的单片机C语言延时程序
void delay(char x){ unsigned char a,b,c;for(c=x;c>0;c--)for(b=38;b>0;b--)for(a=130;a>0;a--);} 学过标准C就知道了,char 和 int 是可以相互转换的,char的取值范围是-128~+127 unsigned char 的是0~255 可以用unsigned int啊,我一般都是用char的,用unsigned int的话...

C语言用for语句要设置1MS延时,为什么是500*121?
这个取决于您cpu的运算速度、编译器编译出来的执行效率。您换台电脑就不是500*121了。一般1MS延时用Sleep(1),但它也不够精确,在高精度时钟下相对好些,低精度时钟会在10-55MS之间。还有个更精确的办法是取CPU时钟频率,计算1MS的cpu循环数,然后禁止当前cpu核心接受中断,用汇编循环让cpu运行1MS。

戴进19692148700问: 找一个单片机汇编语言编写的延时1ms的子程序 -
岳塘区云迪回答: 多简单的小程序呀:TIME1MS: MOV R6, #2 TIME1: ;延时498uS MOV R7, #248 DJNZ R7, $ ;R7的为0时,程序向下运行,否则继续减 ; DJNZ R6, TIME1 ;加上此命令后,每个小周期时间为500uS ;运行两周为1MS,再加上最前面的MOV R6那条指令,就是1.002MS RET此程序实现的是1.002MS的定时,当然这当中不算主程序调用此延时程序时现场保护的时间,即压栈和出栈的时间

戴进19692148700问: 汇编语言编写一段延时1000个指令周期的子程序 -
岳塘区云迪回答: 要求编写延时子程序,就不要使用定时器; 也不要用C语言,因为C语言的执行时间,并不确定. 用汇编语言,是最简单、准确的. 51单片机的程序如下:DL1000:MOV R7,#248DJNZ R7,$MOV R7,#250DJNZ R7,$RET正好1000个机器周期. R7,是8位寄存器,其最大数值是255,不能直接存入500.

戴进19692148700问: 单片机50ms延时程序 -
岳塘区云迪回答: 如果要求计时很准确,最好还是用定时器.你这个程序虽然计算得比较准确了,可是有两点还没有考虑进来,一点是执行CALL指令调子程序的时间,一点是执行RET指令返回的时间,这两条指令各需要8个机器周期,所以,需要从上面的程序是减去16个机器周期的.所以,这种利用循环指令延时的时间是不太准确的,不过,用这种程序延时也是不要求十分精确的,没有必要,要准确就用定时器好了.

戴进19692148700问: 求一个51单片机1S的延时程序,汇编的 -
岳塘区云迪回答: DELAY: MOV R2,#200 ;1 DLY1: MOV R3,#200 ;1*100 DLY2: MOV R4,#248 ;1*200*100 DJNZ R4,$ ;248*2*200*100 DJNZ R3,DLY2 ;200*100*2 DJNZ R2,DLY1 ;200*2 DJNZ R7,DELAY ;调用是给R7赋值秒数 RET

戴进19692148700问: 跪求8086/8088系统的汇编程序延迟一秒子程序 -
岳塘区云迪回答: 默认的时间中断是每秒产生18.2次,如果要求不精确,就用18次时钟中断来延时一秒. 地址0:46c存放的就是这个计数器,可以读取这个,然后加上18,比较就可以实现.代码如下: mov ax,0 mov ds,ax mov si,46ch lodsw add ax,18 mov cx,ax loc_1: mov si,46ch lodsw cmp ax,cx jnb loc_2 jmp loc_1 loc_2: 如果要求非常精确,那就要直接对定时器进行编程,通过端口操作来实现.

戴进19692148700问: 单片机延时程序的延时时间怎么算的? -
岳塘区云迪回答: 单片机的延时程序通过执行指令来达到延时效果,这个时间等于执行的指令需要的时间,而一个指令需要的时间叫做指令周期,这个时间等于若干个机器周期. 扩展资料: 1丶指令周期,是每种运算需要的时间,如加法、逻辑等,是每一步进行这种指令运算需要的时间,是机器周期的整数倍,这种周期不定. 2丶51单片机12M晶振,晶振周期1/12微妙,一个机器周期包含12个晶振周期,所以12M晶振时机器周期=12x(1/12)微妙=1微妙. 3丶1个毫秒延时子程序如下: void delay1ms(uint ms) { uint i,j; for(i=0;i<ms;i++) { for(j=0;j<110;j++); } }

戴进19692148700问: 89C51单片机1S的延时程序? -
岳塘区云迪回答: void delayms() // 延时子程序 对应12M晶振 {unsigned int ms=1000;while(ms--) //每一次循环1ms{for(i = 0; i < 120; i++);} }

戴进19692148700问: 我的单片机用的11.0592M的晶振,想写一个大概延时1MS的子程序,应该怎样写?(用C语言)
岳塘区云迪回答: void delay(uint n) { uint i,j; for(i=n;i>0;i--) { for(j=110;j>0;j--); } } 当n=1是延时大约是1ms,就是说n等于都少就延时多少ms,当然n的值不超过uint的最大值. 头文件下请定义宏 #define uchar unsigned char #define uint unsigned int

戴进19692148700问: 汇编语言 10秒延迟子程序 大概是10秒左右就行了 -
岳塘区云迪回答: DELAY10S:MOV R2,#100 DELAY1:MOV R3,#200 DELAY2:MOV R4,#250DJNZ R4,$DJNZ R3,DELAY2DJNZ R2,DELAY1RET

戴进19692148700问: 51延时1S.程序..汇编 -
岳塘区云迪回答: DELAY:MOV R4,#25 ;延时子程序,12M晶振延时1.001秒 L3: MOV R2 ,#200 L1: MOV R3 ,#248 L2: DJNZ R3 ,L2 DJNZ R2 ,L1 DJNZ R4 ,L3 RET


本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网