📄 no2.s
字号:
clr R3
add R30,R2
adc R31,R3
ldd R0,y+11
ldd R1,y+12
add R30,R0
adc R31,R1
ldd R16,z+0
com R16
xcall _Lcd_Write_Byte
.dbline 216
;
; }
L51:
.dbline 210
inc R12
L53:
.dbline 210
mov R24,R12
cpi R24,16
brlo L50
X9:
.dbline 218
;
; }
L47:
.dbline 206
inc R10
L49:
.dbline 206
mov R24,R10
cpi R24,2
brlo L46
X10:
.dbline 219
; }
L37:
.dbline -2
L35:
.dbline 0 ; func end
adiw R28,1
xcall pop_xgset00FC
adiw R28,2
ret
.dbsym l temp 0 c
.dbsym r i 10 c
.dbsym r j 12 c
.dbsym l point 11 pc
.dbsym r y 14 c
.dbsym l x 7 c
.dbsym r bit_flag 10 c
.dbend
.dbfunc e key_press _key_press fc
; j -> R16
.even
_key_press::
.dbline -1
.dbline 222
; }
; uchar key_press()
; {
.dbline 224
; uchar j;
; DDRD|=0X0F;
in R24,0x11
ori R24,15
out 0x11,R24
.dbline 225
; PORTD|=0X0F;
in R24,0x12
ori R24,15
out 0x12,R24
.dbline 227
;
; DDRD&=0XF0;
in R24,0x11
andi R24,240
out 0x11,R24
.dbline 229
;
; j=PIND;
in R16,0x10
.dbline 230
; j=j&0X0F;//00001111
andi R16,15
.dbline 231
; if(j==0X0F)
cpi R16,15
brne L55
X11:
.dbline 232
; {
.dbline 233
; return 0;
clr R16
xjmp L54
L55:
.dbline 236
; }
; else
; {
.dbline 237
; return 1;
ldi R16,1
.dbline -2
L54:
.dbline 0 ; func end
ret
.dbsym r j 16 c
.dbend
.dbfunc e key_scan _key_scan fc
; key -> R10
.even
_key_scan::
xcall push_xgset003C
.dbline -1
.dbline 243
; }
;
; }
;
; uchar key_scan()
; {
.dbline 245
; uchar key;
; delay(10);
ldi R16,10
ldi R17,0
xcall _delay
.dbline 246
; if(key_press())
xcall _key_press
tst R16
breq L58
X12:
.dbline 247
; {
.dbline 248
; key=PIND;
in R10,0x10
.dbline 249
; key&=0X0F;
mov R24,R10
andi R24,15
mov R10,R24
.dbline 250
; switch(key)
mov R12,R24
clr R13
movw R24,R12
cpi R24,7
ldi R30,0
cpc R25,R30
breq L66
X13:
cpi R24,11
ldi R30,0
cpc R25,R30
breq L65
X14:
cpi R24,13
ldi R30,0
cpc R25,R30
breq L64
X15:
cpi R24,14
ldi R30,0
cpc R25,R30
breq L63
X16:
xjmp L60
L63:
.dbline 253
; {
; case 0X0E:
; key=1;
clr R10
inc R10
.dbline 254
; break;
xjmp L68
L64:
.dbline 256
; case 0X0D:
; key=2;
ldi R24,2
mov R10,R24
.dbline 257
; break;
xjmp L68
L65:
.dbline 259
; case 0X0B:
; key=3;
ldi R24,3
mov R10,R24
.dbline 260
; break;
xjmp L68
L66:
.dbline 262
; case 0X07:
; key=4;
ldi R24,4
mov R10,R24
.dbline 263
; break;
xjmp L68
L60:
.dbline 265
; default:
; key=16;
ldi R24,16
mov R10,R24
.dbline 266
; }
L67:
.dbline 267
; while(key_press());
L68:
.dbline 267
xcall _key_press
tst R16
brne L67
X17:
.dbline 268
; }
xjmp L59
L58:
.dbline 270
; else
; {
.dbline 271
; key=16;
ldi R24,16
mov R10,R24
.dbline 272
; }
L59:
.dbline 273
; return key;
mov R16,R10
.dbline -2
L57:
.dbline 0 ; func end
xjmp pop_xgset003C
.dbsym r key 10 c
.dbend
.dbfunc e Lcd_Function _Lcd_Function fV
; n -> R10
; m -> R12
; alarm_flag -> y+5
; time_flag -> y+4
; temp -> R14
.even
_Lcd_Function::
xcall push_xgset00FC
mov R14,R16
sbiw R28,6
.dbline -1
.dbline 277
; }
;
; void Lcd_Function( uchar temp )
; {
.dbline 278
; uchar time_flag = 0;
clr R0
std y+4,R0
.dbline 279
; uchar alarm_flag = 0;
std y+5,R0
.dbline 280
; uchar m=0;
clr R12
.dbline 281
; uchar n=0;
clr R10
.dbline 282
; switch(temp)
clr R15
movw R24,R14
cpi R24,1
ldi R30,0
cpc R25,R30
breq L74
X18:
cpi R24,2
ldi R30,0
cpc R25,R30
breq L75
X19:
cpi R24,3
ldi R30,0
cpc R25,R30
breq L76
X20:
cpi R24,4
ldi R30,0
cpc R25,R30
breq L77
X21:
xjmp L71
L74:
.dbline 284
; {case 1:
; time_flag = 1; break;
clr R0
inc R0
std y+4,R0
.dbline 284
xjmp L72
L75:
.dbline 286
; case 2:
; alarm_flag= 1; break;
clr R0
inc R0
std y+5,R0
.dbline 286
xjmp L72
L76:
.dbline 288
; case 3:
; m=1; break;
clr R12
inc R12
.dbline 288
xjmp L72
L77:
.dbline 290
; case 4:
; n=1; break;
clr R10
inc R10
.dbline 290
L71:
.dbline 292
; default:
; ;
.dbline 294
;
; }
L72:
.dbline 297
;
; //时间设置
; Lcd_Character_16X16( time_flag, 0, 0, time_logo[3] );
ldi R24,<_time_logo+96
ldi R25,>_time_logo+96
std y+3,R25
std y+2,R24
clr R2
std y+0,R2
clr R18
ldd R16,y+4
xcall _Lcd_Character_16X16
.dbline 298
; Lcd_Character_16X16( time_flag, 0, 16, time_logo[1] );
ldi R24,<_time_logo+32
ldi R25,>_time_logo+32
std y+3,R25
std y+2,R24
ldi R24,16
std y+0,R24
clr R18
ldd R16,y+4
xcall _Lcd_Character_16X16
.dbline 299
; Lcd_Character_16X16( time_flag, 0, 32, time_logo[2] );
ldi R24,<_time_logo+64
ldi R25,>_time_logo+64
std y+3,R25
std y+2,R24
ldi R24,32
std y+0,R24
clr R18
ldd R16,y+4
xcall _Lcd_Character_16X16
.dbline 300
; Lcd_Character_16X16( time_flag, 0, 48, menu[0] );
ldi R24,<_menu
ldi R25,>_menu
std y+3,R25
std y+2,R24
ldi R24,48
std y+0,R24
clr R18
ldd R16,y+4
xcall _Lcd_Character_16X16
.dbline 302
; //闹钟设置
; Lcd_Character_16X16( alarm_flag, 2, 0, time_logo[3] );
ldi R24,<_time_logo+96
ldi R25,>_time_logo+96
std y+3,R25
std y+2,R24
clr R2
std y+0,R2
ldi R18,2
ldd R16,y+5
xcall _Lcd_Character_16X16
.dbline 303
; Lcd_Character_16X16( alarm_flag, 2, 16, time_logo[1] );
ldi R24,<_time_logo+32
ldi R25,>_time_logo+32
std y+3,R25
std y+2,R24
ldi R24,16
std y+0,R24
ldi R18,2
ldd R16,y+5
xcall _Lcd_Character_16X16
.dbline 304
; Lcd_Character_16X16( alarm_flag, 2, 32, time_logo[2] );
ldi R24,<_time_logo+64
ldi R25,>_time_logo+64
std y+3,R25
std y+2,R24
ldi R24,32
std y+0,R24
ldi R18,2
ldd R16,y+5
xcall _Lcd_Character_16X16
.dbline 305
; Lcd_Character_16X16( alarm_flag, 2, 48, menu[1] );
ldi R24,<_menu+32
ldi R25,>_menu+32
std y+3,R25
std y+2,R24
ldi R24,48
std y+0,R24
ldi R18,2
ldd R16,y+5
xcall _Lcd_Character_16X16
.dbline 307
;
; Lcd_Character_16X16( m, 4, 0, time_logo[3] );
ldi R24,<_time_logo+96
ldi R25,>_time_logo+96
std y+3,R25
std y+2,R24
clr R2
std y+0,R2
ldi R18,4
mov R16,R12
xcall _Lcd_Character_16X16
.dbline 308
; Lcd_Character_16X16( m, 4, 16, time_logo[1] );
ldi R24,<_time_logo+32
ldi R25,>_time_logo+32
std y+3,R25
std y+2,R24
ldi R24,16
std y+0,R24
ldi R18,4
mov R16,R12
xcall _Lcd_Character_16X16
.dbline 309
; Lcd_Character_16X16( m, 4, 32, time_logo[2] );
ldi R24,<_time_logo+64
ldi R25,>_time_logo+64
std y+3,R25
std y+2,R24
ldi R24,32
std y+0,R24
ldi R18,4
mov R16,R12
xcall _Lcd_Character_16X16
.dbline 310
; Lcd_Character_16X16( m, 4, 48, menu[2] );
ldi R24,<_menu+64
ldi R25,>_menu+64
std y+3,R25
std y+2,R24
ldi R24,48
std y+0,R24
ldi R18,4
mov R16,R12
xcall _Lcd_Character_16X16
.dbline 312
;
; Lcd_Character_16X16( n, 6, 0, time_logo[3] );
ldi R24,<_time_logo+96
ldi R25,>_time_logo+96
std y+3,R25
std y+2,R24
clr R2
std y+0,R2
ldi R18,6
mov R16,R10
xcall _Lcd_Character_16X16
.dbline 313
; Lcd_Character_16X16( n, 6, 16, time_logo[1] );
ldi R24,<_time_logo+32
ldi R25,>_time_logo+32
std y+3,R25
std y+2,R24
ldi R24,16
std y+0,R24
ldi R18,6
mov R16,R10
xcall _Lcd_Character_16X16
.dbline 314
; Lcd_Character_16X16( n, 6, 32, time_logo[2] );
ldi R24,<_time_logo+64
ldi R25,>_time_logo+64
std y+3,R25
std y+2,R24
ldi R24,32
std y+0,R24
ldi R18,6
mov R16,R10
xcall _Lcd_Character_16X16
.dbline 315
; Lcd_Character_16X16( n, 6, 48, menu[3] );
ldi R24,<_menu+96
ldi R25,>_menu+96
std y+3,R25
std y+2,R24
ldi R24,48
std y+0,R24
ldi R18,6
mov R16,R10
xcall _Lcd_Character_16X16
.dbline -2
L70:
.dbline 0 ; func end
adiw R28,6
xjmp pop_xgset00FC
.dbsym r n 10 c
.dbsym r m 12 c
.dbsym l alarm_flag 5 c
.dbsym l time_flag 4 c
.dbsym r temp 14 c
.dbend
.dbfunc e main _main fV
; j -> R12,R13
; i -> R12,R13
; k -> R10,R11
.even
_main::
.dbline -1
.dbline 318
; }
; void main()
; {
.dbline 319
; unsigned int i,j,k=1;
ldi R24,1
ldi R25,0
movw R10,R24
.dbline 321
; //init_port();//自己加,主要是控制线所在端口为输出
; DDRB = 0xff;
ldi R24,255
out 0x17,R24
.dbline 322
; Lcd_Function(1);
ldi R16,1
xcall _Lcd_Function
xjmp L95
L94:
.dbline 325
;
; while(1)
; { i=key_press();
.dbline 325
xcall _key_press
mov R12,R16
clr R13
.dbline 326
; if(i)
tst R12
brne X22
tst R13
breq L97
X22:
.dbline 327
; {
.dbline 328
; j=key_scan();
xcall _key_scan
mov R12,R16
clr R13
.dbline 329
; switch(j)
movw R24,R12
cpi R24,1
ldi R30,0
cpc R25,R30
breq L101
X23:
cpi R24,2
ldi R30,0
cpc R25,R30
breq L102
X24:
xjmp L99
L101:
.dbline 332
; {
; case 1:
; k=k+1;
movw R24,R10
adiw R24,1
movw R10,R24
.dbline 333
; break;
xjmp L100
L102:
.dbline 335
; case 2:
; k=k-1;
movw R24,R10
sbiw R24,1
movw R10,R24
.dbline 336
; break;
L99:
.dbline 338
; default:
; ;
.dbline 340
;
; }
L100:
.dbline 342
;
; if(k>4) k=1;
ldi R24,4
ldi R25,0
cp R24,R10
cpc R25,R11
brsh L103
X25:
.dbline 342
ldi R24,1
movw R10,R24
L103:
.dbline 343
; if(k<1) k=4;
movw R24,R10
cpi R24,1
ldi R30,0
cpc R25,R30
brsh L105
X26:
.dbline 343
ldi R24,4
ldi R25,0
movw R10,R24
L105:
.dbline 345
;
; Lcd_Function(k);
mov R16,R10
xcall _Lcd_Function
.dbline 346
; }
L97:
.dbline 348
;
; }
L95:
.dbline 324
xjmp L94
X27:
.dbline -2
L93:
.dbline 0 ; func end
ret
.dbsym r j 12 i
.dbsym r i 12 i
.dbsym r k 10 i
.dbend
; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -