mirror of
https://github.com/sergeyyarkov/attiny2313a_thermostat.git
synced 2026-10-11 02:08:52 +03:00
min & max limit for temp setting
This commit is contained in:
parent
f4112a7d64
commit
b176b356ce
@ -7,6 +7,8 @@
|
|||||||
.DEF DELAY_24_r = r21
|
.DEF DELAY_24_r = r21
|
||||||
.DEF DISP_NUM_L = r24 ; LSB числа которое сейчас на индикаторе
|
.DEF DISP_NUM_L = r24 ; LSB числа которое сейчас на индикаторе
|
||||||
.DEF DISP_NUM_H = r25 ; MSB числа которое сейчас на индикаторе
|
.DEF DISP_NUM_H = r25 ; MSB числа которое сейчас на индикаторе
|
||||||
|
.DEF EEP_A_r = r3
|
||||||
|
.DEF EEP_D_r = r4
|
||||||
.DEF REPROGRAM_STEP_r = r6
|
.DEF REPROGRAM_STEP_r = r6
|
||||||
|
|
||||||
.EQU DIGIT_1_PIN = PD2 ; Пин разряда индикатора 1
|
.EQU DIGIT_1_PIN = PD2 ; Пин разряда индикатора 1
|
||||||
@ -14,8 +16,8 @@
|
|||||||
.EQU DIGIT_3_PIN = PD4 ; Пин разряда индикатора 3
|
.EQU DIGIT_3_PIN = PD4 ; Пин разряда индикатора 3
|
||||||
.EQU DIGIT_4_PIN = PD5 ; Пин разряда индикатора 4
|
.EQU DIGIT_4_PIN = PD5 ; Пин разряда индикатора 4
|
||||||
|
|
||||||
.EQU LED_ERR_PIN = PD6 ; Светодиод который говорит о том, что МК в состоянии ошибки
|
.EQU LED_PGM_PIN = PD6 ; Светодиод который говорит о том, что МК в состоянии настройки
|
||||||
.EQU LED_ERR_PORT = PORTD
|
.EQU LED_PGM_PORT = PORTD
|
||||||
|
|
||||||
.EQU OW_LINE = PB1 ; Пин шины 1-Wire
|
.EQU OW_LINE = PB1 ; Пин шины 1-Wire
|
||||||
.EQU OW_DDR = DDRB
|
.EQU OW_DDR = DDRB
|
||||||
@ -64,6 +66,11 @@
|
|||||||
.EQU MIN_HYST = 1 ; минимальный гистерезис который можно выставить - 0.1
|
.EQU MIN_HYST = 1 ; минимальный гистерезис который можно выставить - 0.1
|
||||||
.EQU MAX_HYST = 200 ; максимальный гистерезис который можно выставить - 20
|
.EQU MAX_HYST = 200 ; максимальный гистерезис который можно выставить - 20
|
||||||
|
|
||||||
|
.EQU MIN_TEMP_H = 0xfe
|
||||||
|
.EQU MIN_TEMP_L = 0x0c ; минимум -50 градусов уставка
|
||||||
|
.EQU MAX_TEMP_H = 0x04 ; максимум 120 градусов уставка
|
||||||
|
.EQU MAX_TEMP_L = 0xb0
|
||||||
|
|
||||||
; **** СТАНДАРТНЫЕ ПАРАМЕТРЫ ***********************************
|
; **** СТАНДАРТНЫЕ ПАРАМЕТРЫ ***********************************
|
||||||
|
|
||||||
.EQU DEFAULT_TEMP = 300 ; 30 градусов
|
.EQU DEFAULT_TEMP = 300 ; 30 градусов
|
||||||
@ -78,3 +85,9 @@
|
|||||||
.EQU DEFAULT_SETTING_TEMP_H = HIGH(DEFAULT_TEMP)
|
.EQU DEFAULT_SETTING_TEMP_H = HIGH(DEFAULT_TEMP)
|
||||||
.EQU DEFAULT_SETTING_HYST = DEFAULT_HYST
|
.EQU DEFAULT_SETTING_HYST = DEFAULT_HYST
|
||||||
.EQU DEFAULT_SETTING_MODE = DEFAULT_MODE
|
.EQU DEFAULT_SETTING_MODE = DEFAULT_MODE
|
||||||
|
|
||||||
|
.EQU EEP_SETTING_TEMP_H = 0x00
|
||||||
|
.EQU EEP_SETTING_TEMP_L = 0x01
|
||||||
|
.EQU EEP_SETTING_HYST = 0x02
|
||||||
|
.EQU EEP_SETTING_MODE = 0x03
|
||||||
|
.EQU EEP_FIRST_TIME_RUN = 0x04
|
||||||
@ -7,12 +7,12 @@
|
|||||||
:10003A002F933F934F935F935FB74091670045308B
|
:10003A002F933F934F935F935FB74091670045308B
|
||||||
:10004A000CF403C0442740936700403081F493982E
|
:10004A000CF403C0442740936700403081F493982E
|
||||||
:10005A00949895980EF002C00BE002C000916500DA
|
:10005A00949895980EF002C00BE002C000916500DA
|
||||||
:10006A00002311F0929A01C0929850D305D24130E0
|
:10006A00002311F0929A01C0929858D305D24130D8
|
||||||
:10007A0081F4929894989598009164003091650063
|
:10007A0081F4929894989598009164003091650063
|
||||||
:10008A00032B11F0939A01C09398009164003ED318
|
:10008A00032B11F0939A01C093980091640046D310
|
||||||
:10009A00F3D1423059F4929893989598949A009192
|
:10009A00F3D1423059F4929893989598949A009192
|
||||||
:1000AA00630034D3002D0F77002EE6D1433041F49C
|
:1000AA0063003CD3002D0F77002EE6D1433041F494
|
||||||
:1000BA00929893989498959A0091660027D3DCD1E8
|
:1000BA00929893989498959A009166002FD3DCD1E0
|
||||||
:1000CA004395409367005FBF5F914F913F912F9196
|
:1000CA004395409367005FBF5F914F913F912F9196
|
||||||
:1000DA001F910F9118950FED0DBF0FE701BB01EEB0
|
:1000DA001F910F9118950FED0DBF0FE701BB01EEB0
|
||||||
:1000EA0007BB0CE108BB02E000BF05E003BF03E267
|
:1000EA0007BB0CE108BB02E000BF05E003BF03E267
|
||||||
@ -24,9 +24,9 @@
|
|||||||
:10014A0040926D0003E0302ED3D040926E0000271B
|
:10014A0040926D0003E0302ED3D040926E0000271B
|
||||||
:10015A00009368000093690000EF00936A000FEFB4
|
:10015A00009368000093690000EF00936A000FEFB4
|
||||||
:10016A0000937100662428D100916F00083209F4C7
|
:10016A0000937100662428D100916F00083209F4C7
|
||||||
:10017A0005C012E010936000DBD201C0D2D280E049
|
:10017A0005C012E010936000E3D201C0DAD280E039
|
||||||
:10018A0090E000916000003051F420916A002093C1
|
:10018A0090E000916000003051F420916A002093C1
|
||||||
:10019A00660003D1A1D2B4D011E019BF41D0013019
|
:10019A00660003D1A9D2B4D011E019BF41D0013011
|
||||||
:1001AA0009F4A6D1023069F71BE01093630010939B
|
:1001AA0009F4A6D1023069F71BE01093630010939B
|
||||||
:1001BA006400109365001093660011E019BFE1CF47
|
:1001BA006400109365001093660011E019BFE1CF47
|
||||||
:1001CA00EE24FF1841E1001F111F4A9509F4089512
|
:1001CA00EE24FF1841E1001F111F4A9509F4089512
|
||||||
@ -59,66 +59,67 @@
|
|||||||
:10037A00442311F4909801C0909A07C040916E00EE
|
:10037A00442311F4909801C0909A07C040916E00EE
|
||||||
:10038A00442311F4909A01C090987F915F914F9104
|
:10038A00442311F4909A01C090987F915F914F9104
|
||||||
:10039A003F912F911F910F9108951F9361D052E1C0
|
:10039A003F912F911F910F9108951F9361D052E1C0
|
||||||
:1003AA0035E54DEBE0D112D010916800812F109104
|
:1003AA0035E54DEBE8D112D010916800812F1091FC
|
||||||
:1003BA006900912F1F9108950F9340D103E3802E76
|
:1003BA006900912F1F9108950F9348D103E3802E6E
|
||||||
:1003CA0052D1AFE6B0E06ED10F9108950F931F930B
|
:1003CA005AD1AFE6B0E076D10F9108950F931F93FB
|
||||||
:1003DA002F933F934F9332D170FF3CC00CEC802E89
|
:1003DA002F933F934F933AD170FF3CC00CEC802E81
|
||||||
:1003EA0042D10EEB802E3FD1A8E6B0E05BD1A9E660
|
:1003EA004AD10EEB802E47D1A8E6B0E063D1A9E648
|
||||||
:1003FA00B0E058D110916800209169002F93287FAE
|
:1003FA00B0E060D110916800209169002F93287FA6
|
||||||
:10040A00283F11F0E89407C02F9168941095209521
|
:10040A00283F11F0E89407C02F9168941095209521
|
||||||
:10041A001F5F2F4F01C02F91269517952695179587
|
:10041A001F5F2F4F01C02F91269517952695179587
|
||||||
:10042A002695179526951795309168000EF4319503
|
:10042A002695179526951795309168000EF4319503
|
||||||
:10043A00432F3F70432F330F330F330F440F340FC3
|
:10043A00432F3F70432F330F330F330F440F340FC3
|
||||||
:10044A00369536953695369510936800209369004F
|
:10044A00369536953695369510936800209369004F
|
||||||
:10045A0030936A004F913F912F911F910F91089508
|
:10045A0030936A004F913F912F911F910F91089508
|
||||||
:10046A000F93ECD070FF06C00CEC802EFCD004E495
|
:10046A000F93F4D070FF06C00CEC802E04D104E484
|
||||||
:10047A00802EF9D00F9108950F930F920FB800E4D0
|
:10047A00802E01D10F9108950F930F920FB800E4C7
|
||||||
:10048A000EB90BE10DB9769BFDCFC09AC0980F90BB
|
:10048A000EB90BE10DB9769BFDCFC09AC0980F90BB
|
||||||
:10049A000F9108950F93B49B01C01CC00091710085
|
:10049A000F9108950F93B49B01C01CC00091710085
|
||||||
:1004AA00002309F417C000270093710048D1639410
|
:1004AA00002309F417C000270093710050D1639408
|
||||||
:1004BA00162D143014F435D10DC010E019BF9298DE
|
:1004BA00162D143014F43DD10DC010E019BF9298D6
|
||||||
:1004CA009398949895986624EBDE32D1969810E02A
|
:1004CA009398949895986624EBDE3AD1969810E022
|
||||||
:1004DA0010936000B49901C009C000917100002313
|
:1004DA0010936000B49901C009C000917100002313
|
||||||
:1004EA0009F004C00FEF0093710029D10F9108950C
|
:1004EA0009F004C00FEF0093710031D10F91089504
|
||||||
:1004FA000F931F932F933F934F93062D002309F0D9
|
:1004FA000F931F932F933F934F93062D002309F0D9
|
||||||
:10050A0004C09098969A0DD16394C4DF013029F003
|
:10050A0004C09098969A15D16394C4DF013029F0FB
|
||||||
:10051A00023049F1033031F18BC0DED0B29B04C006
|
:10051A00023049F1033031F193C0E6D0B29B04C0F6
|
||||||
:10052A0000C0B39B0AC011C00AD110916D00183CDB
|
:10052A0000C0B39B0AC011C012D110916D00183CD3
|
||||||
:10053A0009F0139510936D0008C001D110916D0058
|
:10053A0009F0139510936D0008C009D110916D0050
|
||||||
:10054A00113009F01A9510936D000F931F930091C3
|
:10054A00113009F01A9510936D000F931F930091C3
|
||||||
:10055A006D001AE048DE802F9927F09266001F91FD
|
:10055A006D001AE048DE802F9927F09266001F91FD
|
||||||
:10056A000F9166C03FC0B8D0B29B04C000C0B39B15
|
:10056A000F916EC047C0C0D0B29B04C000C0B39BFD
|
||||||
:10057A000FC019C0E4D010916C0020916B003AE0D2
|
:10057A0013C021C0ECD010916C0020916B00103B8D
|
||||||
:10058A00130F3327231F10936C0020936B000BC0AB
|
:10058A0034E0230731F03AE0130F3327231F109387
|
||||||
:10059A00D6D010916C0020916B001A502040109315
|
:10059A006C0020936B000FC0DAD010916C00209190
|
||||||
:1005AA006C0020936B000F931F932F933F9300913E
|
:1005AA006B001C303EEF230711F01A5020401093C5
|
||||||
:1005BA006C0010916B00212F207811F4E89405C08B
|
:1005BA006C0020936B000F931F932F933F9300912E
|
||||||
:1005CA006894009510950F5F1F4F2AE030E0F8DD20
|
:1005CA006C0010916B00212F207811F4E89405C07B
|
||||||
:1005DA00802F912F0AE0009366003F912F911F917F
|
:1005DA006894009510950F5F1F4F2AE030E0F0DD18
|
||||||
:1005EA000F9126C0E894B29B04C000C0B39B06C01A
|
:1005EA00802F912F0AE0009366003F912F911F916F
|
||||||
:1005FA0009C0A5D011E010936E0004C0A0D010E08D
|
:1005FA000F9126C0E894B29B04C000C0B39B06C00A
|
||||||
:10060A0010936E001127812F912F112710936300E9
|
:10060A0009C0A5D011E010936E0004C0A0D010E07C
|
||||||
:10061A00109364001093650020916E00222309F064
|
:10061A0010936E001127812F912F1EE01093630013
|
||||||
:10062A0004C01CE01093660003C01DE0109366002E
|
:10062A00109364001093650020916E00222309F054
|
||||||
:10063A004F913F912F911F910F910895F894B99A74
|
:10063A0004C01CE01093660003C01DE0109366001E
|
||||||
:10064A0033E04EEB8CD0B99830E04AE888D005D038
|
:10064A004F913F912F911F910F910895F894B99A64
|
||||||
:10065A0033E042E384D078940895B19B716002C07C
|
:10065A0033E04EEB8CD0B99830E04AE888D005D028
|
||||||
:10066A00B1997E7F0895F8940F931F93082D18E08F
|
:10066A0033E042E384D078940895B19B716002C06C
|
||||||
:10067A00069508F448F0B99A30E046E770D0B99880
|
:10067A00B1997E7F0895F8940F931F93082D18E07F
|
||||||
:10068A0030E042E16CD008C0B99A30E04AE067D065
|
:10068A00069508F448F0B99A30E046E770D0B99870
|
||||||
:10069A00B99830E04EE763D01A9551F71F910F9140
|
:10069A0030E042E16CD008C0B99A30E04AE067D055
|
||||||
:1006AA0078940895F8940F931F93002718E00695FD
|
:1006AA00B99830E04EE763D01A9551F71F910F9130
|
||||||
:1006BA00B99A30E04AE053D0B99830E040E14FD0DF
|
:1006BA0078940895F8940F931F93002718E00695ED
|
||||||
:1006CA00B199006830E04CE64AD01A9581F70C934C
|
:1006CA00B99A30E04AE053D0B99830E040E14FD0CF
|
||||||
:1006DA001F910F91789408950F935F9353E0A3E6C7
|
:1006DA00B199006830E04CE64AD01A9581F70C933C
|
||||||
:1006EA00B0E08093610090936200009161001091E4
|
:1006EA001F910F91789408950F935F9353E0A3E6B7
|
||||||
:1006FA0062002AE030E064DDED920093610010931D
|
:1006FA00B0E08093610090936200009161001091D4
|
||||||
:10070A0062005A9591F75F910F9108950F931F9385
|
:10070A0062002AE030E05CDDED9200936100109314
|
||||||
:10071A00EAE7F7E01127E00FF11F04901F910F910C
|
:10071A0062005A9591F75F910F9108950F931F9375
|
||||||
:10072A000895C59A53E039EA4DE71DD0C598089552
|
:10072A00EAE8F7E01127E00FF11F04901F910F91FB
|
||||||
:10073A00C59A5CE034E34DEF16D0C59808950F933F
|
:10073A000895C59A53E039EA4DE71DD0C598089542
|
||||||
:10074A001F932F932AE01FEF0FEF0A95F1F71A95DF
|
:10074A00C59A5CE034E34DEF16D0C59808950F932F
|
||||||
:10075A00D9F72A95C1F72F911F910F91089541500A
|
:10075A001F932F932AE01FEF0FEF0A95F1F71A95CF
|
||||||
:10076A003040E8F70895415030405040E0F708958E
|
:10076A00D9F72A95C1F72F911F910F9108954150FA
|
||||||
:0E077A00C0F9A4B0999282F880909CBFC68905
|
:10077A003040E8F70895415030405040E0F708957E
|
||||||
|
:0E078A00C0F9A4B0999282F880909CBFC689F5
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
@ -1,58 +1,58 @@
|
|||||||
|
|
||||||
AVRASM ver. 2.2.7 main.asm Fri Jun 30 16:51:54 2023
|
AVRASM ver. 2.2.7 main.asm Fri Jun 30 21:37:26 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(329): Including file 'div16u.asm'
|
main.asm(317): 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(329): 'div16u.asm' included form here
|
main.asm(317): '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(329): 'div16u.asm' included form here
|
main.asm(317): '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(329): 'div16u.asm' included form here
|
main.asm(317): '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(329): 'div16u.asm' included form here
|
main.asm(317): '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(329): 'div16u.asm' included form here
|
main.asm(317): '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(329): 'div16u.asm' included form here
|
main.asm(317): 'div16u.asm' included form here
|
||||||
main.asm(330): Including file 'div8u.asm'
|
main.asm(318): Including file 'div8u.asm'
|
||||||
div8u.asm(18): warning: Register r15 already defined by the .DEF directive
|
div8u.asm(18): warning: Register r15 already defined by the .DEF directive
|
||||||
main.asm(330): 'div8u.asm' included form here
|
main.asm(318): 'div8u.asm' included form here
|
||||||
div8u.asm(19): warning: Register r16 already defined by the .DEF directive
|
div8u.asm(19): warning: Register r16 already defined by the .DEF directive
|
||||||
main.asm(330): 'div8u.asm' included form here
|
main.asm(318): 'div8u.asm' included form here
|
||||||
div8u.asm(20): warning: Register r16 already defined by the .DEF directive
|
div8u.asm(20): warning: Register r16 already defined by the .DEF directive
|
||||||
main.asm(330): 'div8u.asm' included form here
|
main.asm(318): 'div8u.asm' included form here
|
||||||
div8u.asm(21): warning: Register r17 already defined by the .DEF directive
|
div8u.asm(21): warning: Register r17 already defined by the .DEF directive
|
||||||
main.asm(330): 'div8u.asm' included form here
|
main.asm(318): 'div8u.asm' included form here
|
||||||
div8u.asm(22): warning: Register r18 already defined by the .DEF directive
|
div8u.asm(22): warning: Register r18 already defined by the .DEF directive
|
||||||
main.asm(330): 'div8u.asm' included form here
|
main.asm(318): 'div8u.asm' included form here
|
||||||
main.asm(331): Including file 'mpy16u.asm'
|
main.asm(319): Including file 'mpy16u.asm'
|
||||||
mpy16u.asm(19): warning: Register r16 already defined by the .DEF directive
|
mpy16u.asm(19): warning: Register r16 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(20): warning: Register r17 already defined by the .DEF directive
|
mpy16u.asm(20): warning: Register r17 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(21): warning: Register r18 already defined by the .DEF directive
|
mpy16u.asm(21): warning: Register r18 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(22): warning: Register r19 already defined by the .DEF directive
|
mpy16u.asm(22): warning: Register r19 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(23): warning: Register r18 already defined by the .DEF directive
|
mpy16u.asm(23): warning: Register r18 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(24): warning: Register r19 already defined by the .DEF directive
|
mpy16u.asm(24): warning: Register r19 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(25): warning: Register r20 already defined by the .DEF directive
|
mpy16u.asm(25): warning: Register r20 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
mpy16u.asm(26): warning: Register r21 already defined by the .DEF directive
|
mpy16u.asm(26): warning: Register r21 already defined by the .DEF directive
|
||||||
main.asm(331): 'mpy16u.asm' included form here
|
main.asm(319): 'mpy16u.asm' included form here
|
||||||
main.asm(498): warning: Register r16 already defined by the .DEF directive
|
main.asm(486): warning: Register r16 already defined by the .DEF directive
|
||||||
main.asm(499): warning: Register r17 already defined by the .DEF directive
|
main.asm(487): warning: Register r17 already defined by the .DEF directive
|
||||||
[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(329): Including file 'div16u.asm'
|
main.asm(317): Including file 'div16u.asm'
|
||||||
main.asm(330): Including file 'div8u.asm'
|
main.asm(318): Including file 'div8u.asm'
|
||||||
main.asm(331): Including file 'mpy16u.asm'
|
main.asm(319): Including file 'mpy16u.asm'
|
||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
@ -836,6 +836,11 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
.EQU MIN_HYST = 1 ; минимальный гистерезис который можно выставить - 0.1
|
.EQU MIN_HYST = 1 ; минимальный гистерезис который можно выставить - 0.1
|
||||||
.EQU MAX_HYST = 200 ; максимальный гистерезис который можно выставить - 20
|
.EQU MAX_HYST = 200 ; максимальный гистерезис который можно выставить - 20
|
||||||
|
|
||||||
|
.EQU MIN_TEMP_H = 0xfe
|
||||||
|
.EQU MIN_TEMP_L = 0x0c ; минимум -50 градусов уставка
|
||||||
|
.EQU MAX_TEMP_H = 0x04 ; максимум 120 градусов уставка
|
||||||
|
.EQU MAX_TEMP_L = 0xb0
|
||||||
|
|
||||||
; **** СТАНДАРТНЫЕ ПАРАМЕТРЫ ***********************************
|
; **** СТАНДАРТНЫЕ ПАРАМЕТРЫ ***********************************
|
||||||
|
|
||||||
.EQU DEFAULT_TEMP = 300 ; 30 градусов
|
.EQU DEFAULT_TEMP = 300 ; 30 градусов
|
||||||
@ -1005,7 +1010,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
000037 9a92 sbi PORTD, DIGIT_1_PIN
|
000037 9a92 sbi PORTD, DIGIT_1_PIN
|
||||||
000038 c001 rjmp PC+2
|
000038 c001 rjmp PC+2
|
||||||
000039 9892 cbi PORTD, DIGIT_1_PIN
|
000039 9892 cbi PORTD, DIGIT_1_PIN
|
||||||
00003a d350 rcall DISPLAY_DECODER
|
00003a d358 rcall DISPLAY_DECODER
|
||||||
00003b d205 rcall USI_TRANSMIT
|
00003b d205 rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_2:
|
_indicate_2:
|
||||||
@ -1023,7 +1028,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
000048 c001 rjmp PC+2
|
000048 c001 rjmp PC+2
|
||||||
000049 9893 cbi PORTD, DIGIT_2_PIN
|
000049 9893 cbi PORTD, DIGIT_2_PIN
|
||||||
00004a 9100 0064 lds TEMP_REG_A, DIGITS+1
|
00004a 9100 0064 lds TEMP_REG_A, DIGITS+1
|
||||||
00004c d33e rcall DISPLAY_DECODER
|
00004c d346 rcall DISPLAY_DECODER
|
||||||
00004d d1f3 rcall USI_TRANSMIT
|
00004d d1f3 rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_3:
|
_indicate_3:
|
||||||
@ -1035,7 +1040,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
000052 9895 cbi PORTD, DIGIT_4_PIN
|
000052 9895 cbi PORTD, DIGIT_4_PIN
|
||||||
000053 9a94 sbi PORTD, DIGIT_3_PIN
|
000053 9a94 sbi PORTD, DIGIT_3_PIN
|
||||||
000054 9100 0063 lds TEMP_REG_A, DIGITS
|
000054 9100 0063 lds TEMP_REG_A, DIGITS
|
||||||
000056 d334 rcall DISPLAY_DECODER
|
000056 d33c rcall DISPLAY_DECODER
|
||||||
000057 2d00 mov r16, r0
|
000057 2d00 mov r16, r0
|
||||||
000058 770f cbr r16, (1<<7)
|
000058 770f cbr r16, (1<<7)
|
||||||
000059 2e00 mov r0, r16
|
000059 2e00 mov r0, r16
|
||||||
@ -1050,7 +1055,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
00005f 9894 cbi PORTD, DIGIT_3_PIN
|
00005f 9894 cbi PORTD, DIGIT_3_PIN
|
||||||
000060 9a95 sbi PORTD, DIGIT_4_PIN
|
000060 9a95 sbi PORTD, DIGIT_4_PIN
|
||||||
000061 9100 0066 lds TEMP_REG_A, DIGITS+3
|
000061 9100 0066 lds TEMP_REG_A, DIGITS+3
|
||||||
000063 d327 rcall DISPLAY_DECODER
|
000063 d32f rcall DISPLAY_DECODER
|
||||||
000064 d1dc rcall USI_TRANSMIT
|
000064 d1dc rcall USI_TRANSMIT
|
||||||
|
|
||||||
_indicate_exit:
|
_indicate_exit:
|
||||||
@ -1149,18 +1154,6 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
0000a9 d0d3 rcall EEP_RD_BYTE
|
0000a9 d0d3 rcall EEP_RD_BYTE
|
||||||
0000aa 9240 006e sts SETTING_MODE, EEP_D_r
|
0000aa 9240 006e sts SETTING_MODE, EEP_D_r
|
||||||
|
|
||||||
; ldi r16, DEFAULT_SETTING_TEMP_L
|
|
||||||
; sts SETTING_TEMP_L, r16 ; уставка LOW
|
|
||||||
;
|
|
||||||
; ldi r16, DEFAULT_SETTING_TEMP_H
|
|
||||||
; sts SETTING_TEMP_H, r16 ; уставка HIGH
|
|
||||||
;
|
|
||||||
; ldi r16, DEFAULT_SETTING_HYST
|
|
||||||
; sts SETTING_HYST, r16 ; гистерезис
|
|
||||||
;
|
|
||||||
; ldi r16, DEFAULT_SETTING_MODE
|
|
||||||
; sts SETTING_MODE, r16 ; режим работы
|
|
||||||
|
|
||||||
_CONTINUE_INIT:
|
_CONTINUE_INIT:
|
||||||
0000ac 2700 clr r16
|
0000ac 2700 clr r16
|
||||||
0000ad 9300 0068 sts TEMP_L, r16
|
0000ad 9300 0068 sts TEMP_L, r16
|
||||||
@ -1185,10 +1178,10 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
ERR_FAMILY_CODE:
|
ERR_FAMILY_CODE:
|
||||||
0000be e012 ldi r17, MCU_STATE_ERROR
|
0000be e012 ldi r17, MCU_STATE_ERROR
|
||||||
0000bf 9310 0060 sts MCU_STATE, r17
|
0000bf 9310 0060 sts MCU_STATE, r17
|
||||||
0000c1 d2db rcall BEEP_LONG
|
0000c1 d2e3 rcall BEEP_LONG
|
||||||
0000c2 c001 rjmp PC+2
|
0000c2 c001 rjmp PC+2
|
||||||
START_PROGRAM:
|
START_PROGRAM:
|
||||||
0000c3 d2d2 rcall BEEP_SHORT
|
0000c3 d2da rcall BEEP_SHORT
|
||||||
0000c4 e080
|
0000c4 e080
|
||||||
0000c5 e090 display_load 0
|
0000c5 e090 display_load 0
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
@ -1206,7 +1199,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
0000cc 9320 0066 sts DIGITS+3, r18
|
0000cc 9320 0066 sts DIGITS+3, r18
|
||||||
|
|
||||||
0000ce d103 rcall TEMP_UPD ; обновление данных о температуре
|
0000ce d103 rcall TEMP_UPD ; обновление данных о температуре
|
||||||
0000cf d2a1 rcall DISPLAY_UPD_DIGITS
|
0000cf d2a9 rcall DISPLAY_UPD_DIGITS
|
||||||
0000d0 d0b4 rcall TEMP_COMPARSION ; логика термостата
|
0000d0 d0b4 rcall TEMP_COMPARSION ; логика термостата
|
||||||
0000d1 e011
|
0000d1 e011
|
||||||
0000d2 bf19 outi r17, TIMSK, (1<<OCIE0A) ; вкл. индикатор
|
0000d2 bf19 outi r17, TIMSK, (1<<OCIE0A) ; вкл. индикатор
|
||||||
@ -1630,7 +1623,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
0001d4 e152
|
0001d4 e152
|
||||||
0001d5 e535
|
0001d5 e535
|
||||||
0001d6 eb4d
|
0001d6 eb4d
|
||||||
0001d7 d1e0 DELAY24 751000
|
0001d7 d1e8 DELAY24 751000
|
||||||
0001d8 d012 rcall TEMP_RD
|
0001d8 d012 rcall TEMP_RD
|
||||||
|
|
||||||
; обновляем данные в ячейках
|
; обновляем данные в ячейках
|
||||||
@ -1646,14 +1639,14 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
RD_F_CODE:
|
RD_F_CODE:
|
||||||
0001e1 930f push r16
|
0001e1 930f push r16
|
||||||
|
|
||||||
0001e2 d140 rcall OW_PRESENCE
|
0001e2 d148 rcall OW_PRESENCE
|
||||||
0001e3 e303 ldi r16, DS18B20_CMD_READROM
|
0001e3 e303 ldi r16, DS18B20_CMD_READROM
|
||||||
0001e4 2e80 mov OW_CMD_r, r16
|
0001e4 2e80 mov OW_CMD_r, r16
|
||||||
0001e5 d152 rcall OW_SEND_BYTE
|
0001e5 d15a rcall OW_SEND_BYTE
|
||||||
|
|
||||||
0001e6 e6af ldi XL, LOW(DEVICE_FAMILY_CODE)
|
0001e6 e6af ldi XL, LOW(DEVICE_FAMILY_CODE)
|
||||||
0001e7 e0b0 ldi XH, HIGH(DEVICE_FAMILY_CODE)
|
0001e7 e0b0 ldi XH, HIGH(DEVICE_FAMILY_CODE)
|
||||||
0001e8 d16e rcall OW_RD_BYTE
|
0001e8 d176 rcall OW_RD_BYTE
|
||||||
|
|
||||||
0001e9 910f pop r16
|
0001e9 910f pop r16
|
||||||
0001ea 9508 ret//</editor-fold>
|
0001ea 9508 ret//</editor-fold>
|
||||||
@ -1666,25 +1659,25 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
0001ee 933f push r19
|
0001ee 933f push r19
|
||||||
0001ef 934f push r20
|
0001ef 934f push r20
|
||||||
|
|
||||||
0001f0 d132 rcall OW_PRESENCE
|
0001f0 d13a rcall OW_PRESENCE
|
||||||
0001f1 ff70 sbrs OWFR, OWPRF
|
0001f1 ff70 sbrs OWFR, OWPRF
|
||||||
0001f2 c03c rjmp _TEMP_RD_EXIT
|
0001f2 c03c rjmp _TEMP_RD_EXIT
|
||||||
|
|
||||||
0001f3 ec0c ldi r16, DS18B20_CMD_SKIPROM
|
0001f3 ec0c ldi r16, DS18B20_CMD_SKIPROM
|
||||||
0001f4 2e80 mov OW_CMD_r, r16
|
0001f4 2e80 mov OW_CMD_r, r16
|
||||||
0001f5 d142 rcall OW_SEND_BYTE
|
0001f5 d14a rcall OW_SEND_BYTE
|
||||||
|
|
||||||
0001f6 eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
|
0001f6 eb0e ldi r16, DS18B20_CMD_RSCRATCHPAD
|
||||||
0001f7 2e80 mov OW_CMD_r, r16
|
0001f7 2e80 mov OW_CMD_r, r16
|
||||||
0001f8 d13f rcall OW_SEND_BYTE
|
0001f8 d147 rcall OW_SEND_BYTE
|
||||||
|
|
||||||
0001f9 e6a8 ldi XL, LOW(TEMP_L)
|
0001f9 e6a8 ldi XL, LOW(TEMP_L)
|
||||||
0001fa e0b0 ldi XH, HIGH(TEMP_L)
|
0001fa e0b0 ldi XH, HIGH(TEMP_L)
|
||||||
0001fb d15b rcall OW_RD_BYTE
|
0001fb d163 rcall OW_RD_BYTE
|
||||||
|
|
||||||
0001fc e6a9 ldi XL, LOW(TEMP_H)
|
0001fc e6a9 ldi XL, LOW(TEMP_H)
|
||||||
0001fd e0b0 ldi XH, HIGH(TEMP_H)
|
0001fd e0b0 ldi XH, HIGH(TEMP_H)
|
||||||
0001fe d158 rcall OW_RD_BYTE
|
0001fe d160 rcall OW_RD_BYTE
|
||||||
|
|
||||||
0001ff 9110 0068 lds r17, TEMP_L
|
0001ff 9110 0068 lds r17, TEMP_L
|
||||||
000201 9120 0069 lds r18, TEMP_H
|
000201 9120 0069 lds r18, TEMP_H
|
||||||
@ -1758,17 +1751,17 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
TEMP_CONV:
|
TEMP_CONV:
|
||||||
000235 930f push r16
|
000235 930f push r16
|
||||||
|
|
||||||
000236 d0ec rcall OW_PRESENCE
|
000236 d0f4 rcall OW_PRESENCE
|
||||||
000237 ff70 sbrs OWFR, OWPRF
|
000237 ff70 sbrs OWFR, OWPRF
|
||||||
000238 c006 rjmp _TEMP_CONV_EXIT
|
000238 c006 rjmp _TEMP_CONV_EXIT
|
||||||
|
|
||||||
000239 ec0c ldi r16, DS18B20_CMD_SKIPROM
|
000239 ec0c ldi r16, DS18B20_CMD_SKIPROM
|
||||||
00023a 2e80 mov OW_CMD_r, r16
|
00023a 2e80 mov OW_CMD_r, r16
|
||||||
00023b d0fc rcall OW_SEND_BYTE
|
00023b d104 rcall OW_SEND_BYTE
|
||||||
|
|
||||||
00023c e404 ldi r16, DS18B20_CMD_CONVERTTEMP
|
00023c e404 ldi r16, DS18B20_CMD_CONVERTTEMP
|
||||||
00023d 2e80 mov OW_CMD_r, r16
|
00023d 2e80 mov OW_CMD_r, r16
|
||||||
00023e d0f9 rcall OW_SEND_BYTE
|
00023e d101 rcall OW_SEND_BYTE
|
||||||
|
|
||||||
_TEMP_CONV_EXIT:
|
_TEMP_CONV_EXIT:
|
||||||
00023f 910f pop r16
|
00023f 910f pop r16
|
||||||
@ -1824,12 +1817,12 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
_SW_SET_FROM_0_TO_1:
|
_SW_SET_FROM_0_TO_1:
|
||||||
000258 2700 clr r16
|
000258 2700 clr r16
|
||||||
000259 9300 0071 sts SW_DATA, r16
|
000259 9300 0071 sts SW_DATA, r16
|
||||||
00025b d148 rcall DEBOUNCE_SW
|
00025b d150 rcall DEBOUNCE_SW
|
||||||
00025c 9463 inc REPROGRAM_STEP_r
|
00025c 9463 inc REPROGRAM_STEP_r
|
||||||
00025d 2d16 mov r17, REPROGRAM_STEP_r
|
00025d 2d16 mov r17, REPROGRAM_STEP_r
|
||||||
00025e 3014 cpi r17, 4
|
00025e 3014 cpi r17, 4
|
||||||
00025f f414 brge _SAVE_SETTINGS
|
00025f f414 brge _SAVE_SETTINGS
|
||||||
000260 d135 rcall BEEP_SHORT
|
000260 d13d rcall BEEP_SHORT
|
||||||
000261 c00d rjmp _SW_CHECK_ON_1
|
000261 c00d rjmp _SW_CHECK_ON_1
|
||||||
_SAVE_SETTINGS:
|
_SAVE_SETTINGS:
|
||||||
000262 e010
|
000262 e010
|
||||||
@ -1840,7 +1833,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
000267 9895 cbi PORTD, DIGIT_4_PIN
|
000267 9895 cbi PORTD, DIGIT_4_PIN
|
||||||
000268 2466 clr REPROGRAM_STEP_r
|
000268 2466 clr REPROGRAM_STEP_r
|
||||||
000269 deeb rcall WRITE_PARAMS_TO_EEP
|
000269 deeb rcall WRITE_PARAMS_TO_EEP
|
||||||
00026a d132 rcall BEEP_LONG
|
00026a d13a rcall BEEP_LONG
|
||||||
00026b 9896 cbi PORTD, LED_PGM_PIN
|
00026b 9896 cbi PORTD, LED_PGM_PIN
|
||||||
00026c e010 ldi r17, MCU_STATE_DEFAULT
|
00026c e010 ldi r17, MCU_STATE_DEFAULT
|
||||||
00026d 9310 0060 sts MCU_STATE, r17
|
00026d 9310 0060 sts MCU_STATE, r17
|
||||||
@ -1856,7 +1849,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
_SW_SET_FROM_1_TO_0:
|
_SW_SET_FROM_1_TO_0:
|
||||||
000277 ef0f ser r16
|
000277 ef0f ser r16
|
||||||
000278 9300 0071 sts SW_DATA, r16
|
000278 9300 0071 sts SW_DATA, r16
|
||||||
00027a d129 rcall DEBOUNCE_SW
|
00027a d131 rcall DEBOUNCE_SW
|
||||||
_BUTTON_PROCESS_END:
|
_BUTTON_PROCESS_END:
|
||||||
00027b 910f pop r16
|
00027b 910f pop r16
|
||||||
00027c 9508 ret
|
00027c 9508 ret
|
||||||
@ -1877,7 +1870,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
_INTO:
|
_INTO:
|
||||||
000286 9890 relay_off
|
000286 9890 relay_off
|
||||||
000287 9a96 sbi PORTD, LED_PGM_PIN
|
000287 9a96 sbi PORTD, LED_PGM_PIN
|
||||||
000288 d10d rcall BEEP_SHORT
|
000288 d115 rcall BEEP_SHORT
|
||||||
000289 9463 inc REPROGRAM_STEP_r
|
000289 9463 inc REPROGRAM_STEP_r
|
||||||
_REPROGRAM_SETTINGS_LOOP:
|
_REPROGRAM_SETTINGS_LOOP:
|
||||||
00028a dfc4 rcall BUTTON_PROCESS
|
00028a dfc4 rcall BUTTON_PROCESS
|
||||||
@ -1888,11 +1881,11 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
00028e f149 breq _STEP_2
|
00028e f149 breq _STEP_2
|
||||||
00028f 3003 cpi r16, 3
|
00028f 3003 cpi r16, 3
|
||||||
000290 f131 breq _S3_JMP
|
000290 f131 breq _S3_JMP
|
||||||
000291 c08b rjmp _REPROGRAM_SETTINGS_END
|
000291 c093 rjmp _REPROGRAM_SETTINGS_END
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 1">
|
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 1">
|
||||||
_STEP_1: ; установка и отображение гистерезиса
|
_STEP_1: ; установка и отображение гистерезиса
|
||||||
000292 d0de rcall DISPLAY_UPD_DIGITS
|
000292 d0e6 rcall DISPLAY_UPD_DIGITS
|
||||||
_S1_CHECK_PLUS:
|
_S1_CHECK_PLUS:
|
||||||
000293 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
000293 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
||||||
000294 c004 rjmp _INCREASE_HYST
|
000294 c004 rjmp _INCREASE_HYST
|
||||||
@ -1902,7 +1895,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
000297 c00a rjmp _DECREASE_HYST
|
000297 c00a rjmp _DECREASE_HYST
|
||||||
000298 c011 rjmp _SHOW_HYST
|
000298 c011 rjmp _SHOW_HYST
|
||||||
_INCREASE_HYST:
|
_INCREASE_HYST:
|
||||||
000299 d10a rcall DEBOUNCE_SW
|
000299 d112 rcall DEBOUNCE_SW
|
||||||
00029a 9110 006d lds r17, SETTING_HYST
|
00029a 9110 006d lds r17, SETTING_HYST
|
||||||
00029c 3c18 cpi r17, MAX_HYST
|
00029c 3c18 cpi r17, MAX_HYST
|
||||||
00029d f009 breq PC+2
|
00029d f009 breq PC+2
|
||||||
@ -1910,7 +1903,7 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
00029f 9310 006d sts SETTING_HYST, r17
|
00029f 9310 006d sts SETTING_HYST, r17
|
||||||
0002a1 c008 rjmp _SHOW_HYST
|
0002a1 c008 rjmp _SHOW_HYST
|
||||||
_DECREASE_HYST:
|
_DECREASE_HYST:
|
||||||
0002a2 d101 rcall DEBOUNCE_SW
|
0002a2 d109 rcall DEBOUNCE_SW
|
||||||
0002a3 9110 006d lds r17, SETTING_HYST
|
0002a3 9110 006d lds r17, SETTING_HYST
|
||||||
0002a5 3011 cpi r17, MIN_HYST
|
0002a5 3011 cpi r17, MIN_HYST
|
||||||
0002a6 f009 breq PC+2
|
0002a6 f009 breq PC+2
|
||||||
@ -1927,149 +1920,158 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
0002b2 92f0 0066 sts DIGITS+3, drem8u
|
0002b2 92f0 0066 sts DIGITS+3, drem8u
|
||||||
0002b4 911f pop dv8u
|
0002b4 911f pop dv8u
|
||||||
0002b5 910f pop dd8u
|
0002b5 910f pop dd8u
|
||||||
0002b6 c066 rjmp _REPROGRAM_SETTINGS_END
|
0002b6 c06e rjmp _REPROGRAM_SETTINGS_END
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
_S3_JMP: ; просто прыжок на _STEP_3
|
_S3_JMP: ; просто прыжок на _STEP_3
|
||||||
0002b7 c03f rjmp _STEP_3
|
0002b7 c047 rjmp _STEP_3
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 2">
|
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 2">
|
||||||
_STEP_2:
|
_STEP_2:
|
||||||
0002b8 d0b8 rcall DISPLAY_UPD_DIGITS
|
0002b8 d0c0 rcall DISPLAY_UPD_DIGITS
|
||||||
_S2_CHECK_PLUS:
|
_S2_CHECK_PLUS:
|
||||||
0002b9 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
0002b9 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
||||||
0002ba c004 rjmp _INCREASE_TEMP
|
0002ba c004 rjmp _INCREASE_TEMP
|
||||||
0002bb c000 rjmp _S2_CHECK_MINUS
|
0002bb c000 rjmp _S2_CHECK_MINUS
|
||||||
_S2_CHECK_MINUS:
|
_S2_CHECK_MINUS:
|
||||||
0002bc 9bb3 sbis SW_PIN, SW_MINUS_PIN
|
0002bc 9bb3 sbis SW_PIN, SW_MINUS_PIN
|
||||||
0002bd c00f rjmp _DECREASE_TEMP
|
0002bd c013 rjmp _DECREASE_TEMP
|
||||||
0002be c019 rjmp _SHOW_TEMP
|
0002be c021 rjmp _SHOW_TEMP
|
||||||
_INCREASE_TEMP:
|
_INCREASE_TEMP:
|
||||||
0002bf d0e4 rcall DEBOUNCE_SW
|
0002bf d0ec rcall DEBOUNCE_SW
|
||||||
0002c0 9110 006c lds r17, SETTING_TEMP_L
|
0002c0 9110 006c lds r17, SETTING_TEMP_L
|
||||||
0002c2 9120 006b lds r18, SETTING_TEMP_H
|
0002c2 9120 006b lds r18, SETTING_TEMP_H
|
||||||
0002c4 e03a ldi r19, 10
|
0002c4 3b10 cpi r17, MAX_TEMP_L
|
||||||
0002c5 0f13 add r17, r19
|
0002c5 e034 ldi r19, MAX_TEMP_H
|
||||||
0002c6 2733 clr r19
|
0002c6 0723 cpc r18, r19
|
||||||
0002c7 1f23 adc r18, r19
|
0002c7 f031 breq PC+7
|
||||||
0002c8 9310 006c sts SETTING_TEMP_L, r17
|
0002c8 e03a ldi r19, 10
|
||||||
0002ca 9320 006b sts SETTING_TEMP_H, r18
|
0002c9 0f13 add r17, r19
|
||||||
0002cc c00b rjmp _SHOW_TEMP
|
0002ca 2733 clr r19
|
||||||
|
0002cb 1f23 adc r18, r19
|
||||||
|
0002cc 9310 006c sts SETTING_TEMP_L, r17
|
||||||
|
0002ce 9320 006b sts SETTING_TEMP_H, r18
|
||||||
|
0002d0 c00f rjmp _SHOW_TEMP
|
||||||
_DECREASE_TEMP:
|
_DECREASE_TEMP:
|
||||||
0002cd d0d6 rcall DEBOUNCE_SW
|
0002d1 d0da rcall DEBOUNCE_SW
|
||||||
0002ce 9110 006c lds r17, SETTING_TEMP_L
|
0002d2 9110 006c lds r17, SETTING_TEMP_L
|
||||||
0002d0 9120 006b lds r18, SETTING_TEMP_H
|
0002d4 9120 006b lds r18, SETTING_TEMP_H
|
||||||
0002d2 501a subi r17, 10
|
0002d6 301c cpi r17, MIN_TEMP_L
|
||||||
0002d3 4020 sbci r18, 0
|
0002d7 ef3e ldi r19, MIN_TEMP_H
|
||||||
0002d4 9310 006c sts SETTING_TEMP_L, r17
|
0002d8 0723 cpc r18, r19
|
||||||
0002d6 9320 006b sts SETTING_TEMP_H, r18
|
0002d9 f011 breq PC+3
|
||||||
|
__DECREASE:
|
||||||
|
0002da 501a subi r17, 10
|
||||||
|
0002db 4020 sbci r18, 0
|
||||||
|
0002dc 9310 006c sts SETTING_TEMP_L, r17
|
||||||
|
0002de 9320 006b sts SETTING_TEMP_H, r18
|
||||||
_SHOW_TEMP:
|
_SHOW_TEMP:
|
||||||
0002d8 930f push dd16uL
|
0002e0 930f push dd16uL
|
||||||
0002d9 931f push dd16uH
|
0002e1 931f push dd16uH
|
||||||
0002da 932f push dv16uL
|
0002e2 932f push dv16uL
|
||||||
0002db 933f push dv16uH
|
0002e3 933f push dv16uH
|
||||||
|
|
||||||
0002dc 9100 006c lds dd16uL, SETTING_TEMP_L
|
0002e4 9100 006c lds dd16uL, SETTING_TEMP_L
|
||||||
0002de 9110 006b lds dd16uH, SETTING_TEMP_H
|
0002e6 9110 006b lds dd16uH, SETTING_TEMP_H
|
||||||
0002e0 2f21 mov r18, dd16uH
|
0002e8 2f21 mov r18, dd16uH
|
||||||
0002e1 7820 andi r18, (1<<7)
|
0002e9 7820 andi r18, (1<<7)
|
||||||
0002e2 f411 brne _NEGATE_SET_TEMP
|
0002ea f411 brne _NEGATE_SET_TEMP
|
||||||
0002e3 94e8 clt
|
0002eb 94e8 clt
|
||||||
0002e4 c005 rjmp _DIVIDE_SET_TEMP
|
0002ec c005 rjmp _DIVIDE_SET_TEMP
|
||||||
_NEGATE_SET_TEMP:
|
_NEGATE_SET_TEMP:
|
||||||
0002e5 9468 set
|
0002ed 9468 set
|
||||||
0002e6 9500
|
0002ee 9500
|
||||||
0002e7 9510
|
0002ef 9510
|
||||||
0002e8 5f0f
|
0002f0 5f0f
|
||||||
0002e9 4f1f com16 dd16uL, dd16uH
|
0002f1 4f1f com16 dd16uL, dd16uH
|
||||||
|
|
||||||
_DIVIDE_SET_TEMP:
|
_DIVIDE_SET_TEMP:
|
||||||
0002ea e02a ldi dv16uL, LOW(10)
|
0002f2 e02a ldi dv16uL, LOW(10)
|
||||||
0002eb e030 ldi dv16uH, HIGH(10)
|
0002f3 e030 ldi dv16uH, HIGH(10)
|
||||||
0002ec ddf8 rcall div16u
|
0002f4 ddf0 rcall div16u
|
||||||
0002ed 2f80 mov DISP_NUM_L, dres16uL
|
0002f5 2f80 mov DISP_NUM_L, dres16uL
|
||||||
0002ee 2f91 mov DISP_NUM_H, dres16uH
|
0002f6 2f91 mov DISP_NUM_H, dres16uH
|
||||||
|
|
||||||
0002ef e00a ldi r16, 10
|
0002f7 e00a ldi r16, 10
|
||||||
0002f0 9300 0066 sts DIGITS+3, r16 ; значок градуса
|
0002f8 9300 0066 sts DIGITS+3, r16 ; значок градуса
|
||||||
|
|
||||||
0002f2 913f pop dv16uH
|
0002fa 913f pop dv16uH
|
||||||
0002f3 912f pop dv16uL
|
0002fb 912f pop dv16uL
|
||||||
0002f4 911f pop dd16uH
|
0002fc 911f pop dd16uH
|
||||||
0002f5 910f pop dd16uL
|
0002fd 910f pop dd16uL
|
||||||
0002f6 c026 rjmp _REPROGRAM_SETTINGS_END
|
0002fe c026 rjmp _REPROGRAM_SETTINGS_END
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 3">
|
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 3">
|
||||||
_STEP_3:
|
_STEP_3:
|
||||||
0002f7 94e8 clt
|
0002ff 94e8 clt
|
||||||
_S3_CHECK_PLUS:
|
_S3_CHECK_PLUS:
|
||||||
0002f8 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
000300 9bb2 sbis SW_PIN, SW_PLUS_PIN
|
||||||
0002f9 c004 rjmp _SET_HEAT_MODE
|
000301 c004 rjmp _SET_HEAT_MODE
|
||||||
0002fa c000 rjmp _S3_CHECK_MINUS
|
000302 c000 rjmp _S3_CHECK_MINUS
|
||||||
_S3_CHECK_MINUS:
|
_S3_CHECK_MINUS:
|
||||||
0002fb 9bb3 sbis SW_PIN, SW_MINUS_PIN
|
000303 9bb3 sbis SW_PIN, SW_MINUS_PIN
|
||||||
0002fc c006 rjmp _SET_COOLING_MODE
|
000304 c006 rjmp _SET_COOLING_MODE
|
||||||
0002fd c009 rjmp _SHOW_MODE
|
000305 c009 rjmp _SHOW_MODE
|
||||||
_SET_HEAT_MODE:
|
_SET_HEAT_MODE:
|
||||||
0002fe d0a5 rcall DEBOUNCE_SW
|
000306 d0a5 rcall DEBOUNCE_SW
|
||||||
0002ff e011 ldi r17, HEAT_MODE
|
000307 e011 ldi r17, HEAT_MODE
|
||||||
000300 9310 006e sts SETTING_MODE, r17
|
000308 9310 006e sts SETTING_MODE, r17
|
||||||
000302 c004 rjmp _SHOW_MODE
|
00030a c004 rjmp _SHOW_MODE
|
||||||
_SET_COOLING_MODE:
|
_SET_COOLING_MODE:
|
||||||
000303 d0a0 rcall DEBOUNCE_SW
|
00030b d0a0 rcall DEBOUNCE_SW
|
||||||
000304 e010 ldi r17, COOLING_MODE
|
00030c e010 ldi r17, COOLING_MODE
|
||||||
000305 9310 006e sts SETTING_MODE, r17
|
00030d 9310 006e sts SETTING_MODE, r17
|
||||||
_SHOW_MODE:
|
_SHOW_MODE:
|
||||||
000307 2711 clr r17
|
00030f 2711 clr r17
|
||||||
000308 2f81 mov DISP_NUM_L, r17
|
000310 2f81 mov DISP_NUM_L, r17
|
||||||
000309 2f91 mov DISP_NUM_H, r17
|
000311 2f91 mov DISP_NUM_H, r17
|
||||||
00030a 2711 clr r17
|
000312 e01e ldi r17, 14
|
||||||
00030b 9310 0063 sts DIGITS, r17
|
000313 9310 0063 sts DIGITS, r17
|
||||||
00030d 9310 0064 sts DIGITS+1, r17
|
000315 9310 0064 sts DIGITS+1, r17
|
||||||
00030f 9310 0065 sts DIGITS+2, r17
|
000317 9310 0065 sts DIGITS+2, r17
|
||||||
000311 9120 006e lds r18, SETTING_MODE
|
000319 9120 006e lds r18, SETTING_MODE
|
||||||
000313 2322 tst r18
|
00031b 2322 tst r18
|
||||||
000314 f009 breq _SHOW_COOLING
|
00031c f009 breq _SHOW_COOLING
|
||||||
000315 c004 rjmp _SHOW_HEATING
|
00031d c004 rjmp _SHOW_HEATING
|
||||||
|
|
||||||
_SHOW_COOLING:
|
_SHOW_COOLING:
|
||||||
000316 e01c ldi r17, 12
|
00031e e01c ldi r17, 12
|
||||||
000317 9310 0066 sts DIGITS+3, r17
|
00031f 9310 0066 sts DIGITS+3, r17
|
||||||
000319 c003 rjmp _REPROGRAM_SETTINGS_END
|
000321 c003 rjmp _REPROGRAM_SETTINGS_END
|
||||||
_SHOW_HEATING:
|
_SHOW_HEATING:
|
||||||
00031a e01d ldi r17, 13
|
000322 e01d ldi r17, 13
|
||||||
00031b 9310 0066 sts DIGITS+3, r17
|
000323 9310 0066 sts DIGITS+3, r17
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
_REPROGRAM_SETTINGS_END:
|
_REPROGRAM_SETTINGS_END:
|
||||||
00031d 914f pop r20
|
000325 914f pop r20
|
||||||
00031e 913f pop r19
|
000326 913f pop r19
|
||||||
00031f 912f pop r18
|
000327 912f pop r18
|
||||||
000320 911f pop r17
|
000328 911f pop r17
|
||||||
000321 910f pop r16
|
000329 910f pop r16
|
||||||
000322 9508 ret
|
00032a 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:
|
||||||
000323 94f8 cli
|
00032b 94f8 cli
|
||||||
000324 9ab9 ow_pull
|
00032c 9ab9 ow_pull
|
||||||
000325 e033
|
|
||||||
000326 eb4e
|
|
||||||
000327 d08c DELAY16 480
|
|
||||||
000328 98b9 ow_release
|
|
||||||
000329 e030
|
|
||||||
00032a e84a
|
|
||||||
00032b d088 DELAY16 70
|
|
||||||
00032c d005 rcall OW_CHECK_PRESENCE
|
|
||||||
00032d e033
|
00032d e033
|
||||||
00032e e342
|
00032e eb4e
|
||||||
00032f d084 DELAY16 410
|
00032f d08c DELAY16 480
|
||||||
000330 9478 sei
|
000330 98b9 ow_release
|
||||||
000331 9508 ret
|
000331 e030
|
||||||
|
000332 e84a
|
||||||
|
000333 d088 DELAY16 70
|
||||||
|
000334 d005 rcall OW_CHECK_PRESENCE
|
||||||
|
000335 e033
|
||||||
|
000336 e342
|
||||||
|
000337 d084 DELAY16 410
|
||||||
|
000338 9478 sei
|
||||||
|
000339 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="1-Wire: проверка наличия устройства">
|
//<editor-fold defaultstate="collapsed" desc="1-Wire: проверка наличия устройства">
|
||||||
@ -2077,83 +2079,83 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов
|
; Если подчиненное устройство притянет шину, то устанавливаем флаг OWPRF в единицу в регистре флагов
|
||||||
;
|
;
|
||||||
OW_CHECK_PRESENCE:
|
OW_CHECK_PRESENCE:
|
||||||
000332 9bb1 sbis OW_PIN, OW_LINE
|
00033a 9bb1 sbis OW_PIN, OW_LINE
|
||||||
000333 6071 sbr OWFR, (1<<OWPRF)
|
00033b 6071 sbr OWFR, (1<<OWPRF)
|
||||||
000334 c002 rjmp _EXIT
|
00033c c002 rjmp _EXIT
|
||||||
000335 99b1 sbic OW_PIN, OW_LINE
|
00033d 99b1 sbic OW_PIN, OW_LINE
|
||||||
000336 7f7e cbr OWFR, (1<<OWPRF)
|
00033e 7f7e cbr OWFR, (1<<OWPRF)
|
||||||
_EXIT:
|
_EXIT:
|
||||||
000337 9508 ret
|
00033f 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:
|
||||||
000338 94f8 cli
|
000340 94f8 cli
|
||||||
000339 930f push r16
|
000341 930f push r16
|
||||||
00033a 931f push r17
|
000342 931f push r17
|
||||||
00033b 2d08 mov r16, OW_CMD_r
|
000343 2d08 mov r16, OW_CMD_r
|
||||||
00033c e018 ldi r17, 8
|
000344 e018 ldi r17, 8
|
||||||
_OW_SEND_BYTE_LOOP:
|
_OW_SEND_BYTE_LOOP:
|
||||||
00033d 9506 lsr r16
|
000345 9506 lsr r16
|
||||||
00033e f408 brcc _OW_SEND_0
|
000346 f408 brcc _OW_SEND_0
|
||||||
00033f f048 brcs _OW_SEND_1
|
000347 f048 brcs _OW_SEND_1
|
||||||
_OW_SEND_0:
|
_OW_SEND_0:
|
||||||
000340 9ab9 ow_pull
|
000348 9ab9 ow_pull
|
||||||
000341 e030
|
000349 e030
|
||||||
000342 e746
|
00034a e746
|
||||||
000343 d070 DELAY16 60
|
00034b d070 DELAY16 60
|
||||||
000344 98b9 ow_release
|
00034c 98b9 ow_release
|
||||||
000345 e030
|
00034d e030
|
||||||
000346 e142
|
00034e e142
|
||||||
000347 d06c DELAY16 10
|
00034f d06c DELAY16 10
|
||||||
000348 c008 rjmp _OW_SEND_BYTE_END
|
000350 c008 rjmp _OW_SEND_BYTE_END
|
||||||
_OW_SEND_1:
|
_OW_SEND_1:
|
||||||
000349 9ab9 ow_pull
|
000351 9ab9 ow_pull
|
||||||
00034a e030
|
000352 e030
|
||||||
00034b e04a
|
000353 e04a
|
||||||
00034c d067 DELAY16 6
|
000354 d067 DELAY16 6
|
||||||
00034d 98b9 ow_release
|
000355 98b9 ow_release
|
||||||
00034e e030
|
000356 e030
|
||||||
00034f e74e
|
000357 e74e
|
||||||
000350 d063 DELAY16 64
|
000358 d063 DELAY16 64
|
||||||
_OW_SEND_BYTE_END:
|
_OW_SEND_BYTE_END:
|
||||||
000351 951a dec r17
|
000359 951a dec r17
|
||||||
000352 f751 brne _OW_SEND_BYTE_LOOP
|
00035a f751 brne _OW_SEND_BYTE_LOOP
|
||||||
000353 911f pop r17
|
00035b 911f pop r17
|
||||||
000354 910f pop r16
|
00035c 910f pop r16
|
||||||
000355 9478 sei
|
00035d 9478 sei
|
||||||
000356 9508 ret
|
00035e 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:
|
||||||
000357 94f8 cli
|
00035f 94f8 cli
|
||||||
000358 930f push r16
|
000360 930f push r16
|
||||||
000359 931f push r17
|
000361 931f push r17
|
||||||
00035a 2700 clr r16
|
000362 2700 clr r16
|
||||||
00035b e018 ldi r17, 8
|
000363 e018 ldi r17, 8
|
||||||
_OW_RD_BYTE_LP:
|
_OW_RD_BYTE_LP:
|
||||||
00035c 9506 lsr r16
|
000364 9506 lsr r16
|
||||||
00035d 9ab9 ow_pull
|
000365 9ab9 ow_pull
|
||||||
00035e e030
|
000366 e030
|
||||||
00035f e04a
|
000367 e04a
|
||||||
000360 d053 DELAY16 6
|
000368 d053 DELAY16 6
|
||||||
000361 98b9 ow_release
|
000369 98b9 ow_release
|
||||||
000362 e030
|
00036a e030
|
||||||
000363 e140
|
00036b e140
|
||||||
000364 d04f DELAY16 9
|
00036c d04f DELAY16 9
|
||||||
000365 99b1 sbic OW_PIN, OW_LINE
|
00036d 99b1 sbic OW_PIN, OW_LINE
|
||||||
000366 6800 sbr r16, (1<<7)
|
00036e 6800 sbr r16, (1<<7)
|
||||||
000367 e030
|
00036f e030
|
||||||
000368 e64c
|
000370 e64c
|
||||||
000369 d04a DELAY16 55
|
000371 d04a DELAY16 55
|
||||||
00036a 951a dec r17
|
000372 951a dec r17
|
||||||
00036b f781 brne _OW_RD_BYTE_LP
|
000373 f781 brne _OW_RD_BYTE_LP
|
||||||
00036c 930c st X, r16
|
000374 930c st X, r16
|
||||||
00036d 911f pop r17
|
000375 911f pop r17
|
||||||
00036e 910f pop r16
|
000376 910f pop r16
|
||||||
00036f 9478 sei
|
000377 9478 sei
|
||||||
000370 9508 ret
|
000378 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
@ -2162,138 +2164,138 @@ main.asm(331): Including file 'mpy16u.asm'
|
|||||||
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
|
; Описание: Перемещает цифры числа в соответствующие ячейки памяти в SRAM
|
||||||
; путем деления этого числа несколько раз
|
; путем деления этого числа несколько раз
|
||||||
DISPLAY_UPD_DIGITS:
|
DISPLAY_UPD_DIGITS:
|
||||||
000371 930f push r16
|
000379 930f push r16
|
||||||
000372 935f push r21
|
00037a 935f push r21
|
||||||
000373 e053 ldi r21, 3
|
00037b e053 ldi r21, 3
|
||||||
|
|
||||||
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
|
; инициализация указателя (за каждый проход цикла будет инкрементироваться)
|
||||||
000374 e6a3 ldi XL, LOW(DIGITS)
|
00037c e6a3 ldi XL, LOW(DIGITS)
|
||||||
000375 e0b0 ldi XH, HIGH(DIGITS)
|
00037d e0b0 ldi XH, HIGH(DIGITS)
|
||||||
|
|
||||||
.equ dividend = SRAM_TEMP_1 ; число которе будем делить
|
.equ dividend = SRAM_TEMP_1 ; число которе будем делить
|
||||||
.equ divisor = 10 ; на что делим
|
.equ divisor = 10 ; на что делим
|
||||||
|
|
||||||
; загружаем число которое хотим поделить в адрес SRAM делимого
|
; загружаем число которое хотим поделить в адрес SRAM делимого
|
||||||
000376 9380 0061 sts dividend, DISP_NUM_L
|
00037e 9380 0061 sts dividend, DISP_NUM_L
|
||||||
000378 9390 0062 sts dividend+1, DISP_NUM_H
|
000380 9390 0062 sts dividend+1, DISP_NUM_H
|
||||||
|
|
||||||
; четыре раза производим деление для получения остатков
|
; четыре раза производим деление для получения остатков
|
||||||
DIV_LOOP:
|
DIV_LOOP:
|
||||||
; заполняем нужные регистры
|
; заполняем нужные регистры
|
||||||
00037a 9100 0061 lds dd16uL, dividend
|
000382 9100 0061 lds dd16uL, dividend
|
||||||
00037c 9110 0062 lds dd16uH, dividend+1
|
000384 9110 0062 lds dd16uH, dividend+1
|
||||||
00037e e02a ldi dv16uL, LOW(divisor)
|
000386 e02a ldi dv16uL, LOW(divisor)
|
||||||
00037f e030 ldi dv16uH, HIGH(divisor)
|
000387 e030 ldi dv16uH, HIGH(divisor)
|
||||||
|
|
||||||
000380 dd64 rcall div16u ; делим
|
000388 dd5c rcall div16u ; делим
|
||||||
|
|
||||||
000381 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
|
000389 92ed st X+, drem16uL ; сохраняем остаток в ячейку по указателю и увеличиваем его
|
||||||
|
|
||||||
; обновляем делимое
|
; обновляем делимое
|
||||||
000382 9300 0061 sts dividend, dres16uL
|
00038a 9300 0061 sts dividend, dres16uL
|
||||||
000384 9310 0062 sts dividend+1, dres16uH
|
00038c 9310 0062 sts dividend+1, dres16uH
|
||||||
|
|
||||||
000386 955a dec r21 ; декрементируем счетчик цикла
|
00038e 955a dec r21 ; декрементируем счетчик цикла
|
||||||
000387 f791 brne DIV_LOOP ; делим еще раз если не 0
|
00038f f791 brne DIV_LOOP ; делим еще раз если не 0
|
||||||
000388 915f pop r21
|
000390 915f pop r21
|
||||||
000389 910f pop r16
|
000391 910f pop r16
|
||||||
00038a 9508 ret
|
000392 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: получение символа для индикатора">
|
||||||
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
|
; **** ЗАГРУЖАЕТ НУЖНЫЙ АДРЕС СИМВОЛА В R0 ***********************
|
||||||
DISPLAY_DECODER:
|
DISPLAY_DECODER:
|
||||||
00038b 930f push r16
|
000393 930f push r16
|
||||||
00038c 931f push r17
|
000394 931f push r17
|
||||||
|
|
||||||
00038d e7ea ldi ZL, LOW(2*DISPLAY_SYMBOLS)
|
000395 e8ea ldi ZL, LOW(2*DISPLAY_SYMBOLS)
|
||||||
00038e e0f7 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
|
000396 e0f7 ldi ZH, HIGH(2*DISPLAY_SYMBOLS)
|
||||||
|
|
||||||
00038f 2711 clr TEMP_REG_B
|
000397 2711 clr TEMP_REG_B
|
||||||
000390 0fe0 add ZL, TEMP_REG_A
|
000398 0fe0 add ZL, TEMP_REG_A
|
||||||
000391 1ff1 adc ZH, TEMP_REG_B
|
000399 1ff1 adc ZH, TEMP_REG_B
|
||||||
|
|
||||||
000392 9004 lpm r0, Z
|
00039a 9004 lpm r0, Z
|
||||||
000393 911f pop r17
|
00039b 911f pop r17
|
||||||
000394 910f pop r16
|
00039c 910f pop r16
|
||||||
000395 9508 ret
|
00039d 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: короткий писк">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: короткий писк">
|
||||||
BEEP_SHORT:
|
BEEP_SHORT:
|
||||||
000396 9ac5 sbi BUZZER_PORT, BUZZER_PIN
|
00039e 9ac5 sbi BUZZER_PORT, BUZZER_PIN
|
||||||
000397 e053
|
00039f e053
|
||||||
000398 ea39
|
0003a0 ea39
|
||||||
000399 e74d
|
0003a1 e74d
|
||||||
00039a d01d DELAY24 150000
|
0003a2 d01d DELAY24 150000
|
||||||
00039b 98c5 cbi BUZZER_PORT, BUZZER_PIN
|
0003a3 98c5 cbi BUZZER_PORT, BUZZER_PIN
|
||||||
00039c 9508 ret
|
0003a4 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: длинный писк">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: длинный писк">
|
||||||
BEEP_LONG:
|
BEEP_LONG:
|
||||||
00039d 9ac5 sbi BUZZER_PORT, BUZZER_PIN
|
0003a5 9ac5 sbi BUZZER_PORT, BUZZER_PIN
|
||||||
00039e e05c
|
0003a6 e05c
|
||||||
00039f e334
|
0003a7 e334
|
||||||
0003a0 ef4d
|
0003a8 ef4d
|
||||||
0003a1 d016 DELAY24 500000
|
0003a9 d016 DELAY24 500000
|
||||||
0003a2 98c5 cbi BUZZER_PORT, BUZZER_PIN
|
0003aa 98c5 cbi BUZZER_PORT, BUZZER_PIN
|
||||||
0003a3 9508 ret
|
0003ab 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: устранение дребезга кнопки">
|
||||||
DEBOUNCE_SW:
|
DEBOUNCE_SW:
|
||||||
0003a4 930f push r16
|
0003ac 930f push r16
|
||||||
0003a5 931f push r17
|
0003ad 931f push r17
|
||||||
0003a6 932f push r18
|
0003ae 932f push r18
|
||||||
|
|
||||||
0003a7 e02a ldi r18, 10
|
0003af e02a ldi r18, 10
|
||||||
_loop_2:
|
_loop_2:
|
||||||
0003a8 ef1f ldi r17, 255
|
0003b0 ef1f ldi r17, 255
|
||||||
_loop_0:
|
_loop_0:
|
||||||
0003a9 ef0f ldi r16, 255
|
0003b1 ef0f ldi r16, 255
|
||||||
_dec_0:
|
_dec_0:
|
||||||
0003aa 950a dec r16
|
0003b2 950a dec r16
|
||||||
0003ab f7f1 brne _dec_0
|
0003b3 f7f1 brne _dec_0
|
||||||
_loop_1:
|
_loop_1:
|
||||||
0003ac 951a dec r17
|
0003b4 951a dec r17
|
||||||
0003ad f7d9 brne _loop_0
|
0003b5 f7d9 brne _loop_0
|
||||||
_loop_3:
|
_loop_3:
|
||||||
0003ae 952a dec r18
|
0003b6 952a dec r18
|
||||||
0003af f7c1 brne _loop_2
|
0003b7 f7c1 brne _loop_2
|
||||||
|
|
||||||
0003b0 912f pop r18
|
0003b8 912f pop r18
|
||||||
0003b1 911f pop r17
|
0003b9 911f pop r17
|
||||||
0003b2 910f pop r16
|
0003ba 910f pop r16
|
||||||
0003b3 9508 ret//</editor-fold>
|
0003bb 9508 ret//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (16бит макс число)">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (16бит макс число)">
|
||||||
DELAY_LOOP_16:
|
DELAY_LOOP_16:
|
||||||
0003b4 5041 subi DELAY_8_r, 1
|
0003bc 5041 subi DELAY_8_r, 1
|
||||||
0003b5 4030 sbci DELAY_16_r, 0
|
0003bd 4030 sbci DELAY_16_r, 0
|
||||||
0003b6 f7e8 brcc DELAY_LOOP_16
|
0003be f7e8 brcc DELAY_LOOP_16
|
||||||
0003b7 9508 ret
|
0003bf 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (24бит макс число)">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка (24бит макс число)">
|
||||||
DELAY_LOOP_24:
|
DELAY_LOOP_24:
|
||||||
0003b8 5041 subi DELAY_8_r, 1
|
0003c0 5041 subi DELAY_8_r, 1
|
||||||
0003b9 4030 sbci DELAY_16_r, 0
|
0003c1 4030 sbci DELAY_16_r, 0
|
||||||
0003ba 4050 sbci DELAY_24_r, 0
|
0003c2 4050 sbci DELAY_24_r, 0
|
||||||
0003bb f7e0 brcc DELAY_LOOP_24
|
0003c3 f7e0 brcc DELAY_LOOP_24
|
||||||
0003bc 9508 ret
|
0003c4 9508 ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
||||||
DISPLAY_SYMBOLS:
|
DISPLAY_SYMBOLS:
|
||||||
; HGFEDCBA HGFEDCBA
|
; HGFEDCBA HGFEDCBA
|
||||||
0003bd f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
|
0003c5 f9c0 .DB 0b11000000, 0b11111001 ; 0, 1
|
||||||
0003be b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
|
0003c6 b0a4 .DB 0b10100100, 0b10110000 ; 2, 3
|
||||||
0003bf 9299 .DB 0b10011001, 0b10010010 ; 4, 5
|
0003c7 9299 .DB 0b10011001, 0b10010010 ; 4, 5
|
||||||
0003c0 f882 .DB 0b10000010, 0b11111000 ; 6, 7
|
0003c8 f882 .DB 0b10000010, 0b11111000 ; 6, 7
|
||||||
0003c1 9080 .DB 0b10000000, 0b10010000 ; 8, 9
|
0003c9 9080 .DB 0b10000000, 0b10010000 ; 8, 9
|
||||||
0003c2 bf9c .DB 0b10011100, 0b10111111 ; °, -
|
0003ca bf9c .DB 0b10011100, 0b10111111 ; °, -
|
||||||
0003c3 89c6 .DB 0b11000110, 0b10001001 ; C, H
|
0003cb 89c6 .DB 0b11000110, 0b10001001 ; C, H
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
@ -2363,7 +2365,7 @@ counted separately from r26..r31 here.
|
|||||||
"ATtiny2313A" register use summary:
|
"ATtiny2313A" register use summary:
|
||||||
x : 2 y : 0 z : 1 r0 : 6 r1 : 2 r2 : 0 r3 : 16 r4 : 16
|
x : 2 y : 0 z : 1 r0 : 6 r1 : 2 r2 : 0 r3 : 16 r4 : 16
|
||||||
r5 : 6 r6 : 6 r7 : 0 r8 : 6 r9 : 0 r10: 2 r11: 2 r12: 2
|
r5 : 6 r6 : 6 r7 : 0 r8 : 6 r9 : 0 r10: 2 r11: 2 r12: 2
|
||||||
r13: 2 r14: 5 r15: 11 r16: 213 r17: 117 r18: 51 r19: 55 r20: 53
|
r13: 2 r14: 5 r15: 11 r16: 213 r17: 119 r18: 53 r19: 59 r20: 53
|
||||||
r21: 24 r22: 5 r23: 10 r24: 6 r25: 6 r26: 4 r27: 4 r28: 0
|
r21: 24 r22: 5 r23: 10 r24: 6 r25: 6 r26: 4 r27: 4 r28: 0
|
||||||
r29: 0 r30: 2 r31: 2
|
r29: 0 r30: 2 r31: 2
|
||||||
Registers used: 29 out of 35 (82.9%)
|
Registers used: 29 out of 35 (82.9%)
|
||||||
@ -2371,14 +2373,14 @@ Registers used: 29 out of 35 (82.9%)
|
|||||||
"ATtiny2313A" instruction use summary:
|
"ATtiny2313A" instruction use summary:
|
||||||
.lds : 0 .sts : 0 adc : 6 add : 8 adiw : 0 and : 0
|
.lds : 0 .sts : 0 adc : 6 add : 8 adiw : 0 and : 0
|
||||||
andi : 4 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
|
andi : 4 asr : 0 bclr : 0 bld : 0 brbc : 0 brbs : 0
|
||||||
brcc : 6 brcs : 1 break : 0 breq : 12 brge : 4 brhc : 0
|
brcc : 6 brcs : 1 break : 0 breq : 14 brge : 4 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 : 23 brpl : 0 brsh : 0 brtc : 1 brts : 2 brvc : 0
|
brne : 23 brpl : 0 brsh : 0 brtc : 1 brts : 2 brvc : 0
|
||||||
brvs : 0 bset : 0 bst : 0 cbi : 29 cbr : 3 clc : 2
|
brvs : 0 bset : 0 bst : 0 cbi : 29 cbr : 3 clc : 2
|
||||||
clh : 0 cli : 5 cln : 0 clr : 19 cls : 0 clt : 3
|
clh : 0 cli : 5 cln : 0 clr : 18 cls : 0 clt : 3
|
||||||
clv : 0 clz : 0 com : 6 cp : 2 cpc : 2 cpi : 17
|
clv : 0 clz : 0 com : 6 cp : 2 cpc : 4 cpi : 19
|
||||||
cpse : 0 dec : 11 eor : 0 icall : 0 ijmp : 0 in : 5
|
cpse : 0 dec : 11 eor : 0 icall : 0 ijmp : 0 in : 5
|
||||||
inc : 4 ld : 0 ldd : 0 ldi : 115 lds : 43 lpm : 2
|
inc : 4 ld : 0 ldd : 0 ldi : 118 lds : 43 lpm : 2
|
||||||
lsl : 4 lsr : 11 mov : 55 movw : 0 neg : 1 nop : 0
|
lsl : 4 lsr : 11 mov : 55 movw : 0 neg : 1 nop : 0
|
||||||
or : 1 ori : 0 out : 26 pop : 56 push : 55 rcall : 82
|
or : 1 ori : 0 out : 26 pop : 56 push : 55 rcall : 82
|
||||||
ret : 28 reti : 3 rjmp : 61 rol : 6 ror : 9 sbc : 2
|
ret : 28 reti : 3 rjmp : 61 rol : 6 ror : 9 sbc : 2
|
||||||
@ -2392,7 +2394,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 0x000788 1894 14 1908 2048 93.2%
|
[.cseg] 0x000000 0x000798 1910 14 1924 2048 93.9%
|
||||||
[.dseg] 0x000060 0x000072 0 18 18 128 14.1%
|
[.dseg] 0x000060 0x000072 0 18 18 128 14.1%
|
||||||
[.eseg] 0x000030 0x000058 0 40 40 128 31.3%
|
[.eseg] 0x000030 0x000058 0 40 40 128 31.3%
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
AVRASM ver. 2.2.7 main.asm Fri Jun 30 16:51:54 2023
|
AVRASM ver. 2.2.7 main.asm Fri Jun 30 21:37:26 2023
|
||||||
|
|
||||||
|
|
||||||
EQU SIGNATURE_000 0000001e
|
EQU SIGNATURE_000 0000001e
|
||||||
@ -531,6 +531,10 @@ EQU MCU_STATE_PROGRAM 00000001
|
|||||||
EQU MCU_STATE_ERROR 00000002
|
EQU MCU_STATE_ERROR 00000002
|
||||||
EQU MIN_HYST 00000001
|
EQU MIN_HYST 00000001
|
||||||
EQU MAX_HYST 000000c8
|
EQU MAX_HYST 000000c8
|
||||||
|
EQU MIN_TEMP_H 000000fe
|
||||||
|
EQU MIN_TEMP_L 0000000c
|
||||||
|
EQU MAX_TEMP_H 00000004
|
||||||
|
EQU MAX_TEMP_L 000000b0
|
||||||
EQU DEFAULT_TEMP 0000012c
|
EQU DEFAULT_TEMP 0000012c
|
||||||
EQU DEFAULT_HYST 00000005
|
EQU DEFAULT_HYST 00000005
|
||||||
EQU HEAT_MODE 00000001
|
EQU HEAT_MODE 00000001
|
||||||
@ -567,7 +571,7 @@ CSEG _INTO_PROGRAM_STATE 00000014
|
|||||||
CSEG _CLR_CURRENT_DIGIT 00000027
|
CSEG _CLR_CURRENT_DIGIT 00000027
|
||||||
CSEG _indicate_1 0000002a
|
CSEG _indicate_1 0000002a
|
||||||
CSEG _indicate_2 0000003c
|
CSEG _indicate_2 0000003c
|
||||||
CSEG DISPLAY_DECODER 0000038b
|
CSEG DISPLAY_DECODER 00000393
|
||||||
CSEG USI_TRANSMIT 00000241
|
CSEG USI_TRANSMIT 00000241
|
||||||
CSEG _indicate_3 0000004e
|
CSEG _indicate_3 0000004e
|
||||||
CSEG _indicate_4 0000005b
|
CSEG _indicate_4 0000005b
|
||||||
@ -581,13 +585,13 @@ CSEG _CONTINUE_INIT 000000ac
|
|||||||
CSEG RD_F_CODE 000001e1
|
CSEG RD_F_CODE 000001e1
|
||||||
CSEG ERR_FAMILY_CODE 000000be
|
CSEG ERR_FAMILY_CODE 000000be
|
||||||
CSEG START_PROGRAM 000000c3
|
CSEG START_PROGRAM 000000c3
|
||||||
CSEG BEEP_LONG 0000039d
|
CSEG BEEP_LONG 000003a5
|
||||||
CSEG BEEP_SHORT 00000396
|
CSEG BEEP_SHORT 0000039e
|
||||||
CSEG LOOP 000000c6
|
CSEG LOOP 000000c6
|
||||||
CSEG _STATE_DEFAULT 000000c8
|
CSEG _STATE_DEFAULT 000000c8
|
||||||
CSEG _STATE_PROGRAM 000000d4
|
CSEG _STATE_PROGRAM 000000d4
|
||||||
CSEG TEMP_UPD 000001d2
|
CSEG TEMP_UPD 000001d2
|
||||||
CSEG DISPLAY_UPD_DIGITS 00000371
|
CSEG DISPLAY_UPD_DIGITS 00000379
|
||||||
CSEG TEMP_COMPARSION 00000185
|
CSEG TEMP_COMPARSION 00000185
|
||||||
CSEG TEMP_SEND_UART 00000115
|
CSEG TEMP_SEND_UART 00000115
|
||||||
CSEG _STATE_ERROR 000000d7
|
CSEG _STATE_ERROR 000000d7
|
||||||
@ -644,11 +648,11 @@ CSEG _MIN_THRESHOLD 000001bb
|
|||||||
CSEG _MAX_THRESHOLD 000001c3
|
CSEG _MAX_THRESHOLD 000001c3
|
||||||
CSEG _COMPARSION_EXIT 000001ca
|
CSEG _COMPARSION_EXIT 000001ca
|
||||||
CSEG TEMP_CONV 00000235
|
CSEG TEMP_CONV 00000235
|
||||||
CSEG DELAY_LOOP_24 000003b8
|
CSEG DELAY_LOOP_24 000003c0
|
||||||
CSEG TEMP_RD 000001eb
|
CSEG TEMP_RD 000001eb
|
||||||
CSEG OW_PRESENCE 00000323
|
CSEG OW_PRESENCE 0000032b
|
||||||
CSEG OW_SEND_BYTE 00000338
|
CSEG OW_SEND_BYTE 00000340
|
||||||
CSEG OW_RD_BYTE 00000357
|
CSEG OW_RD_BYTE 0000035f
|
||||||
CSEG _TEMP_RD_EXIT 0000022f
|
CSEG _TEMP_RD_EXIT 0000022f
|
||||||
CSEG _TEMP_RD_TO_UNSIGNED 00000209
|
CSEG _TEMP_RD_TO_UNSIGNED 00000209
|
||||||
CSEG _TEMP_RD_CONTINUE 00000210
|
CSEG _TEMP_RD_CONTINUE 00000210
|
||||||
@ -660,7 +664,7 @@ CSEG _SW_CHECK_ON_0 00000250
|
|||||||
CSEG _SW_SET_0 00000253
|
CSEG _SW_SET_0 00000253
|
||||||
CSEG _SW_CHECK_ON_1 0000026f
|
CSEG _SW_CHECK_ON_1 0000026f
|
||||||
CSEG _SW_SET_FROM_0_TO_1 00000258
|
CSEG _SW_SET_FROM_0_TO_1 00000258
|
||||||
CSEG DEBOUNCE_SW 000003a4
|
CSEG DEBOUNCE_SW 000003ac
|
||||||
CSEG _SAVE_SETTINGS 00000262
|
CSEG _SAVE_SETTINGS 00000262
|
||||||
CSEG _SW_SET_1 00000272
|
CSEG _SW_SET_1 00000272
|
||||||
CSEG _BUTTON_PROCESS_END 0000027b
|
CSEG _BUTTON_PROCESS_END 0000027b
|
||||||
@ -671,42 +675,43 @@ CSEG _CHECK_STEP 0000028b
|
|||||||
CSEG _STEP_1 00000292
|
CSEG _STEP_1 00000292
|
||||||
CSEG _STEP_2 000002b8
|
CSEG _STEP_2 000002b8
|
||||||
CSEG _S3_JMP 000002b7
|
CSEG _S3_JMP 000002b7
|
||||||
CSEG _REPROGRAM_SETTINGS_END 0000031d
|
CSEG _REPROGRAM_SETTINGS_END 00000325
|
||||||
CSEG _S1_CHECK_PLUS 00000293
|
CSEG _S1_CHECK_PLUS 00000293
|
||||||
CSEG _INCREASE_HYST 00000299
|
CSEG _INCREASE_HYST 00000299
|
||||||
CSEG _S1_CHECK_MINUS 00000296
|
CSEG _S1_CHECK_MINUS 00000296
|
||||||
CSEG _DECREASE_HYST 000002a2
|
CSEG _DECREASE_HYST 000002a2
|
||||||
CSEG _SHOW_HYST 000002aa
|
CSEG _SHOW_HYST 000002aa
|
||||||
CSEG _STEP_3 000002f7
|
CSEG _STEP_3 000002ff
|
||||||
CSEG _S2_CHECK_PLUS 000002b9
|
CSEG _S2_CHECK_PLUS 000002b9
|
||||||
CSEG _INCREASE_TEMP 000002bf
|
CSEG _INCREASE_TEMP 000002bf
|
||||||
CSEG _S2_CHECK_MINUS 000002bc
|
CSEG _S2_CHECK_MINUS 000002bc
|
||||||
CSEG _DECREASE_TEMP 000002cd
|
CSEG _DECREASE_TEMP 000002d1
|
||||||
CSEG _SHOW_TEMP 000002d8
|
CSEG _SHOW_TEMP 000002e0
|
||||||
CSEG _NEGATE_SET_TEMP 000002e5
|
CSEG __DECREASE 000002da
|
||||||
CSEG _DIVIDE_SET_TEMP 000002ea
|
CSEG _NEGATE_SET_TEMP 000002ed
|
||||||
CSEG _S3_CHECK_PLUS 000002f8
|
CSEG _DIVIDE_SET_TEMP 000002f2
|
||||||
CSEG _SET_HEAT_MODE 000002fe
|
CSEG _S3_CHECK_PLUS 00000300
|
||||||
CSEG _S3_CHECK_MINUS 000002fb
|
CSEG _SET_HEAT_MODE 00000306
|
||||||
CSEG _SET_COOLING_MODE 00000303
|
CSEG _S3_CHECK_MINUS 00000303
|
||||||
CSEG _SHOW_MODE 00000307
|
CSEG _SET_COOLING_MODE 0000030b
|
||||||
CSEG _SHOW_COOLING 00000316
|
CSEG _SHOW_MODE 0000030f
|
||||||
CSEG _SHOW_HEATING 0000031a
|
CSEG _SHOW_COOLING 0000031e
|
||||||
CSEG DELAY_LOOP_16 000003b4
|
CSEG _SHOW_HEATING 00000322
|
||||||
CSEG OW_CHECK_PRESENCE 00000332
|
CSEG DELAY_LOOP_16 000003bc
|
||||||
CSEG _EXIT 00000337
|
CSEG OW_CHECK_PRESENCE 0000033a
|
||||||
CSEG _OW_SEND_BYTE_LOOP 0000033d
|
CSEG _EXIT 0000033f
|
||||||
CSEG _OW_SEND_0 00000340
|
CSEG _OW_SEND_BYTE_LOOP 00000345
|
||||||
CSEG _OW_SEND_1 00000349
|
CSEG _OW_SEND_0 00000348
|
||||||
CSEG _OW_SEND_BYTE_END 00000351
|
CSEG _OW_SEND_1 00000351
|
||||||
CSEG _OW_RD_BYTE_LP 0000035c
|
CSEG _OW_SEND_BYTE_END 00000359
|
||||||
|
CSEG _OW_RD_BYTE_LP 00000364
|
||||||
EQU dividend 00000061
|
EQU dividend 00000061
|
||||||
EQU divisor 0000000a
|
EQU divisor 0000000a
|
||||||
CSEG DIV_LOOP 0000037a
|
CSEG DIV_LOOP 00000382
|
||||||
CSEG DISPLAY_SYMBOLS 000003bd
|
CSEG DISPLAY_SYMBOLS 000003c5
|
||||||
CSEG _loop_2 000003a8
|
CSEG _loop_2 000003b0
|
||||||
CSEG _loop_0 000003a9
|
CSEG _loop_0 000003b1
|
||||||
CSEG _dec_0 000003aa
|
CSEG _dec_0 000003b2
|
||||||
CSEG _loop_1 000003ac
|
CSEG _loop_1 000003b4
|
||||||
CSEG _loop_3 000003ae
|
CSEG _loop_3 000003b6
|
||||||
ESEG INFO 00000030
|
ESEG INFO 00000030
|
||||||
|
|||||||
Binary file not shown.
@ -48,31 +48,31 @@
|
|||||||
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>98</LINE></_CLR_CURRENT_DIGIT>
|
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>98</LINE></_CLR_CURRENT_DIGIT>
|
||||||
<_indicate_1><FILE>main.asm</FILE><LINE>102</LINE></_indicate_1>
|
<_indicate_1><FILE>main.asm</FILE><LINE>102</LINE></_indicate_1>
|
||||||
<_indicate_2><FILE>main.asm</FILE><LINE>122</LINE></_indicate_2>
|
<_indicate_2><FILE>main.asm</FILE><LINE>122</LINE></_indicate_2>
|
||||||
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>1138</LINE></DISPLAY_DECODER>
|
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>1135</LINE></DISPLAY_DECODER>
|
||||||
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>737</LINE></USI_TRANSMIT>
|
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>725</LINE></USI_TRANSMIT>
|
||||||
<_indicate_3><FILE>main.asm</FILE><LINE>140</LINE></_indicate_3>
|
<_indicate_3><FILE>main.asm</FILE><LINE>140</LINE></_indicate_3>
|
||||||
<_indicate_4><FILE>main.asm</FILE><LINE>155</LINE></_indicate_4>
|
<_indicate_4><FILE>main.asm</FILE><LINE>155</LINE></_indicate_4>
|
||||||
<_indicate_exit><FILE>main.asm</FILE><LINE>167</LINE></_indicate_exit>
|
<_indicate_exit><FILE>main.asm</FILE><LINE>167</LINE></_indicate_exit>
|
||||||
<MCU_INIT><FILE>main.asm</FILE><LINE>189</LINE></MCU_INIT>
|
<MCU_INIT><FILE>main.asm</FILE><LINE>189</LINE></MCU_INIT>
|
||||||
<EEP_RD_BYTE><FILE>main.asm</FILE><LINE>472</LINE></EEP_RD_BYTE>
|
<EEP_RD_BYTE><FILE>main.asm</FILE><LINE>460</LINE></EEP_RD_BYTE>
|
||||||
<_INIT_PARAMS><FILE>main.asm</FILE><LINE>230</LINE></_INIT_PARAMS>
|
<_INIT_PARAMS><FILE>main.asm</FILE><LINE>230</LINE></_INIT_PARAMS>
|
||||||
<_FIRST_TIME_RUN><FILE>main.asm</FILE><LINE>227</LINE></_FIRST_TIME_RUN>
|
<_FIRST_TIME_RUN><FILE>main.asm</FILE><LINE>227</LINE></_FIRST_TIME_RUN>
|
||||||
<INIT_DEFAULT_PARAMS><FILE>main.asm</FILE><LINE>380</LINE></INIT_DEFAULT_PARAMS>
|
<INIT_DEFAULT_PARAMS><FILE>main.asm</FILE><LINE>368</LINE></INIT_DEFAULT_PARAMS>
|
||||||
<_CONTINUE_INIT><FILE>main.asm</FILE><LINE>263</LINE></_CONTINUE_INIT>
|
<_CONTINUE_INIT><FILE>main.asm</FILE><LINE>251</LINE></_CONTINUE_INIT>
|
||||||
<RD_F_CODE><FILE>main.asm</FILE><LINE>603</LINE></RD_F_CODE>
|
<RD_F_CODE><FILE>main.asm</FILE><LINE>591</LINE></RD_F_CODE>
|
||||||
<ERR_FAMILY_CODE><FILE>main.asm</FILE><LINE>284</LINE></ERR_FAMILY_CODE>
|
<ERR_FAMILY_CODE><FILE>main.asm</FILE><LINE>272</LINE></ERR_FAMILY_CODE>
|
||||||
<START_PROGRAM><FILE>main.asm</FILE><LINE>289</LINE></START_PROGRAM>
|
<START_PROGRAM><FILE>main.asm</FILE><LINE>277</LINE></START_PROGRAM>
|
||||||
<BEEP_LONG><FILE>main.asm</FILE><LINE>1164</LINE></BEEP_LONG>
|
<BEEP_LONG><FILE>main.asm</FILE><LINE>1161</LINE></BEEP_LONG>
|
||||||
<BEEP_SHORT><FILE>main.asm</FILE><LINE>1156</LINE></BEEP_SHORT>
|
<BEEP_SHORT><FILE>main.asm</FILE><LINE>1153</LINE></BEEP_SHORT>
|
||||||
<LOOP><FILE>main.asm</FILE><LINE>296</LINE></LOOP>
|
<LOOP><FILE>main.asm</FILE><LINE>284</LINE></LOOP>
|
||||||
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>299</LINE></_STATE_DEFAULT>
|
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>287</LINE></_STATE_DEFAULT>
|
||||||
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>311</LINE></_STATE_PROGRAM>
|
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>299</LINE></_STATE_PROGRAM>
|
||||||
<TEMP_UPD><FILE>main.asm</FILE><LINE>587</LINE></TEMP_UPD>
|
<TEMP_UPD><FILE>main.asm</FILE><LINE>575</LINE></TEMP_UPD>
|
||||||
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>1097</LINE></DISPLAY_UPD_DIGITS>
|
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>1094</LINE></DISPLAY_UPD_DIGITS>
|
||||||
<TEMP_COMPARSION><FILE>main.asm</FILE><LINE>489</LINE></TEMP_COMPARSION>
|
<TEMP_COMPARSION><FILE>main.asm</FILE><LINE>477</LINE></TEMP_COMPARSION>
|
||||||
<TEMP_SEND_UART><FILE>main.asm</FILE><LINE>334</LINE></TEMP_SEND_UART>
|
<TEMP_SEND_UART><FILE>main.asm</FILE><LINE>322</LINE></TEMP_SEND_UART>
|
||||||
<_STATE_ERROR><FILE>main.asm</FILE><LINE>315</LINE></_STATE_ERROR>
|
<_STATE_ERROR><FILE>main.asm</FILE><LINE>303</LINE></_STATE_ERROR>
|
||||||
<REPROGRAM_SETTINGS><FILE>main.asm</FILE><LINE>822</LINE></REPROGRAM_SETTINGS>
|
<REPROGRAM_SETTINGS><FILE>main.asm</FILE><LINE>810</LINE></REPROGRAM_SETTINGS>
|
||||||
<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>
|
||||||
@ -84,81 +84,82 @@
|
|||||||
<mpy16u><FILE>mpy16u.asm</FILE><LINE>31</LINE></mpy16u>
|
<mpy16u><FILE>mpy16u.asm</FILE><LINE>31</LINE></mpy16u>
|
||||||
<m16u_1><FILE>mpy16u.asm</FILE><LINE>37</LINE></m16u_1>
|
<m16u_1><FILE>mpy16u.asm</FILE><LINE>37</LINE></m16u_1>
|
||||||
<noad8><FILE>mpy16u.asm</FILE><LINE>40</LINE></noad8>
|
<noad8><FILE>mpy16u.asm</FILE><LINE>40</LINE></noad8>
|
||||||
<UART_WR_BYTE><FILE>main.asm</FILE><LINE>372</LINE></UART_WR_BYTE>
|
<UART_WR_BYTE><FILE>main.asm</FILE><LINE>360</LINE></UART_WR_BYTE>
|
||||||
<_TEMP_SEND_UART_L><FILE>main.asm</FILE><LINE>361</LINE></_TEMP_SEND_UART_L>
|
<_TEMP_SEND_UART_L><FILE>main.asm</FILE><LINE>349</LINE></_TEMP_SEND_UART_L>
|
||||||
<EEP_WR_BYTE><FILE>main.asm</FILE><LINE>447</LINE></EEP_WR_BYTE>
|
<EEP_WR_BYTE><FILE>main.asm</FILE><LINE>435</LINE></EEP_WR_BYTE>
|
||||||
<WRITE_PARAMS_TO_EEP><FILE>main.asm</FILE><LINE>418</LINE></WRITE_PARAMS_TO_EEP>
|
<WRITE_PARAMS_TO_EEP><FILE>main.asm</FILE><LINE>406</LINE></WRITE_PARAMS_TO_EEP>
|
||||||
<_EEP_WR_BYTE_LP><FILE>main.asm</FILE><LINE>450</LINE></_EEP_WR_BYTE_LP>
|
<_EEP_WR_BYTE_LP><FILE>main.asm</FILE><LINE>438</LINE></_EEP_WR_BYTE_LP>
|
||||||
<_EEP_RD_BYTE_LP><FILE>main.asm</FILE><LINE>474</LINE></_EEP_RD_BYTE_LP>
|
<_EEP_RD_BYTE_LP><FILE>main.asm</FILE><LINE>462</LINE></_EEP_RD_BYTE_LP>
|
||||||
<_NEGATE_TEMP><FILE>main.asm</FILE><LINE>543</LINE></_NEGATE_TEMP>
|
<_NEGATE_TEMP><FILE>main.asm</FILE><LINE>531</LINE></_NEGATE_TEMP>
|
||||||
<_COMPARE><FILE>main.asm</FILE><LINE>549</LINE></_COMPARE>
|
<_COMPARE><FILE>main.asm</FILE><LINE>537</LINE></_COMPARE>
|
||||||
<_MIN_THRESHOLD><FILE>main.asm</FILE><LINE>559</LINE></_MIN_THRESHOLD>
|
<_MIN_THRESHOLD><FILE>main.asm</FILE><LINE>547</LINE></_MIN_THRESHOLD>
|
||||||
<_MAX_THRESHOLD><FILE>main.asm</FILE><LINE>568</LINE></_MAX_THRESHOLD>
|
<_MAX_THRESHOLD><FILE>main.asm</FILE><LINE>556</LINE></_MAX_THRESHOLD>
|
||||||
<_COMPARSION_EXIT><FILE>main.asm</FILE><LINE>575</LINE></_COMPARSION_EXIT>
|
<_COMPARSION_EXIT><FILE>main.asm</FILE><LINE>563</LINE></_COMPARSION_EXIT>
|
||||||
<TEMP_CONV><FILE>main.asm</FILE><LINE>715</LINE></TEMP_CONV>
|
<TEMP_CONV><FILE>main.asm</FILE><LINE>703</LINE></TEMP_CONV>
|
||||||
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>1206</LINE></DELAY_LOOP_24>
|
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>1203</LINE></DELAY_LOOP_24>
|
||||||
<TEMP_RD><FILE>main.asm</FILE><LINE>619</LINE></TEMP_RD>
|
<TEMP_RD><FILE>main.asm</FILE><LINE>607</LINE></TEMP_RD>
|
||||||
<OW_PRESENCE><FILE>main.asm</FILE><LINE>1010</LINE></OW_PRESENCE>
|
<OW_PRESENCE><FILE>main.asm</FILE><LINE>1007</LINE></OW_PRESENCE>
|
||||||
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>1037</LINE></OW_SEND_BYTE>
|
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>1034</LINE></OW_SEND_BYTE>
|
||||||
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>1068</LINE></OW_RD_BYTE>
|
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>1065</LINE></OW_RD_BYTE>
|
||||||
<_TEMP_RD_EXIT><FILE>main.asm</FILE><LINE>707</LINE></_TEMP_RD_EXIT>
|
<_TEMP_RD_EXIT><FILE>main.asm</FILE><LINE>695</LINE></_TEMP_RD_EXIT>
|
||||||
<_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>656</LINE></_TEMP_RD_TO_UNSIGNED>
|
<_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>644</LINE></_TEMP_RD_TO_UNSIGNED>
|
||||||
<_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>669</LINE></_TEMP_RD_CONTINUE>
|
<_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>657</LINE></_TEMP_RD_CONTINUE>
|
||||||
<_TEMP_RD_END><FILE>main.asm</FILE><LINE>679</LINE></_TEMP_RD_END>
|
<_TEMP_RD_END><FILE>main.asm</FILE><LINE>667</LINE></_TEMP_RD_END>
|
||||||
<_TEMP_CONV_EXIT><FILE>main.asm</FILE><LINE>730</LINE></_TEMP_CONV_EXIT>
|
<_TEMP_CONV_EXIT><FILE>main.asm</FILE><LINE>718</LINE></_TEMP_CONV_EXIT>
|
||||||
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>756</LINE></_USI_TRANSMIT_LOOP>
|
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>744</LINE></_USI_TRANSMIT_LOOP>
|
||||||
<BUTTON_PROCESS><FILE>main.asm</FILE><LINE>770</LINE></BUTTON_PROCESS>
|
<BUTTON_PROCESS><FILE>main.asm</FILE><LINE>758</LINE></BUTTON_PROCESS>
|
||||||
<_SW_CHECK_ON_0><FILE>main.asm</FILE><LINE>772</LINE></_SW_CHECK_ON_0>
|
<_SW_CHECK_ON_0><FILE>main.asm</FILE><LINE>760</LINE></_SW_CHECK_ON_0>
|
||||||
<_SW_SET_0><FILE>main.asm</FILE><LINE>776</LINE></_SW_SET_0>
|
<_SW_SET_0><FILE>main.asm</FILE><LINE>764</LINE></_SW_SET_0>
|
||||||
<_SW_CHECK_ON_1><FILE>main.asm</FILE><LINE>803</LINE></_SW_CHECK_ON_1>
|
<_SW_CHECK_ON_1><FILE>main.asm</FILE><LINE>791</LINE></_SW_CHECK_ON_1>
|
||||||
<_SW_SET_FROM_0_TO_1><FILE>main.asm</FILE><LINE>781</LINE></_SW_SET_FROM_0_TO_1>
|
<_SW_SET_FROM_0_TO_1><FILE>main.asm</FILE><LINE>769</LINE></_SW_SET_FROM_0_TO_1>
|
||||||
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>1172</LINE></DEBOUNCE_SW>
|
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>1169</LINE></DEBOUNCE_SW>
|
||||||
<_SAVE_SETTINGS><FILE>main.asm</FILE><LINE>791</LINE></_SAVE_SETTINGS>
|
<_SAVE_SETTINGS><FILE>main.asm</FILE><LINE>779</LINE></_SAVE_SETTINGS>
|
||||||
<_SW_SET_1><FILE>main.asm</FILE><LINE>807</LINE></_SW_SET_1>
|
<_SW_SET_1><FILE>main.asm</FILE><LINE>795</LINE></_SW_SET_1>
|
||||||
<_BUTTON_PROCESS_END><FILE>main.asm</FILE><LINE>816</LINE></_BUTTON_PROCESS_END>
|
<_BUTTON_PROCESS_END><FILE>main.asm</FILE><LINE>804</LINE></_BUTTON_PROCESS_END>
|
||||||
<_SW_SET_FROM_1_TO_0><FILE>main.asm</FILE><LINE>812</LINE></_SW_SET_FROM_1_TO_0>
|
<_SW_SET_FROM_1_TO_0><FILE>main.asm</FILE><LINE>800</LINE></_SW_SET_FROM_1_TO_0>
|
||||||
<_INTO><FILE>main.asm</FILE><LINE>833</LINE></_INTO>
|
<_INTO><FILE>main.asm</FILE><LINE>821</LINE></_INTO>
|
||||||
<_REPROGRAM_SETTINGS_LOOP><FILE>main.asm</FILE><LINE>838</LINE></_REPROGRAM_SETTINGS_LOOP>
|
<_REPROGRAM_SETTINGS_LOOP><FILE>main.asm</FILE><LINE>826</LINE></_REPROGRAM_SETTINGS_LOOP>
|
||||||
<_CHECK_STEP><FILE>main.asm</FILE><LINE>840</LINE></_CHECK_STEP>
|
<_CHECK_STEP><FILE>main.asm</FILE><LINE>828</LINE></_CHECK_STEP>
|
||||||
<_STEP_1><FILE>main.asm</FILE><LINE>850</LINE></_STEP_1>
|
<_STEP_1><FILE>main.asm</FILE><LINE>838</LINE></_STEP_1>
|
||||||
<_STEP_2><FILE>main.asm</FILE><LINE>893</LINE></_STEP_2>
|
<_STEP_2><FILE>main.asm</FILE><LINE>881</LINE></_STEP_2>
|
||||||
<_S3_JMP><FILE>main.asm</FILE><LINE>889</LINE></_S3_JMP>
|
<_S3_JMP><FILE>main.asm</FILE><LINE>877</LINE></_S3_JMP>
|
||||||
<_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>998</LINE></_REPROGRAM_SETTINGS_END>
|
<_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>995</LINE></_REPROGRAM_SETTINGS_END>
|
||||||
<_S1_CHECK_PLUS><FILE>main.asm</FILE><LINE>852</LINE></_S1_CHECK_PLUS>
|
<_S1_CHECK_PLUS><FILE>main.asm</FILE><LINE>840</LINE></_S1_CHECK_PLUS>
|
||||||
<_INCREASE_HYST><FILE>main.asm</FILE><LINE>860</LINE></_INCREASE_HYST>
|
<_INCREASE_HYST><FILE>main.asm</FILE><LINE>848</LINE></_INCREASE_HYST>
|
||||||
<_S1_CHECK_MINUS><FILE>main.asm</FILE><LINE>856</LINE></_S1_CHECK_MINUS>
|
<_S1_CHECK_MINUS><FILE>main.asm</FILE><LINE>844</LINE></_S1_CHECK_MINUS>
|
||||||
<_DECREASE_HYST><FILE>main.asm</FILE><LINE>868</LINE></_DECREASE_HYST>
|
<_DECREASE_HYST><FILE>main.asm</FILE><LINE>856</LINE></_DECREASE_HYST>
|
||||||
<_SHOW_HYST><FILE>main.asm</FILE><LINE>875</LINE></_SHOW_HYST>
|
<_SHOW_HYST><FILE>main.asm</FILE><LINE>863</LINE></_SHOW_HYST>
|
||||||
<_STEP_3><FILE>main.asm</FILE><LINE>957</LINE></_STEP_3>
|
<_STEP_3><FILE>main.asm</FILE><LINE>954</LINE></_STEP_3>
|
||||||
<_S2_CHECK_PLUS><FILE>main.asm</FILE><LINE>895</LINE></_S2_CHECK_PLUS>
|
<_S2_CHECK_PLUS><FILE>main.asm</FILE><LINE>883</LINE></_S2_CHECK_PLUS>
|
||||||
<_INCREASE_TEMP><FILE>main.asm</FILE><LINE>903</LINE></_INCREASE_TEMP>
|
<_INCREASE_TEMP><FILE>main.asm</FILE><LINE>891</LINE></_INCREASE_TEMP>
|
||||||
<_S2_CHECK_MINUS><FILE>main.asm</FILE><LINE>899</LINE></_S2_CHECK_MINUS>
|
<_S2_CHECK_MINUS><FILE>main.asm</FILE><LINE>887</LINE></_S2_CHECK_MINUS>
|
||||||
<_DECREASE_TEMP><FILE>main.asm</FILE><LINE>914</LINE></_DECREASE_TEMP>
|
<_DECREASE_TEMP><FILE>main.asm</FILE><LINE>906</LINE></_DECREASE_TEMP>
|
||||||
<_SHOW_TEMP><FILE>main.asm</FILE><LINE>922</LINE></_SHOW_TEMP>
|
<_SHOW_TEMP><FILE>main.asm</FILE><LINE>919</LINE></_SHOW_TEMP>
|
||||||
<_NEGATE_SET_TEMP><FILE>main.asm</FILE><LINE>935</LINE></_NEGATE_SET_TEMP>
|
<__DECREASE><FILE>main.asm</FILE><LINE>914</LINE></__DECREASE>
|
||||||
<_DIVIDE_SET_TEMP><FILE>main.asm</FILE><LINE>939</LINE></_DIVIDE_SET_TEMP>
|
<_NEGATE_SET_TEMP><FILE>main.asm</FILE><LINE>932</LINE></_NEGATE_SET_TEMP>
|
||||||
<_S3_CHECK_PLUS><FILE>main.asm</FILE><LINE>959</LINE></_S3_CHECK_PLUS>
|
<_DIVIDE_SET_TEMP><FILE>main.asm</FILE><LINE>936</LINE></_DIVIDE_SET_TEMP>
|
||||||
<_SET_HEAT_MODE><FILE>main.asm</FILE><LINE>967</LINE></_SET_HEAT_MODE>
|
<_S3_CHECK_PLUS><FILE>main.asm</FILE><LINE>956</LINE></_S3_CHECK_PLUS>
|
||||||
<_S3_CHECK_MINUS><FILE>main.asm</FILE><LINE>963</LINE></_S3_CHECK_MINUS>
|
<_SET_HEAT_MODE><FILE>main.asm</FILE><LINE>964</LINE></_SET_HEAT_MODE>
|
||||||
<_SET_COOLING_MODE><FILE>main.asm</FILE><LINE>972</LINE></_SET_COOLING_MODE>
|
<_S3_CHECK_MINUS><FILE>main.asm</FILE><LINE>960</LINE></_S3_CHECK_MINUS>
|
||||||
<_SHOW_MODE><FILE>main.asm</FILE><LINE>976</LINE></_SHOW_MODE>
|
<_SET_COOLING_MODE><FILE>main.asm</FILE><LINE>969</LINE></_SET_COOLING_MODE>
|
||||||
<_SHOW_COOLING><FILE>main.asm</FILE><LINE>989</LINE></_SHOW_COOLING>
|
<_SHOW_MODE><FILE>main.asm</FILE><LINE>973</LINE></_SHOW_MODE>
|
||||||
<_SHOW_HEATING><FILE>main.asm</FILE><LINE>993</LINE></_SHOW_HEATING>
|
<_SHOW_COOLING><FILE>main.asm</FILE><LINE>986</LINE></_SHOW_COOLING>
|
||||||
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>1198</LINE></DELAY_LOOP_16>
|
<_SHOW_HEATING><FILE>main.asm</FILE><LINE>990</LINE></_SHOW_HEATING>
|
||||||
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>1026</LINE></OW_CHECK_PRESENCE>
|
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>1195</LINE></DELAY_LOOP_16>
|
||||||
<_EXIT><FILE>main.asm</FILE><LINE>1032</LINE></_EXIT>
|
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>1023</LINE></OW_CHECK_PRESENCE>
|
||||||
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>1043</LINE></_OW_SEND_BYTE_LOOP>
|
<_EXIT><FILE>main.asm</FILE><LINE>1029</LINE></_EXIT>
|
||||||
<_OW_SEND_0><FILE>main.asm</FILE><LINE>1047</LINE></_OW_SEND_0>
|
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>1040</LINE></_OW_SEND_BYTE_LOOP>
|
||||||
<_OW_SEND_1><FILE>main.asm</FILE><LINE>1053</LINE></_OW_SEND_1>
|
<_OW_SEND_0><FILE>main.asm</FILE><LINE>1044</LINE></_OW_SEND_0>
|
||||||
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>1058</LINE></_OW_SEND_BYTE_END>
|
<_OW_SEND_1><FILE>main.asm</FILE><LINE>1050</LINE></_OW_SEND_1>
|
||||||
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>1074</LINE></_OW_RD_BYTE_LP>
|
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>1055</LINE></_OW_SEND_BYTE_END>
|
||||||
<DIV_LOOP><FILE>main.asm</FILE><LINE>1114</LINE></DIV_LOOP>
|
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>1071</LINE></_OW_RD_BYTE_LP>
|
||||||
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1215</LINE></DISPLAY_SYMBOLS>
|
<DIV_LOOP><FILE>main.asm</FILE><LINE>1111</LINE></DIV_LOOP>
|
||||||
<_loop_2><FILE>main.asm</FILE><LINE>1178</LINE></_loop_2>
|
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1212</LINE></DISPLAY_SYMBOLS>
|
||||||
<_loop_0><FILE>main.asm</FILE><LINE>1180</LINE></_loop_0>
|
<_loop_2><FILE>main.asm</FILE><LINE>1175</LINE></_loop_2>
|
||||||
<_dec_0><FILE>main.asm</FILE><LINE>1182</LINE></_dec_0>
|
<_loop_0><FILE>main.asm</FILE><LINE>1177</LINE></_loop_0>
|
||||||
<_loop_1><FILE>main.asm</FILE><LINE>1185</LINE></_loop_1>
|
<_dec_0><FILE>main.asm</FILE><LINE>1179</LINE></_dec_0>
|
||||||
<_loop_3><FILE>main.asm</FILE><LINE>1188</LINE></_loop_3>
|
<_loop_1><FILE>main.asm</FILE><LINE>1182</LINE></_loop_1>
|
||||||
<INFO><FILE>main.asm</FILE><LINE>1233</LINE></INFO>
|
<_loop_3><FILE>main.asm</FILE><LINE>1185</LINE></_loop_3>
|
||||||
|
<INFO><FILE>main.asm</FILE><LINE>1230</LINE></INFO>
|
||||||
</LABELS>
|
</LABELS>
|
||||||
</ASSEMBLER_INFO>
|
</ASSEMBLER_INFO>
|
||||||
|
|||||||
239
main.asm
239
main.asm
@ -147,7 +147,6 @@ _indicate_3:
|
|||||||
sbi PORTD, DIGIT_3_PIN
|
sbi PORTD, DIGIT_3_PIN
|
||||||
lds TEMP_REG_A, DIGITS
|
lds TEMP_REG_A, DIGITS
|
||||||
rcall DISPLAY_DECODER
|
rcall DISPLAY_DECODER
|
||||||
; зажигаем точку
|
|
||||||
mov r16, r0
|
mov r16, r0
|
||||||
cbr r16, (1<<7)
|
cbr r16, (1<<7)
|
||||||
mov r0, r16
|
mov r0, r16
|
||||||
@ -189,7 +188,7 @@ 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) | (1<<UART_TX_PIN) | (1<<RELAY_PIN)
|
outi r16, DDRD, (1<<LED_PGM_PIN) | (1<<DIGIT_1_PIN) | (1<<DIGIT_2_PIN) | (1<<DIGIT_3_PIN) | (1<<DIGIT_4_PIN) | (1<<UART_TX_PIN) | (1<<RELAY_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, 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)
|
||||||
|
|
||||||
@ -218,19 +217,38 @@ MCU_INIT:
|
|||||||
ldi r16, 0x00
|
ldi r16, 0x00
|
||||||
sts MCU_STATE, r16 ; переводим МК сразу в режим измерения температуры
|
sts MCU_STATE, r16 ; переводим МК сразу в режим измерения температуры
|
||||||
|
|
||||||
; настройка параметров
|
; проверяем впервые ли запускаем устройство
|
||||||
ldi r16, DEFAULT_SETTING_TEMP_L
|
ldi r16, EEP_FIRST_TIME_RUN
|
||||||
sts SETTING_TEMP_L, r16 ; уставка LOW
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_RD_BYTE
|
||||||
|
mov r16, EEP_D_r
|
||||||
|
cpi r16, 0x10 ; 0x10 - зарезервированное число которое говорит о том что устройство запускается НЕ впервые
|
||||||
|
breq _INIT_PARAMS
|
||||||
|
_FIRST_TIME_RUN: ; если устройство запускается впервые то записываем в EEPROM и ОЗУ стандартные параметры
|
||||||
|
rcall INIT_DEFAULT_PARAMS
|
||||||
|
rjmp _CONTINUE_INIT
|
||||||
|
_INIT_PARAMS: ; иначе берем из EEPROM настройки и записываем в ОЗУ
|
||||||
|
ldi r16, EEP_SETTING_TEMP_H
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_RD_BYTE
|
||||||
|
sts SETTING_TEMP_H, EEP_D_r
|
||||||
|
|
||||||
ldi r16, DEFAULT_SETTING_TEMP_H
|
ldi r16, EEP_SETTING_TEMP_L
|
||||||
sts SETTING_TEMP_H, r16 ; уставка HIGH
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_RD_BYTE
|
||||||
|
sts SETTING_TEMP_L, EEP_D_r
|
||||||
|
|
||||||
ldi r16, DEFAULT_SETTING_HYST
|
ldi r16, EEP_SETTING_HYST
|
||||||
sts SETTING_HYST, r16 ; гистерезис
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_RD_BYTE
|
||||||
|
sts SETTING_HYST, EEP_D_r
|
||||||
|
|
||||||
ldi r16, DEFAULT_SETTING_MODE
|
ldi r16, EEP_SETTING_MODE
|
||||||
sts SETTING_MODE, r16 ; режим работы
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_RD_BYTE
|
||||||
|
sts SETTING_MODE, EEP_D_r
|
||||||
|
|
||||||
|
_CONTINUE_INIT:
|
||||||
clr r16
|
clr r16
|
||||||
sts TEMP_L, r16
|
sts TEMP_L, r16
|
||||||
sts TEMP_H, r16
|
sts TEMP_H, r16
|
||||||
@ -265,28 +283,32 @@ START_PROGRAM:
|
|||||||
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
|
; **** ГЛАВНЫЙ ЦИКЛ **********************************************
|
||||||
LOOP:
|
LOOP:
|
||||||
lds r16, MCU_STATE ; получаем текущее состояние МК
|
lds r16, MCU_STATE ; получаем текущее состояние МК
|
||||||
rcall DISPLAY_UPD_DIGITS
|
; rcall DISPLAY_UPD_DIGITS
|
||||||
_STATE_DEFAULT:
|
_STATE_DEFAULT:
|
||||||
cpi r16, MCU_STATE_DEFAULT
|
cpi r16, MCU_STATE_DEFAULT
|
||||||
brne _STATE_PROGRAM
|
brne _STATE_PROGRAM
|
||||||
cbi LED_ERR_PORT, LED_ERR_PIN
|
|
||||||
|
|
||||||
lds r18, TEMP_F
|
lds r18, TEMP_F
|
||||||
sts DIGITS+3, r18
|
sts DIGITS+3, r18
|
||||||
|
|
||||||
rcall TEMP_UPD ; обновление данных о температуре
|
rcall TEMP_UPD ; обновление данных о температуре
|
||||||
|
rcall DISPLAY_UPD_DIGITS
|
||||||
rcall TEMP_COMPARSION ; логика термостата
|
rcall TEMP_COMPARSION ; логика термостата
|
||||||
outi r17, TIMSK, (1<<OCIE0A) ; вкл. индикатор
|
outi r17, TIMSK, (1<<OCIE0A) ; вкл. индикатор
|
||||||
rcall TEMP_SEND_UART ; отпрака данных в UART
|
rcall TEMP_SEND_UART ; отпрака данных в UART
|
||||||
_STATE_PROGRAM:
|
_STATE_PROGRAM:
|
||||||
cpi r16, MCU_STATE_PROGRAM
|
cpi r16, MCU_STATE_PROGRAM
|
||||||
brne _STATE_ERROR
|
brne _STATE_ERROR
|
||||||
cbi LED_ERR_PORT, LED_ERR_PIN
|
|
||||||
rcall REPROGRAM_SETTINGS
|
rcall REPROGRAM_SETTINGS
|
||||||
_STATE_ERROR:
|
_STATE_ERROR:
|
||||||
cpi r16, MCU_STATE_ERROR
|
cpi r16, MCU_STATE_ERROR
|
||||||
brne LOOP
|
brne LOOP
|
||||||
sbi LED_ERR_PORT, LED_ERR_PIN
|
ldi r17, 11
|
||||||
|
sts DIGITS, r17
|
||||||
|
sts DIGITS+1, r17
|
||||||
|
sts DIGITS+2, r17
|
||||||
|
sts DIGITS+3, r17
|
||||||
|
outi r17, TIMSK, (1<<OCIE0A)
|
||||||
rjmp LOOP
|
rjmp LOOP
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
@ -339,6 +361,116 @@ UART_WR_BYTE:
|
|||||||
sbis UCSRA, UDRE
|
sbis UCSRA, UDRE
|
||||||
rjmp UART_WR_BYTE
|
rjmp UART_WR_BYTE
|
||||||
out UDR, r5
|
out UDR, r5
|
||||||
|
ret
|
||||||
|
//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: инициализация стандартных параметров">
|
||||||
|
INIT_DEFAULT_PARAMS:
|
||||||
|
ldi r16, DEFAULT_SETTING_TEMP_H
|
||||||
|
sts SETTING_TEMP_H, r16 ; уставка HIGH
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_TEMP_H
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
ldi r16, DEFAULT_SETTING_TEMP_L
|
||||||
|
sts SETTING_TEMP_L, r16 ; уставка LOW
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_TEMP_L
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
ldi r16, DEFAULT_SETTING_HYST
|
||||||
|
sts SETTING_HYST, r16 ; гистерезис
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_HYST
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
ldi r16, DEFAULT_SETTING_MODE
|
||||||
|
sts SETTING_MODE, r16 ; режим
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_MODE
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
ldi r16, 0x10
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_FIRST_TIME_RUN
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
ret
|
||||||
|
//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: запись параметров из ОЗУ в EEPROM">
|
||||||
|
WRITE_PARAMS_TO_EEP:
|
||||||
|
push r16
|
||||||
|
lds r16, SETTING_TEMP_H ; уставка HIGH
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_TEMP_H
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
lds r16, SETTING_TEMP_L ; уставка LOW
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_TEMP_L
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
lds r16, SETTING_HYST ; гистерезис
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_HYST
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
|
||||||
|
lds r16, SETTING_MODE ; режим
|
||||||
|
mov EEP_D_r, r16
|
||||||
|
ldi r16, EEP_SETTING_MODE
|
||||||
|
mov EEP_A_r, r16
|
||||||
|
rcall EEP_WR_BYTE
|
||||||
|
pop r16
|
||||||
|
ret//</editor-fold>
|
||||||
|
|
||||||
|
//<editor-fold defaultstate="collapsed" desc="Подпрограммы: запись и чтение байта из EEPROM">
|
||||||
|
EEP_WR_BYTE:
|
||||||
|
cli
|
||||||
|
push r16
|
||||||
|
_EEP_WR_BYTE_LP:
|
||||||
|
; ждем завершения предыдущей записи
|
||||||
|
sbic EECR, EEPE
|
||||||
|
rjmp _EEP_WR_BYTE_LP
|
||||||
|
|
||||||
|
; режим программирования - атомарный
|
||||||
|
ldi r16, (0<<EEPM1) | (0<<EEPM0)
|
||||||
|
out EECR, r16
|
||||||
|
|
||||||
|
; выставляем адресс куда записывать
|
||||||
|
out EEARL, EEP_A_r
|
||||||
|
|
||||||
|
; помещаем данные
|
||||||
|
out EEDR, EEP_D_r
|
||||||
|
|
||||||
|
; запись
|
||||||
|
sbi EECR, EEMPE
|
||||||
|
sbi EECR, EEPE
|
||||||
|
pop r16
|
||||||
|
sei
|
||||||
|
ret
|
||||||
|
|
||||||
|
EEP_RD_BYTE:
|
||||||
|
cli
|
||||||
|
_EEP_RD_BYTE_LP:
|
||||||
|
; ждем завершения предыдущей записи
|
||||||
|
sbic EECR, EEPE
|
||||||
|
rjmp _EEP_RD_BYTE_LP
|
||||||
|
|
||||||
|
; выставляем адресс откуда читать
|
||||||
|
out EEARL, EEP_A_r
|
||||||
|
|
||||||
|
; читаем
|
||||||
|
sbi EECR, EERE
|
||||||
|
in EEP_D_r, EEDR
|
||||||
|
sei
|
||||||
ret//</editor-fold>
|
ret//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: сравнение температуры с уставкой">
|
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: сравнение температуры с уставкой">
|
||||||
@ -436,7 +568,8 @@ _COMPARSION_EXIT:
|
|||||||
pop r18
|
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="Подпрограмма: обновляем данные о температуре">
|
||||||
TEMP_UPD:
|
TEMP_UPD:
|
||||||
@ -644,13 +777,15 @@ _SW_SET_FROM_0_TO_1:
|
|||||||
rcall BEEP_SHORT
|
rcall BEEP_SHORT
|
||||||
rjmp _SW_CHECK_ON_1
|
rjmp _SW_CHECK_ON_1
|
||||||
_SAVE_SETTINGS:
|
_SAVE_SETTINGS:
|
||||||
outi r17, TIMSK, (0<<OCIE0A)
|
outi r17, TIMSK, (0<<OCIE0A)
|
||||||
cbi PORTD, DIGIT_1_PIN
|
cbi PORTD, DIGIT_1_PIN
|
||||||
cbi PORTD, DIGIT_2_PIN
|
cbi PORTD, DIGIT_2_PIN
|
||||||
cbi PORTD, DIGIT_3_PIN
|
cbi PORTD, DIGIT_3_PIN
|
||||||
cbi PORTD, DIGIT_4_PIN
|
cbi PORTD, DIGIT_4_PIN
|
||||||
clr REPROGRAM_STEP_r
|
clr REPROGRAM_STEP_r
|
||||||
|
rcall WRITE_PARAMS_TO_EEP
|
||||||
rcall BEEP_LONG
|
rcall BEEP_LONG
|
||||||
|
cbi PORTD, LED_PGM_PIN
|
||||||
ldi r17, MCU_STATE_DEFAULT
|
ldi r17, MCU_STATE_DEFAULT
|
||||||
sts MCU_STATE, r17
|
sts MCU_STATE, r17
|
||||||
_SW_CHECK_ON_1:
|
_SW_CHECK_ON_1:
|
||||||
@ -684,6 +819,8 @@ REPROGRAM_SETTINGS:
|
|||||||
breq _INTO
|
breq _INTO
|
||||||
rjmp _REPROGRAM_SETTINGS_LOOP
|
rjmp _REPROGRAM_SETTINGS_LOOP
|
||||||
_INTO:
|
_INTO:
|
||||||
|
relay_off
|
||||||
|
sbi PORTD, LED_PGM_PIN
|
||||||
rcall BEEP_SHORT
|
rcall BEEP_SHORT
|
||||||
inc REPROGRAM_STEP_r
|
inc REPROGRAM_STEP_r
|
||||||
_REPROGRAM_SETTINGS_LOOP:
|
_REPROGRAM_SETTINGS_LOOP:
|
||||||
@ -699,7 +836,7 @@ _CHECK_STEP:
|
|||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 1">
|
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 1">
|
||||||
_STEP_1: ; установка и отображение гистерезиса
|
_STEP_1: ; установка и отображение гистерезиса
|
||||||
nop
|
rcall DISPLAY_UPD_DIGITS
|
||||||
_S1_CHECK_PLUS:
|
_S1_CHECK_PLUS:
|
||||||
sbis SW_PIN, SW_PLUS_PIN
|
sbis SW_PIN, SW_PLUS_PIN
|
||||||
rjmp _INCREASE_HYST
|
rjmp _INCREASE_HYST
|
||||||
@ -742,7 +879,7 @@ _S3_JMP: ; просто прыжок на _STEP_3
|
|||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 2">
|
//<editor-fold defaultstate="collapsed" desc="Настройка: шаг 2">
|
||||||
_STEP_2:
|
_STEP_2:
|
||||||
nop
|
rcall DISPLAY_UPD_DIGITS
|
||||||
_S2_CHECK_PLUS:
|
_S2_CHECK_PLUS:
|
||||||
sbis SW_PIN, SW_PLUS_PIN
|
sbis SW_PIN, SW_PLUS_PIN
|
||||||
rjmp _INCREASE_TEMP
|
rjmp _INCREASE_TEMP
|
||||||
@ -755,6 +892,10 @@ _INCREASE_TEMP:
|
|||||||
rcall DEBOUNCE_SW
|
rcall DEBOUNCE_SW
|
||||||
lds r17, SETTING_TEMP_L
|
lds r17, SETTING_TEMP_L
|
||||||
lds r18, SETTING_TEMP_H
|
lds r18, SETTING_TEMP_H
|
||||||
|
cpi r17, MAX_TEMP_L
|
||||||
|
ldi r19, MAX_TEMP_H
|
||||||
|
cpc r18, r19
|
||||||
|
breq PC+7
|
||||||
ldi r19, 10
|
ldi r19, 10
|
||||||
add r17, r19
|
add r17, r19
|
||||||
clr r19
|
clr r19
|
||||||
@ -766,6 +907,11 @@ _DECREASE_TEMP:
|
|||||||
rcall DEBOUNCE_SW
|
rcall DEBOUNCE_SW
|
||||||
lds r17, SETTING_TEMP_L
|
lds r17, SETTING_TEMP_L
|
||||||
lds r18, SETTING_TEMP_H
|
lds r18, SETTING_TEMP_H
|
||||||
|
cpi r17, MIN_TEMP_L
|
||||||
|
ldi r19, MIN_TEMP_H
|
||||||
|
cpc r18, r19
|
||||||
|
breq PC+3
|
||||||
|
__DECREASE:
|
||||||
subi r17, 10
|
subi r17, 10
|
||||||
sbci r18, 0
|
sbci r18, 0
|
||||||
sts SETTING_TEMP_L, r17
|
sts SETTING_TEMP_L, r17
|
||||||
@ -828,6 +974,10 @@ _SHOW_MODE:
|
|||||||
clr r17
|
clr r17
|
||||||
mov DISP_NUM_L, r17
|
mov DISP_NUM_L, r17
|
||||||
mov DISP_NUM_H, r17
|
mov DISP_NUM_H, r17
|
||||||
|
ldi r17, 14
|
||||||
|
sts DIGITS, r17
|
||||||
|
sts DIGITS+1, r17
|
||||||
|
sts DIGITS+2, r17
|
||||||
lds r18, SETTING_MODE
|
lds r18, SETTING_MODE
|
||||||
tst r18
|
tst r18
|
||||||
breq _SHOW_COOLING
|
breq _SHOW_COOLING
|
||||||
@ -851,17 +1001,6 @@ _REPROGRAM_SETTINGS_END:
|
|||||||
ret
|
ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
;DBG_LED_TOGGLE:
|
|
||||||
; push r18
|
|
||||||
; push r19
|
|
||||||
; in r18, PIND
|
|
||||||
; ldi r19, (1<<PD0)
|
|
||||||
; eor r18, r19
|
|
||||||
; out PORTD, r18
|
|
||||||
; pop r19
|
|
||||||
; pop r18
|
|
||||||
; ret
|
|
||||||
|
|
||||||
//<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: опрос присутствия">
|
||||||
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
|
; **** ОПРОС ПРИСУТСТВИЯ УСТРОЙСТВА ******************************
|
||||||
@ -1069,31 +1208,6 @@ DELAY_LOOP_24:
|
|||||||
ret
|
ret
|
||||||
//</editor-fold>
|
//</editor-fold>
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Подпрограмма: задержка">
|
|
||||||
DELAY:
|
|
||||||
push r16
|
|
||||||
push r17
|
|
||||||
push r18
|
|
||||||
|
|
||||||
ldi r18, 6
|
|
||||||
_DELAY_0:
|
|
||||||
ldi r16, 255
|
|
||||||
_DELAY_1:
|
|
||||||
ldi r17, 255
|
|
||||||
_DELAY_2:
|
|
||||||
dec r17
|
|
||||||
brne _DELAY_2
|
|
||||||
|
|
||||||
dec r16
|
|
||||||
brne _DELAY_1
|
|
||||||
dec r18
|
|
||||||
brne _DELAY_0
|
|
||||||
|
|
||||||
pop r18
|
|
||||||
pop r17
|
|
||||||
pop r16
|
|
||||||
ret //</editor-fold>
|
|
||||||
|
|
||||||
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
//<editor-fold defaultstate="collapsed" desc="Символы для индикатора">
|
||||||
DISPLAY_SYMBOLS:
|
DISPLAY_SYMBOLS:
|
||||||
; HGFEDCBA HGFEDCBA
|
; HGFEDCBA HGFEDCBA
|
||||||
@ -1112,9 +1226,6 @@ DISPLAY_SYMBOLS:
|
|||||||
; **** СЕГМЕНТ EEPROM ********************************************
|
; **** СЕГМЕНТ EEPROM ********************************************
|
||||||
.ESEG
|
.ESEG
|
||||||
|
|
||||||
E_SETTING_TEMP_H: .BYTE 1
|
.ORG 0x30
|
||||||
E_SETTING_TEMP_L: .BYTE 1
|
INFO: .DB "AVR Thermostat. Written by Sergey Yarkov"
|
||||||
E_SETTING_HYST: .BYTE 1
|
|
||||||
E_SETTING_MODE: .BYTE 1
|
|
||||||
E_FIRST_TIME_RUN: .BYTE 1
|
|
||||||
;</editor-fold>
|
;</editor-fold>
|
||||||
|
|||||||
204
main.hex
204
main.hex
@ -7,106 +7,118 @@
|
|||||||
:10003A002F933F934F935F935FB74091670045308B
|
:10003A002F933F934F935F935FB74091670045308B
|
||||||
:10004A000CF403C0442740936700403081F493982E
|
:10004A000CF403C0442740936700403081F493982E
|
||||||
:10005A00949895980EF002C00BE002C000916500DA
|
:10005A00949895980EF002C00BE002C000916500DA
|
||||||
:10006A00002311F0929A01C09298DAD29BD14130C2
|
:10006A00002311F0929A01C0929850D305D24130E0
|
||||||
:10007A0081F4929894989598009164003091650063
|
:10007A0081F4929894989598009164003091650063
|
||||||
:10008A00032B11F0939A01C0939800916400C8D28F
|
:10008A00032B11F0939A01C09398009164003ED318
|
||||||
:10009A0089D1423059F4929893989598949A0091FC
|
:10009A00F3D1423059F4929893989598949A009192
|
||||||
:1000AA006300BED2002D0F77002E7CD1433041F47D
|
:1000AA00630034D3002D0F77002EE6D1433041F49C
|
||||||
:1000BA00929893989498959A00916600B1D272D1C9
|
:1000BA00929893989498959A0091660027D3DCD1E8
|
||||||
:1000CA004395409367005FBF5F914F913F912F9196
|
:1000CA004395409367005FBF5F914F913F912F9196
|
||||||
:1000DA001F910F9118950FED0DBF0FE701BB01EEB0
|
:1000DA001F910F9118950FED0DBF0FE701BB01EEB0
|
||||||
:1000EA0007BB0CE108BB02E000BF05E003BF03E267
|
:1000EA0007BB0CE108BB02E000BF05E003BF03E267
|
||||||
:1000FA0006BF00E20BBF0CE100BD03E309B900E053
|
:1000FA0006BF00E20BBF0CE100BD03E309B900E053
|
||||||
:10010A0002B908E00AB906E003B91124109267009F
|
:10010A0002B908E00AB906E003B91124109267009F
|
||||||
:10011A0000E0009360000CE200936C0001E00093A1
|
:10011A0000E00093600004E0302EEAD0042D0031A4
|
||||||
:10012A006B0005E000936D0001E000936E0000276C
|
:10012A0011F09CD014C000E0302EE2D040926B0057
|
||||||
:10013A00009368000093690000EF00936A000FEFD4
|
:10013A0001E0302EDDD040926C0002E0302ED8D0A3
|
||||||
:10014A00009371006624CED000916F00083209F442
|
:10014A0040926D0003E0302ED3D040926E0000271B
|
||||||
:10015A0005C012E01093600075D201C06CD280E035
|
:10015A00009368000093690000EF00936A000FEFB4
|
||||||
:10016A0090E00091600042D2003051F496982091BC
|
:10016A0000937100662428D100916F00083209F4C7
|
||||||
:10017A006A0020936600A7D059D011E019BF38D081
|
:10017A0005C012E010936000DBD201C0D2D280E049
|
||||||
:10018A00013011F4969848D1023059F7969AE9CF7E
|
:10018A0090E000916000003051F420916A002093C1
|
||||||
:10019A00EE24FF1841E1001F111F4A9509F4089542
|
:10019A00660003D1A1D2B4D011E019BF41D0013019
|
||||||
:1001AA00EE1CFF1CE21AF30A20F4E20EF31E8894F6
|
:1001AA0009F4A6D1023069F71BE01093630010939B
|
||||||
:1001BA00F2CF0894F0CFFF1829E0001F2A9509F41E
|
:1001BA006400109365001093660011E019BFE1CF47
|
||||||
:1001CA000895FF1CF11A18F4F10E8894F6CF0894DA
|
:1001CA00EE24FF1841E1001F111F4A9509F4089512
|
||||||
:1001DA00F4CF5527442760E13695279510F4400F50
|
:1001DA00EE1CFF1CE21AF30A20F4E20EF31E8894C6
|
||||||
:1001EA00511F57954795379527956A95B9F70895F9
|
:1001EA00F2CF0894F0CFFF1829E0001F2A9509F4EE
|
||||||
:1001FA000F931F9300916800502E14D000916A004B
|
:1001FA000895FF1CF11A18F4F10E8894F6CF0894AA
|
||||||
:10020A00502E10D000B30170502E0CD004E0502EA6
|
:10020A00F4CF5527442760E13695279510F4400F1F
|
||||||
:10021A0009D00027502E1CE005D01A95E9F71F9146
|
:10021A00511F57954795379527956A95B9F70895C8
|
||||||
:10022A000F9108955D9BFECF5CB808950F931F93BD
|
:10022A000F931F9300916800502E14D000916A001A
|
||||||
:10023A002F933F934F935F937F93009168001091A0
|
:10023A00502E10D000B30170502E0CD004E0502E76
|
||||||
:10024A0069002AE030E0C5DF022F132F20916A00EF
|
:10024A0009D00027502E1CE005D01A95E9F71F9116
|
||||||
:10025A003327020F131F40916C0050916B0060917D
|
:10025A000F9108955D9BFECF5CB8089501E000936D
|
||||||
:10026A006D004F935F937727461B570BB42EA52E2D
|
:10026A006B00402E00E0302E36D00CE200936C007A
|
||||||
:10027A005F914F917727460F571FD42EC52E0EF048
|
:10027A00402E01E0302E2FD005E000936D00402E75
|
||||||
:10028A0004C0009510950F5F1F4FB016A10624F405
|
:10028A0002E0302E28D001E000936E00402E03E0F9
|
||||||
:10029A000D151C054CF40FC040916E00442311F457
|
:10029A00302E21D000E1402E04E0302E1CD00895EB
|
||||||
:1002AA00909801C0909A07C040916E00442311F4BF
|
:1002AA000F9300916B00402E00E0302E14D0009185
|
||||||
:1002BA00909A01C090987F915F914F913F912F91B1
|
:1002BA006C00402E01E0302E0ED000916D00402ED1
|
||||||
:1002CA001F910F9108951F9361D052E135E54DEBCF
|
:1002CA0002E0302E08D000916E00402E03E0302E5E
|
||||||
:1002DA00D4D112D010916800812F10916900912F0A
|
:1002DA0002D00F910895F8940F93E199FECF00E0B0
|
||||||
:1002EA001F9108950F9334D103E3802E46D1AFE6D0
|
:1002EA000CBB3EBA4DBAE29AE19A0F9178940895FE
|
||||||
:1002FA00B0E062D10F9108950F931F932F933F930C
|
:1002FA00F894E199FECF3EBAE09A4DB27894089507
|
||||||
:10030A004F9326D170FF3CC00CEC802E36D10EEBF9
|
:10030A000F931F932F933F934F935F937F93009184
|
||||||
:10031A00802E33D1A8E6B0E04FD1A9E6B0E04CD1A7
|
:10031A006800109169002AE030E073DF022F132F82
|
||||||
:10032A0010916800209169002F93287F283F11F0CF
|
:10032A0020916A003327020F131F40916C005091ED
|
||||||
:10033A00E89407C02F916894109520951F5F2F4F5E
|
:10033A006B0060916D004F935F937727461B570BB5
|
||||||
:10034A0001C02F91269517952695179526951795ED
|
:10034A00B42EA52E5F914F917727460F571FD42EB3
|
||||||
:10035A0026951795309168000EF43195432F3F701A
|
:10035A00C52E0EF004C0009510950F5F1F4FB01602
|
||||||
:10036A00432F330F330F330F440F340F369536951F
|
:10036A00A10624F40D151C054CF40FC040916E0033
|
||||||
:10037A0036953695109368002093690030936A0089
|
:10037A00442311F4909801C0909A07C040916E00EE
|
||||||
:10038A004F913F912F911F910F9108950F93E0D0B4
|
:10038A00442311F4909A01C090987F915F914F9104
|
||||||
:10039A0070FF06C00CEC802EF0D004E4802EEDD065
|
:10039A003F912F911F910F9108951F9361D052E1C0
|
||||||
:1003AA000F9108950F930F920FB800E40EB90BE165
|
:1003AA0035E54DEBE0D112D010916800812F109104
|
||||||
:1003BA000DB9769BFDCFC09AC0980F900F91089502
|
:1003BA006900912F1F9108950F9340D103E3802E76
|
||||||
:1003CA000F93B49B01C01AC000917100002309F475
|
:1003CA0052D1AFE6B0E06ED10F9108950F931F930B
|
||||||
:1003DA0015C00027009371003CD16394162D143088
|
:1003DA002F933F934F9332D170FF3CC00CEC802E89
|
||||||
:1003EA0014F429D10BC010E019BF929893989498ED
|
:1003EA0042D10EEB802E3FD1A8E6B0E05BD1A9E660
|
||||||
:1003FA009598662427D110E010936000B49901C043
|
:1003FA00B0E058D110916800209169002F93287FAE
|
||||||
:10040A0009C000917100002309F004C00FEF0093A6
|
:10040A00283F11F0E89407C02F9168941095209521
|
||||||
:10041A0071001FD10F9108950F931F932F933F934C
|
:10041A001F5F2F4F01C02F91269517952695179587
|
||||||
:10042A004F93062D002309F002C005D16394C8DF5B
|
:10042A002695179526951795309168000EF4319503
|
||||||
:10043A00013029F0023049F1033031F183C0000064
|
:10043A00432F3F70432F330F330F330F440F340FC3
|
||||||
:10044A00B29B04C000C0B39B0AC011C002D1109174
|
:10044A00369536953695369510936800209369004F
|
||||||
:10045A006D00183C09F0139510936D0008C0F9D08F
|
:10045A0030936A004F913F912F911F910F91089508
|
||||||
:10046A0010916D00113009F01A9510936D000F93D9
|
:10046A000F93ECD070FF06C00CEC802EFCD004E495
|
||||||
:10047A001F9300916D001AE09EDE802F9927F0925B
|
:10047A00802EF9D00F9108950F930F920FB800E4D0
|
||||||
:10048A0066001F910F915EC03EC00000B29B04C07F
|
:10048A000EB90BE10DB9769BFDCFC09AC0980F90BB
|
||||||
:10049A0000C0B39B0FC019C0DCD010916C00209132
|
:10049A000F9108950F93B49B01C01CC00091710085
|
||||||
:1004AA006B0031E0130F3327231F10936C00209346
|
:1004AA00002309F417C000270093710048D1639410
|
||||||
:1004BA006B000BC0CED010916C0020916B001150D4
|
:1004BA00162D143014F435D10DC010E019BF9298DE
|
||||||
:1004CA00204010936C0020936B000F931F932F937F
|
:1004CA009398949895986624EBDE32D1969810E02A
|
||||||
:1004DA003F9300916C0010916B00212F207811F44A
|
:1004DA0010936000B49901C009C000917100002313
|
||||||
:1004EA00E89405C06894009510950F5F1F4F2AE0A5
|
:1004EA0009F004C00FEF0093710029D10F9108950C
|
||||||
:1004FA0030E04EDE802F912FE09266003F912F91DF
|
:1004FA000F931F932F933F934F93062D002309F0D9
|
||||||
:10050A001F910F911FC0E894B29B04C000C0B39B17
|
:10050A0004C09098969A0DD16394C4DF013029F003
|
||||||
:10051A0006C009C09ED011E010936E0004C099D0A5
|
:10051A00023049F1033031F18BC0DED0B29B04C006
|
||||||
:10052A0010E010936E001127812F912F20916E00F9
|
:10052A0000C0B39B0AC011C00AD110916D00183CDB
|
||||||
:10053A00222309F004C01CE01093660003C01DE0EA
|
:10053A0009F0139510936D0008C001D110916D0058
|
||||||
:10054A00109366004F913F912F911F910F9108953B
|
:10054A00113009F01A9510936D000F931F930091C3
|
||||||
:10055A00F894B99A33E04EEB8CD0B99830E04AE877
|
:10055A006D001AE048DE802F9927F09266001F91FD
|
||||||
:10056A0088D005D033E042E384D078940895B19BD3
|
:10056A000F9166C03FC0B8D0B29B04C000C0B39B15
|
||||||
:10057A00716002C0B1997E7F0895F8940F931F931A
|
:10057A000FC019C0E4D010916C0020916B003AE0D2
|
||||||
:10058A00082D18E0069508F448F0B99A30E046E7D5
|
:10058A00130F3327231F10936C0020936B000BC0AB
|
||||||
:10059A0070D0B99830E042E16CD008C0B99A30E026
|
:10059A00D6D010916C0020916B001A502040109315
|
||||||
:1005AA004AE067D0B99830E04EE763D01A9551F720
|
:1005AA006C0020936B000F931F932F933F9300913E
|
||||||
:1005BA001F910F9178940895F8940F931F93002731
|
:1005BA006C0010916B00212F207811F4E89405C08B
|
||||||
:1005CA0018E00695B99A30E04AE053D0B99830E07D
|
:1005CA006894009510950F5F1F4F2AE030E0F8DD20
|
||||||
:1005DA0040E14FD0B199006830E04CE64AD01A9514
|
:1005DA00802F912F0AE0009366003F912F911F917F
|
||||||
:1005EA0081F70C931F910F91789408950F935F935D
|
:1005EA000F9126C0E894B29B04C000C0B39B06C01A
|
||||||
:1005FA0053E0A3E6B0E0809361009093620000911B
|
:1005FA0009C0A5D011E010936E0004C0A0D010E08D
|
||||||
:10060A006100109162002AE030E0C2DDED920093B1
|
:10060A0010936E001127812F912F1FEF1093630013
|
||||||
:10061A006100109362005A9591F75F910F910895C6
|
:10061A00109364001093650020916E00222309F064
|
||||||
:10062A000F931F93EEEAF6E01127E00FF11F0490F3
|
:10062A0004C01CE01093660003C01DE0109366002E
|
||||||
:10063A001F910F910895C59A53E039EA4DE71DD0ED
|
:10063A004F913F912F911F910F910895F894B99A74
|
||||||
:10064A00C5980895C59A5CE034E34DEF16D0C59875
|
:10064A0033E04EEB8CD0B99830E04AE888D005D038
|
||||||
:10065A0008950F931F932F932AE01FEF0FEF0A9528
|
:10065A0033E042E384D078940895B19B716002C07C
|
||||||
:10066A00F1F71A95D9F72A95C1F72F911F910F9192
|
:10066A00B1997E7F0895F8940F931F93082D18E08F
|
||||||
:10067A00089541503040E8F70895415030405040C5
|
:10067A00069508F448F0B99A30E046E770D0B99880
|
||||||
:10068A00E0F708950F931F932F9326E00FEF1FEFC4
|
:10068A0030E042E16CD008C0B99A30E04AE067D065
|
||||||
:10069A001A95F1F70A95D9F72A95C1F72F911F9163
|
:10069A00B99830E04EE763D01A9551F71F910F9140
|
||||||
:1006AA000F910895C0F9A4B0999282F880909CBFE6
|
:1006AA0078940895F8940F931F93002718E00695FD
|
||||||
:0206BA00C689EF
|
:1006BA00B99A30E04AE053D0B99830E040E14FD0DF
|
||||||
|
:1006CA00B199006830E04CE64AD01A9581F70C934C
|
||||||
|
:1006DA001F910F91789408950F935F9353E0A3E6C7
|
||||||
|
:1006EA00B0E08093610090936200009161001091E4
|
||||||
|
:1006FA0062002AE030E064DDED920093610010931D
|
||||||
|
:10070A0062005A9591F75F910F9108950F931F9385
|
||||||
|
:10071A00EAE7F7E01127E00FF11F04901F910F910C
|
||||||
|
:10072A000895C59A53E039EA4DE71DD0C598089552
|
||||||
|
:10073A00C59A5CE034E34DEF16D0C59808950F933F
|
||||||
|
:10074A001F932F932AE01FEF0FEF0A95F1F71A95DF
|
||||||
|
:10075A00D9F72A95C1F72F911F910F91089541500A
|
||||||
|
:10076A003040E8F70895415030405040E0F708958E
|
||||||
|
:0E077A00C0F9A4B0999282F880909CBFC68905
|
||||||
:00000001FF
|
:00000001FF
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
#
|
#
|
||||||
#Wed Jun 28 17:31:11 MSK 2023
|
#Fri Jun 30 15:31:30 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
|
||||||
conf.ids=default
|
conf.ids=default
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user