亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 正常 ds1302.c

?? 能用串口修改時間的時鐘程序
?? C
字號:
/************************************/
/*杭州電子&計算機工作室				*/
/*http://www.hificat.com			*/
/*DS1302測試程序					*/
/*目標器件:AT89S51					*/
/*晶振:11.0592MHZ					*/
/*編譯環境:Keil 7.50A				*/
/************************************/

/*********************************包含頭文件********************************/
#include "reg51.h"
#include <intrins.h>

/*********************************端口定義**********************************/
sbit DS1302_CLK = P1^0;
sbit DS1302_IO  = P1^1;
sbit DS1302_RST = P1^2;

/*******************************共陽LED段碼表*******************************/
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

/******************************定義全局變量*********************************/
unsigned char second,minute,hour,week,day,month,year;		//秒、分、時、星期、日、月、年
//unsigned char minute1,hour1;
unsigned char second1,minute1,hour1,week1,day1,month1,year1;
unsigned char t1,t2,i;
unsigned char time[]={0x08,0x06,0x19,0x04,0x09,0x30,0x00};	//初始時間數組

//P=8C

unsigned  char secondchar,minutechar,hourchar,weekchar,daychar,monthchar,yearchar;

unsigned char keysum ;

sbit	K1 = P3^2;
sbit	K2 = P3^3;

unsigned char key_s, key_v, tmp;
unsigned char key_s1, key_v1;
//int kk;





/****************************************************************************
函數功能:數碼管掃描延時子程序
入口參數:
出口參數:
****************************************************************************/
void delay1(void)
{
	int k;
	for(k=0;k<400;k++);
}

void delayms(unsigned char ms)	
// 延時子程序
{						
	unsigned char i;
	while(ms--)
	{
		for(i = 0; i < 120; i++);
	}
}


void delayms1(unsigned char ms)	
// 延時子程序
{						
	unsigned char i;
	while(ms--)
	{
		for(i = 0; i < 120; i++);
	}
}


void displayhour(void)
{
	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[5];
	delayms1(1);

    P2=0xf7;
    P0=tab[hour1/10];
	delayms1(1);

//	P2=0xfd;
    P2=0xef;
	P0=tab[hour1%10];
	delayms1(1);
}

void displayminuite(void)
{

	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[6];
	delayms1(1);

	P2=0xf7;
	P0=tab[minute1/10];
	delayms1(1);

	P2=0xef;
	P0=tab[minute1%10];
	delayms1(1);

}


void displayyear(void)
{


	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[1];
	delayms1(1);

	P2=0xf7;
	P0=tab[year1/10];
	delayms1(1);

	P2=0xef;
	P0=tab[year1%10];
	delayms1(1);

}


void displaymonth(void)
{

	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[2];
	delayms1(1);

	P2=0xf7;
	P0=tab[month1/10];
	delayms1(1);

	P2=0xef;
	P0=tab[month1%10];
	delayms1(1);

}

void displayday(void)
{


	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[3];
	delayms1(1);

	P2=0xf7;
	P0=tab[day1/10];
	delayms1(1);

	P2=0xef;
	P0=tab[day1%10];
	delayms1(1);

}

void displayweek(void)
{

	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[4];
	delayms1(1);

	P2=0xf7;
	P0=tab[week1/10];
	delayms1(1);

	P2=0xef;
	P0=tab[week1%10];
	delayms1(1);

}


void displaysecond(void)
{
    
	P2=0xfe;
    P0=0x8c;
	delayms1(1);
			
	P2=0xfd;
    P0=tab[7];
	delayms1(1);

	P2=0xf7;
	P0=tab[second1/10];
	delayms1(1);

	P2=0xef;
	P0=tab[second1%10];
	delayms1(1);

	

}
/****************************************************************************
函數功能:數碼管顯示子程序
入口參數:k
出口參數:
****************************************************************************/
void display(void)
{
	P2=0xfe;			
	P0=tab[hour/16];
	delay1();

	P2=0xfd;
	P0=tab[hour%16];
	delay1();

//	P2=0xfb;
//	P0=0xbf;			//顯示"-"
//	delay1();

	P2=0xfb;
	P0=tab[minute/16];
	delay1();

	P2=0xf7;
	P0=tab[minute%16];
	delay1();

//	P2=0xdf;
//	P0=0xbf;			//顯示"-"
//	delay1();

	P2=0xef;
	P0=tab[second/16];
	delay1();

	P2=0xdf;
	P0=tab[second%16];
	delay1();
}


/****************************************************************************
函數功能:數碼管顯示子程年年序
入口參數:k
出口參數:
***********************年月日*****************************************************/
void display1(void)
{
	P2=0xfe;			
	P0=tab[year/16];
	delay1();

	P2=0xfd;
	P0=tab[year%16];
	delay1();

//	P2=0xfb;
//	P0=0xbf;			//顯示"-"
//	delay1();

	P2=0xfb;
	P0=tab[month/16];
	delay1();

	P2=0xf7;
	P0=tab[month%16];
	delay1();

//	P2=0xdf;
//	P0=0xbf;			//顯示"-"
//	delay1();

	P2=0xef;
	P0=tab[day/16];
	delay1();

	P2=0xdf;
	P0=tab[day%16];
	delay1();
}


/*****************************************************************************
函數功能:向DS1302送一字節數據子程序
入口參數:
出口參數:
*****************************************************************************/
void InputByte(unsigned char byte1)
{
	char i;
	for(i=8;i>0;i--)
	{
		DS1302_IO=(bit)(byte1&0x01);
		DS1302_CLK=1;
		_nop_();
		DS1302_CLK=0;
		byte1>>=1;
	}
	return;
}

/*****************************************************************************
函數功能:讀DS1302一個字節子程序
入口參數:
出口參數:
*****************************************************************************/
unsigned char outputbyte(void)  
{
	unsigned char i;
	unsigned ucdat=0;
	for(i=8;i>0;i--)
	{
		DS1302_IO=1;
		ucdat>>=1;
		if(DS1302_IO)ucdat|=0x80;
		DS1302_CLK=1;
		_nop_();
		DS1302_CLK=0;
	 }
	 return(ucdat);
}

/*****************************************************************************
函數功能:向DS1302某地址寫一字節數據子程序
入口參數:addr,TDat
出口參數:
*****************************************************************************/
void write_ds1302(unsigned char addr,unsigned char TDat)
{
	DS1302_RST=0;
	_nop_();
	DS1302_CLK=0;
	_nop_();
	DS1302_RST=1;
 	InputByte(addr);
	_nop_();
	InputByte(TDat);
	DS1302_CLK=1;
	_nop_();
	DS1302_RST=0;
}

/*****************************************************************************
函數功能:讀DS1302地址子程序
入口參數:add
出口參數:timedata
*****************************************************************************/
unsigned char read_ds1302(unsigned char addr)
{
	unsigned char timedata;
	DS1302_RST=0;
	_nop_();
	DS1302_CLK=0;
	_nop_();
	DS1302_RST=1;
	InputByte(addr);
	timedata=OutputByte();
	DS1302_CLK=1;
	_nop_();
	DS1302_RST=0;
	return(timedata);
}

/*****************************************************************************
函數功能:初始化DS1302子程序
入口參數:time[](全局變量)
出口參數:
*****************************************************************************/
void initial_ds1302()
{
	write_ds1302(0x8e,0x00);		//寫保護寄存器,在對時鐘或RAM寫前WP一定要為0
	write_ds1302(0x8c,time[0]);		//年
	write_ds1302(0x88,time[1]);		//月
	write_ds1302(0x86,time[2]);		//日
	write_ds1302(0x8A,time[3]);		//星期
	write_ds1302(0x84,time[4]);		//時
	write_ds1302(0x82,time[5]);		//分
	write_ds1302(0x80,time[6]);		//秒
	write_ds1302(0x8e,0x80);		//寫保護寄存器
}

void initial_ds13021()
{
	write_ds1302(0x8e,0x00);		//寫保護寄存器,在對時鐘或RAM寫前WP一定要為0
	write_ds1302(0x8c,year);		//年
	write_ds1302(0x88,month);		//月
	write_ds1302(0x86,day);		//日
	write_ds1302(0x8A,week);		//星期
	write_ds1302(0x84,hour);		//時
	write_ds1302(0x82,minute);		//分
	write_ds1302(0x80,second);		//秒
	write_ds1302(0x8e,0x80);		//寫保護寄存器
}

/*****************************************************************************
函數功能:讀DS1302時間子程序
入口參數:
出口參數:全局變量(second,minute,hour,week,day,month,year)
*****************************************************************************/
void read_time()
{
	second=read_ds1302(0x81);		//秒寄存器
	minute=read_ds1302(0x83);		//分
	hour=read_ds1302(0x85);			//時
	week=read_ds1302(0x8B);			//星期
	day=read_ds1302(0x87);			//日
	month=read_ds1302(0x89);		//月
	year=read_ds1302(0x8d);			//年
}

/*****************************************************************************
函數功能:主程序
入口參數:
出口參數:
*****************************************************************************/






bit scan_key1()	
// 掃描按鍵
{
	key_s1 = 0x00;
	key_s1 |= K2;  /////////////////////////////////////////////////
	
	return(key_s1 ^ key_v1);	
}



void proc_key1()
// 鍵處理
{ //  hour=12;
   // displayhour();
	if((key_v1 & 0x01) == 0  )
	{			// K2按下second1,minute1,hour1,week1,day1,month1,year1;
	    	if (keysum==1) year1=year1+1;
            if (keysum==2) month1=month1+1;
            if (keysum==3) day1=day1+1;
            if (keysum==4) week1=week1+1;
          	if (keysum==5) hour1=hour1+1;//時
            if (keysum==6) minute1=minute1+1;//分            
            if (keysum==7) second1=second1+1;//分

            if (year1>20) year1=0;
            if (month1>12) month1=1;
            if (week1>7) week1=1;
			if (month1==1 || month1==3 ||month1==5 ||month1==7 ||month1==8 || month1==10 ||month1==12)
			   {
			    if (day1>31) day1=1;  
			   }
			if (month1==4 || month1==6 ||month1==9 ||month1==11 )
			   {
                if (day1>30) day1=1;    
			   }
			if (month1==2)
			   { 
			   // if ((year1/4)==(int(year1/4)))
                 //  {
            	     if (day1>29) day1=1;    
				 //  }
 			   }
            if (day1>31) day1=0; 
		    if (minute1>59)  minute1=0;
			if (hour1>23) hour1=0;
			if (second1>59)second1=0;
     

	}

}


bit scan_key()	
// 掃描按鍵
{
	key_s = 0x00;
	key_s |= K1;  /////////////////////////////////////////////////

	return(key_s ^ key_v);	
}

void proc_key()
// 鍵處理
{
	if((key_v & 0x01) == 0)
	{			// K1按下
	//	send_str();	聅econd1,minute1,hour1,week1,day1,month1,year1;	
        keysum++;
          if (keysum==1) 
		     {
		       year1=((int)year)/16;
		       year1=year1*10+((int)year)%16;		
			  }
          if (keysum==2) 
		     {
		       month1=((int)month)/16;
		       month1=month1*10+((int)month)%16;		
			  }

          if (keysum==3) 
		     {
		       day1=((int)day)/16;
		       day1=day1*10+((int)day)%16;		
			  }
          if (keysum==4) 
		     {
		       week1=week;
		       
			  }

          if (keysum==5) 
		     {
		       hour1=((int)hour)/16;
		       hour1=hour1*10+((int)hour)%16;		
			  }

          if (keysum==6)
		      {			    	
			    minute1=((int)minute)/16;
			    minute1=minute1*10+((int)minute)%16;
			   //  minute1=minute;
			  }
           if (keysum==7)
		      {			    	
			    second1=((int)second)/16;
			    second1=second1*10+((int)second)%16;
			   //  minute1=minute;
			  } 
			 
	if (keysum>7) 
	   {  	      
     	  keysum=0;
//,minute1,hour1,week1,day1,month1,year1;	

		  year=(year1/10)*16+(year1%10);
		  month=(month1/10)*16+(month1%10);
		  day=(day1/10)*16+(day1%10);
		  week=(week1/10)*16+(week1%10);
		  hour=(hour1/10)*16+(hour1%10);
		  minute=(minute1/10)*16+(minute1%10);
		  second=(second1/10)*16+(second1%10);
          initial_ds13021();           
	   }
     
	}

}

void main(void)
{   
    
    
    keysum=0;
//	read_ds1302();
	read_time();				//讀取時間
  //  display();	
    display();
//	write_ds1302();
	initial_ds13021();				//初始化DS1302
	
//	read_time();				//讀取時間
//	display();					//顯示時間
	while(1)
	{    
	
	  
        if(scan_key())		// 掃描按鍵
		{
			delayms(10);			// 延時去抖動
		
			if(scan_key())			// 再次掃描
			{
				key_v = key_s;		// 保存鍵值
				proc_key();			// 鍵處理
			}
		}
      

		if(scan_key1())		// 掃描按鍵
		{
			delayms(10);			// 延時去抖動
			if(scan_key1())			// 再次掃描
			{
				key_v1 = key_s1;		// 保存鍵值
				proc_key1();			// 鍵處理
			}
		}

      if (keysum==0  )
	    {  
		   if(second>4)
		      {
				read_time();				//讀取時間
				display();					//顯示時間
			  }
            if(second<5)
		      {
				read_time();				//讀取時間
				display1();					//顯示時間
			  }

         }

		   if (keysum!=0)
             { 		
		      if (keysum==1)displayyear();	     
		      if (keysum==2)displaymonth();	     
		      if (keysum==3)displayday();	     
		      if (keysum==4)displayweek();	     
		      if (keysum==5)displayhour();	     
		      if (keysum==6)displayminuite();  
		      if (keysum==7)displaysecond(); 
             }
     
		
	}
}





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91在线看| 国产精品资源在线观看| 亚洲精品国产高清久久伦理二区| 欧美一区二区精品| 欧美日韩一区二区三区视频 | 亚洲精选一二三| 日本美女一区二区| 五月婷婷激情综合网| 欧美日本国产视频| proumb性欧美在线观看| 激情五月婷婷综合网| 日韩精品国产欧美| 精品中文av资源站在线观看| 国产尤物一区二区| 99久久99久久精品免费观看| 欧美在线999| 精品久久久久久无| 一区二区三区中文免费| 日本不卡123| 91在线视频官网| 欧美videos大乳护士334| 国产精品国产三级国产有无不卡| 亚洲精品久久久久久国产精华液| 蜜臀精品一区二区三区在线观看 | 欧美日韩一级片网站| www日韩大片| 日本美女一区二区三区| 91精品1区2区| 国产精品久久久久影视| 蜜乳av一区二区| 91精品欧美一区二区三区综合在 | 国产一区二区网址| 日韩亚洲欧美在线| 天堂av在线一区| 欧美亚洲国产一区在线观看网站| 欧美精品一区二区高清在线观看 | 欧美日韩免费一区二区三区| 国产精品乱码妇女bbbb| 国产盗摄女厕一区二区三区| 日韩欧美视频在线| 国产一区二区视频在线播放| 欧美疯狂做受xxxx富婆| 亚洲国产精品欧美一二99| 99久久婷婷国产精品综合| 国产精品视频一二| 91在线国产观看| 亚洲另类在线制服丝袜| 欧洲在线/亚洲| 日本不卡视频一二三区| 欧美一区二区三区四区视频| 免费看日韩a级影片| 久久蜜桃av一区二区天堂| 99久久精品免费看| 亚洲国产综合视频在线观看| 欧美久久久久久久久中文字幕| 亚洲福利一二三区| 久久九九久久九九| 日本精品裸体写真集在线观看| 午夜精品一区二区三区三上悠亚| 91精品在线免费观看| 国产成人欧美日韩在线电影| 一区二区三区日韩精品视频| 91精品国产综合久久精品性色| 黄网站免费久久| 夜夜嗨av一区二区三区| 精品国产污污免费网站入口 | 国产精品卡一卡二| 91麻豆精品国产91久久久更新时间 | 无码av免费一区二区三区试看 | kk眼镜猥琐国模调教系列一区二区| 亚洲自拍偷拍欧美| 亚洲精品在线观看视频| 欧美群妇大交群的观看方式 | 欧美激情综合五月色丁香| 欧美日韩美女一区二区| 91看片淫黄大片一级在线观看| 美国av一区二区| 蜜臀国产一区二区三区在线播放 | 99精品桃花视频在线观看| 久久99国产精品免费| www.一区二区| 国产一区二区三区四区五区入口 | 欧美一区二区三区婷婷月色| 色94色欧美sute亚洲13| 在线欧美日韩国产| 欧美在线你懂的| 欧美精品一级二级| 欧美一级在线免费| 欧美成人video| 久久久欧美精品sm网站 | 国产精品一区二区在线观看网站| 老司机午夜精品| 精品一区二区三区日韩| 国产福利精品导航| 97精品久久久午夜一区二区三区 | 日本中文字幕一区二区视频 | 精品三级av在线| 亚洲国产成人自拍| 亚洲精品视频在线| 免费av成人在线| 国产成人av电影| 91福利社在线观看| 日韩三级视频在线观看| 国产清纯在线一区二区www| 亚洲视频一区在线| 日本美女一区二区| 成人高清伦理免费影院在线观看| 91同城在线观看| 欧美r级在线观看| 亚洲欧美日韩中文播放| 精品在线播放午夜| 欧美一区二区在线观看| 日本一区二区三区四区| 天天色图综合网| 97成人超碰视| 久久久高清一区二区三区| 午夜伦理一区二区| av中文字幕不卡| 国产精品青草综合久久久久99| 亚洲国产三级在线| 在线日韩一区二区| 1000精品久久久久久久久| 国产一区二区三区四区五区入口| 欧美日韩精品一区二区三区四区| 国产精品久久一级| 成人激情视频网站| 国产精品视频一区二区三区不卡| 久久66热re国产| 精品三级在线看| 国产一区二区在线视频| 精品免费一区二区三区| 日韩和的一区二区| 91精品婷婷国产综合久久竹菊| 夜夜揉揉日日人人青青一国产精品| 成人av在线看| 亚洲国产精品久久久久婷婷884| 97se亚洲国产综合在线| 亚洲在线一区二区三区| 欧美日韩国产小视频| 免费观看在线综合| 久久久久高清精品| 91麻豆产精品久久久久久| 亚洲啪啪综合av一区二区三区| 欧美亚洲一区三区| 蜜桃视频第一区免费观看| 精品理论电影在线| 不卡在线观看av| 日韩成人dvd| 亚洲国产经典视频| 欧美日韩一区二区三区视频| 免费高清在线视频一区·| 26uuu另类欧美亚洲曰本| aaa亚洲精品| 久久精品国产99国产| 国产精品你懂的在线欣赏| 一本色道久久综合亚洲91| 日韩成人精品在线| 亚洲美腿欧美偷拍| 久久精品欧美日韩| 正在播放亚洲一区| 欧美在线一二三四区| 国产91精品在线观看| 美女mm1313爽爽久久久蜜臀| 亚洲欧美激情插| 中文字幕制服丝袜一区二区三区 | 一本大道久久精品懂色aⅴ| 美腿丝袜亚洲一区| 日本午夜精品视频在线观看 | 欧美精品 日韩| 欧美日韩亚洲高清一区二区| 97久久精品人人爽人人爽蜜臀| 国产成人精品一区二| 国产一区二区三区久久久| 蜜桃精品视频在线观看| 婷婷丁香久久五月婷婷| 性做久久久久久久免费看| 亚洲一线二线三线久久久| 亚洲精品免费播放| 伊人婷婷欧美激情| 亚洲福利一二三区| 日韩黄色免费电影| 美女一区二区三区| 国内外成人在线视频| 国产一区二区三区免费看 | 国产精品久久久久久久久快鸭| 久久久一区二区三区捆绑**| 精品成a人在线观看| 国产精品麻豆久久久| 亚洲男人的天堂av| 丝袜诱惑制服诱惑色一区在线观看| 日韩福利视频导航| 国产一区二三区| 99久久久精品| 日韩精品一区二区三区视频在线观看| 在线不卡欧美精品一区二区三区| 精品日本一线二线三线不卡| 中文字幕一区二区视频| 爽好多水快深点欧美视频| 国产成人免费在线观看不卡| 粗大黑人巨茎大战欧美成人|