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

📄 time.c

📁 一个电子表程序
💻 C
字号:
				/***********************time**********************/
				
				#include	"ADUC812.h"
				#include	"stdio.h"
				#include	"absacc.h"
				#include	"plcd_bus.c"
				#include	"i2c.c"
				
				unsigned char buffer[8],p;
				
				void delayms(int n)
				{
					int i,j;
					for(i=0;i<n;i++)
					{
						for(j=0;j<50;j++);
					}
				}
				
			
				
				
				
				void readtime(void)
				{						
					unsigned char i;
					
					I2C_start();
					I2C_Send_byte(0x65);
					if(I2C_Cack()==1)
					{
						I2C_stop();
					}
						
					for(i=0;i<8;i++)
					{
						buffer[i]=I2C_Receive_byte();
						if(i!=8)
						{ 
							I2C_ack();
						}
						else
						{
							I2C_nack();
						}
					}
					
					I2C_stop();
				}	
				
				
				void load (void)
				{
					unsigned char i;
					
					I2C_start();
					I2C_Send_byte(0x64);
					if(I2C_Cack()==1)
					{
						I2C_stop();
					}
					I2C_Send_byte(0xe0);
					if(I2C_Cack()==1)
					{
						I2C_stop();
					}
					I2C_Send_byte(0x00);
					if(I2C_Cack()==1)
					{
						I2C_stop();
					}
					I2C_Send_byte(0x30);
					if(I2C_Cack()==1)
					{
						I2C_stop();
					}
																
					for(i=1;i<8;i++)
					{
						I2C_Send_byte(buffer[i]);
						if(I2C_Cack()==1)
						{
							I2C_stop();
						}
					}
					
					I2C_stop();
					
				}

				
				
				
							
				void time0(void) interrupt 1
				{
					TH0  = 100;
					TL0  = 0;
					p++;
					
					readtime();
					if(buffer[7] != 0xff)
					{
						display_data(2,0,buffer[7]);	//year//
						display_data(7,0,buffer[6]);	//month//
						display_data(12,0,buffer[5]);	//day//
						display_data(14,2,buffer[4]);	//week//
						display_data(4,4,buffer[3]);	//hour//
						display_data(7,4,buffer[2]);	//min//
						display_data(10,4,buffer[1]);	//sec//
					}
					
					
				}
				
					
				void main(void)
				{
					char	far dumy;
				
					//unsigned char year,month,day,week,hour,min,sec;
					
					SCON = 0x52;
						TMOD=0x21;	
						TH1=0xfd;
						TL1=0xfd;					//** 9600 baud **//
						TR1=1;						//** start timer 1 **//
						TI=1;
						EA=1;	
					
					TMOD = 0x21;
					TH0  = 100;
					TL0  = 0;
					ET0  = 1;
					EA   = 1;
					
										
					left_command(lcd_off);
					right_command(lcd_off);
						
					lcd_left_clear();
					lcd_right_clear();
						
					left_command(lcd_on);
					right_command(lcd_on);
					
					display_ascii(0,0,"20   Y    M    D");
					display_ascii(9,2,"Week  1");
					display_ascii(4,4,"  :  :  ");
					
					
					TR0 = 1;
				
					while(1)
					{
						if( RI == 1 )
						{
							TR0 = 0;
							
							
								buffer[7]=0x03; 	//year
								buffer[6]=0x11;	//mon
								buffer[5]=0x28;	//day
								buffer[4]=0x05;	//week
								buffer[3]=0x17;	//hour
								buffer[2]=0x08;	//min
								buffer[1]=0x00;	//sec
								load();
							
						}
						TR0 = 1;
					}
				}
				

⌨️ 快捷键说明

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