Hello, I am doing a project that requires 3 parts, and I have finished 2 parts. They were (1) getting two led's moving back and forth across the display & (2) Two led's that start at the center and each move to the end, one to the left and one to the right.
There's one more part that i'm just stuck, because the book does not say anything about generating random numbers/led, as well as instructor told us to look for it online. More specific, (3) Three led's moving randomly around the 8-bit display, but not necessarily connected.
I am using assembly language Atmel 89C51RD2 to do this. Here is my code if anyone wants to take a look and tinker it around. Any help on how to generate random 3 LED sequences.
There's one more part that i'm just stuck, because the book does not say anything about generating random numbers/led, as well as instructor told us to look for it online. More specific, (3) Three led's moving randomly around the 8-bit display, but not necessarily connected.
I am using assembly language Atmel 89C51RD2 to do this. Here is my code if anyone wants to take a look and tinker it around. Any help on how to generate random 3 LED sequences.
Rich (BB code):
ORG 000H
MOV P0, #0E7H
LJMP MAIN
ORG 0100H
MAIN:
MOV A, P0
;MOV R7, P0
ANL A, #11100000b
CJNE A, #20H, J0
LJMP PATERN1
J0: CJNE A, #40H, J1
LJMP PATERN2
J1: CJNE A, #60H, J2
LJMP PATERN3
J2: CJNE A, #80H, J3
LJMP PATERN4
J3: CJNE A, #0A0H, J4
LJMP PATERN5
J4: CJNE A, #0C0H, J5
LJMP PATERN6
J5: CJNE A, #0E0H, J6
LJMP PATERN7
J6: CJNE A, #00H, J7
LJMP PATERN8
J7: LJMP MAIN
PATERN1:
MOV P1, #0C0H
ACALL DELAY
MOV P1, #60H
ACALL DELAY
MOV P1, #30H
ACALL DELAY
MOV P1, #18H
ACALL DELAY
MOV P1, #0CH
ACALL DELAY
MOV P1, #06H
ACALL DELAY
MOV P1, #03H
ACALL DELAY
MOV P1, #06H
ACALL DELAY
MOV P1, #0CH
ACALL DELAY
MOV P1, #18H
ACALL DELAY
MOV P1, #30H
ACALL DELAY
MOV P1, #60H
ACALL DELAY
MOV P1, #0C0H
ACALL DELAY
LJMP MAIN
PATERN2:
MOV P1, #01H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #01H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #01H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
LJMP MAIN
PATERN3:
MOV P1, #18H
ACALL DELAY
MOV P1, #24H
ACALL DELAY
MOV P1, #42H
ACALL DELAY
MOV P1, #81H
ACALL DELAY
MOV P1, #42H
ACALL DELAY
MOV P1, #24H
ACALL DELAY
LJMP MAIN
PATERN4:
MOV P1, #00H
ACALL DELAY
MOV P1, #88H
ACALL DELAY
MOV P1, #44H
ACALL DELAY
MOV P1, #22H
ACALL DELAY
MOV P1, #11H
ACALL DELAY
MOV P1, #22H
ACALL DELAY
MOV P1, #44H
ACALL DELAY
MOV P1, #88H
ACALL DELAY
PATERN5:
MOV P1, #03H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #03H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #03H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
LJMP MAIN
PATERN6:
MOV P1, #07H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #07H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #07H
ACALL DELAY
MOV P1, #00H
ACALL DELAY
LJMP MAIN
PATERN7:
MOV P1, #0BH
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #0BH
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #0BH
ACALL DELAY
MOV P1, #00H
ACALL DELAY
LJMP MAIN
PATERN8:
MOV P1, #00H
ACALL DELAY
MOV P1, #0FFH
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #0FFH
ACALL DELAY
MOV P1, #00H
ACALL DELAY
MOV P1, #0FFH
ACALL DELAY
LJMP MAIN
DELAY :
MOV A, P0
ANL A, #00000111b
S0: CJNE A, #00H, S1
LJMP SELECT0
S1: CJNE A, #01H, S2
LJMP SELECT1
S2: CJNE A, #02H, S3
LJMP SELECT2
S3: CJNE A, #03H, S4
LJMP SELECT3
S4: CJNE A, #04H, S5
LJMP SELECT4
S5: CJNE A, #05H, S6
LJMP SELECT5
S6: CJNE A, #06H, S7
LJMP SELECT6
S7: ;CJNE A, #07H, S8
LJMP SELECT7
SELECT0 : MOV R1, #2
MOV R2, #1
SJMP SL2
SELECT1 : MOV R1, #3
MOV R2, #1
SJMP SL2
SELECT2 : MOV R1, #6
MOV R2, #1
SJMP SL2
SELECT3 : MOV R1, #10
MOV R2, #1
SJMP SL2
SELECT4 : MOV R1, #20
MOV R2, #1
SJMP SL2
SELECT5 : MOV R1, #200
MOV R2, #1
SJMP SL2
SELECT6 : MOV R2, #10
MOV R1, #200
SJMP SL3
SELECT7 : MOV R2, #100
MOV R1, #200
SJMP SL3
SL3 : MOV R1, #200
SL2 : MOV R0, #23
SL1 : DJNZ R0, SL1
DJNZ R1, SL2
DJNZ R2, SL3
RET
END