;This program will show you cycle glitter between 8 led lamps
; maker:Chen Weiwu
; date:2012-11-08
; version:1.0.0
;————————————————————-
;Define
Ledprt equ p0
SegDisplay equ p2
L1 equ 30h
l3 equ 32h
button1 equ p1.0
button2 equ p1.2
button3 equ p1.4
button4 equ p1.6
;———————-
;Set the initiation address which the program runing
;———————-
org 0
ajmp main
;———————-
Pattern1:
mov dptr,#Table1
acall Cycle
jnb button1,Pattern1 ;Button is enable
mov Ledprt,#11111111B ;Button is unable
ret
;———————–
Pattern2:
mov dptr,#Table2
acall Cycle
jnb button2,Pattern2 ;Button is enable
mov Ledprt,#11111111B ;Button is unable
ret
;———————–
Pattern3:
mov dptr,#Table3
acall Cycle
jnb button3,Pattern3 ;Button is enable
mov Ledprt,#11111111B ;Button is unable
ret
;———————–
Pattern4:
mov dptr,#Table4
acall Cycle
jnb button4,Pattern4 ;Button is enable
mov Ledprt,#11111111B ;Button is unable
ret
;———————–
Cycle:
;———————-
clr a
movc a,@a+dptr
mov r0,a
inc dptr
;———————-
Loop:
clr a
movc a,@a+dptr
mov Ledprt,a
acall delay
inc dptr
djnz r0,Loop
ret
;———————–
;———————–
;delay section
delay: mov r5,#50
delay1: mov r6,#100
DELAY2: mov r7,#10
djnz r7,$
djnz r6,delay2
djnz r5,delay1
ret
;———————–
Table1: db Table2-$-1
db 11111110b
db 11111101b
db 11111011b
db 11110111b
db 11101111b
db 11011111b
db 10111111b
db 01111111b
Table2: db Table3-$-1
db 01111110b
db 10111101b
db 11011011b
db 11100111b
db 11011011b
db 10111101b
Table3: db Table4-$-1
db 01010101b
db 00000000b
db 10101010b
db 00000000b
Table4: db TableEnd-$-1
db 11111110b
db 11111100b
db 11111000b
db 11110000b
db 11100000b
db 11000000b
db 10000000b
db 00000000b
db 00000001b
db 00000011b
db 00001111b
db 00011111b
db 00111111b
db 01111111b
db 11111111b
TableEnd:
;———————–
main: mov SegDisplay,#00H
jb button1,To2
mov SegDisplay,#01H
Acall Pattern1
To2:
jb button2,To3
mov SegDisplay,#02H
Acall Pattern2
To3:
jb button3,To4
mov SegDisplay,#03H
Acall Pattern3
To4:
jb button4,main
mov SegDisplay,#04H
Acall Pattern4
ajmp Main
;———————–
end
;————————————————————-