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

📄 macoh.s

📁 工控计数器ICCAVR的MAGE8程序LED数码显示+4键
💻 S
📖 第 1 页 / 共 5 页
字号:
L306:
	ldd R24,y+3
	ldd R25,y+4
	cpi R24,23
	ldi R30,0
	cpc R25,R30
	brne X53
	rjmp L12
X53:
	rjmp L112
X7:
	.dbline 288
; 		    {
L115:
	.dbline 290
; 			 case  set:
; 			  if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	brne L116
	.dbline 291
; 			   {
	.dbline 292
; 			    timeset[tdbit]=process_add();
	rcall _process_add
	movw R2,R16
	movw R4,R18
	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
	std z+0,R2
	std z+1,R3
	std z+2,R4
	std z+3,R5
	.dbline 293
; 			    EEPROM_WRITE(0x40,timeset[0]);
	ldi R24,4
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_timeset
	ldi R19,>_timeset
	ldi R16,64
	ldi R17,0
	rcall _EEPROMWriteBytes_extIO
	.dbline 294
; 			    EEPROM_WRITE(0x50,timeset[1]);
	ldi R24,4
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_timeset+4
	ldi R19,>_timeset+4
	ldi R16,80
	ldi R17,0
	rcall _EEPROMWriteBytes_extIO
	.dbline 295
; 			    EEPROM_WRITE(0x60,timeset[2]);
	ldi R24,4
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_timeset+8
	ldi R19,>_timeset+8
	ldi R16,96
	ldi R17,0
	rcall _EEPROMWriteBytes_extIO
	.dbline 296
; 			    fbit=0;
	clr R0
	std y+15,R0
	.dbline 297
; 			    }
	rjmp L113
L116:
	.dbline 299
; 			  else
; 			  {
	.dbline 300
; 			   if(tdbit==2)
	ldd R24,y+17
	cpi R24,2
	breq X54
	rjmp L122
X54:
	.dbline 301
; 			   {  tdbit=0;
	.dbline 301
	clr R0
	std y+17,R0
	.dbline 302
; 		         sandcnd_display(tr_x,trdata_x[tdbit],1);
	ldi R24,1
	std y+2,R24
	ldi R24,<_trdata_x
	ldi R25,>_trdata_x
	mov R30,R0
	clr R31
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	clr R3
	clr R4
	clr R5
	std y+0,R4
	std y+1,R5
	movw R18,R2
	ldi R16,<_tr_x
	ldi R17,>_tr_x
	rcall _sandcnd_display
	rjmp L125
L124:
	.dbline 304
; 			    while (1)
; 		      {
	.dbline 305
; 			   o=tr_x;
	ldi R24,<_tr_x
	ldi R25,>_tr_x
	sts _o+1,R25
	sts _o,R24
	.dbline 306
;                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 307
; 			   p[1]+=25;
	lds R24,_p
	lds R25,_p+1
	adiw R24,1
	movw R30,R24
	ldd R24,z+0
	subi R24,231    ; addi 25
	std z+0,R24
	.dbline 308
; 			   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 309
; 		       p[1]-=25;
	lds R24,_p
	lds R25,_p+1
	adiw R24,1
	movw R30,R24
	ldd R24,z+0
	subi R24,25
	std z+0,R24
	.dbline 310
; 		      switch (key)
	lds R2,_key
	clr R3
	std y+6,R3
	std y+5,R2
	movw R24,R2
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brne X55
	rjmp L55
X55:
	ldi R24,19
	cp R24,R2
	cpc R25,R3
	brlt L285
L284:
	ldd R24,y+5
	ldd R25,y+6
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	breq L130
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	brne X56
	rjmp L279
X56:
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	brne X57
	rjmp L270
X57:
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brne X58
	rjmp L261
X58:
	rjmp L127
L285:
	ldd R24,y+5
	ldd R25,y+6
	cpi R24,23
	ldi R30,0
	cpc R25,R30
	brne X59
	rjmp L12
X59:
	rjmp L127
X8:
	.dbline 311
; 			                {//------------------------------------2-2-22-2-2
L130:
	.dbline 313
; 							case   set:
; 							if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	brne L131
	.dbline 314
; 						      {
	.dbline 315
; 							   trdata=0;
	clr R2
	sts _trdata,R2
	.dbline 316
; 							   trdata+= p[1]*10;
	lds R30,_p
	lds R31,_p+1
	ldd R2,z+1
	ldi R24,10
	mul R24,R2
	lds R2,_trdata
	add R2,R0
	sts _trdata,R2
	.dbline 317
;                                trdata+= p[0];
	lds R30,_p
	lds R31,_p+1
	ldd R2,z+0
	lds R3,_trdata
	add R3,R2
	sts _trdata,R3
	.dbline 318
; 							   trdata_x[tdbit]=trdata;
	ldi R24,<_trdata_x
	ldi R25,>_trdata_x
	ldd R30,y+17
	clr R31
	add R30,R24
	adc R31,R25
	mov R2,R3
	std z+0,R2
	.dbline 319
; 							   EEPROM_WRITE(0x30,trdata_x); 
	ldi R24,3
	ldi R25,0
	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 320
; 							   fbit=0;    }
	clr R0
	std y+15,R0
	.dbline 320
	rjmp L128
L131:
	.dbline 322
; 							else
; 							  {
	.dbline 323
; 							  if(tdbit==2) 
	ldd R24,y+17
	cpi R24,2
	breq X60
	rjmp L133
X60:
	.dbline 324
; 							    {  
	.dbline 325
; 								 tdbit=0;
	clr R0
	std y+17,R0
	.dbline 326
; 								 sandcnd_display(scl,scldata[tdbit],0);   
	clr R2
	std y+2,R2
	ldi R24,2
	mul R24,R0
	movw R30,R0
	ldi R24,<_scldata
	ldi R25,>_scldata
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	clr R4
	clr R5
	std y+0,R4
	std y+1,R5
	movw R18,R2
	ldi R16,<_scl
	ldi R17,>_scl
	rcall _sandcnd_display
	rjmp L136
L135:
	.dbline 328
; 								 while (1)
; 						         {
	.dbline 329
;                                 o=scl;
	ldi R24,<_scl
	ldi R25,>_scl
	sts _o+1,R25
	sts _o,R24
	.dbline 330
;                                 o[0]=scl_set+tdbit;
	ldd R24,y+17
	subi R24,206    ; addi 50
	lds R30,_o
	lds R31,_o+1
	std z+0,R24
	.dbline 331
; 		                        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 332
; 							    switch (key)
	mov R2,R16
	clr R3
	std y+8,R3
	std y+7,R2
	movw R24,R2
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brne X61
	rjmp L55
X61:
	ldi R24,19
	cp R24,R2
	cpc R25,R3
	brlt L258
L257:
	ldd R24,y+7
	ldd R25,y+8
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	breq L141
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	brne X62
	rjmp L250
X62:
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	brne X63
	rjmp L241
X63:
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brne X64
	rjmp L232
X64:
	rjmp L138
L258:
	ldd R24,y+7
	ldd R25,y+8
	cpi R24,23
	ldi R30,0
	cpc R25,R30
	brne X65
	rjmp L12
X65:
	rjmp L138
X9:
	.dbline 333
; 		                               {
L141:
	.dbline 335
; 						                case    set:
; 									    if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	brne L142
	.dbline 336
; 												{
	.dbline 337
; 												 scldata[scl_set-50+tdbit]=process_add();
	rcall _process_add
	movw R2,R16
	movw R4,R18
	ldi R24,2
	ldd R0,y+17
	mul R24,R0
	movw R30,R0
	ldi R24,<_scldata
	ldi R25,>_scldata
	add R30,R24
	adc R31,R25
	std z+1,R3
	std z+0,R2
	.dbline 338
; 												 EEPROM_WRITE(0x20,scldata); 
	ldi R24,4
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,<_scldata
	ldi R19,>_scldata
	ldi R16,32
	ldi R17,0
	rcall _EEPROMWriteBytes_extIO
	.dbline 339
; 												 fbit=0;
	clr R0
	std y+15,R0
	.dbline 340
; 												}
	rjmp L139
L142:
	.dbline 341
; 										else {if(tdbit<1) {
	.dbline 341
	ldd R24,y+17
	cpi R24,1
	brsh L144
	.dbline 341
	.dbline 342
; 										                         tdbit++;
	mov R0,R24
	inc R0
	std y+17,R0
	.dbline 343
; 																 sandcnd_display(scl,scldata[tdbit],0);
	clr R2
	std y+2,R2
	ldi R24,2
	mul R24,R0
	movw R30,R0
	ldi R24,<_scldata
	ldi R25,>_scldata
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldd R3,z+1
	clr R4
	clr R5
	std y+0,R4
	std y+1,R5
	movw R18,R2
	ldi R16,<_scl
	ldi R17,>_scl
	rcall _sandcnd_display
	.dbline 344
; 																 }
	rjmp L139
L144:
	.dbline 346
; 							                    else       
; 												  { tdbit=0;
	.dbline 346
	clr R0
	std y+17,R0
	.dbline 347
; 		                                            reset_m=resettemp;
	lds R14,_resettemp
	.dbline 348
; 													intm_m =inmtemp;
	lds R10,_inmtemp
	rjmp L147
L146:
	.dbline 350
; 		                                            while(1) 
; 		                                             {
	.dbline 351
;                                                       if(intm_m==0) sandchar_display(inm,in_msa);
	tst R10
	brne L149
	.dbline 351
	ldi R18,<_in_msa
	ldi R19,>_in_msa
	ldi R16,<_inm
	ldi R17,>_inm
	rcall _sandchar_display
	rjmp L150
L149:
	.dbline 352
; 													  else              sandchar_display(inm,in_msb);
	ldi R18,<_in_msb
	ldi R19,>_in_msb
	ldi R16,<_inm
	ldi R17,>_inm
	rcall _sandchar_display
L150:
	.dbline 353
; 	                                                  key=display_flash(fbit,0,2);   ///////////////////////////////////////////
	ldi R24,2
	std y+0,R24
	clr R18
	ldd R16,y+15
	rcall _display_flash
	sts _key,R16
	.dbline 354
; 			                                         switch (key)
	mov R2,R16
	clr R3
	std y+10,R3
	std y+9,R2
	movw R24,R2
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brne X66
	rjmp L55
X66:
	ldi R24,19
	cp R24,R2
	cpc R25,R3
	brlt L231
L230:
	ldd R24,y+9
	ldd R25,y+10
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	breq L154
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	brne X67
	rjmp L227
X67:
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	brne X68
	rjmp L221
X68:
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brne X69
	rjmp L220
X69:
	rjmp L151
L231:
	ldd R24,y+9
	ldd R25,y+10
	cpi R24,23
	ldi R30,0
	cpc R25,R30
	brne X70
	rjmp L12
X70:
	rjmp L151
X10:
	.dbline 355
; 		                                                   {
L154:
	.dbline 357
; 									                       case    set:
; 										                   if(fbit==2)
	ldd R24,y+15
	cpi R24,2
	breq X71
	rjmp L158
X71:
	.dbline 358
; 										                     { 
	.dbline 359
; 										                      inmtemp=intm_m;
	sts _inmtemp,R10
	.dbline 360
; 							                                  EEPROMwrite(0x14,inmtemp );
	mov R18,R10
	ldi R16,20
	ldi R17,0
	rcall _EEPROMwrite_extIO
	.dbline 361
; 										                      fbit=0;
	clr R0
	std y+15,R0
	.dbline 362
; 										                      }
	rjmp L152
L157:
	.dbline 365
;                                                               else 
; 															  while(1)
; 																 {
	.dbline 366
; 															      sandchar_display(rst,comtep);
	ldi R18,<_comtep
	ldi R19,>_comtep
	ldi R16,<_rst
	ldi R17,>_rst
	rcall _sandchar_display
	.dbline 367
; 															      if(reset_m==0) {p[0]=48;}
	tst R14
	brne L160
	.dbline 367
	.dbline 367
	ldi R24,48
	lds R30,_p
	lds R31,_p+1
	std z+0,R24
	.dbline 367
L160:
	.dbline 368
; 																  if(reset_m==1) {p[0]=49;}
	mov R24,R14
	cpi R24,1
	brne L162
	.dbline 368
	.dbline 368
	ldi R24,49
	lds R30,_p
	lds R31,_p+1
	std z+0,R24
	.dbline 368
L162:
	.dbline 369
; 																  if(reset_m>=2) {p[0]=15;}
	mov R24,R14
	cpi R24,2
	brlo L164
	.dbline 369
	.dbline 369
	ldi R24,15
	lds R30,_p
	lds R31,_p+1
	std z+0,R24
	.dbline 369
L164:
	.dbline 370
; 												                  key=display_flash(fbit,0,2);
	ldi R24,2
	std y+0,R24
	clr R18
	ldd R16,y+15
	rcall _display_flash
	sts _key,R16
	.dbline 371
; 																  comtep[0]=10;
	ldi R24,10
	sts _comtep,R24
	.dbline 372
; 																  cbit=5;
	ldi R24,5
	std y+16,R24
	.dbline 373
; 																  switch (key)
	mov R2,R16
	clr R3
	std y+12,R3
	std y+11,R2
	movw R24,R2
	cpi R24,19
	ldi R30,0
	cpc R25,R30
	brne X72
	rjmp L55
X72:
	ldi R24,19
	cp R24,R2
	cpc R25,R3
	brlt L219
L218:
	ldd R24,y+11
	ldd R25,y+12
	cpi R24,7
	ldi R30,0
	cpc R25,R30
	breq L169
	cpi R24,11
	ldi R30,0
	cpc R25,R30
	brne X73
	rjmp L215
X73:
	cpi R24,13
	ldi R30,0
	cpc R25,R30
	brne X74
	rjmp L208
X74:
	cpi R24,14

⌨️ 快捷键说明

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