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

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

?? clock20090409.c

?? 單片機 時鐘程序,包含秒表
?? C
字號:
//---------------------------------------------------------
//Akey--select mode
//Bkey--add1
//Ckey--jian1&&alarm on/off&& stopwatch on/off
//Dkey--select position
//---------------------------------------------------------

#include<reg52.h>
#include<lcddriver.h>      //LCD1302驅動程序

#define uchar unsigned char
#define uint unsigned int
//==========================

sbit Ak=P1^4 ;
sbit Bk=P1^5  ;
sbit Ck=P1^6;
sbit Dk=P1^7;
sbit ring=P2^3;

uchar currentmode,keyset,count;

uchar tab_time[8]={0,0,10,0,0,10,0,0}; 
uchar tab_ymdw[9]={2,0,0,9,0,4,0,1,3};   //年月日星期
uchar code tab_t[]="Time ";
uchar code tab_d[]="Date ";
uchar sec,min,hour,day,mon,year,week;

uchar tab_alarm[8]={1,2,10,0,1,10,0,0};
uchar code tab_a[]="Alarm";
uchar nsec,nmin,nhour;
uchar alarmmode;

uchar tab_stopwatch[]={0,0,11,0,0,11,0,0};
uchar code tab_s[]="Timer";
uchar ssec,smin,sh,stopwatch,stopwatchon,stopcount;

uchar code tab_num[]="0123456789:- ";
uchar code tab_week[21]="MonTeuWedThuFriSATSUN";
uchar code tab_ampm[4]="AMPM";
uchar code table1[]={31,31,29,31,30,31,30,31,31,30,31,30,31};
uchar code table2[]={31,31,28,31,30,31,30,31,31,30,31,30,31};

//------- 函數聲明 --------
void mcu_initial();
void lcd_disp();
void time0();
void time1();
void keyprocess();
void jishi();
void delay(uint);
void alarm();

//------ 主函數 -----------
void main()
{
	mcu_initial();	
	lcd_initial();             //LCD1602初始化
	
	while(1)
   	{
   		if(currentmode==0)//clockmode
   		{
   		tab_time[0]=hour/10;   //小時十位   
		tab_time[1]=hour%10;   //小時個位
	
		tab_time[3]=min/10;    //分十位
		tab_time[4]=min%10;    //分個位
	
		tab_time[6]=sec/10;    //秒十位
		tab_time[7]=sec%10;    //秒個位	
   		}
   		if(currentmode==1)//alarm mode
   		{
   		tab_alarm[0]=nhour/10;   //小時十位   
		tab_alarm[1]=nhour%10;   //小時個位
	
		tab_alarm[3]=nmin/10;    //分十位
		tab_alarm[4]=nmin%10;    //分個位
	
		tab_alarm[6]=nsec/10;    //秒十位
		tab_alarm[7]=nsec%10;    //秒個位	
   		}
   		if(currentmode==2)//stopwatch mode
   		{
   		tab_stopwatch[0]=smin/10;   //分十位   
		tab_stopwatch[1]=smin%10;   //分個位
	
		tab_stopwatch[3]=ssec/10;    //秒十位
		tab_stopwatch[4]=ssec%10;    //秒個位
	
		tab_stopwatch[6]=sh/10;    //百分之一秒
		tab_stopwatch[7]=sh%10;    //百分之一秒	
   		}
	
		tab_ymdw[2]=year/10;   //年十位
		tab_ymdw[3]=year%10;   //年個位
	
		tab_ymdw[4]=mon/10;    //月十位
		tab_ymdw[5]=mon%10;    //月個位
	
		tab_ymdw[6]=day/10;    //日十位
		tab_ymdw[7]=day%10;    //日個位
	 
		tab_ymdw[8]=week;      //星期
	lcd_disp();
	
	keyprocess();
	
	alarm();
    
    	delay(50);//////////////////////////////////
   	}
}

void keyprocess()
{	//-----------------------------------------------------
	//設置時候,控制光標閃爍
	if(keyset==1)//sec
    	{write_instruction(0x80+12);
      	write_instruction(0x08|0x04|0x01);
      	write_instruction(0x80+11);
      	write_instruction(0x08|0x04|0x01);
	}
	if(keyset==2)//min
     	{write_instruction(0x80+9);
      	write_instruction(0x08|0x04|0x01);
	}
	if(keyset==3)//hour
     	{write_instruction(0x80+6);
      	write_instruction(0x08|0x04|0x01);
	}
	if(keyset==4)//day
     	{write_instruction(0x80+12+0x40);
     	write_instruction(0x08|0x04|0x01);
	}
	if(keyset==5)//mon
     	{write_instruction(0x80+10+0x40);
      	write_instruction(0x08|0x04|0x01);
	}
	if(keyset==6)//year
     	{write_instruction(0x80+8+0x40);
      	write_instruction(0x08|0x04|0x01);
	}
	if(keyset==7)//week
     	{write_instruction(0x80+13+0x40);
      	write_instruction(0x08|0x04|0x01);
	}

	
//-------------------------------------------------------------
//Akey,模式選擇,currentmode=0 時鐘 =1 鬧鐘 =2秒表
	if(Ak==0)  
	{
		delay(2);
		if(Ak==0)
		{
		currentmode++;
			if(currentmode>=3)
			{
				currentmode=0;
			}	
		}
	}	
	while(Ak==0) ;
	
//-----------------------------------------------
//Dkey 設置的位置選擇,=0沒有,=1秒,=2分,=3小時,=4day,=5mon,=6year,=7week
	if(Dk==0)
	{
		delay(2);
		if(Dk==0)
		{
		keyset++;
			if(keyset==8)
			{
			keyset=0;	
			}		
		}	
	}
	while(Dk==0);
//-------------------------------------------------
//時鐘模式,按鍵處理	
	if(currentmode==0)//clockmode
	{
		if(Bk==0)///+1按鍵
		{
		delay(2);
			if(Bk==0)
			{
				if(keyset==1)//sec
				{
				sec++;
					if(sec>=60)
					{
					sec=0;	
					}
					if(sec<0)
					{
					sec=60;	
					}
		
				}	
				if(keyset==2)//min
				{
				min++;
					if(min>=60)
					{
					min=0;	
					}
					if(min<0)
					{
					min=60;	
					}
				}
				if(keyset==3)//hour
				{
				hour++;
					if(hour>=24)
					{
					hour=0;	
					}
					if(hour<0)
					{
					hour=24;	
					}
				}
				if(keyset==4)//day
				{
				day++;
					if(day>=31)
					{
					day=0;	
					}
					if(day<0)
					{
					day=31;	
					}
				}
				if(keyset==5)//mon
				{
				mon++;
					if(mon>=31)
					{
					mon=0;	
					}
					if(mon<0)
					{
					mon=31;	
					}
				}
				if(keyset==6)//year
				{
				year++;
					if(year>=99)
					{
					mon=0;	
					}
					if(mon<0)
					{
					mon=99;	
					}
				}
				if(keyset==7)//week
				{
				week++;
					if(week>=99)
					{
					week=0;	
					}
					if(week<0)
					{
					week=99;	
					}
				}
				
			}	
		}
		while(Bk==0);
		
		if(Ck==0)//減一按鍵
		{
		delay(2);
			if(Ck==0)
			{
				if(alarmmode==1)
				{
				ring=0;
				alarmmode=0;	
				}
				if(alarmmode==0)
				{
				if(keyset==1)
				{
				sec--;
					if(sec>=60)
					{
					sec=0;	
					}
					if(sec<0)
					{
					sec=60;	
					}
		
				}	
				if(keyset==2)
				{
				min--;
					if(min>=60)
					{
					min=0;	
					}
					if(min<0)
					{
					min=60;	
					}
				}
				if(keyset==3)
				{
				hour--;
					if(hour>=24)
					{
					hour=0;	
					}
					if(hour<0)
					{
					hour=24;	
					}
				}
				if(keyset==4)
				{
				day--;
					if(day>=31)
					{
					day=0;	
					}
					if(day<0)
					{
					day=31;	
					}
				}
				if(keyset==5)
				{
				mon--;
					if(mon>=31)
					{
					mon=0;	
					}
					if(mon<0)
					{
					mon=31;	
					}
				}
				if(keyset==6)
				{
				year--;
					if(year>=99)
					{
					mon=0;	
					}
					if(mon<0)
					{
					mon=99;	
					}
				}
				if(keyset==7)
				{
				week--;
					if(week>=99)
					{
					week=0;	
					}
					if(week<0)
					{
					week=99;	
					}
				}
				
			}	
		}
		}
		while(Ck==0);	
	}
	//-------------------------------------------------
	if(currentmode==1)//alarmmode
	{
		if(Ck==0)
		{
		delay(2);
			if(Ck==0)
			{
			alarmmode=1;//Ck open alarm set alarmmode=1	
			}	
		}
		while(Ck==0);
				
		if(keyset>=4)
		{
		keyset=0;	
		}
		
		if(Bk==0)
		{
			delay(2);
			if(Bk==0)
			{
				
				if(keyset==2)
				{
				nmin++;
					if(nmin>=60)
					{
					nmin=0;	
					}	
				}
				if(keyset==3)
				{
				nhour++;
					if(nhour>=24)
					{
					nhour=0;	
					}
					
				}
			}	
		}
		while(Bk==0);
		
		if(Ck==0)
		{
			delay(2);
			if(Ck==0)//alarm off
			{
				if(alarmmode==1)
				{
				ring=0;
				alarmmode=0;
				}		
			}
		}
		while(Ck==0);
	}
	
	//--------------------------------------------------------------------
	if(currentmode==2)
	{
		if(Bk==0)
		{
		delay(2);
			if(Bk==0)
			{
			stopwatch=1;
			stopwatchon=0;
			sh=0;
			ssec=0;
			smin=0;
			}
		}
		while(Bk==0);
		
		if(keyset>=1)
		keyset=0;
		
		if(Ck==0)
		{
		delay(2);
			if(Ck==0)
			{
				stopwatchon++;
				
				if(stopwatch==1&&(stopwatchon%2)!=0)
				{
				TR1=1;
				}	
				else
				{
				TR1=0;	
				}
			}	
		}
		while(Ck==0);		
	}
	
}

void mcu_initial(void)
{
	
	TMOD=0x11;
	
	TH0=0x94;
	TL0=0x94;
	TH1=0xd8;
	TL1=0xef;
	
	EA=1;
	ET0=1;
	ET1=1;
	
	TR0=1;
		
	year=9;
	mon=4;
	day=11;
	hour=0;
	min=0;
	sec=0;
	week=6;
	ring=0;
	currentmode=0;	
}

void alarm()
{
	if(min==nmin&&hour==nhour&&alarmmode==1)
	{
	ring=1;	
	}	
}

void lcd_disp()
{
uchar i,j;
write_instruction(0x80);           //LCD1602寫命令函數,從第一行開始顯示
//-------------------------
	if(currentmode==0)
	{
		for(i=0;i<5;i++)
		{
		write_data(tab_t[i]);	
		}	
		write_instruction(0x80+5);
		for(i=0;i<8;i++)
		{
			j=tab_time[i];
			write_data(tab_num[j]);
		}
	}
	if(currentmode==1)
	{
		for(i=0;i<5;i++)
		{
		write_data(tab_a[i]);	
		}	
		write_instruction(0x80+5);
		write_data(' ');
		write_instruction(0x80+6);
		for(i=0;i<5;i++)
		{
			j=tab_alarm[i];
			write_data(tab_num[j]);
		}
		write_instruction(0x80+6+5);	
		if(alarmmode==0)
		{
			for(i=0;i<2;i++)
			write_data(' ');
		}
		if(alarmmode==1)
		{
		write_data(tab_ampm[0]);
		write_data(' ');
			
		}
	}
	if(currentmode==2)
	{
		for(i=0;i<5;i++)
		{
		write_data(tab_s[i]);	
		}	
		write_instruction(0x80+5);
		for(i=0;i<8;i++)
		{
			j=tab_stopwatch[i];
			write_data(tab_num[j]);
		}	
	}
	
write_instruction(0x80+5+8);
//------------------
write_data(' ');

if(hour<12)
{
   write_data(tab_ampm[0]);
   write_data(tab_ampm[1]);
}
else
{
   write_data(tab_ampm[2]);
   write_data(tab_ampm[3]);
}

write_instruction(0x80+0x40);

for(i=0;i<5;i++)
{
   write_data(tab_d[i]);      //顯示'Date '
}
//---------------------
write_instruction(0x80+0x40+5);
for(i=0;i<8;i++)
{
    j=tab_ymdw[i];            //顯示日期
    write_data(tab_num[j]);   //LCD1602寫數據函數,顯示年月日星期
}
//----------------------
write_instruction(0x80+0x40+5+8);
for(i=0;i<3;i++)
   {
    j=tab_ymdw[8];           //星期
    write_data(tab_week[(j-1)*3+i]);
   }
}

void time1() interrupt 3
{
	TH1=0xdb;
	TL1=0Xef;   //0.001s	
	sh++;
	if(sh==100)
	{
	sh=0;
	ssec++;
		if(ssec==60)
		{
		ssec=0;
		smin++;
			if(smin>=60);
			{
			smin=0;
			}	
		}
	}
	 	
}

void time0() interrupt 1
{
	TH0=0xb1;
	TL0=0Xdf;   ////20ms初值,12MHZ
	count++;
	if(count==50)
	{
	count=0;
	sec++;
	jishi();
	}
}


void jishi()      //計時函數
   {
   	
     if(sec==60)
      {
       sec=0;
       min++;
         if(min==60)
           {
             min=0;
             hour++;
               if(hour==24)
                  { hour=0;
                    day++;
                    week++;
                     if(week==8)
                       {week=0;}
                 if(year%4==0&&year%100!=0||year%400==0)     //閏年
                        {
                           if(day==table1[mon]+1)
                         {
                                day=0;
                                mon++;
                                   if(mon==13)
                                      {mon=0;year++;}
                             }
                         }
                     else                                //非閏年
                        {
                           if(day==table2[mon]+1)
                         {
                           day=0;
                           mon++;
                                  if(mon==13)
                                     {
                                     	mon=0;
                                     	year++;}
                         	}
                        }

                  }
           }
      }
  
}

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=100;y>0;y--);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产区在线观看成人精品 | 久久一夜天堂av一区二区三区 | 欧美视频一二三区| 成人精品高清在线| 美女诱惑一区二区| 午夜精品久久久久久久蜜桃app| 奇米精品一区二区三区四区 | 欧美亚男人的天堂| 99精品黄色片免费大全| 波多野结衣在线一区| 国内精品伊人久久久久av一坑| 亚洲国产日韩一级| 亚洲老司机在线| 亚洲乱码国产乱码精品精可以看| 首页国产欧美日韩丝袜| 亚洲sss视频在线视频| 亚洲午夜视频在线| 五月天精品一区二区三区| 丁香另类激情小说| 色综合久久综合| 欧美丝袜丝交足nylons| 国产精品久久久久四虎| 国产视频一区二区三区在线观看| 久久久噜噜噜久久人人看| 久久久久久久久蜜桃| 国产精品久久久久三级| 亚洲国产色一区| 美女任你摸久久 | 欧美午夜精品理论片a级按摩| 欧美三级电影精品| 久久久精品免费网站| 国产精品热久久久久夜色精品三区 | 色久综合一二码| 欧美一区二区视频观看视频| 日韩免费看的电影| 最新高清无码专区| 丝袜美腿亚洲一区二区图片| 国产凹凸在线观看一区二区| 欧美综合一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲福利一区二区三区| 成人免费观看av| av在线播放一区二区三区| 久久精品噜噜噜成人88aⅴ| 色婷婷激情久久| 亚洲理论在线观看| 欧美三级电影精品| 国产亚洲成年网址在线观看| 国产精品久久久久婷婷二区次| 午夜精品久久久久久久久| 韩国av一区二区三区四区| 91免费版在线| 欧美成人一区二区三区在线观看| 国产人伦精品一区二区| 亚洲成人av中文| 大胆亚洲人体视频| 欧美成人精品二区三区99精品| 国产精品日日摸夜夜摸av| 免费美女久久99| 欧美三级三级三级爽爽爽| 一区二区成人在线观看| 色欲综合视频天天天| 亚洲欧美区自拍先锋| 91视频在线看| 一区二区在线免费| 欧美少妇bbb| 美洲天堂一区二卡三卡四卡视频| 欧美精品777| 日韩高清中文字幕一区| 欧美一区二区三区在线视频| 美女在线一区二区| 亚洲国产激情av| 99免费精品在线| 亚洲综合999| 日韩小视频在线观看专区| 国内偷窥港台综合视频在线播放| 国产麻豆视频一区| 国产夜色精品一区二区av| 欧美日韩在线三级| 色悠悠久久综合| 成人app软件下载大全免费| 一区二区三区精品在线观看| 日韩一区二区免费在线观看| 在线观看免费亚洲| 国产麻豆视频一区| 亚洲综合激情网| 国产日韩精品久久久| 欧美制服丝袜第一页| 激情深爱一区二区| 亚洲人成伊人成综合网小说| 91精品国产一区二区三区香蕉| 国产精品一区二区三区99| 亚洲女同女同女同女同女同69| 久久综合色鬼综合色| 91福利视频在线| 国产精品资源在线看| 亚洲精品乱码久久久久久| 欧美一二三四区在线| 欧美色区777第一页| 不卡高清视频专区| 激情五月婷婷综合| 亚洲成人1区2区| 一区二区三区日韩欧美| 欧美激情在线观看视频免费| 91精品免费在线| 一本色道a无线码一区v| 国产九色精品成人porny| 男人的天堂久久精品| 日本免费在线视频不卡一不卡二| 亚洲欧美在线视频| 亚洲同性gay激情无套| 国产精品三级久久久久三级| 国产亚洲精品久| 中文字幕av一区二区三区免费看| 国产偷v国产偷v亚洲高清| 国产欧美精品区一区二区三区 | 日韩黄色免费网站| 男女视频一区二区| 国产成人精品影院| 欧洲视频一区二区| 精品成人一区二区三区| 欧美一级理论片| 欧美成人乱码一区二区三区| 日韩午夜激情av| 久久久久久亚洲综合影院红桃 | 色婷婷综合久久久久中文一区二区 | 欧美亚洲一区二区在线| 欧美在线看片a免费观看| 欧美一区日韩一区| 久久综合国产精品| 日韩理论在线观看| 日韩电影在线观看一区| 久久精品免费观看| 成人午夜电影小说| 91网站视频在线观看| 在线播放/欧美激情| 国产拍揄自揄精品视频麻豆| 亚洲女同一区二区| 黄页网站大全一区二区| 99久久综合国产精品| 欧美日本韩国一区| 国产片一区二区| 偷拍一区二区三区四区| 国产精品99久久久久久有的能看| 91视视频在线直接观看在线看网页在线看| 欧美日韩一区二区欧美激情| www亚洲一区| 丝袜美腿亚洲色图| 91九色02白丝porn| 国产欧美精品区一区二区三区| 亚洲午夜免费视频| 不卡的av中国片| 欧美成人video| 香蕉加勒比综合久久| 91视频在线看| 国产精品污www在线观看| 麻豆国产精品一区二区三区| 在线亚洲高清视频| 国产精品麻豆99久久久久久| 蜜臀a∨国产成人精品| 欧美在线视频你懂得| 综合色天天鬼久久鬼色| 不卡欧美aaaaa| 久久精品视频在线免费观看| 日本视频中文字幕一区二区三区| 在线视频一区二区三区| 中文字幕一区二区三| 成人午夜短视频| 国产精品第四页| 久久亚洲影视婷婷| 日本在线播放一区二区三区| 欧美理论片在线| 免费成人在线网站| 久久夜色精品一区| 国产在线国偷精品产拍免费yy| 精品国产乱码91久久久久久网站| 精品一区二区三区在线观看国产| 日韩视频永久免费| 国产剧情在线观看一区二区| 国产亚洲欧美在线| 色爱区综合激月婷婷| 亚洲成人激情综合网| 久久色中文字幕| 色综合久久久久网| 日韩av一区二区三区| 久久免费精品国产久精品久久久久| 国产a精品视频| 亚洲一区二区三区激情| 日韩一区二区免费高清| 成人黄色av电影| 日日欢夜夜爽一区| 中文在线免费一区三区高中清不卡| 91网页版在线| 国产在线播放一区| 亚洲大尺度视频在线观看| 精品国产91乱码一区二区三区 | 国产精品456露脸| 亚洲在线观看免费| 久久精品欧美一区二区三区麻豆| 色综合久久久久久久久久久|