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

📄 main.s

📁 该程序是医院用的CPCR记录仪的终端控制程序
💻 S
📖 第 1 页 / 共 5 页
字号:
	subi R24,255    ; addi 1
	sts _key1mode,R24
	.dbline 701
; 						EEPROMwrite(0x200,key1mode);
	mov R18,R24
	ldi R16,512
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 702
; 						break;
	xjmp L324
L329:
	.dbline 705
; 					
; 						case 2:
; 						keynum=1;
	ldi R24,1
	sts _keynum,R24
	.dbline 706
; 						if(key2mode>2)key2mode=0;
	ldi R24,2
	lds R2,_key2mode
	cp R24,R2
	brsh L330
	.dbline 706
	clr R2
	sts _key2mode,R2
L330:
	.dbline 707
; 						key2mode++;
	lds R24,_key2mode
	subi R24,255    ; addi 1
	sts _key2mode,R24
	.dbline 708
; 						EEPROMwrite(0x200+1,key2mode);
	mov R18,R24
	ldi R16,513
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 709
; 						break;
	xjmp L324
L332:
	.dbline 712
; 					
; 						case 3:
; 						keynum=2;
	ldi R24,2
	sts _keynum,R24
	.dbline 713
; 						if(key3mode>2)key3mode=0;
	lds R2,_key3mode
	cp R24,R2
	brsh L333
	.dbline 713
	clr R2
	sts _key3mode,R2
L333:
	.dbline 714
; 						key3mode++;
	lds R24,_key3mode
	subi R24,255    ; addi 1
	sts _key3mode,R24
	.dbline 715
; 						EEPROMwrite(0x200+2,key3mode);
	mov R18,R24
	ldi R16,514
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 716
; 						break;
	xjmp L324
L335:
	.dbline 719
; 					
; 						case 4:
; 						keynum=3;
	ldi R24,3
	sts _keynum,R24
	.dbline 720
; 						if(key4mode>6)key4mode=0;
	ldi R24,6
	lds R2,_key4mode
	cp R24,R2
	brsh L336
	.dbline 720
	clr R2
	sts _key4mode,R2
L336:
	.dbline 721
; 						key4mode++;
	lds R24,_key4mode
	subi R24,255    ; addi 1
	sts _key4mode,R24
	.dbline 722
; 						EEPROMwrite(0x200+3,key4mode);
	mov R18,R24
	ldi R16,515
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 723
; 						break;
	xjmp L324
L338:
	.dbline 726
; 					
; 						case 5:
; 						keynum=4;
	ldi R24,4
	sts _keynum,R24
	.dbline 727
; 						if(key5mode>6)key5mode=0;
	ldi R24,6
	lds R2,_key5mode
	cp R24,R2
	brsh L339
	.dbline 727
	clr R2
	sts _key5mode,R2
L339:
	.dbline 728
; 						key5mode++;
	lds R24,_key5mode
	subi R24,255    ; addi 1
	sts _key5mode,R24
	.dbline 729
; 						EEPROMwrite(0x200+4,key5mode);
	mov R18,R24
	ldi R16,516
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 730
; 						break;
	xjmp L324
L341:
	.dbline 733
; 					
; 						case 6:
; 						keynum=5;
	ldi R24,5
	sts _keynum,R24
	.dbline 734
; 						if(key6mode>5)key6mode=0;
	lds R2,_key6mode
	cp R24,R2
	brsh L342
	.dbline 734
	clr R2
	sts _key6mode,R2
L342:
	.dbline 735
; 						key6mode++;
	lds R24,_key6mode
	subi R24,255    ; addi 1
	sts _key6mode,R24
	.dbline 736
; 						EEPROMwrite(0x200+5,key6mode);
	mov R18,R24
	ldi R16,517
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 737
; 						break;
	xjmp L324
L344:
	.dbline 740
; 					
; 						case 7:
; 						keynum=6;
	ldi R24,6
	sts _keynum,R24
	.dbline 741
; 						if(key7mode>4)key7mode=0;
	ldi R24,4
	lds R2,_key7mode
	cp R24,R2
	brsh L345
	.dbline 741
	clr R2
	sts _key7mode,R2
L345:
	.dbline 742
; 						key7mode++;
	lds R24,_key7mode
	subi R24,255    ; addi 1
	sts _key7mode,R24
	.dbline 743
; 						EEPROMwrite(0x200+6,key7mode);
	mov R18,R24
	ldi R16,518
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 744
; 						break;
	xjmp L324
L347:
	.dbline 747
; 					
; 						case 8:
; 						keynum=7;
	ldi R24,7
	sts _keynum,R24
	.dbline 748
; 						if(key8mode>4)key8mode=0;
	ldi R24,4
	lds R2,_key8mode
	cp R24,R2
	brsh L348
	.dbline 748
	clr R2
	sts _key8mode,R2
L348:
	.dbline 749
; 						key8mode++;
	lds R24,_key8mode
	subi R24,255    ; addi 1
	sts _key8mode,R24
	.dbline 750
; 						EEPROMwrite(0x200+7,key8mode);
	mov R18,R24
	ldi R16,519
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 751
; 						break;
	xjmp L324
L350:
	.dbline 754
; 						
; 						case 9:
; 						keynum=8;
	ldi R24,8
	sts _keynum,R24
	.dbline 755
; 						if(key9mode>2)key9mode=0;
	ldi R24,2
	lds R2,_key9mode
	cp R24,R2
	brsh L351
	.dbline 755
	clr R2
	sts _key9mode,R2
L351:
	.dbline 756
; 						key9mode++;
	lds R24,_key9mode
	subi R24,255    ; addi 1
	sts _key9mode,R24
	.dbline 757
; 						EEPROMwrite(0x200+8,key9mode);
	mov R18,R24
	ldi R16,520
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 758
; 						break;		
	xjmp L324
L353:
	.dbline 761
; 						
; 						case 0:
; 						keynum=9;
	ldi R24,9
	sts _keynum,R24
	.dbline 762
; 						if(keyamode>4)keyamode=0;
	ldi R24,4
	lds R2,_keyamode
	cp R24,R2
	brsh L354
	.dbline 762
	clr R2
	sts _keyamode,R2
L354:
	.dbline 763
; 						keyamode++;		
	lds R24,_keyamode
	subi R24,255    ; addi 1
	sts _keyamode,R24
	.dbline 764
; 						EEPROMwrite(0x200+9,keyamode);
	mov R18,R24
	ldi R16,521
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 765
; 						break;
	xjmp L324
L356:
	.dbline 768
; 						
; 						case 0x0b:
; 						keynum=10;
	ldi R24,10
	sts _keynum,R24
	.dbline 769
; 						if(keybmode>4)keybmode=0;
	ldi R24,4
	lds R2,_keybmode
	cp R24,R2
	brsh L357
	.dbline 769
	clr R2
	sts _keybmode,R2
L357:
	.dbline 770
; 						keybmode++;		
	lds R24,_keybmode
	subi R24,255    ; addi 1
	sts _keybmode,R24
	.dbline 771
; 						EEPROMwrite(0x200+10,keybmode);
	mov R18,R24
	ldi R16,522
	ldi R17,2
	xcall _EEPROMwrite
	.dbline 772
; 						break;
	.dbline 775
; 																		
; 						default:
; 	 					break;
L324:
	.dbline 778
; 					
; 					}
; 					display_key1();
	xcall _display_key1
	.dbline 779
; 				}
	xjmp L310
L321:
	.dbline 780
; 				else display_key204();
	xcall _display_key204
	.dbline 781
; 			}
	xjmp L310
L309:
	.dbline 782
; 			else if(modemstatus==1)          //手术过程记录状态
	lds R24,_modemstatus
	cpi R24,1
	breq X30
	xjmp L359
X30:
	.dbline 783
; 			{
	.dbline 784
; 			 	 if(readxinghaokey()==0)
	xcall _readxinghaokey
	tst R16
	breq X31
	xjmp L361
X31:
	.dbline 785
; 			 	 {
	.dbline 786
; 			  		if(lockkey_flag==1)lockkey_flag=0;
	lds R24,_lockkey_flag
	cpi R24,1
	brne L363
	.dbline 786
	clr R2
	sts _lockkey_flag,R2
	xjmp L364
L363:
	.dbline 787
; 					else if(lockkey_flag==0)
	lds R2,_lockkey_flag
	tst R2
	breq X32
	xjmp L365
X32:
	.dbline 788
; 					{
	.dbline 789
; 					 	 for(i=0;i<238;i++)
	clr R20
	clr R21
	xjmp L370
L367:
	.dbline 790
	.dbline 791
	clr R18
	movw R16,R20
	subi R16,240  ; offset = 16
	sbci R17,255
	xcall _EEPROMwrite
	.dbline 792
L368:
	.dbline 789
	subi R20,255  ; offset = 1
	sbci R21,255
L370:
	.dbline 789
	cpi R20,238
	ldi R30,0
	cpc R21,R30
	brlo L367
	.dbline 794
; 	   					 {
; 	   					  	EEPROMwrite(0x10+i,0);
;    	   					 }
; 					
; 					 	 lockkey_flag=1;
	ldi R24,1
	sts _lockkey_flag,R24
	.dbline 795
; 						 for(i=0;i<7;i++)
	clr R20
	clr R21
	xjmp L374
L371:
	.dbline 796
	ldi R24,<_time_data
	ldi R25,>_time_data
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_dis_time
	ldi R25,>_dis_time
	movw R30,R20
	add R30,R24
	adc R31,R25
	std z+0,R2
L372:
	.dbline 795
	subi R20,255  ; offset = 1
	sbci R21,255
L374:
	.dbline 795
	cpi R20,7
	ldi R30,0
	cpc R21,R30
	brlo L371
	.dbline 798
; 						 dis_time[i]=time_data[i];
; 						 
; 						 for(i=0;i<12;i++)
	clr R20
	clr R21
	xjmp L378
L375:
	.dbline 799
	ldi R24,<_esckey
	ldi R25,>_esckey
	movw R30,R20
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
L376:
	.dbline 798
	subi R20,255  ; offset = 1
	sbci R21,255
L378:
	.dbline 798
	cpi R20,12
	ldi R30,0
	cpc R21,R30
	brlo L375
	.dbline 801
; 						 esckey[i]=0;
; 						 
; 						 timenum=1;
	ldi R24,1
	sts _timenum,R24
	.dbline 802
; 					}
L365:
L364:
	.dbline 803
; 			 	 }
L361:
	.dbline 804
; 				 if(lockkey_flag==1)
	lds R24,_lockkey_flag
	cpi R24,1
	breq X33
	xjmp L379
X33:
	.dbline 805
; 				 {
	.dbline 806
; 				  	yyj=readnumberkey();
	xcall _readnumberkey
	std y+4,R16
	.dbline 807
; 					switch(yyj)
	mov R22,R16
	clr R23
	cpi R22,0
	cpc R22,R23
	brne X34
	xjmp L384
X34:
X10:
	cpi R22,1
	ldi R30,0
	cpc R23,R30
	brne X35
	xjmp L398
X35:
	cpi R22,2
	ldi R30,0
	cpc R23,R30
	brne X36
	xjmp L412
X36:
	cpi R22,3
	ldi R30,0
	cpc R23,R30
	brne X37
	xjmp L426
X37:
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	brne X38
	xjmp L440
X38:
	cpi R22,5
	ldi R30,0
	cpc R23,R30
	brne X39
	xjmp L454
X39:
	cpi R22,6
	ldi R30,0
	cpc R23,R30
	brne X40
	xjmp L468
X40:
	cpi R22,7
	ldi R30,0
	cpc R23,R30
	brne X41
	xjmp L482
X41:
	cpi R22,8
	ldi R30,0
	cpc R23,R30
	brne X42
	xjmp L496
X42:
	cpi R22,9
	ldi R30,0
	cpc R23,R30
	brne X43
	xjmp L510
X43:
	cpi R22,11
	ldi R30,0
	cpc R23,R30
	brne X44
	xjmp L524
X44:
	xjmp L382
X11:
	.dbline 808
; 					{
L384:
	.dbline 810
; 					 	case 0:
; 							 if(esckey[11]==0)
	lds R2,_esckey+11
	tst R2
	brne L385
	.dbline 811
; 							 {
	.dbline 812
; 							  	for(i=0;i<7;i++)
	clr R20
	clr R21
	xjmp L391
L388:
	.dbline 813
	ldi R24,<_time_data
	ldi R25,>_time_data
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_dis_time
	ldi R25,>_dis_time
	movw R30,R20
	add R30,R24
	adc R31,R25
	std z+0,R2
L389:
	.dbline 812
	subi R20,255  ; offset = 1
	sbci R21,255
L391:
	.dbline 812
	cpi R20,7
	ldi R30,0
	cpc R21,R30
	brlo L388
	.dbline 814
; 							 	dis_time[i]=time_data[i];
; 							 	timenum=11;
	ldi R24,11
	sts _timenum,R24
	.dbline 815
; 								esckey[11]=1;
	ldi R24,1
	sts _esckey+11,R24
	.dbline 816
; 							 	break;
	xjmp L382
L385:
	.dbline 819
; 							 }
; 							 else
; 							 {
	.dbline 820
; 							  	 for(i=0;i<7;i++)
	clr R20
	clr R21
	xjmp L396
L393:
	.dbline 821
	ldi R24,<_dis_time
	ldi R25,>_dis_time
	movw R30,R20
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
L394:
	.dbline 820
	subi R20,255  ; offset = 1
	sbci R21,255
L396:
	.dbline 820
	cpi R20,7
	ldi R30,0
	cpc R21,R30
	brlo L393
	.dbline 822
; 								 dis_time[i]=0;
; 								 timenum=11;
	ldi R24,11
	sts _timenum,R24
	.dbline 823
; 								 esckey[11]=0;
	clr R2
	sts _esckey+11,R2
	.dbline 824
; 								 break;
	xjmp L382
L398:
	.dbline 827
; 							 }
; 						case 1:
; 							 if(esckey[2]==0)
	lds R2,_esckey+2
	tst R2
	brne L399
	.dbline 828
; 							 {
	.dbline 829
; 							  	 for(i=0;i<7;i++)
	clr R20
	clr R21
	xjmp L405
L402:
	.dbline 830
	ldi R24,<_time_data
	ldi R25,>_time_data
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_dis_time
	ldi R25,>_dis_time
	movw R30,R20
	add R30,R24
	adc R31,R25
	std z+0,R2
L403:
	.dbline 829
	subi R20,255  ; offset = 1
	sbci R21,255
L405:
	.dbline 829
	cpi R20,7
	ldi R30,0
	cpc R21,R30
	brlo L402
	.dbline 831
; 							 	 dis_time[i]=time_data[i];
; 							 	 timenum=2;
	ldi R24,2
	sts _timenum,R24
	.dbline 832
; 								 esckey[2]=1;
	ldi R24,1
	sts _esckey+2,R24
	.dbline 833
; 							 	 break;
	xjmp L382
L399:
	.dbline 836
; 							 }
; 							 else
; 							 {
	.dbline 837
; 							  	 for(i=0;i<7;i++)
	clr R20
	clr R21
	xjmp L410
L407:
	.dbline 838
	ldi R24,<_dis_time
	ldi R25,>_dis_time
	movw R30,R20
	add R30,R24
	adc R31,R25
	clr R2
	std z+0,R2
L408:
	.dbline 837
	subi R20,255  ; offset = 1
	sbci R21,255
L410:
	.dbline 837
	cpi R20,7
	ldi R30,0
	cpc R21,R30
	brlo L407
	.dbline 839
; 								 dis_time[i]=0;
; 								 timenum=2;
	ldi R24,2
	sts _timenum,R24
	.dbline 840
; 								 esckey[2]=0;
	clr R2
	sts _esckey+2,R2
	.dbline 841
; 								 break;
	xjmp L382
L412:
	.dbline 844
; 							 }
; 						case 2:
; 							 if(esckey[3]==0)
	lds R2,_esckey+3
	tst R2
	brne L413
	.dbline 845
; 							 {
	.dbline 846
; 							  	for(i=0;i<7;i++)
	clr R20
	clr R21
	xjmp L419
L416:
	.dbline 847
	ldi R24,<_time_data
	ldi R25,>_time_data
	movw R30,R20
	add R30,R24
	adc R31,R25
	ldd R2,z+0
	ldi R24,<_dis_time
	ldi R25,>_dis_time
	movw R30,R20
	add R30,R24
	adc R31,R25
	std z+0,R2
L417:
	.dbline 8

⌨️ 快捷键说明

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