Advertisement
Guest User

Untitled

a guest
Mar 8th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.12 KB | None | 0 0
  1. .include "tn13Adef.inc"
  2.  
  3. .def temp = R16
  4. .cseg
  5. .org 0
  6.  
  7. ;----- таблица векторов прерываний -----
  8. rjmp RESET ;Reset Handler
  9. reti ;IRQ0 Handler
  10. rjmp int_isr ;PCINT0 Handler
  11. reti ;Timer0 Overflow Handler
  12. reti ;EEPROM Ready Handler
  13. reti ;Analog Comparator Handler
  14. reti ;Timer0 CompareA Handler
  15. reti ;Timer0 CompareB Handler
  16. reti ;Watchdog Interrupt Handler
  17. reti ;ADC Conversion Handler
  18.  
  19. ;----------- Настройка контроллера ---------------
  20. reset: ldi temp, RAMEND
  21. out SPL, temp
  22.  
  23. ldi temp, 0x80
  24. out ACSR, temp
  25.  
  26. ldi temp, (1<<PB0)|(0<<PB3) ;PB0 - выход, PB3 - вход
  27. out DDRB, temp
  28.  
  29. ldi temp, (1<<PB3) ;Подтяжка на PB3
  30. out PORTB, temp
  31.  
  32. ldi temp, (1<<PCIE) ;разрешить прерывание PCINT
  33. out GIMSK, temp
  34.  
  35. ldi temp, (1<<PCINT3) ;выбор источника прерывания - PB3
  36. out PCMSK, temp
  37.  
  38. sei ;Общее разрешение прерываний
  39. stop: rjmp stop ;Остановка программы в бесконечном цикле
  40.  
  41. ;------------обработчик прерывания PCINT -----------
  42. int_isr:rcall dly02s ;Задержка 0,2 сек, пока дребезжит кнопка
  43. sbis PINB,3 ;проверка кнопки, выход если удерживается.
  44. rjmp return
  45. sbis PINB,0 ;проверка вывода светодиода
  46. rjmp setb ;если не горит - перейти и зажечь.
  47. cbi PORTB,0 ;если горит - погасить
  48. rjmp return
  49. setb: sbi PORTB,0
  50. return: ldi temp, (1<<PCIF) ;сброс флага очереди прерываний
  51. out GIFR, temp
  52. reti ;выход из прерывания
  53.  
  54. ;-------------подпрограмма задержки -----------------
  55. dly02s: ldi R17, 0x10
  56. WL0: ldi R18, 0xC6
  57. WL1: ldi R19, 0xС9
  58. WL2: dec R19
  59. brne WL2
  60. dec R18
  61. brne WL1
  62. dec R17
  63. brne WL0
  64. ldi R17, 0x18
  65. WL3: dec R17
  66. brne WL3
  67. ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement