高中作文网

单片机暂时100ms的子程序怎么写,单片机延时200ms程序

时间: 2022-12-16 栏目:教育知识

用单片机汇编一个100ms的延时程序篇1

DELAY:

MOVR3,#100;2

DLY0:

MOVR2,#249;2*100

DLY1:

DJNZR2,DLY1;249*2*100

MOVR2,#248;2*100

DLY2:

DJNZR2,DLY2;248*2*100

DJNZR3,DLY0;2*100

RET;2

以上假设12M晶振,延时共2+(249*2+2+248*2)*100+2=100004微妙=100.004毫秒

单片机晶振为6MHz,编写100ms延时程序篇2

嘿嘿先给你改个错误:在使用6MHz晶振时,1个机器周期为1us,是不对的。

51单片机在使用6MHz晶振时1个机器周期=12/6MHz=2us

可以编写100ms延时子程序调用子程序YS100MS就可以延时100ms

YS100MS:MOVR7,#100

L1:MOVR6,#250

DJNZR6,$;

DJNZR7,L1

RET

延时时间=(R6*2*2us)*R7=(250*2*2us)*100=100000us=100ms

呵呵满意就选满意回答

请大家帮忙做个单片机指令篇3

voidDelay100ms()//@11.0592MHz

{

unsignedchari,j,k;

_nop_();

_nop_();

i=5;

j=52;

k=195;

do

{

do

{

while(--k);

}while(--j);

}while(--i);

}

这是一个100ms的程序,你调用10次就是1s了。

单片机编写一个能延时1秒的子程序篇4

通用办法,可以类推:

1

2

3

4

5

6

7

8

9

10

11

DELAY1s:

MOVR5,#08H;∵1s=1000000us

MOVR6,#0A2H;∴1000000/2=500000

MOVR7,#20H;500000用16进制表示为:07A120

;所以R5=07H+1=08H

;R6=0A1H+1=0A2H

;R7=20H

loop:DJNZR7,$;延时时间≈2*[(R5-1)*256+R6-1]*256+R7

DJNZR6,loop;当R5、R6等于0,相当于256参与运算

DJNZR5,loop;当R5、R6等于0,相当于256参与运算

RET

设单片机的晶振频率为6MHZ编写一段延时程序约延时100ms的子程序篇5

机器周期=12/6MHz=2μs

定时100ms的计数值=100ms/2μs=50000

设T1工作于方式1(16位计数器)

计数初值=2^16-50000=65536=15536=3CB0H

MOVTMOD,#10H;;T1工作方式1、定时模式

MOVTH1,#3CH;;写入计数初值高8位

MOVTL1,#B0H;;写入计数初值低8位

SETBTR1;;启动T1,开始计时

SETBET1;;允许T中断

SETBEA;;CPU开中断

SJMP$;;等待T1计时溢出中断

单片机编写一个能延时1秒的子程序篇6

通用办法,可以类推:1234567891011DELAY1s:MOVR5,#08H;∵1s=1000000usMOVR6,#0A2H;∴1000000/2=500000MOVR7,#20H;500000用16进制表示为:07A120;所以R5=07H+1=08H;R6=0A1H+1=0A2H;R7=20Hloop:DJNZR7,$;延时时间≈2*[(R5-1)*256+R6-1]*256+R7DJNZR6,loop;当R5、R6等于0,相当于256参与运算DJNZR5,loop;当R5、R6等于0,相当于256参与运算RET。

    【教育知识】栏目
  • 上一篇:患者,男性,24岁,8年前发现HIV抗体(+),1个月前无明显诱因出现发热,
  • 下一篇:长方形是特殊的平行四边形吗(长方形为什么是特殊的平行四边形)
  • 相关文章

    推荐文章

    本站专题