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

📄 i2c.lst

📁 I2C实用源代码。KEIL C51编译器编写。
💻 LST
📖 第 1 页 / 共 5 页
字号:
 480   3      		       		     RTC_Data = _getkey();	
 481   3      		       		     I2CStart();
 482   3      		       		     if (I2CMasterWrite(Dev_Add))
 483   3      	   	          		I2CStop();    
 484   3      
 485   3      \
 486   3      		       		     if (I2CMasterWrite(Tamper2_Add_Reg))
 487   3      	   	          		I2CStop();
 488   3      
 489   3              	       		     if (I2CMasterWrite(RTC_Data))
 490   3      	   	          		I2CStop();
 491   3      
 492   3      		       		     I2CStop();
 493   3              	       		     break;
 494   3      
 495   3      
 496   3      
 497   3      /******************************************************************************/
 498   3      /*							 		      */
 499   3      /*  	case 40 - Reading the RTC Reg. of T0/T00/T11/T56 devices.	      */
 500   3      /*							   		      */
 501   3      /******************************************************************************/
 502   3      
 503   3                    		    case 40: /* Read the RTC Reg. Map */
 504   3      		       		     I2CStart();           	 	
 505   3      				     if (I2CMasterWrite(Dev_Add))
 506   3      	   	   	 		I2CStop(); 
 507   3      
 508   3      		       		     if (I2CMasterWrite(Sec_Add_Reg))
 509   3      	      	   	 		I2CStop();
 510   3              
 511   3      		       		     I2CStart();                     	
 512   3                                           if (I2CMasterWrite(Dev_Add+1))  	                                   
 513   3      	   	   	 		I2CStop();
 514   3              
 515   3      		       		     Sec_Reg = I2CMasterRead(0);
 516   3      		       		     Min_Reg = I2CMasterRead(0);
 517   3      		       		     Hr_Reg =  I2CMasterRead(0);
 518   3      		       		     DOW_Reg = I2CMasterRead(0);
 519   3                             		     DOM_Reg = I2CMasterRead(0);
 520   3      		       		     Mon_Reg = I2CMasterRead(0);
 521   3      		       		     Yr_Reg =  I2CMasterRead(0);
C51 COMPILER V5.50,  I2C                                                                   02/12/03  05:12:36  PAGE 9   

 522   3      		       		     Cont_Reg = I2CMasterRead(1);
 523   3      		       		     Interrupts = P1;
 524   3                             		     I2CStop();
 525   3      
 526   3       		       		     putchar (Sec_Reg);
 527   3      		       		     putchar (Min_Reg);
 528   3      		       		     putchar (Hr_Reg);
 529   3      		       		     putchar (DOW_Reg);
 530   3      		       		     putchar (DOM_Reg);
 531   3      		       		     putchar (Mon_Reg);
 532   3      		       		     putchar (Yr_Reg);
 533   3      		       		     putchar (Cont_Reg);
 534   3      		       		     putchar (Interrupts);	
 535   3              	       		     break;
 536   3      
 537   3      /******************************************************************************/
 538   3      /*							 		      */
 539   3      /*  	case 41 - Reading the RTC Reg. of T80/T81/ST84/ST85 devices (I2C)     */	
 540   3      /*							   		      */
 541   3      /******************************************************************************/
 542   3      
 543   3                    		    case 41: /* Read the RTC Reg. Map */
 544   3      				     I2CStart();           	 	
 545   3      				     if (I2CMasterWrite(Dev_Add))
 546   3      	   	   	 		I2CStop(); 
 547   3      
 548   3      		       		     if (I2CMasterWrite(Tenths_Sec_Add_Reg))
 549   3      	      	   	 		I2CStop();
 550   3              
 551   3      		       		     I2CStart();                     	
 552   3      				     if (I2CMasterWrite(Dev_Add+1))  	                                   
 553   3      	   	   	 		I2CStop();
 554   3              
 555   3      		       		     Tenths_Sec_Reg = I2CMasterRead(0);	
 556   3      		       		     Sec_Reg = I2CMasterRead(0);
 557   3      		       		     Min_Reg = I2CMasterRead(0);
 558   3      		       		     Hr_Reg =  I2CMasterRead(0);
 559   3      		       		     DOW_Reg = I2CMasterRead(0);
 560   3                             		     DOM_Reg = I2CMasterRead(0);
 561   3      		       		     Mon_Reg = I2CMasterRead(0);
 562   3      		       		     Yr_Reg =  I2CMasterRead(0);
 563   3      		       		     Cont_Reg = I2CMasterRead(0);
 564   3      		        	     Wdog_Reg = I2CMasterRead(0);	
 565   3      		       		     Al_Mon_Reg = I2CMasterRead(0);
 566   3      		       		     Al_DOM_Reg = I2CMasterRead(0);
 567   3      		       		     Al_Hr_Reg = I2CMasterRead(0);
 568   3      		       		     Al_Min_Reg = I2CMasterRead(0);
 569   3      		       		     Al_Sec_Reg = I2CMasterRead(1);
 570   3                                           I2CStop();
 571   3      
 572   3      		       		     I2CStart();
 573   3       		       		     if (I2CMasterWrite(Dev_Add))
 574   3      	   	   	 		I2CStop(); 
 575   3      
 576   3      		       		     if (I2CMasterWrite(SQW_Add_Reg))
 577   3      	      	   	 		I2CStop();
 578   3              
 579   3      		       		     I2CStart();                 	                                          	
 580   3       		       		     if (I2CMasterWrite(Dev_Add+1))  	                                   
 581   3      	   	   	 		I2CStop();
 582   3                                                         
 583   3      		       		     SQW_Reg = I2CMasterRead(1);
 584   3       		       		     I2CStop();
 585   3      
 586   3      		       		     Interrupts = P1;
 587   3      
C51 COMPILER V5.50,  I2C                                                                   02/12/03  05:12:36  PAGE 10  

 588   3      		       	 	     putchar (Tenths_Sec_Reg);
 589   3       		       		     putchar (Sec_Reg);
 590   3      		       		     putchar (Min_Reg);
 591   3      		       		     putchar (Hr_Reg);
 592   3      		       		     putchar (DOW_Reg);
 593   3      		       		     putchar (DOM_Reg);
 594   3      		       		     putchar (Mon_Reg);
 595   3      		       		     putchar (Yr_Reg);
 596   3      		       		     putchar (Cont_Reg);
 597   3      		       		     putchar (Wdog_Reg);
 598   3      		       		     putchar (Al_Mon_Reg);
 599   3      		      		     putchar (Al_DOM_Reg);
 600   3      		       		     putchar (Al_Hr_Reg);
 601   3      		       		     putchar (Al_Min_Reg);
 602   3      		       		     putchar (Al_Sec_Reg);
 603   3      	                             putchar (SQW_Reg);
 604   3      		       		     putchar (Interrupts);	
 605   3              	      		     break;
 606   3      
 607   3      
 608   3      
 609   3      /******************************************************************************/
 610   3      /*							 		      */
 611   3      /*  	case 42 - Reading the RTC Reg. of ST87 device (I2C)		      */	
 612   3      /*							   		      */
 613   3      /******************************************************************************/
 614   3      
 615   3                    		    case 42: /* Read the RTC Reg. Map */
 616   3      				     I2CStart();           	 	
 617   3      				     if (I2CMasterWrite(Dev_Add))
 618   3      	   	   	 		I2CStop(); 
 619   3      
 620   3      		       		     if (I2CMasterWrite(Tenths_Sec_Add_Reg))
 621   3      	      	   	 		I2CStop();
 622   3              
 623   3      		       		     I2CStart();                     	
 624   3      				     if (I2CMasterWrite(Dev_Add+1))  	                                   
 625   3      	   	   	 		I2CStop();
 626   3              
 627   3      		       		     Tenths_Sec_Reg = I2CMasterRead(0);	
 628   3      		       		     Sec_Reg = I2CMasterRead(0);
 629   3      		       		     Min_Reg = I2CMasterRead(0);
 630   3      		       		     Hr_Reg =  I2CMasterRead(0);
 631   3      		       		     DOW_Reg = I2CMasterRead(0);
 632   3                             		     DOM_Reg = I2CMasterRead(0);
 633   3      		       		     Mon_Reg = I2CMasterRead(0);
 634   3      		       		     Yr_Reg =  I2CMasterRead(0);
 635   3      		       		     Cont_Reg = I2CMasterRead(0);
 636   3      		        	     Wdog_Reg = I2CMasterRead(0);	
 637   3      		       		     Al_Mon_Reg = I2CMasterRead(0);
 638   3      		       		     Al_DOM_Reg = I2CMasterRead(0);
 639   3      		       		     Al_Hr_Reg = I2CMasterRead(0);
 640   3      		       		     Al_Min_Reg = I2CMasterRead(0);
 641   3      		       		     Al_Sec_Reg = I2CMasterRead(1);
 642   3                                           I2CStop();
 643   3      
 644   3      		       		     I2CStart();
 645   3       		       		     if (I2CMasterWrite(Dev_Add))
 646   3      	   	   	 		I2CStop(); 
 647   3      
 648   3      		       		     if (I2CMasterWrite(SQW_Add_Reg))
 649   3      	      	   	 		I2CStop();
 650   3              
 651   3      		       		     I2CStart();                 	                                          	
 652   3       		       		     if (I2CMasterWrite(Dev_Add+1))  	                                   
 653   3      	   	   	 		I2CStop();
C51 COMPILER V5.50,  I2C                                                                   02/12/03  05:12:36  PAGE 11  

 654   3                                                         
 655   3      		       		     SQW_Reg = I2CMasterRead(0);
 656   3      		       		     Tamper1_Reg = I2CMasterRead(0);
 657   3      		       		     Tamper2_Reg = I2CMasterRead(1);	
 658   3       		       		     I2CStop();
 659   3      
 660   3      		       		     Interrupts = P1;
 661   3      
 662   3      		       	 	     putchar (Tenths_Sec_Reg);
 663   3       		       		     putchar (Sec_Reg);
 664   3      		       		     putchar (Min_Reg);
 665   3      		       		     putchar (Hr_Reg);
 666   3      		       		     putchar (DOW_Reg);
 667   3      		       		     putchar (DOM_Reg);
 668   3      		       		     putchar (Mon_Reg);
 669   3      		       		     putchar (Yr_Reg);
 670   3      		       		     putchar (Cont_Reg);
 671   3      		       		     putchar (Wdog_Reg);
 672   3      		       		     putchar (Al_Mon_Reg);
 673   3      		      		     putchar (Al_DOM_Reg);
 674   3      		       		     putchar (Al_Hr_Reg);
 675   3      		       		     putchar (Al_Min_Reg);
 676   3      		       		     putchar (Al_Sec_Reg);
 677   3      	                             putchar (SQW_Reg);
 678   3      		       		     putchar (Tamper1_Reg);
 679   3      		       		     putchar (Tamper2_Reg);
 680   3      		       		     putchar (Interrupts);	
 681   3              	      		     break;
 682   3      
 683   3      
 684   3      /*******************************************************************************/
 685   3      /*							 		       */
 686   3      /*  	case 45 - Write (Burst) Time to the RTC Reg. 			       */	
 687   3      /*		  					 		       */
 688   3      /*******************************************************************************/
 689   3      
 690   3                    		    case 45: 
 691   3      		       		     Sec_Data = _getkey();
 692   3      				     Min_Data = _getkey();
 693   3      		       		     Hr_Data =  _getkey();
 694   3      				     DOW_Data = _getkey();
 695   3      		       		     DOM_Data = _getkey();
 696   3      				     Mon_Data = _getkey();	
 697   3      		       		     Yr_Data =  _getkey();
 698   3      
 699   3      		       		     I2CStart();                   		 
 700   3      
 701   3      		       		     if (I2CMasterWrite(Dev_Add))
 702   3      	   	   	 		I2CStop();    
 703   3      
 704   3      		       		     if (I2CMasterWrite(Sec_Add_Reg))
 705   3      	   	   	 		I2CStop();
 706   3      
 707   3      				     I2CMasterWrite(Sec_Data);
 708   3      				     I2CMasterWrite(Min_Data);
 709   3      				     I2CMasterWrite(Hr_Data);
 710   3      				     I2CMasterWrite(DOW_Data);
 711   3      				     I2CMasterWrite(DOM_Data);
 712   3      				     I2CMasterWrite(Mon_Data);
 713   3      				     I2CMasterWrite(Yr_Data);
 714   3      				     I2CStop();
 715   3                             		     break;
 716   3      
 717   3      
 718   3      
 719   3      /******************************************************************************/
C51 COMPILER V5.50,  I2C                                                                   02/12/03  05:12:36  PAGE 12  

 720   3      /*							 		      */
 721   3      /*  	case 50 - Write all zeroes & all ones to the RAM. 		      */
 722   3      /*	case 51 - Write data to certain location of the RAM.		      */

⌨️ 快捷键说明

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