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

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

?? ?

?? 液晶時鐘程序及仿真圖
??
字號:
//與源程序代碼1的不同在于調時間的時候可以減
#include<reg51.h>
#include <intrins.h>
#define uchar unsigned char 
#define uint unsigned int
sbit rs=P2^6;
sbit rw=P2^5;
sbit en=P2^7;
sbit k1=P1^7;
sbit k2=P1^6;
sbit k3=P1^5;
sbit BEEP=P3^0;
uint tt1;
long shu;
uchar i=0;
uchar k1num,k2num,k3num,tt,ring=1,gap_ring=1,flag_display_time,flag_display_miaobiao=1,flag_beep=1;
uchar moshi1,moshi2,moshi3,a_hour=12,a_minute=0,a_second=0;				   
uchar year=11,month=6,date=8,day=3,hour=11,minute=59,second=50;
uchar code week[7][3]={"SUN","MON","TUS","WEN","THU","FRI","SAT"};
uchar code table []="  20  -  -      ";
uchar code table1[]="      :  :  ";
uchar code table2[]="   SET  ALARM   ";
uchar code table3[]="    ON   OFF    ";
uchar code table4[]="   MIAO  BIAO   ";
uchar code table5[]="    00:00:00    ";
//*******************************************************************************
//液晶讀寫及初始化
void delay(uint ms)
{							// 延時子程序
	uint i;
	while(ms--)
	{
		for(i = 0; i< 800; i++)
		{
			_nop_();			
		}
	}
}
uchar lcd_bz()				// 測試LCD忙碌狀態
{							
	uchar result;
	rs = 0;
	rw = 1;
	en = 1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	result = (P0 & 0x80);
	en = 0;
	return result;	
}
void write_com(uchar com)	// 寫入指令到LCD
{							
	while(lcd_bz());
	rs = 0;
	rw = 0;
	en  = 0;
	_nop_();
	_nop_();	
	P0 = com;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	en  = 1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	en  = 0;		
}
void write_date(uchar dat)	
{							// 寫入數據到LCD
	while(lcd_bz());
	rs = 1;
	rw = 0;
	en  = 0;
	P0 = dat;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	en  = 1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	en  = 0;	
}
void lcd_pc(uchar pc)		// 液晶指針
{
	write_com(pc|0x80);
}
void display(uchar add,uchar w[])
{
	uchar i=0;
	write_com(0x06);
	delay(1);
	lcd_pc(add);
	while(w[i] !='\0')											
		write_date(w[i++]);
}
void lcd_init()				// 液晶初始化
{
	en=0;
	write_com(0x38);
	delay(1);
	write_com(0x0c);		// 開顯示 無光標 不閃爍
	delay(1);
	write_com(0x01);		// 清屏
	delay(1);
	display(0,table);		// 第一行顯示日期
	display(0x40,table1);	// 第二行顯示時間		
}
//**********************************************************************************
//液晶顯示時分秒、年月日
void display_sfm(uchar add,uchar date)	    //顯示 時分秒
{
	uchar shi,ge;
	shi=date/10;
	ge=date%10;
	write_com(0x04);			   			//指針減1
	lcd_pc(0x40+add);
	write_date(0x30+ge);
	write_date(0x30+shi);
}
void display_nyr(uchar add,uchar date)	    //顯示 年月日
{
	uchar shi,ge;
	shi=date/10;
	ge=date%10;
	write_com(0x04);			   			//指針減1
	lcd_pc(add);
	write_date(0x30+ge);
	write_date(0x30+shi);
}
void display_week(uchar add,uchar date)	    //顯示 星期
{
	uchar num;
	write_com(0x06);			   			//指針加1
	lcd_pc(add);
	for(num=0;num<3;num++)
	{
		write_date(week[date][num]);
		delay(4);
	}
}  
void display_miaobiao()
{
	write_com(0x06);			   			//指針減1
	lcd_pc(0x44);
	write_date(0x30+shu/100000);	
	write_date(0x30+shu%100000/10000);
	write_date(':');
	write_date(0x30+shu%100000%10000/1000);
	write_date(0x30+shu%100000%10000%1000/100);
	write_date(':');
	write_date(0x30+shu%100000%10000%1000%100/10);
	write_date(0x30+shu%10);
}  
//*******************************************************************************
//調整時間
uchar second_plus(uchar second_1)
{
	second_1++;
	if(second_1>=60)					
		second_1=0;
	display_sfm(11,second_1);
	lcd_pc(0x4b);
	return second_1;
}
uchar minute_plus(uchar minute_1)
{
	minute_1++;
	if(minute_1>=60)
		minute_1=0;
	display_sfm(8,minute_1);
	lcd_pc(0x48);
	return minute_1;
}
uchar hour_plus(uchar hour_1)
{
	hour_1++;
	if(hour_1>=24)
		hour_1=0;
	display_sfm(5,hour_1);
	lcd_pc(0x45);
	return hour_1;
}
void date_plus()
{
	date++;
	if(month!=2)	 
	{
		switch(month)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:if(date>=32)date=1;break;									
			case 4:
			case 6:
			case 9:
			case 11:if(date>=31)date=1;break;																						
		}
	}
	else								
	{
		if(year%4==0)
		{
		 	if(date>=30)					//閏年29天													
				date=1;					 
		}
		else
		{
			if(date>=29)			
				date=1;		
		}														
	}
	display_nyr(11,date);
	lcd_pc(0x0b);
}
void month_plus()
{
	month++;
	switch(month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:				break;
		case 13:	month=1;	break;
		case 4:
		case 6:
		case 9:
		case 11:	if(date>=31)date=1;break;
		case 2:		if(year%4==0)				
						if(date>=30)date=1;				
					else				
						if(date>=29)date=1;				
	}
	display_nyr(8,month);					
	lcd_pc(0x0b);					  
	display_nyr(11,date);	
	lcd_pc(0x08);		
}
void year_plus()
{
	year++;
	if(year>=100)
		year=0;
	display_nyr(5,year);
	lcd_pc(0x05);
}
void day_plus()
{
	day++;
	if(day>=7)
		day=0;
	display_week(13,day);
	lcd_pc(0x0d);
}	 /*
uchar second_minus(uchar second_1)
{
	second_1--;
	if(second_1==255)						
		second_1=59;
	display_sfm(11,second_1);
	lcd_pc(0x4b);
	return second_1;
}
uchar minute_minus(uchar minute_1)
{
	minute_1--;
	if(minute_1==255)
		minute_1=59;
	display_sfm(8,minute_1);
	lcd_pc(0x48);
	return minute_1;
}
uchar hour_minus(hour_1)
{
	hour_1--;
	if(hour_1==255)
		hour_1=23;
	display_sfm(5,hour_1);
	lcd_pc(0x45);
	return hour_1;
}
void date_minus()
{
	date--;
	if(month!=2)	 
	{
		switch(month)
		{
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:if(date==0)	date=31;break;										
			case 4:
			case 6:
			case 9:
			case 11:if(date==0)	date=30;break;																								
		}					  
	}
	else								
	{
		if(year%4==0)
		{
		 	if(date==0)											  												
				date=29;				 
		}
		else
		{
			if(date==0)		
				date=28;		
		}															
	}
	display_nyr(11,date);
	lcd_pc(0x0b);
}
void month_minus()
{
	month--;
	switch(month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:			break;
		case 0:	month=12;	break;
		case 4:
		case 6:
		case 9:
		case 11:	if(date==31)date=1;break;
		case 2:		if(year%4==0)
						if(date>=30)date=1;					
					else
						if(date>=29)date=1;					
	}
	display_nyr(8,month);					
	write_com(0x80+11);					 
	display_nyr(11,date);	
	lcd_pc(0x08);
}
void year_minus()
{
	year--;
	if(year==255)
		year=99;
	display_nyr(5,year);
	lcd_pc(0x05);
}
void day_minus()
{
	day--;
	if(day==255)
		day=6;
	display_week(13,day);
	lcd_pc(0x0d);
}	*/
//**********************************************************************************
//鍵盤掃描
void time_scan()
{
	if(moshi1==0)
	{
		if(k1==0)
		{
			delay(5);
			if(k1==0)
			{
				k1num++;
				while(!k1);
				if(k1num==1)
				{
				    TR0=0;
					moshi2=1;
					moshi3=1;
					flag_display_time=1;
					lcd_pc(0x4b); 	  	//指針指向 秒的個位
					write_com(0x0f);  	//開顯示 開光標 開閃爍
				}		
				if(k1num==2)				
					lcd_pc(0x48);	  				
				if(k1num==3)			
					lcd_pc(0x45);	  			
				if(k1num==4)
					lcd_pc(0x0b);	  		
				if(k1num==5)				
					lcd_pc(0x08);	  									
				if(k1num==6)		
					lcd_pc(0x05);	 			
				if(k1num==7)			
					lcd_pc(0x0d);	 				
				if(k1num==8)
				{
					k1num=0;					
					write_com(0x0c);  //開顯示 無光標 不閃爍	
					TR0=1;
					flag_display_time=0;
					moshi2=0;
					moshi3=0;		
				}
			}
		}		
		if(k1num!=0)				  
		{
			if(k2==0)
			{
				delay(5);
				if(k2==0)
				{
					while(!k2);
					if(k1num==1)			
						second=second_plus(second);																																				 
					if(k1num==2)							 
						minute=minute_plus(minute);													
					if(k1num==3)							   
						hour=hour_plus(hour);									
					if(k1num==4)										
						date_plus();								
					if(k1num==5)										
						month_plus();																				 			
					if(k1num==6)							
						year_plus();													
					if(k1num==7)										
						day_plus();											
				}
			}			
	/*		if(k3==0)
			{
				delay(5);
				if(k3==0)
				{
					while(!k3);
					if(k1num==1)
						second=second_minus(second);																										
					if(k1num==2)			
						minute=minute_minus(minute);			
					if(k1num==3)							  			
						hour=hour_minus(hour);													
					if(k1num==4)											
						date_minus();										
					if(k1num==5)											
						month_minus();														
					if(k1num==6)											
						year_minus();															
					if(k1num==7)							
						day_minus();														
				}
			}	*/		
		}
	}
}
void alarm_scan()
{
	if(moshi2==0)
	{
		if(k2==0)
		{
			delay(5);
			if(k2==0)
			{
				k2num++;
				while(!k2);
				if(k2num==1)
				{
					moshi1=1;
					moshi3=1;
					flag_display_time=1;			
					display(0,table2);				//第一行顯示" SET ALARM "				
					display_sfm(5,a_hour);			//第二行顯示鬧鐘時間
					display_sfm(8,a_minute);
					display_sfm(11,a_second);
					lcd_pc(0x4b); 	  				//指針指向 秒的個位
					write_com(0x0f);  				//開顯示 開光標 開閃爍						
				}
				if(k2num==2)				
					lcd_pc(0x48);	  				
				if(k2num==3)			
					lcd_pc(0x45);
				if(k2num==4)
				{
					display(0x40,table3);
					lcd_pc(0x44);	
				}
				if(k2num==5)
				{
					k2num=0;
					moshi1=0;
					moshi3=0;					
					write_com(0x0c);  				//開顯示 無光標 不閃爍															
					display(0,table);				//第一行顯示日期
					display(0x40,table1);												
					display_sfm(5,hour);			//第二行顯示實時時間
					display_sfm(8,minute);
					display_sfm(11,second);	
					flag_display_time=0;
					if(i==0)
						flag_beep=0;
					else
						flag_beep=1;
				}		
			}
		}
		if(k2num!=0)
		{
			if(k1==0)
			{
				delay(5);
				if(k1==0)
				{
					while(!k1);
					if(k2num==1)			
						a_second=second_plus(a_second);																																				 
					if(k2num==2)							 
						a_minute=minute_plus(a_minute);													
					if(k2num==3)							   
						a_hour=hour_plus(a_hour);
					if(k2num==4)
					{
						i=!i;
						if(i==1)
							lcd_pc(0x49);
						else
							lcd_pc(0x44);
					}
				}
			}
		/*	if(k3==0)
			{
				delay(5);
				if(k3==0)
				{
					while(!k3);
					if(k2num==1)
						a_second=second_minus(a_second);																										
					if(k2num==2)			
						a_minute=minute_minus(a_minute);			
					if(k2num==3)							  			
						a_hour=hour_minus(a_hour);
					if(k2num==4)
					{
						lcd_pc(0x44);
						i=0;
					}
				}
			} */
		}
	}
	if(moshi1==1 && moshi2 && moshi3 == 1)
	{
		if(k1||k2||k3==0)
		{
			flag_beep=1;
			moshi1=0;
			moshi2=0;
			ring=1;
			gap_ring=1;
			TR1=1;
			tt1=0;
		}
	}
}  
void miaobiao_scan()
{
	if(moshi3==0)
	{
		if(k3==0)
		{
			delay(5);
			if(k3==0)
			{				
				while(!k3);	
				k3num++;
				moshi1=1;
				moshi2=1;
				flag_display_time=1;
				flag_display_miaobiao=0;
				shu=0;
				TR1=0;
				display(0,table4);
				display(0x40,table5);
			}
			if(k3num==2)
			{
				TR0=0;
				k3num=0;
				flag_display_time=0;
				flag_display_miaobiao=1;
				moshi1=0;
				moshi2=0;
				display(0,table);
			}
		}
		if(k3num!=0)
		{
			if(k1==0)
			{
				delay(5);
				if(k1==0)
				{
					k1num++;
					if(k1num==1)
					{
						TR1=1;
					}
					if(k1num==2)
					{
						k1num=0;
						TR1=0;
					}
				}
			}
			if(k2==0)
			{
				delay(5);
				if(k2==0)
				{
					shu=0;
					TR1=0;
				}
			}
		}
	}
}  
//**************************************************************************************
//日期和星期自動調節
void date_judge(uchar date_num)
{
	if(date>=date_num)											  
	{										
		date=1;
		month++;
		if(month>=13)
		{
			month=1;
			year++;
			if(year>=100)			
				year=0;						
		}		
	}	
}
void date_update()							//日月年自動更新函數
{
	if(month!=2)
	{
		switch(month)		   
		{
			case 1:						 //31天的月份
			case 3:						  
			case 5:
			case 7:
			case 8:
			case 10:									   
			case 12:date_judge(32);	break;																									
			case 4:						 //30天的月份
			case 6:
			case 9:																									
			case 11:date_judge(31);	break;																							
		}
	}	
	else														   
	{
		if(year%4==0)					   //二月份要判斷是閏年還是平年
			date_judge(30);
		else
			date_judge(29);
	} 
}
void week_update()				  		  //星期自動更新函數
{
	day++;
	if(day>=7)
	{
		day=0;
	}	
}
void beep()
{
	uchar i;
	for(i=0;i<100;i++)
	{
		BEEP=0;
		delay(1);
		BEEP=1;
		delay(1);
	}
	delay(20);
}
//*************************************************************************************
void main()
{
	lcd_init();
	TMOD=0x11;
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	TH1=(65536-50000)/256;
	TL1=(65536-50000)%256;
	EA=1;
	ET0=1;
	ET1=1;
	TR0=1;
	while(1)
	{
		time_scan();
		alarm_scan();
		miaobiao_scan();
		if(flag_beep==0)
		{
			if(second==a_second && minute==a_minute && hour==a_hour)
			{
				TR1=0;				
				ring=0;
				gap_ring=0;				
			}
		}
		if(ring==0)
		{
			beep();
			moshi1=1;
			moshi2=1;
			moshi3=1;
		}
		if(flag_display_time==0)
		{
			display_nyr(5,year);
			display_nyr(8,month);
			display_nyr(11,date);
			display_week(13,day);
			display_sfm(5,hour);
			display_sfm(8,minute);
			display_sfm(11,second);
		}
		if(flag_display_miaobiao==0)
			display_miaobiao();		  
	}
}					  
void timer0() interrupt 1
{
	TH0=(65536-50000)/256;
	TL0=(65536-50000)%256;
	tt++;
	if(tt==20)
	{
		tt=0;
		second++;
		if(second>=60)
		{
			second=0;
			minute++;
			if(minute>=60)
			{
				minute=0;
				hour++;
				if(hour>=24)
				{
				    hour=0;
					day++;
					date_update();
					week_update();
				}			    			  
			}								
		}
	} 		
}
void timer1() interrupt 3
{
	TH1=(65536-50000)/256;
	TL1=(65536-50000)%256;
	if(gap_ring==0)
	{
		tt1++;
		if(tt1==500)
			ring=1;
		if(tt1==1000)
		{
			ring=0;
			tt1=0;
		}
	}
	shu++;
	if(shu==1000000)
		shu=0;		
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美综合一区| 国产一区二区三区| 亚洲视频一区二区免费在线观看| 精品国产一二三| 欧美刺激午夜性久久久久久久| 欧美三级一区二区| 在线91免费看| 欧美一级国产精品| 久久噜噜亚洲综合| 国产午夜精品一区二区三区嫩草| 久久久午夜电影| 国产精品久久久久一区二区三区| 国产精品初高中害羞小美女文| 中文字幕一区av| 亚洲高清免费在线| 毛片不卡一区二区| 国产成人精品亚洲777人妖| 国产成人亚洲综合a∨猫咪| av激情亚洲男人天堂| 在线视频欧美精品| 欧美一区二区私人影院日本| 欧美电影免费观看高清完整版| 久久久久久夜精品精品免费| 国产精品不卡在线| 性做久久久久久免费观看欧美| 麻豆精品在线播放| 成人国产精品免费观看视频| 色综合久久99| 欧美精品乱人伦久久久久久| 91精品办公室少妇高潮对白| 五月天一区二区| 久久爱www久久做| 国产精品18久久久| 日本一区二区三区在线观看| 99久久er热在这里只有精品15 | 五月天中文字幕一区二区| 日本道免费精品一区二区三区| 中文字幕亚洲区| 97se亚洲国产综合在线| 一区精品在线播放| 色综合一个色综合| 洋洋av久久久久久久一区| 欧美性极品少妇| 香蕉影视欧美成人| 日韩精品专区在线影院重磅| 337p日本欧洲亚洲大胆精品 | 欧美一区二区成人| 日韩 欧美一区二区三区| 国产欧美一区二区精品性色| 国产一区二区三区蝌蚪| 国产精品全国免费观看高清| 91视频免费看| 日日摸夜夜添夜夜添国产精品 | 欧美美女一区二区在线观看| 男女男精品网站| 国产欧美日韩综合| 91久久精品一区二区| 免费不卡在线观看| 国产精品久久国产精麻豆99网站| 成人在线综合网站| 亚洲男人的天堂一区二区| 欧美一区二区三区婷婷月色| 国产风韵犹存在线视精品| 中文字幕一区av| 91精品国产麻豆国产自产在线| 加勒比av一区二区| 一区二区三区四区精品在线视频| 69成人精品免费视频| 国产精品一区二区久激情瑜伽 | 国产精品久久久久久久第一福利| 久久精品72免费观看| 欧美一区二区三区免费在线看 | 日本一区二区三区在线不卡 | 最近中文字幕一区二区三区| 成人网男人的天堂| 国产精品色在线观看| 成人国产精品免费观看视频| 国产精品久久久一本精品| 99久久久无码国产精品| 中文字幕一区二区视频| 成人短视频下载| 日韩伦理免费电影| 欧美亚洲高清一区| 日韩精品电影一区亚洲| 91精品国产91久久综合桃花| 人禽交欧美网站| 久久综合资源网| 国产成人精品亚洲日本在线桃色| 国产精品久久毛片av大全日韩| 91老师片黄在线观看| 亚洲一二三级电影| 欧美一区2区视频在线观看| 国产麻豆精品theporn| 日本一区二区三区dvd视频在线| www..com久久爱| 亚洲国产精品一区二区www| 91精品国产综合久久精品app| 免费的成人av| 日本一区二区三区四区在线视频| 91免费版在线| 日本欧美加勒比视频| 国产亚洲一二三区| 欧美综合在线视频| 国产剧情在线观看一区二区| 1区2区3区精品视频| 在线播放日韩导航| 懂色av一区二区夜夜嗨| 亚洲成人激情综合网| 国产亚洲精品中文字幕| 欧美专区日韩专区| 国产高清在线精品| 亚洲福利一二三区| 中日韩av电影| 3d成人h动漫网站入口| 粉嫩欧美一区二区三区高清影视| 亚洲国产日日夜夜| 国产精品女主播av| 日韩一区二区精品在线观看| 91香蕉视频mp4| 国产一区二区久久| 香蕉成人伊视频在线观看| 欧美激情一区二区三区| 欧美久久久久久久久中文字幕| 国产91精品在线观看| 日本亚洲一区二区| 亚洲美女少妇撒尿| 亚洲国产电影在线观看| 日韩美女视频一区二区在线观看| 91丨九色丨蝌蚪富婆spa| 国产一区二区主播在线| 日韩精品午夜视频| 亚洲国产sm捆绑调教视频| 中文字幕一区二区三区四区| 2020国产成人综合网| 日韩欧美一区二区不卡| 欧美日韩国产首页在线观看| 色综合久久99| 91丝袜呻吟高潮美腿白嫩在线观看| 国产精品一二三四| 九九精品一区二区| 六月丁香婷婷色狠狠久久| 日本成人在线网站| 日韩精品电影在线观看| 天堂va蜜桃一区二区三区| 亚洲一二三级电影| 亚洲一区二区欧美日韩 | 7777精品伊人久久久大香线蕉超级流畅 | 欧美美女网站色| 欧美色视频一区| 欧美三级乱人伦电影| 欧美精品在线一区二区三区| 欧美性猛片aaaaaaa做受| 欧美午夜精品电影| 欧美疯狂性受xxxxx喷水图片| 欧美在线一区二区三区| 精品视频一区三区九区| 欧美三级视频在线播放| 欧美精品第1页| 91麻豆精品国产自产在线| 欧美一区二区三区系列电影| 日韩欧美一区二区视频| 久久综合久久鬼色中文字| 久久久亚洲综合| 国产精品盗摄一区二区三区| 一区二区三区在线播放| 亚洲午夜私人影院| 蜜芽一区二区三区| 国产高清无密码一区二区三区| www.视频一区| 欧美视频在线一区二区三区| 欧美卡1卡2卡| 久久色在线视频| 亚洲图片激情小说| 午夜av一区二区| 国产成人免费av在线| 91网站最新网址| 欧美成人猛片aaaaaaa| 日本一区二区电影| 一区二区三区成人| 日本大胆欧美人术艺术动态| 丁香亚洲综合激情啪啪综合| 欧美性色黄大片手机版| 久久午夜色播影院免费高清 | 精品国产乱码久久久久久影片| 国产午夜精品久久| 亚洲国产乱码最新视频| 国产盗摄视频一区二区三区| 欧美最新大片在线看| 久久精品亚洲精品国产欧美| 亚洲免费电影在线| 激情综合网av| 欧美视频一区二区三区在线观看 | 亚洲天堂网中文字| 久久97超碰国产精品超碰| 91最新地址在线播放| 亚洲男人的天堂网| 亚洲免费视频成人| 久久99国产精品久久| 国产一区 二区| 欧美人伦禁忌dvd放荡欲情|