新闻  |   论坛  |   博客  |   在线研讨会
51单片机系列之一:闪烁灯
十年砍柴 | 2010-07-04 16:05:09    阅读:971   发布文章

51单片机系列之一:闪烁灯

一、设计任务

1、如图1,做单个灯的闪烁,在P1.0端口接一个发光二极管的D1,使D1不停地一亮和一灭,时间间隔大约为0.125秒。

2、如图2,做一个流水灯的设计,在P0.0端口分别对应接上8LED灯(在此,每个端口接上了3个灯),使这8个灯循环亮灭:P0.0P0.1P0.2—……—P0.7

3做完上面两个了,现在来设计任意灯的点亮。如图所示。

二、电路原理图

          1:单个发光二极管不停的闪烁

          2:  8个流水灯循环点亮

         3——136灯亮

         3——2: 56灯亮

三、设计程序

//单片机89C51p1.0口接一个闪光的二极管(设计1

      org 0h

      ljmp main

      org 30h

main: clr  p1.0

      acall delay

      setb p1.0

      acall delay

      sjmp main

delay:mov R7,#250

  d1 :mov R6,#250   

      djnz R6,$

      djnz R7,d1

      ret

      end

 

//单片机89C51P0口接上8个灯,使这8个灯循环点亮(设计2

START: MOV ACC,#0FEH

       MOV P0,ACC

       MOV  R0,7

LOOP1: RL A

       MOV P0,ACC

       ACALL DELAY

       DJNZ R0,LOOP1

       AJMP START

DELAY: MOV R0,255

  L1:  MOV R1,255

       DJNZ R1,$

       DJNZ R1,$

       DJNZ R0,L1

         RET

END

 

//任意灯的点亮(设计3

START: MOV ACC,#7EH  ;18灯亮

       MOV P0,ACC

       ACALL DELAY

      

       MOV ACC,#0BDH  ;27灯亮

       MOV P0,ACC

       ACALL DELAY 

      

       MOV ACC,#0DBH  ;36灯亮

       MOV P0,ACC

       ACALL DELAY

    

       MOV ACC,#0E7H  ;45灯亮

       MOV P0,ACC

       ACALL DELAY

 

       MOV ACC,#0FCH  ;12灯亮

       MOV P0,ACC

       ACALL DELAY

 

       MOV ACC,#0F3H  ;34灯亮

       MOV P0,ACC

       ACALL DELAY

    

       MOV ACC,#0CFH  ;56灯亮

       MOV P0,ACC

       ACALL DELAY

 

       MOV ACC,#3FH    ;78灯亮

       MOV P0,ACC

       ACALL DELAY

      

       AJMP START

 

DELAY: MOV R0,255

  L1:  MOV R1,255

       DJNZ R1,$

       DJNZ R1,$

       DJNZ R1,$

       DJNZ R0,L1

         RET

END

注意:由于Proteus 图纸不能正常显示,如有需要,联系QQ:646038584

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客