mirror of
https://github.com/sergeyyarkov/attiny2313a_thermostat.git
synced 2026-10-11 02:08:52 +03:00
buzzer
This commit is contained in:
parent
bf91136115
commit
d9346953f4
@ -45,7 +45,12 @@
|
|||||||
.EQU SW_MINUS_PIN = PB3 ; Кнопка "Плюс"
|
.EQU SW_MINUS_PIN = PB3 ; Кнопка "Плюс"
|
||||||
.EQU SW_SET_PIN = PB4 ; Кнопка "Установить"
|
.EQU SW_SET_PIN = PB4 ; Кнопка "Установить"
|
||||||
|
|
||||||
.EQU UART_RX_PIN = PD0
|
.EQU BUZZER_PIN = PB5 ; Пищалка
|
||||||
|
.EQU BUZZER_PORT = PORTB
|
||||||
|
|
||||||
|
.EQU RELAY_PIN = PD0 ; Реле
|
||||||
|
.EQU RELAY_PORT = PORTD
|
||||||
|
|
||||||
.EQU UART_TX_PIN = PD1
|
.EQU UART_TX_PIN = PD1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -7,56 +7,57 @@
|
|||||||
:10004A000F935FB74091670045300CF403C0442713
|
:10004A000F935FB74091670045300CF403C0442713
|
||||||
:10005A0040936700403081F49398949895980EF0F5
|
:10005A0040936700403081F49398949895980EF0F5
|
||||||
:10006A0002C00BE002C000916500002311F0929AD1
|
:10006A0002C00BE002C000916500002311F0929AD1
|
||||||
:10007A0001C0929869D1E4D0413041F492989498A1
|
:10007A0001C092985ED1D9D0413041F492989498B7
|
||||||
:10008A009598939A009164005FD1DAD0423059F47E
|
:10008A009598939A0091640054D1CFD0423059F494
|
||||||
:10009A00929893989598949A0091630055D1002D5F
|
:10009A00929893989598949A009163004AD1002D6A
|
||||||
:1000AA000F77002ECDD0433041F4929893989498CC
|
:1000AA000F77002EC2D0433041F4929893989498D7
|
||||||
:1000BA00959A00916C0048D1C3D04395409367004C
|
:1000BA00959A00916C003DD1B8D043954093670062
|
||||||
:1000CA005FBF0F915F914F9118950FED0DBF0EE72E
|
:1000CA005FBF0F915F914F9118950FED0DBF0EE72E
|
||||||
:1000DA0001BB01EC07BB0CE108BB02E000BF05E075
|
:1000DA0001BB01EE07BB0CE108BB02E000BF05E073
|
||||||
:1000EA0003BF09E106BF01E009BF00E20BBF0CE153
|
:1000EA0003BF09E106BF01E009BF00E20BBF0CE153
|
||||||
:1000FA0000BD03E309B900E002B908E10AB906E064
|
:1000FA0000BD11241092670000E000936000002701
|
||||||
:10010A0003B911241092670000E0009360000027F1
|
:10010A0000936A0000936B0000EF00936C001CD10F
|
||||||
:10011A0000936A0000936B0000EF00936C0080E08C
|
:10011A0080E090E000916000003079F4F0D070FD4A
|
||||||
:10012A0090E000916000003079F4F4D070FD969A66
|
:10012A00969A70FF969877D01AD119D12AD0109141
|
||||||
:10013A0070FF96987BD013D112D12ED010916A00FD
|
:10013A006A00812F10916B00912F013011F4DFD0EA
|
||||||
:10014A00812F10916B00912F013011F4E3D084D0EC
|
:10014A0080D0023039F71BE01093630010936400EB
|
||||||
:10015A00023039F71BE01093630010936400109388
|
:10015A0010936500109366000000DCCFEE24FF18B0
|
||||||
:10016A006500109366000000DCCFEE24FF1841E121
|
:10016A0041E1001F111F4A9509F40895EE1CFF1C76
|
||||||
:10017A00001F111F4A9509F40895EE1CFF1CE21A8C
|
:10017A00E21AF30A20F4E20EF31E8894F2CF0894EE
|
||||||
:10018A00F30A20F4E20EF31E8894F2CF0894F0CF1B
|
:10018A00F0CF0F931F932F933F934F9368D00CECAC
|
||||||
:10019A0041503040E8F708950F931F932F933F93F0
|
:10019A00802E7AD00EEB802E77D0AAE6B0E095D0EA
|
||||||
:1001AA004F9368D00CEC802E7AD00EEB802E77D04D
|
:1001AA00ABE6B0E092D010916A0020916B002F93D9
|
||||||
:1001BA00AAE6B0E095D0ABE6B0E092D010916A0022
|
:1001BA00287F283F11F0E89409C02F916894109580
|
||||||
:1001CA0020916B002F93287F283F11F0E89409C0F3
|
:1001CA00209531E0130F30E0231F01C02F912695AF
|
||||||
:1001DA002F9168941095209531E0130F30E0231F7A
|
:1001DA001795269517952695179526951795309173
|
||||||
:1001EA0001C02F912695179526951795269517954F
|
:1001EA006A000EF43195432F3F70432F330F330FBC
|
||||||
:1001FA002695179530916A000EF43195432F3F707A
|
:1001FA00330F440F340F369536953695369510934E
|
||||||
:10020A00432F330F330F330F440F340F3695369580
|
:10020A006A0020936B0030936C004F913F912F91BD
|
||||||
:10021A003695369510936A0020936B0030936C00E4
|
:10021A001F910F9108950F9322D00CEC802E34D0A9
|
||||||
:10022A004F913F912F911F910F9108950F9322D0D3
|
:10022A0004E4802E31D00F9108950F930FB800E4A3
|
||||||
:10023A000CEC802E34D004E4802E31D00F91089536
|
:10023A000EB90BE10DB9769BFDCFC09AC0980F910C
|
||||||
:10024A000F930FB800E40EB90BE10DB9769BFDCF01
|
:10024A0008950F938CD0B29B0196B39B0197B49BF0
|
||||||
:10025A00C09AC0980F9108950F9381D0B29B0196CE
|
:10025A0001C003C000E0009360000F910895F89474
|
||||||
:10026A00B39B0197B49B01C003C000E000936000F8
|
:10026A00B99A33E04EEB8BD0B99830E04AE887D0A0
|
||||||
:10027A000F910895F894B99A33E04EEB89DFB99853
|
:10027A0005D033E042E383D078940895B19B71604E
|
||||||
:10028A0030E04AE885DF05D033E042E381DF789445
|
:10028A0002C0B1997E7F08950F931F93082D18E03D
|
||||||
:10029A000895B19B716002C0B1997E7F08950F9352
|
:10029A00069508F458F0F894B99A30E046E76FD01A
|
||||||
:1002AA001F93082D18E0069508F458F0F894B99AA7
|
:1002AA00B99830E042E16BD078940AC0F894B99AD0
|
||||||
:1002BA0030E046E76DDFB99830E042E169DF7894D3
|
:1002BA0030E04AE064D0B99830E04EE760D07894F4
|
||||||
:1002CA000AC0F894B99A30E04AE062DFB99830E09F
|
:1002CA001A9531F71F910F9108950F931F930027E5
|
||||||
:1002DA004EE75EDF78941A9531F71F910F910895D2
|
:1002DA0018E0F8940695B99A30E04AE050D0B998F7
|
||||||
:1002EA000F931F93002718E0F8940695B99A30E007
|
:1002EA0030E040E14CD0B199006830E04CE647D0AC
|
||||||
:1002FA004AE04EDFB99830E040E14ADFB199006840
|
:1002FA001A9581F70C9378941F910F910895F894A9
|
||||||
:10030A0030E04CE645DF1A9581F70C9378941F91FB
|
:10030A005F9354E0A3E6B0E08093610090936200AB
|
||||||
:10031A000F910895F8945F9354E0A3E6B0E08093B8
|
:10031A0000916100109162002AE030E01FDFED9247
|
||||||
:10032A0061009093620000916100109162002AE0DE
|
:10032A0000936100109362005A9591F75F91789457
|
||||||
:10033A0030E01BDFED9200936100109362005A9542
|
:10033A0008950F931F93E0EBF3E01127E00FF11FED
|
||||||
:10034A0091F75F91789408950F931F93E4EAF3E08D
|
:10034A0004901F910F910895C59A1DD0C5980895DC
|
||||||
:10035A001127E00FF11F04901F910F9108950F9339
|
:10035A00C59A19D018D017D016D0C59808950F93FA
|
||||||
:10036A001F932F932AE01FEF0FEF0A95F1F71A95C3
|
:10036A001F932F932AE01FEF0FEF0A95F1F71A95C3
|
||||||
:10037A00D9F72A95C1F72F911F910F9108950F93DD
|
:10037A00D9F72A95C1F72F911F910F9108954150EE
|
||||||
:10038A001F930FEF1FEF1A95000000000000D9F726
|
:10038A003040E8F708950F931F932F9326E00FEF5D
|
||||||
:10039A000A95C1F71F910F910895C0F9A4B09992D7
|
:10039A001FEF1A95F1F70A95D9F72A95C1F72F9108
|
||||||
:0603AA0082F880909CBF68
|
:1003AA001F910F910895C0F9A4B0999282F8809094
|
||||||
|
:0203BA009CBFE6
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
@ -1,26 +1,26 @@
|
|||||||
|
|
||||||
AVRASM ver. 2.2.7 main.asm Tue Jun 20 22:15:20 2023
|
AVRASM ver. 2.2.7 main.asm Thu Jun 22 06:32:38 2023
|
||||||
|
|
||||||
[builtin](2): Including file '/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/avrasm/inc\tn2313Adef.inc'
|
[builtin](2): Including file '/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/avrasm/inc\tn2313Adef.inc'
|
||||||
main.asm(15): Including file 'definitions.asm'
|
main.asm(15): Including file 'definitions.asm'
|
||||||
main.asm(16): Including file 'macros.asm'
|
main.asm(16): Including file 'macros.asm'
|
||||||
main.asm(275): Including file 'div16u.asm'
|
main.asm(276): Including file 'div16u.asm'
|
||||||
div16u.asm(22): warning: Register r16 already defined by the .DEF directive
|
div16u.asm(22): warning: Register r16 already defined by the .DEF directive
|
||||||
main.asm(275): 'div16u.asm' included form here
|
main.asm(276): 'div16u.asm' included form here
|
||||||
div16u.asm(23): warning: Register r17 already defined by the .DEF directive
|
div16u.asm(23): warning: Register r17 already defined by the .DEF directive
|
||||||
main.asm(275): 'div16u.asm' included form here
|
main.asm(276): 'div16u.asm' included form here
|
||||||
div16u.asm(24): warning: Register r16 already defined by the .DEF directive
|
div16u.asm(24): warning: Register r16 already defined by the .DEF directive
|
||||||
main.asm(275): 'div16u.asm' included form here
|
main.asm(276): 'div16u.asm' included form here
|
||||||
div16u.asm(25): warning: Register r17 already defined by the .DEF directive
|
div16u.asm(25): warning: Register r17 already defined by the .DEF directive
|
||||||
main.asm(275): 'div16u.asm' included form here
|
main.asm(276): 'div16u.asm' included form here
|
||||||
div16u.asm(27): warning: Register r19 already defined by the .DEF directive
|
div16u.asm(27): warning: Register r19 already defined by the .DEF directive
|
||||||
main.asm(275): 'div16u.asm' included form here
|
main.asm(276): 'div16u.asm' included form here
|
||||||
div16u.asm(28): warning: Register r20 already defined by the .DEF directive
|
div16u.asm(28): warning: Register r20 already defined by the .DEF directive
|
||||||
main.asm(275): 'div16u.asm' included form here
|
main.asm(276): 'div16u.asm' included form here
|
||||||
[builtin](2): Including file '/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/avrasm/inc\tn2313Adef.inc'
|
[builtin](2): Including file '/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151/avrasm/inc\tn2313Adef.inc'
|
||||||
main.asm(15): Including file 'definitions.asm'
|
main.asm(15): Including file 'definitions.asm'
|
||||||
main.asm(16): Including file 'macros.asm'
|
main.asm(16): Including file 'macros.asm'
|
||||||
main.asm(275): Including file 'div16u.asm'
|
main.asm(276): Including file 'div16u.asm'
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -783,7 +783,12 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
.EQU SW_MINUS_PIN = PB3 ; Кнопка "Плюс"
|
.EQU SW_MINUS_PIN = PB3 ; Кнопка "Плюс"
|
||||||
.EQU SW_SET_PIN = PB4 ; Кнопка "Установить"
|
.EQU SW_SET_PIN = PB4 ; Кнопка "Установить"
|
||||||
|
|
||||||
.EQU UART_RX_PIN = PD0
|
.EQU BUZZER_PIN = PB5 ; Пищалка
|
||||||
|
.EQU BUZZER_PORT = PORTB
|
||||||
|
|
||||||
|
.EQU RELAY_PIN = PD0 ; Реле
|
||||||
|
.EQU RELAY_PORT = PORTD
|
||||||
|
|
||||||
.EQU UART_TX_PIN = PD1
|
.EQU UART_TX_PIN = PD1
|
||||||
|
|
||||||
|
|
||||||
@ -918,8 +923,8 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
00003d c001 rjmp PC+2
|
00003d c001 rjmp PC+2
|
||||||
00003e 9892 cbi PORTD, DIGIT_1_PIN
|
00003e 9892 cbi PORTD, DIGIT_1_PIN
|
||||||
; lds TEMP_REG_A, DIGITS+2
|
; lds TEMP_REG_A, DIGITS+2
|
||||||
00003f d169 rcall DISPLAY_DECODER
|
00003f d15e rcall DISPLAY_DECODER
|
||||||
000040 d0e4 rcall USI_TRANSMIT
|
000040 d0d9 rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_2:
|
_indicate_2:
|
||||||
000041 3041 cpi r20, 1
|
000041 3041 cpi r20, 1
|
||||||
@ -935,8 +940,8 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
; rjmp PC+2
|
; rjmp PC+2
|
||||||
; cbi PORTD, DIGIT_1_PIN
|
; cbi PORTD, DIGIT_1_PIN
|
||||||
000047 9100 0064 lds TEMP_REG_A, DIGITS+1
|
000047 9100 0064 lds TEMP_REG_A, DIGITS+1
|
||||||
000049 d15f rcall DISPLAY_DECODER
|
000049 d154 rcall DISPLAY_DECODER
|
||||||
00004a d0da rcall USI_TRANSMIT
|
00004a d0cf rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_3:
|
_indicate_3:
|
||||||
00004b 3042 cpi r20, 2
|
00004b 3042 cpi r20, 2
|
||||||
@ -947,12 +952,12 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
00004f 9895 cbi PORTD, DIGIT_4_PIN
|
00004f 9895 cbi PORTD, DIGIT_4_PIN
|
||||||
000050 9a94 sbi PORTD, DIGIT_3_PIN
|
000050 9a94 sbi PORTD, DIGIT_3_PIN
|
||||||
000051 9100 0063 lds TEMP_REG_A, DIGITS
|
000051 9100 0063 lds TEMP_REG_A, DIGITS
|
||||||
000053 d155 rcall DISPLAY_DECODER
|
000053 d14a rcall DISPLAY_DECODER
|
||||||
; зажигаем точку
|
; зажигаем точку
|
||||||
000054 2d00 mov r16, r0
|
000054 2d00 mov r16, r0
|
||||||
000055 770f cbr r16, (1<<7)
|
000055 770f cbr r16, (1<<7)
|
||||||
000056 2e00 mov r0, r16
|
000056 2e00 mov r0, r16
|
||||||
000057 d0cd rcall USI_TRANSMIT
|
000057 d0c2 rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_4:
|
_indicate_4:
|
||||||
000058 3043 cpi r20, 3
|
000058 3043 cpi r20, 3
|
||||||
@ -963,8 +968,8 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
00005c 9894 cbi PORTD, DIGIT_3_PIN
|
00005c 9894 cbi PORTD, DIGIT_3_PIN
|
||||||
00005d 9a95 sbi PORTD, DIGIT_4_PIN
|
00005d 9a95 sbi PORTD, DIGIT_4_PIN
|
||||||
00005e 9100 006c lds TEMP_REG_A, TEMP_F
|
00005e 9100 006c lds TEMP_REG_A, TEMP_F
|
||||||
000060 d148 rcall DISPLAY_DECODER
|
000060 d13d rcall DISPLAY_DECODER
|
||||||
000061 d0c3 rcall USI_TRANSMIT
|
000061 d0b8 rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_exit:
|
_indicate_exit:
|
||||||
000062 9543 inc r20
|
000062 9543 inc r20
|
||||||
@ -987,9 +992,9 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
MCU_INIT:
|
MCU_INIT:
|
||||||
; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ *************************************
|
; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ *************************************
|
||||||
00006c e70e
|
00006c e70e
|
||||||
00006d bb01 outi r16, DDRD, (1<<LED_ERR_PIN) | (1<<DIGIT_1_PIN) | (1<<DIGIT_2_PIN) | (1<<DIGIT_3_PIN) | (1<<DIGIT_4_PIN) | (0<<UART_RX_PIN) | (1<<UART_TX_PIN)
|
00006d bb01 outi r16, DDRD, (1<<LED_ERR_PIN) | (1<<DIGIT_1_PIN) | (1<<DIGIT_2_PIN) | (1<<DIGIT_3_PIN) | (1<<DIGIT_4_PIN) | (1<<UART_TX_PIN)
|
||||||
00006e ec01
|
00006e ee01
|
||||||
00006f bb07 outi r16, DDRB, (1<<USI_CLK_PIN) | (1<<USI_DO_PIN) | (1<<USI_LATCH_PIN) | (0<<SW_PLUS_PIN) | (0<<SW_MINUS_PIN) | (0<<SW_SET_PIN)
|
00006f bb07 outi r16, DDRB, (1<<USI_CLK_PIN) | (1<<USI_DO_PIN) | (1<<USI_LATCH_PIN) | (0<<SW_PLUS_PIN) | (0<<SW_MINUS_PIN) | (0<<SW_SET_PIN) | (1<<BUZZER_PIN)
|
||||||
000070 e10c
|
000070 e10c
|
||||||
000071 bb08 outi r16, PORTB, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN) | (1<<SW_SET_PIN)
|
000071 bb08 outi r16, PORTB, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN) | (1<<SW_SET_PIN)
|
||||||
|
|
||||||
@ -1010,32 +1015,29 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
00007d bd00 outi r16, PCMSK0, (1<<PCINT2) | (1<<PCINT3) | (1<<PCINT4) ; для кнопок
|
00007d bd00 outi r16, PCMSK0, (1<<PCINT2) | (1<<PCINT3) | (1<<PCINT4) ; для кнопок
|
||||||
|
|
||||||
; **** ИНИЦИАЛИЗАЦИЯ USART **************************************
|
; **** ИНИЦИАЛИЗАЦИЯ USART **************************************
|
||||||
00007e e303
|
; outi r16, UBRRL, LOW(51) ; 9600 БОД
|
||||||
00007f b909 outi r16, UBRRL, LOW(51) ; 9600 БОД
|
; outi r16, UBRRH, HIGH(51) ; 9600 БОД
|
||||||
000080 e000
|
; outi r16, UCSRB, (1<<RXEN) | (1<<TXEN) ; Включение приема и передачии
|
||||||
000081 b902 outi r16, UBRRH, HIGH(51) ; 9600 БОД
|
; outi r16, UCSRC, (1<<UCSZ1) | (1<<UCSZ0) ; Асинхронный режим, 8 бит фрейм, 1 стоповый бит
|
||||||
000082 e108
|
|
||||||
000083 b90a outi r16, UCSRB, (1<<RXEN) | (1<<TXEN) ; Включение приема и передачии
|
|
||||||
000084 e006
|
|
||||||
000085 b903 outi r16, UCSRC, (1<<UCSZ1) | (1<<UCSZ0) ; Асинхронный режим, 8 бит фрейм, 1 стоповый бит
|
|
||||||
|
|
||||||
|
|
||||||
continue:
|
continue:
|
||||||
000086 2411 clr r1
|
00007e 2411 clr r1
|
||||||
000087 9210 0067 sts CURRENT_DIGIT, r1
|
00007f 9210 0067 sts CURRENT_DIGIT, r1
|
||||||
|
|
||||||
000089 e000 ldi r16, 0x00
|
000081 e000 ldi r16, 0x00
|
||||||
00008a 9300 0060 sts MCU_STATE, r16 ; переводим МК сразу в режим измерения температуры
|
000082 9300 0060 sts MCU_STATE, r16 ; переводим МК сразу в режим измерения температуры
|
||||||
|
|
||||||
00008c 2700 clr r16
|
000084 2700 clr r16
|
||||||
00008d 9300 006a sts TEMP_L, r16
|
000085 9300 006a sts TEMP_L, r16
|
||||||
00008f 9300 006b sts TEMP_H, r16
|
000087 9300 006b sts TEMP_H, r16
|
||||||
000091 ef00 ldi r16, 0xf0
|
000089 ef00 ldi r16, 0xf0
|
||||||
000092 9300 006c sts TEMP_F, r16
|
00008a 9300 006c sts TEMP_F, r16
|
||||||
|
|
||||||
|
00008c d11c rcall BEEP_SHORT
|
||||||
|
|
||||||
000094 e080
|
00008d e080
|
||||||
000095 e090 display_load 0 ; загружаем число, которое нужно показать на индикатор
|
00008e e090 display_load 0 ; загружаем число, которое нужно показать на индикатор
|
||||||
|
|
||||||
; sei
|
; sei
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
@ -1044,43 +1046,43 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
|
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
|
||||||
LOOP:
|
LOOP:
|
||||||
; rcall DISPLAY_UPD_DIGITS
|
; rcall DISPLAY_UPD_DIGITS
|
||||||
000096 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК
|
00008f 9100 0060 lds r16, MCU_STATE ; получаем текущее состояние МК
|
||||||
|
|
||||||
_STATE_DEFAULT:
|
_STATE_DEFAULT:
|
||||||
000098 3000 cpi r16, MCU_STATE_DEFAULT
|
000091 3000 cpi r16, MCU_STATE_DEFAULT
|
||||||
000099 f479 brne _STATE_PROGRAM
|
000092 f479 brne _STATE_PROGRAM
|
||||||
00009a d0f4 rcall DISPLAY_UPD_DIGITS
|
000093 d0f0 rcall DISPLAY_UPD_DIGITS
|
||||||
00009b fd70 sbrc OWFR, OWPRF
|
000094 fd70 sbrc OWFR, OWPRF
|
||||||
00009c 9a96 sbi PORTD, PD6
|
000095 9a96 sbi PORTD, PD6
|
||||||
00009d ff70 sbrs OWFR, OWPRF
|
000096 ff70 sbrs OWFR, OWPRF
|
||||||
00009e 9896 cbi PORTD, PD6
|
000097 9896 cbi PORTD, PD6
|
||||||
|
|
||||||
00009f d07b rcall TEMP_CONV
|
000098 d077 rcall TEMP_CONV
|
||||||
0000a0 d113 rcall DEBOUNCE_SW
|
000099 d11a rcall DEBOUNCE_SW
|
||||||
0000a1 d112 rcall DEBOUNCE_SW
|
00009a d119 rcall DEBOUNCE_SW
|
||||||
0000a2 d02e rcall TEMP_RD
|
00009b d02a rcall TEMP_RD
|
||||||
|
|
||||||
0000a3 9110 006a lds r17, TEMP_L
|
00009c 9110 006a lds r17, TEMP_L
|
||||||
0000a5 2f81 mov DISP_NUM_L, r17
|
00009e 2f81 mov DISP_NUM_L, r17
|
||||||
0000a6 9110 006b lds r17, TEMP_H
|
00009f 9110 006b lds r17, TEMP_H
|
||||||
0000a8 2f91 mov DISP_NUM_H, r17
|
0000a1 2f91 mov DISP_NUM_H, r17
|
||||||
|
|
||||||
_STATE_PROGRAM:
|
_STATE_PROGRAM:
|
||||||
0000a9 3001 cpi r16, MCU_STATE_PROGRAM
|
0000a2 3001 cpi r16, MCU_STATE_PROGRAM
|
||||||
0000aa f411 brne _STATE_ERROR
|
0000a3 f411 brne _STATE_ERROR
|
||||||
0000ab d0e3 rcall DISPLAY_UPD_DIGITS
|
0000a4 d0df rcall DISPLAY_UPD_DIGITS
|
||||||
0000ac d084 rcall SW_CHECK_PROCESS
|
0000a5 d080 rcall SW_CHECK_PROCESS
|
||||||
_STATE_ERROR:
|
_STATE_ERROR:
|
||||||
0000ad 3002 cpi r16, MCU_STATE_ERROR
|
0000a6 3002 cpi r16, MCU_STATE_ERROR
|
||||||
0000ae f739 brne LOOP
|
0000a7 f739 brne LOOP
|
||||||
0000af e01b ldi r17, 11
|
0000a8 e01b ldi r17, 11
|
||||||
0000b0 9310 0063 sts DIGITS, r17
|
0000a9 9310 0063 sts DIGITS, r17
|
||||||
0000b2 9310 0064 sts DIGITS+1, r17
|
0000ab 9310 0064 sts DIGITS+1, r17
|
||||||
0000b4 9310 0065 sts DIGITS+2, r17
|
0000ad 9310 0065 sts DIGITS+2, r17
|
||||||
0000b6 9310 0066 sts DIGITS+3, r17
|
0000af 9310 0066 sts DIGITS+3, r17
|
||||||
0000b8 0000 nop
|
0000b1 0000 nop
|
||||||
|
|
||||||
0000b9 cfdc rjmp LOOP
|
0000b2 cfdc rjmp LOOP
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
@ -1118,155 +1120,148 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
;***** Code
|
;***** Code
|
||||||
|
|
||||||
div16u:
|
div16u:
|
||||||
0000ba 24ee clr drem16uL ; clear remainder Low byte
|
0000b3 24ee clr drem16uL ; clear remainder Low byte
|
||||||
0000bb 18ff sub drem16uH,drem16uH ; clear remainder High byte and carry
|
0000b4 18ff sub drem16uH,drem16uH ; clear remainder High byte and carry
|
||||||
0000bc e141 ldi dcnt16u,17 ; init loop counter
|
0000b5 e141 ldi dcnt16u,17 ; init loop counter
|
||||||
d16u_1:
|
d16u_1:
|
||||||
0000bd 1f00 rol dd16uL ; shift left dividend
|
0000b6 1f00 rol dd16uL ; shift left dividend
|
||||||
0000be 1f11 rol dd16uH
|
0000b7 1f11 rol dd16uH
|
||||||
0000bf 954a dec dcnt16u ; decrement counter
|
0000b8 954a dec dcnt16u ; decrement counter
|
||||||
0000c0 f409 brne d16u_2 ; if done
|
0000b9 f409 brne d16u_2 ; if done
|
||||||
0000c1 9508 ret ; return
|
0000ba 9508 ret ; return
|
||||||
d16u_2:
|
d16u_2:
|
||||||
0000c2 1cee rol drem16uL ; shift dividend into remainder
|
0000bb 1cee rol drem16uL ; shift dividend into remainder
|
||||||
0000c3 1cff rol drem16uH
|
0000bc 1cff rol drem16uH
|
||||||
0000c4 1ae2 sub drem16uL,dv16uL ; remainder = remainder - divisor
|
0000bd 1ae2 sub drem16uL,dv16uL ; remainder = remainder - divisor
|
||||||
0000c5 0af3 sbc drem16uH,dv16uH
|
0000be 0af3 sbc drem16uH,dv16uH
|
||||||
0000c6 f420 brcc d16u_3 ; if result negative
|
0000bf f420 brcc d16u_3 ; if result negative
|
||||||
0000c7 0ee2 add drem16uL,dv16uL ; restore remainder
|
0000c0 0ee2 add drem16uL,dv16uL ; restore remainder
|
||||||
0000c8 1ef3 adc drem16uH,dv16uH
|
0000c1 1ef3 adc drem16uH,dv16uH
|
||||||
0000c9 9488 clc ; clear carry to be shifted into result
|
0000c2 9488 clc ; clear carry to be shifted into result
|
||||||
0000ca cff2 rjmp d16u_1 ; else
|
0000c3 cff2 rjmp d16u_1 ; else
|
||||||
d16u_3:
|
d16u_3:
|
||||||
0000cb 9408 sec ; set carry to be shifted into result
|
0000c4 9408 sec ; set carry to be shifted into result
|
||||||
0000cc cff0
|
0000c5 cff0
|
||||||
DELAY_LOOP_16:
|
|
||||||
0000cd 5041 subi DELAY_8_r, 1
|
|
||||||
0000ce 4030 sbci DELAY_16_r, 0
|
|
||||||
0000cf f7e8 brcc DELAY_LOOP_16
|
|
||||||
0000d0 9508 ret
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: чтение и опрос температуры">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: чтение и опрос температуры">
|
||||||
TEMP_RD:
|
TEMP_RD:
|
||||||
0000d1 930f push r16
|
0000c6 930f push r16
|
||||||
0000d2 931f push r17
|
0000c7 931f push r17
|
||||||
0000d3 932f push r18
|
0000c8 932f push r18
|
||||||
0000d4 933f push r19
|
0000c9 933f push r19
|
||||||
0000d5 934f push r20
|
0000ca 934f push r20
|
||||||
; cli
|
; cli
|
||||||
|
|
||||||
0000d6 d068 rcall OW_PRESENCE
|
0000cb d068 rcall OW_PRESENCE
|
||||||
0000d7 ec0c ldi r16, DS18B20_CMD_SKIPROM
|
0000cc ec0c ldi r16, DS18B20_CMD_SKIPROM
|
||||||
0000d8 2e80 mov OW_CMD_r, r16
|
0000cd 2e80 mov OW_CMD_r, r16
|
||||||
0000d9 d07a rcall OW_SEND_BYTE
|
0000ce d07a rcall OW_SEND_BYTE
|
||||||
|
|
||||||
0000da eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
|
0000cf eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
|
||||||
0000db 2e80 mov OW_CMD_r, r16
|
0000d0 2e80 mov OW_CMD_r, r16
|
||||||
0000dc d077 rcall OW_SEND_BYTE
|
0000d1 d077 rcall OW_SEND_BYTE
|
||||||
|
|
||||||
0000dd e6aa ldi XL, LOW(TEMP_L)
|
0000d2 e6aa ldi XL, LOW(TEMP_L)
|
||||||
0000de e0b0 ldi XH, HIGH(TEMP_L)
|
0000d3 e0b0 ldi XH, HIGH(TEMP_L)
|
||||||
0000df d095 rcall OW_RD_BYTE
|
0000d4 d095 rcall OW_RD_BYTE
|
||||||
|
|
||||||
0000e0 e6ab ldi XL, LOW(TEMP_H)
|
0000d5 e6ab ldi XL, LOW(TEMP_H)
|
||||||
0000e1 e0b0 ldi XH, HIGH(TEMP_H)
|
0000d6 e0b0 ldi XH, HIGH(TEMP_H)
|
||||||
0000e2 d092 rcall OW_RD_BYTE
|
0000d7 d092 rcall OW_RD_BYTE
|
||||||
|
|
||||||
0000e3 9110 006a lds r17, TEMP_L
|
0000d8 9110 006a lds r17, TEMP_L
|
||||||
0000e5 9120 006b lds r18, TEMP_H
|
0000da 9120 006b lds r18, TEMP_H
|
||||||
|
|
||||||
0000e7 932f push r18
|
0000dc 932f push r18
|
||||||
0000e8 7f28 cbr r18, (1<<0) | (1<<1) | (1<<2) ; убираем ненужные биты на время (интересуют последних битов в TEMP_H)
|
0000dd 7f28 cbr r18, (1<<0) | (1<<1) | (1<<2) ; убираем ненужные биты на время (интересуют последних битов в TEMP_H)
|
||||||
0000e9 3f28 cpi r18, 0xf8 ; проверяется является ли число минусовой
|
0000de 3f28 cpi r18, 0xf8 ; проверяется является ли число минусовой
|
||||||
0000ea f011 breq _TEMP_RD_TO_UNSIGNED ; если да то конвертируем в беззнаковое число
|
0000df f011 breq _TEMP_RD_TO_UNSIGNED ; если да то конвертируем в беззнаковое число
|
||||||
0000eb 94e8 clt
|
0000e0 94e8 clt
|
||||||
0000ec c009 rjmp _TEMP_RD_CONTINUE ; если нет то преобразуем значение АЦП в температуру (делим на 16)
|
0000e1 c009 rjmp _TEMP_RD_CONTINUE ; если нет то преобразуем значение АЦП в температуру (делим на 16)
|
||||||
|
|
||||||
_TEMP_RD_TO_UNSIGNED:
|
_TEMP_RD_TO_UNSIGNED:
|
||||||
0000ed 912f pop r18
|
0000e2 912f pop r18
|
||||||
0000ee 9468 set
|
0000e3 9468 set
|
||||||
0000ef 9510 com r17
|
0000e4 9510 com r17
|
||||||
0000f0 9520 com r18
|
0000e5 9520 com r18
|
||||||
0000f1 e031 ldi r19, 1
|
0000e6 e031 ldi r19, 1
|
||||||
0000f2 0f13 add r17, r19
|
0000e7 0f13 add r17, r19
|
||||||
0000f3 e030 ldi r19, 0
|
0000e8 e030 ldi r19, 0
|
||||||
0000f4 1f23 adc r18, r19
|
0000e9 1f23 adc r18, r19
|
||||||
0000f5 c001 rjmp PC+2
|
0000ea c001 rjmp PC+2
|
||||||
|
|
||||||
_TEMP_RD_CONTINUE: ; Температура = Число с АЦП / 16 (сдвиг вправо 4)
|
_TEMP_RD_CONTINUE: ; Температура = Число с АЦП / 16 (сдвиг вправо 4)
|
||||||
0000f6 912f pop r18
|
0000eb 912f pop r18
|
||||||
0000f7 9526 lsr r18
|
0000ec 9526 lsr r18
|
||||||
0000f8 9517 ror r17
|
0000ed 9517 ror r17
|
||||||
0000f9 9526 lsr r18
|
0000ee 9526 lsr r18
|
||||||
0000fa 9517 ror r17
|
0000ef 9517 ror r17
|
||||||
0000fb 9526 lsr r18
|
0000f0 9526 lsr r18
|
||||||
0000fc 9517 ror r17
|
0000f1 9517 ror r17
|
||||||
0000fd 9526 lsr r18
|
0000f2 9526 lsr r18
|
||||||
0000fe 9517 ror r17
|
0000f3 9517 ror r17
|
||||||
_TEMP_RD_END:
|
_TEMP_RD_END:
|
||||||
0000ff 9130 006a lds r19, TEMP_L
|
0000f4 9130 006a lds r19, TEMP_L
|
||||||
000101 f40e brtc PC+2
|
0000f6 f40e brtc PC+2
|
||||||
000102 9531 neg r19 ; переводим в беззнаковое число если минус
|
0000f7 9531 neg r19 ; переводим в беззнаковое число если минус
|
||||||
|
|
||||||
; далее происходит такое для получения дробной части:
|
; далее происходит такое для получения дробной части:
|
||||||
; ((n<<3) + (n<<1))>>4 или (n*10)/16
|
; ((n<<3) + (n<<1))>>4 или (n*10)/16
|
||||||
000103 2f43 mov r20, r19
|
0000f8 2f43 mov r20, r19
|
||||||
000104 703f andi r19, 0x0f
|
0000f9 703f andi r19, 0x0f
|
||||||
000105 2f43 mov r20, r19
|
0000fa 2f43 mov r20, r19
|
||||||
000106 0f33 lsl r19
|
0000fb 0f33 lsl r19
|
||||||
000107 0f33 lsl r19
|
0000fc 0f33 lsl r19
|
||||||
000108 0f33 lsl r19
|
0000fd 0f33 lsl r19
|
||||||
|
|
||||||
000109 0f44 lsl r20
|
0000fe 0f44 lsl r20
|
||||||
|
|
||||||
00010a 0f34 add r19, r20
|
0000ff 0f34 add r19, r20
|
||||||
|
|
||||||
00010b 9536 lsr r19
|
000100 9536 lsr r19
|
||||||
00010c 9536 lsr r19
|
000101 9536 lsr r19
|
||||||
00010d 9536 lsr r19
|
000102 9536 lsr r19
|
||||||
00010e 9536 lsr r19
|
000103 9536 lsr r19
|
||||||
|
|
||||||
; записываем данные
|
; записываем данные
|
||||||
00010f 9310 006a sts TEMP_L, r17
|
000104 9310 006a sts TEMP_L, r17
|
||||||
000111 9320 006b sts TEMP_H, r18
|
000106 9320 006b sts TEMP_H, r18
|
||||||
000113 9330 006c sts TEMP_F, r19
|
000108 9330 006c sts TEMP_F, r19
|
||||||
|
|
||||||
; sei
|
; sei
|
||||||
000115 914f pop r20
|
00010a 914f pop r20
|
||||||
000116 913f pop r19
|
00010b 913f pop r19
|
||||||
000117 912f pop r18
|
00010c 912f pop r18
|
||||||
000118 911f pop r17
|
00010d 911f pop r17
|
||||||
000119 910f pop r16
|
00010e 910f pop r16
|
||||||
00011a 9508 ret
|
00010f 9508 ret
|
||||||
;
|
;
|
||||||
TEMP_CONV:
|
TEMP_CONV:
|
||||||
00011b 930f push r16
|
000110 930f push r16
|
||||||
; cli
|
; cli
|
||||||
|
|
||||||
00011c d022 rcall OW_PRESENCE
|
000111 d022 rcall OW_PRESENCE
|
||||||
00011d ec0c ldi r16, DS18B20_CMD_SKIPROM
|
000112 ec0c ldi r16, DS18B20_CMD_SKIPROM
|
||||||
00011e 2e80 mov OW_CMD_r, r16
|
000113 2e80 mov OW_CMD_r, r16
|
||||||
00011f d034 rcall OW_SEND_BYTE
|
000114 d034 rcall OW_SEND_BYTE
|
||||||
|
|
||||||
000120 e404 ldi r16, DS18B20_CMD_CONVERTTEMP
|
000115 e404 ldi r16, DS18B20_CMD_CONVERTTEMP
|
||||||
000121 2e80 mov OW_CMD_r, r16
|
000116 2e80 mov OW_CMD_r, r16
|
||||||
000122 d031 rcall OW_SEND_BYTE
|
000117 d031 rcall OW_SEND_BYTE
|
||||||
|
|
||||||
; sei
|
; sei
|
||||||
000123 910f pop r16
|
000118 910f pop r16
|
||||||
000124 9508 ret
|
000119 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: отправка байта в сдвиговый регистр">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: отправка байта в сдвиговый регистр">
|
||||||
; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР *************************
|
; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР *************************
|
||||||
USI_TRANSMIT:
|
USI_TRANSMIT:
|
||||||
000125 930f push r16
|
00011a 930f push r16
|
||||||
000126 b80f out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR.
|
00011b b80f out USIDR, r0 ; Байт для отправки всегда находится в регистре r0. Помещаем данные в регистр USIDR.
|
||||||
|
|
||||||
; Enable USI Overflow Interrupt Flag (will be 0 if transfer is not compeleted)
|
; Enable USI Overflow Interrupt Flag (will be 0 if transfer is not compeleted)
|
||||||
000127 e400 ldi TEMP_REG_A, (1<<USIOIF)
|
00011c e400 ldi TEMP_REG_A, (1<<USIOIF)
|
||||||
000128 b90e out USISR, TEMP_REG_A
|
00011d b90e out USISR, TEMP_REG_A
|
||||||
|
|
||||||
; Load settings of USI into temp register
|
; Load settings of USI into temp register
|
||||||
; This will setup USI to Three-wire mode, Software clock strobe (USITC)
|
; This will setup USI to Three-wire mode, Software clock strobe (USITC)
|
||||||
@ -1276,63 +1271,61 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
; USICS1 <--------------> USI Clock Source Select
|
; USICS1 <--------------> USI Clock Source Select
|
||||||
; USICLK <--------------> USI Clock Strobe
|
; USICLK <--------------> USI Clock Strobe
|
||||||
; USITC <--------------> USI Toggle Clock (Enable clock generation)
|
; USITC <--------------> USI Toggle Clock (Enable clock generation)
|
||||||
000129 e10b ldi TEMP_REG_A, (1<<USIWM0) | (1<<USICS1) | (1<<USICLK) | (1<<USITC)
|
00011e e10b ldi TEMP_REG_A, (1<<USIWM0) | (1<<USICS1) | (1<<USICLK) | (1<<USITC)
|
||||||
|
|
||||||
_USI_TRANSMIT_LOOP: ; Execute loop when USIOIF is 0
|
_USI_TRANSMIT_LOOP: ; Execute loop when USIOIF is 0
|
||||||
00012a b90d out USICR, TEMP_REG_A ; Load settings from temp register into USI Control Register
|
00011f b90d out USICR, TEMP_REG_A ; Load settings from temp register into USI Control Register
|
||||||
00012b 9b76 sbis USISR, USIOIF ; If transfer is comleted then move out of loop
|
000120 9b76 sbis USISR, USIOIF ; If transfer is comleted then move out of loop
|
||||||
00012c cffd rjmp _USI_TRANSMIT_LOOP
|
000121 cffd rjmp _USI_TRANSMIT_LOOP
|
||||||
|
|
||||||
; Send pulse into LATCH pin.
|
; Send pulse into LATCH pin.
|
||||||
; This will copy byte from 74hc595 shift register into 74hc595 storage register
|
; This will copy byte from 74hc595 shift register into 74hc595 storage register
|
||||||
00012d 9ac0 sbi PORTB, USI_LATCH_PIN
|
000122 9ac0 sbi PORTB, USI_LATCH_PIN
|
||||||
00012e 98c0 cbi PORTB, USI_LATCH_PIN
|
000123 98c0 cbi PORTB, USI_LATCH_PIN
|
||||||
00012f 910f pop r16
|
000124 910f pop r16
|
||||||
000130 9508 ret//</editor-fold>
|
000125 9508 ret//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: опрос кнопок">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: опрос кнопок">
|
||||||
SW_CHECK_PROCESS:
|
SW_CHECK_PROCESS:
|
||||||
000131 930f push r16
|
000126 930f push r16
|
||||||
000132 d081 rcall DEBOUNCE_SW
|
000127 d08c rcall DEBOUNCE_SW
|
||||||
000133 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
000128 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
||||||
000134 9601 adiw DISP_NUM_L, 1
|
000129 9601 adiw DISP_NUM_L, 1
|
||||||
|
|
||||||
000135 9bb3 sbis SW_PIN, SW_MINUS_PIN
|
00012a 9bb3 sbis SW_PIN, SW_MINUS_PIN
|
||||||
000136 9701 sbiw DISP_NUM_L, 1
|
00012b 9701 sbiw DISP_NUM_L, 1
|
||||||
|
|
||||||
000137 9bb4 sbis SW_PIN, SW_SET_PIN
|
00012c 9bb4 sbis SW_PIN, SW_SET_PIN
|
||||||
000138 c001 rjmp _INTO_DEFAULT_STATE
|
00012d c001 rjmp _INTO_DEFAULT_STATE
|
||||||
000139 c003 rjmp _SW_CHECK_PROCESS_END
|
00012e c003 rjmp _SW_CHECK_PROCESS_END
|
||||||
|
|
||||||
_INTO_DEFAULT_STATE:
|
_INTO_DEFAULT_STATE:
|
||||||
00013a e000 ldi r16, MCU_STATE_DEFAULT
|
00012f e000 ldi r16, MCU_STATE_DEFAULT
|
||||||
00013b 9300 0060 sts MCU_STATE, r16
|
000130 9300 0060 sts MCU_STATE, r16
|
||||||
_SW_CHECK_PROCESS_END:
|
_SW_CHECK_PROCESS_END:
|
||||||
00013d 910f pop r16
|
000132 910f pop r16
|
||||||
00013e 9508 ret
|
000133 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Реализация интерфеса 1-Wire">
|
//<editor-fold defaultstate="collapsed" desc="Реализация интерфеса 1-Wire">
|
||||||
//<editor-fold defaultstate="collapsed" desc="1-Wire: оспрос присутствия">
|
//<editor-fold defaultstate="collapsed" desc="1-Wire: оспрос присутствия">
|
||||||
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
|
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
|
||||||
OW_PRESENCE:
|
OW_PRESENCE:
|
||||||
00013f 94f8 cli
|
000134 94f8 cli
|
||||||
000140 9ab9 ow_pull
|
000135 9ab9 ow_pull
|
||||||
000141 e033
|
000136 e033
|
||||||
000142 eb4e
|
000137 eb4e
|
||||||
000143 df89 DELAY16 480
|
000138 d08b DELAY16 480
|
||||||
000144 98b9 ow_release
|
000139 98b9 ow_release
|
||||||
000145 e030
|
00013a e030
|
||||||
000146 e84a
|
00013b e84a
|
||||||
000147 df85 DELAY16 70
|
00013c d087 DELAY16 70
|
||||||
000148 d005 rcall OW_CHECK_PRESENCE
|
00013d d005 rcall OW_CHECK_PRESENCE
|
||||||
000149 e033
|
00013e e033
|
||||||
00014a e342
|
00013f e342
|
||||||
00014b df81 DELAY16 410
|
000140 d083 DELAY16 410
|
||||||
00014c 9478 sei
|
000141 9478 sei
|
||||||
00014d 9508 ret
|
000142 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="1-Wire: проверка наличия устройства">
|
//<editor-fold defaultstate="collapsed" desc="1-Wire: проверка наличия устройства">
|
||||||
@ -1340,153 +1333,168 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов
|
; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов
|
||||||
;
|
;
|
||||||
OW_CHECK_PRESENCE:
|
OW_CHECK_PRESENCE:
|
||||||
00014e 9bb1 sbis OW_PIN, OW_LINE
|
000143 9bb1 sbis OW_PIN, OW_LINE
|
||||||
00014f 6071 sbr OWFR, (1<<OWPRF)
|
000144 6071 sbr OWFR, (1<<OWPRF)
|
||||||
000150 c002 rjmp _EXIT
|
000145 c002 rjmp _EXIT
|
||||||
000151 99b1 sbic OW_PIN, OW_LINE
|
000146 99b1 sbic OW_PIN, OW_LINE
|
||||||
000152 7f7e cbr OWFR, (1<<OWPRF)
|
000147 7f7e cbr OWFR, (1<<OWPRF)
|
||||||
_EXIT:
|
_EXIT:
|
||||||
000153 9508 ret
|
000148 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="1-Wire: отправка байта">
|
//<editor-fold defaultstate="collapsed" desc="1-Wire: отправка байта">
|
||||||
OW_SEND_BYTE:
|
OW_SEND_BYTE:
|
||||||
000154 930f push r16
|
000149 930f push r16
|
||||||
000155 931f push r17
|
00014a 931f push r17
|
||||||
000156 2d08 mov r16, OW_CMD_r
|
00014b 2d08 mov r16, OW_CMD_r
|
||||||
000157 e018 ldi r17, 8
|
00014c e018 ldi r17, 8
|
||||||
_OW_SEND_BYTE_LOOP:
|
_OW_SEND_BYTE_LOOP:
|
||||||
000158 9506 lsr r16
|
00014d 9506 lsr r16
|
||||||
000159 f408 brcc _OW_SEND_0
|
00014e f408 brcc _OW_SEND_0
|
||||||
00015a f058 brcs _OW_SEND_1
|
00014f f058 brcs _OW_SEND_1
|
||||||
_OW_SEND_0:
|
_OW_SEND_0:
|
||||||
|
000150 94f8 cli
|
||||||
|
000151 9ab9 ow_pull
|
||||||
|
000152 e030
|
||||||
|
000153 e746
|
||||||
|
000154 d06f DELAY16 60
|
||||||
|
000155 98b9 ow_release
|
||||||
|
000156 e030
|
||||||
|
000157 e142
|
||||||
|
000158 d06b DELAY16 10
|
||||||
|
000159 9478 sei
|
||||||
|
00015a c00a rjmp _OW_SEND_BYTE_END
|
||||||
|
_OW_SEND_1:
|
||||||
00015b 94f8 cli
|
00015b 94f8 cli
|
||||||
00015c 9ab9 ow_pull
|
00015c 9ab9 ow_pull
|
||||||
00015d e030
|
00015d e030
|
||||||
00015e e746
|
00015e e04a
|
||||||
00015f df6d DELAY16 60
|
00015f d064 DELAY16 6
|
||||||
000160 98b9 ow_release
|
000160 98b9 ow_release
|
||||||
000161 e030
|
000161 e030
|
||||||
000162 e142
|
000162 e74e
|
||||||
000163 df69 DELAY16 10
|
000163 d060 DELAY16 64
|
||||||
000164 9478 sei
|
000164 9478 sei
|
||||||
000165 c00a rjmp _OW_SEND_BYTE_END
|
|
||||||
_OW_SEND_1:
|
|
||||||
000166 94f8 cli
|
|
||||||
000167 9ab9 ow_pull
|
|
||||||
000168 e030
|
|
||||||
000169 e04a
|
|
||||||
00016a df62 DELAY16 6
|
|
||||||
00016b 98b9 ow_release
|
|
||||||
00016c e030
|
|
||||||
00016d e74e
|
|
||||||
00016e df5e DELAY16 64
|
|
||||||
00016f 9478 sei
|
|
||||||
_OW_SEND_BYTE_END:
|
_OW_SEND_BYTE_END:
|
||||||
000170 951a dec r17
|
000165 951a dec r17
|
||||||
000171 f731 brne _OW_SEND_BYTE_LOOP
|
000166 f731 brne _OW_SEND_BYTE_LOOP
|
||||||
000172 911f pop r17
|
000167 911f pop r17
|
||||||
000173 910f pop r16
|
000168 910f pop r16
|
||||||
000174 9508 ret
|
000169 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="1-Wire: чтение байта">
|
//<editor-fold defaultstate="collapsed" desc="1-Wire: чтение байта">
|
||||||
OW_RD_BYTE:
|
OW_RD_BYTE:
|
||||||
000175 930f push r16
|
00016a 930f push r16
|
||||||
000176 931f push r17
|
00016b 931f push r17
|
||||||
000177 2700 clr r16
|
00016c 2700 clr r16
|
||||||
000178 e018 ldi r17, 8
|
00016d e018 ldi r17, 8
|
||||||
000179 94f8 cli
|
00016e 94f8 cli
|
||||||
_OW_RD_BYTE_LP:
|
_OW_RD_BYTE_LP:
|
||||||
00017a 9506 lsr r16
|
00016f 9506 lsr r16
|
||||||
00017b 9ab9 ow_pull
|
000170 9ab9 ow_pull
|
||||||
00017c e030
|
000171 e030
|
||||||
00017d e04a
|
000172 e04a
|
||||||
00017e df4e DELAY16 6
|
000173 d050 DELAY16 6
|
||||||
00017f 98b9 ow_release
|
000174 98b9 ow_release
|
||||||
000180 e030
|
000175 e030
|
||||||
000181 e140
|
000176 e140
|
||||||
000182 df4a DELAY16 9
|
000177 d04c DELAY16 9
|
||||||
000183 99b1 sbic OW_PIN, OW_LINE
|
000178 99b1 sbic OW_PIN, OW_LINE
|
||||||
000184 6800 sbr r16, (1<<7)
|
000179 6800 sbr r16, (1<<7)
|
||||||
000185 e030
|
00017a e030
|
||||||
000186 e64c
|
00017b e64c
|
||||||
000187 df45 DELAY16 55
|
00017c d047 DELAY16 55
|
||||||
000188 951a dec r17
|
00017d 951a dec r17
|
||||||
000189 f781 brne _OW_RD_BYTE_LP
|
00017e f781 brne _OW_RD_BYTE_LP
|
||||||
00018a 930c st X, r16
|
00017f 930c st X, r16
|
||||||
00018b 9478 sei
|
000180 9478 sei
|
||||||
00018c 911f pop r17
|
000181 911f pop r17
|
||||||
00018d 910f pop r16
|
000182 910f pop r16
|
||||||
00018e 9508 ret
|
000183 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: обновление ячеек в SRAM для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: обновление ячеек в SRAM для индикатора">
|
||||||
; **** ПОЛУЧЕНИЕ ЦИФР ИЗ 16-ТИ БИТНОГО ЧИСЛА *********************
|
; **** ПОЛУЧЕНИЕ ЦИФР ИЗ 16-ТИ БИТНОГО ЧИСЛА *********************
|
||||||
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
|
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
|
||||||
; путем деления этого числа несколько раз
|
; путем деления этого числа несколько раз
|
||||||
DISPLAY_UPD_DIGITS:
|
DISPLAY_UPD_DIGITS:
|
||||||
00018f 94f8 cli
|
000184 94f8 cli
|
||||||
000190 935f push r21
|
000185 935f push r21
|
||||||
000191 e054 ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный
|
000186 e054 ldi r21, 4 ; (4 раза делим) т.к индикатор четырех разрядный
|
||||||
|
|
||||||
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
|
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
|
||||||
000192 e6a3 ldi XL, LOW(DIGITS)
|
000187 e6a3 ldi XL, LOW(DIGITS)
|
||||||
000193 e0b0 ldi XH, HIGH(DIGITS)
|
000188 e0b0 ldi XH, HIGH(DIGITS)
|
||||||
|
|
||||||
.equ dividend = SRAM_TEMP_1 ; число которе будем делить
|
.equ dividend = SRAM_TEMP_1 ; число которе будем делить
|
||||||
.equ divisor = 10 ; на что делим
|
.equ divisor = 10 ; на что делим
|
||||||
|
|
||||||
; загружаем число которое хотим поделить в адрес SRAM делимого
|
; загружаем число которое хотим поделить в адрес SRAM делимого
|
||||||
000194 9380 0061 sts dividend, DISP_NUM_L
|
000189 9380 0061 sts dividend, DISP_NUM_L
|
||||||
000196 9390 0062 sts dividend+1, DISP_NUM_H
|
00018b 9390 0062 sts dividend+1, DISP_NUM_H
|
||||||
|
|
||||||
; четыре раза производим деление для получения остатков
|
; четыре раза производим деление для получения остатков
|
||||||
DIV_LOOP:
|
DIV_LOOP:
|
||||||
; заполняем нужные регистры
|
; заполняем нужные регистры
|
||||||
000198 9100 0061 lds dd16uL, dividend
|
00018d 9100 0061 lds dd16uL, dividend
|
||||||
00019a 9110 0062 lds dd16uH, dividend+1
|
00018f 9110 0062 lds dd16uH, dividend+1
|
||||||
00019c e02a ldi dv16uL, LOW(divisor)
|
000191 e02a ldi dv16uL, LOW(divisor)
|
||||||
00019d e030 ldi dv16uH, HIGH(divisor)
|
000192 e030 ldi dv16uH, HIGH(divisor)
|
||||||
|
|
||||||
00019e df1b rcall div16u ; делим
|
000193 df1f rcall div16u ; делим
|
||||||
|
|
||||||
00019f 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
|
000194 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
|
||||||
|
|
||||||
; обновляем делимое
|
; обновляем делимое
|
||||||
0001a0 9300 0061 sts dividend, dres16uL
|
000195 9300 0061 sts dividend, dres16uL
|
||||||
0001a2 9310 0062 sts dividend+1, dres16uH
|
000197 9310 0062 sts dividend+1, dres16uH
|
||||||
|
|
||||||
0001a4 955a dec r21 ; декрементируем счетчик цикла
|
000199 955a dec r21 ; декрементируем счетчик цикла
|
||||||
0001a5 f791 brne DIV_LOOP ; делим еще раз если не 0
|
00019a f791 brne DIV_LOOP ; делим еще раз если не 0
|
||||||
0001a6 915f pop r21
|
00019b 915f pop r21
|
||||||
0001a7 9478 sei
|
00019c 9478 sei
|
||||||
0001a8 9508 ret
|
00019d 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
|
||||||
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
|
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
|
||||||
DISPLAY_DECODER:
|
DISPLAY_DECODER:
|
||||||
0001a9 930f push r16
|
00019e 930f push r16
|
||||||
0001aa 931f push r17
|
00019f 931f push r17
|
||||||
0001ab eae4 ldi ZL, LOW(2*DISPLAY_SYMBOLS)
|
0001a0 ebe0 ldi ZL, LOW(2*DISPLAY_SYMBOLS)
|
||||||
0001ac e0f3 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
|
0001a1 e0f3 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
|
||||||
|
|
||||||
0001ad 2711 clr TEMP_REG_B
|
0001a2 2711 clr TEMP_REG_B
|
||||||
0001ae 0fe0 add ZL, TEMP_REG_A
|
0001a3 0fe0 add ZL, TEMP_REG_A
|
||||||
0001af 1ff1 adc ZH, TEMP_REG_B
|
0001a4 1ff1 adc ZH, TEMP_REG_B
|
||||||
|
|
||||||
0001b0 9004 lpm r0, Z
|
0001a5 9004 lpm r0, Z
|
||||||
0001b1 911f pop r17
|
0001a6 911f pop r17
|
||||||
0001b2 910f pop r16
|
0001a7 910f pop r16
|
||||||
|
0001a8 9508 ret//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: короткий писк">
|
||||||
|
BEEP_SHORT:
|
||||||
|
0001a9 9ac5 sbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
0001aa d01d rcall DELAY
|
||||||
|
0001ab 98c5 cbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
0001ac 9508 ret
|
||||||
|
//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: длинный писк">
|
||||||
|
BEEP_LONG:
|
||||||
|
0001ad 9ac5 sbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
0001ae d019 rcall DELAY
|
||||||
|
0001af d018 rcall DELAY
|
||||||
|
0001b0 d017 rcall DELAY
|
||||||
|
0001b1 d016 rcall DELAY
|
||||||
|
0001b2 98c5 cbi BUZZER_PORT, BUZZER_PIN
|
||||||
0001b3 9508 ret//</editor-fold>
|
0001b3 9508 ret//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
|
||||||
DEBOUNCE_SW:
|
DEBOUNCE_SW:
|
||||||
0001b4 930f push r16
|
0001b4 930f push r16
|
||||||
@ -1513,39 +1521,47 @@ main.asm(275): Including file 'div16u.asm'
|
|||||||
0001c2 910f pop r16
|
0001c2 910f pop r16
|
||||||
0001c3 9508 ret//</editor-fold>
|
0001c3 9508 ret//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (16бит макс число)">
|
||||||
|
DELAY_LOOP_16:
|
||||||
|
0001c4 5041 subi DELAY_8_r, 1
|
||||||
|
0001c5 4030 sbci DELAY_16_r, 0
|
||||||
|
0001c6 f7e8 brcc DELAY_LOOP_16
|
||||||
|
0001c7 9508 ret//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка">
|
||||||
DELAY:
|
DELAY:
|
||||||
0001c4 930f push r16
|
0001c8 930f push r16
|
||||||
0001c5 931f push r17
|
0001c9 931f push r17
|
||||||
|
0001ca 932f push r18
|
||||||
|
|
||||||
0001c6 ef0f ldi r16, 255
|
0001cb e026 ldi r18, 6
|
||||||
|
_DELAY_0:
|
||||||
|
0001cc ef0f ldi r16, 255
|
||||||
_DELAY_1:
|
_DELAY_1:
|
||||||
0001c7 ef1f ldi r17, 255
|
0001cd ef1f ldi r17, 255
|
||||||
_DELAY_2:
|
_DELAY_2:
|
||||||
0001c8 951a dec r17
|
0001ce 951a dec r17
|
||||||
0001c9 0000 nop
|
0001cf f7f1 brne _DELAY_2
|
||||||
0001ca 0000 nop
|
|
||||||
0001cb 0000 nop
|
|
||||||
0001cc f7d9 brne _DELAY_2
|
|
||||||
|
|
||||||
0001cd 950a dec r16
|
0001d0 950a dec r16
|
||||||
0001ce f7c1 brne _DELAY_1
|
0001d1 f7d9 brne _DELAY_1
|
||||||
|
0001d2 952a dec r18
|
||||||
0001cf 911f pop r17
|
0001d3 f7c1 brne _DELAY_0
|
||||||
0001d0 910f pop r16
|
|
||||||
0001d1 9508 ret //</editor-fold>
|
|
||||||
|
|
||||||
|
0001d4 912f pop r18
|
||||||
|
0001d5 911f pop r17
|
||||||
|
0001d6 910f pop r16
|
||||||
|
0001d7 9508 ret //</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
||||||
DISPLAY_SYMBOLS:
|
DISPLAY_SYMBOLS:
|
||||||
; HGFEDCBA HGFEDCBA
|
; HGFEDCBA HGFEDCBA
|
||||||
0001d2 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
|
0001d8 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
|
||||||
0001d3 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
|
0001d9 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
|
||||||
0001d4 9299 .DB 0b10011001, 0b10010010 ; 4, 5
|
0001da 9299 .DB 0b10011001, 0b10010010 ; 4, 5
|
||||||
0001d5 f882 .DB 0b10000010, 0b11111000 ; 6, 7
|
0001db f882 .DB 0b10000010, 0b11111000 ; 6, 7
|
||||||
0001d6 9080 .DB 0b10000000, 0b10010000 ; 8, 9
|
0001dc 9080 .DB 0b10000000, 0b10010000 ; 8, 9
|
||||||
0001d7 bf9c .DB 0b10011100, 0b10111111 ; °, -//</editor-fold>
|
0001dd bf9c .DB 0b10011100, 0b10111111 ; °, -//</editor-fold>
|
||||||
|
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
@ -1573,7 +1589,7 @@ counted separately from r26..r31 here.
|
|||||||
"ATtiny2313A" register use summary:
|
"ATtiny2313A" register use summary:
|
||||||
x : 2 y : 0 z : 1 r0 : 4 r1 : 2 r2 : 0 r3 : 0 r4 : 0
|
x : 2 y : 0 z : 1 r0 : 4 r1 : 2 r2 : 0 r3 : 0 r4 : 0
|
||||||
r5 : 0 r6 : 0 r7 : 0 r8 : 5 r9 : 0 r10: 0 r11: 0 r12: 0
|
r5 : 0 r6 : 0 r7 : 0 r8 : 5 r9 : 0 r10: 0 r11: 0 r12: 0
|
||||||
r13: 0 r14: 5 r15: 5 r16: 100 r17: 46 r18: 26 r19: 36 r20: 31
|
r13: 0 r14: 5 r15: 5 r16: 92 r17: 46 r18: 30 r19: 36 r20: 31
|
||||||
r21: 8 r22: 0 r23: 4 r24: 5 r25: 3 r26: 3 r27: 3 r28: 0
|
r21: 8 r22: 0 r23: 4 r24: 5 r25: 3 r26: 3 r27: 3 r28: 0
|
||||||
r29: 0 r30: 2 r31: 2
|
r29: 0 r30: 2 r31: 2
|
||||||
Registers used: 20 out of 35 (57.1%)
|
Registers used: 20 out of 35 (57.1%)
|
||||||
@ -1583,16 +1599,16 @@ Registers used: 20 out of 35 (57.1%)
|
|||||||
andi : 1 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
|
andi : 1 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
|
||||||
brcc : 3 brcs : 1 break : 0 breq : 3 brge : 1 brhc : 0
|
brcc : 3 brcs : 1 break : 0 breq : 3 brge : 1 brhc : 0
|
||||||
brhs : 0 brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0
|
brhs : 0 brid : 0 brie : 0 brlo : 0 brlt : 0 brmi : 0
|
||||||
brne : 16 brpl : 0 brsh : 0 brtc : 1 brts : 1 brvc : 0
|
brne : 17 brpl : 0 brsh : 0 brtc : 1 brts : 1 brvc : 0
|
||||||
brvs : 0 bset : 0 bst : 0 cbi : 19 cbr : 3 clc : 1
|
brvs : 0 bset : 0 bst : 0 cbi : 21 cbr : 3 clc : 1
|
||||||
clh : 0 cli : 5 cln : 0 clr : 6 cls : 0 clt : 1
|
clh : 0 cli : 5 cln : 0 clr : 6 cls : 0 clt : 1
|
||||||
clv : 0 clz : 0 com : 2 cp : 0 cpc : 0 cpi : 10
|
clv : 0 clz : 0 com : 2 cp : 0 cpc : 0 cpi : 10
|
||||||
cpse : 0 dec : 9 eor : 0 icall : 0 ijmp : 0 in : 2
|
cpse : 0 dec : 10 eor : 0 icall : 0 ijmp : 0 in : 2
|
||||||
inc : 1 ld : 0 ldd : 0 ldi : 69 lds : 14 lpm : 2
|
inc : 1 ld : 0 ldd : 0 ldi : 66 lds : 14 lpm : 2
|
||||||
lsl : 4 lsr : 10 mov : 11 movw : 0 neg : 1 nop : 4
|
lsl : 4 lsr : 10 mov : 11 movw : 0 neg : 1 nop : 1
|
||||||
or : 0 ori : 0 out : 19 pop : 29 push : 28 rcall : 36
|
or : 0 ori : 0 out : 15 pop : 30 push : 29 rcall : 42
|
||||||
ret : 14 reti : 3 rjmp : 18 rol : 4 ror : 4 sbc : 1
|
ret : 16 reti : 3 rjmp : 18 rol : 4 ror : 4 sbc : 1
|
||||||
sbci : 1 sbi : 10 sbic : 3 sbis : 5 sbiw : 1 sbr : 2
|
sbci : 1 sbi : 12 sbic : 3 sbis : 5 sbiw : 1 sbr : 2
|
||||||
sbrc : 1 sbrs : 1 sec : 1 seh : 0 sei : 5 sen : 0
|
sbrc : 1 sbrs : 1 sec : 1 seh : 0 sei : 5 sen : 0
|
||||||
ser : 0 ses : 0 set : 1 sev : 0 sez : 0 sleep : 0
|
ser : 0 ses : 0 set : 1 sev : 0 sez : 0 sleep : 0
|
||||||
spm : 0 st : 2 std : 0 sts : 20 sub : 2 subi : 1
|
spm : 0 st : 2 std : 0 sts : 20 sub : 2 subi : 1
|
||||||
@ -1602,7 +1618,7 @@ Instructions used: 56 out of 105 (53.3%)
|
|||||||
"ATtiny2313A" memory use summary [bytes]:
|
"ATtiny2313A" memory use summary [bytes]:
|
||||||
Segment Begin End Code Data Used Size Use%
|
Segment Begin End Code Data Used Size Use%
|
||||||
---------------------------------------------------------------
|
---------------------------------------------------------------
|
||||||
[.cseg] 0x000000 0x0003b0 910 12 922 2048 45.0%
|
[.cseg] 0x000000 0x0003bc 922 12 934 2048 45.6%
|
||||||
[.dseg] 0x000060 0x00006d 0 13 13 128 10.2%
|
[.dseg] 0x000060 0x00006d 0 13 13 128 10.2%
|
||||||
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
|
[.eseg] 0x000000 0x000000 0 0 0 128 0.0%
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
AVRASM ver. 2.2.7 main.asm Tue Jun 20 22:15:20 2023
|
AVRASM ver. 2.2.7 main.asm Thu Jun 22 06:32:38 2023
|
||||||
|
|
||||||
|
|
||||||
EQU SIGNATURE_000 0000001e
|
EQU SIGNATURE_000 0000001e
|
||||||
@ -516,7 +516,10 @@ EQU SW_PIN 00000016
|
|||||||
EQU SW_PLUS_PIN 00000002
|
EQU SW_PLUS_PIN 00000002
|
||||||
EQU SW_MINUS_PIN 00000003
|
EQU SW_MINUS_PIN 00000003
|
||||||
EQU SW_SET_PIN 00000004
|
EQU SW_SET_PIN 00000004
|
||||||
EQU UART_RX_PIN 00000000
|
EQU BUZZER_PIN 00000005
|
||||||
|
EQU BUZZER_PORT 00000018
|
||||||
|
EQU RELAY_PIN 00000000
|
||||||
|
EQU RELAY_PORT 00000012
|
||||||
EQU UART_TX_PIN 00000001
|
EQU UART_TX_PIN 00000001
|
||||||
EQU MCU_STATE_DEFAULT 00000000
|
EQU MCU_STATE_DEFAULT 00000000
|
||||||
EQU MCU_STATE_PROGRAM 00000001
|
EQU MCU_STATE_PROGRAM 00000001
|
||||||
@ -538,22 +541,23 @@ CSEG _INTO_PROGRAM_STATE 0000001a
|
|||||||
CSEG _CLR_CURRENT_DIGIT 0000002c
|
CSEG _CLR_CURRENT_DIGIT 0000002c
|
||||||
CSEG _indicate_1 0000002f
|
CSEG _indicate_1 0000002f
|
||||||
CSEG _indicate_2 00000041
|
CSEG _indicate_2 00000041
|
||||||
CSEG DISPLAY_DECODER 000001a9
|
CSEG DISPLAY_DECODER 0000019e
|
||||||
CSEG USI_TRANSMIT 00000125
|
CSEG USI_TRANSMIT 0000011a
|
||||||
CSEG _indicate_3 0000004b
|
CSEG _indicate_3 0000004b
|
||||||
CSEG _indicate_4 00000058
|
CSEG _indicate_4 00000058
|
||||||
CSEG _indicate_exit 00000062
|
CSEG _indicate_exit 00000062
|
||||||
CSEG MCU_INIT 0000006c
|
CSEG MCU_INIT 0000006c
|
||||||
CSEG continue 00000086
|
CSEG continue 0000007e
|
||||||
CSEG LOOP 00000096
|
CSEG BEEP_SHORT 000001a9
|
||||||
CSEG _STATE_DEFAULT 00000098
|
CSEG LOOP 0000008f
|
||||||
CSEG _STATE_PROGRAM 000000a9
|
CSEG _STATE_DEFAULT 00000091
|
||||||
CSEG DISPLAY_UPD_DIGITS 0000018f
|
CSEG _STATE_PROGRAM 000000a2
|
||||||
CSEG TEMP_CONV 0000011b
|
CSEG DISPLAY_UPD_DIGITS 00000184
|
||||||
|
CSEG TEMP_CONV 00000110
|
||||||
CSEG DEBOUNCE_SW 000001b4
|
CSEG DEBOUNCE_SW 000001b4
|
||||||
CSEG TEMP_RD 000000d1
|
CSEG TEMP_RD 000000c6
|
||||||
CSEG _STATE_ERROR 000000ad
|
CSEG _STATE_ERROR 000000a6
|
||||||
CSEG SW_CHECK_PROCESS 00000131
|
CSEG SW_CHECK_PROCESS 00000126
|
||||||
DEF drem16uL r14
|
DEF drem16uL r14
|
||||||
DEF drem16uH r15
|
DEF drem16uH r15
|
||||||
DEF dres16uL r16
|
DEF dres16uL r16
|
||||||
@ -563,36 +567,38 @@ DEF dd16uH r17
|
|||||||
DEF dv16uL r18
|
DEF dv16uL r18
|
||||||
DEF dv16uH r19
|
DEF dv16uH r19
|
||||||
DEF dcnt16u r20
|
DEF dcnt16u r20
|
||||||
CSEG div16u 000000ba
|
CSEG div16u 000000b3
|
||||||
CSEG d16u_1 000000bd
|
CSEG d16u_1 000000b6
|
||||||
CSEG d16u_2 000000c2
|
CSEG d16u_2 000000bb
|
||||||
CSEG d16u_3 000000cb
|
CSEG d16u_3 000000c4
|
||||||
CSEG DELAY_LOOP_16 000000cd
|
CSEG OW_PRESENCE 00000134
|
||||||
CSEG OW_PRESENCE 0000013f
|
CSEG OW_SEND_BYTE 00000149
|
||||||
CSEG OW_SEND_BYTE 00000154
|
CSEG OW_RD_BYTE 0000016a
|
||||||
CSEG OW_RD_BYTE 00000175
|
CSEG _TEMP_RD_TO_UNSIGNED 000000e2
|
||||||
CSEG _TEMP_RD_TO_UNSIGNED 000000ed
|
CSEG _TEMP_RD_CONTINUE 000000eb
|
||||||
CSEG _TEMP_RD_CONTINUE 000000f6
|
CSEG _TEMP_RD_END 000000f4
|
||||||
CSEG _TEMP_RD_END 000000ff
|
CSEG _USI_TRANSMIT_LOOP 0000011f
|
||||||
CSEG _USI_TRANSMIT_LOOP 0000012a
|
CSEG _INTO_DEFAULT_STATE 0000012f
|
||||||
CSEG _INTO_DEFAULT_STATE 0000013a
|
CSEG _SW_CHECK_PROCESS_END 00000132
|
||||||
CSEG _SW_CHECK_PROCESS_END 0000013d
|
CSEG DELAY_LOOP_16 000001c4
|
||||||
CSEG OW_CHECK_PRESENCE 0000014e
|
CSEG OW_CHECK_PRESENCE 00000143
|
||||||
CSEG _EXIT 00000153
|
CSEG _EXIT 00000148
|
||||||
CSEG _OW_SEND_BYTE_LOOP 00000158
|
CSEG _OW_SEND_BYTE_LOOP 0000014d
|
||||||
CSEG _OW_SEND_0 0000015b
|
CSEG _OW_SEND_0 00000150
|
||||||
CSEG _OW_SEND_1 00000166
|
CSEG _OW_SEND_1 0000015b
|
||||||
CSEG _OW_SEND_BYTE_END 00000170
|
CSEG _OW_SEND_BYTE_END 00000165
|
||||||
CSEG _OW_RD_BYTE_LP 0000017a
|
CSEG _OW_RD_BYTE_LP 0000016f
|
||||||
EQU dividend 00000061
|
EQU dividend 00000061
|
||||||
EQU divisor 0000000a
|
EQU divisor 0000000a
|
||||||
CSEG DIV_LOOP 00000198
|
CSEG DIV_LOOP 0000018d
|
||||||
CSEG DISPLAY_SYMBOLS 000001d2
|
CSEG DISPLAY_SYMBOLS 000001d8
|
||||||
|
CSEG DELAY 000001c8
|
||||||
|
CSEG BEEP_LONG 000001ad
|
||||||
CSEG _loop_2 000001b8
|
CSEG _loop_2 000001b8
|
||||||
CSEG _loop_0 000001b9
|
CSEG _loop_0 000001b9
|
||||||
CSEG _dec_0 000001ba
|
CSEG _dec_0 000001ba
|
||||||
CSEG _loop_1 000001bc
|
CSEG _loop_1 000001bc
|
||||||
CSEG _loop_3 000001be
|
CSEG _loop_3 000001be
|
||||||
CSEG DELAY 000001c4
|
CSEG _DELAY_0 000001cc
|
||||||
CSEG _DELAY_1 000001c7
|
CSEG _DELAY_1 000001cd
|
||||||
CSEG _DELAY_2 000001c8
|
CSEG _DELAY_2 000001ce
|
||||||
|
|||||||
Binary file not shown.
@ -41,52 +41,55 @@
|
|||||||
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>99</LINE></_CLR_CURRENT_DIGIT>
|
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>99</LINE></_CLR_CURRENT_DIGIT>
|
||||||
<_indicate_1><FILE>main.asm</FILE><LINE>103</LINE></_indicate_1>
|
<_indicate_1><FILE>main.asm</FILE><LINE>103</LINE></_indicate_1>
|
||||||
<_indicate_2><FILE>main.asm</FILE><LINE>125</LINE></_indicate_2>
|
<_indicate_2><FILE>main.asm</FILE><LINE>125</LINE></_indicate_2>
|
||||||
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>588</LINE></DISPLAY_DECODER>
|
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>578</LINE></DISPLAY_DECODER>
|
||||||
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>397</LINE></USI_TRANSMIT>
|
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>391</LINE></USI_TRANSMIT>
|
||||||
<_indicate_3><FILE>main.asm</FILE><LINE>142</LINE></_indicate_3>
|
<_indicate_3><FILE>main.asm</FILE><LINE>142</LINE></_indicate_3>
|
||||||
<_indicate_4><FILE>main.asm</FILE><LINE>158</LINE></_indicate_4>
|
<_indicate_4><FILE>main.asm</FILE><LINE>158</LINE></_indicate_4>
|
||||||
<_indicate_exit><FILE>main.asm</FILE><LINE>170</LINE></_indicate_exit>
|
<_indicate_exit><FILE>main.asm</FILE><LINE>170</LINE></_indicate_exit>
|
||||||
<MCU_INIT><FILE>main.asm</FILE><LINE>188</LINE></MCU_INIT>
|
<MCU_INIT><FILE>main.asm</FILE><LINE>188</LINE></MCU_INIT>
|
||||||
<continue><FILE>main.asm</FILE><LINE>211</LINE></continue>
|
<continue><FILE>main.asm</FILE><LINE>211</LINE></continue>
|
||||||
<LOOP><FILE>main.asm</FILE><LINE>232</LINE></LOOP>
|
<BEEP_SHORT><FILE>main.asm</FILE><LINE>594</LINE></BEEP_SHORT>
|
||||||
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>236</LINE></_STATE_DEFAULT>
|
<LOOP><FILE>main.asm</FILE><LINE>233</LINE></LOOP>
|
||||||
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>255</LINE></_STATE_PROGRAM>
|
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>237</LINE></_STATE_DEFAULT>
|
||||||
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>546</LINE></DISPLAY_UPD_DIGITS>
|
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>256</LINE></_STATE_PROGRAM>
|
||||||
<TEMP_CONV><FILE>main.asm</FILE><LINE>376</LINE></TEMP_CONV>
|
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>537</LINE></DISPLAY_UPD_DIGITS>
|
||||||
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>605</LINE></DEBOUNCE_SW>
|
<TEMP_CONV><FILE>main.asm</FILE><LINE>371</LINE></TEMP_CONV>
|
||||||
<TEMP_RD><FILE>main.asm</FILE><LINE>284</LINE></TEMP_RD>
|
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>612</LINE></DEBOUNCE_SW>
|
||||||
<_STATE_ERROR><FILE>main.asm</FILE><LINE>260</LINE></_STATE_ERROR>
|
<TEMP_RD><FILE>main.asm</FILE><LINE>279</LINE></TEMP_RD>
|
||||||
<SW_CHECK_PROCESS><FILE>main.asm</FILE><LINE>429</LINE></SW_CHECK_PROCESS>
|
<_STATE_ERROR><FILE>main.asm</FILE><LINE>261</LINE></_STATE_ERROR>
|
||||||
|
<SW_CHECK_PROCESS><FILE>main.asm</FILE><LINE>422</LINE></SW_CHECK_PROCESS>
|
||||||
<div16u><FILE>div16u.asm</FILE><LINE>32</LINE></div16u>
|
<div16u><FILE>div16u.asm</FILE><LINE>32</LINE></div16u>
|
||||||
<d16u_1><FILE>div16u.asm</FILE><LINE>36</LINE></d16u_1>
|
<d16u_1><FILE>div16u.asm</FILE><LINE>36</LINE></d16u_1>
|
||||||
<d16u_2><FILE>div16u.asm</FILE><LINE>42</LINE></d16u_2>
|
<d16u_2><FILE>div16u.asm</FILE><LINE>42</LINE></d16u_2>
|
||||||
<d16u_3><FILE>div16u.asm</FILE><LINE>52</LINE></d16u_3>
|
<d16u_3><FILE>div16u.asm</FILE><LINE>52</LINE></d16u_3>
|
||||||
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>277</LINE></DELAY_LOOP_16>
|
<OW_PRESENCE><FILE>main.asm</FILE><LINE>446</LINE></OW_PRESENCE>
|
||||||
<OW_PRESENCE><FILE>main.asm</FILE><LINE>454</LINE></OW_PRESENCE>
|
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>473</LINE></OW_SEND_BYTE>
|
||||||
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>481</LINE></OW_SEND_BYTE>
|
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>506</LINE></OW_RD_BYTE>
|
||||||
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>514</LINE></OW_RD_BYTE>
|
<_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>314</LINE></_TEMP_RD_TO_UNSIGNED>
|
||||||
<_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>319</LINE></_TEMP_RD_TO_UNSIGNED>
|
<_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>325</LINE></_TEMP_RD_CONTINUE>
|
||||||
<_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>330</LINE></_TEMP_RD_CONTINUE>
|
<_TEMP_RD_END><FILE>main.asm</FILE><LINE>335</LINE></_TEMP_RD_END>
|
||||||
<_TEMP_RD_END><FILE>main.asm</FILE><LINE>340</LINE></_TEMP_RD_END>
|
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>409</LINE></_USI_TRANSMIT_LOOP>
|
||||||
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>415</LINE></_USI_TRANSMIT_LOOP>
|
<_INTO_DEFAULT_STATE><FILE>main.asm</FILE><LINE>435</LINE></_INTO_DEFAULT_STATE>
|
||||||
<_INTO_DEFAULT_STATE><FILE>main.asm</FILE><LINE>442</LINE></_INTO_DEFAULT_STATE>
|
<_SW_CHECK_PROCESS_END><FILE>main.asm</FILE><LINE>438</LINE></_SW_CHECK_PROCESS_END>
|
||||||
<_SW_CHECK_PROCESS_END><FILE>main.asm</FILE><LINE>445</LINE></_SW_CHECK_PROCESS_END>
|
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>638</LINE></DELAY_LOOP_16>
|
||||||
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>470</LINE></OW_CHECK_PRESENCE>
|
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>462</LINE></OW_CHECK_PRESENCE>
|
||||||
<_EXIT><FILE>main.asm</FILE><LINE>476</LINE></_EXIT>
|
<_EXIT><FILE>main.asm</FILE><LINE>468</LINE></_EXIT>
|
||||||
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>486</LINE></_OW_SEND_BYTE_LOOP>
|
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>478</LINE></_OW_SEND_BYTE_LOOP>
|
||||||
<_OW_SEND_0><FILE>main.asm</FILE><LINE>490</LINE></_OW_SEND_0>
|
<_OW_SEND_0><FILE>main.asm</FILE><LINE>482</LINE></_OW_SEND_0>
|
||||||
<_OW_SEND_1><FILE>main.asm</FILE><LINE>498</LINE></_OW_SEND_1>
|
<_OW_SEND_1><FILE>main.asm</FILE><LINE>490</LINE></_OW_SEND_1>
|
||||||
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>505</LINE></_OW_SEND_BYTE_END>
|
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>497</LINE></_OW_SEND_BYTE_END>
|
||||||
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>520</LINE></_OW_RD_BYTE_LP>
|
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>512</LINE></_OW_RD_BYTE_LP>
|
||||||
<DIV_LOOP><FILE>main.asm</FILE><LINE>563</LINE></DIV_LOOP>
|
<DIV_LOOP><FILE>main.asm</FILE><LINE>554</LINE></DIV_LOOP>
|
||||||
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>655</LINE></DISPLAY_SYMBOLS>
|
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>670</LINE></DISPLAY_SYMBOLS>
|
||||||
<_loop_2><FILE>main.asm</FILE><LINE>611</LINE></_loop_2>
|
<DELAY><FILE>main.asm</FILE><LINE>645</LINE></DELAY>
|
||||||
<_loop_0><FILE>main.asm</FILE><LINE>613</LINE></_loop_0>
|
<BEEP_LONG><FILE>main.asm</FILE><LINE>602</LINE></BEEP_LONG>
|
||||||
<_dec_0><FILE>main.asm</FILE><LINE>615</LINE></_dec_0>
|
<_loop_2><FILE>main.asm</FILE><LINE>618</LINE></_loop_2>
|
||||||
<_loop_1><FILE>main.asm</FILE><LINE>618</LINE></_loop_1>
|
<_loop_0><FILE>main.asm</FILE><LINE>620</LINE></_loop_0>
|
||||||
<_loop_3><FILE>main.asm</FILE><LINE>621</LINE></_loop_3>
|
<_dec_0><FILE>main.asm</FILE><LINE>622</LINE></_dec_0>
|
||||||
<DELAY><FILE>main.asm</FILE><LINE>632</LINE></DELAY>
|
<_loop_1><FILE>main.asm</FILE><LINE>625</LINE></_loop_1>
|
||||||
<_DELAY_1><FILE>main.asm</FILE><LINE>637</LINE></_DELAY_1>
|
<_loop_3><FILE>main.asm</FILE><LINE>628</LINE></_loop_3>
|
||||||
<_DELAY_2><FILE>main.asm</FILE><LINE>639</LINE></_DELAY_2>
|
<_DELAY_0><FILE>main.asm</FILE><LINE>651</LINE></_DELAY_0>
|
||||||
|
<_DELAY_1><FILE>main.asm</FILE><LINE>653</LINE></_DELAY_1>
|
||||||
|
<_DELAY_2><FILE>main.asm</FILE><LINE>655</LINE></_DELAY_2>
|
||||||
</LABELS>
|
</LABELS>
|
||||||
</ASSEMBLER_INFO>
|
</ASSEMBLER_INFO>
|
||||||
|
|||||||
67
main.asm
67
main.asm
@ -187,8 +187,8 @@ RESET_vect:
|
|||||||
; **** ПРОЦЕСС ИНИЦИАЛИЗАЦИИ МК **********************************
|
; **** ПРОЦЕСС ИНИЦИАЛИЗАЦИИ МК **********************************
|
||||||
MCU_INIT:
|
MCU_INIT:
|
||||||
; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ *************************************
|
; **** ИНИЦИАЛИЗАЦИЯ ПИНОВ *************************************
|
||||||
outi r16, DDRD, (1<<LED_ERR_PIN) | (1<<DIGIT_1_PIN) | (1<<DIGIT_2_PIN) | (1<<DIGIT_3_PIN) | (1<<DIGIT_4_PIN) | (0<<UART_RX_PIN) | (1<<UART_TX_PIN)
|
outi r16, DDRD, (1<<LED_ERR_PIN) | (1<<DIGIT_1_PIN) | (1<<DIGIT_2_PIN) | (1<<DIGIT_3_PIN) | (1<<DIGIT_4_PIN) | (1<<UART_TX_PIN)
|
||||||
outi r16, DDRB, (1<<USI_CLK_PIN) | (1<<USI_DO_PIN) | (1<<USI_LATCH_PIN) | (0<<SW_PLUS_PIN) | (0<<SW_MINUS_PIN) | (0<<SW_SET_PIN)
|
outi r16, DDRB, (1<<USI_CLK_PIN) | (1<<USI_DO_PIN) | (1<<USI_LATCH_PIN) | (0<<SW_PLUS_PIN) | (0<<SW_MINUS_PIN) | (0<<SW_SET_PIN) | (1<<BUZZER_PIN)
|
||||||
outi r16, PORTB, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN) | (1<<SW_SET_PIN)
|
outi r16, PORTB, (1<<SW_PLUS_PIN) | (1<<SW_MINUS_PIN) | (1<<SW_SET_PIN)
|
||||||
|
|
||||||
; **** ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА 0 **********************************
|
; **** ИНИЦИАЛИЗАЦИЯ ТАЙМЕРА 0 **********************************
|
||||||
@ -202,25 +202,26 @@ MCU_INIT:
|
|||||||
outi r16, PCMSK0, (1<<PCINT2) | (1<<PCINT3) | (1<<PCINT4) ; для кнопок
|
outi r16, PCMSK0, (1<<PCINT2) | (1<<PCINT3) | (1<<PCINT4) ; для кнопок
|
||||||
|
|
||||||
; **** ИНИЦИАЛИЗАЦИЯ USART **************************************
|
; **** ИНИЦИАЛИЗАЦИЯ USART **************************************
|
||||||
outi r16, UBRRL, LOW(51) ; 9600 БОД
|
; outi r16, UBRRL, LOW(51) ; 9600 БОД
|
||||||
outi r16, UBRRH, HIGH(51) ; 9600 БОД
|
; outi r16, UBRRH, HIGH(51) ; 9600 БОД
|
||||||
outi r16, UCSRB, (1<<RXEN) | (1<<TXEN) ; Включение приема и передачии
|
; outi r16, UCSRB, (1<<RXEN) ; Включение передачии
|
||||||
outi r16, UCSRC, (1<<UCSZ1) | (1<<UCSZ0) ; Асинхронный режим, 8 бит фрейм, 1 стоповый бит
|
; outi r16, UCSRC, (1<<UCSZ1) | (1<<UCSZ0) ; Асинхронный режим, 8 бит фрейм, 1 стоповый бит
|
||||||
|
|
||||||
|
|
||||||
continue:
|
continue:
|
||||||
clr r1
|
clr r1
|
||||||
sts CURRENT_DIGIT, r1
|
sts CURRENT_DIGIT, r1
|
||||||
|
|
||||||
ldi r16, 0x00
|
ldi r16, 0x00
|
||||||
sts MCU_STATE, r16 ; переводим МК сразу в режим измерения температуры
|
sts MCU_STATE, r16 ; переводим МК сразу в режим измерения температуры
|
||||||
|
|
||||||
clr r16
|
clr r16
|
||||||
sts TEMP_L, r16
|
sts TEMP_L, r16
|
||||||
sts TEMP_H, r16
|
sts TEMP_H, r16
|
||||||
ldi r16, 0xf0
|
ldi r16, 0xf0
|
||||||
sts TEMP_F, r16
|
sts TEMP_F, r16
|
||||||
|
|
||||||
|
rcall BEEP_SHORT
|
||||||
|
|
||||||
display_load 0 ; загружаем число, которое нужно показать на индикатор
|
display_load 0 ; загружаем число, которое нужно показать на индикатор
|
||||||
|
|
||||||
@ -274,12 +275,6 @@ _STATE_ERROR:
|
|||||||
; **** ПОДПРОГРАММЫ **********************************************
|
; **** ПОДПРОГРАММЫ **********************************************
|
||||||
.INCLUDE "div16u.asm"
|
.INCLUDE "div16u.asm"
|
||||||
|
|
||||||
DELAY_LOOP_16:
|
|
||||||
subi DELAY_8_r, 1
|
|
||||||
sbci DELAY_16_r, 0
|
|
||||||
brcc DELAY_LOOP_16
|
|
||||||
ret
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: чтение и опрос температуры">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: чтение и опрос температуры">
|
||||||
TEMP_RD:
|
TEMP_RD:
|
||||||
push r16
|
push r16
|
||||||
@ -391,7 +386,6 @@ TEMP_CONV:
|
|||||||
ret
|
ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: отправка байта в сдвиговый регистр">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: отправка байта в сдвиговый регистр">
|
||||||
; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР *************************
|
; **** ОТПРАВКА БАЙТА В СДВИГОВЫЙ РЕГИСТР *************************
|
||||||
USI_TRANSMIT:
|
USI_TRANSMIT:
|
||||||
@ -424,7 +418,6 @@ _USI_TRANSMIT_LOOP: ; Execute loop when USIOIF is 0
|
|||||||
pop r16
|
pop r16
|
||||||
ret//</editor-fold>
|
ret//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: опрос кнопок">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: опрос кнопок">
|
||||||
SW_CHECK_PROCESS:
|
SW_CHECK_PROCESS:
|
||||||
push r16
|
push r16
|
||||||
@ -447,7 +440,6 @@ _SW_CHECK_PROCESS_END:
|
|||||||
ret
|
ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Реализация интерфеса 1-Wire">
|
//<editor-fold defaultstate="collapsed" desc="Реализация интерфеса 1-Wire">
|
||||||
//<editor-fold defaultstate="collapsed" desc="1-Wire: оспрос присутствия">
|
//<editor-fold defaultstate="collapsed" desc="1-Wire: оспрос присутствия">
|
||||||
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
|
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
|
||||||
@ -538,7 +530,6 @@ _OW_RD_BYTE_LP:
|
|||||||
|
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: обновление ячеек в SRAM для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: обновление ячеек в SRAM для индикатора">
|
||||||
; **** ПОЛУЧЕНИЕ ЦИФР ИЗ 16-ТИ БИТНОГО ЧИСЛА *********************
|
; **** ПОЛУЧЕНИЕ ЦИФР ИЗ 16-ТИ БИТНОГО ЧИСЛА *********************
|
||||||
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
|
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
|
||||||
@ -582,7 +573,6 @@ DIV_LOOP:
|
|||||||
ret
|
ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
|
||||||
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
|
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
|
||||||
DISPLAY_DECODER:
|
DISPLAY_DECODER:
|
||||||
@ -600,6 +590,23 @@ DISPLAY_DECODER:
|
|||||||
pop r16
|
pop r16
|
||||||
ret//</editor-fold>
|
ret//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: короткий писк">
|
||||||
|
BEEP_SHORT:
|
||||||
|
sbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
rcall DELAY
|
||||||
|
cbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
ret
|
||||||
|
//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: длинный писк">
|
||||||
|
BEEP_LONG:
|
||||||
|
sbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
rcall DELAY
|
||||||
|
rcall DELAY
|
||||||
|
rcall DELAY
|
||||||
|
rcall DELAY
|
||||||
|
cbi BUZZER_PORT, BUZZER_PIN
|
||||||
|
ret//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
|
||||||
DEBOUNCE_SW:
|
DEBOUNCE_SW:
|
||||||
@ -627,30 +634,38 @@ _loop_3:
|
|||||||
pop r16
|
pop r16
|
||||||
ret//</editor-fold>
|
ret//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (16бит макс число)">
|
||||||
|
DELAY_LOOP_16:
|
||||||
|
subi DELAY_8_r, 1
|
||||||
|
sbci DELAY_16_r, 0
|
||||||
|
brcc DELAY_LOOP_16
|
||||||
|
ret//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка">
|
||||||
DELAY:
|
DELAY:
|
||||||
push r16
|
push r16
|
||||||
push r17
|
push r17
|
||||||
|
push r18
|
||||||
|
|
||||||
|
ldi r18, 6
|
||||||
|
_DELAY_0:
|
||||||
ldi r16, 255
|
ldi r16, 255
|
||||||
_DELAY_1:
|
_DELAY_1:
|
||||||
ldi r17, 255
|
ldi r17, 255
|
||||||
_DELAY_2:
|
_DELAY_2:
|
||||||
dec r17
|
dec r17
|
||||||
nop
|
|
||||||
nop
|
|
||||||
nop
|
|
||||||
brne _DELAY_2
|
brne _DELAY_2
|
||||||
|
|
||||||
dec r16
|
dec r16
|
||||||
brne _DELAY_1
|
brne _DELAY_1
|
||||||
|
dec r18
|
||||||
|
brne _DELAY_0
|
||||||
|
|
||||||
|
pop r18
|
||||||
pop r17
|
pop r17
|
||||||
pop r16
|
pop r16
|
||||||
ret //</editor-fold>
|
ret //</editor-fold>
|
||||||
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
||||||
DISPLAY_SYMBOLS:
|
DISPLAY_SYMBOLS:
|
||||||
; HGFEDCBA HGFEDCBA
|
; HGFEDCBA HGFEDCBA
|
||||||
|
|||||||
99
main.hex
99
main.hex
@ -7,56 +7,55 @@
|
|||||||
:10004A000F935FB74091670045300CF403C0442713
|
:10004A000F935FB74091670045300CF403C0442713
|
||||||
:10005A0040936700403081F49398949895980EF0F5
|
:10005A0040936700403081F49398949895980EF0F5
|
||||||
:10006A0002C00BE002C000916500002311F0929AD1
|
:10006A0002C00BE002C000916500002311F0929AD1
|
||||||
:10007A0001C0929869D1E4D0413041F492989498A1
|
:10007A0001C0929864D1DFD0413041F492989498AB
|
||||||
:10008A009598939A009164005FD1DAD0423059F47E
|
:10008A009598939A009164005AD1D5D0423059F488
|
||||||
:10009A00929893989598949A0091630055D1002D5F
|
:10009A00929893989598949A0091630050D1002D64
|
||||||
:1000AA000F77002ECDD0433041F4929893989498CC
|
:1000AA000F77002EC8D0433041F4929893989498D1
|
||||||
:1000BA00959A00916C0048D1C3D04395409367004C
|
:1000BA00959A00916C0043D1BED043954093670056
|
||||||
:1000CA005FBF0F915F914F9118950FED0DBF0EE72E
|
:1000CA005FBF0F915F914F9118950FED0DBF0EE72E
|
||||||
:1000DA0001BB01EC07BB0CE108BB02E000BF05E075
|
:1000DA0001BB01EE07BB0CE108BB02E000BF05E073
|
||||||
:1000EA0003BF09E106BF01E009BF00E20BBF0CE153
|
:1000EA0003BF09E106BF01E009BF00E20BBF0CE153
|
||||||
:1000FA0000BD03E309B900E002B908E10AB906E064
|
:1000FA0000BD11241092670000E000936000002701
|
||||||
:10010A0003B909E0019511241092670000E00093F9
|
:10010A0000936A0000936B0000EF00936C00C59A9D
|
||||||
:10011A006000002700936A0000936B0000EF0093D1
|
:10011A0021D1C59880E090E000916000003079F428
|
||||||
:10012A006C0080E090E000916000003079F4F2D039
|
:10012A00F4D070FD969A70FF96987BD013D112D1B5
|
||||||
:10013A0070FD969A70FF969879D011D110D12ED071
|
:10013A002ED010916A00812F10916B00912F0130FF
|
||||||
:10014A0010916A00812F10916B00912F013011F4E8
|
:10014A0011F4E3D084D0023039F71BE01093630036
|
||||||
:10015A00E1D082D0023039F71BE01093630010938C
|
:10015A001093640010936500109366000000DCCFD2
|
||||||
:10016A00640010936500109366000000DCCFEE2453
|
:10016A00EE24FF1841E1001F111F4A9509F4089572
|
||||||
:10017A00FF1841E1001F111F4A9509F40895EE1C6A
|
:10017A00EE1CFF1CE21AF30A20F4E20EF31E889426
|
||||||
:10018A00FF1CE21AF30A20F4E20EF31E8894F2CF5F
|
:10018A00F2CF0894F0CF41503040E8F708950F932A
|
||||||
:10019A000894F0CF41503040E8F708950F931F9329
|
:10019A001F932F933F934F9368D00CEC802E7AD005
|
||||||
:1001AA002F933F934F9366D00CEC802E78D00EEBB2
|
:1001AA000EEB802E77D0AAE6B0E095D0ABE6B0E0B1
|
||||||
:1001BA00802E75D0AAE6B0E093D0ABE6B0E090D03E
|
:1001BA0092D010916A0020916B002F93287F283FDC
|
||||||
:1001CA0010916A0020916B002F93287F283F11F02D
|
:1001CA0011F0E89409C02F9168941095209531E0B8
|
||||||
:1001DA00E89409C02F9168941095209531E0130F87
|
:1001DA00130F30E0231F01C02F91269517952695FE
|
||||||
:1001EA0030E0231F01C02F91269517952695179564
|
:1001EA001795269517952695179530916A000EF45E
|
||||||
:1001FA00269517952695179530916A00432F3F70DB
|
:1001FA003195432F3F70432F330F330F330F440F83
|
||||||
:10020A00432F330F330F330F440F340F3695369580
|
:10020A00340F369536953695369510936A002093B5
|
||||||
:10021A003695369510936A0020936B0030936C00E4
|
:10021A006B0030936C004F913F912F911F910F917A
|
||||||
:10022A004F913F912F911F910F9108950F9322D0D3
|
:10022A0008950F9322D00CEC802E34D004E4802E53
|
||||||
:10023A000CEC802E34D004E4802E31D00F91089536
|
:10023A0031D00F9108950F930FB800E40EB90BE176
|
||||||
:10024A000F930FB800E40EB90BE10DB9769BFDCF01
|
:10024A000DB9769BFDCFC09AC0980F9108950F9370
|
||||||
:10025A00C09AC0980F9108950F9381D0B29B0196CE
|
:10025A0081D0B29B0196B39B0197B49B01C003C0A6
|
||||||
:10026A00B39B0197B49B01C003C000E000936000F8
|
:10026A0000E0009360000F910895F894B99A33E082
|
||||||
:10027A000F910895F894B99A33E04EEB8BDFB99851
|
:10027A004EEB89DFB99830E04AE885DF05D033E0F4
|
||||||
:10028A0030E04AE887DF05D033E042E383DF789441
|
:10028A0042E381DF78940895B19B716002C0B1990D
|
||||||
:10029A000895B19B716002C0B1997E7F08950F9352
|
:10029A007E7F08950F931F93082D18E0069508F4A2
|
||||||
:1002AA001F93082D18E0069508F458F0F894B99AA7
|
:1002AA0058F0F894B99A30E046E76DDFB99830E033
|
||||||
:1002BA0030E046E76FDFB99830E042E16BDF7894CF
|
:1002BA0042E169DF78940AC0F894B99A30E04AE0DA
|
||||||
:1002CA000AC0F894B99A30E04AE064DFB99830E09D
|
:1002CA0062DFB99830E04EE75EDF78941A9531F72D
|
||||||
:1002DA004EE760DF78941A9531F71F910F910895D0
|
:1002DA001F910F9108950F931F93002718E0F89428
|
||||||
:1002EA000F931F93002718E0F8940695B99A30E007
|
:1002EA000695B99A30E04AE04EDFB99830E040E12D
|
||||||
:1002FA004AE050DFB99830E040E14CDFB19900683C
|
:1002FA004ADFB199006830E04CE645DF1A9581F78C
|
||||||
:10030A0030E04CE647DF1A9581F70C9378941F91F9
|
:10030A000C9378941F910F910895F8945F9354E099
|
||||||
:10031A000F910895F8945F9354E0A3E6B0E08093B8
|
:10031A00A3E6B0E0809361009093620000916100CF
|
||||||
:10032A0061009093620000916100109162002AE0DE
|
:10032A00109162002AE030E01BDFED920093610039
|
||||||
:10033A0030E01DDFED9200936100109362005A9540
|
:10033A00109362005A9591F75F91789408950F93FC
|
||||||
:10034A0091F75F91789408950F931F93E4EAF3E08D
|
:10034A001F93EAE9F3E01127E00FF11F04901F91D0
|
||||||
:10035A001127E00FF11F04901F910F9108950F9339
|
:10035A000F9108950F931F932F932AE01FEF0FEF2A
|
||||||
:10036A001F932F932AE01FEF0FEF0A95F1F71A95C3
|
:10036A000A95F1F71A95D9F72A95C1F72F911F9196
|
||||||
:10037A00D9F72A95C1F72F911F910F9108950F93DD
|
:10037A000F9108950F931F930FEF1FEF1A95000027
|
||||||
:10038A001F930FEF1FEF1A95000000000000D9F726
|
:10038A0000000000D9F70A95C1F71F910F9108954F
|
||||||
:10039A000A95C1F71F910F910895C0F9A4B09992D7
|
:0C039A00C0F9A4B0999282F880909CBF3A
|
||||||
:0603AA0082F880909CBF68
|
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
#
|
#
|
||||||
#Tue Jun 20 07:06:09 MSK 2023
|
#Thu Jun 22 06:29:23 MSK 2023
|
||||||
default.languagetoolchain.version=2.2.7
|
default.languagetoolchain.version=2.2.7
|
||||||
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
|
default.Pack.dfplocation=/home/sergeyyarkov/.mchp_packs/Microchip/ATtiny_DFP/3.0.151
|
||||||
default.com-microchip-mplab-mdbcore-simulator-Simulator.md5=19e4dc0f223322f74cda227c3c12c71c
|
default.com-microchip-mplab-mdbcore-simulator-Simulator.md5=19e4dc0f223322f74cda227c3c12c71c
|
||||||
conf.ids=default
|
conf.ids=default
|
||||||
default.languagetoolchain.dir=/usr/bin
|
default.languagetoolchain.dir=/usr/bin
|
||||||
host.id=1707-dsfu-bg
|
host.id=2l3s-yrgx-1d
|
||||||
configurations-xml=5ccf631a2321e636528c6541c2c69f2c
|
configurations-xml=cdd4b69d8607063199baa35f45d5db2e
|
||||||
default.com-microchip-mplab-nbide-toolchain-avrasm-AVRASMLanguageToolchain.md5=0e94da8ed93e9650ffef50929833a79f
|
default.com-microchip-mplab-nbide-toolchain-avrasm-AVRASMLanguageToolchain.md5=0e94da8ed93e9650ffef50929833a79f
|
||||||
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b
|
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=6e02ca5e9f5042ffd365b42ab82d3a9b
|
||||||
user-defined-mime-resolver-xml=none
|
user-defined-mime-resolver-xml=none
|
||||||
|
|||||||
@ -1022,10 +1022,22 @@
|
|||||||
<property key="warningmessagebreakoptions.warningmessages" value="holdstate"/>
|
<property key="warningmessagebreakoptions.warningmessages" value="holdstate"/>
|
||||||
</Tool>
|
</Tool>
|
||||||
<item path="definitions.asm" ex="true" overriding="false">
|
<item path="definitions.asm" ex="true" overriding="false">
|
||||||
|
<AVR-ASM>
|
||||||
|
</AVR-ASM>
|
||||||
|
<AVR-Global>
|
||||||
|
</AVR-Global>
|
||||||
</item>
|
</item>
|
||||||
<item path="div16u.asm" ex="true" overriding="false">
|
<item path="div16u.asm" ex="true" overriding="false">
|
||||||
|
<AVR-ASM>
|
||||||
|
</AVR-ASM>
|
||||||
|
<AVR-Global>
|
||||||
|
</AVR-Global>
|
||||||
</item>
|
</item>
|
||||||
<item path="macros.asm" ex="true" overriding="false">
|
<item path="macros.asm" ex="true" overriding="false">
|
||||||
|
<AVR-ASM>
|
||||||
|
</AVR-ASM>
|
||||||
|
<AVR-Global>
|
||||||
|
</AVR-Global>
|
||||||
</item>
|
</item>
|
||||||
</conf>
|
</conf>
|
||||||
</confs>
|
</confs>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user