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

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

?? digitalclock.c

?? 主要使用12864液晶及DS1302,DS18B20完成的數字鐘使多級菜單
?? C
?? 第 1 頁 / 共 5 頁
字號:


/*調整功能顯示時間*/
void asjust_time()
{ 
  uchar save[2];
  display_cnasc(0x8a,1,"時");
  display_cnasc(0x8c,1,"分");
  display_cnasc(0x8e,1,"秒");
  save[0]=char_num[now.hour>>4];
  save[1]=char_num[now.hour&0x0f];
  display_cnasc(0x89,1,save);
  save[0]=char_num[now.minute>>4];
  save[1]=char_num[now.minute&0x0f];
  display_cnasc(0x8b,1,save);
  save[0]=char_num[now.second>>4];
  save[1]=char_num[now.second&0x0f];
  display_cnasc(0x8d,1,save);
}


/*調整功能月天數比較*/
uchar monthday(uchar year,uchar month)
{
  if(month==2&&year%4==0)
    return(29);
  else
  {	year=month&0x0f;
    month>>=4;
	month=month*10+year;	
    return(dayofmonth[month-1]);}
}



/*星期推算*/
void weeks_day()
{ 
  uchar d,buffer,day=4; 
  if(today.month>1)
  {
    buffer=(today.month>>4);   // 將BCD碼轉為十進制
	buffer=buffer*10;
	buffer+=(today.month&0x0f);
	for(d=0;d<buffer-1;d++)
	{
	  today.week=(dayofmonth[d]>>4);
	  today.week=today.week*10;
	  today.week+=(dayofmonth[d]&0x0f);
      day+=(today.week%7);
	}
  }
  buffer=(today.year>>4);
  buffer*=10;
  buffer+=(today.year&0x0f);
  if(today.year!=0)
  {
	day+=((buffer-1)/4)+buffer+1;
  }
  if(buffer%4==0&&today.month>2) day++;
  buffer=today.day>>4;
  buffer*=10;
  buffer+=(today.day&0x0f);
  today.week=(day+buffer)%7;
}



/*調整功能*/
void adjust_func(void)
{
  uchar d,save,b=0;
  dis_title_e();
  display_cnasc(0x82,3,menu_cn_2[0]);
  rds1302_date();
  rds1302_time();
  dis_date_mode2(0x90);
  display_cnasc(0x9a,1,"  "); 
  asjust_time();
  display_cnasc(0x9f,1,"→");
  display_cnasc(0x90,1,"『");
  display_cnasc(0x8f,1,"』");
  d=0;save=0;
  adju_si=0;
  do
  {
    con_disp(0x00,0x00,index_a[d].lnum,index_a[d].rnum,1,13);
    con_disp(0xff,0xff,index_a[save].lnum,index_a[save].rnum,1,13);
	d=save;
	while(1)
	{
	  save=gotkey();
	  if(save>=0&&save<10)
	  {
	    switch(d)
	    {
	      case 0: if(adju_si) // adju_si==1時兩次輸入連成一個數
		          { 
				    today.year<<=4;
			        today.year+=save;adju_si=0;
				  } 
	              else 
			      {
			        today.year=save;adju_si=1;
			      }
		          break;
		  case 1: if(adju_si)
		          {
				    today.month<<=4;today.month+=save;
		            if(today.month>0x12) today.month=save;
                    else adju_si=0;
				  }
				  else  
				  {
				    today.month=save;adju_si=1;
				  }
				  break;
		  case 2: if(adju_si)
		          {
				    today.day<<=4;today.day+=save;  // 月天數比較
					if(today.year%4==0&&today.month==2&&today.day==29) ;
		            else if(today.day>monthday(today.year,today.month)) 
					  today.day=save;
					else adju_si=0;
				  }
				  else  {today.day=save;adju_si=1;}
				  break;
		  case 3: if(adju_si)
		          {
				    now.hour<<=4;now.hour+=save;
		  			if(now.hour>0x23) now.hour=save;
					else adju_si=0;
				  }
				  else  {now.hour=save;adju_si=1;}
				  break;
		  case 4: if(adju_si)
		          {
				    now.minute<<=4;now.minute+=save;
		  			if(now.minute>0x59) now.minute=save;
					else adju_si=0;
				  }
				  else  {now.minute=save;adju_si=1;}
				  break;
		  case 5: if(adju_si)
		          {
				    now.second<<=4;now.second+=save;
		  			if(now.second>0x59) now.second=save;
					else adju_si=0;
				  }
				  else  {now.second=save;adju_si=1;}
				  break;
		}
		if(today.day>monthday(today.year,today.month)) today.day=1;	// 更改月份時判斷天數
		if(today.month==0) today.month=1;
		if(today.day==0) today.day=1;
		if(d<3) dis_date_mode2(0x90); 	// 更新顯示
        else asjust_time();
		display_cnasc(0x9a,1,"  ");		// 消去星期顯示
      }
	  if(save==11){save=d+1;adju_si=0;break;}
	  if(save==10&&d!=0){save=d-1;adju_si=0;break;}
	}
    if(save==7&d==6) break;
  }while(1);
  weeks_day();	  // 計算星期
  save_y_or_n();  // 需要保存時oth_run設為1
  if(oth_run) wds1302_time_date();
}




/*=====================================================================================
 函數名稱:計算器功能
 功能描述:10位帶符號數的加減乘除運算
 全局變量:opera  resu  i  j
 參數說明:見函數
 返回說明:無
 設 計 人:LIJH
 版    本:1.0
 說    明:
 ======================================================================================*/



/*清寄存器  參數格式:m=2時結果寄存器,當m=1時操作數1,當m=0時操作數0(1),
                        n=1時,只清寄存器不清顯示, 0兩清*/
void removal_data(uchar m,uchar n)
{
  uchar l;		// 當n=1時,只清寄存器不清顯示, 0兩清
  if(m==2)		// 當m=2時結果寄存器
  {			    // 當m=1時操作數1
    if(n==0)	// 當m=0時操作數0 ,1
	  for(l=0;l<6;l++)
	    display_cnasc(0x98+l,1,"  ");
    for(l=0;l<12;l++)
      resu[l]=0;
  }
  while(m<2)
  { 
    if(n==0)
	{
	  if(m==0) 
	  {  
	    for(l=0;l<6;l++)
	      display_cnasc(0x90+l,1,"  ");
		  display_cnasc(0x95,1," 0");
	  }	
	  else
	     for(l=0;l<6;l++)
	        display_cnasc(0x88+l,1,"  ");
	}
    for(l=0;l<12;l++)
      opera[m][l]=0;
	m++;
  }
}




/*顯示數值  參數格式:顯示首地址*/
void dis_cdata(uchar ass)
{
  uchar p,d,save[2];
  if(i==0&&opera[0][0]==1) 		// 顯示符號
  {
    if(cal_run)  display_cnasc(0x98,1,"=-");
    else  display_cnasc(0x90,1," -");
  }
  d=opera[i][11];				// 計算位數
  if(opera[i][10]!=0&&opera[i][10]!=opera[i][11]+1) d++;
  save[0]=d/2;ass=ass-save[0]+5;	// 計算顯示的開始位置
  p=1;
  cal_del=0;					// 顯示點標記 (0為沒有顯示)
  if(d%2==1)					// 對位數位奇數先處理首位
  { 
    save[0]=' ';
    save[1]=char_num[opera[i][1]];
	display_cnasc(ass,1,save);
	p++;
  }
  ass++;						// 顯示地址加一
  while(p<=opera[i][11])
  {									
    if(opera[i][10]==p&&(!cal_del)) {   // 顯示點且作標記
	  save[0]='.';cal_del=1;}
    else { 
	  save[0]=char_num[opera[i][p]]; p++;}
    if(opera[i][10]==p&&(!cal_del)) { 
	  save[1]='.';cal_del=1;}
    else{ 
	  save[1]=char_num[opera[i][p]];p++;}
    display_cnasc(ass,1,save);
    ass++;
  }
}   


/*從鍵盤中寫入數據*/   
char input_data()
{
  uchar save=20,c;
  for(;i<2;i++)
  {
    while(1)
    {
pp:   save=gotkey();	// 讀鍵盤
	  if(save==20) continue;
	  if(save==11)		// 按鍵為確定時,選擇計算或刪除
	  {
	    c=save=0;
		while(1)		// 反色選擇
	    { 
		  con_disp (0x00,0x00,index_cal[save].lnum,index_cal[save].rnum,2,16);
		  con_disp (0xff,0xff,index_cal[c].lnum,index_cal[c].rnum,2,16);	
		  save=gotkey();
		  if(save==10)
		  { 
		    save=c;
			if(++c==3) c=0;
		  }
		  else if(save==11) 
		  { 
            if(c==0) save=11;
		    else if(c==1) save=16;
			else  return 0;
		    break;
		  }
		  else break;
        }
		con_disp (0x00,0x00,index_cal[c].lnum,index_cal[c].rnum,2,16);	    
	  }
      if(save>=0&&save<=9&&j<10) 
	  {
	    if(i==1&&opera[1][0]==15&&j>8) goto pp;
        if(j==2&&opera[i][1]==0&&opera[i][10]==0)
          opera[i][1]=save;		// 防止小數位不在時首位為零
	    else{
		  opera[i][j]=save;opera[i][11]=j;j++;}
		if(i==0)				// 顯示
		  dis_cdata(0x90);
		else
		  dis_cdata(0x88);
	  }
      else if(save==10&&j<10)	
      {
	    if(opera[i][10]==0)		// 小數點空時保存
	    {
		  if(opera[i][11]==0) {opera[i][10]=2;j++;}
	      else  opera[i][10]=j;
	    }
	  }
	  else if(save==16)	
	  {                           // 刪除數據
        removal_data(i,0);j=1;
		if(i!=0){i--;j=10;}
      }
	  else if(i==1&&opera[1][11]!=0&&save>11&&save<16)
      { save1=save;break; }   		// 連續計算時保存運算符
      else if(save==11&&opera[1][11]==0) continue;// 操作數1為0時不理會
	  else if(save==11&&opera[1][11]!=0)  break; 
	  else if((i==0||i==1&&j==1)&&save>11&&save<16){i=0; break;}    
       // 當操作數0由運算符結束輸入,再按符號鍵更改
	  else continue;
    }
    if(opera[i][10]>opera[i][11]||opera[i][10]==0)
      opera[i][10]=opera[i][11]+1;	// 整數時小數位保存到最后
    while(opera[i][11]>=opera[i][10]&&opera[i][opera[i][11]]==0)
      opera[i][11]--;				// 去除小數點后多余的0
    if(i==0)
    {
      opera[1][0]=save;			// 保存運算符并顯示
      display_cnasc(0x88,1,tool_cal[save-12]);
    }
    if(opera[0][11]==0) display_cnasc(0x95,1," 0");
    j=1;
    while(j<=opera[i][11]&&opera[i][j]==0) j++;//判斷是否操作數是否全為0
    j--;
    if(j==opera[i][11]) opera[i][11]=0;
    j=1;
  }
  return 1;
}


/****************************************************************************************
功能:  乘法運算
描述:  結果由右到左保存
參數:  i , j , opera[i][j],p,q,r,k,save1
返回值:1(成功),0(結果位0),-1(溢出)
/****************************************************************************************/

char multiplication()
{
  uchar p,q,r,k,save1=0; // p指向操作數0 ,q指向操作數1,r指向結果
  if(opera[0][11]==0||opera[1][11]==0) return 0;
  resu[10]=opera[0][11]+opera[1][11]-opera[0][10]-opera[1][10]+2; // RESU記錄小數點后的位數
  q=opera[1][11];					// 記錄操1的位數
  r=9;
  opera[1][11]=1;
  k=1;
  while(opera[1][k]==0) {opera[1][11]=opera[1][11]+1;k++;}	// 去除前端的0
  k=1;
  while(opera[0][k]==0) k++;			// 去除前端的0
  resu[11]=9;
  for(resu[0]=9;q>=opera[1][11];q--,resu[0]--)
  {
    if(opera[1][q]==0) continue;		// 操1此位數為0時直接比較
    for(p=opera[0][11],r=resu[0];p>=k;p--)
    {
      save1=opera[0][p]*opera[1][q];		// 將相乘后的數保存
      resu[r]+=(save1%10);//將緩存中的數取余后加到結果中R指向的位
      save1/=10;
      save1=save1+(resu[r]/10);			// 保存進位的數
      resu[r]%=10;					// 重新寫入
	  if(r==1)	//結果有溢出時移位
	  {
	    if(save1==0&&p==k) break;	// 計算到最后位且沒進位跳出
	    else if(resu[10]>0)		// 要求有小數存在
        { 
	      for(r=9;r>1;r--) resu[r]=resu[r-1]; 
	      r=1;
          resu[r]=save1;
	      resu[11]=1;
	      resu[10]--;
	      resu[0]++;
        }   
	    else   return -1;	 		// 否則溢出
	  }
	  if(r>1&&(r-1)<resu[11])			// 保存結果位的最高位
	  {
	    if(save1!=0) resu[11]=r-1;
	    else resu[11]=r;
	  }
	  if(r>1){ r--;resu[r]+=save1;}// 當R為1時只需要移位記錄結果
    }
  }
  while(resu[resu[11]]==0) resu[11]++; 	// 去除前端的0
  resu[0]=opera[0][0];				// 保存符號位
  removal_data(0,1);					// 清數據不清顯示
  if(resu[10]>8)   //如果小數點后的數有9 位或以上時,需后移到使小數點放到2的位置  
  {
    save1=resu[10]-10+resu[11]; 		// 記錄后移位數
    if(save1>7)  return 0; 	 //當后移的數大于有效數字的位數時結果為0 
    else 	// 否則按需移位
    {
      for(p=save1+2,r=resu[11];p<10;p++,r++) opera[0][p]=resu[r];
	  opera[0][10]=2;opera[0][11]=9;opera[0][0]=resu[0];
    }		// 因有效數小于小數點后的數,所以首位為0  
  }	
  else  	//如果小數點后的數在8位以內時分兩種情況
  {	
    opera[0][0]=resu[0];  
    save1=10-resu[11]; 	// 記錄有效位數
    if(resu[10]>=save1) 	// 小數的在有效數字的左邊
    {	
	  for(p=resu[10]+1,r=9;r>=resu[11];p--,r--)
        opera[0][p]=resu[r];	// 從小數點的最后一位開始
      opera[0][10]=2;opera[0][11]=resu[10]+1;
    }
    else  				// 小數點在有效數字內
    {  
	  for(p=1,r=resu[11];r<10;p++,r++) opera[0][p]=resu[r];

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品国产在热久久| 国产精品区一区二区三区| 午夜亚洲福利老司机| 欧美人xxxx| 美国十次了思思久久精品导航| 精品国产乱子伦一区| 韩国v欧美v亚洲v日本v| 日本一区二区三区高清不卡| 播五月开心婷婷综合| 一区二区三区精品视频| 欧美日韩aaaaaa| 国产一区二区视频在线| 亚洲少妇最新在线视频| 欧美高清一级片在线| 国产在线不卡一卡二卡三卡四卡| 国产精品成人免费在线| 日韩一区二区三区视频在线观看| 免费看日韩a级影片| 国产欧美综合色| 欧美在线观看18| 国产一区美女在线| 亚洲免费在线观看| 欧美大片顶级少妇| 91视频com| 国内外精品视频| 亚洲激情av在线| 精品三级av在线| 色哟哟日韩精品| 麻豆精品精品国产自在97香蕉| 亚洲欧美在线aaa| 日韩三级伦理片妻子的秘密按摩| 99久久免费国产| 奇米色777欧美一区二区| 中文字幕中文在线不卡住| 日韩三级视频中文字幕| 在线免费观看日本一区| 国产综合色精品一区二区三区| 亚洲黄色av一区| 国产日产欧美一区二区视频| 欧美日韩成人综合在线一区二区| 国产成人av一区二区三区在线| 丝袜亚洲精品中文字幕一区| ...xxx性欧美| 日本一区二区三区视频视频| 日韩精品专区在线影院重磅| 欧美最猛性xxxxx直播| 成人午夜视频在线| 精品在线亚洲视频| 五月天激情综合网| 亚洲免费在线电影| 国产精品你懂的在线| 久久久亚洲精品石原莉奈| 69堂国产成人免费视频| 色狠狠桃花综合| 97精品国产露脸对白| 国产精品 欧美精品| 久色婷婷小香蕉久久| 亚洲高清中文字幕| 一区二区三区日韩欧美精品| 中文字幕亚洲一区二区av在线| 精品sm在线观看| 欧美成人a在线| 欧美一区二区三区免费大片| 欧美日韩一卡二卡| 91在线观看高清| 99视频有精品| av在线这里只有精品| av福利精品导航| 97国产一区二区| av电影在线观看一区| 99re这里只有精品首页| 99国产一区二区三精品乱码| 99久久精品国产毛片| 成年人国产精品| 99精品视频在线观看免费| 国产69精品一区二区亚洲孕妇| 国产激情一区二区三区四区 | 亚洲一区在线电影| 亚洲欧美偷拍三级| 亚洲自拍偷拍av| 亚洲国产精品久久艾草纯爱| 午夜视频在线观看一区二区| 日韩精品免费视频人成| 欧美aa在线视频| 狂野欧美性猛交blacked| 久久av老司机精品网站导航| 国产精品456| 成人小视频免费观看| 色屁屁一区二区| 欧美午夜视频网站| 91精品免费在线| 久久久久久久久岛国免费| 国产精品乱码久久久久久| 一区二区三区在线视频免费| 日日噜噜夜夜狠狠视频欧美人| 免费观看30秒视频久久| 国产精品一区二区x88av| 国产成人精品1024| 色综合天天综合网天天狠天天| 欧美日韩国产不卡| 精品日韩欧美在线| 国产精品初高中害羞小美女文| 亚洲一区二区三区四区中文字幕| 午夜视频一区在线观看| 狠狠色丁香婷综合久久| 91在线无精精品入口| 欧美精品 国产精品| 日本一区二区三区在线不卡| 夜夜操天天操亚洲| 精品一区精品二区高清| 91丝袜高跟美女视频| 欧美一区二区精品在线| 久久精品人人做人人爽97| 亚洲欧美日韩国产另类专区| 日本不卡中文字幕| 成人综合在线网站| 欧美男男青年gay1069videost| 久久影音资源网| 一区二区三区免费网站| 国产美女一区二区| 欧美日韩一卡二卡三卡| 国产精品福利一区| 日本美女一区二区| 91老师国产黑色丝袜在线| 精品精品国产高清一毛片一天堂| 亚洲欧美中日韩| 国内精品久久久久影院一蜜桃| 色视频欧美一区二区三区| 精品国产91久久久久久久妲己| 一区二区三区成人| 国产成人一级电影| 欧美www视频| 亚洲国产视频一区二区| www.性欧美| 26uuu欧美| 日韩激情一区二区| 色噜噜夜夜夜综合网| 日本一区二区三区国色天香| 免费久久精品视频| 欧美久久高跟鞋激| 亚洲黄色小说网站| www.99精品| 亚洲国产经典视频| 黄色日韩网站视频| 日韩欧美国产系列| 日日噜噜夜夜狠狠视频欧美人 | 91在线视频在线| 久久久久亚洲蜜桃| 九九视频精品免费| 欧美xxxxxxxx| 看电影不卡的网站| 欧美一级二级三级乱码| 天天色天天爱天天射综合| 日本韩国精品在线| 亚洲精品免费在线观看| 99riav一区二区三区| 国产精品传媒入口麻豆| 波多野结衣视频一区| 国产精品不卡在线| 成人精品一区二区三区四区 | 欧美久久久久中文字幕| 亚洲国产精品视频| 在线观看亚洲一区| 亚洲综合色丁香婷婷六月图片| 色婷婷综合久久久久中文一区二区 | 亚洲一区二区欧美日韩| 在线一区二区视频| 亚洲高清视频中文字幕| 欧美日韩国产另类不卡| 婷婷国产v国产偷v亚洲高清| 欧美一级xxx| 裸体在线国模精品偷拍| 欧美精品一区二区三区很污很色的| 老司机午夜精品| 国产视频亚洲色图| 丁香婷婷综合激情五月色| 中文字幕一区二区在线观看| 99久久婷婷国产综合精品| 亚洲综合无码一区二区| 欧美乱熟臀69xxxxxx| 欧美aaaaaa午夜精品| 精品不卡在线视频| 成人精品高清在线| 亚洲激情欧美激情| 欧美二区三区91| 国产乱淫av一区二区三区 | 精品国精品国产| 国产乱码精品一区二区三区av| 国产精品欧美一级免费| 在线免费观看日本欧美| 青青国产91久久久久久| 国产日韩视频一区二区三区| 色综合一区二区三区| 欧美bbbbb| 亚洲国产精品成人综合色在线婷婷 | 久久久午夜电影| 91麻豆福利精品推荐| 蜜臀av性久久久久av蜜臀妖精| 中文字幕免费一区| 欧美熟乱第一页|