您的位置 首页 系统

操控灯闪耀的MCS-51单片机程序举例及详解

要让灯持续地闪烁,这就有一定的实用价值了,比如能把它当成汽。怎样才能让灯持续地怎样才能让灯持续地闪烁呢?实际上就是要灯亮一段时间,

要让灯继续地闪耀,这就有必定的实用价值了,比方能把它当成汽。怎样才能让灯继续地怎样才能让灯继续地闪耀呢?实践上便是要灯亮一段时刻,再灭一段时刻,也便是说要P10继续地输出高和低电平。怎样完成这个要求呢?请考虑用下面的指令是否可行:
SETB P10
CLR P10 ……
这是不可的,有两个问题,榜首,核算机履行指令的时刻很快,履行完SETB P10后,灯是灭了,但在极短时刻(微秒级)后,核算机又履行了CLR P10指令,灯又亮了,所以底子分辩不出灯曾灭过。第二,在履行完CLR P10后,不会再去履行SETB P10指令,所以今后再也没有机会让灭了。
  为了处理这两个问题,咱们能做如下想象,榜首,在履行完SETB P10后,延时一段时刻(几秒或零点几秒)再履行第二条指令,就能分辩出灯曾灭过了。第二在履行完第二条指令后,让核算机再去履行榜首条指令,继续地在原地兜圈,咱们称之为”循环”,这样就能完成任务了。
以下先给出程序(后边括号中的数字是为了便于解说而写的,实践不必输入):
;主程序:
LOOP: SETB P10     ;(1)
    LCALL DELAY   ;(2)
    CLR P10     ;(3)
    LCALL DELAY   ;(4)
    AJMP LOOP    ;(5)
;以下子程序
DELAY: MOV R7,#250  ;(6)
D1: MOV R6,#250    ;(7)
D2: DJNZ R6,D2    ;(8)
  DJNZ R7,D1     ;(9)
  RET         ;(10)
  END         ;(11)
按上面的想象剖析一下前面的五条指令。
  榜首条是让灯灭,第二条应当是延时,第三条是让灯亮,第四条和第二条如出一辙,也是延时,第五条应当是转去履行榜首条指令。第二和第四条完成的原理稍后谈,先看第五条,LJMP是一条指令,意思是搬运,往什么当地搬运呢?后边跟的是LOOP,看一下,什么当地还有LOOP,对了,在榜首条指令的前面有一个LOOP,所以很直观地,咱们能认识到,它要转到榜首条指令处。这个榜首条指令前面的LOOP被称之为标号,它的用处便是给这一行起一个姓名,便于运用。是否必定要给它起名叫LOOP呢?当然不是,起什么姓名,完全由编程序的人决议,能称它为A,X等等,当然,这个时分,第五条指令LJMP后边的姓名也得跟着改了。
  第二条和第四条指令的用处是延时,它是怎样完成的呢?指令的方式是LCALL,这条指令称为调用子程序指令,看一下指令后边跟的是什么,DELAY,找一下DELAY,在第六条指令的前面,明显,这也是一个标号。这条指令的作用是这样的:当履行LCALL指令时,程序就转到LCALL后边的标号所标定的程序处履行,假如在履行指令的过程中遇到RET指令,则程序就返回到LCALL指令的下面的一条指令继续履行,从第六行开端的指令中,能看到的确有RET指令。在履行第二条指令后,将转去履行第6条指令,而在履行完6,7,8,9条指令后将遇到第10条令:RET,履行该条指令后,程序将回来履行第三条指令,行将P10清零,使灯亮,然后又是第四条指令,履行第四条指令便是转去履行第6,7,8,9,10条指令,然后回来履行第5条指令,第5条指令便是让程序回到第1条开端履行,如此循环往复,灯就在继续地亮、灭了。
  在标号DELAY标志的这一行到RET这一行中的一切程序,这是一段延时程序,大约延时零点几秒,至于详细的时刻,今后咱们再学习怎么核算。 程序的终究一行是END,这不是一条指令,它仅仅告知咱们程序到此结束,它被称为”伪指令”。
单片机内部结构剖析:为了知道延时程序是怎么作业的,咱们必需首要了解延时程序中呈现的一些符号,就从R1开端,R1被称之为作业寄存器。什么是作业寄存器呢?让咱们从现实生活中来找找答案。假如出一道数学题:123+567,让你答复成果是多少,你会立刻答出是690,再看下面一道题:123+567+562,要让你要上答复,就不这么不难了吧?咱们会怎样做呢?假如有张纸,就不难了,咱们先算出123+567=690,把690写在纸上,然后再算690+562得到成果是1552。这其间1552是咱们想要的成果,而690并非咱们所要的成果,可是为了得到终究成果,咱们又不得不先算出690,并记下来,这其实是一个中心成果,核算机中做运算和这个相似,为了要得到终究成果,一般要做很多步的中心成果,这些中心成果要有个当地放才行,把它们放哪呢?放在前面提到过的ROM中能吗?明显不可,由于核算机要将成果写进去,而ROM是不能写的,所以在单片机中还有一个区域称为RAM区(RAM是随机存取存储器的英文缩写),它能将数据写进去。 特别地,在MCS-51单片机中,将RAM中分出一块区域,称为作业寄存器区

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/xitong/255887.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部