📄 main.s
字号:
.dbline 208
xjmp L45
L46:
.dbline 209
; if((FLAG0&0x08)!=0&&KEY_SET!=5) return; // FLAG0.3=1或非童锁键退出
tst [_FLAG0],8
jz L48
cmp [_KEY_SET],5
jz L48
.dbline 209
xjmp L45
L48:
.dbline 210
; if((FLAG0&0x01)==0)
tst [_FLAG0],1
jnz L50
.dbline 211
; {
.dbline 212
; FLAG0|=0x01; // FLAG0.0=1
or [_FLAG0],1
.dbline 213
; if(KEY_SET==1) //*****工作/待机键*****
cmp [_KEY_SET],1
jnz L52
.dbline 214
; {
.dbline 215
; FLAG0&=0xDF; // FLAG0.5=0;
and [_FLAG0],-33
.dbline 216
; if(POWER_EN==0) POWER_EN=1;
cmp [_POWER_EN],0
jnz L54
.dbline 216
mov [_POWER_EN],1
xjmp L53
L54:
.dbline 217
; else POWER_EN=0;
mov [_POWER_EN],0
.dbline 218
; }
xjmp L53
L52:
.dbline 219
; else if(KEY_SET==2) //*****预约使用键*****
cmp [_KEY_SET],2
jnz L56
.dbline 220
; {
.dbline 222
;
; }
xjmp L57
L56:
.dbline 223
; else if(KEY_SET==3) //*****时钟/温度键*****
cmp [_KEY_SET],3
jnz L58
.dbline 224
; {
.dbline 226
;
; }
xjmp L59
L58:
.dbline 227
; else if(KEY_SET==4) //*****即时加热键*****
cmp [_KEY_SET],4
jnz L60
.dbline 228
; {
.dbline 230
;
; }
xjmp L61
L60:
.dbline 231
; else if(KEY_SET==5) //*****童锁键*****
cmp [_KEY_SET],5
jnz L62
.dbline 232
; {
.dbline 233
; FLAG0^=0x08; // FLAG0.3取反
xor [_FLAG0],8
.dbline 234
; }
L62:
L61:
L59:
L57:
L53:
.dbline 235
; }
L50:
.dbline 236
; KEY_SET=0;
mov [_KEY_SET],0
.dbline -2
.dbline 237
; }
L45:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_deal _delay_deal fV
_delay_deal::
.dbline -1
.dbline 245
;
;
; //*************************************
; //
; // 函数delay_deal()为:延时处理程序
; //
; void delay_deal()
; {
.dbline 246
; if((FLAG0&0x40)!=0) //*****闪烁显示500ms计时(FLAG0.6)*****
tst [_FLAG0],64
jz L65
.dbline 247
; {
.dbline 248
; T_FLASH_500MS++;
inc [_T_FLASH_500MS]
.dbline 249
; if(T_FLASH_500MS>=31)
cmp [_T_FLASH_500MS],31
jc L67
X7:
.dbline 250
; {
.dbline 251
; T_FLASH_500MS=0;
mov [_T_FLASH_500MS],0
.dbline 252
; FLAG0^=0x04; // FLAG0.2取反
xor [_FLAG0],4
.dbline 253
; }
L67:
.dbline 254
; }
L65:
.dbline 256
;
; if((FLAG0&0x80)==0) //*****时钟运行(FLAG0.7==0)*****
tst [_FLAG0],-128
jnz L69
.dbline 257
; {
.dbline 258
; T_CLOCK_500MS++; //***时钟小数点闪烁500ms计时***
inc [_T_CLOCK_500MS]
.dbline 259
; if(T_CLOCK_500MS>=31)
cmp [_T_CLOCK_500MS],31
jc L70
X8:
.dbline 260
; {
.dbline 261
; T_CLOCK_500MS=0;
mov [_T_CLOCK_500MS],0
.dbline 262
; FLAG1^=0x01; // FLAG1.0取反
xor [_FLAG1],1
mov A,[_FLAG1]
.dbline 263
; }
.dbline 264
; }
xjmp L70
L69:
.dbline 266
; else
; {
.dbline 267
; FLAG1|=0x01; // FLAG1.0=1
or [_FLAG1],1
.dbline 268
; T_CLOCK_500MS=0;
mov [_T_CLOCK_500MS],0
.dbline 269
; }
L70:
.dbline 271
;
; if((FLAG0&0x20)!=0) //*****即时加热4小时计时(FLAG0.5==1)*****
tst [_FLAG0],32
jz L73
.dbline 272
; {
.dbline 273
; if(T_HEAT_UP_1M>=60)
cmp [_T_HEAT_UP_1M],60
jc L74
X9:
.dbline 274
; {
.dbline 275
; T_HEAT_UP_1M=0;
mov [_T_HEAT_UP_1M],0
.dbline 276
; T_HEAT_UP_4H++;
inc [_T_HEAT_UP_4H]
.dbline 277
; if(T_HEAT_UP_4H>=240)
cmp [_T_HEAT_UP_4H],-16
jc L74
X10:
.dbline 278
; {
.dbline 279
; T_HEAT_UP_4H=0;
mov [_T_HEAT_UP_4H],0
.dbline 280
; FLAG0&=0xDF; // FLAG0.5=0;
and [_FLAG0],-33
.dbline 281
; }
.dbline 282
; }
.dbline 283
; }
xjmp L74
L73:
.dbline 285
.dbline 286
mov [_T_HEAT_UP_1M],0
.dbline 287
mov [_T_HEAT_UP_4H],0
.dbline 288
L74:
.dbline -2
.dbline 289
; else
; {
; T_HEAT_UP_1M=0;
; T_HEAT_UP_4H=0;
; }
; }
L64:
.dbline 0 ; func end
ret
.dbend
.dbfunc e main _main fV
_main::
.dbline -1
.dbline 297
;
;
; //*************************************
; //
; // 函数main()为:主程序
; //
; void main()
; {
.dbline 299
; // Insert your main routine code here.
; initializtion_deal();
xcall _initializtion_deal
.dbline 300
; M8C_EnableGInt; // Enable Global Interrupts
or F, 01h
xjmp L81
X11:
.dbline 302
; while(1)
; {
L83:
.dbline 304
.dbline 305
mov [_T_10MS],0
.dbline 306
mov REG[0xe3],0
.dbline 308
xcall _ad_conv_deal
.dbline 309
xcall _key_scan_deal
.dbline 310
xcall _key_deal
.dbline 311
L84:
.dbline 303
cmp [_T_10MS],40
jnc L83
X13:
.dbline 312
L81:
.dbline 301
xjmp L84
X12:
.dbline -2
.dbline 313
; while(T_10MS>=40) // 10ms判断
; {
; T_10MS=0;
; M8C_ClearWDT; // Watchdog clear
;
; ad_conv_deal(); // AD采样处理函数
; key_scan_deal(); // 按键扫描处理函数
; key_deal(); // 按键处理函数
; }
; }
; }
L79:
.dbline 0 ; func end
jmp .
.dbend
.dbfunc e Timer8_ISR _Timer8_ISR fV
_Timer8_ISR::
.dbline -1
.dbline 321
;
;
; //*************************************
; //
; // 函数Timer8_ISR()为:Timer8中断处理程序
; //
; void Timer8_ISR() // 250us记时
; {
.dbline 322
; T_10MS++;
inc [_T_10MS]
.dbline -2
.dbline 323
; }
L86:
.dbline 0 ; func end
reti
.dbend
.area bss(ram, con, rel)
.dbfile ./main.c
_T_RISE_6S::
.blkb 1
.dbsym e T_RISE_6S _T_RISE_6S c
_ROOM_RISE::
.blkb 1
.dbsym e ROOM_RISE _ROOM_RISE c
_CREEPAGE_COU::
.blkb 1
.dbsym e CREEPAGE_COU _CREEPAGE_COU c
_T_CHECK_500MS::
.blkb 1
.dbsym e T_CHECK_500MS _T_CHECK_500MS c
_KEY_CREEPAGE::
.blkb 1
.dbsym e KEY_CREEPAGE _KEY_CREEPAGE c
_POWER_EN::
.blkb 1
.dbsym e POWER_EN _POWER_EN c
_BESPEAK_1_TMP_SET::
.blkb 1
.dbsym e BESPEAK_1_TMP_SET _BESPEAK_1_TMP_SET c
_BESPEAK_1_TMP_NEW::
.blkb 1
.dbsym e BESPEAK_1_TMP_NEW _BESPEAK_1_TMP_NEW c
_BESPEAK_UP_BIT::
.blkb 1
.dbsym e BESPEAK_UP_BIT _BESPEAK_UP_BIT c
_BESPEAK_BIT::
.blkb 1
.dbsym e BESPEAK_BIT _BESPEAK_BIT c
_BESPEAK_DISP::
.blkb 1
.dbsym e BESPEAK_DISP _BESPEAK_DISP c
_ON_FUNCTION::
.blkb 1
.dbsym e ON_FUNCTION _ON_FUNCTION c
_OFF_FUNCTION::
.blkb 1
.dbsym e OFF_FUNCTION _OFF_FUNCTION c
_T_KEY_60S::
.blkb 1
.dbsym e T_KEY_60S _T_KEY_60S c
_KEY_SERIES_COU::
.blkb 1
.dbsym e KEY_SERIES_COU _KEY_SERIES_COU c
_KEY_SERIES_NEW::
.blkb 1
.dbsym e KEY_SERIES_NEW _KEY_SERIES_NEW c
_KEY_SET::
.blkb 1
.dbsym e KEY_SET _KEY_SET c
_T_ON_OFF_4S::
.blkb 1
.dbsym e T_ON_OFF_4S _T_ON_OFF_4S c
_KEY_NEW::
.blkb 1
.dbsym e KEY_NEW _KEY_NEW c
_KEY_COU::
.blkb 1
.dbsym e KEY_COU _KEY_COU c
_KEY_CODE::
.blkb 1
.dbsym e KEY_CODE _KEY_CODE c
_DISP_DATA_6::
.blkb 1
.dbsym e DISP_DATA_6 _DISP_DATA_6 c
_DISP_DATA_5::
.blkb 1
.dbsym e DISP_DATA_5 _DISP_DATA_5 c
_DISP_DATA_4::
.blkb 1
.dbsym e DISP_DATA_4 _DISP_DATA_4 c
_DISP_DATA_3::
.blkb 1
.dbsym e DISP_DATA_3 _DISP_DATA_3 c
_DISP_DATA_2::
.blkb 1
.dbsym e DISP_DATA_2 _DISP_DATA_2 c
_DISP_DATA_1::
.blkb 1
.dbsym e DISP_DATA_1 _DISP_DATA_1 c
_DISP_BIT::
.blkb 1
.dbsym e DISP_BIT _DISP_BIT c
_ERROR_NEW::
.blkb 1
.dbsym e ERROR_NEW _ERROR_NEW c
_SET_TMP_SET::
.blkb 1
.dbsym e SET_TMP_SET _SET_TMP_SET c
_SET_TMP_NEW::
.blkb 1
.dbsym e SET_TMP_NEW _SET_TMP_NEW c
_AD_ROOM_TMP::
.blkb 1
.dbsym e AD_ROOM_TMP _AD_ROOM_TMP c
_AD_COUNT::
.blkb 1
.dbsym e AD_COUNT _AD_COUNT c
_BUZZ_COU::
.blkb 1
.dbsym e BUZZ_COU _BUZZ_COU c
_BUZZ_NEW::
.blkb 1
.dbsym e BUZZ_NEW _BUZZ_NEW c
_BUZZ_EN::
.blkb 1
.dbsym e BUZZ_EN _BUZZ_EN c
_T_50MS::
.blkb 1
.dbsym e T_50MS _T_50MS c
_T_HEAT_UP_4H::
.blkb 1
.dbsym e T_HEAT_UP_4H _T_HEAT_UP_4H c
_T_HEAT_UP_1M::
.blkb 1
.dbsym e T_HEAT_UP_1M _T_HEAT_UP_1M c
_T_CLOCK_500MS::
.blkb 1
.dbsym e T_CLOCK_500MS _T_CLOCK_500MS c
_T_FLASH_500MS::
.blkb 1
.dbsym e T_FLASH_500MS _T_FLASH_500MS c
_T_SLEEP_1M::
.blkb 1
.dbsym e T_SLEEP_1M _T_SLEEP_1M c
_T_10S::
.blkb 1
.dbsym e T_10S _T_10S c
_T_3S::
.blkb 1
.dbsym e T_3S _T_3S c
_T_1S::
.blkb 1
.dbsym e T_1S _T_1S c
_T_10MS::
.blkb 1
.dbsym e T_10MS _T_10MS c
_FLAG2::
.blkb 1
.dbsym e FLAG2 _FLAG2 c
_FLAG1::
.blkb 1
.dbsym e FLAG1 _FLAG1 c
_FLAG0::
.blkb 1
.dbsym e FLAG0 _FLAG0 c
_cTEMP_L::
.blkb 1
.dbsym e cTEMP_L _cTEMP_L c
_cTEMP_H::
.blkb 1
.dbsym e cTEMP_H _cTEMP_H c
_cTEMP::
.blkb 1
.dbsym e cTEMP _cTEMP c
_lTEMP::
.blkb 4
.dbsym e lTEMP _lTEMP l
_AD_VALUE::
.blkb 16
.dbsym e AD_VALUE _AD_VALUE A[16:8]i
_BESPEAK_1_TIME_SET::
.blkb 2
.dbsym e BESPEAK_1_TIME_SET _BESPEAK_1_TIME_SET i
_BESPEAK_1_TIME_NEW::
.blkb 2
.dbsym e BESPEAK_1_TIME_NEW _BESPEAK_1_TIME_NEW i
_CLOCK_DATA_SET::
.blkb 2
.dbsym e CLOCK_DATA_SET _CLOCK_DATA_SET i
_CLOCK_DATA_NEW::
.blkb 2
.dbsym e CLOCK_DATA_NEW _CLOCK_DATA_NEW i
_iTEMP::
.blkb 2
.dbsym e iTEMP _iTEMP i
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -