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

📄 ds1302.s

📁 DS1302
💻 S
📖 第 1 页 / 共 5 页
字号:
	rjmp L263
L262:
	.dbline 465
; 					   }//move=3
; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc				   
; 					   while(move==4)//设置月位置
; 					    {  black(10,1);
	.dbline 465
	ldi R18,1
	ldi R19,0
	ldi R16,10
	ldi R17,0
	rcall _black
	.dbline 466
; 						   LCD_write_char(10,1,monthtl+48);
	lds R24,_monthtl
	subi R24,208    ; addi 48
	std y+0,R24
	ldi R18,1
	ldi R16,10
	rcall _LCD_write_char
	.dbline 467
; 						   DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 468
; 						   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 470
; 							//ccccccccccccccccccccccccccccccccccccccccc   
; 						      if(!(PINC&0x20))  //检测加一按键
	sbic 0x13,5
	rjmp L265
	.dbline 471
L267:
	.dbline 471
L268:
	.dbline 471
;                               {while(!(PINC&0X20));
	sbis 0x13,5
	rjmp L267
	.dbline 472
; 							      PlusMonth(1);
	ldi R16,1
	ldi R17,0
	rcall _PlusMonth
	.dbline 473
; 							      DS1302_WriteTime();
	rcall _DS1302_WriteTime
	.dbline 474
; 							      DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 475
; 							   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 476
; 					          } 
L265:
	.dbline 477
; 							  if(!(PINB&0x01))//检测减一按键
	sbic 0x16,0
	rjmp L270
	.dbline 478
L272:
	.dbline 478
L273:
	.dbline 478
;                               {while(!(PINB&0X01));
	sbis 0x16,0
	rjmp L272
	.dbline 479
; 							      SubMonth(1);
	ldi R16,1
	ldi R17,0
	rcall _SubMonth
	.dbline 480
; 							      DS1302_WriteTime();
	rcall _DS1302_WriteTime
	.dbline 481
; 							      DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 482
; 							   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 483
; 					          }
L270:
	.dbline 485
; 						   
; 						      if(!(PINC&0x08))   //检测功能键
	sbic 0x13,3
	rjmp L275
	.dbline 486
L277:
	.dbline 486
L278:
	.dbline 486
;                                 {while(!(PINC&0X08));
	sbis 0x13,3
	rjmp L277
	.dbline 487
;                                  NoGong=2;
	ldi R20,2
	ldi R21,0
	.dbline 488
; 								 move=6;//使此值与所有的判断值都不相等
	ldi R22,6
	ldi R23,0
	.dbline 489
;                                 }
L275:
	.dbline 491
; 						   
; 					     if(!(PINC&0x10))//检测移位按键
	sbic 0x13,4
	rjmp L280
	.dbline 492
L282:
	.dbline 492
L283:
	.dbline 492
;                          {while(!(PINC&0X10));
	sbis 0x13,4
	rjmp L282
	.dbline 493
; 					      move=5;
	ldi R22,5
	ldi R23,0
	.dbline 494
; 					     }						 
L280:
	.dbline 495
L263:
	.dbline 464
	cpi R22,4
	ldi R30,0
	cpc R23,R30
	brne X5
	rjmp L262
X5:
	rjmp L286
L285:
	.dbline 498
; 					   }//move=4
; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc					   
; 					   while(move==5)//设置年位置
; 					    {  black(7,1);
	.dbline 498
	ldi R18,1
	ldi R19,0
	ldi R16,7
	ldi R17,0
	rcall _black
	.dbline 499
; 						   LCD_write_char(7,1,yeartl+48);
	lds R24,_yeartl
	subi R24,208    ; addi 48
	std y+0,R24
	ldi R18,1
	ldi R16,7
	rcall _LCD_write_char
	.dbline 500
; 						   DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 501
; 						   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 503
; 						   //ccccccccccccccccccccccccccccccccccccccccc
; 						      if(!(PINC&0x20))  //检测加一按键
	sbic 0x13,5
	rjmp L288
	.dbline 504
L290:
	.dbline 504
L291:
	.dbline 504
;                               {while(!(PINC&0X20));
	sbis 0x13,5
	rjmp L290
	.dbline 505
; 							      PlusYear(0);
	clr R16
	clr R17
	rcall _PlusYear
	.dbline 506
; 							      DS1302_WriteTime();
	rcall _DS1302_WriteTime
	.dbline 507
; 							      DS1302_ReadTime();
	rcall _DS1302_ReadTime
	.dbline 508
; 							   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 509
; 					          } 
L288:
	.dbline 511
; 							  
; 							  if(!(PINB&0x01))//检测减一按键
	sbic 0x16,0
	rjmp L293
	.dbline 512
L295:
	.dbline 512
L296:
	.dbline 512
;                               {while(!(PINB&0X01));
	sbis 0x16,0
	rjmp L295
	.dbline 513
; 							    SubYear(0);
	clr R16
	clr R17
	rcall _SubYear
	.dbline 514
; 							    DS1302_WriteTime();
	rcall _DS1302_WriteTime
	.dbline 515
; 							    DS1302_ReadTime();
	rcall _DS1302_ReadTime
	.dbline 516
; 							    SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 517
; 					          }
L293:
	.dbline 519
; 						   
; 						      if(!(PINC&0x08))   //检测功能键
	sbic 0x13,3
	rjmp L298
	.dbline 520
L300:
	.dbline 520
L301:
	.dbline 520
;                                 {while(!(PINC&0X08));
	sbis 0x13,3
	rjmp L300
	.dbline 521
;                                  NoGong=2;
	ldi R20,2
	ldi R21,0
	.dbline 522
; 								 move=6;//使此值与所有的判断值都不相等
	ldi R22,6
	ldi R23,0
	.dbline 523
;                                 }
L298:
	.dbline 525
; 						   
; 					      if(!(PINC&0x10))//检测移位按键
	sbic 0x13,4
	rjmp L303
	.dbline 526
L305:
	.dbline 526
L306:
	.dbline 526
;                           {while(!(PINC&0X10));
	sbis 0x13,4
	rjmp L305
	.dbline 527
; 					      move=0;					 
	clr R22
	clr R23
	.dbline 528
; 					      }						 
L303:
	.dbline 529
L286:
	.dbline 497
	cpi R22,5
	ldi R30,0
	cpc R23,R30
	brne X6
	rjmp L285
X6:
	rjmp L309
L308:
	.dbline 532
; 					   }//move=5
; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
;                      while(move==0)//设置秒位置
; 					    {  black(13,0);
	.dbline 532
	clr R18
	clr R19
	ldi R16,13
	ldi R17,0
	rcall _black
	.dbline 533
; 						   LCD_write_char(13,0,minutetl+48);
	lds R24,_minutetl
	subi R24,208    ; addi 48
	std y+0,R24
	clr R18
	ldi R16,13
	rcall _LCD_write_char
	.dbline 534
; 						   DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 535
; 						   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 537
; 						   //cccccccccccccccccccccccccccccccccccccccccccccccc
; 						      if(!(PINC&0x20))  //检测加一按键
	sbic 0x13,5
	rjmp L311
	.dbline 538
L313:
	.dbline 538
L314:
	.dbline 538
;                               {while(!(PINC&0X20));
	sbis 0x13,5
	rjmp L313
	.dbline 539
; 							   PlusForSET(5);//设置秒
	ldi R16,5
	ldi R17,0
	rcall _PlusForSET
	.dbline 540
; 							   DS1302_WriteTime();  	
	rcall _DS1302_WriteTime
	.dbline 541
; 		                       DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 542
; 							   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 543
; 					          } 
L311:
	.dbline 544
; 							  if(!(PINB&0x01))//检测减一按键
	sbic 0x16,0
	rjmp L316
	.dbline 545
L318:
	.dbline 545
L319:
	.dbline 545
;                               {while(!(PINB&0X01));
	sbis 0x16,0
	rjmp L318
	.dbline 546
; 							   SubForSET(5);//设置秒
	ldi R16,5
	ldi R17,0
	rcall _SubForSET
	.dbline 547
; 							   DS1302_WriteTime();  	
	rcall _DS1302_WriteTime
	.dbline 548
; 		                       DS1302_ReadTime(); //读取当前时间
	rcall _DS1302_ReadTime
	.dbline 549
; 							   SendDataForDisplay();//显示设置
	rcall _SendDataForDisplay
	.dbline 550
; 					          }
L316:
	.dbline 551
; 							   if(!(PINC&0x08))   //检测功能键
	sbic 0x13,3
	rjmp L321
	.dbline 552
L323:
	.dbline 552
L324:
	.dbline 552
;                                 {while(!(PINC&0X08));
	sbis 0x13,3
	rjmp L323
	.dbline 553
;                                  NoGong=2;
	ldi R20,2
	ldi R21,0
	.dbline 554
; 								 move=6;//使此值与所有的判断值都不相等
	ldi R22,6
	ldi R23,0
	.dbline 555
;                                 }
L321:
	.dbline 557
; 						   
; 					     if(!(PINC&0x10))//检测移位按键
	sbic 0x13,4
	rjmp L326
	.dbline 558
L328:
	.dbline 558
L329:
	.dbline 558
;                          {while(!(PINC&0X10));
	sbis 0x13,4
	rjmp L328
	.dbline 559
; 					      move=1;
	ldi R22,1
	ldi R23,0
	.dbline 560
; 					     }
L326:
	.dbline 561
L309:
	.dbline 531
	cpi R22,0
	cpc R22,R23
	brne X7
	rjmp L308
X7:
X1:
	.dbline 563
L191:
	.dbline 361
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	brne X8
	rjmp L190
X8:
	.dbline 566
;            			   }//move=1
; 				   
; 				     }//while(NoGong==1)end
; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
; //ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc	   
;                 } //检测第一次移位按键的结尾
L185:
	.dbline 568
; 			   
; 	       if(!(PINC&0x08)) //检测功能键为第二次按下时退出
	sbic 0x13,3
	rjmp L331
	.dbline 569
L333:
	.dbline 569
L334:
	.dbline 569
;            {while(!(PINC&0X08));
	sbis 0x13,3
	rjmp L333
	.dbline 570
;            NoGong=2;
	ldi R20,2
	ldi R21,0
	.dbline 571
;             }
L331:
	.dbline 572
L173:
	.dbline 334
	cpi R20,1
	ldi R30,0
	cpc R21,R30
	brne X9
	rjmp L172
X9:
	.dbline 573
L167:
	.dbline -2
L166:
	adiw R28,1
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbsym r NoGong 20 I
	.dbsym r move 22 I
	.dbend
	.dbfunc e LCDFirst _LCDFirst fV
	.even
_LCDFirst::
	rcall push_gset2
	sbiw R28,2
	.dbline -1
	.dbline 577
; 	   }//功能键按下第一次的循环
; 	}//功能按键按下的结尾
;   }//KEYPRESS()结尾
;   
; void LCDFirst(void)
; {
	.dbline 578
;   LCD_write_string(0,0,"2007 Graduate!!!");
	ldi R24,<L337
	ldi R25,>L337
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	rcall _LCD_write_string
	.dbline 579
;   LCD_write_string(0,1,"Name:CenWenJiao");// 姓名
	ldi R24,<L338
	ldi R25,>L338
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	rcall _LCD_write_string
	.dbline 580
;   delay_nus(100000); 
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 581
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 582
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 583
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 584
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 585
;    LCD_write_command(0x01);//清屏程序
	ldi R16,1
	rcall _LCD_write_command
	.dbline 586
;   LCD_write_string(0,0,"  IFID SYSTEM !");
	ldi R24,<L339
	ldi R25,>L339
	std y+1,R25
	std y+0,R24
	clr R18
	clr R16
	rcall _LCD_write_string
	.dbline 587
;   LCD_write_string(0,1,"  TIME module !"); //题目
	ldi R24,<L340
	ldi R25,>L340
	std y+1,R25
	std y+0,R24
	ldi R18,1
	clr R16
	rcall _LCD_write_string
	.dbline 588
;   delay_nus(100000); 
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 589
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 590
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 591
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 592
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 593
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 594
;   delay_nus(100000);
	ldi R20,160
	ldi R21,134
	ldi R22,1
	ldi R23,0
	movw R16,R20
	rcall _delay_nus
	.dbline 595
;   LCD_write_command(0x01);//清屏程序
	ldi R16,1
	rcall _LCD_write_command
	.dbline -2
L336:
	adiw R28,2
	rcall pop_gset2
	.dbline 0 ; func end
	ret
	.dbend
	.dbfunc e main _main fV
;             CO -> R20
	.even
_main::
	.dbline -1
	.dbline 602
;     
; }
; /*CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
;   系统主函数
; CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC*/
; void main()
; {char CO=0;
	.dbline 602
	clr R20
	.dbline 604
; //port_init();
; init_devices(); //初始化1302
	rcall _init_devices
	.dbline 607
; //delay_nus(1000);
; 
; init_devicesl();  //初始化LCD1602
	rcall _init_devicesl
	.dbline 608
; DS1302_WriteTime();//时间校准
	rcall _DS1302_WriteTime
	.dbline 609
; LCDFirst();  //显示开机词 
	rcall _LCDFirst
	rjmp L343
L342:
	.dbline 611
	.dbline 612
	rcall _DS1302_ReadTime
	.dbline 619
	rcall _SendDataForDisplay
	.dbline 620
	rcall _keypress
	.dbline 621
L343:
	.dbline 610
	rjmp L342
X10:
	.dbline -2
L341:
	.dbline 0 ; func end
	ret
	.dbsym r CO 20 c
	.dbend
	.area bss(ram, con, rel)
	.dbfile E:\biyesheji\SUCCES~1\SENDSE~1\SETPFI~2\程序\DS1302.c
_year1::
	.blkb 1
	.dbfile E:\biyesheji\SUCCES~1\SENDSE~1\SETPFI~2\程序/ds1302.h
	.dbsym e year1 _year1 c
_month1::
	.blkb 1
	.dbsym e month1 _month1 c
_week1::
	.blkb 1
	.dbsym e week1 _week1 c
_date1::
	.blkb 1
	.dbsym e date1 _date1 c
_hour1::
	.blkb 1
	.dbsym e hour1 _hour1 c
_minute1::
	.blkb 1
	.dbsym e minute1 _minute1 c
_second1::
	.blkb 1
	.dbsym e second1 _second1 c
_yearth::
	.blkb 1
	.dbsym e yearth _yearth c
_yeartl::
	.blkb 1
	.dbsym e yeartl _yeartl c
_monthth::
	.blkb 1
	.dbsym e monthth _monthth c
_monthtl::
	.blkb 1
	.dbsym e monthtl _monthtl c
_dateth::
	.blkb 1
	.dbsym e dateth _dateth c
_datetl::
	.blkb 1
	.dbsym e datetl _datetl c
_hourth::
	.blkb 1

⌨️ 快捷键说明

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