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

📄 key.s

📁 基于AVR单片机的热电偶测量系统源码
💻 S
📖 第 1 页 / 共 3 页
字号:
	.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 + -