⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyscan.s

📁 3510 TFT彩屏的测试程序
💻 S
📖 第 1 页 / 共 2 页
字号:
; 				++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 + -