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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ?

?? 液晶時鐘程序及仿真圖
??
字號:
#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^0;
sbit k2=P1^1;
sbit k3=P1^2;
sbit BEEP=P1^5;
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忙碌狀態(tài)
{							
	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)	
{							// 寫入數(shù)據(jù)到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);
}  
//*******************************************************************************
//調(diào)整時間
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);
}	 

//**********************************************************************************
//鍵盤掃描
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();											
				}
			}					
		}
	}
}
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);
					if(i==1)
						lcd_pc(0x49);
					else
						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(moshi1==1 && moshi2 && moshi3 == 1)
	{
		if(k1==0||k2==0||k3==0)
		{	
			delay(5);
			if(k1==0||k2==0||k3==0)
			{
				flag_beep=1;
				moshi1=0;
				moshi2=0;
				moshi3=0;
				ring=1;
				gap_ring=1;
				TR1=0;
				tt1=0;
			}
			while(!k1||!k2||!k3);
		}
	}
}  
void miaobiao_scan()
{
	if(moshi3==0)
	{
		if(k3==0)
		{
			delay(10);
			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)
			{
				TR1=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(10);
				if(k1==0)
				{
					k1num++;
					if(k1num==1)
					{
						TR1=1;
					}
					if(k1num==2)
					{
						k1num=0;
						TR1=0;
					}
				}
			}
			if(k2==0)
			{
				delay(10);
				if(k2==0)
				{
					shu=0;
					TR1=0;
				}
			}
		}
	}
}  
//**************************************************************************************
//日期和星期自動調(diào)節(jié)
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()							//日月年自動更新函數(shù)
{
	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()				  		  //星期自動更新函數(shù)
{
	day++;
	if(day>=7)
	{
		day=0;
	}	
}
void beep()
{
	uchar j=3;
	while(j--)
	{
		BEEP=0;
		delay(10);
		BEEP=1;
		delay(10);
	}
	BEEP=1;
	delay(20);
	j=2;
    while(j--)
	{
		BEEP=0;
		delay(30);
		BEEP=1;
		delay(10);
	}
}
//*************************************************************************************
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=1;				
				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==100)
			ring=1;
		if(tt1==200)
		{
			ring=0;
			tt1=0;
		}
	}
	shu++;
	if(shu==1000000)
		shu=0;		
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天综合网天天狠天天 | 99国产精品久久久久久久久久久| 精品福利视频一区二区三区| 青青青伊人色综合久久| 日韩欧美国产不卡| 国产成人av影院| 亚洲欧洲无码一区二区三区| 欧美怡红院视频| 日本亚洲天堂网| 久久影视一区二区| 成人毛片在线观看| 亚洲成人免费电影| 日韩欧美一区二区视频| 高清在线不卡av| 一区二区不卡在线视频 午夜欧美不卡在| 欧美亚洲综合久久| 久久精品国产色蜜蜜麻豆| 亚洲国产精品99久久久久久久久| 91在线视频官网| 日韩高清一区在线| 国产日韩精品一区| 欧美亚洲国产一区二区三区va| 免费成人在线观看视频| 国产三级精品三级| 欧美三级在线视频| 国产成人精品综合在线观看| 亚洲综合视频在线观看| 精品国产一二三| 色婷婷国产精品综合在线观看| 图片区小说区国产精品视频| 国产午夜亚洲精品午夜鲁丝片| 日本伦理一区二区| 国产伦精品一区二区三区免费迷| 一区二区在线观看av| 国产亚洲一区字幕| 在线观看91av| 色婷婷av一区二区三区之一色屋| 精品一区二区三区免费毛片爱 | 日韩激情视频在线观看| 国产精品沙发午睡系列990531| 欧美喷潮久久久xxxxx| 成人一区在线看| 免费在线视频一区| 亚洲精品综合在线| 国产片一区二区| 欧美高清hd18日本| 一本一道久久a久久精品| 国产精品99久久久久久久女警 | 亚洲同性gay激情无套| www成人在线观看| 欧美老肥妇做.爰bbww视频| 成人高清免费在线播放| 精品亚洲成a人| 日本免费新一区视频| 一区二区三区精品在线| 一区在线中文字幕| 国产精品素人视频| 久久久精品免费观看| 欧美激情资源网| 久久嫩草精品久久久精品一| 欧美精品乱码久久久久久按摩| 一本一道久久a久久精品| 成人高清免费在线播放| 成人性生交大片免费| 九色综合狠狠综合久久| 人人超碰91尤物精品国产| 亚洲一区二区三区影院| 日韩理论电影院| 国产精品盗摄一区二区三区| 久久九九全国免费| 久久精品夜色噜噜亚洲aⅴ| 欧美精品一区二区三区蜜臀| 日韩一区二区三区四区五区六区| 欧美人动与zoxxxx乱| 欧美欧美午夜aⅴ在线观看| 欧美日韩亚洲丝袜制服| 欧美日韩久久久一区| 欧美日韩一级片在线观看| 欧美无乱码久久久免费午夜一区| 一本大道av一区二区在线播放 | 国产黄色精品网站| 国产河南妇女毛片精品久久久| 国产精品18久久久久| 国产一区二区伦理片| 粉嫩高潮美女一区二区三区 | 色综合久久久久| 欧美在线看片a免费观看| 91搞黄在线观看| 欧美福利视频导航| 精品乱码亚洲一区二区不卡| 久久久久久免费网| 亚洲日本韩国一区| 亚洲香肠在线观看| 欧美aaaaa成人免费观看视频| 久久99精品久久久久久久久久久久 | 国产日韩欧美综合在线| 国产精品色一区二区三区| 中文字幕中文字幕一区| 亚洲一区在线视频观看| 日韩精彩视频在线观看| 国产精品自在在线| 91猫先生在线| 欧美高清激情brazzers| 国产日韩欧美制服另类| 一区二区在线观看免费| 美脚の诱脚舐め脚责91| 成人av免费网站| 欧美日韩综合色| 亚洲精品一区二区三区四区高清| 中文字幕乱码日本亚洲一区二区| 亚洲免费大片在线观看| 天堂在线亚洲视频| 高清不卡一区二区| 欧美日韩免费观看一区二区三区 | 国产精品国产三级国产aⅴ中文| 亚洲在线视频网站| 欧美亚日韩国产aⅴ精品中极品| 337p亚洲精品色噜噜| 日本一区二区动态图| 日韩影院在线观看| 国产精品1区2区| 欧美日韩国产影片| 国产精品美女www爽爽爽| 日日摸夜夜添夜夜添精品视频| 成人的网站免费观看| 日韩一级免费观看| 一个色综合av| 国产成人丝袜美腿| 欧美一区二区精美| 亚洲国产成人91porn| 国产成人自拍高清视频在线免费播放| 欧美日韩一级大片网址| 国产精品国产三级国产普通话99 | 亚洲午夜久久久久久久久电影网 | 欧美电影免费观看高清完整版在 | 中文字幕乱码日本亚洲一区二区| 亚洲成精国产精品女| 国产精品一区二区三区四区| 欧美性大战久久久久久久| 国产色91在线| 亚洲一区在线观看免费观看电影高清| 国产酒店精品激情| 欧美日韩一区二区欧美激情| 久久精品男人的天堂| 极品瑜伽女神91| 91成人免费电影| 国产婷婷精品av在线| 日韩国产欧美在线观看| 在线免费不卡视频| 国产人成亚洲第一网站在线播放| 日韩电影在线观看电影| 91影院在线免费观看| 欧美一区二区三区婷婷月色| 国产精品久久毛片a| 精品无人码麻豆乱码1区2区 | 风间由美性色一区二区三区| 欧美女孩性生活视频| 亚洲欧洲三级电影| 蜜桃一区二区三区在线观看| 色94色欧美sute亚洲线路二| 国产精品理论片在线观看| 激情小说亚洲一区| 日韩一区二区视频| 丝袜脚交一区二区| 在线免费视频一区二区| 亚洲午夜精品网| 欧洲人成人精品| 亚洲欧美视频在线观看视频| 国产99精品国产| 亚洲精品一区二区三区香蕉| 毛片av一区二区三区| 欧美一二区视频| 婷婷开心激情综合| 欧美日韩综合色| 国产精品美女久久久久久久久 | 亚洲图片欧美色图| 丁香五精品蜜臀久久久久99网站| 久久综合狠狠综合久久综合88| 免费日韩伦理电影| 91精品国产91久久久久久一区二区| 午夜欧美在线一二页| 欧美日韩精品欧美日韩精品一| 亚洲柠檬福利资源导航| 91在线你懂得| 一区二区欧美视频| 欧美午夜精品一区二区三区| 又紧又大又爽精品一区二区| 色综合久久久久| 青娱乐精品视频在线| 91精品国产91久久久久久最新毛片| 丝袜亚洲另类欧美| 精品久久一区二区| 99精品视频一区二区三区| 国内精品国产成人| 欧美日韩不卡一区| 五月激情六月综合| 国产欧美一区二区在线观看| 国产一区二区精品久久91| 中文字幕欧美日韩一区| 国产乱码精品一区二区三区av|