Advertisement
Guest User

Untitled

a guest
Dec 30th, 2019
266
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. org 0
  2.     start:
  3.     call clear
  4.     clr p3.2
  5.     mov p0, #0
  6.     mov p1, #255
  7.     jnb p3.0, zero
  8.     jmp one
  9.    
  10.     zero:
  11.     jnb p3.1, task_1
  12.     jmp task_3
  13.    
  14.     one:
  15.     jnb p3.1, task_2
  16.     jmp task_4
  17.    
  18.     Task_1:
  19.         call clear
  20.        
  21.         mov a, #12
  22.         mov b, p1
  23.         subb a,b
  24.         mov p3.2, c
  25.         mov r6, a
  26.         mov a, #5
  27.         mul ab
  28.         mov r2, b
  29.         mov r3, a
  30.         mov a, r6
  31.         mov b, r3
  32.         mul ab
  33.         mov r4, b
  34.         mov r5, a
  35.         mov a, r6
  36.         mov b, r2
  37.         mul ab
  38.         mov r6, b
  39.         mov r7, a
  40.         mov a, r4
  41.         mov b, r7
  42.         add a, b
  43.         mov r0, #10h
  44.         mov b, r6
  45.         mov @r0, b
  46.         inc r0
  47.         mov @r0, a
  48.         inc r0
  49.         mov a, r5
  50.         mov @r0, a
  51.         mov p0, a
  52.         call delay
  53.         call clear
  54.         jmp start
  55.    
  56.     Task_2:
  57.         mov r0, #1
  58.         mov a, #0  
  59.         mov p1, #0
  60.         mov p0, #0
  61.        
  62.         display_2:
  63.             mov b, #2
  64.             mov p2, r0
  65.             add a,r0
  66.             mov r1, a
  67.             div ab
  68.             mov r2, b
  69.             mov a, r1
  70.             cjne r2, #1, even_2
  71.            
  72.             mov p1, a
  73.            
  74.             jmp next_2
  75.             even_2:        
  76.             mov p0, a
  77.            
  78.             next_2:
  79.                 jb p3.1, start
  80.                 jnb p3.0, start
  81.                 call delay
  82.                 call delay
  83.                 inc r0
  84.                
  85.                 cjne r0, #23, display_2
  86.             jmp start
  87.            
  88.     Task_3:
  89.    
  90.     jb p3.0, intermediate_1
  91.     jnb p3.1, intermediate_1
  92.     //mov p0, #0
  93.     //MOV P1,#0FFH  ;IC PROTECTION
  94.     CALL TIME
  95.     MOV A,P1
  96.     MOV B,#16D
  97.     DIV AB
  98.     MOV R1,A ; UPPER NIBBLE  R
  99.     MOV R2,B; LOWER NIBBLE   N
  100.  
  101.     XCH A,B
  102.     SUBB A,B ;N-R
  103.     //call clear
  104.     clr p3.2
  105.     JC RBIG
  106.     JMP N1
  107.     RBIG:
  108.     jb p3.0, intermediate_1
  109.     jnb p3.1, intermediate_1
  110.     SETB P3.2
  111.     JMP task_3  ;IF R IS BIG P3.2 HIGH KRNI HA
  112.    
  113.     N1:
  114.     clr p3.2
  115.     CJNE R2,#01H,N2
  116.     MOV DPTR,#T1C
  117.     MOV A,R1
  118.     MOVC A,@A+DPTR
  119.     CALL TIME   ;TIMEDELAY SUBROUTINE
  120.     MOV P0,A
  121.     MOV P2,#00H
  122.     jb p3.0, intermediate_1
  123.     jnb p3.1, intermediate_1
  124.     JMP task_3
  125.    
  126.     N2:
  127.     clr p3.2
  128.     CJNE R2,#02H,N3
  129.     MOV DPTR,#T2C
  130.     MOV A,R1
  131.     MOVC A,@A+DPTR
  132.     CALL TIME  ;TIMEDELAY SUBROUTINE
  133.     MOV P0,A
  134.     MOV P2,#00H
  135.     jb p3.0, intermediate_1
  136.     jnb p3.1, intermediate_1
  137.     JMP task_3
  138.    
  139.     N3:
  140.     clr p3.2
  141.     CJNE R2,#03,N4
  142.     MOV DPTR,#T3C
  143.     MOV A,R1
  144.     MOVC A,@A+DPTR
  145.     CALL TIME  ;TIMEDELAY SUBROUTINE
  146.     MOV P0,A
  147.     MOV P2,#00H
  148.     jb p3.0, intermediate_1
  149.     jnb p3.1, intermediate_1
  150.     JMP task_3
  151.    
  152.     intermediate_1:
  153.     jmp start
  154.    
  155.     N4:
  156.     clr p3.2
  157.     CJNE R2,#04H,N5
  158.     MOV DPTR,#T4C
  159.     MOV A,R1
  160.     MOVC A,@A+DPTR
  161.     CALL TIME   ;TIMEDELAY SUBROUTINE
  162.     MOV P0,A
  163.     MOV P2,#00H
  164.     jb p3.0, intermediate
  165.     jnb p3.1, intermediate
  166.     JMP task_3
  167.    
  168.     N5:
  169.     clr p3.2
  170.     CJNE R2,#05H,N6
  171.     MOV DPTR,#T5C
  172.     MOV A,R1
  173.     MOVC A,@A+DPTR
  174.     CALL TIME   ;TIMEDELAY SUBROUTINE
  175.     MOV P0,A
  176.     MOV P2,#00H
  177.     jb p3.0, intermediate
  178.     jnb p3.1, intermediate
  179.     JMP task_3
  180.    
  181.     N6:
  182.     clr p3.2
  183.     CJNE R2,#06H,N7
  184.     MOV DPTR,#T6C
  185.     MOV A,R1
  186.     MOVC A,@A+DPTR
  187.     CALL TIME    ;TIMEDELAY SUBROUTINE
  188.     MOV P0,A
  189.     MOV P2,#00H
  190.     jb p3.0, intermediate
  191.     jnb p3.1, intermediate
  192.     JMP task_3
  193.    
  194.     N7:
  195.     clr p3.2
  196.     CJNE R2,#07H,N8
  197.     MOV DPTR,#T7C
  198.     MOV A,R1
  199.     MOVC A,@A+DPTR
  200.     CALL TIME    ;TIMEDELAY SUBROUTINE
  201.     MOV P0,A
  202.     MOV P2,#00H
  203.     jb p3.0, intermediate
  204.     jnb p3.1, intermediate
  205.     JMP task_3
  206.    
  207.     N8:
  208.     clr p3.2
  209.     CJNE R2,#08H,N9
  210.     MOV DPTR,#T8C
  211.     MOV A,R1
  212.     MOVC A,@A+DPTR
  213.     CALL TIME    ;TIMEDELAY SUBROUTINE
  214.     MOV P0,A
  215.     MOV P2,#00H
  216.     jb p3.0, intermediate
  217.     jnb p3.1, intermediate
  218.     JMP task_3
  219.    
  220.     intermediate:
  221.     jmp start
  222.    
  223.     N9:
  224.     clr p3.2
  225.     CJNE R2,#09H,N10
  226.     MOV DPTR,#T9C
  227.     MOV A,R1
  228.     MOVC A,@A+DPTR
  229.     CALL TIME     ;TIMEDELAY SUBROUTINE
  230.     MOV P0,A
  231.     MOV P2,#00H
  232.     jb p3.0, intermediate
  233.     jnb p3.1, intermediate
  234.     JMP task_3
  235.    
  236.     N10:
  237.     clr p3.2
  238.     CJNE R2,#0AH,N11
  239.     MOV DPTR,#T10C
  240.     MOV A,R1
  241.     MOVC A,@A+DPTR
  242.     CALL TIME     ;TIMEDELAY SUBROUTINE
  243.     MOV P0,A
  244.     MOV P2,#00H
  245.     jb p3.0, intermediate
  246.     jnb p3.1, intermediate
  247.     JMP task_3
  248.    
  249.     /*N11:
  250.     CJNE R2,#11H,EXIT
  251.     MOV DPTR,#T11C
  252.     MOV A,R1
  253.     MOVC A,@A+DPTR
  254.     ;TIMEDELAY SUBROUTINE
  255.     MOV P0,A*/
  256.    
  257.     N11:
  258.     clr p3.2
  259.     jb p3.0, intermediate
  260.     jnb p3.1, intermediate
  261.     CJNE R2,#0BH,LONG  ;R2=N
  262.    
  263.     DEC R2
  264.    
  265.     MOV DPTR,#T10C
  266.     MOV A,R1
  267.     MOVC A,@A+DPTR
  268.     MOV R3,A ;N-1 C R
  269.     MOV P0,R3
  270.    
  271.     DEC R1
  272.    
  273.     MOV A,R1
  274.     MOVC A,@A+DPTR
  275.     MOV R4,A ;N-1 C R-1
  276.     MOV P0,R4
  277.    
  278.     CLR C
  279.     MOV A,R3                ;USING nCr = n-1Cr + n-1Cr-1
  280.     MOV B,R4
  281.     ADD A,B
  282.     CALL TIME
  283.     MOV P0,A
  284.     MOV A,#00H
  285.     ADDC A,#00H
  286.     MOV P2,A
  287.     jb p3.0, intermediate
  288.     jnb p3.1, intermediate
  289.     JMP task_3
  290.    
  291.     LONG:
  292.     clr p3.2
  293.     jb p3.0, intermediate
  294.     jnb p3.1, intermediate
  295.     JMP task_3
  296.    
  297.     T1C: DB 1,1
  298.     T2C: DB 1,2,1
  299.     T3C: DB 1,3,3,1
  300.     T4C: DB 1,4,6,4,1
  301.     T5C: DB 1,5,10,10,5,1
  302.     T6C: DB 1,6,15,20,15,6,1
  303.     T7C: DB 1,7,21,35,35,21,7,1
  304.     T8C: DB 1,8,28,56,70,56,28,8,1
  305.     T9C: DB 1,9,36,84,126,126,84,36,9,1
  306.     T10C: DB 1,10,45,120,210,252,210,120,45,10,1,0
  307.     ;T11C: DW 1,11,55,165,330,462,462,330,165,55,11,1
  308.     call clear
  309.     jmp start
  310.    
  311.    
  312.    
  313.  
  314.  
  315.  
  316.     Task_4:
  317.     ;call clear
  318.         ;mov r7, #36
  319.         mov tmod, #00100010b
  320.         mov p2, #0
  321.        
  322.         timer_4:
  323.             jnb p3.0, intermediate_2
  324.             jnb p3.1, intermediate_2
  325.             mov a, #255
  326.             mov b, p1
  327.             subb a,b
  328.            
  329.             mov th0, a
  330.             mov th1, b
  331.            
  332.             high_4:
  333.                 setb tr0
  334.                 mov p2, #255
  335.                 jnb tf0, $
  336.                    
  337.             low_4:
  338.                 setb tr1
  339.                 mov p2, #0
  340.                 jnb tf1, $
  341.            
  342.             clr tr0
  343.             clr tr1
  344.             clr tf0
  345.             clr tf1
  346.             jmp timer_4
  347.             intermediate_2:
  348.             jmp start
  349.             ;call clear
  350.             //jmp start
  351.             ;djnz r7, timer_4
  352.             ;mov r7, #36
  353.            
  354.     TIME:
  355.         mov r7, #21
  356.         mov tmod, #1
  357.         mov th0, #0h
  358.         mov tl0, #0h
  359.         onepoint5:
  360.         setb tr0
  361.         jnb tf0, $
  362.         clr tr0
  363.         clr tf0
  364.         djnz r7, onepoint5
  365.         ret
  366.    
  367.     delay:
  368.         mov r7, #14
  369.         mov tmod, #1
  370.         mov th0, #0h
  371.         mov tl0, #0h
  372.         onesec:
  373.         setb tr0
  374.         jnb tf0, $
  375.         clr tr0
  376.         clr tf0
  377.         djnz r7, onesec
  378.         ret
  379.    
  380.     clear:
  381.         mov a, #0
  382.         mov b, #0
  383.         //mov p0, #0
  384.         //mov p1, #0
  385.         //mov p2, #0
  386.         //mov p3, #0
  387.         clr c
  388.         mov r0, #0
  389.         mov r1, #0
  390.         mov r2, #0
  391.         mov r3, #0
  392.         mov r4, #0
  393.         mov r5, #0
  394.         mov r6, #0
  395.         mov r7, #0
  396.         ret
  397.    
  398.            
  399.     ending:
  400.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement