Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include "tn13Adef.inc"
- .def temp = R16
- .def rab = R17
- .cseg
- .org 0
- rjmp RESET ;Reset Handler
- reti ;IRQ0 Handler
- rjmp int_isr ;PCINT0 Handler
- reti ;Timer0 Overflow Handler
- reti ;EEPROM Ready Handler
- reti ;Analog Comparator Handler
- reti ;Timer0 CompareA Handler
- reti ;Timer0 CompareB Handler
- reti ;Watchdog Interrupt Handler
- reti ;ADC Conversion Handler
- RESET: ldi temp, RAMEND
- out SPL, temp
- ldi temp, 0x80
- out ACSR, temp
- cbi DDRB, 2 ; knopka uvelicheniya yarkosti
- cbi DDRB, 3 ; knopka umenscheniya yarkosti
- cbi DDRB, 4 ; knopka VKLYUCHENIYA VYKLYUCHENIYA
- sbi DDRB, 0
- ldi temp, 0b00011100 ; vkluchenie rezistorov
- out PORTB, temp
- ldi temp, (1<<PCIE) ;????????? ?????????? PCINT
- out GIMSK, temp
- ldi temp, (1<<PCINT4) ;????? ????????? ?????????? - PB3
- out PCMSK, temp
- ldi rab, 0x78 ; zapis nachalnogo chisla SCHIM
- sei ;razreshenie preryvaniy
- S: sbis PINB, 2
- rjmp B1
- L1: sbis PINB, 3
- rjmp C1
- rjmp S
- B1: rcall WG
- U1: sbic PINB, 2
- rjmp B8
- rjmp U1
- C1: rcall WG
- Z1: sbic PINB, 3
- rjmp B7
- rjmp Z1
- B8: cpi rab, 0xFF
- breq S
- DO: ldi temp, 0xF
- ADD rab, temp
- out OCR0A, rab ;zapis novogo chisla SCHIM uvelichenie
- rjmp S
- B7: cpi rab, 0xF
- breq S
- DO2: ldi temp, 0xF
- SUB rab, temp
- out OCR0A, rab ; zapis novogo chisla SCHIM umenschenie
- rjmp S
- int_isr:rcall dly02s ;k zaderzhke
- sbic PINB,4 ;proverka knopki vklucheniya
- rjmp return ; esli knopka B4 otpushena
- rjmp NAC ; esli knopka B4 nazhata to v NAC
- return: ldi temp, (1<<PCIF) ;ustanovka flaga kotoryj byl sbroshen pri srabatyvanii preryvaniya
- out GIFR, temp
- reti ;âûõîä èç ïðåðûâàíèÿ
- ; ESLI TIMER VKLUCFHEN TO VYKLUCHAEM ESI VYKLUCHEN TO VKLUCHAEM
- NAC: in temp, TCCR0B
- sbrc temp, 0 ; esli nol to perehod k VK
- rjmp OFF ; k vyklucheniyu taimera
- rjmp VK ; perehod k vlucheniyu taimera
- ; VKLYUCHENIE TAIMERA
- VK: ldi temp,(1<<COM0A1)|(0<<COM0A0)|(0<<COM0B1)|(0<<COM0B0)|(1<<WGM01)|(1<<WGM00)
- out TCCR0A, temp
- ldi temp,(0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(0<<CS01)|(1<<CS00)
- out TCCR0B, temp
- out OCR0A, rab
- rjmp return
- ; VYKLYUCHENIE TAIMERA
- OFF: ldi temp,(0<<COM0A1)|(0<<COM0A0)|(0<<COM0B1)|(0<<COM0B0)|(0<<WGM01)|(0<<WGM00)
- out TCCR0A, temp
- ldi temp,(0<<FOC0A)|(0<<FOC0B)|(0<<WGM02)|(0<<CS02)|(0<<CS01)|(0<<CS00)
- out TCCR0B, temp
- rjmp return
- ; ZADERZHKA
- WG: push rab
- ldi R17, 0x5F
- WGLOOP0: ldi R18, 0xFF
- WGLOOP1: dec R18
- brne WGLOOP1 ;perehod esli ne 0
- dec R17
- brne WGLOOP0 ; anee ia iieu oi ia?aoia ia WGLOOP0
- pop rab
- ret
- dly02s: push rab
- ldi R17, 0x10
- WL0: ldi R18, 0x26
- WL1: ldi R19, 0x79
- WL2: dec R19
- brne WL2
- dec R18
- brne WL1
- dec R17
- brne WL0
- ldi R17, 0x18
- WL3: dec R17
- brne WL3
- pop rab
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement