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

📄 macoh.s

📁 工控计数器ICCAVR的MAGE8程序LED数码显示+4键
💻 S
📖 第 1 页 / 共 5 页
字号:
	std y+1,R25
	std y+0,R24
	ldi R18,<_trdata_x
	ldi R19,>_trdata_x
	ldi R16,48
	ldi R17,0
	rcall _EEPROMWriteBytes_extIO
	.dbline 182
; 										  fbit=0;
	clr R0
	std y+15,R0
	.dbline 183
; 										  }  
	rjmp L33
L36:
	.dbline 186
; 						                  else 
; 										  
; 										 { cbit=pontdata;
	.dbline 186
	lds R2,_pontdata
	std y+16,R2
	rjmp L39
L38:
	.dbline 188
; 										  while(1)
; 						                  {//----------------------------------------------------------------pont
	.dbline 189
;                 		                  sandchar_display(pont,ponddd);
	ldi R18,<_ponddd
	ldi R19,>_ponddd
	ldi R16,<_pont
	ldi R17,>_pont
	rcall _sandchar_display
	.dbline 190
; 										  ponddd[cbit]+=25;
	ldi R24,<_ponddd
	ldi R25,>_ponddd
	ldd R2,y+16
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R24,z+0
	subi R24,231    ; addi 25
	std z+0,R24
	.dbline 191
; 		                                  key=display_flash(fbit,cbit,2);  
	ldi R24,2
	std y+0,R24
	ldd R18,y+16
	ldd R16,y+15
	rcall _display_flash
	sts _key,R16
	.dbline 192
; 										  ponddd[cbit]-=25;
	ldi R24,<_ponddd
	ldi R25,>_ponddd
	ldd R2,y+16
	clr R3
	add R2,R24
	adc R3,R25
	movw R30,R2
	ldd R24,z+0
	subi R24,25
	std z+0,R24
	.dbline 193
; 										  if(keybit==0xf7) {keybit=0; keytime=0;   return;}
	lds R24,_keybit
	cpi R24,247
	brne L41
	.dbline 193
	.dbline 193
	clr R2
	sts _keybit,R2
	.dbline 193
	clr R3
	sts _keytime+1,R3
	sts _keytime,R2
	.dbline 193
	rjmp L12
L41:
	.dbline 194
; 										  switch (key)
	lds R2,_key
	clr R3
	std y+8,R3
	std y+7,R2
	movw R24,R2
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	breq L46
	ldi R24,11
	cp R24,R2
	cpc R25,R3
	brlt L57
L56:
	ldd R24,y+7
	ldd R25,y+8
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	breq L49
	rjmp L43
L57:
	ldd R24,y+7
	ldd R25,y+8
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brne X40
	rjmp L55
X40:
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brlt L43
L58:
	ldd R24,y+7
	ldd R25,y+8
	cpi R24,23
	ldi R30,0
	cpc R25,R30
	brne X41
	rjmp L53
X41:
	rjmp L43
X3:
	.dbline 195
; 		                                       {														
L46:
	.dbline 197
; 												case    left:
; 												fbit=2;
	ldi R24,2
	std y+15,R24
	.dbline 198
; 												if(cbit<5) {cbit++;}
	ldd R24,y+16
	cpi R24,5
	brsh L47
	.dbline 198
	.dbline 198
	mov R0,R24
	inc R0
	std y+16,R0
	.dbline 198
	rjmp L44
L47:
	.dbline 199
; 												else          {cbit=0;}
	.dbline 199
	clr R0
	std y+16,R0
	.dbline 199
	.dbline 200
; 												break;
	rjmp L44
L49:
	.dbline 202
; 												case    set:
; 												if(fbit==2) 
	ldd R24,y+15
	cpi R24,2
	breq X42
	rjmp L12
X42:
	.dbline 203
; 													{  
	.dbline 204
; 													 pontdata=cbit;
	ldd R0,y+16
	sts _pontdata,R0
	.dbline 205
; 													 ponddd[cbit]=0;
	ldi R24,<_ponddd
	ldi R25,>_ponddd
	mov R30,R0
	clr R31
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
	.dbline 206
; 													 EEPROMwrite(0x10,pontdata); 
	lds R18,_pontdata
	ldi R16,16
	ldi R17,0
	rcall _EEPROMwrite_extIO
	.dbline 207
; 													 fbit=100;
	ldi R24,100
	std y+15,R24
	.dbline 208
; 													 }
	.dbline 209
; 												else     return ;
	.dbline 210
; 												break;
	.dbline 212
; 												case   set3s:
; 												goto   menu2;
	.dbline 214
; 												case   set_left3s:
;                                                 goto   menu3;		  
L43:
L44:
	.dbline 216
L39:
	.dbline 187
	rjmp L38
X4:
	.dbline 217
; 										      }
; 										   }
; 										 }
	.dbline 218
; 						                break;
	rjmp L33
L59:
	.dbline 220
; 										case    up:
; 										if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	breq X43
	rjmp L33
X43:
	.dbline 221
; 										{
	.dbline 222
; 										if(cbit==1)      p[cbit]-=25; 
	ldd R24,y+16
	cpi R24,1
	brne L62
	.dbline 222
	lds R2,_p
	lds R3,_p+1
	mov R4,R24
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,25
	std z+0,R24
L62:
	.dbline 223
; 										if(p[cbit]<9)   p[cbit]++;  
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldd R24,z+0
	cpi R24,9
	brsh L64
	.dbline 223
	ldd R4,y+16
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,255    ; addi 1
	std z+0,R24
	rjmp L65
L64:
	.dbline 224
; 										else                 p[cbit]=0;
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	clr R2
	std z+0,R2
L65:
	.dbline 225
; 										if(cbit==1)      p[cbit]+=25;
	ldd R24,y+16
	cpi R24,1
	breq X44
	rjmp L33
X44:
	.dbline 225
	lds R2,_p
	lds R3,_p+1
	mov R4,R24
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,231    ; addi 25
	std z+0,R24
	.dbline 226
; 										}
	.dbline 227
; 										break;
	rjmp L33
L68:
	.dbline 229
; 										case    down:
; 										if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	breq X45
	rjmp L33
X45:
	.dbline 230
; 										{
	.dbline 231
; 										if(cbit==1)      p[cbit]-=25; 
	ldd R24,y+16
	cpi R24,1
	brne L71
	.dbline 231
	lds R2,_p
	lds R3,_p+1
	mov R4,R24
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,25
	std z+0,R24
L71:
	.dbline 232
; 										if(p[cbit]>0)    p[cbit]--;      
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldd R2,z+0
	clr R3
	cp R3,R2
	brsh L73
	.dbline 232
	lds R2,_p
	lds R3,_p+1
	ldd R4,y+16
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,1
	std z+0,R24
	rjmp L74
L73:
	.dbline 233
; 										else                p[cbit]=9;
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldi R24,9
	std z+0,R24
L74:
	.dbline 234
; 										if(cbit==1)      p[cbit]+=25;
	ldd R24,y+16
	cpi R24,1
	brne L33
	.dbline 234
	lds R2,_p
	lds R3,_p+1
	mov R4,R24
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,231    ; addi 25
	std z+0,R24
	.dbline 235
; 										}
	.dbline 236
; 										break;
	rjmp L33
L77:
	.dbline 238
; 										case    left:
; 										fbit=2;
	ldi R24,2
	std y+15,R24
	.dbline 239
; 										if(cbit<1)      cbit++;
	ldd R24,y+16
	cpi R24,1
	brsh L78
	.dbline 239
	mov R0,R24
	inc R0
	std y+16,R0
	rjmp L33
L78:
	.dbline 240
; 										else               cbit=0;
	clr R0
	std y+16,R0
	.dbline 241
; 						                break;
	.dbline 243
; 										case     set3s:
; 										goto   menu2;
	.dbline 245
; 										case   set_left3s:
;                                         goto   menu3;	
L32:
L33:
	.dbline 247
L28:
	.dbline 165
	rjmp L27
X5:
	.dbline 248
; 									 }   //---------------------------------------------------------------------trdata   
; 								}
; 							}		 
	.dbline 249
; 				            break;
	rjmp L22
L84:
	.dbline 251
; 						    case    up:
; 						    if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	breq X46
	rjmp L22
X46:
	.dbline 252
; 							{
	.dbline 253
; 							if(p[cbit]<9)    p[cbit]++;  
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldd R24,z+0
	cpi R24,9
	brsh L87
	.dbline 253
	ldd R4,y+16
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,255    ; addi 1
	std z+0,R24
	rjmp L22
L87:
	.dbline 254
; 							else                 p[cbit]=0;
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	clr R2
	std z+0,R2
	.dbline 255
; 							}
	.dbline 256
; 							break;
	rjmp L22
L89:
	.dbline 258
; 							case    down:
; 							if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	breq X47
	rjmp L22
X47:
	.dbline 259
; 							{
	.dbline 260
; 							if(p[cbit]>0)   p[cbit]--;     
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldd R2,z+0
	clr R3
	cp R3,R2
	brsh L92
	.dbline 260
	lds R2,_p
	lds R3,_p+1
	ldd R4,y+16
	clr R5
	add R4,R2
	adc R5,R3
	movw R30,R4
	ldd R24,z+0
	subi R24,1
	std z+0,R24
	rjmp L22
L92:
	.dbline 261
; 							else                 p[cbit]=9;
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldi R24,9
	std z+0,R24
	.dbline 262
; 							}
	.dbline 263
; 							break;
	rjmp L22
L94:
	.dbline 265
; 							case    left:
; 							fbit=2; 
	ldi R24,2
	std y+15,R24
	.dbline 266
; 							if(cbit<5)         cbit++;
	ldd R24,y+16
	cpi R24,5
	brsh L95
	.dbline 266
	mov R0,R24
	inc R0
	std y+16,R0
	rjmp L96
L95:
	.dbline 267
; 							else                cbit=0;
	clr R0
	std y+16,R0
L96:
	.dbline 268
; 							if(p[cbit]==10) { p[cbit]=0; }
	lds R2,_p
	lds R3,_p+1
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	ldd R24,z+0
	cpi R24,10
	brne L22
	.dbline 268
	.dbline 268
	ldd R30,y+16
	clr R31
	add R30,R2
	adc R31,R3
	clr R2
	std z+0,R2
	.dbline 268
	.dbline 269
; 						    break;
	.dbline 271
; 							case     set3s:
; 							goto   menu2;
	.dbline 273
; 							case   set_left3s:
;                             goto   menu3;	
L21:
L22:
	.dbline 275
L18:
	.dbline 145
	rjmp L17
X6:
	.dbline 276
; 					   }		   
; 		   }
; 		   break;
	rjmp L12
L103:
L53:
	.dbline 279
; 		   case   set3s:
; menu2:	
;            if((PINB&0X0f)!=0x0f) goto  menu2;	
	in R24,0x3
	andi R24,15
	cpi R24,15
	brne X48
	rjmp L107
X48:
	.dbline 279
	rjmp L53
L106:
	.dbline 281
; 		   while(1)
; 		  {
L109:
	.dbline 283
; psxsetmu2:
;             if(fbit!=2)  sandcnd_display(psx,timeset[tdbit],0);
	ldd R24,y+15
	cpi R24,2
	breq L110
	.dbline 283
	clr R2
	std y+2,R2
	ldi R24,4
	ldd R0,y+17
	mul R24,R0
	movw R30,R0
	ldi R24,<_timeset
	ldi R25,>_timeset
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	ldd R4,z+2
	ldd R5,z+3
	std y+0,R4
	std y+1,R5
	movw R18,R2
	ldi R16,<_psx
	ldi R17,>_psx
	rcall _sandcnd_display
L110:
	.dbline 284
; 			o=psx;
	ldi R24,<_psx
	ldi R25,>_psx
	sts _o+1,R25
	sts _o,R24
	.dbline 285
; 			o[1]=tdbit+1;
	ldd R24,y+17
	subi R24,255    ; addi 1
	lds R30,_o
	lds R31,_o+1
	std z+1,R24
	.dbline 286
; 		    key=display_flash(fbit,cbit,2); 	
	ldi R24,2
	std y+0,R24
	ldd R18,y+16
	ldd R16,y+15
	rcall _display_flash
	sts _key,R16
	.dbline 287
; 		    switch (key)
	mov R2,R16
	clr R3
	std y+4,R3
	std y+3,R2
	movw R24,R2
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brne X49
	rjmp L55
X49:
	ldi R24,19
	cp R24,R2
	cpc R25,R3
	brlt L306
L305:
	ldd R24,y+3
	ldd R25,y+4
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	breq L115
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	brne X50
	rjmp L298
X50:
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	brne X51
	rjmp L293
X51:
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brne X52
	rjmp L288
X52:
	rjmp L112

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -