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

📄 main.s

📁 已经上传的YF-320240-3.5寸彩屏(可由单片机控制)的测试程序。主CPU为MEGA128
💻 S
📖 第 1 页 / 共 4 页
字号:
	.dbline 442
; 				    Dis_Rect(100,165,160,50,BLUE);
	ldi R24,3
	std y+4,R24
	ldi R24,50
	std y+2,R24
	ldi R24,160
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,165
	ldi R16,100
	ldi R17,0
	xcall _Dis_Rect
	.dbline 443
; 					Time_flag = 1;
	ldi R24,1
	sts _Time_flag,R24
	.dbline 445
; 					
; 					DisTimeAll(100,165,BLACK,BLUE);
	ldi R24,3
	std y+2,R24
	clr R2
	std y+0,R2
	ldi R18,165
	ldi R16,100
	ldi R17,0
	xcall _DisTimeAll
	.dbline 446
; 				}
	xjmp L92
L94:
	.dbline 447
; 				else if(Time_flag == 1)
	lds R24,_Time_flag
	cpi R24,1
	breq X5
	xjmp L92
X5:
	.dbline 448
; 				{
	.dbline 449
; 				    Time_flag = 0;
	clr R2
	sts _Time_flag,R2
	.dbline 450
; 					Dis_Rect(100,165,160,50,WHITE);	
	ldi R24,255
	std y+4,R24
	ldi R24,50
	std y+2,R24
	ldi R24,160
	ldi R25,0
	std y+1,R25
	std y+0,R24
	ldi R18,165
	ldi R16,100
	ldi R17,0
	xcall _Dis_Rect
	.dbline 452
; 					
; 				}
	.dbline 453
; 			}
	xjmp L92
L91:
	.dbline 454
; 			else if(GetCursor(Start[2]))
	ldi R24,<_Start+34
	ldi R25,>_Start+34
	movw R30,R28
	adiw R30,24
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,232  ; offset = 24
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L98
	.dbline 455
; 			{
	.dbline 456
; 			    Screen_Color(0);
	clr R16
	xcall _Screen_Color
	.dbline 457
; 			}
	xjmp L99
L98:
	.dbline 458
; 			else if(GetCursor(Start[0]))
	ldi R24,<_Start
	ldi R25,>_Start
	movw R30,R28
	adiw R30,41
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,215  ; offset = 41
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L101
	.dbline 459
; 			{
	.dbline 461
; 			     
; 				 Screen_Color(Color_Count);
	lds R16,_Color_Count
	xcall _Screen_Color
	.dbline 462
; 			}
	xjmp L102
L101:
	.dbline 463
; 			else if(GetCursor(Start[4]))
	ldi R24,<_Start+68
	ldi R25,>_Start+68
	movw R30,R28
	adiw R30,58
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,198  ; offset = 58
	sbci R17,255
	xcall _GetCursor
	tst R16
	brne X6
	xjmp L103
X6:
	.dbline 464
; 			{
	.dbline 466
; 			    
; 				Start_Time();
	xcall _Start_Time
	.dbline 467
; 				cursor.x = 0;
	clr R2
	clr R3
	sts _cursor+1,R3
	sts _cursor,R2
	.dbline 468
; 				cursor.y = 0;
	sts _cursor+2,R2
	.dbline 469
; 				for(i=0;i<14;i++)
	clr R10
	clr R11
	xjmp L110
L107:
	.dbline 470
	.dbline 471
	ldi R24,<_time_temp
	ldi R25,>_time_temp
	movw R30,R10
	add R30,R24
	adc R31,R25
	ldi R24,32
	std z+0,R24
	.dbline 472
L108:
	.dbline 469
	movw R24,R10
	adiw R24,1
	movw R10,R24
L110:
	.dbline 469
	movw R24,R10
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brlo L107
	xjmp L112
L111:
	.dbline 475
; 				{
; 				    time_temp[i] = ' ';
; 				}
; 				//time_temp[14] = 0;
; 				while(1)
; 			{
	.dbline 476
; 				if(cursor.flag)
	lds R2,_cursor+6
	tst R2
	brne X7
	xjmp L114
X7:
	.dbline 477
; 			    {	
	.dbline 478
; 				if(GetCursor(TimeSet[0]))//年设定
	ldi R24,<_TimeSet
	ldi R25,>_TimeSet
	movw R30,R28
	subi R30,181  ; offset = 75
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,181  ; offset = 75
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L117
	.dbline 479
; 				 {
	.dbline 480
; 					 Input_Data();
	xcall _Input_Data
	.dbline 481
; 					 time_temp[0] = input_buffer[5];
	lds R2,_input_buffer+5
	sts _time_temp,R2
	.dbline 482
; 					 time_temp[1] = input_buffer[6];
	lds R2,_input_buffer+6
	sts _time_temp+1,R2
	.dbline 483
; 					 time_temp[2] = input_buffer[7];
	lds R2,_input_buffer+7
	sts _time_temp+2,R2
	.dbline 484
; 					 time_temp[3] = input_buffer[8];
	lds R2,_input_buffer+8
	sts _time_temp+3,R2
	.dbline 485
; 				     input_buffer[5] = ' ';
	ldi R24,32
	sts _input_buffer+5,R24
	.dbline 486
; 				     input_buffer[6] = ' ';
	sts _input_buffer+6,R24
	.dbline 487
; 					 input_buffer[7] = ' ';
	sts _input_buffer+7,R24
	.dbline 488
; 					 input_buffer[8] = ' ';
	sts _input_buffer+8,R24
	.dbline 489
; 					 input_buffer[9] = 0;
	clr R2
	sts _input_buffer+9,R2
	.dbline 492
; 					 
; 					 
; 				     Start_Time();
	xcall _Start_Time
	.dbline 493
; 				     DisSetTime(time_temp,0,RED,WHITE);
	ldi R24,255
	std y+2,R24
	ldi R24,224
	std y+0,R24
	clr R18
	ldi R16,<_time_temp
	ldi R17,>_time_temp
	xcall _DisSetTime
	.dbline 494
; 				 }
	xjmp L118
L117:
	.dbline 495
; 				 else if(GetCursor(TimeSet[1]))//月设定
	ldi R24,<_TimeSet+17
	ldi R25,>_TimeSet+17
	movw R30,R28
	subi R30,164  ; offset = 92
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,164  ; offset = 92
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L131
	.dbline 496
; 				 {
	.dbline 497
; 					 Input_Data();
	xcall _Input_Data
	.dbline 498
; 					 time_temp[4] = input_buffer[7];
	lds R2,_input_buffer+7
	sts _time_temp+4,R2
	.dbline 499
; 					 time_temp[5] = input_buffer[8];
	lds R2,_input_buffer+8
	sts _time_temp+5,R2
	.dbline 500
; 					 input_buffer[7] = ' ';
	ldi R24,32
	sts _input_buffer+7,R24
	.dbline 501
; 					  input_buffer[8] = ' ';
	sts _input_buffer+8,R24
	.dbline 502
; 					  input_buffer[9] = 0;
	clr R2
	sts _input_buffer+9,R2
	.dbline 505
; 					
; 					 
; 				     Start_Time();
	xcall _Start_Time
	.dbline 506
; 				     DisSetTime(time_temp,0,RED,WHITE);
	ldi R24,255
	std y+2,R24
	ldi R24,224
	std y+0,R24
	clr R18
	ldi R16,<_time_temp
	ldi R17,>_time_temp
	xcall _DisSetTime
	.dbline 507
; 				 }
	xjmp L132
L131:
	.dbline 508
; 				 else if(GetCursor(TimeSet[2]))//日设定
	ldi R24,<_TimeSet+34
	ldi R25,>_TimeSet+34
	movw R30,R28
	subi R30,147  ; offset = 109
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,147  ; offset = 109
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L141
	.dbline 509
; 				 {
	.dbline 510
; 					  Input_Data();
	xcall _Input_Data
	.dbline 511
; 					  time_temp[6] = input_buffer[7];
	lds R2,_input_buffer+7
	sts _time_temp+6,R2
	.dbline 512
; 					  time_temp[7] = input_buffer[8];
	lds R2,_input_buffer+8
	sts _time_temp+7,R2
	.dbline 513
; 					  input_buffer[7] = ' ';
	ldi R24,32
	sts _input_buffer+7,R24
	.dbline 514
; 					  input_buffer[8] = ' ';
	sts _input_buffer+8,R24
	.dbline 515
; 					  input_buffer[9] = 0;
	clr R2
	sts _input_buffer+9,R2
	.dbline 518
; 					  
; 					  
; 				      Start_Time();
	xcall _Start_Time
	.dbline 519
; 				      DisSetTime(time_temp,0,RED,WHITE);
	ldi R24,255
	std y+2,R24
	ldi R24,224
	std y+0,R24
	clr R18
	ldi R16,<_time_temp
	ldi R17,>_time_temp
	xcall _DisSetTime
	.dbline 520
; 				 }
	xjmp L142
L141:
	.dbline 521
; 				 else if(GetCursor(TimeSet[3]))//时设定
	ldi R24,<_TimeSet+51
	ldi R25,>_TimeSet+51
	movw R30,R28
	subi R30,130  ; offset = 126
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,130  ; offset = 126
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L151
	.dbline 522
; 				 {
	.dbline 523
; 					  Input_Data();
	xcall _Input_Data
	.dbline 524
; 					  time_temp[8] = input_buffer[7];
	lds R2,_input_buffer+7
	sts _time_temp+8,R2
	.dbline 525
; 					  time_temp[9] = input_buffer[8];
	lds R2,_input_buffer+8
	sts _time_temp+9,R2
	.dbline 526
; 					  input_buffer[7] = ' ';
	ldi R24,32
	sts _input_buffer+7,R24
	.dbline 527
; 					  input_buffer[8] = ' ';
	sts _input_buffer+8,R24
	.dbline 528
; 					  input_buffer[9] = 0;
	clr R2
	sts _input_buffer+9,R2
	.dbline 531
; 					 
; 					 
; 				      Start_Time();
	xcall _Start_Time
	.dbline 532
; 				      DisSetTime(time_temp,0,RED,WHITE);
	ldi R24,255
	std y+2,R24
	ldi R24,224
	std y+0,R24
	clr R18
	ldi R16,<_time_temp
	ldi R17,>_time_temp
	xcall _DisSetTime
	.dbline 533
; 				 }
	xjmp L152
L151:
	.dbline 534
; 				 else if(GetCursor(TimeSet[4]))//分设定
	ldi R24,<_TimeSet+68
	ldi R25,>_TimeSet+68
	movw R30,R28
	subi R30,113  ; offset = 143
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,113  ; offset = 143
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L161
	.dbline 535
; 				 {
	.dbline 536
; 					  Input_Data();
	xcall _Input_Data
	.dbline 537
; 					  time_temp[10] = input_buffer[7];
	lds R2,_input_buffer+7
	sts _time_temp+10,R2
	.dbline 538
; 					  time_temp[11] = input_buffer[8];
	lds R2,_input_buffer+8
	sts _time_temp+11,R2
	.dbline 539
; 					  input_buffer[7] = ' ';
	ldi R24,32
	sts _input_buffer+7,R24
	.dbline 540
; 					  input_buffer[8] = ' ';
	sts _input_buffer+8,R24
	.dbline 541
; 					  input_buffer[9] = 0;
	clr R2
	sts _input_buffer+9,R2
	.dbline 544
; 					  
; 					  
; 				      Start_Time();
	xcall _Start_Time
	.dbline 545
; 				      DisSetTime(time_temp,0,RED,WHITE);
	ldi R24,255
	std y+2,R24
	ldi R24,224
	std y+0,R24
	clr R18
	ldi R16,<_time_temp
	ldi R17,>_time_temp
	xcall _DisSetTime
	.dbline 546
; 				 }
	xjmp L162
L161:
	.dbline 547
; 				 else if(GetCursor(TimeSet[5]))//秒设定
	ldi R24,<_TimeSet+85
	ldi R25,>_TimeSet+85
	movw R30,R28
	subi R30,96  ; offset = 160
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,96  ; offset = 160
	sbci R17,255
	xcall _GetCursor
	tst R16
	breq L171
	.dbline 548
; 				 {
	.dbline 549
; 					  Input_Data();
	xcall _Input_Data
	.dbline 550
; 					  time_temp[12] = input_buffer[7];
	lds R2,_input_buffer+7
	sts _time_temp+12,R2
	.dbline 551
; 					  time_temp[13] = input_buffer[8];
	lds R2,_input_buffer+8
	sts _time_temp+13,R2
	.dbline 552
; 					  input_buffer[7] = ' ';
	ldi R24,32
	sts _input_buffer+7,R24
	.dbline 553
; 					  input_buffer[8] = ' ';
	sts _input_buffer+8,R24
	.dbline 554
; 					  input_buffer[9] = 0;
	clr R2
	sts _input_buffer+9,R2
	.dbline 557
; 					  
; 					  
; 				      Start_Time();
	xcall _Start_Time
	.dbline 558
; 				      DisSetTime(time_temp,0,RED,WHITE);
	ldi R24,255
	std y+2,R24
	ldi R24,224
	std y+0,R24
	clr R18
	ldi R16,<_time_temp
	ldi R17,>_time_temp
	xcall _DisSetTime
	.dbline 559
; 				 }
	xjmp L172
L171:
	.dbline 560
; 				 else if(GetCursor(TimeSet[6]))//确认保存
	ldi R24,<_TimeSet+102
	ldi R25,>_TimeSet+102
	movw R30,R28
	subi R30,79  ; offset = 177
	sbci R31,255
	ldi R16,17
	ldi R17,0
	st -y,R31
	st -y,R30
	st -y,R25
	st -y,R24
	xcall asgncblk
	movw R16,R28
	subi R16,79  ; offset = 177
	sbci R17,255
	xcall _GetCursor
	tst R16
	brne X8
	xjmp L181
X8:
	.dbline 561
; 				 {
	.dbline 562
; 				     for(i = 0;i<14;i++)
	clr R10
	clr R11
	xjmp L187
L184:
	.dbline 563
; 					 {
	.dbline 564
; 					     if(time_temp[i] == ' ')
	ldi R24,<_time_temp
	ldi R25,>_time_temp
	movw R30,R10
	add R30,R24
	adc R31,R25
	ldd R24,z+0
	cpi R24,32
	brne L188
	.dbline 565
; 						 {
	.dbline 566
; 						     time_temp[i] = '0';
	ldi R24,<_time_temp
	ldi R25,>_time_temp
	movw R30,R10
	add R30,R24
	adc R31,R25
	ldi R24,48
	std z+0,R24
	.dbline 567
; 						 }
L188:
	.dbline 568
L185:
	.dbline 562
	movw R24,R10
	adiw R24,1
	movw R10,R24
L187:
	.dbline 562
	movw R24,R10
	cpi R24,14
	ldi R30,0
	cpc R25,R30
	brlo L184
	.dbline 569
; 					 }
; 				     REG_B=0xb2;
	ldi R24,178
	sts 45067,R24
	.dbline 570
;     				 SECOND = (time_temp[12]-0x30)*16 + (time_temp[13] -0x30); //second
	lds R2,_time_temp+12
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+13
	subi R25,48
	add R24,R25
	sts 45056,R24
	.dbline 571
;     				 MINUTE = (time_temp[10]-0x30)*16 + (time_temp[11] -0x30); //minutes
	lds R2,_time_temp+10
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+11
	subi R25,48
	add R24,R25
	sts 45058,R24
	.dbline 572
;     				 HOUR = (time_temp[8]-0x30)*16 + (time_temp[9] -0x30);   //hour
	lds R2,_time_temp+8
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+9
	subi R25,48
	add R24,R25
	sts 45060,R24
	.dbline 573
;     				 DAY = (time_temp[6]-0x30)*16 + (time_temp[7] -0x30);   //day
	lds R2,_time_temp+6
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+7
	subi R25,48
	add R24,R25
	sts 45063,R24
	.dbline 574
;     				 MONTH = (time_temp[4]-0x30)*16 + (time_temp[5] -0x30);  //month
	lds R2,_time_temp+4
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+5
	subi R25,48
	add R24,R25
	sts 45064,R24
	.dbline 575
;     				 YEAR = (time_temp[2]-0x30)*16 + (time_temp[3] -0x30);  //year
	lds R2,_time_temp+2
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+3
	subi R25,48
	add R24,R25
	sts 45065,R24
	.dbline 576
; 					 REG_E = (time_temp[0]-0x30)*16 + (time_temp[1] -0x30);//year high byte
	lds R2,_time_temp
	ldi R24,16
	mul R24,R2
	mov R24,R0
	subi R24,0
	lds R25,_time_temp+1
	subi R25,48
	add R24,R25
	sts 45070,R24
	.dbline 577

⌨️ 快捷键说明

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