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

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

?? lcd128x64.c

?? 液晶顯示的原理介紹
?? C
?? 第 1 頁 / 共 3 頁
字號:
///// 函數名:   寫入字節(jié)完整子函數    //////
///// 函數功能: 寫入一個字節(jié)到DS1302  //////
///// 調用: InputByte()               //////
///// 函數參數: 有(寫入的地址和數據)  //////
///// 返回值:   無                    //////
/////////////////////////////////////////////

void WriteTo1302(unsigned char Addr,unsigned char Date)
 {
  RST2 = 0;
  CLK = 0;
  RST2 = 1;
  InputByte(Addr);       // 先給地址,命令 //
  InputByte(Date);       // 再寫入一字節(jié)數據 //
  CLK = 1;
  RST2 =0;
 }                                                      
/*************************************************************************************************/ 
/////////////////////////////////////////////
///// 函數名:   讀出字節(jié)完整子函數    //////
///// 函數功能: 從DS1302讀出一個字節(jié)  //////
///// 調用: InputByte(); OutputByte() //////
///// 函數參數: 無                    //////
///// 返回值:   有(讀出的字節(jié)內容)    //////
/////////////////////////////////////////////

ReadFrom1302(unsigned char Add)
 {
  unsigned char Date;
  RST2 = 0;
  CLK = 0;
  RST2 = 1;
  InputByte(Add);         // 先給地址,命令 //
  Date = OutputByte();      // 再讀一字節(jié)數據 //
  CLK = 1;
  RST2 =0;
  return(Date);
 }
/*************************************************************************************************/
/////////////////////////////////////////////////////////////////////////////////
///// 函數名稱: SetTime                                                     /////                                                                 /////
///// 功能: 設置初始時間                                                    /////
///// 調用: WriteTo1302()                                                   /////
///// 輸入: pSecDa: 初始時間地址。初始時間格式為: 秒 分 時 日 月 星期 年    ///// 
///// 返回值: 無                                                            /////
/////////////////////////////////////////////////////////////////////////////////

void SetTime(unsigned char *pSecDa) 
 {
  unsigned char i;
  unsigned char Addr = 0x80; 
  WriteTo1302(0x8e,0x00);         // 控制命令,WP=0,寫操作 //
  for(i =7;i>0;i--)
   { 
    WriteTo1302(Addr,*pSecDa);         // 秒 分 時 日 月 星期 年 //
    pSecDa++;
    Addr +=2;
   }
  WriteTo1302(0x8e,0x80);         // 控制命令,WP=1,寫保護 //
 }                                                                  
/**************************************************************************************************/ 
//////////////////////////////////////////////////////////////////////////////////////
///// 名稱: GetTime                                                              /////
///// 說明:                                                                      /////
///// 功能: 讀取DS1302當前時間                                                   /////
///// 調用: uc_R1302()                                                           /////
///// 輸入: ucCurtime: 保存當前時間地址。當前時間格式為: 秒 分 時 日 月 星期 年  /////
///// 7Byte (BCD碼) 1B 1B 1B 1B 1B 1B 1B                                         /////
///// 返回值: 無                                                                 /////
//////////////////////////////////////////////////////////////////////////////////////

void GetTime(void) 
 {
  unsigned char i;
  unsigned char Addr = 0x81;
  for (i=0;i<7;i++)
   {
    Curtime[i] = ReadFrom1302(Addr);        // 格式為: 秒 分 時 日 月 星期 年 //
    Addr += 2;
   }
  sec = Curtime[0];
  min = Curtime[1];
  hour = Curtime[2];
  day = Curtime[5];
  date = Curtime[3];
  month = Curtime[4];
  year = Curtime[6];
 }
/**************************************************************************************************/
////////////////////////////////////////////////////
///// 函數名:   定時器T0初始化子函數         //////
///// 函數功能: 初始化T0定時50ms             //////
///// 調用:     無                           //////
///// 函數參數: 無                           //////
///// 返回值:   無                           //////
//////////////////////////////////////////////////// 

void Init_T0(void)
 { 
  TMOD=0x01;            //定時器T0,工作模式1//
  TH0=0x3c;             //50ms//
  TL0=0xb0;
  EA=1; 
  ET0=1;
  TR0=1;
 }
/**************************************************************************************************/
////////////////////////////////////////////////////
///// 函數名:   閃爍信號產生子函數           //////
///// 函數功能: 用定時中斷方式產生閃爍信號   //////
///// 調用:     無                           //////
///// 函數參數: 無                           //////
///// 返回值:   無                           //////
//////////////////////////////////////////////////// 

void T0_flash(void) interrupt 1          // 中斷程序,產生時鐘秒信號 //
 {
  TR0=0;          
  fla_cou++;
  if(fla_cou==3)             //閃爍間隔為50ms*5次=250ms//
   {
    flash=!flash;
    fla_cou=0;
   }
  TH0=0x3c;             //50ms//
  TL0=0xb0;
  TR0=1;
 }
/**************************************************************************************************/
////////////////////////////////////////////////////
///// 函數名:   時間閃爍子函數               //////
///// 函數功能: 選擇確定閃爍位等待調整       //////
///// 調用:     Add();                       //////
///// 函數參數: 無                           //////
///// 返回值:   無                           //////
//////////////////////////////////////////////////// 

void FlashKey(void)             //閃爍子函數//
{
 if(P1_0==0)
  {
   while(P1_0==0)
    Refresh();
   n++;                        
  }                            
 if(n==8)  n=0;                         
 if(n!=1)  K1=1;
 if(n!=2)  K2=1;
 if(n!=3)  K3=1;                      
 if(n!=4)  K4=1;
 if(n!=5)  K5=1;
 if(n!=6)  K6=1;                      
 if(n!=7)  K7=1;
 switch(n)
  {
   case 0:KT=0;break;
   case 1:K1=flash;hms=year;KT=1;break;        //hms為調時臨時變量,需要調整某位時則先把其初始值放到hms中//
   case 2:K2=flash;hms=month;KT=1;break;
   case 3:K3=flash;hms=date;KT=1;break;
   case 4:K4=flash;hms=hour;KT=1;break;
	case 5:K5=flash;hms=min;KT=1;break;
   case 6:K6=flash;hms=sec;KT=1;break;
   case 7:K7=flash;hms=day;KT=1;break;
  }
 Add();
} 
/*********************************************************************************************************/
////////////////////////////////////////////////////
///// 函數名:   時間調整子函數               //////
///// 函數功能: 對閃爍位進行調整(加一)       //////
///// 調用:     SetTime();                   //////
///// 函數參數: 無                           //////
///// 返回值:   無                           //////
//////////////////////////////////////////////////// 

void Add(void)           //調時子函數//
 {
  if(P1_2==0)             //按P0_2鍵進行時間調整//
   {
    while(P1_2==0)
     Refresh();
    if(KT==1)             //檢驗可調標志位KT//
     {
      hms++;
      switch(n)
       {
        case 1:year=hms;break;           //根據n不同,返回給不同的位: n=1  ->  返回給小時位//
        case 2:month=hms;break;          //                            n=2  ->  返回給分鐘位//
        case 3:date=hms;break;           //                            n=3  ->  返回給秒位  //
        case 4:hour=hms;break;           //                            n=4  ->  返回給星期位//
        case 5:min=hms;break;            //                   依次類推                      //
		  case 6:sec=hms;break;
		  case 7:day=hms;break;
		 }
      if((sec&0x0f)==0x0a) {sec&=0xf0; sec+=0x10;}         // 如果秒位滿十,向十秒位進一 //
      if((min&0x0f)==0x0a) {min&=0xf0; min+=0x10;}         // 如果分位滿十,向十分位進一 //
      if((hour&0x0f)==0x0a) {hour&=0xf0; hour+=0x10;}      // 如果時位滿十,向十時位進一 //
      if(day==8) {day=1;}          // 如果星期滿七,重新從星期一開始計 //
      
      if((sec&0xf0)==0x60) {sec&=0x0f;}         // 如果十秒位滿六,清零 //
      if((min&0xf0)==0x60) {min&=0x0f;}         // 如果十分位滿六,清零 //
      if(((hour&0xf0)==0x20)&((hour&0x0f)==0x04)) {hour&=0x00;}          //如果小時滿24,清零//

      if((date&0x0f)==0x0a) {date&=0xf0; date+=0x10;}         // 如果日期位滿十,向十號位進一 //
      if((month&0x0f)==0x0a) {month&=0xf0; month+=0x10;}         // 如果月份位滿十,向十月位進一 //
      if((year&0x0f)==0x0a) {year&=0xf0; year+=0x10;}      // 如果年位滿十,向十年位進一 //

		if(((date&0xf0)==0x30)&((date&0x0f)==0x02)) {date&=0x00;}
		if(((month&0xf0)==0x10)&((month&0x0f)==0x03)) {month&=0x00;}
		if((year&0xf0)==0xa0) {year&=0x0f;}
      
      Curtime[0] = sec;
      Curtime[1] = min;
      Curtime[2] = hour;
	   Curtime[3] = date;
	   Curtime[4] = month;
      Curtime[5] = day;
	   Curtime[6] = year;
      SetTime(&Curtime[0]);         // 將調整過后的時間值寫入DS1302 //
     }
   }
 }
/********************************************************************************************************/
/*******************************************************************************************************/
////////////////////////////////////////////////////
///// 函數名:   時鐘初始化子函數             //////
///// 函數功能: 對所有時鐘程序變量初始化     //////
///// 調用:     Init_T0();                   //////
///// 函數參數: 無                           //////
///// 返回值:   無                           //////
//////////////////////////////////////////////////// 

void Init_Clock(void)
 {
  K1=1; K2=1; K3=1; K4=1; K5=1;
  K6=1; K7=1; KT=0; n=0;
  Init_T0();
 }
/*******************************************************************************************///時鐘部分// ↑ 
////////////////////////////////////////////////////
///// 函數名:   刷新顯示子函數               //////
///// 函數功能: 即時刷新時鐘數據進行顯示     //////
///// 調用:  InputCommand();DisplayChar();   //////
///// 函數參數: 無                           //////
///// 返回值:   無                           //////
//////////////////////////////////////////////////// 
void Refresh(void)
 {
  GetTime();
  CS1=1;CS2=0;
  if(K6)
   { sz_disp16(5,40,shuzi[sec&0x0f]);       // 秒位 //
     sz_disp16(5,32,shuzi[sec>>4]); }       // 十秒位 //
  else
   { hz_disp16(5,32,kongbai2); }             // 秒位  十秒位 //
  
  if(K5)
   { sz_disp16(5,8,shuzi[min&0x0f]);        // 分鐘位 //
     sz_disp16(5,0,shuzi[min>>4]); }        // 十分位 //
  else
   { hz_disp16(5,0,kongbai2); }
  
  if(K7)
   { sz_disp16(1,0,shuzi[day&0x0f]); }
  else
   { sz_disp16(1,0,kongbai1); }
 
  if(K3)
   { sz_disp16(3,24,shuzi[date&0x0f]);       // 日期位 //
     sz_disp16(3,16,shuzi[date>>4]);  }
  else
   { hz_disp16(3,16,kongbai2); }

  CS1=0;CS2=1;
  if(K4)
   { sz_disp16(5,40,shuzi[hour&0x0f]);       // 小時位 //
     sz_disp16(5,32,shuzi[hour>>4]); }     // 十時位 //
  else
   { hz_disp16(5,32,kongbai2); }
	
  if(K2)
   { sz_disp16(3,56,shuzi[month&0x0f]);       // 月份位 //
     sz_disp16(3,48,shuzi[month>>4]);  }
  else
   { hz_disp16(3,48,kongbai2); }	 

  if(K1)
   { sz_disp16(3,24,shuzi[year&0x0f]);       // 年份位 //
     sz_disp16(3,16,shuzi[year>>4]);  }
  else
   { hz_disp16(3,16,kongbai2); } 
 } 
/*-----------------------------狀態(tài)判斷于提示------------------------*/
void State(void)
 {
  CS1=1;CS2=0;
  if(KT==1)
   { hz_disp16(1,32,tiao);
	  hz_disp16(1,48,shi2);}
  else
   { hz_disp16(1,32,kongbai2);
	  hz_disp16(1,48,kongbai2); }
 }
/*------------------------------主函數---------------------------------*/

main()
 {
  Init_Clock();
  init_lcd();
  Disp_Img(FirstPage);
  delay(10000);
  StartMsg();
  delay(10000);
  ClockMsg();
  while(1)
   {
    Refresh();
    FlashKey();
	 State();
	 delay(250);       // 適當延時防止因為不斷查忙而耗費大量CUP資源 //
   } 
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区三区在线播放| 一本在线高清不卡dvd| 国产成人自拍网| 欧美亚洲一区二区三区四区| 国产午夜亚洲精品理论片色戒| 亚洲成人777| 91猫先生在线| 中文字幕一区二区视频| 国内精品久久久久影院色| 日韩女优制服丝袜电影| 亚洲成人动漫在线免费观看| 91美女在线视频| 欧美国产成人在线| 国产精品一二三四区| 在线综合+亚洲+欧美中文字幕| 亚洲老司机在线| 成人黄色大片在线观看| 中文一区二区在线观看| 国产一区二区91| 久久―日本道色综合久久| 蜜桃精品视频在线观看| 91精品国产色综合久久不卡蜜臀 | 国产精品一二三四| 精品国产乱码久久久久久浪潮| 偷拍一区二区三区| 67194成人在线观看| 亚洲成av人片在线| 欧美日韩国产高清一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 粉嫩av一区二区三区在线播放| 久久久91精品国产一区二区三区| 韩国午夜理伦三级不卡影院| 欧美一级高清片在线观看| 麻豆视频观看网址久久| 日韩你懂的在线播放| 久久国内精品自在自线400部| 精品精品国产高清一毛片一天堂| 国内精品在线播放| 亚洲成人久久影院| 69堂国产成人免费视频| 久久91精品久久久久久秒播| 欧美草草影院在线视频| 国产乱码精品一区二区三区五月婷| 精品999在线播放| 高清久久久久久| 亚洲美女区一区| 欧美精品丝袜中出| 国模冰冰炮一区二区| 中文乱码免费一区二区| 色婷婷综合久久| 日韩电影在线免费| 2020日本不卡一区二区视频| 不卡区在线中文字幕| 亚洲成av人片在线| 精品国产网站在线观看| 成人网页在线观看| 亚洲成a人片在线不卡一二三区| 91精品国产综合久久蜜臀 | 成人免费毛片嘿嘿连载视频| 成人免费在线观看入口| 欧美日韩另类一区| 国产精品18久久久久久久久久久久 | 亚洲女女做受ⅹxx高潮| 欧美人成免费网站| 国产精品一区二区在线观看网站| 亚洲久草在线视频| 欧美电影免费观看高清完整版在线 | 亚洲超碰精品一区二区| 精品免费国产二区三区| 91国偷自产一区二区使用方法| 久久精品国产77777蜜臀| 亚洲日本电影在线| 精品成人私密视频| 在线观看一区二区视频| 国产高清久久久| 日日骚欧美日韩| 亚洲人快播电影网| 久久综合色之久久综合| 欧美日韩综合一区| aaa国产一区| 裸体健美xxxx欧美裸体表演| 亚洲精品国产精华液| 国产偷国产偷精品高清尤物| 91精品国产综合久久香蕉的特点| 91麻豆国产福利精品| 国产一区二区三区香蕉 | 国产精品99久久久久久似苏梦涵| 亚洲一级电影视频| 国产精品久久久久7777按摩| 精品久久久久久最新网址| 欧美日韩一区二区在线观看| 99久久伊人精品| 国产传媒欧美日韩成人| 精品一区二区三区香蕉蜜桃 | 在线播放国产精品二区一二区四区 | 在线成人av网站| 欧美视频在线一区二区三区| 色综合久久中文综合久久牛| 高清久久久久久| 高清不卡一二三区| 国产一区二区三区免费| 蓝色福利精品导航| 奇米精品一区二区三区在线观看一| 亚洲福利视频三区| 亚洲一区二区欧美激情| 一区二区三区中文字幕精品精品 | 久久精品国产亚洲5555| 日韩精品乱码免费| 日日夜夜精品免费视频| 日韩中文字幕麻豆| 日本亚洲欧美天堂免费| 蜜臀av一级做a爰片久久| 蜜臀久久久久久久| 激情文学综合网| 国产老妇另类xxxxx| 国产尤物一区二区| 成人亚洲精品久久久久软件| eeuss鲁片一区二区三区在线看| 国产传媒一区在线| jvid福利写真一区二区三区| 99在线精品免费| 在线看日本不卡| 在线播放欧美女士性生活| 精品国产第一区二区三区观看体验| 精品久久99ma| 欧美激情艳妇裸体舞| 亚洲毛片av在线| 日韩电影免费在线| 国产一区二区在线视频| 波多野洁衣一区| 欧美性大战久久| 日韩久久精品一区| 国产精品久久久久久久久免费相片| 亚洲青青青在线视频| 五月婷婷欧美视频| 国产一区二区三区日韩| 91美女在线观看| 91精品国产欧美日韩| 日本一区免费视频| 亚洲精品免费看| 看电影不卡的网站| 成人av在线播放网址| 欧美视频在线观看一区| 久久婷婷国产综合国色天香| 亚洲欧洲一区二区三区| 天天亚洲美女在线视频| 福利一区福利二区| 欧美三片在线视频观看| 久久综合丝袜日本网| 亚洲制服丝袜av| 国产精品一二三| 欧美丰满高潮xxxx喷水动漫| 国产精品久久影院| 青青草原综合久久大伊人精品| 国产aⅴ综合色| 欧美一区二区三区视频免费播放 | 精品国产电影一区二区| 亚洲已满18点击进入久久| 国内精品写真在线观看| 欧美午夜电影网| 国产精品不卡一区| 久久狠狠亚洲综合| 欧美网站一区二区| 国产精品女人毛片| 久久99精品一区二区三区| 欧美日韩激情一区| 综合久久久久综合| 国产91精品一区二区麻豆网站| 欧美美女一区二区在线观看| 18涩涩午夜精品.www| 国产精品一区二区在线看| 欧美电影一区二区三区| 亚洲综合激情小说| 94-欧美-setu| 国产精品久久久久影视| 韩国一区二区三区| 日韩精品专区在线| 日本亚洲电影天堂| 色久综合一二码| ...av二区三区久久精品| 狠狠狠色丁香婷婷综合久久五月| 精品视频在线免费| 亚洲国产日韩a在线播放性色| a美女胸又www黄视频久久| 国产欧美日韩综合| 国内精品在线播放| 久久亚洲一区二区三区明星换脸| 日本一道高清亚洲日美韩| 欧美午夜片在线看| 亚洲18影院在线观看| 欧洲精品视频在线观看| 一个色综合av| 在线视频中文字幕一区二区| 亚洲激情五月婷婷| 欧美亚洲国产一区二区三区va | 欧美视频自拍偷拍| 午夜欧美大尺度福利影院在线看| 91福利区一区二区三区| 亚洲主播在线播放| 91精品国产色综合久久不卡电影 |