打印

请各位大大帮忙看看问题在哪

[复制链接]
1738|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ov, vr, hm, LED, AI
小弟刚开始自学单片机,今天做一个例程时怎么也达不到设计的效果,我花了4个小时还是没找到问题在哪,希望各位大大帮忙看看问题在哪,谢谢!
效果描述:通过按钮的按键次数来确定流水灯的工作模式,并在数码管上显示当前的按键次数。
    K1 EQU  P2.0
    LED EQU  P0
    ORG  0000H
MAIN:   SETB K1
    MOV  LED, #00H
    MOV  P1,  #00H
START:   MOV  R0,  #00H
    JB  K1,  $
    JNB  K1,  $
    INC  R0
    AJMP LOOP
    CJNE R0,  #06H, START
    AJMP MAIN
LOOP:   MOV  A,  R0
    CJNE A,  #01H, WW1
    LCALL YY1
WW1:   CJNE A,  #02H, WW2
    LCALL YY2
WW2:   CJNE A,  #03H, WW3
    LCALL YY3
WW3:   CJNE A,  #04H, WW4
    LCALL YY4
WW4:   CJNE A,  #05H, WW5
    LCALL YY5
WW5:   RET
YY1:   MOV  DPTR, #TAB1
    MOV  P1,  #30H
    LCALL SHOW
YY2:   MOV  DPTR, #TAB2
    MOV  P1,  #5BH
    LCALL SHOW
YY3:   MOV  DPTR, #TAB3
    MOV  P1,  #4FH
    LCALL SHOW
YY4:   MOV  DPTR, #TAB4
    MOV  P1,  #66H
    LCALL SHOW
YY5:   MOV  DPTR, #TAB5
    MOV  P1,  #6DH
    LCALL SHOW
SHOW:   MOV  R1,  #08H
    MOV  R2,  #00H
SH:    MOV  A,  R2
    MOVC A,  @A+DPTR
    MOV  LED, A
    INC  R2
    LCALL DELAY
    LCALL DELAY
    LCALL DELAY
    JNB  K1,  LOOP
    DJNZ R1,  SH
    AJMP SHOW
DELAY:   MOV  R6,  #00H
    MOV  R7,  #00H
    NOP
    NOP
    DJNZ R7,  $
    DJNZ R6,  $
    RET
TAB1:   DB  01111110B, 00111100B, 00011000B, 00000000B, 00011000B, 00111100B, 01111110B, 11111111B
TAB2:   DB  10000001B, 11000011B, 11100111B, 11111111B, 11100111B, 11000011B, 10000001B, 00000000B
TAB3:   DB  11111110B, 11111100B, 11111000B, 11110000B, 11100000B, 11000000B, 10000000B, 00000000B
TAB4:   DB  00000001B, 00000011B, 00000111B, 00001111B, 00011111B, 00111111B, 01111111B, 11111111B
TAB5:   DB  10000001B, 11000011B, 11100111B, 11111111B, 11100111B, 11000011B, 10000001B, 00000000B
    END

单键多模式流水灯.jpg (555.73 KB )

单键多模式流水灯.jpg

相关帖子

沙发
vmbjn888|  楼主 | 2011-6-12 21:51 | 只看该作者
怎么刚发上来就显示已结贴呢:L

使用特权

评论回复
板凳
Fairchild2440| | 2011-6-12 21:54 | 只看该作者
不知道这个图有没有问题,这个按键的电源在哪,31脚EA不用接?

使用特权

评论回复
地板
NE5532| | 2011-6-12 22:23 | 只看该作者
画流程图!!

使用特权

评论回复
5
wang_2003| | 2011-6-15 08:48 | 只看该作者
还用汇编语言写啊,我看不懂汇编撒~

使用特权

评论回复
6
vmbjn888|  楼主 | 2011-6-19 12:38 | 只看该作者
多谢大家的回复,前几天出差昨天才回来。
多谢NE5532大大的提示,我今天画好流程图重新写了下,问题解决了。

使用特权

评论回复
7
vmbjn888|  楼主 | 2011-6-19 12:40 | 只看该作者
ORG     0000H
                MOV     P0,  #0FFH
                MOV     P1,  #00H
MAIN:           SETB    P2.0
                MOV     P1,  #40H
                MOV     R0,  #00H
                MOV     P0,  #0AAH
                LCALL        DELAY
                MOV     A,   P0
                CPL     A
                MOV     P0,  A
                       LCALL        DELAY
                JNB     P2.0,    LOOP
                LJMP    MAIN
LOOP:           JNB     P2.0,    LOOP
                INC     R0
                CJNE    R0,     #06H,           PD
                LJMP    MAIN
PD:             CJNE    R0,     #01H,   WW1
                LCALL   YY1
WW1:            CJNE    R0,     #02H,   WW2
                LCALL   YY2
WW2:            CJNE    R0,     #03H,   WW3
                LCALL   YY3
WW3:            CJNE    R0,     #04H,   WW4
                LCALL   YY4
WW4:            CJNE    R0,     #05H,   WW5
                LCALL   YY5
WW5:            RET
YY1:            MOV     DPTR,   #TAB1
                                MOV                 P1,         #06H
                LCALL   XS
YY2:            MOV     DPTR,   #TAB2
                                MOV                 P1,         #5BH
                LCALL   XS
YY3:            MOV     DPTR,   #TAB3
                                MOV                 P1,         #4FH
                LCALL   XS
YY4:            MOV     DPTR,   #TAB4
                                MOV                 P1,         #66H
                LCALL   XS
YY5:            MOV     DPTR,   #TAB5
                                MOV                 P1,         #6DH
                LCALL   XS
XS:             MOV     R6,     #00H
                MOV     R7,     #08H
DP:             MOV     A,      R6
                MOVC    A,      @A+DPTR
                MOV     P0,     A
                INC     R6
                JNB     P2.0,   LOOP
                LCALL   DELAY
                LCALL   DELAY
                DJNZ    R7,     DP
                LJMP    XS
DELAY10MS:      MOV     R5,     #10
                MOV     R4,     #200
                NOP
                NOP
                DJNZ    R4,     $
                DJNZ    R5,     $
                RET
DELAY:          MOV     R5,     #00H
                MOV     R4,     #00H
                NOP
                NOP
                DJNZ    R4,     $
                DJNZ    R5,     $
                RET
TAB1:                    DB  01111110B,        00111100B,        00011000B,        00000000B,        00011000B,        00111100B,        01111110B,        11111111B
TAB2:                    DB        10000001B,        11000011B,        11100111B,        11111111B,        11100111B,        11000011B,        10000001B,        00000000B
TAB3:                    DB        11111110B,        11111100B,        11111000B,        11110000B,        11100000B,        11000000B,        10000000B,        00000000B
TAB4:                   DB        00000001B,        00000011B,        00000111B,        00001111B,        00011111B,        00111111B,        01111111B,        11111111B
TAB5:                    DB        10000001B,        11000011B,        11100111B,        11111111B,        11100111B,        11000011B,        10000001B,        00000000B
                        END

使用特权

评论回复
8
vmbjn888|  楼主 | 2011-6-19 12:41 | 只看该作者
ORG     0000H
                MOV     P0,  #0FFH
                MOV     P1,  #00H
MAIN:           SETB    P2.0
                MOV     P1,  #40H
                MOV     R0,  #00H
                MOV     P0,  #0AAH
                LCALL        DELAY
                MOV     A,   P0
                CPL     A
                MOV     P0,  A
                       LCALL        DELAY
                JNB     P2.0,    LOOP
                LJMP    MAIN
LOOP:           JNB     P2.0,    LOOP
                INC     R0
                CJNE    R0,     #06H,           PD
                LJMP    MAIN
PD:             CJNE    R0,     #01H,   WW1
                LCALL   YY1
WW1:            CJNE    R0,     #02H,   WW2
                LCALL   YY2
WW2:            CJNE    R0,     #03H,   WW3
                LCALL   YY3
WW3:            CJNE    R0,     #04H,   WW4
                LCALL   YY4
WW4:            CJNE    R0,     #05H,   WW5
                LCALL   YY5
WW5:            RET
YY1:            MOV     DPTR,   #TAB1
                                MOV                 P1,         #06H
                LCALL   XS
YY2:            MOV     DPTR,   #TAB2
                                MOV                 P1,         #5BH
                LCALL   XS
YY3:            MOV     DPTR,   #TAB3
                                MOV                 P1,         #4FH
                LCALL   XS
YY4:            MOV     DPTR,   #TAB4
                                MOV                 P1,         #66H
                LCALL   XS
YY5:            MOV     DPTR,   #TAB5
                                MOV                 P1,         #6DH
                LCALL   XS
XS:             MOV     R6,     #00H
                MOV     R7,     #08H
DP:             MOV     A,      R6
                MOVC    A,      @A+DPTR
                MOV     P0,     A
                INC     R6
                JNB     P2.0,   LOOP
                LCALL   DELAY
                LCALL   DELAY
                DJNZ    R7,     DP
                LJMP    XS
DELAY10MS:      MOV     R5,     #10
                MOV     R4,     #200
                NOP
                NOP
                DJNZ    R4,     $
                DJNZ    R5,     $
                RET
DELAY:          MOV     R5,     #00H
                MOV     R4,     #00H
                NOP
                NOP
                DJNZ    R4,     $
                DJNZ    R5,     $
                RET
TAB1:                    DB  01111110B,        00111100B,        00011000B,        00000000B,        00011000B,        00111100B,        01111110B,        11111111B
TAB2:                    DB        10000001B,        11000011B,        11100111B,        11111111B,        11100111B,        11000011B,        10000001B,        00000000B
TAB3:                    DB        11111110B,        11111100B,        11111000B,        11110000B,        11100000B,        11000000B,        10000000B,        00000000B
TAB4:                   DB        00000001B,        00000011B,        00000111B,        00001111B,        00011111B,        00111111B,        01111111B,        11111111B
TAB5:                    DB        10000001B,        11000011B,        11100111B,        11111111B,        11100111B,        11000011B,        10000001B,        00000000B
                        END
不好意思,这是多余的,忘删了

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

9

帖子

1

粉丝