Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .include "tn13Adef.inc"
- .def temp = R16
- .def rab = R17
- .def ron = R18
- .cseg
- .org 0
- rjmp RESET ;Reset Handler
- rjmp int_isr ;PCINT0 Handler
- reti ;IRQ0 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
- rjmp ACP ;ADC Conversion Handler
- RESET: ldi temp, RAMEND
- out SPL, temp
- ldi temp, 0x80
- out ACSR, temp
- cbi DDRB, 1 ; knopka VKLYUCHENIYA VYKLYUCHENIYA
- sbi DDRB, 0
- ldi temp, 0b00000010 ; vkluchenie rezistorov
- out PORTB, temp
- ldi temp, (1<<INT0) ;????????? ?????????? PCINT
- out GIMSK, temp
- ldi temp, (1<<INT0) ;????? ????????? ?????????? - PB3
- out PCMSK, temp
- ldi rab, 0x78 ; zapis nachalnogo chisla SCHIM
- ldi ron, 0b11111111
- ldi temp, (1<<SM1)|(1<<SM0)|(0<<ISC01)|(0<<ISC00)
- out MCUCR, temp
- ldi temp, (1<<SE)
- out MCUCR, temp
- sei ;razreshenie preryvaniy
- SL: SLEEP
- UU: sbrs ron, 0
- rjmp TT
- rjmp UU
- TT: sbrs ron, 1
- rjmp SL
- ldi ron, 0b00000000
- reti
- ; ESLI TIMER VKLUCFHEN TO VYKLUCHAEM ESI VYKLUCHEN TO VKLUCHAEM
- int_isr: in temp, TCCR0B
- sbrc temp, 0 ; esli nol to perehod k VK
- rjmp OFF ; k vyklucheniyu
- rjmp VK ; perehod k vlucheniyu
- ; VKLYUCHENIE PREOBRAZOVATELYA
- VK: ldi temp, 0x00
- out ADCSRB, temp ;nepreryvnoe preobrazovanie
- ldi temp, (1<<MUX1)|(0<<MUX0)
- out ADMUX, temp ; PB4 podklyu4aem k ACP
- ldi temp, (1<<ADATE)|(1<<ADEN)|(1<<ADSC)|(1<<ADIE)
- out ADCSRA, temp
- ; VKLYUCHENIE TAIMERA
- 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
- ldi rab, 0x78 ; zapis nachalnogo chisla SCHIM
- out OCR0A, rab
- ldi ron, 0xFF
- reti
- ; 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
- ;VYKL ACP
- ldi temp, (1<<ADATE)|(0<<ADEN)|(0<<ADSC)|(0<<ADIE)
- out ADCSRA, temp
- ldi temp, (1<<INTF0)
- out GIFR, temp
- ldi ron, 0b00000010
- rjmp UU
- ;PRERYVANIE ACP
- ACP: ldi temp, ADCH
- cpi temp, 0b00011001
- brlo DO ;K uveli4eniyu SHIM
- breq stop ; stop esli konstanta i ADCH ravny
- rjmp DO2 ; k UMENSCHENIYU SCHIM
- DO: cpi rab, 0xFF ; smotrim est li esche mesto v registre RAB
- breq stop ;RAB polnyj togda stop
- ldi temp, 0b00000001
- ADD rab, temp
- out OCR0A, rab ;zapis novogo chisla SCHIM uvelichenie
- rjmp stop
- DO2: cpi rab, 0b00000001 ; ne obnulilsya li sovsem RAB
- breq stop ;RAB pustoj togda stop
- ldi temp, 0b00000001
- SUB rab, temp
- out OCR0A, rab ; zapis novogo chisla SCHIM umenschenie
- rjmp UU
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement