三道关于汇编语言的,需要各位帮助

题目一 上电后所有LED灯全部熄灭,开始时左右两侧第一个灯点亮,然后用定时器1以600ms分别向中间靠拢点亮,碰头后再分别回到左右两侧最开始端,进行下一个循环
题目二 上电时,LED灯熄灭,数码管显示10,然后外部中断1动作时数码管倒计时减1,当减到00时,所连接的任一一个LED灯亮起,当回到10显示时,LED灯熄灭重新进入下一个循环
题目三 上电后,一只数码管每隔500ms顺时针循环显示字形码“2”的各段。
要求(解答全部采用汇编语言)

img

这些题目需要使用汇编语言来编写程序,每个题目都需要考虑硬件环境和具体的微控制器或微处理器。由于具体的汇编语言和平台可能不同,我无法提供针对特定微控制器的完整代码,但我可以为你提供一些思路和大致的程序框架。
题目一的汇编程序思路:
题目一:

ORG 0x0000
    MOV P1, #0xFF    ; 初始化所有LED灯熄灭
    MOV P1, #0xFE    ; 左侧第一个LED点亮
    MOV R1, #0       ; 初始化定时器计数器
    
LOOP:
    DJNZ R1, LOOP    ; 等待一段时间
    
    MOV P1, P1 >> 1  ; 向中间移动LED灯
    
    JNZ LOOP         ; 继续循环
    
    SJMP $           ; 无限循环

END

题目二:

ORG 0x0000
    MOV P1, #0x00    ; 初始化LED灯熄灭
    MOV A, #10
    ACALL DisplayDec ; 数码管显示10
    MOV A, #10
    MOV R0, #0
    ACALL StartTimer
    
LOOP:
    CJNE A, #0, LOOP  ; 等待倒计时
    
    MOV P1, #0xFF    ; 任意一个LED灯亮起
    
    MOV A, #10
    ACALL DisplayDec ; 数码管显示10
    
    SJMP LOOP        ; 继续循环

DisplayDec:
    ; 数码管显示A的代码
    RET

StartTimer:
    ; 启动定时器的代码
    RET

END

题目三:

ORG 0x0000
    MOV P1, #0xFF    ; 初始化数码管为全灭
    MOV R0, #0
    
LOOP:
    MOV A, R0
    ACALL DisplaySegment ; 显示字形码
    
    INC R0
    CJNE R0, #8, LOOP  ; 循环显示
    
    SJMP LOOP         ; 无限循环

DisplaySegment:
    ; 显示A的字形码的代码
    RET

END