打印
[51单片机]

这个程序哪里有错误

[复制链接]
1129|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qinnengbuzuo|  楼主 | 2013-11-23 17:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ov, EDA, TI, se, ST
;程序功能:上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,
;当第一次按下开关K1的时候,L2接在P1.1管脚上的发光二极管在闪烁,
;第二次按下开关K1的时候,L3接在P1.2管脚上的发光二极管在闪烁,
;第三次按下开关K1的时候,L4接在P1.3管脚上的发光二极管在闪烁,
;第四次按下开关K1的时候,又轮到L1在闪烁了,

;----------------程序初始化---------------------
DEDA        EQU 31H
ID          EQU 30H
K1          BIT P3.4
L1          BIT P1.0
L2          BIT P1.1
L3          BIT P1.2
L4          BIT P1.3
            ORG 0H
        JMP MAIN
        ORG                0BH                                ; Timer 0中断向量地址
        JMP                TO_SRV
            
;-------------------主程序----------------------
MAIN:
         MOV ID,#0
        MOV DEDA,#0
        CALL INIT_TIMER

START:      JB K1,REL
            CALL DELAY10MS
            JB K1,REL
            INC ID
            MOV R1,ID
            CJNE R1,#4,REL
            MOV ID,#0

REL:        JNB K1,$
            MOV R1,ID
           CJNE R1,#0,IS0
                SETB L4
                MOV A,DEDA
        CJNE A,#0,IS3
            CPL L1
            JMP START

IS0:       CJNE R1,#01H,IS1
                SETB L1
                MOV A,DEDA
                CJNE A,#0,IS3
            CPL L2
            JMP START

IS1:       CJNE R1,#2,IS2
                SETB L2
                 MOV A,DEDA
                CJNE A,#0,IS3
            CPL L3
            JMP START

IS2:       CJNE R1,#3,IS3
           SETB L3
         MOV A,DEDA
         CJNE A,#0,IS3
            CPL L4
            JMP START

IS3:        JMP START
;-------------消抖延时-------------------------
DELAY10MS:    MOV R6,#20
LOOP1:       MOV R7,#248
             DJNZ R7,$
             DJNZ R6,LOOP1
             RET
;-------------定时中断模块----------------------
INIT_TIMER:
        MOV TMOD,#00000000B
        SETB EA
        SETB ET0
        MOV TL0,#(8192-5000)MOD 32
        MOV TH0,#(8192-5000)/32
        SETB TR0
        RET
;---------------中断服务程序----------------------
TO_SRV:
        MOV TL0,#(8192-5000)MOD 32
        MOV TH0,#(8192-5000)/32
        INC DEDA
        MOV R2,DEDA
        CJNE R2,#40,TT1
        MOV DEDA,#0
       
TT1:
        RETI

        END

相关帖子

沙发
NE5532| | 2013-11-24 11:14 | 只看该作者
自己把每一行都加上注释,就正确了。

使用特权

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

本版积分规则

2

主题

5

帖子

0

粉丝