延时10ms的延时子程序
一个延时10ms的子程序。求分析
一个机器周期为T,每执行一句djnz r6,$就占4T, 循环250次=1000T,外层循环djnz r7,dl 120次,所以一共占120*1000T=120000T , T=1\/12M,所以占时0.01S=10ms
设计一个延时10ms的延时子程序,已知单片机的晶振为6MHZ,写出时间的计算...
适合STC89CXX单片机:void Delay10ms()\/\/@6.000MHz { unsigned char i, j;i = 10;j = 183;do { while (--j);} while (--i);}
如何利用单片机汇编指令编程实现延时10ms?利用汇编指令设计多重循环编...
DELAY10MS:MOV R2,#20DELAY10MS1:MOV R3,#250DJNZ R3,$DJNZ R3,DELAY10MS1RET 这是调用一个延时20毫秒的延时子程序 当然,子程序的名字可以自己定 DELY1MS: 这个名字一定要与调用中出现的名字一样,否则的话,调用的就不是这个子程序了 DELAY20MS:MOV R2,#40DELAY20MS1:MOV R3,#250DJNZ ...
求精确延时10ms的子程序,再用此子程序设计嵌套的1s延时的子程序
定时10ms 可用 Delay( 0.01 );延时1s, Delay(1.0);void Delay( double t ){LARGE_INTEGER litmp; LONGLONG QPart1,QPart2;double dfMinus, dfFreq, dfTim; QueryPerformanceFrequency(&litmp);dfFreq = (double)litmp.QuadPart;\/\/ 获得计数器的时钟频率QueryPerformanceCounter(&litmp);Q...
急急急!!! 试用循环转移指令编写延时10ms的延时子程序.设单片机的晶 ...
delay10ms:MOV R7,#20 D1: MOV R6,#250 DJNZ R6,DJNZ R7,D1 RET
单片机:系统时钟12MHz,设计1个10ms延时子程序。
1最短,0最久 { while (us--);} delay(12000000\/4\/1000*10);即可 1秒能执行12000000条指令,每次循环花费4个时钟,除以4得1秒能循环多少次,再除以1000得1ms循环多少次,再乘10就得10ms循环多少次。其他单片机请先把delay的循环时钟数,以及主频和时钟关系研究清楚,方法类似 ...
10ms的延时程序
若采用12M晶振则 51单片机如89C51的一个机器周期为12个时钟周期,即1uS DJNZ指令为两个机器周期,你可以自己查 DL10MS: MOV R6,#0C8H ;循环200次,200*50uS=10ms DL1: MOV R7,#19H ;25*2个机器周期 DL2: DJNZ R7,DL2 DJNZ R6,DL1 RET ...
延时时间10ms
DL1:MOV R6,#26H;1T DL0:MOV R5,#82H;1T DJNZ R5,$;2T DJNZ R6,DL0;2T DJNZ R7,DL1;2T RET;2T 前面的注释是指该条指令的工作周期,1T为一个机器周期。这样三层循环延时粗算的话是 82H*2*26H*01H=130*2*38*1=9880近似为10000us=10ms 粗确算:1+(1+(1+2*130+2)*38+2)...
单片机中延时时间怎样计算?
回答:C程序中可使用不同类型的变量来进行延时设计。经实验测试,使用unsigned char类型具有比unsigned int更优化的代码,在使用时应该使用unsigned char作为延时变量。 以某晶振为12MHz的单片机为例,晶振为12MHz即一个机器周期为1us。 一. 500ms延时子程序 程序: void delay500ms(void) { unsigned ...
51单片机求10微秒的延时函数 C语言(晶振11.0592MHz)
MOV TH0,#3CH DJNZ R7,HERE CLR TR0 ;定时器要软件清零 SETB EX0 RET 3、C语言延时程序:10ms延时子程序(12MHZ)void delay10ms(void){ unsigned char i,j,k;for(i=5;i>0;i--)for(j=4;j>0;j--)for(k=248;k>0;k--);} 1s延时子程序(12MHZ)void delay1s(void)...
淮滨县莲胆回答: 首先明确机器执行一条指令耗时大概是1us那么延时10ms的程序如下:MOV AX,50L1:MOV BX,100L2:DEC BX JNZ L2DEC AXJNZ L1执行完之后时间大约为10ms多一点 根据具体问题类型,进行步骤拆解/原因原理分析/内容拓展等. 具体步骤如下:/导致这种情况的原因主要是……
籍时15010609575问: 设计一个延时10ms的延时子程序,已知单片机的晶振为6MHZ,写出时间的计算过程.要求精确到一个机器周期 - ?
淮滨县莲胆回答: delay:mov r7,#100 dv1:mov r6,#250 dv2:djnz r6,dv2 djnz r7,dv1 ret
籍时15010609575问: 单片机:系统时钟12MHz,设计1个10ms延时子程序. - ?
淮滨县莲胆回答: 建议使用定时器中断函数延时,延时准确还不占用主程序的时间,初始化程序: void init() {TMOD=0x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1; } 中断函数程序: void timer0() interrupt 1 {TH0=(65536-10000)/256;TL0=(65536-10000)%256;t++; } t每自加一次,延时10ms.
籍时15010609575问: 1、 已知单片机的晶振为12M,请以子函数形式写出10毫秒延时程序.该怎么写啊?用C语言写.?
淮滨县莲胆回答: 下面有你要的 选一个吧 下面几个是单片机的延时程序(包括asm和C程序,都是我在学单片机的过程中用到的),在单片机延时程序中应考虑所使用的晶振的频率,在51系列的单片机中我们常用的是11.0592MHz和12.0000MHz的晶振,而在...
籍时15010609575问: 编写延时10毫秒的程序,晶振12M,单片机的,在线等待. - ?
淮滨县莲胆回答: delay(int z) { int x,y; for(x=z;x>0;x--) for(y=125;y>0;y--); } 这个是1毫秒的延时程序(z=1时) 用Keil单步执行后得到的,精确度较高!希望能够有所帮助!
籍时15010609575问: 周期为6MHZ的单片机延时10秒的子程序的怎么编 - ?
淮滨县莲胆回答: /******************************************************************** * 名称 : Delay() * 功能 : 延时,延时时间为 10ms * del.这是通过软件延时,有一定误差. * 输入 : del * 输出 : 无 ***********************************************************************/ ...
籍时15010609575问: 单片机80c51,用汇编,编写一个延时子程序,通过调用此程序实现在p1.0输出周期为10ms的方波 - ?
淮滨县莲胆回答: ORG 0000HAJMP MAINORG 000BHT0MS EQU NOT 5000 ; 定义定时器初值 12M晶振 5 mS = 5000 10 mS = 10000MOV TL0, #LOW T0MSMOV TH0, #HIGH T0MSCPL P1.0 ; P1.0 取反 输出 10 mS的方波REIT MAIN:MOV TMOD,#01HMOV TL0, #LOW T0MSMOV TH0, #HIGH T0MSSETB TR0 ; 启动定时器SETB ET0 ; 开 T0 中断SETB EA ; 开 总 中断SJMP $END
籍时15010609575问: 求精确延时10ms的子程序,再用此子程序设计嵌套的1s延时的子程序 - ?
淮滨县莲胆回答: 用Sleep ,Timer 定时器都不精确,误差太大. 想要精确计时,在WINDOW下可使用BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);BOOL QueryPerformanceCounter(LARGE_INTEGER *lpCount);两个函数.LARGE_...
籍时15010609575问: 设MCS - 51单片机的晶振频率为12MHZ,试编写10ms的延时程序(要求误差不超过0.003ms). - ?
淮滨县莲胆回答: 我们用汇编语言写单片机延时10ms的程序(用的是12MHz晶振的 MCS-51),可以编写下面的程序来实现: MOV R5,#5 ① D1: MOV R6,#4 ② D2: MOV R7,#248 ③ DJNZ R7,$ ④ DJNZ R6,D2 ⑤ DJNZ R5,D1 ⑥ RET ⑦ 这个延时程序共有七条指...
籍时15010609575问: 单片机程序 计算延时多长时间 - ?
淮滨县莲胆回答: 先给你一个实例:石英晶体为12MHz,因此,1个机器周期为1微秒 机器周期 微秒 MOV R6,#20 2个 2 D1: MOV R7,#248 2个 2 DJNZ R7,$ 2个 2*248 DJNZ R6,D1 2个 2+ 20*(2+2*248+2)=10002 因此,上面的延时程序时间为10.002ms. 由以上...