Advertisement
ango

final_test_pic_16f88_binary_counter

Jun 4th, 2012
2,583
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pic 16 1.49 KB | None | 0 0
  1. #include p16f88.inc
  2.  
  3.  
  4. __CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF
  5. __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF
  6.  
  7.  
  8. poc1 equ 20h
  9. poc2 equ 21h
  10.  
  11. org 00h
  12. goto start
  13.  
  14. org 04h
  15. goto preruseni
  16.  
  17.  
  18. start
  19.     bcf INTCON,GIE      ;vymazani bitu preruseni - GLOBAL INTERRUPT ENABLE
  20.     bsf STATUS,RP0      ;str 1
  21.     movlw 07h           ;00000011
  22.     movwf CMCON         ;vypnuti komparatoru
  23.     movlw 00h
  24.     movwf ADCON0        ;vypnuti prevodniku
  25.     movlw 00h
  26.     movwf ANSEL         ;vypnuti AD prevodniku
  27.        
  28.     movlw 00h           ;vystup portB
  29.     movwf TRISB
  30.  
  31.     movlw 82h
  32.     movwf OPTION_REG
  33.     movlw 0F2h
  34.     movwf OSCCON        ;osccon
  35.     bcf STATUS,RP0      ;stranka 0
  36.     bsf INTCON,TMR0IE   ;intcon povoleni TMR0
  37.     bsf INTCON,GIE      ;povoleni preruseni GLOBALINTERRUPTENABLE
  38.     movlw .244          ;244
  39.     movwf poc1          ;toto budu ve smycce dekrementovat
  40.  
  41. nic                     ;tady mi program cykli a ceka na preruseni
  42.     nop
  43.     nop
  44.     nop
  45.     goto nic       
  46.  
  47. preruseni               ;preruseni
  48.     decfsz poc1         ;dekrementuje a preskoci pokud je nula
  49.     goto pokracuj       ;pokud neni nula poc1, pokracuje na znova (a maze flag) jinak->
  50.     call znova          ;pokud uz je na nule, znova nacte a pricte do poc2
  51.  
  52. pokracuj   
  53.     bcf INTCON,TMR0IF   ;potreba vynulovat FLAG! tmr0
  54.     retfie              ;navrat z preruseni do cyklu
  55.  
  56. znova                   ;
  57.     incf poc2           ;poc2 +1 -> W
  58.     movfw poc2          ;W->poc2
  59.     movwf PORTB         ;vypise bit navic na portB
  60.     movlw .244          ;244 ->W
  61.     movwf poc1          ;W->POC1 -> muzeme opet cyklit
  62.     return              ;navrat pod CALL
  63.  
  64.     end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement