Inverth

ivan-lab-5

Dec 24th, 2020 (edited)
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.         ORG   0h
  2.         AJMP  START
  3.         ORG   1Bh
  4.         AJMP  TIMER
  5.         ORG   23h
  6.         AJMP  SEND
  7.         ORG   30h
  8.  
  9.  
  10. START:
  11.         MOV     DPTR,   #10h
  12.         MOV     A,      #00000000b
  13.         MOVX    @DPTR,  A
  14.         INC     DPTR
  15.        
  16.         MOV     A,      #00000001b
  17.         MOVX    @DPTR,  A
  18.         INC     DPTR
  19.        
  20.         MOV     A,      #00000010b
  21.         MOVX    @DPTR,  A
  22.         INC     DPTR
  23.        
  24.         MOV     A,      #00000011b
  25.         MOVX    @DPTR,  A
  26.         INC     DPTR
  27.        
  28.         MOV     A,      #00000100b
  29.         MOVX    @DPTR,  A
  30.         INC     DPTR
  31.        
  32.         MOV     A,      #00000101b
  33.         MOVX    @DPTR,  A
  34.         INC     DPTR
  35.        
  36.         MOV     A,      #00000110b
  37.         MOVX    @DPTR,  A
  38.         INC     DPTR
  39.        
  40.         MOV     A,      #00000111b
  41.         MOVX    @DPTR,  A
  42.        
  43.         MOV     SCON,   #10010000b
  44.         MOV     PCON,   #10000000b
  45.  
  46.         MOV     IE,     #10011000b
  47.  
  48.  
  49. RESTART:
  50.         MOV     DPTR,   #10h
  51.         MOV     R0,     #07d
  52.  
  53.  
  54. LOOP:
  55.         CLR     ES
  56.  
  57.         MOVX    A,      @DPTR
  58.         INC     DPTR
  59.  
  60.         ANL     A,      #0Fh
  61.         ACALL   FUNC
  62.  
  63.         MOV     TMOD,   #00010000b  
  64.         MOV     TCON,   #01000001b
  65.         MOV     R6,     #20d
  66.        
  67.         CLR     18
  68.         JNB     18,     $
  69.  
  70.         MOV     TCON,   #00000000b
  71.         SETB    ES
  72.         SETB    TI
  73.         ;CLR    TI
  74.         DJNZ    R0,     LOOP
  75.         JMP     RESTART
  76.  
  77.  
  78. SEND:
  79.         MOV     SBUF,   A
  80.         CLR     TI
  81.         RETI
  82.  
  83.  
  84. FUNC:
  85.         MOV     20h,    A
  86.         MOV     C,      01
  87.         CPL     C
  88.         ANL     C,      /00
  89.         ORL     C,      02
  90.         MOV     03,     C
  91.  
  92.         ;here is the block of code which will calculate error bit of function
  93.         XRL     A,      20H ; this line of code create a bit of error
  94.         MOV     25h,    A   ; we want to put bit of error to 07 bit of 20h byte, but fothis purpose we need another byte to hold it while we will transfer it
  95.         MOV     C,      43  ; transfering error bit
  96.         MOV     07,     C
  97.  
  98.         ; so, we have to put calclated function back to Accamulator
  99.         MOV     A,      20H
  100.         RET
  101.  
  102.  
  103. TIMER: 
  104.         DJNZ    R6,     RESTART_TIMER
  105.         SETB    18
  106.         RETI
  107.  
  108.  
  109. RESTART_TIMER:
  110.         MOV     TH1,    #00111100b ;15536
  111.         MOV     TL1,    #10110000b ;15536
  112.         RETI
  113. END
Add Comment
Please, Sign In to add comment