×
嵌入式 > 集成电路 > 详情

单片机经典实验实例精华详解(附源程序) (二)

发布时间:2020-06-23 发布时间:
|
一、八路LED跑马灯实验

  现在让我们开始做第一个实验:八路发光二极管轮流点亮的实验,也就是通常所说的跑马灯实验,首先让我们来完成必须的硬件部分,我们需要焊接上8个发光二极管和8个限流电阻,可以参考下面的原理图和实物图像进行操作,需要注意的是LED是有极性的,引脚长的为正极,引脚短的为负极,负极和电阻一侧连接,如果接错那么相应的那一路可能在实验中不会点亮了,在焊接前要看仔细哦~~~

  

  下面我们来完成软件编程设计,这里我们没有采用高深的编程技巧,而是用了最笨、最直接的向端口送数的办法来实现,一来程序比较简单,没必要玩深沉,而且初学者看起来直观易懂。

  ORG 0000H

  START:MOV P1,#01111111B;最下面的LED点亮

  LCALL DELAY;延时1秒

  MOV P1,#10111111B;最下面第二个的LED点亮

  LCALL DELAY;延时1秒

  MOV P1,#11011111B;最下面第三个的LED点亮 (以下省略)

  LCALL DELAY

  MOV P1,#11101111B

  LCALL DELAY

  MOV P1,#11110111B

  LCALL DELAY

  MOV P1,#11111011B

  LCALL DELAY

  MOV P1,#11111101B

  LCALL DELAY

  MOV P1,#11111110B

  LCALL DELAY

  MOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒

  AJMP START;反复循环

  ;延时子程序,12M晶振延时约250毫秒

  DELAY:

  MOV R4,#2

  L3: MOV R2 ,#250

  L1: MOV R3 ,#250

  L2: DJNZ R3 ,L2

  DJNZ R2 ,L1

  DJNZ R4 ,L3

  RET

  END

  如何精确计算延时子程序的执行时间?

  汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!

  




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
高Q值数字滤波器