📄 key.s
字号:
.dbline 199
; keycode=PINB&0xbc;
in R20,0x16
andi R20,188
L130:
.dbline 200
L131:
.dbline 200
; while((PINB&0Xbc)!=0Xbc);
in R24,0x16
andi R24,188
cpi R24,188
brne L130
.dbline 201
; }
L128:
.dbline 202
; return keycode;
mov R16,R20
.dbline -2
L124:
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r keycode 20 c
.dbend
.dbfunc e checkkey _checkkey fV
; key -> R20
.even
_checkkey::
xcall push_gset1
sbiw R28,1
.dbline -1
.dbline 206
; }
;
; void checkkey(void)
; {
.dbline 210
; //unsigned char i,hour,min,sec;
; unsigned char key;
;
; key=getkey();
xcall _getkey
mov R20,R16
.dbline 211
; if(key==enter)
cpi R16,116
breq X7
xjmp L134
X7:
.dbline 212
; {
.dbline 213
; if(entercount==0)
lds R2,_entercount
tst R2
breq X8
xjmp L136
X8:
.dbline 214
; {
.dbline 215
; Draw_NtoArab_rev(0x00,0x28,time_array[0]);
lds R2,_time_array
lds R3,_time_array+1
std y+0,R2
ldi R18,40
clr R16
xcall _Draw_NtoArab_rev
.dbline 216
; Draw_NtoArab_rev(0x00,0x30,time_array[1]);
lds R2,_time_array+2
lds R3,_time_array+2+1
std y+0,R2
ldi R18,48
clr R16
xcall _Draw_NtoArab_rev
xjmp L140
L139:
.dbline 218
; while(1)
; {
.dbline 219
; key=getkeylock();
xcall _getkeylock
mov R20,R16
.dbline 220
; if(key==enter)
cpi R16,116
breq X9
xjmp L142
X9:
.dbline 221
; {
.dbline 222
; hh=(time_array[0]<<4)|time_array[1];
lds R2,_time_array+2
lds R3,_time_array+2+1
lds R4,_time_array
lds R5,_time_array+1
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
or R4,R2
or R5,R3
sts _hh,R4
.dbline 223
; mm=(time_array[2]<<4)|time_array[3];
lds R2,_time_array+6
lds R3,_time_array+6+1
lds R4,_time_array+4
lds R5,_time_array+4+1
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
lsl R4
rol R5
or R4,R2
or R5,R3
sts _mm,R4
.dbline 224
; pDS1302_Write(mDS1302_CONTROL_Reg,0x00);
clr R18
ldi R16,142
xcall _pDS1302_Write
.dbline 225
; wait;
nop
nop
.dbline 226
; pDS1302_Write(mDS1302_HOUR_Reg,hh);
lds R18,_hh
ldi R16,132
xcall _pDS1302_Write
.dbline 227
; pDS1302_Write(mDS1302_MIN_Reg,mm);
lds R18,_mm
ldi R16,130
xcall _pDS1302_Write
.dbline 228
; pDS1302_Write(mDS1302_CONTROL_Reg,0x80);
ldi R18,128
ldi R16,142
xcall _pDS1302_Write
.dbline 229
; wait;
nop
nop
.dbline 230
; entercount++;
lds R24,_entercount
subi R24,255 ; addi 1
sts _entercount,R24
.dbline 231
; break;
xjmp L137
L142:
.dbline 233
; }
; else if(key==up)
cpi R20,240
brne L147
.dbline 234
; {
.dbline 235
; if(position1302==zuo)
lds R2,_position1302
tst R2
brne L149
.dbline 236
; inchour();
xcall _inchour
xjmp L148
L149:
.dbline 238
; else
; incmin();
xcall _incmin
.dbline 239
; }
xjmp L148
L147:
.dbline 240
; else if(key==down)
cpi R20,228
brne L151
.dbline 241
; {
.dbline 242
; if(position1302==zuo)
lds R2,_position1302
tst R2
brne L153
.dbline 243
; dechour();
xcall _dechour
xjmp L152
L153:
.dbline 245
; else
; decmin();
xcall _decmin
.dbline 246
; }
xjmp L152
L151:
.dbline 247
; else if(key==left)
cpi R20,212
brne L155
.dbline 248
; {
.dbline 249
; position1302=zuo;
clr R2
sts _position1302,R2
.dbline 250
; Draw_NtoArab_rev(0x00,0x28,time_array[0]);
lds R2,_time_array
lds R3,_time_array+1
std y+0,R2
ldi R18,40
clr R16
xcall _Draw_NtoArab_rev
.dbline 251
; Draw_NtoArab_rev(0x00,0x30,time_array[1]);
lds R2,_time_array+2
lds R3,_time_array+2+1
std y+0,R2
ldi R18,48
clr R16
xcall _Draw_NtoArab_rev
.dbline 252
; Draw_NtoArab(0x00,0x40,time_array[2]);
lds R2,_time_array+4
lds R3,_time_array+4+1
std y+0,R2
ldi R18,64
clr R16
xcall _Draw_NtoArab
.dbline 253
; Draw_NtoArab(0x00,0x48,time_array[3]);
lds R2,_time_array+6
lds R3,_time_array+6+1
std y+0,R2
ldi R18,72
clr R16
xcall _Draw_NtoArab
.dbline 254
; }
xjmp L156
L155:
.dbline 256
; else
; {
.dbline 257
; position1302=zhong;
ldi R24,1
sts _position1302,R24
.dbline 258
; Draw_NtoArab_rev(0x00,0x40,time_array[2]);
lds R2,_time_array+4
lds R3,_time_array+4+1
std y+0,R2
ldi R18,64
clr R16
xcall _Draw_NtoArab_rev
.dbline 259
; Draw_NtoArab_rev(0x00,0x48,time_array[3]);
lds R2,_time_array+6
lds R3,_time_array+6+1
std y+0,R2
ldi R18,72
clr R16
xcall _Draw_NtoArab_rev
.dbline 260
; Draw_NtoArab(0x00,0x28,time_array[0]);
lds R2,_time_array
lds R3,_time_array+1
std y+0,R2
ldi R18,40
clr R16
xcall _Draw_NtoArab
.dbline 261
; Draw_NtoArab(0x00,0x30,time_array[1]);
lds R2,_time_array+2
lds R3,_time_array+2+1
std y+0,R2
ldi R18,48
clr R16
xcall _Draw_NtoArab
.dbline 262
; }
L156:
L152:
L148:
.dbline 263
L140:
.dbline 217
xjmp L139
X6:
.dbline 264
; }
; }
xjmp L137
L136:
.dbline 266
; else //进入参比设置
; {
.dbline 267
; Draw_NtoArab_rev(0x04,0x40,canbi_array[1]);
lds R2,_canbi_array+2
lds R3,_canbi_array+2+1
std y+0,R2
ldi R18,64
ldi R16,4
xcall _Draw_NtoArab_rev
.dbline 268
; Draw_NtoArab_rev(0x04,0x48,canbi_array[2]);
lds R2,_canbi_array+4
lds R3,_canbi_array+4+1
std y+0,R2
ldi R18,72
ldi R16,4
xcall _Draw_NtoArab_rev
xjmp L166
L165:
.dbline 270
; while(1)
; {
.dbline 271
; key=getkeylock();
xcall _getkeylock
mov R20,R16
.dbline 272
; if(key==enter)
cpi R16,116
breq X10
xjmp L168
X10:
.dbline 273
; {
.dbline 274
; Draw_NtoArab(0x04,0x40,canbi_array[1]);
lds R2,_canbi_array+2
lds R3,_canbi_array+2+1
std y+0,R2
ldi R18,64
ldi R16,4
xcall _Draw_NtoArab
.dbline 275
; Draw_NtoArab(0x04,0x48,canbi_array[2]);
lds R2,_canbi_array+4
lds R3,_canbi_array+4+1
std y+0,R2
ldi R18,72
ldi R16,4
xcall _Draw_NtoArab
.dbline 276
; Draw_NtoArab(0x04,0x58,canbi_array[3]);
lds R2,_canbi_array+6
lds R3,_canbi_array+6+1
std y+0,R2
ldi R18,88
ldi R16,4
xcall _Draw_NtoArab
.dbline 277
; Draw_NtoArab(0x04,0x60,canbi_array[4]);
lds R2,_canbi_array+8
lds R3,_canbi_array+8+1
std y+0,R2
ldi R18,96
ldi R16,4
xcall _Draw_NtoArab
.dbline 278
; canbianjian=canbi_array[1]*1000+canbi_array[2]*100+canbi_array[3]*10+canbi_array[4];
lds R18,_canbi_array+4
lds R19,_canbi_array+4+1
ldi R16,100
ldi R17,0
xcall empy16s
movw R2,R16
lds R18,_canbi_array+2
lds R19,_canbi_array+2+1
ldi R16,1000
ldi R17,3
xcall empy16s
movw R4,R16
add R4,R2
adc R5,R3
lds R18,_canbi_array+6
lds R19,_canbi_array+6+1
ldi R16,10
ldi R17,0
xcall empy16s
add R4,R16
adc R5,R17
lds R2,_canbi_array+8
lds R3,_canbi_array+8+1
add R4,R2
adc R5,R3
sts _canbianjian,R4
.dbline 279
; break;
xjmp L167
L168:
.dbline 281
; }
; else if(key==up)
cpi R20,240
brne L178
.dbline 282
; {
.dbline 283
; if(positioncanbi==can1)
lds R24,_positioncanbi
cpi R24,2
brne L180
.dbline 284
; incanbizhengshu();
xcall _incanbizhengshu
xjmp L179
L180:
.dbline 286
; else
; incanbixiaoshu();
xcall _incanbixiaoshu
.dbline 287
; }
xjmp L179
L178:
.dbline 288
; else if(key==down)
cpi R20,228
brne L182
.dbline 289
; {
.dbline 290
; if(positioncanbi==can1)
lds R24,_positioncanbi
cpi R24,2
brne L184
.dbline 291
; decanbizhengshu();
xcall _decanbizhengshu
xjmp L183
L184:
.dbline 293
; else
; decanbixiaoshu();
xcall _decanbixiaoshu
.dbline 294
; }
xjmp L183
L182:
.dbline 295
; else if(key==left)
cpi R20,212
brne L186
.dbline 296
; {
.dbline 297
; positioncanbi=can1;
ldi R24,2
sts _positioncanbi,R24
.dbline 298
; Draw_NtoArab_rev(0x04,0x40,canbi_array[1]);
lds R2,_canbi_array+2
lds R3,_canbi_array+2+1
std y+0,R2
ldi R18,64
ldi R16,4
xcall _Draw_NtoArab_rev
.dbline 299
; Draw_NtoArab_rev(0x04,0x48,canbi_array[2]);
lds R2,_canbi_array+4
lds R3,_canbi_array+4+1
std y+0,R2
ldi R18,72
ldi R16,4
xcall _Draw_NtoArab_rev
.dbline 300
; Draw_NtoArab(0x04,0x58,canbi_array[3]);
lds R2,_canbi_array+6
lds R3,_canbi_array+6+1
std y+0,R2
ldi R18,88
ldi R16,4
xcall _Draw_NtoArab
.dbline 301
; Draw_NtoArab(0x04,0x60,canbi_array[4]);
lds R2,_canbi_array+8
lds R3,_canbi_array+8+1
std y+0,R2
ldi R18,96
ldi R16,4
xcall _Draw_NtoArab
.dbline 302
; }
xjmp L187
L186:
.dbline 304
; else
; {
.dbline 305
; positioncanbi=can2;
ldi R24,3
sts _positioncanbi,R24
.dbline 306
; Draw_NtoArab_rev(0x04,0x58,canbi_array[3]);
lds R2,_canbi_array+6
lds R3,_canbi_array+6+1
std y+0,R2
ldi R18,88
ldi R16,4
xcall _Draw_NtoArab_rev
.dbline 307
; Draw_NtoArab_rev(0x04,0x60,canbi_array[4]);
lds R2,_canbi_array+8
lds R3,_canbi_array+8+1
std y+0,R2
ldi R18,96
ldi R16,4
xcall _Draw_NtoArab_rev
.dbline 308
; Draw_NtoArab(0x04,0x40,canbi_array[1]);
lds R2,_canbi_array+2
lds R3,_canbi_array+2+1
std y+0,R2
ldi R18,64
ldi R16,4
xcall _Draw_NtoArab
.dbline 309
; Draw_NtoArab(0x04,0x48,canbi_array[2]);
lds R2,_canbi_array+4
lds R3,_canbi_array+4+1
std y+0,R2
ldi R18,72
ldi R16,4
xcall _Draw_NtoArab
.dbline 310
; }
L187:
L183:
L179:
.dbline 311
L166:
.dbline 269
xjmp L165
L167:
.dbline 312
; }
; entercount=0;
clr R2
sts _entercount,R2
.dbline 313
; }
L137:
.dbline 314
L134:
.dbline -2
L133:
adiw R28,1
xcall pop_gset1
.dbline 0 ; func end
ret
.dbsym r key 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -