fork download
  1. LIST P=16F877A ; Вказуємо модель мікроконтролера
  2. INCLUDE <P16F877A.INC> ; Підключаємо бібліотеку для PIC16F877A
  3.  
  4. __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF
  5.  
  6. ORG 0x00 ; Початок програми в адресі 0x00
  7.  
  8. ; Ініціалізація портів
  9. START
  10. BANKSEL TRISB ; Вибір банку для TRISB
  11. CLRF TRISB ; Встановлення всіх портів B як вихід
  12. BANKSEL PORTB ; Повертаємось до банку з PORTB
  13. CLRF PORTB ; Скидаємо PORTB
  14.  
  15. ; Основний цикл
  16. LOOP
  17. BSF PORTB, 0 ; Встановити RB0 у високий рівень (вмикання світлодіода)
  18. CALL DELAY ; Затримка
  19. BCF PORTB, 0 ; Встановити RB0 у низький рівень (вимикання світлодіода)
  20. CALL DELAY ; Затримка
  21. GOTO LOOP ; Повернення до початку циклу
  22.  
  23. ; Затримка
  24. DELAY
  25. MOVLW D'250' ; Налаштування затримки
  26. MOVWF 0x21 ; Збереження значення
  27. WAIT1
  28. DECFSZ 0x21, F ; Зменшення значення, поки не досягне нуля
  29. GOTO WAIT1
  30. RETURN
  31.  
  32.  
Success #stdin #stdout 0.03s 26012KB
stdin
Standard input is empty
stdout
    LIST P=16F877A  ; Вказуємо модель мікроконтролера
    INCLUDE <P16F877A.INC> ; Підключаємо бібліотеку для PIC16F877A

    __CONFIG _XT_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF

    ORG 0x00         ; Початок програми в адресі 0x00

    ; Ініціалізація портів
    START
        BANKSEL TRISB ; Вибір банку для TRISB
        CLRF TRISB    ; Встановлення всіх портів B як вихід
        BANKSEL PORTB ; Повертаємось до банку з PORTB
        CLRF PORTB    ; Скидаємо PORTB

    ; Основний цикл
    LOOP
        BSF PORTB, 0  ; Встановити RB0 у високий рівень (вмикання світлодіода)
        CALL DELAY    ; Затримка
        BCF PORTB, 0  ; Встановити RB0 у низький рівень (вимикання світлодіода)
        CALL DELAY    ; Затримка
        GOTO LOOP     ; Повернення до початку циклу

    ; Затримка
    DELAY
        MOVLW D'250'  ; Налаштування затримки
        MOVWF 0x21    ; Збереження значення
    WAIT1
        DECFSZ 0x21, F ; Зменшення значення, поки не досягне нуля
        GOTO WAIT1
        RETURN

    END