首页 论坛 芯片产品和产业 大学技术交流 分享个2004年读大学时参与的旋转时钟(汇编源代码和原理图 PCB图等全部开源)

发帖 回复

[原创] 分享个2004年读大学时参与的旋转时钟(汇编源代码和原理图 PCB图等全部开源)
2839 查看
20 回复
 楼主 | 发布于 2017-10-14 | 只看楼主
分享到:

分享个2004年读大学时参与的旋转时钟(汇编源代码和图纸等全部开源分享)

更新时间:2018年6月20日

技术交流群:16519783(建于2005年10月17日)

图纸:请用99SE打开

 主芯片基于AT89C2051

参考源码:

    GUAN1 EQU      30H
    GUAN2 EQU      31H
    GUAN3 EQU      32H
    GUAN4 EQU      33H
    OFF   EQU      34H
    COUNT EQU      35H
    FLAG0 BIT      2AH.0
    FLAG1 BIT      2AH.1
    FLAG2 BIT      2AH.2
  FLAGOFF BIT      2AH.3
  FLAGH   BIT      2AH.4
  FLAGL   BIT      2AH.5
  FLAG999 BIT      2AH.6
          ORG      00H
          JMP      START
          ORG      03H
          JMP      INT0
          ORG      0BH
          JMP      TIMER0
          ORG      13H
          JMP      INT1
          ORG      1BH
          JMP      TIMER1
          ORG      100H
START:    MOV      SP,#60H
          MOV      TMOD,#00010001B
          MOV      IE,#10001111B
          MOV      IP,#00001000B
          MOV      TL0,#LOW(65536-50000)
          MOV      TH0,#HIGH(65536-50000)
          MOV      TL1,#LOW(65536-50000)
          MOV      TH1,#HIGH(65536-50000)
          MOV      R1,#10
          MOV      R7,#120
          MOV      GUAN1,#0
          MOV      GUAN2,#0
          MOV      GUAN3,#0
          MOV      GUAN4,#0
          MOV      COUNT,#0
          MOV      OFF,#0FFH
          SETB     FLAG0
          CLR      FLAG1
          CLR      FLAGOFF
          CLR      FLAG999
          MOV      DPTR,#TABLE
          SETB     P3.7
          CALL     DELAY
          CLR      P3.7
          SETB     TR0
 DEAD:    CALL     DISPLAY
          NOP
          NOP
          JMP      DEAD

 DISPLAY:                         ;1
          MOV      A,GUAN4
          MOV      DPTR,#TABLE
          MOVC     A,@A+DPTR
          MOV      C,FLAG0
          MOV      ACC.7,C
          JB       FLAG999,LIGHTOFF10
          MOV      P1,A
          JMP      NEXT234
LIGHTOFF10:MOV     P1,#0FFH
NEXT234:  CLR      P3.0
          CALL     DELAY
          SETB     P3.0
                                 ;2
          MOV      A,GUAN3
          MOV      DPTR,#TABLE
          MOVC     A,@A+DPTR
          MOV      C,FLAG0
          MOV      ACC.7,C
          JB       FLAG999,LIGHTOFF11
          MOV      P1,A
          JMP      NEXT235
LIGHTOFF11:MOV     P1,#0FFH
NEXT235:  CLR      P3.1
          CALL     DELAY
          SETB     P3.1

                                   ;3
          MOV      A,GUAN2
          MOV      DPTR,#TABLE1
          MOVC     A,@A+DPTR
          MOV      C,FLAG0
          MOV      ACC.7,C
          JB       FLAGOFF,LIGHTOFF
          MOV      P1,A
          JMP      NEXT123
LIGHTOFF :MOV      P1,#0FFH
NEXT123:  CLR      P3.4
          CALL     DELAY
          SETB     P3.4

                                    ;4
          MOV      A,GUAN1
          MOV      DPTR,#TABLE
          MOVC     A,@A+DPTR
          MOV      C,FLAG0
          MOV      ACC.7,C
          JB       FLAGOFF,LIGHTOFF1
          MOV      P1,A
          JMP      NEXT124
LIGHTOFF1 :MOV     P1,#0FFH
NEXT124:  CLR      P3.5
          CALL     DELAY
          SETB     P3.5
          RET

  INT0:   PUSH     ACC
          PUSH     PSW
  WAIT:   JB       P3.2,TEN0
          CALL     DISPLAY
          JMP      WAIT
   TEN0:  SETB     FLAGH
          CLR      FLAGL
   TEN:   CLR      EX1
          CLR      TR0
          SETB     TR1
          JB       P3.2,WAIT1
 WAIT001: JB       P3.2,NEXT006
          CALL     DISPLAY
          JMP      WAIT001

NEXT006:  INC      COUNT
          MOV      R0,#COUNT
          CJNE     @R0,#1,QQ0
          SETB     FLAG1
          SETB     FLAGL
          CLR      FLAGH
          JMP      WAIT1
   QQ0:   CJNE     @R0,#2,QQ1
          MOV      COUNT,#0
          CLR      FLAG1
          CLR      FLAGH
          CLR      FLAGL
          JMP      BACK
   QQ1:   NOP
          NOP
          JMP      START

  WAIT1:  JNB      P3.3,JAGAIN
          CALL     DISPLAY
          JMP      TEN
  JAGAIN:
          JB       P3.3,INCR
          CALL     DISPLAY
          JMP      JAGAIN

    INCR: JNB      FLAG1,TIME1
          JMP      TIME2
    TIME1:MOV      A,GUAN4
          CJNE     A,#2,NEXT009
          MOV      A,GUAN3
          INC      A
          MOV      GUAN3,A
          CJNE     A,#4,TEN
          MOV      GUAN3,#0
          MOV      GUAN4,#0
          JMP      TEN
NEXT009:  MOV      A,GUAN3
          INC      A
          MOV      GUAN3,A
          CJNE     A,#10,TEN
          MOV      GUAN3,#0
          MOV      A,GUAN4
          INC      A
          MOV      GUAN4,A
          JMP      TEN

  TIME2:  MOV      A,GUAN1
          INC      A
          MOV      GUAN1,A
          CJNE     A,#10,TEN
          MOV      GUAN1,#0
          ;--------
          MOV      A,GUAN2
          INC      A
          MOV      GUAN2,A
          CJNE     A,#6,TEN10
          MOV      GUAN2,#0
 TEN10:   JMP      TEN

    BACK: SETB     EX1
          CLR      TR1
          SETB     P3.7
          CLR      P3.7
          CLR      FLAGOFF
          CLR      FLAG999
          POP      PSW
          POP      ACC
          SETB     TR0
          RETI

  INT1:   CLR      TR0
          PUSH     ACC
          PUSH     PSW

  HOME:   SETB     TR0
          POP      PSW
          POP      ACC
          SETB     TR0
          RETI


  TIMER0: ORL      TL0,#LOW(65536-50000)
          MOV      TH0,#HIGH(65536-50000)
          PUSH     ACC
          PUSH     PSW
          DJNZ     R1,OUT
          MOV      R1,#10
          CPL      FLAG0
          JBC      P3.7,NEXT001
NEXT001:  DJNZ     R7,OUT
          MOV      R7,#120
          SETB     P3.7
          MOV      A,GUAN1
          INC      A
          MOV      GUAN1,A
          CJNE     A,#10,OUT
          MOV      GUAN1,#0
          ;--------
          MOV      A,GUAN2
          INC      A
          MOV      GUAN2,A
          CJNE     A,#6,OUT
          MOV      GUAN2,#0
         ;----------
          MOV      A,GUAN4
          CJNE     A,#2,NEXT
          MOV      A,GUAN3
          INC      A
          MOV      GUAN3,A
          CJNE     A,#4,OUT
          MOV      GUAN3,#0
          MOV      GUAN4,#0
NEXT:     MOV      A,GUAN3
          INC      A
          MOV      GUAN3,A
          CJNE     A,#10,OUT
          MOV      GUAN3,#0
          MOV      A,GUAN4
          INC      A
          MOV      GUAN4,A
 OUT:     POP      PSW
          POP      ACC
          RETI

 TIMER1:  ORL      TL1,#LOW(65536-65535)
          MOV      TH1,#HIGH(65536-65535)
          PUSH      ACC
          PUSH      PSW
          JB        FLAGH,XUAN0
          CPL       FLAGOFF
          CLR       FLAG999
          JMP       EXIT
 XUAN0:   CPL       FLAG999
          CLR       FLAGOFF
 EXIT:    POP       PSW
          POP       ACC
          RETI


 DELAY:   MOV      R2,#14H
   D1:    MOV      R3,#19H
          DJNZ     R3,$
          DJNZ     R2,D1
          RET


  TABLE: ;  0     1    2      3     4     5     6    7      8     9   10
      DB  0C0H  0F9H  0A4H   0B0H  99H  92H   82H  0D8H   80H   90H   0FFH

  TABLE1:
      DB  0C0H  0CFH  0A4H   86H   8BH  92H   90H  0C3H   80H   82H   0FFH




本帖有更多资源,需 登录 才可以下载,没有帐号?立即 注册

(0 ) (2 )

机器人大赛

回复 举报

楼主 | 回复于 2017-10-14 沙发

自己支持下
(0 )
评论 (0) 举报

回复于 2017-11-06 2#

(0 )
评论 (2) 举报

回复于 2017-11-15 3#

支持支持
(0 )
评论 (0) 举报

楼主 | 回复于 2017-11-15 4#

谢谢大家支持;
(0 )
评论 (0) 举报

回复于 2017-11-17 5#

(0 )
评论 (0) 举报

回复于 2017-12-02 6#

哈哈!不错哈!加个外壳,还是有点新意的
(0 )
评论 (0) 举报

回复于 2018-01-17 7#

(0 )
评论 (0) 举报

回复于 2018-06-21 8#

满满的回忆,不错,资料居然还在!
(0 )
评论 (0) 举报

回复于 2018-06-21 9#

(0 )
评论 (0) 举报

回复于 2018-06-21 10#

感谢分享,想当年我刚入坑的时候也是用51汇编,全是回忆。
(0 )
评论 (0) 举报
发表回复
0/3000





举报

请选择举报类别

  • 广告垃圾
  • 违规内容
  • 恶意灌水
  • 重复发帖

全部板块

返回顶部