;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 Button equ p1 ;---------------------- ;Set the initiation address which the program runing ;---------------------- org 0 ajmp main ;----------------------- Cycle: mov a,#low(Tables) add a,r1 mov dpl,a clr a addc a,#high(Tables) mov dph,a clr a movc a,@a+dptr mov dpl,a ;---------------------- clr a movc a,@a+dptr ;Get the count of data in table mov r0,a inc dptr ;---------------------- Loop: mov a,button ;buttion is unable cpl a jz ExitCycle clr a movc a,@a+dptr mov Ledprt,a acall delay inc dptr djnz r0,Loop ExitCycle: ret ;----------------------- ;----------------------- ;delay sub delay: mov r5,#50 delay1: mov r6,#100 DELAY2: mov r7,#10 djnz r7,$ djnz r6,delay2 djnz r5,delay1 ret ;----------------------- Tables: dw Table1,Table2,Table3,Table4,0 ;----------------------- 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 Ledprt,#11111111B mov r2,#0 mov r3,#01111111b mov SegDisplay,#00H ;Initiate the SegDisplay ToNext: cjne r2,#5,ToNext1 ajmp Main ToNext1: inc r2 ;Button Number mov a,r3 rl a mov r3,a cjne a,button,ToNext ;Check whether the button is enable or not mov SegDisplay,r2 ;button is enable,Show on the SegDisplay mov a,r2 rl a clr c subb a,#1 ;Location in the Tables mov r1,a mov a,r3 cjne a,button,main acall Cycle ajmp Main ;----------------------- end ;-------------------------------------------------------------