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

📄 main.s

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 S
📖 第 1 页 / 共 5 页
字号:
	.dbline 0 ; func end
	ret
	.dbsym r tt 20 c
	.dbsym r ll 20 c
	.dbsym r i 20 c
	.dbend
	.dbfunc e timer1_init _timer1_init fV
	.even
_timer1_init::
	.dbline -1
	.dbline 212
; 	   else ;
; 	   
; }
; void timer1_init(void)
; {
	.dbline 213
;  	 TCCR1B = 0x00; //stop
	clr R2
	out 0x2e,R2
	.dbline 214
;  	 TCNT1H = 0xFD; //setup
	ldi R24,253
	out 0x2d,R24
	.dbline 215
;  	 TCNT1L = 0xE5;
	ldi R24,229
	out 0x2c,R24
	.dbline 216
;  	 TCCR1A = 0x00;
	out 0x2f,R2
	.dbline 217
;  	 TCCR1B = 0x05; //start Timer
	ldi R24,5
	out 0x2e,R24
	.dbline -2
L51:
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e timer0_init _timer0_init fV
	.even
_timer0_init::
	.dbline -1
	.dbline 220
; }
; void timer0_init(void)   //1ms
; {
	.dbline 221
;  	 TCCR0 = 0x00; //stop
	clr R2
	out 0x33,R2
	.dbline 223
; // 	 ASSR  = 0x00; //set async mode
;  	 TCNT0 = 0x54; //set count
	ldi R24,84
	out 0x32,R24
	.dbline 225
; // 	 OCR0  = 0xAC;
;  	 TCCR0 = 0x04; //start timer
	ldi R24,4
	out 0x33,R24
	.dbline -2
L52:
	.dbline 0 ; func end
	ret
	.dbend
	.area vector(rom, abs)
	.org 64
	jmp _timer0_ovf_isr
	.area text(rom, con, rel)
	.dbfile F:\yyjapp\yymk\software\main.c
	.dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
	.even
_timer0_ovf_isr::
	st -y,R2
	st -y,R3
	st -y,R24
	st -y,R25
	in R2,0x3f
	st -y,R2
	.dbline -1
	.dbline 230
	.dbline 232
	ldi R24,84
	out 0x32,R24
	.dbline 233
	lds R24,_commtimer
	lds R25,_commtimer+1
	adiw R24,1
	sts _commtimer+1,R25
	sts _commtimer,R24
	.dbline 234
	ldi R24,1950
	ldi R25,7
	lds R2,_commtimer
	lds R3,_commtimer+1
	cp R24,R2
	cpc R25,R3
	brsh L54
	.dbline 235
	.dbline 236
	clr R2
	clr R3
	sts _commtimer+1,R3
	sts _commtimer,R2
	.dbline 238
L54:
	.dbline -2
L53:
	ld R2,y+
	out 0x3f,R2
	ld R25,y+
	ld R24,y+
	ld R3,y+
	ld R2,y+
	.dbline 0 ; func end
	reti
	.dbend
	.dbfunc e beep _beep fV
;         second -> R16
	.even
_beep::
	.dbline -1
	.dbline 241
; }
; 
; #pragma interrupt_handler timer0_ovf_isr:17
; void timer0_ovf_isr(void)
; {
; // 	 unsigned char oop;
; 	 TCNT0 = 0x54;                 //1ms
; 	 commtimer++;
; 	 if(commtimer>1950)
; 	 {
; 	  	commtimer=0;
; //		WDR();
; 	 }
; }
; void beep(unsigned char second)
; {
	.dbline 242
;  	 beep_second=second;
	sts _beep_second,R16
	.dbline 243
; 	 beep_flag=1;
	ldi R24,1
	sts _beep_flag,R24
	.dbline 244
; 	 CLEAR_BELL();
	sbi 0x17,5
	.dbline 245
; 	 CLEAR_LED0();
	sbi 0x11,7
	.dbline 246
; 	 timer=0;
	clr R2
	clr R3
	sts _timer+1,R3
	sts _timer,R2
	.dbline -2
L56:
	.dbline 0 ; func end
	ret
	.dbsym r second 16 c
	.dbend
	.dbfunc e COMM_RX _COMM_RX fV
	.even
_COMM_RX::
	xcall push_gset1
	.dbline -1
	.dbline 249
; }
; void COMM_RX(void)
; {
	.dbline 250
;  		RxHead0=0;
	clr R2
	sts _RxHead0,R2
	.dbline 252
; 		
; 		sio_flag=0;
	sts _sio_flag,R2
	.dbline 254
; //		CLEAR_LED0();
; 		switch(RX_BUF0[1])
	lds R20,_RX_BUF0+1
	clr R21
	cpi R20,34
	ldi R30,0
	cpc R21,R30
	breq L63
	ldi R24,34
	ldi R25,0
	cp R24,R20
	cpc R25,R21
	brlt L66
L65:
	cpi R20,17
	ldi R30,0
	cpc R21,R30
	breq L62
	xjmp L59
L66:
	cpi R20,51
	ldi R30,0
	cpc R21,R30
	breq L64
	xjmp L59
X3:
	.dbline 255
; 		{
L62:
	.dbline 261
; //		  	case 0x01:
; //			senddata(0);
; //			break;
; 			
; 			case 0x11:
; 			setup_curtime();                //设置模块当前时间
	xcall _setup_curtime
	.dbline 262
; 			break;
	xjmp L59
L63:
	.dbline 265
; 			
; 			case 0x22:                     //采集时间记录
; 			colle_time();
	xcall _colle_time
	.dbline 266
; 			break;
	xjmp L59
L64:
	.dbline 269
	xcall _colle_even
	.dbline 270
	.dbline 273
L59:
	.dbline -2
L57:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e colle_even _colle_even fV
;              i -> R20
	.even
_colle_even::
	xcall push_gset1
	.dbline -1
	.dbline 277
; 			
; 			case 0x33:                      //采集事件记录
; 			colle_even();
; 			break;
; 			
; 			default:
; 			break;
; 		}
; }
; void colle_even(void)
; {
	.dbline 279
;  	 unsigned char i;
; 	 for(i=0;i<12;i++)
	clr R20
	xjmp L71
L68:
	.dbline 280
	mov R16,R20
	clr R17
	subi R16,0  ; offset = 512
	sbci R17,254
	xcall _EEPROMread
	ldi R24,<_even_data
	ldi R25,>_even_data
	mov R30,R20
	clr R31
	add R30,R24
	adc R31,R25
	std z+0,R16
L69:
	.dbline 279
	inc R20
L71:
	.dbline 279
	cpi R20,12
	brlo L68
	.dbline 281
; 	 even_data[i]=EEPROMread(0x200+i);
; 	 send_even();
	xcall _send_even
	.dbline 282
; 	 beep(2);
	ldi R16,2
	xcall _beep
	.dbline -2
L67:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 c
	.dbend
	.dbfunc e send_even _send_even fV
;              i -> R20,R21
	.even
_send_even::
	xcall push_gset1
	.dbline -1
	.dbline 286
; 	 
; }
; void send_even(void)
; {
	.dbline 288
;  	unsigned int i;
; 	SET_LIGHT();
	cbi 0x17,6
	.dbline 289
; 	TX_BUF0[0]=0x33;
	ldi R24,51
	sts _TX_BUF0,R24
	.dbline 290
; 	TX_BUF0[1]=15;
	ldi R24,15
	sts _TX_BUF0+1,R24
	.dbline 291
; 	TX_BUF0[2]=even_data[0];
	lds R2,_even_data
	sts _TX_BUF0+2,R2
	.dbline 292
; 	TX_BUF0[3]=even_data[1];
	lds R2,_even_data+1
	sts _TX_BUF0+3,R2
	.dbline 293
; 	TX_BUF0[4]=even_data[2];
	lds R2,_even_data+2
	sts _TX_BUF0+4,R2
	.dbline 294
; 	TX_BUF0[5]=even_data[3];
	lds R2,_even_data+3
	sts _TX_BUF0+5,R2
	.dbline 295
; 	TX_BUF0[6]=even_data[4];
	lds R2,_even_data+4
	sts _TX_BUF0+6,R2
	.dbline 296
; 	TX_BUF0[7]=even_data[5];
	lds R2,_even_data+5
	sts _TX_BUF0+7,R2
	.dbline 297
; 	TX_BUF0[8]=even_data[6];
	lds R2,_even_data+6
	sts _TX_BUF0+8,R2
	.dbline 298
; 	TX_BUF0[9]=even_data[7];
	lds R2,_even_data+7
	sts _TX_BUF0+9,R2
	.dbline 299
; 	TX_BUF0[10]=even_data[8];
	lds R2,_even_data+8
	sts _TX_BUF0+10,R2
	.dbline 300
; 	TX_BUF0[11]=even_data[9];
	lds R2,_even_data+9
	sts _TX_BUF0+11,R2
	.dbline 301
; 	TX_BUF0[12]=even_data[10];
	lds R2,_even_data+10
	sts _TX_BUF0+12,R2
	.dbline 303
; 	
; 	TX_BUF0[13]=0x03;
	ldi R24,3
	sts _TX_BUF0+13,R24
	.dbline 304
; 	TransmitByte0(TX_BUF0,14);
	ldi R18,14
	ldi R16,<_TX_BUF0
	ldi R17,>_TX_BUF0
	xcall _TransmitByte0
	.dbline 305
	clr R20
	clr R21
	xjmp L99
L96:
	.dbline 305
L97:
	.dbline 305
	subi R20,255  ; offset = 1
	sbci R21,255
L99:
	.dbline 305
; 	for(i=0;i<3800;i++);
	cpi R20,216
	ldi R30,14
	cpc R21,R30
	brlo L96
	.dbline 306
; 	CLEAR_LIGHT();
	sbi 0x17,6
	.dbline -2
L72:
	xcall pop_gset1
	.dbline 0 ; func end
	ret
	.dbsym r i 20 i
	.dbend
	.dbfunc e colle_time _colle_time fV
;              i -> R20,R21
	.even
_colle_time::
	xcall push_gset1
	.dbline -1
	.dbline 309
; }
; void colle_time(void)
; {
	.dbline 312
;  	unsigned int i;
; 	
; 	TX_BUF0[0]=0x22;
	ldi R24,34
	sts _TX_BUF0,R24
	.dbline 313
; 	TX_BUF0[1]=88;
	ldi R24,88
	sts _TX_BUF0+1,R24
	.dbline 314
; 	TX_BUF0[2]=EEPROMread(1*16+0);
	ldi R16,16
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+2,R16
	.dbline 315
; 	TX_BUF0[3]=EEPROMread(1*16+1);
	ldi R16,17
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+3,R16
	.dbline 316
; 	TX_BUF0[4]=EEPROMread(1*16+2);
	ldi R16,18
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+4,R16
	.dbline 317
; 	TX_BUF0[5]=EEPROMread(1*16+3);
	ldi R16,19
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+5,R16
	.dbline 318
; 	TX_BUF0[6]=EEPROMread(1*16+4);
	ldi R16,20
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+6,R16
	.dbline 319
; 	TX_BUF0[7]=EEPROMread(1*16+5);
	ldi R16,21
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+7,R16
	.dbline 320
; 	TX_BUF0[8]=EEPROMread(1*16+6);
	ldi R16,22
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+8,R16
	.dbline 322
; 	
; 	TX_BUF0[9]=EEPROMread(2*16+0);
	ldi R16,32
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+9,R16
	.dbline 323
; 	TX_BUF0[10]=EEPROMread(2*16+1);
	ldi R16,33
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+10,R16
	.dbline 324
; 	TX_BUF0[11]=EEPROMread(2*16+2);
	ldi R16,34
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+11,R16
	.dbline 325
; 	TX_BUF0[12]=EEPROMread(2*16+3);
	ldi R16,35
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+12,R16
	.dbline 326
; 	TX_BUF0[13]=EEPROMread(2*16+4);
	ldi R16,36
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+13,R16
	.dbline 327
; 	TX_BUF0[14]=EEPROMread(2*16+5);
	ldi R16,37
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+14,R16
	.dbline 328
; 	TX_BUF0[15]=EEPROMread(2*16+6);
	ldi R16,38
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+15,R16
	.dbline 330
; 	
; 	TX_BUF0[16]=EEPROMread(3*16+0);
	ldi R16,48
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+16,R16
	.dbline 331
; 	TX_BUF0[17]=EEPROMread(3*16+1);
	ldi R16,49
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+17,R16
	.dbline 332
; 	TX_BUF0[18]=EEPROMread(3*16+2);
	ldi R16,50
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+18,R16
	.dbline 333
; 	TX_BUF0[19]=EEPROMread(3*16+3);
	ldi R16,51
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+19,R16
	.dbline 334
; 	TX_BUF0[20]=EEPROMread(3*16+4);
	ldi R16,52
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+20,R16
	.dbline 335
; 	TX_BUF0[21]=EEPROMread(3*16+5);
	ldi R16,53
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+21,R16
	.dbline 336
; 	TX_BUF0[22]=EEPROMread(3*16+6);
	ldi R16,54
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+22,R16
	.dbline 338
; 	
; 	TX_BUF0[23]=EEPROMread(4*16+0);
	ldi R16,64
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+23,R16
	.dbline 339
; 	TX_BUF0[24]=EEPROMread(4*16+1);
	ldi R16,65
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+24,R16
	.dbline 340
; 	TX_BUF0[25]=EEPROMread(4*16+2);
	ldi R16,66
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+25,R16
	.dbline 341
; 	TX_BUF0[26]=EEPROMread(4*16+3);
	ldi R16,67
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+26,R16
	.dbline 342
; 	TX_BUF0[27]=EEPROMread(4*16+4);
	ldi R16,68
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+27,R16
	.dbline 343
; 	TX_BUF0[28]=EEPROMread(4*16+5);
	ldi R16,69
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+28,R16
	.dbline 344
; 	TX_BUF0[29]=EEPROMread(4*16+6);
	ldi R16,70
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+29,R16
	.dbline 346
; 	
; 	TX_BUF0[30]=EEPROMread(5*16+0);
	ldi R16,80
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+30,R16
	.dbline 347
; 	TX_BUF0[31]=EEPROMread(5*16+1);
	ldi R16,81
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+31,R16
	.dbline 348
; 	TX_BUF0[32]=EEPROMread(5*16+2);
	ldi R16,82
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+32,R16
	.dbline 349
; 	TX_BUF0[33]=EEPROMread(5*16+3);
	ldi R16,83
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+33,R16
	.dbline 350
; 	TX_BUF0[34]=EEPROMread(5*16+4);
	ldi R16,84
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+34,R16
	.dbline 351
; 	TX_BUF0[35]=EEPROMread(5*16+5);
	ldi R16,85
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+35,R16
	.dbline 352
; 	TX_BUF0[36]=EEPROMread(5*16+6);
	ldi R16,86
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+36,R16
	.dbline 354
; 	
; 	TX_BUF0[37]=EEPROMread(6*16+0);
	ldi R16,96
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+37,R16
	.dbline 355
; 	TX_BUF0[38]=EEPROMread(6*16+1);
	ldi R16,97
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+38,R16
	.dbline 356
; 	TX_BUF0[39]=EEPROMread(6*16+2);
	ldi R16,98
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+39,R16
	.dbline 357
; 	TX_BUF0[40]=EEPROMread(6*16+3);
	ldi R16,99
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+40,R16
	.dbline 358
; 	TX_BUF0[41]=EEPROMread(6*16+4);
	ldi R16,100
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+41,R16
	.dbline 359
; 	TX_BUF0[42]=EEPROMread(6*16+5);
	ldi R16,101
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+42,R16
	.dbline 360
; 	TX_BUF0[43]=EEPROMread(6*16+6);
	ldi R16,102
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+43,R16
	.dbline 362
; 	
; 	TX_BUF0[44]=EEPROMread(7*16+0);
	ldi R16,112
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+44,R16
	.dbline 363
; 	TX_BUF0[45]=EEPROMread(7*16+1);
	ldi R16,113
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+45,R16
	.dbline 364
; 	TX_BUF0[46]=EEPROMread(7*16+2);
	ldi R16,114
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+46,R16
	.dbline 365
; 	TX_BUF0[47]=EEPROMread(7*16+3);
	ldi R16,115
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+47,R16
	.dbline 366
; 	TX_BUF0[48]=EEPROMread(7*16+4);
	ldi R16,116
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+48,R16
	.dbline 367
; 	TX_BUF0[49]=EEPROMread(7*16+5);
	ldi R16,117
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+49,R16
	.dbline 368
; 	TX_BUF0[50]=EEPROMread(7*16+6);
	ldi R16,118
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+50,R16
	.dbline 370
; 	
; 	TX_BUF0[51]=EEPROMread(8*16+0);
	ldi R16,128
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+51,R16
	.dbline 371
; 	TX_BUF0[52]=EEPROMread(8*16+1);
	ldi R16,129
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+52,R16
	.dbline 372
; 	TX_BUF0[53]=EEPROMread(8*16+2);
	ldi R16,130
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+53,R16
	.dbline 373
; 	TX_BUF0[54]=EEPROMread(8*16+3);
	ldi R16,131
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+54,R16
	.dbline 374
; 	TX_BUF0[55]=EEPROMread(8*16+4);
	ldi R16,132
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+55,R16
	.dbline 375
; 	TX_BUF0[56]=EEPROMread(8*16+5);
	ldi R16,133
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+56,R16
	.dbline 376
; 	TX_BUF0[57]=EEPROMread(8*16+6);
	ldi R16,134
	ldi R17,0
	xcall _EEPROMread
	sts _TX_BUF0+57,R16
	.dbline 378
; 	
; 	TX_BUF0[58]=EEPROMread(9*16+0);
	ldi R16,144
	ldi R17,0

⌨️ 快捷键说明

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