📄 main.lis
字号:
0104 7613 inc [_KEY_COU]
0106 .dbline 155
0106 ; if(KEY_COU>=2)
0106 3C1302 cmp [_KEY_COU],2
0109 C06F jc L28
010B X2:
010B .dbline 156
010B ; {
010B .dbline 157
010B ; KEY_COU=5;
010B 551305 mov [_KEY_COU],5
010E .dbline 158
010E ; if(KEY_CODE==0x01)
010E 3C1401 cmp [_KEY_CODE],1
0111 B013 jnz L31
0113 .dbline 159
0113 ; {
0113 .dbline 160
0113 ; KEY_NEW=1; // 工作/待机键
0113 551201 mov [_KEY_NEW],1
0116 .dbline 161
0116 ; T_ON_OFF_4S++;
0116 7611 inc [_T_ON_OFF_4S]
0118 .dbline 162
0118 ; if(T_ON_OFF_4S>=250)
0118 3C11FA cmp [_T_ON_OFF_4S],-6
011B C05D jc L28
011D X3:
011D .dbline 163
011D ; {
011D .dbline 164
011D ; T_ON_OFF_4S=250;
011D 5511FA mov [_T_ON_OFF_4S],-6
0120 .dbline 165
0120 ; KEY_SET=5; // 童锁键,即按下工作/待机键>4s
0120 551005 mov [_KEY_SET],5
0123 .dbline 166
0123 ; }
0123 .dbline 167
0123 ; }
0123 8055 xjmp L28
0125 L31:
0125 .dbline 168
0125 ; else if(KEY_CODE==0x02) KEY_NEW=2; // 预约使用键
0125 3C1402 cmp [_KEY_CODE],2
0128 B006 jnz L35
012A .dbline 168
012A 551202 mov [_KEY_NEW],2
012D 804B xjmp L28
012F L35:
012F .dbline 169
012F ; else if(KEY_CODE==0x04)
012F 3C1404 cmp [_KEY_CODE],4
0132 B00E jnz L37
0134 .dbline 170
0134 ; {
0134 .dbline 171
0134 ; KEY_NEW=3; // 时钟/温度键
0134 551203 mov [_KEY_NEW],3
0137 .dbline 172
0137 ; if(KEY_SERIES_NEW==0)
0137 3C0F00 cmp [_KEY_SERIES_NEW],0
013A B03E jnz L28
013C .dbline 173
013C ; {
013C .dbline 174
013C ; KEY_SERIES_NEW=1;
013C 550F01 mov [_KEY_SERIES_NEW],1
013F .dbline 175
013F ; }
013F .dbline 176
013F ; }
013F 8039 xjmp L28
0141 L37:
0141 .dbline 177
0141 ; else if(KEY_CODE==0x08) KEY_NEW=4; // 即时加热键
0141 3C1408 cmp [_KEY_CODE],8
0144 B006 jnz L41
0146 .dbline 177
0146 551204 mov [_KEY_NEW],4
0149 802F xjmp L28
014B L41:
014B .dbline 178
014B ; else KEY_NEW=0;
014B 551200 mov [_KEY_NEW],0
014E .dbline 179
014E ; }
014E .dbline 180
014E ; }
014E 802A xjmp L28
0150 L27:
0150 .dbline 182
0150 ; else //***无键按下***
0150 ; {
0150 .dbline 183
0150 ; if(T_ON_OFF_4S<250&&KEY_COU>=5&&KEY_SERIES_NEW<2)
0150 3C11FA cmp [_T_ON_OFF_4S],-6
0153 D010 jnc L43
0155 X4:
0155 3C1305 cmp [_KEY_COU],5
0158 C00B jc L43
015A X5:
015A 3C0F02 cmp [_KEY_SERIES_NEW],2
015D D006 jnc L43
015F X6:
015F .dbline 184
015F ; {
015F .dbline 185
015F ; KEY_SET=KEY_NEW; // 不是童锁键,并且其它按键有效,在释放时工作
015F 5F1012 mov [_KEY_SET],[_KEY_NEW]
0162 .dbline 186
0162 ; }
0162 8004 xjmp L44
0164 L43:
0164 .dbline 187
0164 ; else KEY_SET=0;
0164 551000 mov [_KEY_SET],0
0167 L44:
0167 .dbline 188
0167 ; KEY_COU=0;
0167 551300 mov [_KEY_COU],0
016A .dbline 189
016A ; KEY_NEW=0;
016A 551200 mov [_KEY_NEW],0
016D .dbline 190
016D ; T_ON_OFF_4S=0;
016D 551100 mov [_T_ON_OFF_4S],0
0170 .dbline 191
0170 ; FLAG0&=0xFC; // FLAG0.0/FLAG0.1=0
0170 2630FC and [_FLAG0],-4
0173 .dbline 192
0173 ; KEY_SERIES_NEW=0;
0173 550F00 mov [_KEY_SERIES_NEW],0
0176 .dbline 193
0176 ; KEY_SERIES_COU=0;
0176 550E00 mov [_KEY_SERIES_COU],0
0179 .dbline 194
0179 ; }
0179 L28:
0179 .dbline 197
0179 ; //PRT0GS=0;
0179 ; //PRT0DM2=0x01;
0179 ; PRT0DM1=0x01;
0179 7110 or F,0x10 ; iopage = 1
017B 620101 mov REG[0x1],1
017E .dbline 198
017E ; PRT0DM0=0xFE; // 将P0.2/P0.4/P0.6/P0.7置为输出口
017E 6200FE mov REG[ 0],-2
0181 70EF and F,0xEF ; iopage = 0
0183 .dbline -2
0183 .dbline 199
0183 ; }
0183 L15:
0183 .dbline 0 ; func end
0183 7F ret
0184 .dbend
0184 .dbfunc e key_deal _key_deal fV
0184 _key_deal::
0184 .dbline -1
0184 .dbline 207
0184 ;
0184 ;
0184 ; //*************************************
0184 ; //
0184 ; // 函数key_deal()为:按键处理子程序
0184 ; //
0184 ; void key_deal()
0184 ; {
0184 .dbline 208
0184 ; if(KEY_SET==0) return;
0184 3C1000 cmp [_KEY_SET],0
0187 B003 jnz L46
0189 .dbline 208
0189 804C xjmp L45
018B L46:
018B .dbline 209
018B ; if((FLAG0&0x08)!=0&&KEY_SET!=5) return; // FLAG0.3=1或非童锁键退出
018B 473008 tst [_FLAG0],8
018E A008 jz L48
0190 3C1005 cmp [_KEY_SET],5
0193 A003 jz L48
0195 .dbline 209
0195 8040 xjmp L45
0197 L48:
0197 .dbline 210
0197 ; if((FLAG0&0x01)==0)
0197 473001 tst [_FLAG0],1
019A B038 jnz L50
019C .dbline 211
019C ; {
019C .dbline 212
019C ; FLAG0|=0x01; // FLAG0.0=1
019C 2E3001 or [_FLAG0],1
019F .dbline 213
019F ; if(KEY_SET==1) //*****工作/待机键*****
019F 3C1001 cmp [_KEY_SET],1
01A2 B013 jnz L52
01A4 .dbline 214
01A4 ; {
01A4 .dbline 215
01A4 ; FLAG0&=0xDF; // FLAG0.5=0;
01A4 2630DF and [_FLAG0],-33
01A7 .dbline 216
01A7 ; if(POWER_EN==0) POWER_EN=1;
01A7 3C0500 cmp [_POWER_EN],0
01AA B006 jnz L54
01AC .dbline 216
01AC 550501 mov [_POWER_EN],1
01AF 8023 xjmp L53
01B1 L54:
01B1 .dbline 217
01B1 ; else POWER_EN=0;
01B1 550500 mov [_POWER_EN],0
01B4 .dbline 218
01B4 ; }
01B4 801E xjmp L53
01B6 L52:
01B6 .dbline 219
01B6 ; else if(KEY_SET==2) //*****预约使用键*****
01B6 3C1002 cmp [_KEY_SET],2
01B9 B003 jnz L56
01BB .dbline 220
01BB ; {
01BB .dbline 222
01BB ;
01BB ; }
01BB 8017 xjmp L57
01BD L56:
01BD .dbline 223
01BD ; else if(KEY_SET==3) //*****时钟/温度键*****
01BD 3C1003 cmp [_KEY_SET],3
01C0 B003 jnz L58
01C2 .dbline 224
01C2 ; {
01C2 .dbline 226
01C2 ;
01C2 ; }
01C2 8010 xjmp L59
01C4 L58:
01C4 .dbline 227
01C4 ; else if(KEY_SET==4) //*****即时加热键*****
01C4 3C1004 cmp [_KEY_SET],4
01C7 B003 jnz L60
01C9 .dbline 228
01C9 ; {
01C9 .dbline 230
01C9 ;
01C9 ; }
01C9 8009 xjmp L61
01CB L60:
01CB .dbline 231
01CB ; else if(KEY_SET==5) //*****童锁键*****
01CB 3C1005 cmp [_KEY_SET],5
01CE B004 jnz L62
01D0 .dbline 232
01D0 ; {
01D0 .dbline 233
01D0 ; FLAG0^=0x08; // FLAG0.3取反
01D0 363008 xor [_FLAG0],8
01D3 .dbline 234
01D3 ; }
01D3 L62:
01D3 L61:
01D3 L59:
01D3 L57:
01D3 L53:
01D3 .dbline 235
01D3 ; }
01D3 L50:
01D3 .dbline 236
01D3 ; KEY_SET=0;
01D3 551000 mov [_KEY_SET],0
01D6 .dbline -2
01D6 .dbline 237
01D6 ; }
01D6 L45:
01D6 .dbline 0 ; func end
01D6 7F ret
01D7 .dbend
01D7 .dbfunc e delay_deal _delay_deal fV
01D7 _delay_deal::
01D7 .dbline -1
01D7 .dbline 245
01D7 ;
01D7 ;
01D7 ; //*************************************
01D7 ; //
01D7 ; // 函数delay_deal()为:延时处理程序
01D7 ; //
01D7 ; void delay_deal()
01D7 ; {
01D7 .dbline 246
01D7 ; if((FLAG0&0x40)!=0) //*****闪烁显示500ms计时(FLAG0.6)*****
01D7 473040 tst [_FLAG0],64
01DA A00E jz L65
01DC .dbline 247
01DC ; {
01DC .dbline 248
01DC ; T_FLASH_500MS++;
01DC 7628 inc [_T_FLASH_500MS]
01DE .dbline 249
01DE ; if(T_FLASH_500MS>=31)
01DE 3C281F cmp [_T_FLASH_500MS],31
01E1 C007 jc L67
01E3 X7:
01E3 .dbline 250
01E3 ; {
01E3 .dbline 251
01E3 ; T_FLASH_500MS=0;
01E3 552800 mov [_T_FLASH_500MS],0
01E6 .dbline 252
01E6 ; FLAG0^=0x04; // FLAG0.2取反
01E6 363004 xor [_FLAG0],4
01E9 .dbline 253
01E9 ; }
01E9 L67:
01E9 .dbline 254
01E9 ; }
01E9 L65:
01E9 .dbline 256
01E9 ;
01E9 ; if((FLAG0&0x80)==0) //*****时钟运行(FLAG0.7==0)*****
01E9 473080 tst [_FLAG0],-128
01EC B012 jnz L69
01EE .dbline 257
01EE ; {
01EE .dbline 258
01EE ; T_CLOCK_500MS++; //***时钟小数点闪烁500ms计时***
01EE 7627 inc [_T_CLOCK_500MS]
01F0 .dbline 259
01F0 ; if(T_CLOCK_500MS>=31)
01F0 3C271F cmp [_T_CLOCK_500MS],31
01F3 C011 jc L70
01F5 X8:
01F5 .dbline 260
01F5 ; {
01F5 .dbline 261
01F5 ; T_CLOCK_500MS=0;
01F5 552700 mov [_T_CLOCK_500MS],0
01F8 .dbline 262
01F8 ; FLAG1^=0x01; // FLAG1.0取反
01F8 362F01 xor [_FLAG1],1
01FB 512F mov A,[_FLAG1]
01FD .dbline 263
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -