Advertisement
Inverth

lab3-asm-v2

Nov 6th, 2020
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         ; =-------------------------
  2.         ; this's my task:
  3.         ; =-------------------------
  4.         ; f = !Y * Z + !X
  5.         ; =-------------------------
  6.         ; 1200 : 400 : INT0 : T/C1
  7.         ; =-------------------------
  8.  
  9.         ORG     00h
  10.         AJMP    START
  11.         ORG     03h
  12.         AJMP    IINT0
  13.         ORG     1Bh
  14.         AJMP    ITC1
  15.         ORG     30h
  16.  
  17. ; there i'll set up my external memory.
  18. START:
  19.         MOV     DPTR,   #10h
  20.         MOV     A,      #00000000b
  21.         MOVX    @DPTR,  A
  22.         INC     DPTR
  23.        
  24.         MOV     A,      #00000001b
  25.         MOVX    @DPTR,  A
  26.         INC     DPTR
  27.        
  28.         MOV     A,      #00000010b
  29.         MOVX    @DPTR,  A
  30.         INC     DPTR
  31.        
  32.         MOV     A,      #00000011b
  33.         MOVX    @DPTR,  A
  34.         INC     DPTR
  35.        
  36.         MOV     A,      #00000100b
  37.         MOVX    @DPTR,  A
  38.         INC     DPTR
  39.        
  40.         MOV     A,      #00000101b
  41.         MOVX    @DPTR,  A
  42.         INC     DPTR
  43.        
  44.         MOV     A,      #00000110b
  45.         MOVX    @DPTR,  A
  46.         INC     DPTR
  47.        
  48.         MOV     A,      #00000111b
  49.         MOVX    @DPTR,  A
  50.        
  51.         ; Some setups for interruptions
  52.        
  53.         MOV     IE,     #00001001b
  54.         MOV     TCON,   #01000001b
  55.         MOV     TMOD,   #01100000b
  56.        
  57.         MOV     TL1,    #11111111b
  58.         MOV     TH1,    #11111111b
  59.        
  60.         MOV     R0,     #10h
  61.         MOV     R1,     #008d
  62.         MOV     R2,     #006d
  63.         MOV     R3,     #006d
  64.         MOV     DPL,    R0
  65.        
  66.         MOV     P1,     #00000000b
  67.         MOV     P3,     #00100100b
  68.        
  69.         SETB    EA
  70.        
  71.         ; end of memory setups
  72.  
  73. RESTART:
  74.         MOV     DPTR,   #10h
  75.         MOV     R1,     #008d
  76.  
  77. LOOP:
  78.         MOVX    A,      @DPTR
  79.         MOV     20H,    A
  80.  
  81.         ACALL   FFUNC
  82.         ACALL   FSEND
  83.        
  84.         INC     DPTR
  85.         MOV     R2,     #006d
  86.         MOV     R3,     #006d
  87.        
  88.         ACALL   FSLEEP
  89.        
  90.         DJNZ    R1,     LOOP
  91.        
  92.         AJMP    RESTART
  93.  
  94.  
  95. FSEND:
  96.         MOV     P1,     20h
  97.  
  98.         MOV     R6,     #10d
  99.     FSL2:
  100.         MOV     R5,     #100d
  101.     FSL1:
  102.         MOV     R4,     #200d
  103.  
  104.         DJNZ    R4,     $
  105.         DJNZ    R5,     FSL1
  106.         DJNZ    R6,     FSL2
  107.         NOP
  108.        
  109.         MOV     P1,     #00000000b
  110.        
  111.         RET
  112.        
  113.  
  114. FFUNC:
  115.         MOV     C,      01
  116.         CPL     C
  117.         ANL     C,      00
  118.         ORL     C,      /02
  119.         MOV     03,     C
  120.        
  121.         XRL     A,      20H
  122.         ORL     20h,    A
  123.  
  124.         RET
  125.  
  126.  
  127. FSLEEP:
  128.         MOV     R6,     #20d
  129.     FSLL2:
  130.         MOV     R5,     #100d
  131.     FSLL1:
  132.         MOV     R4,     #195d
  133.         MOV     R7,     #4
  134.  
  135.         DJNZ    R4,     $
  136.         DJNZ    R7,     $
  137.         DJNZ    R5,     FSLL1
  138.         DJNZ    R6,     FSLL2
  139.         NOP
  140.        
  141.         RET
  142.  
  143.  
  144. IINT0:
  145.         DJNZ    R2,     OUT0
  146.         CLR     IE.0
  147.     OUT0:
  148.         MOVX    A,      @DPTR
  149.         MOV     20H,    A
  150.         CLR     03
  151.         MOV     A,      20H
  152.         MOVX    @DPTR,  A
  153.        
  154.  
  155.         RETI
  156.  
  157.  
  158. ITC1:  
  159.         DJNZ    R3,     OUT1
  160.         CLR     IE.3
  161.     OUT1:
  162.         MOVX    A,      @DPTR
  163.         MOV     20H,    A
  164.         SETB    03
  165.         MOV     A,      20H
  166.         MOVX    @DPTR,  A
  167.        
  168.         RETI
  169.  
  170. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement