微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于汇编语言的一个问题。。。。。

关于汇编语言的一个问题。。。。。

时间:10-02 整理:3721RD 点击:
以下程序是999秒的倒计时程序,怎么改预置数,变成200秒倒计时?
程序如下:
    ; 这是一个999 4位数倒计时,为了方便延时,定时时间稍长。
    LD1    BIT    P2.7
    LD2    BIT    P2.6
    LD3    BIT    P2.5
    LD4    BIT    P2.4
    LED1    BIT    P2.3
    LED2    BIT    P2.2
    LED3    BIT    P2.1
    LED4    BIT    P2.0
    BEEP    BIT    P3.6
    SUB        BIT    01H        ;减位标志位
    BUF_LED1    EQU    24H        ;LED1缓存
    BUF_LED2    EQU    25H        ;LED2缓存
    BUF_LED3    EQU    26H        ;LED3缓存
    BUF_LED4    EQU    27H        ;LED4缓存
    BIN_LED1    EQU    28H
    BIN_LED2    EQU    29H
    BIN_LED3    EQU    2AH
    BIN_LED4    EQU    2BH
    BUFF_LP    EQU    2CH

    ORG    0000H
    LJMP    MAIN
    ORG    00BH
    LJMP    TT0
    ORG    0100H
MAIN:    MOV        SP,    #40H
    MOV        A,    #00H
    MOV        IE,    #00H
    MOV        R6,    #50H
    MOV        R0,    #20H
STR0:    MOV        @R0,    A
    INC        R0
    NOP
    DJNZ        R6,    STR0
    MOV        P1,#0FFH
    MOV        P0,#0FFH
    MOV        P2,#80H
    MOV        P3,#0FFH
    MOV        BUFF_LP,#00H
    MOV        TH0,#0FCH        ;LED扫描周期1MS
    MOV        TL0,#18H
    MOV        TMOD,#01H
    mov    buf_led1,#90h
    mov    buf_led2,#90h
    mov    buf_led3,#90h
    mov    buf_led4,#90h
    MOV    BIN_LED1,#09H
    MOV    BIN_LED2,#09H
    MOV    BIN_LED3,#09H
    MOV    BIN_LED4,#09H
    SETB        EA            ;1MS
    SETB        ET0
    SETB        TR0
WAIT:
        JB     SUB,SUB_L1
        LJMP WAIT
SUB_L1: MOV A,BIN_LED1
    CLR    SUB
    CJNE    A,#00H,SUB_EN
        MOV    BIN_LED1,#09
    LJMP    SUB_LED2
SUB_EN:  DEC    BIN_LED1
     MOV    A,BIN_LED1
     MOV    DPTR,#LED_CODE
     MOVC    A,@A+DPTR
     MOV    BUF_LED1,A
SUB_EN1: LJMP    WAIT
SUB_LED2:
       MOV    BUF_LED1,#90H
       MOV    A,BIN_LED2
       CJNE    A,#00H,SUB_EN2
           MOV    BIN_LED2,#09
       LJMP    SUB_LED3
SUB_EN2: DEC    BIN_LED2
     MOV    A,BIN_LED2
     MOV    DPTR,#LED_CODE
     MOVC    A,@A+DPTR
     MOV    BUF_LED2,A
         LJMP    WAIT
SUB_LED3:
       MOV    BUF_LED2,#90H
       MOV    A,BIN_LED3
       CJNE    A,#00H,SUB_EN3
           MOV    BIN_LED3,#09
       LJMP    SUB_LED4
SUB_EN3:  DEC    BIN_LED3
      MOV    A,BIN_LED3
      MOV    DPTR,#LED_CODE
      MOVC    A,@A+DPTR
      MOV    BUF_LED3,A
          LJMP    WAIT
SUB_LED4:
       MOV    BUF_LED3,#09H
       MOV    A,BIN_LED4
       CJNE    A,#00H,SUB_EN4
       LJMP    SUB_LED5
SUB_EN4: DEC    BIN_LED4
     MOV    A,BIN_LED4
     MOV    DPTR,#LED_CODE
     MOVC    A,@A+DPTR
     MOV    BUF_LED4,A
         LJMP    WAIT
SUB_LED5:JMP  MAIN
;================================================定时器0,扫描数码管
TT0:        MOV        TH0,    #0FCH
        MOV        TL0,    #18H
        PUSH        ACC
        PUSH        PSW
        INC        BUFF_LP
        MOV        A,    BUFF_LP
        CJNE        A,    #04H,TT0_01
        MOV        BUFF_LP,#00H
TT0_01:     MOV    A,    BUFF_LP
        RL        A
        MOV        DPTR,#LED_LOOP
        JMP        @A+DPTR
LED_LOOP:    AJMP        LED_L1
        AJMP        LED_L2
        AJMP        LED_L3
        AJMP        LED_L4
LED_L1:           MOV P2,#11101111B
        MOV        P0,    BUF_LED4
        JMP        TT0_END
LED_L2:           MOV P2,#11110111B
        MOV        P0,    BUF_LED3
        JMP        TT0_END
LED_L3:           MOV P2,#11111011B
        MOV        P0,    BUF_LED2
        JMP        TT0_END
LED_L4:           MOV P2,#11111101B
        MOV        P0,    BUF_LED1
        JMP        TT0_END
TT0_END:    INC        R2
        CJNE        R2,#100,TT0_END1
        MOV        R2,#00H
        SETB        SUB
TT0_END1:    POP        PSW
        POP          ACC
        RETI
        NOP
        NOP
        LJMP    000H
DELAY:MOV R5,#0
D1:   MOV R6,#20
D2:   MOV R7,#248
      DJNZ R7,$
      DJNZ R6,D2
      DJNZ R5,D1
      RET

LED_CODE:       DB 0C0H,0F9H,0A4H,0B0H,99H,92H   ;数码管显示字型表
        DB 82H,0F8H,80H,90H,88H,83H,0A7H
        DB 0A1H,86H,8EH,0FFH
END
求大神帮助!

看的头晕了。
汇编的优势体现出来了,想改一下,难死。想让别人读,几乎不可能。

可我们现在只学了汇编。

哈, 好复杂。
------------------------------------------------------------------
宏联洲CYPRESS芯片- 贺小姐
0755-83790676,QQ857440998

c语言,必学, 逃不掉的.

关键是先要搞定现在的课程设计啊!你能帮我看看吗?

对不起,不懂汇编呢.课程设计要去用汇编么, 好变态的.

65536-200=FF38H  即TH0=0FFh;TL0=38H;     

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top