Advertisement
ithoran

qweqwe

Jun 1st, 2017
2,787
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 2.39 KB | None | 0 0
  1. ;Filename: Lab3.asm
  2. list p=16f870
  3. #include <p16f870.inc>
  4. __CONFIG   _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _HS_OSC & _WRT_ENABLE_ON & _LVP_OFF & _CPD_OFF ;ovo je za PIC16F870
  5. #define BANKA0 bcf 3,5
  6. #define BANKA1 bsf 3,5
  7.  CBLOCK 0X30
  8.     CIFRA1
  9.     CIFRA2
  10.     BROJAC
  11.     INDEKS
  12.     WREG_TEMP      
  13.     STATUS_TEMP    
  14.     PCLATH_TEMP    
  15.     FSR_TEMP       
  16.     ENDC
  17.  
  18.     ORG 0x0000
  19.     goto ResetCode
  20.     ORG 0x0004     
  21.     goto InterruptCode
  22.  
  23. ResetCode:
  24.     clrf    PCLATH     
  25.     goto    Main       
  26.  
  27. Main:
  28.     banksel ADCON1
  29.     movlw 0x06
  30.     movwf ADCON1
  31.     banksel PORTA
  32.     clrf PORTA
  33.     clrf PORTB
  34.    
  35.     banksel TRISA
  36.     clrf TRISA
  37.     clrf TRISB
  38.     clrf TRISC
  39.     bsf TRISB, 1
  40.  
  41.     movlw b'00000110';
  42.     movwf OPTION_REG
  43.     movlw b'10100000'
  44.     movwf INTCON
  45.     banksel TMR0
  46.     movlw b'11011001'
  47.     movwf TMR0
  48.  
  49.     clrf BROJAC
  50.     clrf INDEKS
  51.     clrf CIFRA1
  52.     clrf CIFRA2
  53.     banksel PORTB
  54.    
  55. delay:
  56.     clrf BROJAC
  57. delay2:
  58.     goto delay2
  59.    
  60. dekodiranje:
  61.     bsf STATUS,RP1
  62.     bcf STATUS,RP0
  63.     ;movf ADDR,W nama je vec cifra u W valjda?
  64.     movwf EEADR
  65.     bsf STATUS,RP0
  66.     bcf EECON1,EEPGD
  67.     bsf EECON1,RD
  68.     bcf STATUS,RP0
  69.     movf EEDATA,W
  70.     banksel PORTC
  71.     return
  72.    
  73. InterruptCode:
  74.     movwf   WREG_TEMP  
  75.     swapf   STATUS,W   
  76.     clrf    STATUS     
  77.     movwf   STATUS_TEMP
  78.     movf    PCLATH,W   
  79.     movwf   PCLATH_TEMP
  80.     clrf    PCLATH     
  81.     movf    FSR,W      
  82.     movwf   FSR_TEMP   
  83.  
  84.  
  85.     btfss INTCON, 2
  86.     goto EndInt
  87.     banksel TMR0
  88.     movlw b'11011001'
  89.     movwf TMR0
  90.     banksel PORTB
  91.     incf BROJAC, f
  92.     btfsc BROJAC, 2
  93.     goto proveraRB1
  94. vrati:
  95.     incf INDEKS, F
  96.     movf CIFRA1, W;
  97.     btfss INDEKS, 0
  98.     movf CIFRA2, W;
  99.  
  100.     call dekodiranje
  101.     movwf PORTC
  102.  
  103.     btfsc INDEKS, 0
  104.     goto cifra2l
  105.     bsf PORTA, 0
  106.     bcf PORTA, 1
  107.     goto kraj3
  108. cifra2l:
  109.     bcf PORTA, 0
  110.     bsf PORTA, 1
  111. kraj3:
  112.     bcf INTCON, T0IF
  113.     goto EndInt
  114.  
  115. proveraRB1:
  116.     clrf BROJAC
  117.     btfss PORTB, 1
  118.     goto vrati
  119.     goto odugovlaci
  120. nast1:
  121.     btfss CIFRA2, 3
  122.     goto nast2
  123.     btfss CIFRA2, 0
  124.     goto nast2
  125.     clrf CIFRA2
  126.     incf CIFRA1
  127. nast2:
  128.     incf CIFRA2
  129.     goto vrati
  130.    
  131. odugovlaci:
  132.     btfss PORTB, 1
  133.     goto nast1
  134.     goto odugovlaci
  135.  
  136. EndInt:
  137.     bcf 3,5    
  138.     movf    FSR_TEMP,W 
  139.     movwf   FSR    
  140.     movf    PCLATH_TEMP,W  
  141.     movwf   PCLATH     
  142.     swapf   STATUS_TEMP,W  
  143.     movwf   STATUS     
  144.     swapf   WREG_TEMP,F
  145.     swapf   WREG_TEMP,W
  146.     retfie         
  147.  
  148.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement