;*********************************************************** ;* опнжеяянп LITE 2 ;* AT90S1200 ;* CLK 8.000 MGz ;* CIKL 125ns ;* ;* ;*********************************************************** .include "1200def.inc";СЙЮГЮМ РХО ОПНЖЮ Х ОНДЙКЧВЕМ КХЯРХМЦ ;ЕЦН ОЕПЕЛЕММШУ ;мнлеп щттейрю упюмхряъ б 63 ъвеийе EEPROM ;гмювемхе MAX упюмхряъ б 62 ъвеийе EEPROM ;гмювемхе COMP упюмхряъ б 61 ъвеийе EEPROM ;гмювемхе оепелеммни яйнпнярх Q упюмхряъ дкъ йюфднцн щттейрю ;б ябнеи ъвеийе EEPROM. ; б 60 ъвеийе упюмхряъ яйнпнярэ щттейрю 0 ; б 59 ъвеийе упюмхряъ яйнпнярэ щттейрю 1 ; б 58 ъвеийе упюмхряъ яйнпнярэ щттейрю 2 ; х р.д. ;лхмхлюкэмне гмювемхе яйнпнярх Q=2!!!!!! (люйяхлюкэмн ашярпн) ;лхмхлюкэмне гмювемхе ъпйнярх - 15 едемхж(мхрх мюйюкю опюйрхвеяйх ркечр) ;люйяхлюкэмне гмювемхе ъпйнярх - 0 ;ндмю цпюдюжхъ ъпйнярх пюбмю ~6 ОПНЖЕМРНБ ;пецхярпнбше оепелеммше .DEF COMP =r24 ;ткюц напюанрйх йнлоюпюрнпю (мю опебшьемхе мюопъфемхъ) .DEF MAX =r16 ;гдеяэ упюмхряъ спнбемэ люйяхлюкэмни ъпйнярх (0 хкх 2) .DEF S =r26 ;мнлеп щттейрю (онпъдйнбши) .DEF SS =r18 ;мнлеп ъвеийх EEPROM дкъ опнжедсп я EEPROM .DEF T =r19 ;оепелеммюъ дкъ опнжедспш щттейрнб (йнк-бн онбрнпнб ндмнцн щттейрю) .DEF Q =r20 ;яйнпнярэ (йнк-бн онбрнпнб ндмни цпюдюжхх ъпйнярх) .DEF J =r21 ;йнохъ Q (хяонкэгсеряъ б опнжедспюу сопюбкемхъ рхпхярнпнб) .DEF G =r22 ;ткюц дкъ опюбхкэмнцн бнгбпюрю хг опнбепйх ймнонй .DEF A =r23 ;юййслскърнп .DEF AA =r29 ;юкэрепмюрхбмши юййслскърнп .DEF DELAY =r25 ;оепелеммюъ б опнжедспе PAUSE_ms .DEF X =r17 ;оепелеммюъ б опнжедспе PAUSE_ms .DEF DEL =r27 ;гюдепфйю оепед бйк.оепбнцн йюмюкю (ъпйнярэ) .DEF DELL =r28 ;гюдепфйю оепед бйк.брнпнцн йюмюкю (ъпйнярэ) .DEF EF1 =r15 .DEF EF2 =r30 ;оепелеммше дкъ щттейрнб(йнохх DEL х DELL) .CSEG ;мювюкн йнднбнцн яецлемрю .ORG 0 RJMP RESET ;оепеунд он reset NOP ;оепеунд он int NOP ;оепеунд он tmr0 RJMP COMPARATOR ;оепеунд ОН compare ;------------------------------------------------------------------- ;напюанрйю опепшбюмхи нр йнлоюпюрнпю ;------------------------------------------------------------------- COMPARATOR: RJMP OFF ;еякх япюанрюк йнлоюпюрнп нрйкчвхрэ бяе ;------------------------------------------------------------------- ;******************************************************************** ;хмярюкъжхъ ;******************************************************************** RESET: CLI ;гюоперхрэ опепшбюмхъ LDI A,0B00001111 OUT WDTCR,A ;пюгпеьхрэ WDT LDI A,0B00000000 OUT TIMSK,A ;бшйкчвхрэ tmr0 LDI A,0B00000000 OUT MCUCR,A ;бшйкчвхрэ sleep ;сярюмнбйю опепшбюмхъ нр int0 спнбмч кнц 0 LDI A,0B00000000 OUT GIMSK,A ;гюоперхрэ опепшбюмхъ нр int0 LDI A,0B00001000 OUT ACSR,A ;пюгпеьхрэ йнлоюпюрнп,пюгпеьхрэ опепшбюмхъ нр ;йнлоюпюрнпю,опепшбюмхъ он оепейкчвемхч. LDI A,0B00111100 OUT DDRB,A ;мюярпнийю онпрю а.1-бшунд,0-бунд LDI A,0B00000000 OUT PORTB,A ;хмярюкъжхъ сярпниярб ондйкчвемшу й онпрс б. ;бшйк.яхллхярнпш,онрсьхрэ хмд.яерэ,бшйк.йкчв ;пеке LDI A,0B01110000 OUT DDRD,A ;мюярпнийю онпрю D.1-бшунд,0-бунд LDI A,0B00001011 OUT PORTD,A ;бйкчвхл ондръцхбючыхе пегхярнпш мю реу бундюу ;й йнрнпшл ондйкчвемш ймнойх сопюбкемхъ L55: SBIC PIND,2 RJMP L55 ;фд╗л мювюкю оепеундю тюгш вепег мнкэ L66: SBIS PIND,2 RJMP L66 ;фд╗л нйнмвюмхъ оепеундю тюгш вепег мнкэ LDI DELAY,18 RCALL PAUSE_MS ;ондцюдюел й йнмжс оепхндю SBI PORTB,5 ;бйкчвхрэ сдепфюмхе пеке LDI DELAY,254 RCALL PAUSE_MS LDI DELAY,254 RCALL PAUSE_MS LDI DELAY,254 RCALL PAUSE_MS ;оепеунд мю опнжедспс гюдепфйх,дкъ нрпюанрйх пеке SBI PORTB,3 ;гюфевэ хмдхйюрнп яерэ INSTAL1: ;бняярюмнбхл хг EEPROM мнлеп щттейрю (еякх S=0 рнцдю юбрнлюр) LDI A,63 OUT EEAR,A ;сйюфел мнлеп явхршбюелни ъвеийх SBI EECR,EERE ;пюгпеьхрэ времхе IN S,EEDR ;гюмеяел б S мнлеп щттейрю LDI A,5 CP A,S BRMI ERROR1 ;еякх S>5 рнцдю оепеунд мю ERROR1 RJMP INSTAL2 ;хмюве оепеундхл мю INSTAL2 ERROR1: WDR ;яапняхл янаюйс LDI S,0 ;мюяхкэмн бйкчвхл юбрнлюр х янупюмхл ецн б EEPROM LDI SS,63 MOV A,S ;ондцнрнбхл дюммше дкъ опнжедспш гюохях RCALL WR ;мювюрэ опнжедспс гюохях ;бняярюмнбхл хг EEPROM гмювемхе MAX (еякх MAX=0 рнцдю онкмюъ ъпйнярэ) ; (еякх MAX=3 рнцдю опхрсьемн) INSTAL2: LDI A,62 OUT EEAR,A ;сйюфел мнлеп явхршбюелни ъвеийх SBI EECR,EERE ;пюгпеьхрэ времхе IN MAX,EEDR ;гюмеяел б MAX CPI MAX,0 ;еякх люу=0 (люйяхлюкэмюъ ъпйнярэ) ,рн люу бшйкчвем BREQ INSTAL3 ;оепеунд мю INSTAL3 CPI MAX,3 ;еякх люу=3 (мнмхфеммюъ ъпйнярэ) ,рн люу бйкчвем BREQ INSTAL3 ;оепеунд мю INSTAL3 ;еякх люу ме=0 х ме=3 рнцдю хдел дюкее мю ERROR11 ERROR11: LDI MAX,3 ;мюяхкэмн бйкчвхл MAX (онмхфеммсч ъпйнярэ) х гюохьел б EEPROM LDI SS,62 MOV A,MAX ;ондцнрнбхл дюммше й гюохях RCALL WR ;мювюрэ опнжедспс гюохях ;хдел мю INSTAL3 ;бняярюмнбхл хг EEPROM гмювемхе COMP (еякх COMP=0 рнцдю мейнмрпнкхпсел яерэ) ;щрю опнжедспю сапюмю.реоепэ янлп бйкчвюеряъ йюфдши пюг опх бйкчвемхх охрюмхъ, ;х ецн лнфмн нрйкчвхрэ рнкэйн дн якедсчыецн бшйкчвемхъ охрюмхъ.гмювемхе ;оепелеммни люу ме янупюмъеряъ б EEPROM. INSTAL3: ;LDI A,61 ;OUT EEAR,A ;сйюфел мнлеп явхршбюелни ъвеийх ;SBI EECR,EERE ;пюгпеьхрэ времхе ;IN COMP,EEDR ;гюмеяел б COMP гмювемхе ;TST COMP ;йнлонпюрнп пюгпеьем? ;BREQ COMPA ;еякх мер рнцдю хдел мю COMPA ;SBI PORTD,6 ;дю-рнцдю гюффел хмдхйюрнп COMP ;SEI ;пюгпеьхл опепшбюмхъ ;RJMP INSTAL4 ;хдел мю INSTAL4 ;COMPA: ;CBI PORTD,6 ;онрсьхл хмдхйюрнп COMP х хдел дюкее мю INSTAL4 ;CLI ;гюоперхл опепшбюмхъ LDI COMP,1 ;пюгпеьхл пюанрс йнлонпюрнпю. SBI PORTD,6 ;гюффел хмдхйюрнп COMP SEI ;пюгпеьхл опепшбюмхъ INSTAL4: TST MAX ;MAX бшйкчвем? BREQ MAXA ;еякх дю рнцдю хдел мю MAXA SBI PORTD,4 ;еякх мер (MAX-бйкчвем) гюффел хмдхйюрнп MAX RJMP INSTAL5 ;хдел мю INSTAL5 MAXA: CBI PORTD,4 ;онрсьхл хмдхйюрнп MAX х хдел мю INSTAL5 INSTAL5: CBI PORTD,5 ;онрсьхрэ яберндхнд (юбрнлюр ;опнжедспю опнбепъер мюфюрхъ йкюбхь оняке бйк.охрюмхъ (ндхм пюг) SBIS PIND,0 ;SPEED мюфюрю? RCALL MAX_S ;дю,сундхл мю MAX_S SBIS PIND,1 ;PROG мюфюрю? RCALL COMP_S ;дю,сундхл мю COMP_S ;еякх мх ндмю ме мюфюрю рнцдю хд╗л мю щттейрш RCALL KM7 RJMP DD ;------------------------------------------------------------------- ; йнлонмемрш дкъ янярюбкемхъ щттейрнб ;******************************************************************* ;------------------------------------------------------------------- ;йнлонмемр 1 оепбши цнпхр брнпни опхрсьем ;гюрел оепбши окюбмн рсумер ,ю брнпни пюгцнпюеряъ ;оепбши йюмюк опхрсьем,ю брнпни цнпхр ;------------------------------------------------------------------- KM1: MOV DEL,MAX LDI DELL,13 M0: MOV J,Q ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CPI DEL,13 ;лш бшькх мю лхмхлюкэмсч ъпйнярэ? BREQ M1 ;еякх дю-рн бшунд INC DEL ;сэемэьхрэ ъпйнярэ DEC DELL ;сбхкхвхрэ ъпйнярэ RJMP M0 ;еы╗ йпсц M1: RET ;=================================================================== ;------------------------------------------------------------------- ;йнлонмемр 2 оепбши опхрсьем брнпни цнпхр ;гюрел оепбши окюбмн пюгцнпюеряъ ,ю брнпни рсумер ;оепбши йюмюк цнпхр мю бяч ъпйнярэ,ю брнпни опхрсьем. ;------------------------------------------------------------------- KM2: LDI DEL,13 MOV DELL,MAX M2: MOV J,Q ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CP DEL,MAX ;лш бшькх мю онкмсч ъпйнярэ? BREQ M3 ;еякх дю-рн бшунд DEC DEL ;сбекхвхрэ ъпйнярэ INC DELL ;слемэьхрэ ъпйнярэ RJMP M2 ;еы╗ йпсц M3: RET ;=================================================================== ;------------------------------------------------------------------- ;йнлонмемр 3 наю опхрсьемш ;гюрел оепбши окюбмн мюпюярюер,брнпни аег хглемемхи ;опх бшунде оепбши цнпхр ,брнпни опхрсьем ;------------------------------------------------------------------- KM3: LDI DEL,11 LDI DELL,11 M4: MOV J,Q ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CP DEL,MAX ;лш бшькх мю люйяхлюкэмсч ъпйнярэ? BREQ M5 ;еякх дю-рн бшунд DEC DEL ;сбекхвхбюел ъпйнярэ оепбнцн RJMP M4 ;еы╗ йпсц M5: RET ;=================================================================== ;------------------------------------------------------------------- ;йнлонмемр 4 наю опхрсьемш ;гюрел брнпни окюбмн мюпюярюер,оепбши аег хглемемхи ;опх бшунде брнпни цнпхр оепбши опхрсьем ;------------------------------------------------------------------- KM4: LDI DEL,11 LDI DELL,11 M6: MOV J,Q ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CP DELL,MAX ;лш бшькх мю люйяхлюкэмсч ъпйнярэ? BREQ M7 ;еякх дю-рн бшунд DEC DELL ;сбекхвхэ ъпйнярэ брнпнцн RJMP M6 ;еы╗ йпсц M7: RET ;=================================================================== ;------------------------------------------------------------------- ;йнлонмемр 5 наю цнпър ;гюрел оепбши окюбмн рсумер,брнпни аег хглемемхи ;опх бшунде оепбши опхрсьем ,брнпни цнпхр ;------------------------------------------------------------------- KM5: MOV DEL,MAX MOV DELL,MAX M8: MOV J,Q ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CPI DEL,15 ;лш бшькх мю лхмхлюкэмсч ъпйнярэ? BREQ M9 ;еякх дю-рн бшунд INC DEL ;слемэьюел ъпйнярэ оепбнцн RJMP M8 ;еы╗ йпсц M9: RET ;=================================================================== ;------------------------------------------------------------------- ;йнлонмемр 6 наю цнпър ;гюрел брнпни окюбмн рсумер,оепбши аег хглемемхи ;опх бшунде оепбши цнпхр ,брнпни опхрсьем ;------------------------------------------------------------------- KM6: MOV DEL,MAX MOV DELL,MAX M10: MOV J,Q ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CPI DELL,15 ;лш бшькх мю лхмхлюкэмсч ъпйнярэ? BREQ M11 ;еякх дю-рн бшунд INC DELL ;слемэьюел ъпйнярэ брнпнцн RJMP M10 ;еы╗ йпсц M11: RET ;=================================================================== ;------------------------------------------------------------------- ;йнлонмемр 7 пнгфхц ;------------------------------------------------------------------- KM7: LDI DEL,18 LDI DELL,18 M12: LDI J,254 ;ондцнрнбхл J MOV EF1,DEL ;янупюмхл DEL MOV EF2,DELL ;янупюмхл DELL RCALL START ;бшгнб опнжедспш сопюбкемхъ рхпхярнпюлх MOV DEL,EF1 ;бняярюмнбхл DEL MOV DELL,EF2 ;бняярюмнбхл DELL CP DEL,MAX ;лш бшькх мю люйяхлюкэмсч ъпйнярэ? BREQ M13 ;еякх дю-рн бшунд DEC DEL ;сбекхвхрэ ъпйнярэ DEC DELL ;сбекхвхрэ ъпйнярэ RJMP M12 ;еы╗ йпсц M13: RET ;=================================================================== ;------------------------------------------------------------------ ;опнцпюллш щттейрнб ;------------------------------------------------------------------ DD: TST S BREQ AUTO ;еякх S=0 (юбрнлюр) оепеундхл мю AUTO RJMP DD1 ;еякх S ме 0 (ме юбрнлюр) оепеундхл мю DD1 AUTO: SBI PORTD,5 RJMP EFEKT1 ;еякх S=0 гюфхцюел хмдхйюрнп "юбрнлюр" ярюпрсел я оепбнцн щттейрю х юбрнлюр DD1: CBI PORTD,5 ;онрсьхл хмдхйюрнп "юбрнлюр" CPI S,1 BREQ EFEKT1 ;еякх S=1 йпсрхл оепбши щттейр CPI S,2 BREQ EFEKT2 ;еякх S=2 йпсрхл брнпни щттейр CPI S,3 BREQ EFEKT3 ;еякх S=3 йпсрхл рперхи щттейр CPI S,4 BREQ EFEKT4 ;еякх S=4 йпсрхл вербепрши щттейр CPI S,5 BREQ STEK5 ;еякх S=5 йпсрхл оърши щттейр CPI S,6 BREQ STEK6 ;еякх S=6 йпсрхл ьеярни щттейр STEK5: RJMP EFEKT5 ;якхьйнл дкхммши оепеунд STEK6: RJMP EFEKT6 ;якхьйнл дкхммши оепеунд EFEKT1: LDI SS,60 RCALL EEPROM_RD MOV Q,A ;бняярюмнбхл хг EEPROM яйнпнярэ EFEKT1 LDI T,100 ;гюцпсгхл йнкхвеярбн онбрнпнб дкъ юбрнлюрю EFEK1: SBI PORTB,3 ;лхцмел яерэч RCALL KM1 CBI PORTB,3 ;лхцмел яерэч RCALL KM2 DEC T TST T BRNE EFEK1 ;йпсрхл щттейр онйю р ме=0 TST S ;еякх S=0 гмювхр юбрнлюр,оепеунд й якедсчыелс щттейрс BRNE EFEKT1 ;еякх S HE=0 гмювхр псвмни,йпсрхл щрнр щттейр. ;************************************************************************ EFEKT2: LDI SS,59 RCALL EEPROM_RD MOV Q,A ;бняярюмнбхл хг EEPROM яйнпнярэ EFEKT2 LDI T,100 ;гюцпсгхл йнкхвеярбн онбрнпнб дкъ юбрнлюрю EFEK2: SBI PORTB,3 ;лхцмел яерэч RCALL KM1 CBI PORTB,3 ;лхцмел яерэч RCALL KM2 DEC T TST T BRNE EFEK2 TST S ;еякх S=0 гмювхр юбрнлюр,оепеунд й якедсчыелс щттейрс BRNE EFEKT2 ;еякх S HE=0 гмювхр псвмни,йпсрхл щрнр щттейр ;************************************************************************ ;************************************************************************ EFEKT3: LDI SS,58 RCALL EEPROM_RD MOV Q,A ;бняярюмнбхл хг EEPROM яйнпнярэ EFEKT3 LDI T,100 ;гюцпсгхл йнкхвеярбн онбрнпнб дкъ юбрнлюрю EFEK3: SBI PORTB,3 ;лхцмел яерэч RCALL KM1 CBI PORTB,3 ;лхцмел яерэч RCALL KM2 DEC T TST T BRNE EFEK3 TST S ;еякх S=0 гмювхр юбрнлюр,оепеунд й якедсчыелс щттейрс BRNE EFEKT3 ;еякх S HE=0 гмювхр псвмни,йпсрхл щрнр щттейр. ;************************************************************************* EFEKT4: LDI SS,57 RCALL EEPROM_RD MOV Q,A ;бняярюмнбхл хг EEPROM яйнпнярэ EFEKT4 LDI T,100 ;гюцпсгхл йнкхвеярбн онбрнпнб дкъ юбрнлюрю EFEK4: SBI PORTB,3 ;лхцмел яерэч RCALL KM3 CBI PORTB,3 ;лхцмел яерэч RCALL KM4 DEC T TST T BRNE EFEK4 ;йпсрхл щттейр онйю р ме=0 TST S ;еякх S=0 гмювхр юбрнлюр,оепеунд й якедсчыелс щттейрс BRNE EFEKT4 ;еякх S HE=0 гмювхр псвмни,йпсрхл щрнр щттейр. EFEKT5: LDI SS,56 RCALL EEPROM_RD MOV Q,A ;бняярюмнбхл хг EEPROM яйнпнярэ EFEKT5 LDI T,100 ;гюцпсгхл йнкхвеярбн онбрнпнб дкъ юбрнлюрю EFEK5: SBI PORTB,3 ;лхцмел яерэч RCALL KM3 CBI PORTB,3 ;лхцмел яерэч RCALL KM4 DEC T TST T BRNE EFEK5 TST S ;еякх S=0 гмювхр юбрнлюр,оепеунд й якедсчыелс щттейрс BRNE EFEKT5 ;еякх S HE=0 гмювхр псвмни,йпсрхл щрнр щттейр. EFEKT6: LDI SS,55 RCALL EEPROM_RD MOV Q,A ;бняярюмнбхл хг EEPROM яйнпнярэ EFEKT6 LDI T,100 ;гюцпсгхл йнкхвеярбн онбрнпнб дкъ юбрнлюрю EFEK6: SBI PORTB,3 ;лхцмел яерэч RCALL KM5 CBI PORTB,3 ;лхцмел яерэч RCALL KM6 DEC T TST T BRNE EFEK6 TST S ;еякх S=0 гмювхр юбрнлюр,оепеунд й якедсчыелс щттейрс BRNE EFEKT6 ;еякх S HE=0 гмювхр псвмни,йпсрхл щрнр щттейр. RJMP EFEKT1 ;еякх опнцпюллю юбрнлюр гюйнмвхкюяэ,рнцдю мювмел ее ямнбю ;------------------------------------------------------------------ ; опнцпюллю сопюбкемхъ рхпхярнпюлх х ймнойюлх ;****************************************************************** ;опнжедспю нопедекъер ъпйнярэ йюмюкнб анкэье,лемэье хкх пюбмш ;****************************************************************** START: WDR ;яапня рюхлепю CP DEL,DELL BREQ RAVNO ;DEL=DELL BRHS MENSE ;DELDELL ;************ END PROCEDURE *************************************** ;****************************************************************** ;опнжедспю сопюбкемхъ рхпхярнпюлх еякх DEL=DELL ;****************************************************************** RAVNO: DEC J ;онбрнпш мю ндмни цпюдюжхх ъпйнярх йнмвхкхяэ? BRNE L1 ;еякх мер рнцдю сирх мю L1 хмюве бшунд RET L1: SBIC PIND,2 RJMP L1 ;фд╗л мювюкю оепеундю тюгш вепег мнкэ L2: SBIS PIND,2 RJMP L2 ;фд╗л нйнмвюмхъ оепеундю тюгш вепег мнкэ MOV DELAY,DEL RCALL PAUSE_MS ;сярюмнбйю гюдепфйх (йнкхвеярбн бшдекъелни лнымнярх) SBI PORTB,2 SBI PORTB,4 ;нрйпшкх рхпхярнпш LDI A,255 L3: DEC A BRNE L3 CBI PORTB,2 CBI PORTB,4 ;гюйпшкх рхпхярнпш (хлоскэя нйнкн 9лйя.) LDI G,0 ;сярюмнбхл ткюц дкъ бнгбпюрю хг KNOPKI RJMP KNOPKI ;оепеунд мю опнбепйс ймнонй ;************ END PROCEDURE **************************************** ;******************************************************************* ;опнжедспю сопюбкемхъ рхпхярнпюлх еякх DELDELL ;******************************************************************* BOLSE: SUB DEL,DELL ;мюундхл пюгмхжс б гюдепфйюу (б DEL пюгмхжю) BOLS: DEC J ;онбрнпш мю ндмни цпюдюжхх ъпйнярх йнмвхкхяэ? BRNE L8 ;еякх мер рнцдю сирх мю L8 хмюве бшунд RET L8: SBIC PIND,2 RJMP L8 ;фд╗л мювюкю оепеундю тюгш вепег мнкэ L9: SBIS PIND,2 RJMP L9 ;фд╗л нйнмвюмхъ оепеундю тюгш вепег мнкэ MOV DELAY,DELL RCALL PAUSE_MS ;сярюмнбйю гюдепфйх дкъ брнпнцн йюмюкю ;(йнкхвеярбн бшдекъелни лнымнярх) SBI PORTB,4 LDI A,255 L10: DEC A BRNE L10 ; тнплхпсел сопюбкъчыхи хлоскэя дкъ CBI PORTB,4 ; рхпхярнпю брнпнцн йюмюкю хлоскэя нйнкн 9лйя.) MOV DELAY,DEL RCALL PAUSE_MS ;сярюмнбйю гюдепфйх дкъ оепбнцн йюмюкю ;(йнкхвеярбн бшдекъелни лнымнярх) SBI PORTB,2 LDI A,255 L11: DEC A BRNE L11 ; тнплхпсел сопюбкъчыхи хлоскэя дкъ CBI PORTB,2 ; рхпхярнпю оепбнцн йюмюкю хлоскэя нйнкн 9лйя.) LDI G,2 ;сярюмнбхл ткюц дкъ бнгбпюрю хг KNOPKI RJMP KNOPKI ;оепеунд мю опнбепйс ймнонй ;************ END PROCEDURE **************************************** ;******************************************************************* ; опнцпюллю напюанрйх ймнонвей ;******************************************************************* KNOPKI: WDR ;яапня рюхлепю SBIS PIND,0 ;SPEED мюфюрю? RJMP SPEED ;дю,сундхл мю SPEED SBIS PIND,1 ;PROG мюфюрю? RJMP PROG ;дю,сундхл мю PROG SBIS PIND,3 ;OFF? RJMP OFF ;дю.сундхл мю OFF ;еякх мх ндмю ме мюфюрю рнцдю хд╗л мю Y Y: TST G BREQ YY ;еякх G=0 рнцдю бнгбпюр б RAVNO вепег YY (якхьйнл дюкэмхи оепеунд) CPI G,1 BREQ MENS ;еякх G=1 рнцдю бнгбпюр б MENS RJMP BOLS ;еякх мх-рн,мх-рн (G=2) рнцдю бнгбпюр б BOLS SPEED: LDI DELAY,200 RCALL PAUSE_MS ;гюдепфйю 100ля.-гюыхрю нр дпеаегцю SBIS PIND,0 ;SPEED он опефмелс мюфюрю? RJMP SPEED1 ;дю,рнцдю опнднкфхл напюанрйс SPEED RJMP Y ;хмюве бшунд SPEED1: SBIS PIND,0 RJMP SPEED1 ;фд╗л онйю нросярър ймнойс SPEED LDI DELAY,200 RCALL PAUSE_MS ;гюдепфйю 100ля.-гюыхрю нр дпеаегцю CPI Q,8 ;опнбепхл,Q ме днькн дн 8? BREQ SPEED2 ;еякх днярхцкн рнцдю оепеунд мю SPEED2 INC Q ;еякх Q ме днярхцкн 8 рнцдю сбекхвхрэ Q мю 1 SR1: SBIC EECR,EEWE ;фд╗л пюгпеьемхъ гюохях RJMP SR1 OUT EEAR,SS ;сярюмюбкхбюел юдпея ъвеийх рейсыецн щттейрю OUT EEDR,Q ;сярюмюбкхбюел дюммше SBI EECR,EEWE ;янупюмъел яйнпнярэ б EEPROM SR2: SBIC EECR,EEWE RJMP SR2 ;фд╗л онйю б EEPROM гюохьеряъ хмтнплюжхъ RJMP Y ;бшунд SPEED2: LDI Q,2 ;еякх Q днькн дн 8 рнцдю Q=2 RJMP SR1 ;оепеунд мю опнжедспс гюохях я онякедсчыхл бшунднл PROG: LDI DELAY,200 RCALL PAUSE_MS ;гюдепфйю 100ля.-гюыхрю нр дпеаегцю SBIS PIND,1 ;PROG он опефмелс мюфюрю? RJMP PROG1 ;дю,рнцдю опнднкфхл напюанрйс PROG RJMP DD ;еякх мер, рнцдю бшунд PROG1: SBIS PIND,1 RJMP PROG1 ;фд╗л онйю нросярър ймнойс PROG LDI DELAY,200 RCALL PAUSE_MS ;гюдепфйю 100ля.-гюыхрю нр дпеаегцю CPI S,6 ;опнбепхл,S ме днькн дн 6? BREQ PROG2 ;еякх днярхцкн рнцдю оепеунд мю PROG2 INC S ;еякх S ме днярхцкн 6 рнцдю сбекхвхрэ S мю 1 PR1: SBIC EECR,EEWE RJMP PR1 ;фд╗л пюгпеьемхъ гюохях LDI A,63 OUT EEAR,A ;сярюмюбкхбюел юдпея ъвеийх OUT EEDR,S ;сярюмюбкхбюел дюммше SBI EECR,EEWE ;янупюмъел мнлеп щттейрю б EEPROM PR2: SBIC EECR,EEWE RJMP PR2 ;фд╗л онйю б EEPROM гюохьеряъ хмтнплюжхъ RJMP DD ;бшунд (гюосяйюел щттейрш ямнбю,я мнбшл мнлепнл) PROG2: LDI S,0 ;еякх S днькн дн 6 рнцдю S=0 RJMP PR1 ;оепеунд мю опнжедспс гюохях я онякедсчыхл бшунднл ;****************************************************************** ;дЮММЮЪ ОПНЖЕДСПЮ ТНПЛХПСЕР ГЮДЕПФЙС ЙПЮРМСЧ 0.5 ЛХКХЯЕЙСМДЕ ОПХ ;ВЮЯРНРЕ ЦЕМЕПЮРНПЮ 8 лцЖ.хМРЕПБЮК ГЮДЕПФЙХ НР 0 ДН 127,5 ЛЯ. ;дКХРЕКЭМНЯРЭ ГЮДЕПФЙХ СЙЮГШБЮЕРЯЪ Б ОЕПЕЛЕММНИ delay ОЕПЕД БШГНБНЛ ;ОПНЖЕДСПШ.еЯКХ delay=0 РНЦДЮ БПЕЛЪ ГЮДЕПФЙХ ЯНЯРЮБКЪЕР 9 РЮЙРНБ ;(1.125ЛЙЯ).йНЛЮМДЮ CALL Х ХДСЫЮЪ ГЮ МЕИ МЕ БУНДЪР Б ДКХРЕКЭМНЯРЭ. ;****************************************************************** PAUSE_MS: cpi delay,0 ;еякх 0 рнцдю бшунд хг ондопнцпюллш хмюве POINT brne POINT ret POINT: nop ldi x,12 ;оепелеммюъ x йнкхвеярбн онбрнпнб жхйкю cikl ldi a,9 pool: dec a brne pool cikl: ldi a,109 pool1: dec a brne pool1 dec x brne cikl ;цпсаши жхйк dec delay ;слемэьхл delay мю 1 brne next ;еякх 0 рнцдю бшунд хг ондопнцпюллш хмюве next ret next: nop ldi a,2 pool2: dec a brne pool2 ;рнвмюъ ондцнмйю еякх delay ме = 0 rjmp POINT ;******************************************************************* ;йНМЕЖ ОПНЖЕДСПШ ;******************************************************************* ;******************************************************************* ;опнжедспю времхъ хг EEPROM (яйнпнярх рейсыецн щттейрю) ;******************************************************************* EEPROM_RD: OUT EEAR,SS ;сйюфел мнлеп явхршбюелни ъвеийх SBI EECR,EERE ;пюгпеьхрэ времхе IN A,EEDR ;гюмеяел б юййслскърнп дюммше хг хяйнлни ъвеийх CPI A,2 BRMI ERR ;еякх ю<2 рнцдю оепеунд мю ERR (ньхайю) LDI AA,8 CP AA,A BRMI ERR ;еякх ю>8 рнцдю оепеунд мю ERR (ньхайю) RET ;бнгбпюр ERR: LDI A,2 ;хяопюбхл гмювемхе яйнпнярх х гюохьел ецн б EEPROM WR: SBIC EECR,EEWE RJMP WR ;фд╗л пюгпеьемхъ гюохях OUT EEAR,SS ;сйюфел мнлеп гюохяшбюелни ъвеийх OUT EEDR,A ;ондцнрнбхл дюммше й гюохях SBI EECR,EEWE ;мювюрэ опнжедспс гюохях WRR: SBIC EECR,EEWE RJMP WRR ;фд╗л онйю б EEPROM гюохьеряъ хмтнплюжхъ RET ;бнгбпюр ;******************************************************************* ; йнмеж опнжедспш ;******************************************************************* MAX_S: TST MAX ;MAX пюгпеьем? (еядх 0 - мер) BREQ MAX_SA ;еякх мер рнцдю хдел мю MAX_SA (хмюве дюкее) LDI MAX,0 MOV A,MAX LDI SS,62 ;ондцнрнбйю оепелеммшу дкъ опнжедспш гюохях б EEPROM RCALL WR ;еякх MAX пюгпеьем рнцдю гюоперхл ецн х гюохьел б EEPROM CBI PORTD,4 ;онрсьхл хмдхйюрнп MAX RJMP OUT ;бшунд MAX_SA: LDI MAX,3 MOV A,MAX LDI SS,62 ;ондцнрнбйю оепелеммшу дкъ опнжедспш гюохях б EEPROM RCALL WR ;еякх MAX гюопеыем рнцдю пюгпеьхл ецн х гюохьел б EEPROM SBI PORTD,4 ;гюффел хмдхйюрнп MAX RJMP OUT ;бшунд COMP_S: ;TST COMP ;COMP пюгпеьем? (еядх 0 - мер) ;BREQ COMP_SA ;еякх мер рнцдю хдел мю COMP_SA (хмюве дюкее) LDI COMP,0 ;гюоперхрэ пюанрс йнлоюпюрнпю ;MOV A,COMP ;LDI SS,61 ;ондцнрнбйю оепелеммшу дкъ опнжедспш гюохях б EEPROM ;RCALL WR ;еякх COMP пюгпеьем рнцдю гюоперхл ецн х гюохьел б EEPROM CBI PORTD,6 ;онрсьхл COMP CLI ;гюоперхл опепшбюмхъ ;RJMP OUT1 ;бшунд OUT1: SBIS PIND,1 RJMP OUT1 ;фдел онйю нросярър ймнойс PROG LDI DELAY,250 RCALL PAUSE_MS;гюдепфйю нр дпеаегцю 125 ля SBIS PIND,1 RJMP OUT1 ;еякх ймнойю бяе еые нросыемю рнцдю бшунд,хмюве ;опнднкфюел фдюрэ онйю нросярър RET ;COMP_SA: ; ;LDI COMP,1 ;MOV A,COMP ;LDI SS,61 ;ондцнрнбйю оепелеммшу дкъ опнжедспш гюохях б EEPROM ;RCALL WR ;еякх COMP гюопеыем рнцдю пюгпеьхл ецн х гюохьел б EEPROM ;SBI PORTD,6 ;гюффел COMP ;SEI ;пюгпеьхл опепшбюмхъ ;RJMP OUT1 ;бшунд OUT: SBIS PIND,0 RJMP OUT ;фдел онйю нросярър ймнойс SPEED LDI DELAY,250 RCALL PAUSE_MS;гюдепфйю нр дпеаегцю 125 ля SBIS PIND,0 RJMP OUT ;еякх ймнойю бяе еые нросыемю рнцдю бшунд,хмюве ;опнднкфюел фдюрэ онйю нросярър RET OFF: WDR ;яапня рюхлепю CBI PORTD,4 CBI PORTD,5 CBI PORTD,6 CBI PORTB,3 ;рсьхл бяе хмдхйюрнпш CBI PORTB,2 CBI PORTB,4 ;рсьхл наю рхпхярнпю LDI DELAY,254 RCALL PAUSE_MS ;гюдепфйю оепед нрпюанрйни пеке END: CBI PORTB,5 ;нрйкчвюел пеке LDI DELAY,254 RCALL PAUSE_MS ;гюдепфйю WDR ;яапня рюхлепю RJMP END ;аеяйнмевмши жхйк ; опнцпюллю мюохяюмю 21.05.2001. ; пюанрюер пецскхпнбйю яйнпнярх ймнойни SPEED,я гюонлхмюмхел бшапюммни ;яйнпнярх дкъ йюфднцн щттейрю б EEPROM ; оепейкчвемхе щттейрнб ймнойни PROG C гюонлхмюмхел рейсыецн мнлепю ;б EEPROM.опх бйкчвемхх охрюмхъ бйкчвюеряъ рнр щттейр-йнрнпши ашк бшапюм ;оепед бшйкчвемхел.опх бйкчвемхх юбрнлюрхвеяйнцн оепеанпю опнцпюлл ;гюфхцюеряъ хмдхйюрнп AUTO. ; еякх опх бйкчвемхх сдепфхбюрэ ймнойс SPEED,рнцдю бйкчвюеряъ,хкх бшйкч- ;вюеряъ,пефхл MAX.гюцнпюеряъ хкх рсумер хмдхйюрнп MAX.опх бйкчвемхх пефхлю ;MAX кюлонвйх цнпър мю 85 опнжемрнб ъпйнярх,щрн ядекюмн дкъ сбекхвемхъ ;япнйю яксфаш кюлонвей.янярнъмхе пефхлю люу рюйфе гюонлхмюеряъ б EEPROM. ; еякх опх бйкчвемхх сдепфхбюрэ ймнойс PROG,рнцдю бйкчвюеряъ, ;пефхл янлп.рсумер хмдхйюрнп янлп.опх бйкчвемхх пефхлю янлп ;бйкчвюеряъ йнлоюпюрнп йнрнпши йнмрпнкхпсер мюопъфемхе яерх,опх опебшьемхх ;235 бнкэр(мюярпюхбюеряъ опежемгхнммшл онрнмжхнлерпнл)бшйкчвючряъ яхлхярнпш, ;ю гюрел онкмнярэч наеярнвхбюеряъ бяъ яхярелю.янярнъмхе пефхлю янлп ме гюонлх- ;мюеряъ б EEPROM. ; еякх опнхяундхр яани оюлърх - рнцдю дкъ бяеу бшярюбкъеряъ яюлюъ ашярпюъ ;яйнпнярэ (гмювемхе Q=2), бйкчвюеряъ юбрнлюр (гмювемхе S=0),бйкчвючряъ ;пефхлш люу х янлп. ; ; онйю бяецн оърэ щттейрнб. опх хглемемхх йнк-бю щттейрнб нрякедхрэ ;б ондопнцпюллюу "хмярюкъжхх" , "напюанрйх ймнонй" х "щтейрюу" ;оепелеммсч S. ; сопюбкемхе опнцпюллш пюявхрюмн мю норняхлхярнпш.опх оепеунде мю рхпхярнпш ;менаундхлн хмбепрхпнбюрэ б опнцпюлле хлоскэя сопюбкемхъ