?? 一.txt
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
key1 equ p1.0
key2 equ p1.1
key3 equ p1.2
key4 equ p1.3
key5 equ p1.4
key6 equ p1.5
key7 equ p1.6
key8 equ p1.7
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
org 0000h
sjmp main
org 0030h
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
main:
mov p0,#0ffh
mov p1,#0ffh
mov p2,#0ffh
mov p3,#0ffh
mov a,#0f7h
clr p2.7
key_up:
jb key3,key_down
call delay
jmp key_exit
call mov_up
key_down:
jb key4,key_left
call delay
call mov_down
jmp key_exit
key_left:
jb key2,key_right
call delay
call mov_left
jmp key_exit
key_right:
jb key6,key_exit
call delay
call mov_right
jmp key_exit
key_exit:
call num_display
jmp key_up
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov_up:
mov b,a
xrl a,#0dfh
jz up1
mov a,b
xrl a,#0efh
jz up2
mov a,b
xrl a,#0f1h
jz up3
mov a,b
xrl a,#0bfh
jz up4
mov a,b
xrl a,#0f7h
jz up5
mov a,b
xrl a,#0fdh
jz up6
mov a,b
xrl a,#0fbh
jz up7
up1:
mov a,#0efh
jmp mov_up_exit
up2:
mov a,#0dfh
jmp mov_up_exit
up3:
mov a,#0f7h
jmp mov_up_exit
up4:
mov a,#0f1h
jmp mov_up_exit
up5:
mov a,#0bfh
jmp mov_up_exit
up6:
mov a,#0fbh
jmp mov_up_exit
up7:
mov a,#0fdh
jmp mov_up_exit
mov_up_exit:
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov_down:
mov b,a
xrl a,#0dfh
jz down1
mov a,b
xrl a,#0efh
jz down2
mov a,b
xrl a,#0f1h
jz down3
mov a,b
xrl a,#0bfh
jz down4
mov a,b
xrl a,#0f7h
jz down5
mov a,b
xrl a,#0fdh
jz down6
mov a,b
xrl a,#0fbh
jz down7
down1:
mov a,#0efh
jmp mov_down_exit
down2:
mov a,#0dfh
jmp mov_down_exit
down3:
mov a,#0bfh
jmp mov_down_exit
down4:
mov a,#0f7h
jmp mov_down_exit
down5:
mov a,#0f1h
jmp mov_down_exit
down6:
mov a,#0fbh
jmp mov_down_exit
down7:
mov a,#0fdh
jmp mov_down_exit
mov_down_exit:
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov_left:
mov b,a
xrl a,#0fdh
jz left1
mov a,b
xrl a,0fbh
jz left2
mov a,b
xrl a,0f1h
jz left3
mov a,b
xrl a,0bfh
jz left3
mov a,b
xrl a,0f7h
jz left3
mov a,b
xrl a,0dfh
jz left4
mov a,b
xrl a,0efh
jz left5
left1:
mov a,#0dfh
jmp mov_left_exit
left2:
mov a,#0efh
jmp mov_left_exit
left3:
call changleft
mov a,b
jmp mov_left_exit
left4:
call changleft
mov a,0fdh
jmp mov_left_exit
left5:
call changleft
mov a,0fbh
jmp mov_left_exit
mov_left_exit:
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
mov_right:
mov b,a
xrl a,#0fdh
jz right1
mov a,b
xrl a,0fbh
jz right2
mov a,b
xrl a,0f1h
jz right3
mov a,b
xrl a,0bfh
jz right3
mov a,b
xrl a,0f7h
jz right3
mov a,b
xrl a,0dfh
jz right4
mov a,b
xrl a,0efh
jz right5
right1:
mov a,#0dfh
call changeright
jmp mov_right_exit
right2:
mov a,#0efh
call changeright
jmp mov_right_exit
right3:
call changeright
mov a,b
jmp mov_right_exit
right4:
mov a,0fdh
jmp mov_right_exit
right5:
mov a,0fbh
jmp mov_right_exit
mov_right_exit:
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
delay:
mov r7,#200
delay_loop:
mov r6,#200
djnz r6,$
mov r6,#200
djnz r6,$
djnz r7,delay_loop
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
num_display:
mov p0,a
call DELAY_DISP
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY_DISP:
mov R7,#10
DELAY_DISP_LOOP:
mov R6,#200
djnz R6,$
mov R6,#200
djnz R6,$
djnz R7,DELAY_DISP_LOOP
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
changleft:
jnb p2.7,light_left1
jnb p2.6,light_left2
jnb p2.5,light_left3
jnb p2.4,light_left4
light_left1:
clr p2.4
setb p2.7
jmp changleft_exit
light_left2:
setb p2.6
clr p2.7
jmp changleft_exit
light_left3:
setb p2.5
clr p2.6
jmp mov_left_exit
light_left4:
setb p2.4
clr p2.5
jmp changleft_exit
changleft_exit:
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
changeright:
jnb p2.7,light_left1
jnb p2.6,light_left2
jnb p2.5,light_left3
jnb p2.4,light_left4
light_right1:
clr p2.6
setb p2.7
jmp changleft_exit
light_right2:
setb p2.6
clr p2.5
jmp changleft_exit
light_right3:
setb p2.5
clr p2.4
jmp mov_left_exit
light_right4:
setb p2.4
clr p2.7
jmp changleft_exit
changright_exit:
ret
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -