Advertisement
Guest User

Untitled

a guest
Nov 4th, 2018
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <REG51F380.H>
  2.  
  3. DSEG AT 30H
  4.    
  5. STATE: DS 1
  6. NEXT_STATE: DS 1
  7. OP_1: DS 1
  8. OP_2: DS 1
  9. RESULT: DS 1
  10.    
  11.     S0 EQU 0
  12.     S1 EQU 1
  13.     S2 EQU 2
  14.     S3 EQU 3
  15.     S4 EQU 4
  16.     S5 EQU 5
  17.     S6 EQU 6
  18.     S7 EQU 7
  19.     K_LOAD EQU P0.7
  20.     K_SET EQU P0.6
  21.  
  22.  
  23.  
  24.  
  25. CSEG    AT 0H
  26.     LJMP CONFIG
  27. CSEG    AT  50H
  28.  
  29. CONFIG:
  30.     MOV PCA0MD, #0         
  31.     MOV P3MDOUT, #0FFH     
  32.     MOV P0MDIN,#0FFH       
  33.     MOV P2MDIN,#0FFH       
  34.     MOV P0MDOUT,#0H        
  35.     SETB P0.6
  36.     SETB P0.7
  37.     ORL XBR1, #40H
  38.  
  39.  
  40. MAIN:
  41.     MOV STATE,#S0
  42.     MOV NEXT_STATE,#S0
  43. READY:
  44.     MOV P2,#175
  45.     MOV OP_1, P1
  46.     JNB K_LOAD,READY2
  47.     JNB K_SET, MAINLOOP
  48.  
  49. READY2:
  50.     MOV OP_1, P3
  51.  
  52.    
  53. MAINLOOP:  
  54.     CALL FSM
  55.    
  56.  
  57.    
  58. SELECT:
  59.     JB K_LOAD,SELECT
  60. SELECT1:   
  61.     JNB K_LOAD,SELECT1
  62.     MOV STATE, NEXT_STATE
  63.     JMP MAINLOOP
  64.  
  65.  
  66. FSM:
  67.     MOV A, STATE
  68.     RL A
  69.     MOV DPTR,#SWITCHTABLE
  70.     JMP @A+DPTR
  71.    
  72. SWITCHTABLE:
  73.     AJMP STATE0
  74.     AJMP STATE1
  75.     AJMP STATE2
  76.     AJMP STATE3
  77.     AJMP STATE4
  78.     AJMP STATE5
  79.     AJMP STATE6
  80.     AJMP STATE7
  81. FIM_FSM:
  82.     RET
  83.  
  84.  
  85.  
  86. STATE0:
  87.     MOV P2, #136
  88.     MOV A, OP_1
  89.     ANL A, OP_2
  90.     MOV RESULT, A
  91.     MOV P3, A
  92.     MOV NEXT_STATE, #S1
  93.     JMP FIM_FSM
  94.    
  95. STATE1:
  96.     MOV P2, #192
  97.     MOV A, OP_1
  98.     ORL A, OP_2
  99.     MOV RESULT, A
  100.     MOV P3, A
  101.     MOV NEXT_STATE, #S2
  102.     JMP FIM_FSM
  103.    
  104. STATE2:
  105.     MOV P2, #171
  106.     MOV A, OP_1
  107.     CPL A
  108.     MOV RESULT, A
  109.     MOV P3, A
  110.     MOV NEXT_STATE, #S3
  111.     JMP FIM_FSM
  112.    
  113. STATE3:
  114.     MOV P2, #137
  115.     MOV A, OP_1
  116.     XRL A, OP_2
  117.     MOV RESULT, A
  118.     MOV P3, A
  119.     MOV NEXT_STATE, #S4
  120.     JMP FIM_FSM
  121.    
  122. STATE4:
  123.     MOV P2, #140
  124.     MOV A, OP_1
  125.     ADD A, OP_2
  126.     MOV RESULT, A
  127.     MOV P3, A
  128.     MOV NEXT_STATE, #S5
  129.     JMP FIM_FSM
  130.    
  131. STATE5:
  132.     MOV P2, #200
  133.     MOV A, OP_1
  134.     SUBB A, OP_2
  135.     MOV RESULT, A
  136.     MOV P3, A
  137.     MOV NEXT_STATE, #S6
  138.     JMP FIM_FSM
  139.    
  140. STATE6:
  141.     MOV P2, #199
  142.     MOV A, OP_1
  143.     RL A
  144.     MOV RESULT, A
  145.     MOV P3, A
  146.     MOV NEXT_STATE, #S7
  147.     JMP FIM_FSM
  148.    
  149. STATE7:
  150.     MOV P2, #12
  151.     MOV A, OP_1
  152.     RR A
  153.     MOV RESULT, A
  154.     MOV P3, A
  155.     MOV NEXT_STATE, #S0
  156.     JMP FIM_FSM
  157.  
  158. END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement