用cmp延时程序怎么写

1.用汇编做延时程序用call Delay指令来调用下面这个子程序
; Subroutine 延时指定的时钟嘀嗒数
; 入口:
; Didas=时钟嘀嗒数(1秒钟约嘀嗒18.2次,10秒钟嘀嗒182次 。若延时不是秒的10数次倍,误差稍微大点)
Didas equ 18 ;延时1秒 。这个常量,既可以在主程序中定义,也可以在这个子程序里定义 。
Delay Proc Near
push dx
push cx
xor ax,ax
int 1ah
mov Times,dx
mov Times[2],cx
Read_Time: xor ax,ax
int 1ah
sub dx,Times
sbb cx,Times[2]
cmp dx,Didas
jb Read_Time
pop cx
pop dx
ret
Times dw 0,0
Delay EndP
2.C语言delay的延时函数怎么写回答这个问题前提需要搞清楚:
1.你的执行文件在那里运行?
2.你要延时是否“死等”,还是可以切换到其他任务?
-----------------------------------------------
如果你只是学习c语言,写个小函数玩玩,可以如下:
void delay(int time)
{
for(;time>0;time--)
{
nop;//可写任何无意义的操作
}
}
死等型的延时,时间根据指令执行速度不同而不同!!!!
3.单片机汇编程序延时0.3秒和0.5秒怎么写延时0.3秒程序(12M):
DELAY3:
MOV R2,#200
DL1:
MOV R3,#250
DJNZ R3,$
MOV R3,#250
DJNZ R3,$
MOV R3,#250
DJNZ R3,$
DJNZ R2,DL1
RET
延时0.5秒程序:
DELAY5:
MOV R2,#5
DLY1:
MOV R3,#200
DLY2:
MOV R4,#250
DJNZ R4,$
【用cmp延时程序怎么写】DJNZ R3,DLY2
DJNZ R2,DLY1
RET
4.请编写一个延时子程序,延时时间不限#include "stdafx.h"
#include
#include
const int Arsize=20;
using namespace std;
int mytime(int sec)
{
clock_t delay=sec*CLOCKS_PER_SEC;
clock_t start=clock();
while(clock()-start>name;
cout
5.用汇编怎么写51单片机的延时程序DEL1S:MOV R7,#10
D1: MOV R6,#200
D2: MOV R5,#250
DJNZ R5,$
DJNZ R6,D2
DJNZ R7,D1
RET
说明:1、如果不使用R5、R6、R7可以用别的单元替换,比如换成30H、31H、32H等等
2、这个程序是12M时钟,如果时钟不同,要修改数值 。如6M时钟,要把MOV R7,#10 修改成:MOV R7,#5

用cmp延时程序怎么写

文章插图