📄 keyscan.s
字号:
; ++MenuLevel;
lds R24,_MenuLevel
subi R24,255 ; addi 1
sts _MenuLevel,R24
.dbline 164
; if(MenuLevel==1) //enter the menu
cpi R24,1
brne L41
.dbline 165
; {
.dbline 167
;
; }
L41:
.dbline 168
; LCD_BGColor=0xff;
ldi R24,255
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 169
; LCD_EraseBlock(0,0,97,66);
ldi R24,66
std y+2,R24
ldi R24,97
std y+0,R24
clr R18
clr R16
xcall _LCD_EraseBlock
.dbline 170
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 171
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 172
; LCD_WriteEnglishString("Confirm Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L43
ldi R17,>L43
xcall _LCD_WriteEnglishString
.dbline 173
; break;
xjmp L38
L44:
.dbline 176
; }
; case 2://up
; {
.dbline 177
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 178
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 179
; LCD_WriteEnglishString("Up Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L45
ldi R17,>L45
xcall _LCD_WriteEnglishString
.dbline 180
; break;
xjmp L38
L46:
.dbline 183
; }
; case 3://cancel
; {
.dbline 184
; if(MenuLevel>0)
clr R2
lds R3,_MenuLevel
cp R2,R3
brsh L47
.dbline 185
; --MenuLevel;
mov R24,R3
subi R24,1
sts _MenuLevel,R24
xjmp L48
L47:
.dbline 187
; else
; MenuLevel=0;
clr R2
sts _MenuLevel,R2
L48:
.dbline 189
;
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 190
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 191
; LCD_WriteEnglishString("Cancel Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L49
ldi R17,>L49
xcall _LCD_WriteEnglishString
.dbline 192
; break;
xjmp L38
L50:
.dbline 195
; }
; case 4: //left
; {
.dbline 196
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 197
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 198
; LCD_WriteEnglishString("Left Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L51
ldi R17,>L51
xcall _LCD_WriteEnglishString
.dbline 199
; break;
xjmp L38
L52:
.dbline 202
; }
; case 5://confirm
; {
.dbline 203
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 204
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 205
; LCD_WriteEnglishString("Confirm Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L43
ldi R17,>L43
xcall _LCD_WriteEnglishString
.dbline 206
; break;
xjmp L38
L53:
.dbline 209
; }
; case 6://right
; {
.dbline 210
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 211
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 212
; LCD_WriteEnglishString("Right Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L54
ldi R17,>L54
xcall _LCD_WriteEnglishString
.dbline 213
; break;
xjmp L38
X4:
.dbline 216
; }
; case 7: //
; {
.dbline 218
; //LCD_WriteEnglishString("KeyValue=7",10 , 25);
; break;
L56:
.dbline 221
; }
; case 8://down
; {
.dbline 222
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 223
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 224
; LCD_WriteEnglishString("Down Key",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L57
ldi R17,>L57
xcall _LCD_WriteEnglishString
.dbline 225
; break;
xjmp L38
X5:
.dbline 228
; }
; case 9://
; {
.dbline 230
; //LCD_WriteEnglishString("KeyValue=9",10 , 25);
; break;
.dbline 233
; }
; case 0: //
; {
.dbline 235
; //LCD_WriteEnglishString("KeyValue=0",10 , 25);
; break;
L60:
.dbline 238
; }
; case 0x0b://Time
; {
.dbline 239
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 240
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 241
; LCD_WriteEnglishString("KeyValue=*",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L61
ldi R17,>L61
xcall _LCD_WriteEnglishString
.dbline 242
; break;
xjmp L38
L62:
.dbline 245
; }
; case 0x0c://Temp
; {
.dbline 246
; LCD_BGColor=0b11100000;
ldi R24,224
ldi R25,0
sts _LCD_BGColor+1,R25
sts _LCD_BGColor,R24
.dbline 247
; LCD_EraseBlock(10,10,87,56);
ldi R24,56
std y+2,R24
ldi R24,87
std y+0,R24
ldi R18,10
ldi R16,10
xcall _LCD_EraseBlock
.dbline 248
; LCD_WriteEnglishString("KeyValue=#",10 , 25);
ldi R24,25
std y+0,R24
ldi R18,10
ldi R16,<L63
ldi R17,>L63
xcall _LCD_WriteEnglishString
.dbline 249
; break;
.dbline 251
; }
; default:break;
L38:
.dbline 253
L33:
.dbline -2
L32:
adiw R28,3
xcall pop_gset3x
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_1us _delay_1us fV
.even
_delay_1us::
.dbline -1
.dbline 258
; }
; }
; }
; /*--------------------------------------------延时函数------------------------------------*/
; //1us延时函数
; void delay_1us(void)
; {
.dbline 259
; NOP();
nop
.dbline -2
L64:
.dbline 0 ; func end
ret
.dbend
.dbfunc e delay_nus _delay_nus fV
; i -> R10,R11
; n -> R12,R13
.even
_delay_nus::
xcall push_gset4x
movw R12,R16
.dbline -1
.dbline 264
; }
;
; //n us 延时函数
; void delay_nus(unsigned int n)
; {
.dbline 266
; unsigned int i;
; for(i=0;i<n;i++)
clr R10
clr R11
xjmp L69
L66:
.dbline 267
xcall _delay_1us
L67:
.dbline 266
movw R24,R10
adiw R24,1
movw R10,R24
L69:
.dbline 266
cp R10,R12
cpc R11,R13
brlo L66
.dbline -2
L65:
xcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r i 10 i
.dbsym r n 12 i
.dbend
.dbfunc e delay_1ms _delay_1ms fV
; i -> R16,R17
.even
_delay_1ms::
.dbline -1
.dbline 272
; delay_1us();
; }
;
; //1ms延时函数
; void delay_1ms(void)
; {
.dbline 274
clr R16
clr R17
xjmp L74
L71:
.dbline 274
L72:
.dbline 274
subi R16,255 ; offset = 1
sbci R17,255
L74:
.dbline 274
; unsigned int i;
; for(i=0;i<600;i++);
cpi R16,88
ldi R30,2
cpc R17,R30
brlo L71
.dbline -2
L70:
.dbline 0 ; func end
ret
.dbsym r i 16 i
.dbend
.dbfunc e delay_nms _delay_nms fV
; i -> R10,R11
; n -> R12,R13
.even
_delay_nms::
xcall push_gset4x
movw R12,R16
.dbline -1
.dbline 279
; }
;
; //n ms延时函数
; void delay_nms(unsigned int n)
; {
.dbline 281
; unsigned int i;
; for(i=0;i<n;i++)
clr R10
clr R11
xjmp L79
L76:
.dbline 282
xcall _delay_1ms
L77:
.dbline 281
movw R24,R10
adiw R24,1
movw R10,R24
L79:
.dbline 281
cp R10,R12
cpc R11,R13
brlo L76
.dbline -2
L75:
xcall pop_gset4x
.dbline 0 ; func end
ret
.dbsym r i 10 i
.dbsym r n 12 i
.dbend
.area bss(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
_KeyCnt::
.blkb 1
.dbsym e KeyCnt _KeyCnt c
_KeyCode::
.blkb 1
.dbsym e KeyCode _KeyCode c
_KeyOld::
.blkb 1
.dbsym e KeyOld _KeyOld c
_KeyNow::
.blkb 1
.dbsym e KeyNow _KeyNow c
_MenuSelect::
.blkb 3
.dbsym e MenuSelect _MenuSelect A[3:3]c
_MenuItemMax::
.blkb 1
.dbsym e MenuItemMax _MenuItemMax c
_MenuLevel::
.blkb 1
.dbsym e MenuLevel _MenuLevel c
_flag1::
.blkb 1
.dbsym e flag1 _flag1 c
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L63:
.blkb 11
.area idata
.byte 'K,'e,'y,'V,'a,'l,'u,'e,61,35,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L61:
.blkb 11
.area idata
.byte 'K,'e,'y,'V,'a,'l,'u,'e,61,42,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L57:
.blkb 9
.area idata
.byte 'D,'o,'w,'n,32,'K,'e,'y,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L54:
.blkb 10
.area idata
.byte 'R,'i,'g,'h,'t,32,'K,'e,'y,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L51:
.blkb 9
.area idata
.byte 'L,'e,'f,'t,32,'K,'e,'y,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L49:
.blkb 11
.area idata
.byte 'C,'a,'n,'c,'e,'l,32,'K,'e,'y,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L45:
.blkb 7
.area idata
.byte 'U,'p,32,'K,'e,'y,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
L43:
.blkb 12
.area idata
.byte 'C,'o,'n,'f,'i,'r,'m,32,'K,'e,'y,0
.area data(ram, con, rel)
.dbfile D:\StudyRoom\学习AVR\3510测试ICC版\keyscan.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -