论坛风格切换切换到宽版
  • 4812阅读
  • 8回复

请高手指点:这么简单的程序,怎么会跑不起来?郁闷 [复制链接]

上一主题 下一主题
离线mz85818
 
发帖
26
只看楼主 倒序阅读 0楼 发表于: 2012-06-27
STC15F104芯片,左右各三下循环闪烁:

        P3M1     EQU    0B1H
        P3M0     EQU    0B2H
        ORG      0040H
       ; CLR      P3.0
       ; CLR      P3.1
       ; CLR      P3.2
       ; CLR      P3.3
       ; NOP
        ;NOP
        LJMP     MAIN
        ORG      0050H
MAIN:   MOV      SP,#7FH  
HS3:                        ;红灯闪三下
        NOP
        NOP
        NOP
        MOV      R1,#3
        SETB     P3.3
        SETB     P3.2
        LCALL    YS         ;延时200MS
        CLR      P3.3
        CLR      P3.2
        LCALL    YS         ;延时100MS
        DJNZ     R1,HS3
LS3:                        ;蓝灯闪三下
        MOV     R1,#3
        SETB    P3.1
        SETB    P3.0
        LCALL   YS
        CLR     P3.1
        CLR     P3.0
        LCALL   YS
        DJNZ    R1,LS3
        LJMP    MAIN
YS:     NOP
        NOP
        NOP
        PUSH    30H
        PUSH    31H
        PUSH    32H
        MOV     30H,#12
        MOV     31H,#93
        MOV     32H,#152
        DJNZ    32H,$
        DJNZ    31H,$
        DJNZ    30H,$
        POP     32H
        POP     31H
        POP     30H
        RET
        END
延时程序是按STC下载器上的方法。

呼号:BG4EWN
T:13801712264
QTH:上海  浦东
离线xcf93
发帖
1330
只看该作者 1楼 发表于: 2012-06-28
P3M1     EQU    0B1H
        P3M0     EQU    0B2H

      ORG 0000H
            LJMP     MAIN

        ORG      0050H
                        ;红灯闪三下
MAIN:   MOV      R1,#3
HS3:   SETB     P3.3
        SETB     P3.2
        LCALL    YS         ;延时200MS
        CLR      P3.3
        CLR      P3.2
        LCALL    YS         ;延时100MS
        DJNZ     R1,HS3
                ;蓝灯闪三下
        MOV     R1,#3
LS3:          SETB    P3.1
        SETB    P3.0
        LCALL   YS
        CLR     P3.1
        CLR     P3.0
        LCALL   YS
        DJNZ    R1,LS3
        LJMP    MAIN

YS:        MOV     30H,#12
        MOV     31H,#93
        MOV     32H,#152
        DJNZ    32H,$
        DJNZ    31H,$
        DJNZ    30H,$
         RET

        END



只能爱护,不能吃的菜鸟回来了。 :113:
离线mz85818
发帖
26
只看该作者 2楼 发表于: 2012-06-28
先谢后试
呼号:BG4EWN
T:13801712264
QTH:上海  浦东
离线mz85818
发帖
26
只看该作者 3楼 发表于: 2012-06-28
好了!
我的延时也有问题,改了。
但还是不知道问题在哪里!
MOV      SP,#7FH  
这句语句是后来加的,没加的时候也不能跑,
晚上再研究。
再谢一楼!!!
呼号:BG4EWN
T:13801712264
QTH:上海  浦东
离线mz85818
发帖
26
只看该作者 4楼 发表于: 2012-06-28
修改后的汇编:
    P3M1     EQU    0B1H
        P3M0     EQU    0B2H

        ORG      0000H
        LJMP     MAIN

        ORG      0050H
                        ;红灯闪三下
MAIN:   MOV      R1,#3
HS3:    SETB     P3.3
             SETB     P3.2
              LCALL    YS         ;延时100MS
             CLR      P3.3
             CLR      P3.2
             LCALL    YS         ;延时100MS
             DJNZ     R1,HS3
                ;蓝灯闪三下
      MOV     R1,#3
LS3:    SETB    P3.1
            SETB    P3.0
            LCALL   YS
           CLR     P3.1
           CLR     P3.0
           LCALL   YS
           DJNZ    R1,LS3
           LJMP    MAIN

YS:    
            MOV     30H,#12
YS2:    MOV     31H,#93
YS1:    MOV     32H,#152
            DJNZ    32H,$
            DJNZ    31H,YS1
            DJNZ    30H,YS2
            RET

            END
[ 此帖被mz85818在2012-06-28 20:49重新编辑 ]
呼号:BG4EWN
T:13801712264
QTH:上海  浦东
离线xcf93
发帖
1330
只看该作者 5楼 发表于: 2012-06-29
之前的延时是有问题,但还不至于影响程序运行,只是影响灯的闪速,所以我也就没提示。
还可以简化
P3M1     EQU    0B1H
        P3M0     EQU    0B2H
可以不要

刚开始学都有个曲折的国产,过了痛苦期就好了。。
只能爱护,不能吃的菜鸟回来了。 :113:
离线mz85818
发帖
26
只看该作者 6楼 发表于: 2012-06-30
之所以郁闷,是因为以前用汇编写过复杂的多的程序,如温度计,时钟日历,步进电机控制以及12864显示的集合,而且这个程序用89C52也能跑,
该死的八脚怪,先是程序不能下载,后来程序能下载了,却又不能跑,
呼号:BG4EWN
T:13801712264
QTH:上海  浦东
离线mz85818
发帖
26
只看该作者 7楼 发表于: 2012-06-30
回 xcf93 的帖子
xcf93:之前的延时是有问题,但还不至于影响程序运行,只是影响灯的闪速,所以我也就没提示。
还可以简化
P3M1     EQU    0B1H
        P3M0 &n .. (2012-06-29 15:41) 

是端口设置,可以提供大的输出电流,
呼号:BG4EWN
T:13801712264
QTH:上海  浦东
离线李庆雨
发帖
14
只看该作者 8楼 发表于: 2012-09-09
改成c吧!汇编太痛苦

内容来自Android手机客户端