新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机学习之七:基本I/O口试验三-左右跑马灯

单片机学习之七:基本I/O口试验三-左右跑马灯

作者:时间:2016-09-20来源:网络收藏

  一、 试验现象:

本文引用地址:http://www.eepw.com.cn/article/201609/297204.htm

  二极管从左至右,然后从右至左作变换,灯光变换的间隔时间是1s。

  二、 试验目的

   掌握带进位左、右环移指令rlc,rrc的应用

   进一步熟悉延时程序的应用

  三、 试验任务分析:

  按照上一个试验的思路,该程序的编写思路如下:先作左,然后再作右,然后让程序不断循环即可。在这个试验里,我们给大家介绍另外两个左、右移指令,先看程序吧。

  四、 试验程序如下:

  org 0000h

  clr p1.5

  start: mov a,#0ffh ;(1)

  clr c ;(2)

  mov r2,#08h ;(3)

  loop1: rlc a ;(4)

  mov p0,a

  call del1s ;调用1s延时子程序

  djnz r2,loop1 ;如果左移8次,则开始右移,否则,继续左移

  mov r2,#06h ;(6)

  loop2: rrc a ;(7)

  mov p0,a

  call del1s

  djnz r2,loop2 ;

  ljmp start

  ;以下是延时1s的子程序

  del1s: mov r7,#100

  del1: mov r6,#20h

  del2: mov r5,#0ffh

  del3: djnz r5,del3

  djnz r6,del2

  djnz r7,del1

  ret

  end

  五、注释

  1、 先看看(4)语句,它的意思是累加器A通过C进行左环移,图示如下:

  

 

  可见,我们如果想让灯从左置右发光,就需要给a赋值0ffh,cy清零,然后左环移8次即可。这就是(1)、(2)语句的含义。

  Cy我们以前没有接触过,它又是什么呢?

  还记得试验二中,我们提到程序状态字psw吧,它的各位图示如下:可见cy是psw的最高位,是进位标志,表示运算结果是否有进位(或者借位)。如果操作结果在最高位有进位(加法时),或者有借位(减法时),该位为“1”,否则为“0”。

  2、 根据上面的分析,可知(3)语句就是左移的次数

  3、 (6)(7)语句的含义自己分析吧。

  六、课后作业:

  试着用别的方法,完成同样的功能。



关键词: I/O 跑马灯

评论


相关推荐

技术专区

关闭