⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmrxdb.asm

📁 触摸式人行灯的汇编程序,这个程序已测试通过用KEIL编写
💻 ASM
字号:
        org    0000h
        jmp    main
        org    000bh
        jmp    time1
        org    001bh
        reti
        org    0023h
        reti
        org    0100h
main:    
        clk      equ  p1.1
        io       equ  p1.2
        rst      equ  p1.0 

        mov    sp,#70h
        mov    tmod,#21h
        mov    th0,#0f4h
        mov    tl0,#048h
        setb   tr0
        mov    th1,#0f9h
        mov    tl1,#0f9h 
        setb   tr1
        mov    ie,#92h
        mov    ip,#02h
        mov    scon,#50h
        mov    r4,#130
        mov    29h,#0
        mov    2ah,#0
        mov    2bh,#1
        mov    27h,#0ffh
        mov    14h,#0ffh
        mov    2ch,#0        ;桌面
        mov    15h,#5
        mov    r1,#0fh
        mov    40h,#11
        mov    41h,#11
        mov    30h,#0feh
;------------

        ;mov    20h,#4
        ;mov    21h,#3
        ;mov    22h,#8
        ;mov    23h,#9
        ;mov    24h,#1
       

        call   r_1302

        mov    42h,24h
zckz:   mov    a,20h
        add    a,21h
        mov    25h,a
;------ mov    2ch,#0
        
        mov    a,42h
        cjne   a,#1,fsw2
        
        clr    p2.7
        setb   p2.6
        setb   p2.5
        clr    p2.4
        clr    p2.3      ;车绿,横红
        mov    2dh,#0
        sjmp   pp

fsw2:   cjne   a,#2,fsw3
        mov    2ch,#0
        mov    2dh,#88h
        anl    p2,#17h
        sjmp   pp

fsw3:   cjne   a,#3,pp
        mov    a,2ch
        xrl    a,#77h
        jnz    pp
        mov    2dh,#0
        mov    0fh,#0
        mov    2ah,#0
        call   kop2
;-------------------------------------
pp:     jb     27h.1,ttm
        jnb    27h.1,$
        ajmp   k6     
ttm:    mov    a,14h   
        orl    a,#07h
        cpl    a
        jz     bcd
        call   jjpp
bcd:    jb     p3.3,zckz
;-------------------------------------
        mov    2dh,#0
        call   kop2
        mov    a,42h
        xrl    a,#2
        jnz    anbai 
        mov    2dh,#88h
anbai:  sjmp   pp
;---------------------------------------
kop2:   mov    32h,20h
        mov    33h,25h
qa1:    mov    31h,#60h 
        mov    a,p2            ;车绿闪,横红
        anl    a,#07h
        orl    a,31h     
        mov    p2,a

        call   fsk
        call   ys1

        mov    a,p2
        anl    a,#07h
        orl    a,#40h     
        mov    p2,a

        call   ys1
        dec    32h
        dec    33h
        mov    a,32h
        xrl    a,#0
        jnz    qa1  
;---------    
kopa:   mov    32h,21h
        mov    31h,#50h 
qa2:    call   pin              ;车黄,横红
        call   fsk
        call   ys 
        dec    32h
        dec    33h
        mov    a,32h
        xrl    a,#0
        jnz    qa2  
;---------    
        mov    32h,22h
        mov    33h,32h
        mov    31h,#88h 
qa3:    call   pin              ;车红,横绿
        call   fsk
        call   ys 
        dec    32h
        mov    33h,32h
        mov    a,32h
        xrl    a,#0
        jnz    qa3  
;---------
        mov    32h,23h
        mov    33h,32h
        mov    31h,#60h 
qa4:    call   pin              ;车绿,横红
        call   fsk
        call   ys 
        dec    32h
        mov    33h,32h
        mov    a,32h
        xrl    a,#0
        jnz    qa4  
        mov    40h,#11
        mov    41h,#11
        ret
;-----------------------
fsk:    mov    40h,32h
        mov    41h,33h
        mov    r2,#4
        mov    r0,#30h
fsk1:   mov    a,@r0
        mov    sbuf,a
aaq0:   jbc    ti,af0
        sjmp   aaq0
af0:    inc    r0
        djnz   r2,fsk1
        ret
;------------------------
pin:    mov    a,p2
        anl    a,#07h
        orl    a,31h     
        mov    p2,a
        ret
;-----------------------
set1302t: setb    rst
          clr    clk
          clr   rst
          mov    a,#0ceh
          call   r_bit
          mov    a,#00h
 	    call   r_bit
          setb   clk
	    setb    rst
          
          mov   r0,#20h
          mov   r7,#5
          mov   r5,#0c0h
set1302a: setb   rst
          clr   clk
          clr   rst
          mov   a,r5
          call  r_bit
          mov   a,@r0
          call  r_bit
          inc   r0
          inc   r5
          inc   r5
          setb  clk
          setb   rst
          djnz  r7,set1302a

          setb   rst
          clr   clk
          setb  clk
          nop
          setb   rst
          nop
          clr   clk
          clr  rst
          mov   a,#90h
          call  r_bit
          mov   a,#0a5h
          call  r_bit
          setb  clk
          setb   rst

          clr   clk
          clr  rst
          mov   a,#0ceh
          call  r_bit
          mov   a,#0c0h
          call  r_bit
          setb  clk
          setb   rst
          ret
;---------------
r_bit:    mov    r3,#08h
r_bit1:   rrc    a
          mov    io,c
          setb   clk
          clr    clk
          djnz   r3,r_bit1
          ret

w_bit:    mov    r3,#08h
w_bit2:   mov    c,io
          rrc    a
          setb   clk
          clr    clk
          djnz   r3,w_bit2
          ret
;-----------------------------
r_1302:   call   r_1302b
          mov    20h,a
          call   r_1302a
          mov    21h,a
          call   r_1302a
          mov    22h,a
          call   r_1302a
          mov    23h,a
          call   r_1302a
          mov    24h,a
          ret
          

r_1302b:  mov   r5,#0c1h
r_1302a:  setb   rst
          clr   clk
          clr  rst
          mov   a,r5
          call  r_bit
          call  w_bit
          setb   rst
          setb  clk
          inc   r5
          inc   r5
          ret

;------------------------
jjpp:   mov    a,14h
        jb     acc.3,asd1
xz1:    mov    a,14h
        jnb    acc.3,xz1
        ajmp   k1
asd1:   jb     acc.4,asd2
xz2:    mov    a,14h
        jnb    acc.4,xz2
        ajmp   k2
asd2:   jb     acc.5,asd3
xz3:    mov    a,14h
        jnb    acc.5,xz3
        ajmp   k3
asd3:   jb     acc.6,asd4
xz4:    mov    a,14h
        jnb    acc.6,xz4
        ajmp   k4
asd4:   jb     acc.7,asd5
xz5:    mov    a,14h
        jnb    acc.7,xz5
        ajmp   k5
asd5:   ret

k1:     inc    2ah
        mov    a,2ah
        cjne   a,#1,fa1
        mov    40h,#0
        mov    41h,42h
        mov    0fh,#40h
        sjmp   fa5
fa1:    cjne   a,#2,fa2
        mov    40h,22h
        mov    41h,23h
        mov    0fh,#20h
        sjmp   fa5
fa2:    cjne   a,#3,fa3
        mov    40h,#1
        mov    41h,20h
        mov    0fh,#10h
        sjmp   fa5
fa3:    cjne   a,#4,fa4
        mov    40h,22h
        mov    41h,23h
        mov    0fh,#08h
        sjmp   fa5
fa4:    cjne   a,#5,fa5
        mov    40h,#11
        mov    41h,#11
        mov    2ah,#0
        mov    0fh,#00h
fa5:    ret
;-----------
k2:     mov    24h,42h
        call   set1302t
        mov    a,2ah
        xrl    a,#1
        jnz    btk
        mov    a,42h
        xrl    a,#3
        jnz    btk
        mov    2ch,#77h
        call   set1302t
        ret
btk:    mov    a,2ah
        xrl    a,#3
        jnz    mmk
        inc    2bh
        mov    a,2bh
        xrl    a,#3
        jnz    mvc 
        mov    2bh,#1
        sjmp   mmk
        ret
mvc:    mov    40h,2bh
        mov    41h,21h
        ret
mmk:    mov    40h,#11
        mov    41h,#11
        mov    0fh,#0
        mov    2ah,#0
        call   set1302t
        ret
;---------------------
k3:     mov    a,2ah
        cjne   a,#2,sxz2
        inc    22h
        mov    a,22h
        xrl    a,#51
        jnz    bnk2
        mov    22h,#1
bnk2:   mov    40h,22h
sxz2:   ret
;-----------  
k4:     mov    a,2ah
        cjne   a,#2,sxz3
        dec    22h
        mov    a,22h
        xrl    a,#0
        jnz    bnk3
        mov    22h,#50
bnk3:   mov    40h,22h
sxz3:   ret
;------------------------------
k5:     mov    a,2ah
        cjne   a,#1,sxz5
        sjmp   sxz6
sxz5:   cjne   a,#2,sxz7
        sjmp   hyo
sxz7:   cjne   a,#3,sxz1
        mov    a,2bh
;--------
        cjne   a,#1,hyo1
        inc    20h
        mov    a,20h
        xrl    a,#10
        jnz    asx 
        mov    20h,#1
asx:    mov    40h,2bh
        mov    41h,20h
        ret
hyo1:   cjne   a,#2,sxz1
        inc    21h
        mov    a,21h
        xrl    a,#10
        jnz    asx1
        mov    21h,#1
asx1:   mov    40h,2bh
        mov    41h,21h
        ret

hyo:    inc    23h
        mov    a,23h
        xrl    a,#100
        jnz    bnk5
        mov    23h,#1
bnk5:   mov    41h,23h
        ret
;-------------
sxz6:   inc    42h
        mov    a,42h
        xrl    a,#4
        jnz    bnk
        mov    42h,#1
bnk:    mov    40h,#0
        mov    41h,42h
sxz1:   ret
;---------------------------------
k6:     mov    a,2ah
        cjne   a,#1,ssxa
        sjmp   ssxb
ssxa:   cjne   a,#2,pot
        sjmp   pot1
pot:    cjne   a,#3,sxx1
        mov    a,2bh
        cjne   a,#1,pit1
        dec    20h
        mov    a,20h
        xrl    a,#0
        jnz    pit2
        mov    20h,#9
pit2:   mov    41h,20h
        sjmp   sxx1

pit1:   cjne   a,#2,sxx1
        dec    21h
        mov    a,21h
        xrl    a,#0
        jnz    pit3
        mov    21h,#9
pit3:   mov    41h,21h
        sjmp   sxx1
 ;---------
pot1:   dec    23h
        mov    a,23h
        xrl    a,#0
        jnz    bxk
        mov    23h,#99
bxk:    mov    41h,23h
        ajmp   pp
;-----------
ssxb:   dec    42h
        mov    a,42h
        xrl    a,#0
        jnz    bnk1
        mov    42h,#3
bnk1:   mov    40h,#0
        mov    41h,42h
sxx1:   ajmp   pp
;-----------------------
sm:     mov    a,40h
        mov    b,#10
        div    ab
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    10h,a
        mov    a,b
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    11h,a

        mov    a,41h
        mov    b,#10
        div    ab
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    12h,a
        mov    a,b
        mov    dptr,#tab
        movc   a,@a+dptr
        mov    13h,a
        ret
;---------
smx:    mov    a,29h
        jnz    gg
        mov    a,p2
        anl    a,#0f8h
        orl    a,15h
        mov    p2,a
        mov    p0,@r1
        dec    15h
        inc    r1
        mov    a,15h
        xrl    a,#0
        jnz    kk
        mov    29h,#88h
        sjmp   kk
;----------
gg:     mov    a,p2
        anl    a,#0f8h
        orl    a,#07
        mov    p2,a
        mov    14h,p1
        mov    c,p3.2
        mov    27h.1,c
        mov    29h,#0
        mov    15h,#5
        mov    r1,#0fh
kk:     ret
;-------------------------
time1:  push     acc
        push     psw
        push     dph
        push     dpl
        mov      th0,#0f4h
        mov      tl0,#48h
        
        call     sm
        call     smx
        
        djnz     r4,looph
        mov      r4,#130
        clr      p3.6
        setb     p3.6
        mov      a,2dh
        xrl      a,#88h
        jnz      looph
        cpl      p2.4

looph:  pop      dpl
        pop      dph
        pop      psw
        pop      acc  
        reti
;----------------------
ys:    mov  60h,#10
lp2:   mov  61h,#200
lp1:   mov  62h,#7dh
lp0:   nop
       nop
       djnz  62h,lp0
       djnz  61h,lp1
       djnz  60h,lp2
       ret
ys1:   mov  60h,#5
gp2:   mov  61h,#200
gp1:   mov  62h,#7dh
gp0:   nop
       nop
       djnz  62h,gp0
       djnz  61h,gp1
       djnz  60h,gp2
       ret
ys2:   mov   60h,#10h
kn2:   mov   61h,#10h
kn1:   nop 
       djnz  61h,kn1
       djnz  60h,kn2
       ret
tab:    db  3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh
        db  40h
       end



       

       
       
       

       






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -