AVRASM ver. 1.30 BALK010.ASM Sat Jan 16 00:51:44 2016 ;-------------- REGISTERS ------------------------------ .INCLUDE "SH328.ASM" .MACRO L RCALL @0 .ENDM .MACRO J RJMP @0 .ENDM .MACRO LL CALL @0 .ENDM .MACRO JL JMP @0 .ENDM .MACRO PE CPSE @0,@1 .ENDM .MACRO PC SBRC @0,@1 .ENDM .MACRO PS SBRS @0,@1 .ENDM .MACRO PCP SBIC @0,@1 .ENDM .MACRO PSP SBIS @0,@1 .ENDM .MACRO JC SBRS @0,@1 RJMP @2 .ENDM .MACRO JS SBRC @0,@1 RJMP @2 .ENDM ;--------------------- .MACRO BEI CPI @0,@1 BRBS 1,@2 .ENDM .MACRO BNEI CPI @0,@1 BRBC 1,@2 .ENDM .MACRO BLI CPI @0,@1 BRBS 0,@2 .ENDM .MACRO BNLI CPI @0,@1 BRBC 0,@2 .ENDM ;--------------------- .MACRO BZR @0,@1 TST @0 BRBS 1,@1 .ENDM .MACRO BZW @0,@1,@2 TST @0 BRBC 1,M2 TST @1 M2: BRBS 1,@2 .ENDM ;-------------------- .MACRO BNZR @0,@1 TST @0 BRBC 1,@1 .ENDM .MACRO BNZW @0,@1,@2 TST @0 BRBS 1,M3 TST @1 M3: BRBC 1,@2 .ENDM ;-------------------- .MACRO JCP SBIS @0,@1 RJMP @2 .ENDM .MACRO JSP SBIC @0,@1 RJMP @2 .ENDM .MACRO LC SBRS @0,@1 RCALL @2 .ENDM .MACRO LS SBRC @0,@1 RCALL @2 .ENDM .MACRO LCP SBIS @0,@1 RCALL @2 .ENDM .MACRO LSP SBIC @0,@1 RCALL @2 .ENDM .MACRO SB @0,@1 SET BLD @0,@1 .ENDM .MACRO CB @0,@1 CLT BLD @0,@1 .ENDM .MACRO MOVB @0,@1,@2,@3 BST @2,@3 BLD @0,@1 .ENDM .MACRO LPI LDI W0,@1 OUT @0,W0 .ENDM .MACRO LMI LDI W0,@1 STS @0,W0 .ENDM .MACRO LRI LDI W0,@1 MOV @0,W0 .ENDM .MACRO LDII LDI @0,@2 LDI @1,@3 .ENDM .MACRO INW IN @1,@3 IN @0,@2 .ENDM .MACRO OUTW OUT @0,@2 OUT @1,@3 .ENDM .MACRO LRII LDI W0,@2 MOV @0,W0 LDI W0,@3 MOV @1,W0 .ENDM ;----------------------------- .MACRO CLRW CLR @0 CLR @1 .ENDM .MACRO CLR2W CLR @0 CLR @1 CLR @2 CLR @3 .ENDM ;----------------------------- .MACRO MOD @0,@1 NEG @1 BRBC 1,M1 DEC @0 M1: COM @0 .ENDM ;----------------------------- .MACRO MOVV MOV @0,@2 MOV @1,@3 .ENDM .MACRO LDZ @0,@1 LDD @0,Z+@1 .ENDM .MACRO STZ @0,@1 STD Z+@0,@1 .ENDM .MACRO LDY @0,@1 LDD @0,Y+@1 .ENDM .MACRO STY @0,@1 STD Y+@0,@1 .ENDM .MACRO LDZW @0,@1,@2,@3 LDD @0,Z+@2 LDD @1,Z+@3 .ENDM .MACRO STZW @0,@1,@2,@3 STD Z+@0,@2 STD Z+@1,@3 .ENDM .MACRO LDYW @0,@1,@2,@3 LDD @0,Y+@2 LDD @1,Y+@3 .ENDM .MACRO STYW @0,@1,@2,@3 STD Y+@0,@2 STD Y+@1,@3 .ENDM .macro LDSW LDS @0,@2 LDS @1,@3 .endm .macro STSW STS @0,@2 STS @1,@3 .endm ;========================== .MACRO ADDW @0,@1,@2,@3 ADD @1,@3 ADC @0,@2 .ENDM .MACRO ADD2W @0,@1,@2,@3,@4,@5,@6,@7 ADD @3,@7 ADC @2,@6 ADC @1,@5 ADC @0,@4 .ENDM ;========================== .MACRO SUBW @0,@1,@2,@3 SUB @1,@3 SBC @0,@2 .ENDM .MACRO SUB2W @0,@1,@2,@3,@4,@5,@6,@7 SUB @3,@7 SBC @2,@6 SBC @1,@5 SBC @0,@4 .ENDM ;========================== .MACRO SUBII @0,@1,@2,@3 SUBI @1,@3 SBCI @0,@2 .ENDM ;========================== .MACRO CPW @0,@1,@2,@3 CP @1,@3 CPC @0,@2 .ENDM .MACRO CP2W @0,@1,@2,@3,@4,@5,@6,@7 CP @3,@7 CPC @2,@6 CPC @1,@5 CPC @0,@4 .ENDM ;========================== .MACRO LSLW @0,@1 LSL @1 ROL @0 .ENDM .MACRO LSL2W @0,@1,@2,@3 LSL @3 ROL @2 ROL @1 ROL @0 .ENDM ;-------------------------- .MACRO ROLW @0,@1 ROL @1 ROL @0 .ENDM .MACRO ROL2W @0,@1,@2,@3 ROL @3 ROL @2 ROL @1 ROL @0 .ENDM ;========================== .MACRO LSRW @0,@1 LSR @0 ROR @1 .ENDM .MACRO LSR2W @0,@1,@2,@3 LSR @0 ROR @1 ROR @2 ROR @3 .ENDM ;-------------------------- .MACRO RORW @0,@1 ROR @0 ROR @1 .ENDM .MACRO ROR2W @0,@1,@2,@3 ROR @0 ROR @1 ROR @2 ROR @3 .ENDM ;========================== .MACRO LMM LDS W0,@1 STS @0,W0 .ENDM .MACRO LDA LDS YL,@1 LD @0,Y .ENDM .MACRO DBZ DEC @0 BRBS 1,@1 .ENDM .MACRO IBZ INC @0 BRBS 1,@1 .ENDM .MACRO DBNZ DEC @0 BRBC 1,@1 ; BRBS 2,@1 ; COM @0 .ENDM .MACRO IBNZ INC @0 BRBC 1,@1 .ENDM .MACRO BE BRBS 1,@0 .ENDM .MACRO BNE BRBC 1,@0 .ENDM .MACRO BZ BRBS 1,@0 .ENDM .MACRO BNZ BRBC 1,@0 .ENDM .MACRO BL BRBS 0,@0 .ENDM .MACRO BNL BRBC 0,@0 .ENDM .MACRO BS BRBS @0,@1 .ENDM .MACRO BC BRBC @0,@1 .ENDM .MACRO BSC BRCS @0 .ENDM .MACRO BCC BRCC @0 .ENDM .MACRO OI SBI PD,1 .ENDM .MACRO IO CBI PD,1 .ENDM ;============================================================ .LISTMAC .EQU iB =0x03 ;35 .EQU dB =0x04 ;36 .EQU B =0x05 ;37 .EQU iC =0x06 ;38 .EQU dC =0x07 ;39 .EQU C =0x08 ;40 .EQU iD =0x09 ;41 .EQU dD =0x0A ;42 .EQU D =0x0B ;43 .EQU TIFR0 =0x15 ;53 .EQU TIFR1 =0x16 ;54 .EQU TIFR2 =0x17 ;55 .EQU PCIFR =0x1B ;59 .EQU EIFR =0x1C ;60 .EQU EIMSK =0x1D ;61 .EQU GPIOR0 =0x1E ;62 .EQU EECR =0x1F ;63 ;------- .EQU EEDR =0x20 ;64 .EQU EEARL =0x21 ;65 .EQU EEARH =0x22 ;66 .EQU GTCCR =0x23 ;67 .EQU TCCR0A =0x24 ;68 .EQU TCCR0B =0x25 ;69 .EQU TCNT0 =0x26 ;70 .EQU OCR0A =0x27 ;71 .EQU OCR0B =0x28 ;72 .EQU GPIOR1 =0x2A ;74 .EQU GPIOR2 =0x2B ;75 .EQU SPCR =0x2C ;76 .EQU SPSR =0x2D ;77 .EQU SPDR =0x2E ;78 .EQU ACSR =0x30 ;80 .EQU SMCR =0x33 ;83 .EQU MCUSR =0x34 ;84 .EQU MCUCR =0x35 ;85 .EQU SPMCSR =0x37 ;87 .EQU SPL =0x3D ;93 .EQU SPH =0x3E ;94 .EQU SREG =0x3F ;95 ;==================== .EQU WDTCSR =0x60 ;96 .EQU CLKPR =0x61 ;97 .EQU PRR =0x64 ;100 .EQU OSCAL =0x66 ;102 .EQU PCICR =0x68 ;104 .EQU EICRA =0x69 ;105 .EQU PCMSK0 =0x6B ;107 .EQU PCMSK1 =0x6C ;108 .EQU PCMSK2 =0x6D ;109 .EQU TIMSK0 =0x6E ;110 .EQU TIMSK1 =0x6F ;111 .EQU TIMSK2 =0x70 ;112 .EQU ADCL =0x78 ;120 .EQU ADCH =0x79 ;121 .EQU ADCSRA =0x7A ;122 .EQU ADCSRB =0x7B ;123 .EQU ADMUX =0x7C ;124 .EQU DIDR0 =0x7E ;126 .EQU DIDR1 =0x7F ;127 .EQU TCCR1A =0x80 ;128 .EQU TCCR1B =0x81 ;129 .EQU TCCR1C =0x82 ;130 .EQU TCNT1L =0x84 ;132 .EQU TCNT1H =0x85 ;133 .EQU ICR1L =0x86 ;134 .EQU ICR1H =0x87 ;135 .EQU OCR1AL =0x88 ;136 .EQU OCR1AH =0x89 ;137 .EQU OCR1BL =0x8A ;138 .EQU OCR1BH =0x8B ;139 .EQU TCCR2A =0xB0 ;176 .EQU TCCR2B =0xB1 ;177 .EQU TCNT2 =0xB2 ;178 .EQU OCR2A =0xB3 ;179 .EQU OCR2B =0xB4 ;180 .EQU ASSR =0xB6 ;182 .EQU TWBR =0xB8 ;184 .EQU TWSR =0xB9 ;185 .EQU TWAR =0xBA ;186 .EQU TWDR =0xBB ;187 .EQU TWCR =0xBC ;188 .EQU TWAMR =0xBD ;189 .EQU UCSR0A =0xC0 ;192 .EQU UCSR0B =0xC1 ;193 .EQU UCSR0C =0xC2 ;194 .EQU UBRR0L =0xC4 ;196 .EQU UBRR0H =0xC5 ;197 .EQU UDR0 =0xC6 ;198 ;---------------------------------- .DEF RR0 =R0 .DEF RR1 =R1 .DEF RR2 =R2 .DEF RR3 =R3 .DEF RR4 =R4 .DEF RR5 =R5 .DEF RR6 =R6 .DEF RR7 =R7 .DEF RR8 =R8 .DEF RR9 =R9 .EQU R0 =0 .EQU R1 =1 .EQU R2 =2 .EQU R3 =3 .EQU R4 =4 .EQU R5 =5 .EQU R6 =6 .EQU R7 =7 .EQU R8 =8 .EQU R9 =9 .DEF W0 =R16 .EQU W0 =16 .DEF W1 =R17 .EQU W1 =17 .DEF W2 =R18 .EQU W2 =18 .DEF Q1 =R19 .EQU Q1 =19 .DEF Q2 =R20 .EQU Q2 =20 .DEF Q3 =R21 .EQU Q3 =21 .DEF Q4 =R22 .EQU Q4 =22 .DEF Q5 =R23 .EQU Q5 =23 .DEF XL =R26 .DEF XH =R27 .DEF YL =R28 .DEF YH =R29 .DEF ZL =R30 .DEF ZH =R31 .EQU X =R27:R26 .EQU Y =R29:R28 .EQU Z =R31:R30 ;========================================================= .DEF CSEC =R10 .DEF CMIN =R11 .DEF CMAX =R12 .DEF TIM1 =R13 .DEF TIM2 =R14 .DEF CTIM =R15 .DEF RS =R24 .DEF RSA =R25 .DEF XL =R26 .DEF RSR =R27 .DEF YL =R28 .DEF CCJ =R29 .DEF ZL =R30 .DEF ZH =R31 ;---- RS --------- .EQU BOWL =7 .EQU BOWR =6 .EQU AOD =5 .EQU LOR =4 .EQU YKN =3 .EQU IZM =2 .EQU SEC =1 .EQU GEN =0 ;---- XL for REG - .EQU LIM =7 .EQU BOW =6 .EQU CIRC =5 ;.EQU --- =4 ;.EQU --- =3 ;.EQU --- =2 ;.EQU --- =1 ;.EQU --- =0 ;----- PB -------- ;.EQU (XT) =7 .EQU TSU3 =6 .EQU NET =5 .EQU KOTJ =4 ;.EQU =3 .EQU SSTI =2 .EQU KSTI =1 .EQU TOKR =0 ;----- PC -------- ;.EQU (RESET) =6 .EQU INET =5 .EQU KNOP =4 .EQU SIG =3 ;.EQU =2 ;.EQU =1 ;.EQU =0 ;----- PD -------- ;.EQU =7 ;.EQU =6 .EQU OUT2 =5 .EQU OUT1 =4 .EQU INN2 =3 .EQU INN1 =2 ;.EQU =1 ;.EQU =0 ;----- GR0 ------ ;.EQU YEE =7 ;.EQU GOT =6 ;.EQU SONR =5 ;Select Or No Rejim ;.EQU HOC =4 ;.EQU RAZT =3 ;RAZreshen Tormoz ;.EQU =2 ;.EQU BLKOM =1 ;BLok KOMpressor ;.EQU BLKLA =0 ;BLoK KLApan ;----- RSR ------ .EQU ZNB =7 .EQU GOT =6 .EQU ZND =5 .EQU HOC =4 ;Heater Or Cooler .EQU TAKT =3 .EQU STVL =2 ;STabilisation VLag .EQU SOW =1 ;Stop Or Work .EQU USK =0 ;USKoritel fltt ;------ RSA ------ .EQU AVA1 =7 .EQU AVA2 =6 .EQU rsa5 =5 .EQU rsa4 =4 .EQU rsa3 =3 .EQU rsa2 =2 .EQU rsa1 =1 .EQU rsa0 =0 ;======================================================== .CSEG 000000 + JL NNN ; 00 Reset 000000 940c 0034 JMP nnn .ENDM 000002 + JL INT0 ; 04 IRQ0 000002 940c 0059 JMP int0 .ENDM ; RETI ; RETI 000004 + JL INT1 ; 08 IRQ1 000004 940c 0067 JMP int1 .ENDM ; RETI ; RETI 000006 9518 RETI ;PCINT0 ; 12 PCINT0 000007 9518 RETI 000008 9518 RETI ;PCINT1 ; 16 PCINT1 000009 9518 RETI 00000a 9518 RETI ;PCINT2 ; 20 PCINT2 00000b 9518 RETI 00000c 9518 RETI ;WDT ; 24 Watchdog Timer 00000d 9518 RETI 00000e 9518 RETI ;TIM2_COMPA ; 28 Timer2 Compare A 00000f 9518 RETI 000010 9518 RETI ;TIM2_COMPB ; 32 Timer2 Compare B 000011 9518 RETI 000012 9518 RETI ;TIM2_OVF ; 36 Timer2 Overflow 000013 9518 RETI 000014 9518 RETI ;TIM1_CAPT ; 40 Timer1 Capture 000015 9518 RETI 000016 + JL T1COMA ; 44 Timer1 Compare A 000016 940c 0076 JMP t1coma .ENDM 000018 + JL T1COMB ; 48 Timer1 Compare B 000018 940c 0077 JMP t1comb .ENDM 00001a + JL T1OVF ; 52 Timer1 Overflow 00001a 940c 0075 JMP t1ovf .ENDM 00001c 9518 RETI ;TIM0_COMPA ; 56 Timer0 Compare A 00001d 9518 RETI 00001e 9518 RETI ;TIM0_COMPB ; 60 Timer0 Compare B 00001f 9518 RETI 000020 9518 RETI ;TIM0_OVF ; 64 Timer0 Overflow 000021 9518 RETI 000022 9518 RETI ;SPI_STC ; 68 SPI Transfer Complete 000023 9518 RETI 000024 9518 RETI ;USART_RXC ; 72 USART, RX Complete 000025 9518 RETI 000026 9518 RETI ;USART_UDRE ; 76 USART, UDR Empty 000027 9518 RETI 000028 9518 RETI ;USART_TXC ; 80 USART, TX Complete 000029 9518 RETI 00002a 9518 RETI ;ADC ; 84 ADC Conversion Complete 00002b 9518 RETI 00002c 9518 RETI ;EE_RDY ; 88 EEPROM Ready 00002d 9518 RETI 00002e 9518 RETI ;ANA_COMP ; 92 Analog Comparator 00002f 9518 RETI 000030 9518 RETI ;TWI ; 96 2-wire Serial Interface 000031 9518 RETI 000032 9518 RETI ;SPM_RDY ;100 Store Program Memory Ready 000033 9518 RETI ;======================================================= 000034 + NNN: LDII W1,W2,4,0 000034 e014 LDI w1,0x4 000035 e020 LDI w2,0x0 .ENDM 000036 + OUTW SPH,SPL,W1,W2 000036 bf1e OUT sph,w1 000037 bf2d OUT spl,w2 .ENDM ;------- 000038 + INI: LPI dB, $00 ;0000 0000 000038 e000 LDI W0,0x0 000039 b904 OUT db,W0 .ENDM 00003a + LPI dC, $00 ;xR00 0000 00003a e000 LDI W0,0x0 00003b b907 OUT dc,W0 .ENDM 00003c + LPI dD, $30 ;0011 0000 00003c e300 LDI W0,0x30 00003d b90a OUT dd,W0 .ENDM 00003e + LPI B, $FF ;1111 1111 00003e ef0f LDI W0,0xff 00003f b905 OUT b,W0 .ENDM 000040 + LPI C, $FF ;1111 1111 000040 ef0f LDI W0,0xff 000041 b908 OUT c,W0 .ENDM 000042 + LPI D, $CF ;1100 1111 000042 ec0f LDI W0,0xcf 000043 b90b OUT d,W0 .ENDM 000044 + LMI EICRA, $0A ;0000 1010 -\_ int 02,04 000044 e00a LDI W0,0xa 000045 9300 0069 STS eicra,W0 .ENDM 000047 + LPI EIMSK, $03 ;0000 0011 int 02,04 onn 000047 e003 LDI W0,0x3 000048 bb0d OUT eimsk,W0 .ENDM 000049 + LMI TCCR1A,$00 ;0000 0000 PWM off 000049 e000 LDI W0,0x0 00004a 9300 0080 STS tccr1a,W0 .ENDM 00004c + LMI TCCR1B,$04 ;0000 0100 clk : 256 00004c e004 LDI W0,0x4 00004d 9300 0081 STS tccr1b,W0 .ENDM 00004f + LMI TCCR1C,$00 ;0000 0000 00004f e000 LDI W0,0x0 000050 9300 0082 STS tccr1c,W0 .ENDM 000052 + LMI TIMSK1,$07 ;0000 0111 int 22,24,26 onn 000052 e007 LDI W0,0x7 000053 9300 006f STS timsk1,W0 .ENDM 000055 95a8 WDR 000056 9478 NN4: SEI ;NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 000057 + RA0: L Z100 000057 d02a RCALL z100 .ENDM 000058 + J RA0 000058 cffe RJMP ra0 .ENDM ; IN Q1,EIMSK ; PC Q1,0 ; SBI D,OUT1 ; PC Q1,1 ; SBI D,OUT2 ; L Z1S ; L Z1S ; L Z1S ; CBI D,OUT1 ; CBI D,OUT2 ; INC Q1 ; BLI Q1,4,RA1 ; CLR Q1 ;RA1: OUT EIMSK,Q1 ; J RA0 ;PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP 000059 930f INT0: PUSH W0 00005a b70f IN W0,SREG 00005b 930f PUSH W0 00005c 931f PUSH W1 00005d 932f PUSH W2 00005e 985c CBI D,OUT1 00005f + L Z4 00005f d01c RCALL z4 .ENDM 000060 985c CBI D,OUT1 000061 912f POP W2 000062 911f POP W1 000063 910f POP W0 000064 bf0f OUT SREG,W0 000065 910f POP W0 000066 9518 RETI 000067 930f INT1: PUSH W0 000068 b70f IN W0,SREG 000069 930f PUSH W0 00006a 931f PUSH W1 00006b 932f PUSH W2 00006c 985d CBI D,OUT2 00006d + L Z4 00006d d00e RCALL z4 .ENDM 00006e 985d CBI D,OUT2 00006f 912f POP W2 000070 911f POP W1 000071 910f POP W0 000072 bf0f OUT SREG,W0 000073 910f POP W0 000074 9518 RETI 000075 9518 T1OVF: RETI 000076 9518 T1COMA: RETI 000077 9518 T1COMB: RETI ;ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ ;ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 000078 + ZTIGN: LDII W1,W2,0,94 000078 e010 LDI w1,0x0 000079 e52e LDI w2,0x5e .ENDM 00007a e001 LDI W0,1 00007b + J TT1 00007b c00f RJMP tt1 .ENDM ;------- 00007c e001 Z4: LDI W0,1 00007d + J TIME 00007d c00b RJMP time .ENDM 00007e e002 Z8: LDI W0,2 00007f + J TIME 00007f c009 RJMP time .ENDM ;Z12: LDI W0,3 ; J TIME ;Z24: LDI W0,6 ; J TIME 000080 e00c Z48: LDI W0,12 000081 + J TIME 000081 c007 RJMP time .ENDM 000082 e109 Z100: LDI W0,25 000083 + J TIME 000083 c005 RJMP time .ENDM 000084 e30e Z250: LDI W0,62 000085 + J TIME 000085 c003 RJMP time .ENDM 000086 e70d Z500: LDI W0,125 000087 + J TIME 000087 c001 RJMP time .ENDM 000088 ef0a Z1S: LDI W0,250 000089 + TIME: LDII W1,W2,62,128 000089 e31e LDI w1,0x3e 00008a e820 LDI w2,0x80 .ENDM 00008b + TT1: SUBII W1,W2,0,1 00008b 5021 SUBI w2,0x1 00008c 4010 SBCI w1,0x0 .ENDM 00008d + BCC TT1 00008d f7e8 BRCC tt1 .ENDM 00008e 95a8 WDR 00008f + DBNZ W0,TIME 00008f 950a DEC w0 000090 f7c1 BRBC 1,time .ENDM 000091 95a8 ZZZ: WDR 000092 9508 ZZZZ: RET ;======= 000093 + TEM: CLRW R0,R1 000093 2400 CLR r0 000094 2411 CLR r1 .ENDM 000095 + CLRW R2,R3 000095 2422 CLR r2 000096 2433 CLR r3 .ENDM 000097 + CLRW R4,R5 000097 2444 CLR r4 000098 2455 CLR r5 .ENDM 000099 + CLR69: CLRW R6,R7 000099 2466 CLR r6 00009a 2477 CLR r7 .ENDM 00009b + CLRW R8,R9 00009b 2488 CLR r8 00009c 2499 CLR r9 .ENDM 00009d 9508 RET .EXIT Assembly complete with no errors.