单片机中 SJMP $ 什么意思?

如题所述

单片机 SJMP $表示重复执行这条指令。

void main()

{ p1=0x00;

while(1)

void DelayMS()

{ uchar i;

while(10)

for(i=0;i<120;i+ +);

}

p1=!p1;

}

2:

void timer_init()

{

TMOD=0x01;

TH0=(65536-0)/256;

TL0=(65536-0)%256;

TR0=1;

}

在上面程序1中,0x00表示一种状态,即表示单片机P1口八位都是低电位0,而不是表示为等于零无意义。

在程序2中,初值赋为零,则表示整个定时为65.536ms,是该定时方式的最大值,而初值0则仅表示该值为零,没有任何意义。

在单片机学习中,数值的表示方法是学习中应引起注意的细节,若不注意,有时因何而错,都分辨不清。

扩展资料

单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,相当于一个微型的计算机。运行中也仅能处理数字信号

单片机只能识别二进制数,也就是高低电平1与0。但当数值太大时,用1和0来表示程序中的数值时显得太繁锁了,于是便用十六进制来表示。这样表示起来方便,通用,

为了让单片机按照我们的要求来工作,就必须对它赋予指令也就是编写程序,在程序中同一个数值会因应用的位置不一样,而理解含义就不一样。

如下面程序1中用十六进制表示的0x00和定时程序2赋初值时用0(0=0x00)表示的初值。它们在不同程序中所表示的意义也不一样,理解起来也就不能用同一种思维方式去理解。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-11-15
SJMP是单片机的短跳转指令,后面一般跟标号,例如:SJMP HERE,SJMP $等。sjmp $ 就是跳到此处,也就是原地踏步,让程序停在此处。追问

原地踏步?     那还能运行到TOISR子程序?  解释一下这个程序呗  ,运行的详细步骤       可以精确到行吗?谢谢

第2个回答  推荐于2017-11-26
跳转到自己所在在位置
原地踏步追问

原地踏步?     那还能运行到TOISR子程序?  解释一下这个程序呗  ,运行的详细步骤       可以精确到行吗?谢谢

追答

T0ISR 那个是T0的中断服务程序呀,看你自己的注释是每50ms中断一次,进入T0ISR一回。

本回答被提问者采纳
相似回答