Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- org 0
- start:
- call clear
- clr p3.2
- mov p0, #0
- mov p1, #255
- jnb p3.0, zero
- jmp one
- zero:
- jnb p3.1, task_1
- jmp task_3
- one:
- jnb p3.1, task_2
- jmp task_4
- Task_1:
- call clear
- mov a, #12
- mov b, p1
- subb a,b
- mov p3.2, c
- mov r6, a
- mov a, #5
- mul ab
- mov r2, b
- mov r3, a
- mov a, r6
- mov b, r3
- mul ab
- mov r4, b
- mov r5, a
- mov a, r6
- mov b, r2
- mul ab
- mov r6, b
- mov r7, a
- mov a, r4
- mov b, r7
- add a, b
- mov r0, #10h
- mov b, r6
- mov @r0, b
- inc r0
- mov @r0, a
- inc r0
- mov a, r5
- mov @r0, a
- mov p0, a
- call delay
- call clear
- jmp start
- Task_2:
- mov r0, #1
- mov a, #0
- mov p1, #0
- mov p0, #0
- display_2:
- mov b, #2
- mov p2, r0
- add a,r0
- mov r1, a
- div ab
- mov r2, b
- mov a, r1
- cjne r2, #1, even_2
- mov p1, a
- jmp next_2
- even_2:
- mov p0, a
- next_2:
- jb p3.1, start
- jnb p3.0, start
- call delay
- call delay
- inc r0
- cjne r0, #23, display_2
- jmp start
- Task_3:
- jb p3.0, intermediate_1
- jnb p3.1, intermediate_1
- //mov p0, #0
- //MOV P1,#0FFH ;IC PROTECTION
- CALL TIME
- MOV A,P1
- MOV B,#16D
- DIV AB
- MOV R1,A ; UPPER NIBBLE R
- MOV R2,B; LOWER NIBBLE N
- XCH A,B
- SUBB A,B ;N-R
- //call clear
- clr p3.2
- JC RBIG
- JMP N1
- RBIG:
- jb p3.0, intermediate_1
- jnb p3.1, intermediate_1
- SETB P3.2
- JMP task_3 ;IF R IS BIG P3.2 HIGH KRNI HA
- N1:
- clr p3.2
- CJNE R2,#01H,N2
- MOV DPTR,#T1C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate_1
- jnb p3.1, intermediate_1
- JMP task_3
- N2:
- clr p3.2
- CJNE R2,#02H,N3
- MOV DPTR,#T2C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate_1
- jnb p3.1, intermediate_1
- JMP task_3
- N3:
- clr p3.2
- CJNE R2,#03,N4
- MOV DPTR,#T3C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate_1
- jnb p3.1, intermediate_1
- JMP task_3
- intermediate_1:
- jmp start
- N4:
- clr p3.2
- CJNE R2,#04H,N5
- MOV DPTR,#T4C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- N5:
- clr p3.2
- CJNE R2,#05H,N6
- MOV DPTR,#T5C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- N6:
- clr p3.2
- CJNE R2,#06H,N7
- MOV DPTR,#T6C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- N7:
- clr p3.2
- CJNE R2,#07H,N8
- MOV DPTR,#T7C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- N8:
- clr p3.2
- CJNE R2,#08H,N9
- MOV DPTR,#T8C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- intermediate:
- jmp start
- N9:
- clr p3.2
- CJNE R2,#09H,N10
- MOV DPTR,#T9C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- N10:
- clr p3.2
- CJNE R2,#0AH,N11
- MOV DPTR,#T10C
- MOV A,R1
- MOVC A,@A+DPTR
- CALL TIME ;TIMEDELAY SUBROUTINE
- MOV P0,A
- MOV P2,#00H
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- /*N11:
- CJNE R2,#11H,EXIT
- MOV DPTR,#T11C
- MOV A,R1
- MOVC A,@A+DPTR
- ;TIMEDELAY SUBROUTINE
- MOV P0,A*/
- N11:
- clr p3.2
- jb p3.0, intermediate
- jnb p3.1, intermediate
- CJNE R2,#0BH,LONG ;R2=N
- DEC R2
- MOV DPTR,#T10C
- MOV A,R1
- MOVC A,@A+DPTR
- MOV R3,A ;N-1 C R
- MOV P0,R3
- DEC R1
- MOV A,R1
- MOVC A,@A+DPTR
- MOV R4,A ;N-1 C R-1
- MOV P0,R4
- CLR C
- MOV A,R3 ;USING nCr = n-1Cr + n-1Cr-1
- MOV B,R4
- ADD A,B
- CALL TIME
- MOV P0,A
- MOV A,#00H
- ADDC A,#00H
- MOV P2,A
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- LONG:
- clr p3.2
- jb p3.0, intermediate
- jnb p3.1, intermediate
- JMP task_3
- T1C: DB 1,1
- T2C: DB 1,2,1
- T3C: DB 1,3,3,1
- T4C: DB 1,4,6,4,1
- T5C: DB 1,5,10,10,5,1
- T6C: DB 1,6,15,20,15,6,1
- T7C: DB 1,7,21,35,35,21,7,1
- T8C: DB 1,8,28,56,70,56,28,8,1
- T9C: DB 1,9,36,84,126,126,84,36,9,1
- T10C: DB 1,10,45,120,210,252,210,120,45,10,1,0
- ;T11C: DW 1,11,55,165,330,462,462,330,165,55,11,1
- call clear
- jmp start
- Task_4:
- ;call clear
- ;mov r7, #36
- mov tmod, #00100010b
- mov p2, #0
- timer_4:
- jnb p3.0, intermediate_2
- jnb p3.1, intermediate_2
- mov a, #255
- mov b, p1
- subb a,b
- mov th0, a
- mov th1, b
- high_4:
- setb tr0
- mov p2, #255
- jnb tf0, $
- low_4:
- setb tr1
- mov p2, #0
- jnb tf1, $
- clr tr0
- clr tr1
- clr tf0
- clr tf1
- jmp timer_4
- intermediate_2:
- jmp start
- ;call clear
- //jmp start
- ;djnz r7, timer_4
- ;mov r7, #36
- TIME:
- mov r7, #21
- mov tmod, #1
- mov th0, #0h
- mov tl0, #0h
- onepoint5:
- setb tr0
- jnb tf0, $
- clr tr0
- clr tf0
- djnz r7, onepoint5
- ret
- delay:
- mov r7, #14
- mov tmod, #1
- mov th0, #0h
- mov tl0, #0h
- onesec:
- setb tr0
- jnb tf0, $
- clr tr0
- clr tf0
- djnz r7, onesec
- ret
- clear:
- mov a, #0
- mov b, #0
- //mov p0, #0
- //mov p1, #0
- //mov p2, #0
- //mov p3, #0
- clr c
- mov r0, #0
- mov r1, #0
- mov r2, #0
- mov r3, #0
- mov r4, #0
- mov r5, #0
- mov r6, #0
- mov r7, #0
- ret
- ending:
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement