terminal view in web-browser

This commit is contained in:
Sergey Yarkov 2023-07-01 21:30:16 +03:00
parent 2496a46f2c
commit b68eff14bf
No known key found for this signature in database
GPG Key ID: E91CE1FABC619B6F
7 changed files with 1215 additions and 971 deletions

View File

@ -8,26 +8,26 @@
:10004A005F935FB74091670045300CF403C04427C3 :10004A005F935FB74091670045300CF403C04427C3
:10005A0040936700403081F49398949895980EF0F5 :10005A0040936700403081F49398949895980EF0F5
:10006A0002C00BE002C000916500002311F0929AD1 :10006A0002C00BE002C000916500002311F0929AD1
:10007A0001C0929856D302D2413081F49298949852 :10007A0001C092986CD318D2413081F49298949826
:10008A0095980091640030916500032B11F0939AC2 :10008A0095980091640030916500032B11F0939AC2
:10009A0001C093980091640044D3F0D1423041F4F6 :10009A0001C09398009164005AD306D2423041F4C9
:1000AA00929893989598949A009163003AD3E6D1DE :1000AA00929893989598949A0091630050D3FCD1B2
:1000BA00433041F4929893989498959A00916600E7 :1000BA00433041F4929893989498959A00916600E7
:1000CA0030D3DCD14395409367005FBF5F914F9176 :1000CA0046D3F2D14395409367005FBF5F914F914A
:1000DA003F912F911F910F9118950FED0DBF0FE7CB :1000DA003F912F911F910F9118950FED0DBF0FE7CB
:1000EA0001BB01EE07BB0CE108BB02E000BF05E063 :1000EA0001BB01EE07BB0CE108BB02E000BF05E063
:1000FA0003BF03E206BF00E20BBF0CE100BD03E34E :1000FA0003BF03E206BF00E20BBF0CE100BD03E34E
:10010A0009B900E002B908E00AB906E003B9112406 :10010A0009B900E002B908E00AB906E003B9112406
:10011A001092670000E00093600004E0302EEAD0FD :10011A001092670000E00093600004E0302E00D1E6
:10012A00042D003111F09CD014C000E0302EE2D032 :10012A00042D003111F0B2D014C000E0302EF8D006
:10013A0040926B0001E0302EDDD040926C0002E06C :10013A0040926B0001E0302EF3D040926C0002E056
:10014A00302ED8D040926D0003E0302ED3D04092AA :10014A00302EEED040926D0003E0302EE9D040927E
:10015A006E000027009368000093690000EF009387 :10015A006E000027009368000093690000EF009387
:10016A006A000FEF00937100662428D100916F0096 :10016A006A000FEF0093710066243ED100916F0080
:10017A00083209F405C012E010936000F9D201C0F8 :10017A00083209F405C012E0109360000FD301C0E1
:10018A00F0D280E090E000916000003051F42091BC :10018A0006D380E090E000916000003051F42091A5
:10019A006A002093660003D1AAD2B4D011E019BF35 :10019A006A002093660019D1C0D2CAD011E019BFF3
:1001AA0041D0013009F4A6D1023069F71BE010935F :1001AA0041D0013009F4BCD1023069F71BE0109349
:1001BA00630010936400109365001093660011E0C9 :1001BA00630010936400109365001093660011E0C9
:1001CA0019BFE1CFEE24FF1841E1001F111F4A9524 :1001CA0019BFE1CFEE24FF1841E1001F111F4A9524
:1001DA0009F40895EE1CFF1CE21AF30A20F4E20E59 :1001DA0009F40895EE1CFF1CE21AF30A20F4E20E59
@ -35,94 +35,97 @@
:1001FA002A9509F40895FF1CF11A18F4F10E88944F :1001FA002A9509F40895FF1CF11A18F4F10E88944F
:10020A00F6CF0894F4CF5527442760E13695279511 :10020A00F6CF0894F4CF5527442760E13695279511
:10021A0010F4400F511F57954795379527956A95C2 :10021A0010F4400F511F57954795379527956A95C2
:10022A00B9F708950F931F9300916800502E14D0C8 :10022A00B9F708950F931F9300916800502E2AD0B2
:10023A0000916A00502E10D000B30170502E0CD0DD :10023A0000916A00502E26D000B30170502E22D0B1
:10024A0004E0502E09D00027502E1CE005D01A9544 :10024A0000916D00502E1ED000916B00502E1AD0D6
:10025A00E9F71F910F9108955D9BFECF5CB8089551 :10025A0000916C00502E16D000916E00502E12D0D4
:10026A0001E000936B00402E00E0302E36D00CE205 :10026A0000916000502E0ED05FB60CD004E0502EE4
:10027A0000936C00402E01E0302E2FD005E0009351 :10027A0009D00027502E16E005D01A95E9F71F91EC
:10028A006D00402E02E0302E28D001E000936E006F :10028A000F9108955D9BFECF5CB8089501E000933D
:10029A00402E03E0302E21D000E1402E04E0302E23 :10029A006B00402E00E0302E36D00CE200936C004A
:1002AA001CD008950F9300916B00402E00E0302E71 :1002AA00402E01E0302E2FD005E000936D00402E45
:1002BA0014D000916C00402E01E0302E0ED0009137 :1002BA0002E0302E28D001E000936E00402E03E0C9
:1002CA006D00402E02E0302E08D000916E00402EC4 :1002CA00302E21D000E1402E04E0302E1CD00895BB
:1002DA0003E0302E02D00F910895F8940F93E1991C :1002DA000F9300916B00402E00E0302E14D0009155
:1002EA00FECF00E00CBB3EBA4DBAE29AE19A0F91FA :1002EA006C00402E01E0302E0ED000916D00402EA1
:1002FA0078940895F894E199FECF3EBAE09A4DB207 :1002FA0002E0302E08D000916E00402E03E0302E2E
:10030A00789408950F931F932F933F934F935F937E :10030A0002D00F910895F8940F93E199FECF00E07F
:10031A007F9300916800109169002AE030E073DF52 :10031A000CBB3EBA4DBAE29AE19A0F9178940895CD
:10032A00022F132F20916A003327020F131F4091C7 :10032A00F894E199FECF3EBAE09A4DB278940895D6
:10033A006C0050916B0060916D004F935F9377272B :10033A000F931F932F933F934F935F937F93009154
:10034A00461B570BB42EA52E5F914F917727460F68 :10034A006800109169002AE030E05DDF022F132F68
:10035A00571FD42EC52E0EF004C0009510950F5FBE :10035A0020916A003327020F131F40916C005091BD
:10036A001F4FB016A10624F40D151C054CF40FC03E :10036A006B0060916D004F935F937727461B570B85
:10037A0040916E00442311F4909801C0909A07C0EE :10037A00B42EA52E5F914F917727460F571FD42E83
:10038A0040916E00442311F4909A01C090987F9195 :10038A00C52E0EF004C0009510950F5F1F4FB016D2
:10039A005F914F913F912F911F910F9108951F9354 :10039A00A10624F40D151C054CF40FC040916E0003
:1003AA0061D052E135E54DEBFED112D010916800D3 :1003AA00442311F4909801C0909A07C040916E00BE
:1003BA00812F10916900912F1F9108950F9349D1B0 :1003BA00442311F4909A01C090987F915F914F91D4
:1003CA0003E3802E5BD1AFE6B0E077D10F910895B9 :1003CA003F912F911F910F9108951F9361D052E190
:1003DA000F931F932F933F934F933BD170FF3CC0D2 :1003DA0035E54DEBFED112D010916800812F1091B6
:1003EA000CEC802E4BD10EEB802E48D1A8E6B0E063 :1003EA006900912F1F9108950F9349D103E3802E3D
:1003FA0064D1A9E6B0E061D110916800209169004A :1003FA005BD1AFE6B0E077D10F9108950F931F93C9
:10040A002F93287F283F11F0E89407C02F91689412 :10040A002F933F934F933BD170FF3CC00CEC802E4F
:10041A00109520951F5F2F4F01C02F912695179594 :10041A004BD10EEB802E48D1A8E6B0E064D1A9E614
:10042A002695179526951795269517953091680064 :10042A00B0E061D110916800209169002F93287F74
:10043A000EF43195432F3F70432F330F330F330F91 :10043A00283F11F0E89407C02F91689410952095F1
:10044A00440F340F369536953695369510936800D5 :10044A001F5F2F4F01C02F91269517952695179557
:10045A002093690030936A004F913F912F911F9129 :10045A002695179526951795309168000EF43195D3
:10046A000F9108950F93F5D070FF06C00CEC802E03 :10046A00432F3F70432F330F330F330F440F340F93
:10047A0005D104E4802E02D10F9108950F930F92B3 :10047A00369536953695369510936800209369001F
:10048A000FB800E40EB90BE10DB9769BFDCFC09A07 :10048A0030936A004F913F912F911F910F910895D8
:10049A00C0980F900F9108950F93B49B01C01CC090 :10049A000F93F5D070FF06C00CEC802E05D104E452
:1004AA0000917100002309F417C00027009371001E :1004AA00802E02D10F9108950F930F920FB800E496
:1004BA0066D16394162D143014F453D10DC010E094 :1004BA000EB90BE10DB9769BFDCFC09AC0980F908B
:1004CA0019BF92989398949895986624EBDE50D128 :1004CA000F9108950F93B49B01C01CC00091710055
:1004DA00969810E010936000B49901C009C0009189 :1004DA00002309F417C000270093710066D16394C2
:1004EA007100002309F004C00FEF0093710047D197 :1004EA00162D143014F453D10DC010E019BF929890
:1004FA000F9108950F931F932F933F934F93062DB8 :1004FA009398949895986624EBDE50D1969810E0DC
:10050A00002309F004C09098969A2BD16394C4DF13 :10050A0010936000B49901C009C0009171000023E2
:10051A00013029F0023051F1033039F194C0E7D0AB :10051A0009F004C00FEF0093710047D10F910895BD
:10052A00B29B04C000C0B39B0AC011C028D110916D :10052A000F931F932F933F934F93062D002309F0A8
:10053A006D00183C09F0139510936D0008C01FD187 :10053A0004C09098969A2BD16394C4DF013029F0B5
:10054A0010916D00113009F01A9510936D00E8941E :10054A00023051F1033039F194C0E7D0B29B04C0B4
:10055A000F931F9300916D001AE047DE802F9927B1 :10055A0000C0B39B0AC011C028D110916D00183C8D
:10056A00F09266001F910F916EC047C0C0D0B29B37 :10056A0009F0139510936D0008C01FD110916D000A
:10057A0004C000C0B39B13C021C001D110916C000C :10057A00113009F01A9510936D00E8940F931F93A8
:10058A0020916B00103B34E0230731F03AE0130F5F :10058A0000916D001AE031DE802F9927F092660003
:10059A003327231F10936C0020936B000FC0EFD0FA :10059A001F910F916EC047C0C0D0B29B04C000C06B
:1005AA0010916C0020916B001C303EEF230711F074 :1005AA00B39B13C021C001D110916C0020916B0044
:1005BA001A50204010936C0020936B000F931F93E6 :1005BA00103B34E0230731F03AE0130F3327231FAF
:1005CA002F933F9300916C0010916B00212F20789C :1005CA0010936C0020936B000FC0EFD010916C0059
:1005DA0011F4E89405C06894009510950F5F1F4FB9 :1005DA0020916B001C303EEF230711F01A50204087
:1005EA002AE030E0EFDD802F912F0AE000936600C9 :1005EA0010936C0020936B000F931F932F933F93EC
:1005FA003F912F911F910F9126C0E894B29B04C09E :1005FA0000916C0010916B00212F207811F4E8947F
:10060A0000C0B39B06C009C0BAD011E010936E00B7 :10060A0005C06894009510950F5F1F4F2AE030E0EF
:10061A0004C0B5D010E010936E001127812F912FDE :10061A00D9DD802F912F0AE0009366003F912F9138
:10062A001EE01093630010936400109365002091FC :10062A001F910F9126C0E894B29B04C000C0B39BEF
:10063A006E00222309F004C01CE01093660003C078 :10063A0006C009C0BAD011E010936E0004C0B5D04C
:10064A001DE0109366004F913F912F911F910F91DA :10064A0010E010936E001127812F912F1EE0109356
:10065A000895F894B99A33E04EEBA1D0B99830E0F6 :10065A006300109364001093650020916E002223BA
:10066A004AE89DD005D033E042E399D078940895C2 :10066A0009F004C01CE01093660003C01DE010935B
:10067A00B19B716002C0B1997E7F0895F8940F937F :10067A0066004F913F912F911F910F910895F89421
:10068A001F93082D18E0069508F448F0B99A30E04F :10068A00B99A33E04EEBA1D0B99830E04AE89DD050
:10069A0046E785D0B99830E042E181D008C0B99ADE :10069A0005D033E042E399D078940895B19B716014
:1006AA0030E04AE07CD0B99830E04EE778D01A952D :1006AA0002C0B1997E7F0895F8940F931F93082D85
:1006BA0051F71F910F9178940895F8940F931F930F :1006BA0018E0069508F448F0B99A30E046E785D084
:1006CA00002718E00695B99A30E04AE068D0B99850 :1006CA00B99830E042E181D008C0B99A30E04AE0F6
:1006DA0030E040E164D0B199006830E04CE65FD088 :1006DA007CD0B99830E04EE778D01A9551F71F913F
:1006EA001A9581F70C931F910F91789408950F939F :1006EA000F9178940895F8940F931F93002718E0B8
:1006FA005F9353E0A3E6B0E08093610090936200B9 :1006FA000695B99A30E04AE068D0B99830E040E10E
:10070A0000916100109162002AE030E05BDDED9219 :10070A0064D0B199006830E04CE65FD01A9581F761
:10071A0000936100109362005A9591F75F910F91CF :10071A000C931F910F91789408950F935F9353E070
:10072A0008950F931F93EAEBF7E01127E00FF11FEB :10072A00A3E6B0E0809361009093620000916100BB
:10073A00049000916700023009F010C0002D0F7775 :10073A00109162002AE030E045DDED9200936100FD
:10074A00002E062D02302CF400916000023029F0B0 :10074A00109362005A9591F75F910F9108950F9354
:10075A0005C0002D0068002E01C0FBCF1F910F912C :10075A001F93E6EEF7E01127E00FF11F04900091D6
:10076A000895C59A53E039EA4DE71DD0C598089512 :10076A006700023009F010C0002D0F77002E062D09
:10077A00C59A5CE034E34DEF16D0C59808950F93FF :10077A0002302CF400916000023029F005C0002DEF
:10078A001F932F932AE01FEF0FEF0A95F1F71A959F :10078A000068002E01C0FBCF1F910F910895C59AF2
:10079A00D9F72A95C1F72F911F910F9108954150CA :10079A0053E039EA4DE71DD0C5980895C59A5CE043
:1007AA003040E8F70895415030405040E0F708954E :1007AA0034E34DEF16D0C59808950F931F932F93F6
:0E07BA00C0F9A4B0999282F880909CBFC689C5 :1007BA002AE01FEF0FEF0A95F1F71A95D9F72A9554
:1007CA00C1F72F911F910F91089541503040E8F7DA
:1007DA000895415030405040E0F70895C0F9A4B060
:0A07EA00999282F880909CBFC689A6
:00000001FF :00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
AVRASM ver. 2.2.7 main.asm Sat Jul 01 18:14:26 2023 AVRASM ver. 2.2.7 main.asm Sat Jul 01 19:34:07 2023
EQU SIGNATURE_000 0000001e EQU SIGNATURE_000 0000001e
@ -571,31 +571,31 @@ CSEG _INTO_PROGRAM_STATE 00000019
CSEG _CLR_CURRENT_DIGIT 0000002c CSEG _CLR_CURRENT_DIGIT 0000002c
CSEG _indicate_1 0000002f CSEG _indicate_1 0000002f
CSEG _indicate_2 00000041 CSEG _indicate_2 00000041
CSEG DISPLAY_DECODER 00000396 CSEG DISPLAY_DECODER 000003ac
CSEG USI_TRANSMIT 00000243 CSEG USI_TRANSMIT 00000259
CSEG _indicate_3 00000053 CSEG _indicate_3 00000053
CSEG _indicate_4 0000005d CSEG _indicate_4 0000005d
CSEG _indicate_exit 00000067 CSEG _indicate_exit 00000067
CSEG MCU_INIT 00000074 CSEG MCU_INIT 00000074
CSEG EEP_RD_BYTE 0000017f CSEG EEP_RD_BYTE 00000195
CSEG _INIT_PARAMS 0000009a CSEG _INIT_PARAMS 0000009a
CSEG _FIRST_TIME_RUN 00000098 CSEG _FIRST_TIME_RUN 00000098
CSEG INIT_DEFAULT_PARAMS 00000135 CSEG INIT_DEFAULT_PARAMS 0000014b
CSEG _CONTINUE_INIT 000000ae CSEG _CONTINUE_INIT 000000ae
CSEG RD_F_CODE 000001e3 CSEG RD_F_CODE 000001f9
CSEG ERR_FAMILY_CODE 000000c0 CSEG ERR_FAMILY_CODE 000000c0
CSEG START_PROGRAM 000000c5 CSEG START_PROGRAM 000000c5
CSEG BEEP_LONG 000003bd CSEG BEEP_LONG 000003d3
CSEG BEEP_SHORT 000003b6 CSEG BEEP_SHORT 000003cc
CSEG LOOP 000000c8 CSEG LOOP 000000c8
CSEG _STATE_DEFAULT 000000ca CSEG _STATE_DEFAULT 000000ca
CSEG _STATE_PROGRAM 000000d6 CSEG _STATE_PROGRAM 000000d6
CSEG TEMP_UPD 000001d4 CSEG TEMP_UPD 000001ea
CSEG DISPLAY_UPD_DIGITS 0000037c CSEG DISPLAY_UPD_DIGITS 00000392
CSEG TEMP_COMPARSION 00000187 CSEG TEMP_COMPARSION 0000019d
CSEG TEMP_SEND_UART 00000117 CSEG TEMP_SEND_UART 00000117
CSEG _STATE_ERROR 000000d9 CSEG _STATE_ERROR 000000d9
CSEG REPROGRAM_SETTINGS 0000027f CSEG REPROGRAM_SETTINGS 00000295
DEF drem16uL r14 DEF drem16uL r14
DEF drem16uH r15 DEF drem16uH r15
DEF dres16uL r16 DEF dres16uL r16
@ -630,92 +630,92 @@ DEF mcnt16u r22
CSEG mpy16u 00000108 CSEG mpy16u 00000108
CSEG m16u_1 0000010d CSEG m16u_1 0000010d
CSEG noad8 00000110 CSEG noad8 00000110
CSEG UART_WR_BYTE 00000131 CSEG UART_WR_BYTE 00000147
CSEG _TEMP_SEND_UART_L 0000012b CSEG _TEMP_SEND_UART_L 00000141
CSEG EEP_WR_BYTE 00000172 CSEG EEP_WR_BYTE 00000188
CSEG WRITE_PARAMS_TO_EEP 00000157 CSEG WRITE_PARAMS_TO_EEP 0000016d
CSEG _EEP_WR_BYTE_LP 00000174 CSEG _EEP_WR_BYTE_LP 0000018a
CSEG _EEP_RD_BYTE_LP 00000180 CSEG _EEP_RD_BYTE_LP 00000196
DEF temp_r_l r16 DEF temp_r_l r16
DEF temp_r_h r17 DEF temp_r_h r17
DEF min_r_trhd_l r11 DEF min_r_trhd_l r11
DEF min_r_trhd_h r10 DEF min_r_trhd_h r10
DEF max_r_trhd_l r13 DEF max_r_trhd_l r13
DEF max_r_trhd_h r12 DEF max_r_trhd_h r12
CSEG _NEGATE_TEMP 000001b2 CSEG _NEGATE_TEMP 000001c8
CSEG _COMPARE 000001b6 CSEG _COMPARE 000001cc
CSEG _MIN_THRESHOLD 000001bd CSEG _MIN_THRESHOLD 000001d3
CSEG _MAX_THRESHOLD 000001c5 CSEG _MAX_THRESHOLD 000001db
CSEG _COMPARSION_EXIT 000001cc CSEG _COMPARSION_EXIT 000001e2
CSEG TEMP_CONV 00000237 CSEG TEMP_CONV 0000024d
CSEG DELAY_LOOP_24 000003d8 CSEG DELAY_LOOP_24 000003ee
CSEG TEMP_RD 000001ed CSEG TEMP_RD 00000203
CSEG OW_PRESENCE 0000032e CSEG OW_PRESENCE 00000344
CSEG OW_SEND_BYTE 00000343 CSEG OW_SEND_BYTE 00000359
CSEG OW_RD_BYTE 00000362 CSEG OW_RD_BYTE 00000378
CSEG _TEMP_RD_EXIT 00000231 CSEG _TEMP_RD_EXIT 00000247
CSEG _TEMP_RD_TO_UNSIGNED 0000020b CSEG _TEMP_RD_TO_UNSIGNED 00000221
CSEG _TEMP_RD_CONTINUE 00000212 CSEG _TEMP_RD_CONTINUE 00000228
CSEG _TEMP_RD_END 0000021b CSEG _TEMP_RD_END 00000231
CSEG _TEMP_CONV_EXIT 00000241 CSEG _TEMP_CONV_EXIT 00000257
CSEG _USI_TRANSMIT_LOOP 00000249 CSEG _USI_TRANSMIT_LOOP 0000025f
CSEG BUTTON_PROCESS 00000251 CSEG BUTTON_PROCESS 00000267
CSEG _SW_CHECK_ON_0 00000252 CSEG _SW_CHECK_ON_0 00000268
CSEG _SW_SET_0 00000255 CSEG _SW_SET_0 0000026b
CSEG _SW_CHECK_ON_1 00000271 CSEG _SW_CHECK_ON_1 00000287
CSEG _SW_SET_FROM_0_TO_1 0000025a CSEG _SW_SET_FROM_0_TO_1 00000270
CSEG DEBOUNCE_SW 000003c4 CSEG DEBOUNCE_SW 000003da
CSEG _SAVE_SETTINGS 00000264 CSEG _SAVE_SETTINGS 0000027a
CSEG _SW_SET_1 00000274 CSEG _SW_SET_1 0000028a
CSEG _BUTTON_PROCESS_END 0000027d CSEG _BUTTON_PROCESS_END 00000293
CSEG _SW_SET_FROM_1_TO_0 00000279 CSEG _SW_SET_FROM_1_TO_0 0000028f
CSEG _INTO 00000288 CSEG _INTO 0000029e
CSEG _REPROGRAM_SETTINGS_LOOP 0000028c CSEG _REPROGRAM_SETTINGS_LOOP 000002a2
CSEG _CHECK_STEP 0000028d CSEG _CHECK_STEP 000002a3
CSEG _STEP_1 00000294 CSEG _STEP_1 000002aa
CSEG _STEP_2 000002bb CSEG _STEP_2 000002d1
CSEG _S3_JMP 000002ba CSEG _S3_JMP 000002d0
CSEG _REPROGRAM_SETTINGS_END 00000328 CSEG _REPROGRAM_SETTINGS_END 0000033e
CSEG _S1_CHECK_PLUS 00000295 CSEG _S1_CHECK_PLUS 000002ab
CSEG _INCREASE_HYST 0000029b CSEG _INCREASE_HYST 000002b1
CSEG _S1_CHECK_MINUS 00000298 CSEG _S1_CHECK_MINUS 000002ae
CSEG _DECREASE_HYST 000002a4 CSEG _DECREASE_HYST 000002ba
CSEG _SHOW_HYST 000002ac CSEG _SHOW_HYST 000002c2
CSEG _STEP_3 00000302 CSEG _STEP_3 00000318
CSEG _S2_CHECK_PLUS 000002bc CSEG _S2_CHECK_PLUS 000002d2
CSEG _INCREASE_TEMP 000002c2 CSEG _INCREASE_TEMP 000002d8
CSEG _S2_CHECK_MINUS 000002bf CSEG _S2_CHECK_MINUS 000002d5
CSEG _DECREASE_TEMP 000002d4 CSEG _DECREASE_TEMP 000002ea
CSEG _SHOW_TEMP 000002e3 CSEG _SHOW_TEMP 000002f9
CSEG __DECREASE 000002dd CSEG __DECREASE 000002f3
CSEG _NEGATE_SET_TEMP 000002f0 CSEG _NEGATE_SET_TEMP 00000306
CSEG _DIVIDE_SET_TEMP 000002f5 CSEG _DIVIDE_SET_TEMP 0000030b
CSEG _S3_CHECK_PLUS 00000303 CSEG _S3_CHECK_PLUS 00000319
CSEG _SET_HEAT_MODE 00000309 CSEG _SET_HEAT_MODE 0000031f
CSEG _S3_CHECK_MINUS 00000306 CSEG _S3_CHECK_MINUS 0000031c
CSEG _SET_COOLING_MODE 0000030e CSEG _SET_COOLING_MODE 00000324
CSEG _SHOW_MODE 00000312 CSEG _SHOW_MODE 00000328
CSEG _SHOW_COOLING 00000321 CSEG _SHOW_COOLING 00000337
CSEG _SHOW_HEATING 00000325 CSEG _SHOW_HEATING 0000033b
CSEG DELAY_LOOP_16 000003d4 CSEG DELAY_LOOP_16 000003ea
CSEG OW_CHECK_PRESENCE 0000033d CSEG OW_CHECK_PRESENCE 00000353
CSEG _EXIT 00000342 CSEG _EXIT 00000358
CSEG _OW_SEND_BYTE_LOOP 00000348 CSEG _OW_SEND_BYTE_LOOP 0000035e
CSEG _OW_SEND_0 0000034b CSEG _OW_SEND_0 00000361
CSEG _OW_SEND_1 00000354 CSEG _OW_SEND_1 0000036a
CSEG _OW_SEND_BYTE_END 0000035c CSEG _OW_SEND_BYTE_END 00000372
CSEG _OW_RD_BYTE_LP 00000367 CSEG _OW_RD_BYTE_LP 0000037d
EQU dividend 00000061 EQU dividend 00000061
EQU divisor 0000000a EQU divisor 0000000a
CSEG DIV_LOOP 00000385 CSEG DIV_LOOP 0000039b
CSEG DISPLAY_SYMBOLS 000003dd CSEG DISPLAY_SYMBOLS 000003f3
CSEG _DOT_ON 000003a3 CSEG _DOT_ON 000003b9
CSEG _DISPLAY_DECODER_EXIT 000003b3 CSEG _DISPLAY_DECODER_EXIT 000003c9
CSEG _DOT_OFF 000003ae CSEG _DOT_OFF 000003c4
CSEG _ERR_DOT_OFF 000003b2 CSEG _ERR_DOT_OFF 000003c8
CSEG _loop_2 000003c8 CSEG _loop_2 000003de
CSEG _loop_0 000003c9 CSEG _loop_0 000003df
CSEG _dec_0 000003ca CSEG _dec_0 000003e0
CSEG _loop_1 000003cc CSEG _loop_1 000003e2
CSEG _loop_3 000003ce CSEG _loop_3 000003e4
ESEG INFO 00000030 ESEG INFO 00000030

View File

@ -48,31 +48,31 @@
<_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>101</LINE></_CLR_CURRENT_DIGIT> <_CLR_CURRENT_DIGIT><FILE>main.asm</FILE><LINE>101</LINE></_CLR_CURRENT_DIGIT>
<_indicate_1><FILE>main.asm</FILE><LINE>105</LINE></_indicate_1> <_indicate_1><FILE>main.asm</FILE><LINE>105</LINE></_indicate_1>
<_indicate_2><FILE>main.asm</FILE><LINE>125</LINE></_indicate_2> <_indicate_2><FILE>main.asm</FILE><LINE>125</LINE></_indicate_2>
<DISPLAY_DECODER><FILE>main.asm</FILE><LINE>1131</LINE></DISPLAY_DECODER> <DISPLAY_DECODER><FILE>main.asm</FILE><LINE>1160</LINE></DISPLAY_DECODER>
<USI_TRANSMIT><FILE>main.asm</FILE><LINE>720</LINE></USI_TRANSMIT> <USI_TRANSMIT><FILE>main.asm</FILE><LINE>749</LINE></USI_TRANSMIT>
<_indicate_3><FILE>main.asm</FILE><LINE>143</LINE></_indicate_3> <_indicate_3><FILE>main.asm</FILE><LINE>143</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>455</LINE></EEP_RD_BYTE> <EEP_RD_BYTE><FILE>main.asm</FILE><LINE>484</LINE></EEP_RD_BYTE>
<_INIT_PARAMS><FILE>main.asm</FILE><LINE>227</LINE></_INIT_PARAMS> <_INIT_PARAMS><FILE>main.asm</FILE><LINE>227</LINE></_INIT_PARAMS>
<_FIRST_TIME_RUN><FILE>main.asm</FILE><LINE>224</LINE></_FIRST_TIME_RUN> <_FIRST_TIME_RUN><FILE>main.asm</FILE><LINE>224</LINE></_FIRST_TIME_RUN>
<INIT_DEFAULT_PARAMS><FILE>main.asm</FILE><LINE>363</LINE></INIT_DEFAULT_PARAMS> <INIT_DEFAULT_PARAMS><FILE>main.asm</FILE><LINE>392</LINE></INIT_DEFAULT_PARAMS>
<_CONTINUE_INIT><FILE>main.asm</FILE><LINE>248</LINE></_CONTINUE_INIT> <_CONTINUE_INIT><FILE>main.asm</FILE><LINE>248</LINE></_CONTINUE_INIT>
<RD_F_CODE><FILE>main.asm</FILE><LINE>586</LINE></RD_F_CODE> <RD_F_CODE><FILE>main.asm</FILE><LINE>615</LINE></RD_F_CODE>
<ERR_FAMILY_CODE><FILE>main.asm</FILE><LINE>269</LINE></ERR_FAMILY_CODE> <ERR_FAMILY_CODE><FILE>main.asm</FILE><LINE>269</LINE></ERR_FAMILY_CODE>
<START_PROGRAM><FILE>main.asm</FILE><LINE>274</LINE></START_PROGRAM> <START_PROGRAM><FILE>main.asm</FILE><LINE>274</LINE></START_PROGRAM>
<BEEP_LONG><FILE>main.asm</FILE><LINE>1184</LINE></BEEP_LONG> <BEEP_LONG><FILE>main.asm</FILE><LINE>1213</LINE></BEEP_LONG>
<BEEP_SHORT><FILE>main.asm</FILE><LINE>1176</LINE></BEEP_SHORT> <BEEP_SHORT><FILE>main.asm</FILE><LINE>1205</LINE></BEEP_SHORT>
<LOOP><FILE>main.asm</FILE><LINE>281</LINE></LOOP> <LOOP><FILE>main.asm</FILE><LINE>281</LINE></LOOP>
<_STATE_DEFAULT><FILE>main.asm</FILE><LINE>283</LINE></_STATE_DEFAULT> <_STATE_DEFAULT><FILE>main.asm</FILE><LINE>283</LINE></_STATE_DEFAULT>
<_STATE_PROGRAM><FILE>main.asm</FILE><LINE>295</LINE></_STATE_PROGRAM> <_STATE_PROGRAM><FILE>main.asm</FILE><LINE>295</LINE></_STATE_PROGRAM>
<TEMP_UPD><FILE>main.asm</FILE><LINE>570</LINE></TEMP_UPD> <TEMP_UPD><FILE>main.asm</FILE><LINE>599</LINE></TEMP_UPD>
<DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>1090</LINE></DISPLAY_UPD_DIGITS> <DISPLAY_UPD_DIGITS><FILE>main.asm</FILE><LINE>1119</LINE></DISPLAY_UPD_DIGITS>
<TEMP_COMPARSION><FILE>main.asm</FILE><LINE>472</LINE></TEMP_COMPARSION> <TEMP_COMPARSION><FILE>main.asm</FILE><LINE>501</LINE></TEMP_COMPARSION>
<TEMP_SEND_UART><FILE>main.asm</FILE><LINE>317</LINE></TEMP_SEND_UART> <TEMP_SEND_UART><FILE>main.asm</FILE><LINE>317</LINE></TEMP_SEND_UART>
<_STATE_ERROR><FILE>main.asm</FILE><LINE>299</LINE></_STATE_ERROR> <_STATE_ERROR><FILE>main.asm</FILE><LINE>299</LINE></_STATE_ERROR>
<REPROGRAM_SETTINGS><FILE>main.asm</FILE><LINE>805</LINE></REPROGRAM_SETTINGS> <REPROGRAM_SETTINGS><FILE>main.asm</FILE><LINE>834</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,86 +84,86 @@
<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>355</LINE></UART_WR_BYTE> <UART_WR_BYTE><FILE>main.asm</FILE><LINE>384</LINE></UART_WR_BYTE>
<_TEMP_SEND_UART_L><FILE>main.asm</FILE><LINE>344</LINE></_TEMP_SEND_UART_L> <_TEMP_SEND_UART_L><FILE>main.asm</FILE><LINE>373</LINE></_TEMP_SEND_UART_L>
<EEP_WR_BYTE><FILE>main.asm</FILE><LINE>430</LINE></EEP_WR_BYTE> <EEP_WR_BYTE><FILE>main.asm</FILE><LINE>459</LINE></EEP_WR_BYTE>
<WRITE_PARAMS_TO_EEP><FILE>main.asm</FILE><LINE>401</LINE></WRITE_PARAMS_TO_EEP> <WRITE_PARAMS_TO_EEP><FILE>main.asm</FILE><LINE>430</LINE></WRITE_PARAMS_TO_EEP>
<_EEP_WR_BYTE_LP><FILE>main.asm</FILE><LINE>433</LINE></_EEP_WR_BYTE_LP> <_EEP_WR_BYTE_LP><FILE>main.asm</FILE><LINE>462</LINE></_EEP_WR_BYTE_LP>
<_EEP_RD_BYTE_LP><FILE>main.asm</FILE><LINE>457</LINE></_EEP_RD_BYTE_LP> <_EEP_RD_BYTE_LP><FILE>main.asm</FILE><LINE>486</LINE></_EEP_RD_BYTE_LP>
<_NEGATE_TEMP><FILE>main.asm</FILE><LINE>526</LINE></_NEGATE_TEMP> <_NEGATE_TEMP><FILE>main.asm</FILE><LINE>555</LINE></_NEGATE_TEMP>
<_COMPARE><FILE>main.asm</FILE><LINE>532</LINE></_COMPARE> <_COMPARE><FILE>main.asm</FILE><LINE>561</LINE></_COMPARE>
<_MIN_THRESHOLD><FILE>main.asm</FILE><LINE>542</LINE></_MIN_THRESHOLD> <_MIN_THRESHOLD><FILE>main.asm</FILE><LINE>571</LINE></_MIN_THRESHOLD>
<_MAX_THRESHOLD><FILE>main.asm</FILE><LINE>551</LINE></_MAX_THRESHOLD> <_MAX_THRESHOLD><FILE>main.asm</FILE><LINE>580</LINE></_MAX_THRESHOLD>
<_COMPARSION_EXIT><FILE>main.asm</FILE><LINE>558</LINE></_COMPARSION_EXIT> <_COMPARSION_EXIT><FILE>main.asm</FILE><LINE>587</LINE></_COMPARSION_EXIT>
<TEMP_CONV><FILE>main.asm</FILE><LINE>698</LINE></TEMP_CONV> <TEMP_CONV><FILE>main.asm</FILE><LINE>727</LINE></TEMP_CONV>
<DELAY_LOOP_24><FILE>main.asm</FILE><LINE>1226</LINE></DELAY_LOOP_24> <DELAY_LOOP_24><FILE>main.asm</FILE><LINE>1255</LINE></DELAY_LOOP_24>
<TEMP_RD><FILE>main.asm</FILE><LINE>602</LINE></TEMP_RD> <TEMP_RD><FILE>main.asm</FILE><LINE>631</LINE></TEMP_RD>
<OW_PRESENCE><FILE>main.asm</FILE><LINE>1003</LINE></OW_PRESENCE> <OW_PRESENCE><FILE>main.asm</FILE><LINE>1032</LINE></OW_PRESENCE>
<OW_SEND_BYTE><FILE>main.asm</FILE><LINE>1030</LINE></OW_SEND_BYTE> <OW_SEND_BYTE><FILE>main.asm</FILE><LINE>1059</LINE></OW_SEND_BYTE>
<OW_RD_BYTE><FILE>main.asm</FILE><LINE>1061</LINE></OW_RD_BYTE> <OW_RD_BYTE><FILE>main.asm</FILE><LINE>1090</LINE></OW_RD_BYTE>
<_TEMP_RD_EXIT><FILE>main.asm</FILE><LINE>690</LINE></_TEMP_RD_EXIT> <_TEMP_RD_EXIT><FILE>main.asm</FILE><LINE>719</LINE></_TEMP_RD_EXIT>
<_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>639</LINE></_TEMP_RD_TO_UNSIGNED> <_TEMP_RD_TO_UNSIGNED><FILE>main.asm</FILE><LINE>668</LINE></_TEMP_RD_TO_UNSIGNED>
<_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>652</LINE></_TEMP_RD_CONTINUE> <_TEMP_RD_CONTINUE><FILE>main.asm</FILE><LINE>681</LINE></_TEMP_RD_CONTINUE>
<_TEMP_RD_END><FILE>main.asm</FILE><LINE>662</LINE></_TEMP_RD_END> <_TEMP_RD_END><FILE>main.asm</FILE><LINE>691</LINE></_TEMP_RD_END>
<_TEMP_CONV_EXIT><FILE>main.asm</FILE><LINE>713</LINE></_TEMP_CONV_EXIT> <_TEMP_CONV_EXIT><FILE>main.asm</FILE><LINE>742</LINE></_TEMP_CONV_EXIT>
<_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>739</LINE></_USI_TRANSMIT_LOOP> <_USI_TRANSMIT_LOOP><FILE>main.asm</FILE><LINE>768</LINE></_USI_TRANSMIT_LOOP>
<BUTTON_PROCESS><FILE>main.asm</FILE><LINE>754</LINE></BUTTON_PROCESS> <BUTTON_PROCESS><FILE>main.asm</FILE><LINE>783</LINE></BUTTON_PROCESS>
<_SW_CHECK_ON_0><FILE>main.asm</FILE><LINE>756</LINE></_SW_CHECK_ON_0> <_SW_CHECK_ON_0><FILE>main.asm</FILE><LINE>785</LINE></_SW_CHECK_ON_0>
<_SW_SET_0><FILE>main.asm</FILE><LINE>760</LINE></_SW_SET_0> <_SW_SET_0><FILE>main.asm</FILE><LINE>789</LINE></_SW_SET_0>
<_SW_CHECK_ON_1><FILE>main.asm</FILE><LINE>787</LINE></_SW_CHECK_ON_1> <_SW_CHECK_ON_1><FILE>main.asm</FILE><LINE>816</LINE></_SW_CHECK_ON_1>
<_SW_SET_FROM_0_TO_1><FILE>main.asm</FILE><LINE>765</LINE></_SW_SET_FROM_0_TO_1> <_SW_SET_FROM_0_TO_1><FILE>main.asm</FILE><LINE>794</LINE></_SW_SET_FROM_0_TO_1>
<DEBOUNCE_SW><FILE>main.asm</FILE><LINE>1192</LINE></DEBOUNCE_SW> <DEBOUNCE_SW><FILE>main.asm</FILE><LINE>1221</LINE></DEBOUNCE_SW>
<_SAVE_SETTINGS><FILE>main.asm</FILE><LINE>775</LINE></_SAVE_SETTINGS> <_SAVE_SETTINGS><FILE>main.asm</FILE><LINE>804</LINE></_SAVE_SETTINGS>
<_SW_SET_1><FILE>main.asm</FILE><LINE>791</LINE></_SW_SET_1> <_SW_SET_1><FILE>main.asm</FILE><LINE>820</LINE></_SW_SET_1>
<_BUTTON_PROCESS_END><FILE>main.asm</FILE><LINE>800</LINE></_BUTTON_PROCESS_END> <_BUTTON_PROCESS_END><FILE>main.asm</FILE><LINE>829</LINE></_BUTTON_PROCESS_END>
<_SW_SET_FROM_1_TO_0><FILE>main.asm</FILE><LINE>796</LINE></_SW_SET_FROM_1_TO_0> <_SW_SET_FROM_1_TO_0><FILE>main.asm</FILE><LINE>825</LINE></_SW_SET_FROM_1_TO_0>
<_INTO><FILE>main.asm</FILE><LINE>816</LINE></_INTO> <_INTO><FILE>main.asm</FILE><LINE>845</LINE></_INTO>
<_REPROGRAM_SETTINGS_LOOP><FILE>main.asm</FILE><LINE>821</LINE></_REPROGRAM_SETTINGS_LOOP> <_REPROGRAM_SETTINGS_LOOP><FILE>main.asm</FILE><LINE>850</LINE></_REPROGRAM_SETTINGS_LOOP>
<_CHECK_STEP><FILE>main.asm</FILE><LINE>823</LINE></_CHECK_STEP> <_CHECK_STEP><FILE>main.asm</FILE><LINE>852</LINE></_CHECK_STEP>
<_STEP_1><FILE>main.asm</FILE><LINE>833</LINE></_STEP_1> <_STEP_1><FILE>main.asm</FILE><LINE>862</LINE></_STEP_1>
<_STEP_2><FILE>main.asm</FILE><LINE>877</LINE></_STEP_2> <_STEP_2><FILE>main.asm</FILE><LINE>906</LINE></_STEP_2>
<_S3_JMP><FILE>main.asm</FILE><LINE>873</LINE></_S3_JMP> <_S3_JMP><FILE>main.asm</FILE><LINE>902</LINE></_S3_JMP>
<_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>991</LINE></_REPROGRAM_SETTINGS_END> <_REPROGRAM_SETTINGS_END><FILE>main.asm</FILE><LINE>1020</LINE></_REPROGRAM_SETTINGS_END>
<_S1_CHECK_PLUS><FILE>main.asm</FILE><LINE>835</LINE></_S1_CHECK_PLUS> <_S1_CHECK_PLUS><FILE>main.asm</FILE><LINE>864</LINE></_S1_CHECK_PLUS>
<_INCREASE_HYST><FILE>main.asm</FILE><LINE>843</LINE></_INCREASE_HYST> <_INCREASE_HYST><FILE>main.asm</FILE><LINE>872</LINE></_INCREASE_HYST>
<_S1_CHECK_MINUS><FILE>main.asm</FILE><LINE>839</LINE></_S1_CHECK_MINUS> <_S1_CHECK_MINUS><FILE>main.asm</FILE><LINE>868</LINE></_S1_CHECK_MINUS>
<_DECREASE_HYST><FILE>main.asm</FILE><LINE>851</LINE></_DECREASE_HYST> <_DECREASE_HYST><FILE>main.asm</FILE><LINE>880</LINE></_DECREASE_HYST>
<_SHOW_HYST><FILE>main.asm</FILE><LINE>858</LINE></_SHOW_HYST> <_SHOW_HYST><FILE>main.asm</FILE><LINE>887</LINE></_SHOW_HYST>
<_STEP_3><FILE>main.asm</FILE><LINE>950</LINE></_STEP_3> <_STEP_3><FILE>main.asm</FILE><LINE>979</LINE></_STEP_3>
<_S2_CHECK_PLUS><FILE>main.asm</FILE><LINE>879</LINE></_S2_CHECK_PLUS> <_S2_CHECK_PLUS><FILE>main.asm</FILE><LINE>908</LINE></_S2_CHECK_PLUS>
<_INCREASE_TEMP><FILE>main.asm</FILE><LINE>887</LINE></_INCREASE_TEMP> <_INCREASE_TEMP><FILE>main.asm</FILE><LINE>916</LINE></_INCREASE_TEMP>
<_S2_CHECK_MINUS><FILE>main.asm</FILE><LINE>883</LINE></_S2_CHECK_MINUS> <_S2_CHECK_MINUS><FILE>main.asm</FILE><LINE>912</LINE></_S2_CHECK_MINUS>
<_DECREASE_TEMP><FILE>main.asm</FILE><LINE>902</LINE></_DECREASE_TEMP> <_DECREASE_TEMP><FILE>main.asm</FILE><LINE>931</LINE></_DECREASE_TEMP>
<_SHOW_TEMP><FILE>main.asm</FILE><LINE>915</LINE></_SHOW_TEMP> <_SHOW_TEMP><FILE>main.asm</FILE><LINE>944</LINE></_SHOW_TEMP>
<__DECREASE><FILE>main.asm</FILE><LINE>910</LINE></__DECREASE> <__DECREASE><FILE>main.asm</FILE><LINE>939</LINE></__DECREASE>
<_NEGATE_SET_TEMP><FILE>main.asm</FILE><LINE>928</LINE></_NEGATE_SET_TEMP> <_NEGATE_SET_TEMP><FILE>main.asm</FILE><LINE>957</LINE></_NEGATE_SET_TEMP>
<_DIVIDE_SET_TEMP><FILE>main.asm</FILE><LINE>932</LINE></_DIVIDE_SET_TEMP> <_DIVIDE_SET_TEMP><FILE>main.asm</FILE><LINE>961</LINE></_DIVIDE_SET_TEMP>
<_S3_CHECK_PLUS><FILE>main.asm</FILE><LINE>952</LINE></_S3_CHECK_PLUS> <_S3_CHECK_PLUS><FILE>main.asm</FILE><LINE>981</LINE></_S3_CHECK_PLUS>
<_SET_HEAT_MODE><FILE>main.asm</FILE><LINE>960</LINE></_SET_HEAT_MODE> <_SET_HEAT_MODE><FILE>main.asm</FILE><LINE>989</LINE></_SET_HEAT_MODE>
<_S3_CHECK_MINUS><FILE>main.asm</FILE><LINE>956</LINE></_S3_CHECK_MINUS> <_S3_CHECK_MINUS><FILE>main.asm</FILE><LINE>985</LINE></_S3_CHECK_MINUS>
<_SET_COOLING_MODE><FILE>main.asm</FILE><LINE>965</LINE></_SET_COOLING_MODE> <_SET_COOLING_MODE><FILE>main.asm</FILE><LINE>994</LINE></_SET_COOLING_MODE>
<_SHOW_MODE><FILE>main.asm</FILE><LINE>969</LINE></_SHOW_MODE> <_SHOW_MODE><FILE>main.asm</FILE><LINE>998</LINE></_SHOW_MODE>
<_SHOW_COOLING><FILE>main.asm</FILE><LINE>982</LINE></_SHOW_COOLING> <_SHOW_COOLING><FILE>main.asm</FILE><LINE>1011</LINE></_SHOW_COOLING>
<_SHOW_HEATING><FILE>main.asm</FILE><LINE>986</LINE></_SHOW_HEATING> <_SHOW_HEATING><FILE>main.asm</FILE><LINE>1015</LINE></_SHOW_HEATING>
<DELAY_LOOP_16><FILE>main.asm</FILE><LINE>1218</LINE></DELAY_LOOP_16> <DELAY_LOOP_16><FILE>main.asm</FILE><LINE>1247</LINE></DELAY_LOOP_16>
<OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>1019</LINE></OW_CHECK_PRESENCE> <OW_CHECK_PRESENCE><FILE>main.asm</FILE><LINE>1048</LINE></OW_CHECK_PRESENCE>
<_EXIT><FILE>main.asm</FILE><LINE>1025</LINE></_EXIT> <_EXIT><FILE>main.asm</FILE><LINE>1054</LINE></_EXIT>
<_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>1036</LINE></_OW_SEND_BYTE_LOOP> <_OW_SEND_BYTE_LOOP><FILE>main.asm</FILE><LINE>1065</LINE></_OW_SEND_BYTE_LOOP>
<_OW_SEND_0><FILE>main.asm</FILE><LINE>1040</LINE></_OW_SEND_0> <_OW_SEND_0><FILE>main.asm</FILE><LINE>1069</LINE></_OW_SEND_0>
<_OW_SEND_1><FILE>main.asm</FILE><LINE>1046</LINE></_OW_SEND_1> <_OW_SEND_1><FILE>main.asm</FILE><LINE>1075</LINE></_OW_SEND_1>
<_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>1051</LINE></_OW_SEND_BYTE_END> <_OW_SEND_BYTE_END><FILE>main.asm</FILE><LINE>1080</LINE></_OW_SEND_BYTE_END>
<_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>1067</LINE></_OW_RD_BYTE_LP> <_OW_RD_BYTE_LP><FILE>main.asm</FILE><LINE>1096</LINE></_OW_RD_BYTE_LP>
<DIV_LOOP><FILE>main.asm</FILE><LINE>1107</LINE></DIV_LOOP> <DIV_LOOP><FILE>main.asm</FILE><LINE>1136</LINE></DIV_LOOP>
<DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1235</LINE></DISPLAY_SYMBOLS> <DISPLAY_SYMBOLS><FILE>main.asm</FILE><LINE>1264</LINE></DISPLAY_SYMBOLS>
<_DOT_ON><FILE>main.asm</FILE><LINE>1148</LINE></_DOT_ON> <_DOT_ON><FILE>main.asm</FILE><LINE>1177</LINE></_DOT_ON>
<_DISPLAY_DECODER_EXIT><FILE>main.asm</FILE><LINE>1169</LINE></_DISPLAY_DECODER_EXIT> <_DISPLAY_DECODER_EXIT><FILE>main.asm</FILE><LINE>1198</LINE></_DISPLAY_DECODER_EXIT>
<_DOT_OFF><FILE>main.asm</FILE><LINE>1160</LINE></_DOT_OFF> <_DOT_OFF><FILE>main.asm</FILE><LINE>1189</LINE></_DOT_OFF>
<_ERR_DOT_OFF><FILE>main.asm</FILE><LINE>1166</LINE></_ERR_DOT_OFF> <_ERR_DOT_OFF><FILE>main.asm</FILE><LINE>1195</LINE></_ERR_DOT_OFF>
<_loop_2><FILE>main.asm</FILE><LINE>1198</LINE></_loop_2> <_loop_2><FILE>main.asm</FILE><LINE>1227</LINE></_loop_2>
<_loop_0><FILE>main.asm</FILE><LINE>1200</LINE></_loop_0> <_loop_0><FILE>main.asm</FILE><LINE>1229</LINE></_loop_0>
<_dec_0><FILE>main.asm</FILE><LINE>1202</LINE></_dec_0> <_dec_0><FILE>main.asm</FILE><LINE>1231</LINE></_dec_0>
<_loop_1><FILE>main.asm</FILE><LINE>1205</LINE></_loop_1> <_loop_1><FILE>main.asm</FILE><LINE>1234</LINE></_loop_1>
<_loop_3><FILE>main.asm</FILE><LINE>1208</LINE></_loop_3> <_loop_3><FILE>main.asm</FILE><LINE>1237</LINE></_loop_3>
<INFO><FILE>main.asm</FILE><LINE>1253</LINE></INFO> <INFO><FILE>main.asm</FILE><LINE>1282</LINE></INFO>
</LABELS> </LABELS>
</ASSEMBLER_INFO> </ASSEMBLER_INFO>

View File

@ -334,13 +334,42 @@ TEMP_SEND_UART:
mov r5, r16 mov r5, r16
rcall UART_WR_BYTE rcall UART_WR_BYTE
; гистерезис
lds r16, SETTING_HYST
mov r5, r16
rcall UART_WR_BYTE
; уставка HIGH
lds r16, SETTING_TEMP_H
mov r5, r16
rcall UART_WR_BYTE
; уставка LOW
lds r16, SETTING_TEMP_L
mov r5, r16
rcall UART_WR_BYTE
; режим работы
lds r16, SETTING_MODE
mov r5, r16
rcall UART_WR_BYTE
; состояние МК
lds r16, MCU_STATE
mov r5, r16
rcall UART_WR_BYTE
; статусный регистр МК
in r5, SREG
rcall UART_WR_BYTE
ldi r16, 0x04 ; EOT (End Of Transmission) ldi r16, 0x04 ; EOT (End Of Transmission)
mov r5, r16 mov r5, r16
rcall UART_WR_BYTE rcall UART_WR_BYTE
clr r16 clr r16
mov r5, r16 mov r5, r16
ldi r17, 12 ldi r17, 6
_TEMP_SEND_UART_L: _TEMP_SEND_UART_L:
rcall UART_WR_BYTE rcall UART_WR_BYTE
dec r17 dec r17

183
software/index.html Normal file
View File

@ -0,0 +1,183 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Thermostat - Terminal View</title>
<style>
body {
font-family: Helvetica;
}
#app {
max-width: 900px;
margin: 0 auto;
}
p {
font-size: 18px;
}
</style>
</head>
<body>
<div id="app">
<h1>Terminal View</h1>
<p>
Github URL:
<a
href="https://github.com/sergeyyarkov/attiny2313a_thermostat/tree/develop"
target="_blank"
>
sergeyyarkov/attiny2313a_thermostat
</a>
</p>
<div>
<button id="connect_btn">Connect</button>
<button id="disconnect_btn">Disconnect</button>
</div>
<div style="margin-top: 1rem">
<h2>Data</h2>
<p>
Temperature: <span id="temp">--°C</span><br />
Relay Status: <span id="relay">Off</span><br />
</p>
<hr />
<h2>Parameters</h2>
<p>
Hysteresis: <span id="hyst_setting">--°C</span> <br />
Temperature: <span id="temp_setting">--°C</span> <br />
Mode: <span id="mode_setting">--</span><br />
Min: <span id="min">--°C</span><br />
Max: <span id="max">--°C</span>
</p>
</div>
</div>
<script>
var EOT = '\u0004';
class SerialPortHandler {
constructor(options, onConnect, onDisconnect) {
this.encoder = new TextEncoder();
this.decoder = new TextDecoder();
this.onConnect = onConnect;
this.onDisconnect = onDisconnect;
this.options = options;
this.port = null;
this.isOpened = false;
this.#setupListeners();
}
async open() {
try {
const port = await navigator.serial.requestPort();
await port.open(this.options);
this.port = port;
this.isOpened = true;
return this.port.getInfo();
} catch (error) {
console.error(error);
throw error;
}
}
async close() {
await this.port.close();
this.isOpened = false;
}
async read() {
while (this.port.readable) {
const reader = this.port.readable.getReader();
try {
while (true) {
const { value, done } = await reader.read();
const decoded = this.decoder.decode(value);
if (done || decoded.includes(EOT)) {
reader.releaseLock();
return value;
}
}
} catch (error) {
console.error(error);
throw error;
} finally {
reader.releaseLock();
}
}
}
#setupListeners() {
navigator.serial.addEventListener('connect', this.onConnect);
navigator.serial.addEventListener('disconnect', this.onDisconnect);
}
}
var $connectBtn = document.getElementById('connect_btn');
var $disconnectBtn = document.getElementById('disconnect_btn');
var $temp = document.getElementById('temp');
var $relay = document.getElementById('relay');
var $hystSetting = document.getElementById('hyst_setting');
var $tempSetting = document.getElementById('temp_setting');
var $modeSetting = document.getElementById('mode_setting');
var $min = document.getElementById('min');
var $max = document.getElementById('max');
var serialPort = new SerialPortHandler(
{ baudRate: 9600 },
() => console.log('Device connected.'),
() => console.log('Device disconnected.')
);
$connectBtn.addEventListener('click', async () => {
if (serialPort.isOpened) return;
const portInfo = await serialPort.open();
console.log('Port opened: ', portInfo);
});
$disconnectBtn.addEventListener('click', async () => {
await serialPort.close();
console.log('Port closed');
});
setInterval(async () => {
if (serialPort.isOpened) {
var packet = await serialPort.read();
if (packet.length !== 16) return;
var data = {
temperature: (parseInt(`${packet[0]}${packet[1]}`) / 10).toFixed(1),
isRelayClosed: packet[2],
parameters: {
hysteresis: packet[3] / 10,
temp: (packet[4] << 8) | (packet[5] & 0x00ff),
mode: packet[6] >= 1 ? 'HEATING' : 'COOLING',
},
state: packet[7] == 1 ? 'PROGRAMMING' : packet[7] == '0' ? 'DEFAULT' : 'UNDEFINED',
sreg: packet[8],
};
/* convert to signed */
if (data.sreg & (1 << 6)) data.temperature = -data.temperature;
/* "1200" is max unsigned temperature */
if (data.parameters.temp > 1200) {
data.parameters.temp = -(((~data.parameters.temp & 0xff) + 1) / 10);
} else {
data.parameters.temp /= 10;
}
$temp.textContent = data.temperature + '°C';
$relay.textContent = data.isRelayClosed ? 'ON' : 'OFF';
$hystSetting.textContent = data.parameters.hysteresis + '°C';
$tempSetting.textContent = data.parameters.temp + '°C';
$modeSetting.textContent = data.parameters.mode;
$min.textContent = data.parameters.temp - data.parameters.hysteresis;
$max.textContent = data.parameters.temp + data.parameters.hysteresis;
}
}, 751);
</script>
</body>
</html>