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

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

?? lcd128x64.c

?? 用keil c編寫12864LCD驅動程序,并用ISIS軟件仿真實際效果
?? C
?? 第 1 頁 / 共 3 頁
字號:
///// 函數名:   寫入字節完整子函數    //////
///// 函數功能: 寫入一個字節到DS1302  //////
///// 調用: InputByte()               //////
///// 函數參數: 有(寫入的地址和數據)  //////
///// 返回值:   無                    //////
/////////////////////////////////////////////

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

ReadFrom1302(unsigned char Add)
 {
  unsigned char Date;
  RST2 = 0;
  CLK = 0;
  RST2 = 1;
  InputByte(Add);         // 先給地址,命令 //
  Date = OutputByte();      // 再讀一字節數據 //
  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); } 
 } 
/*-----------------------------狀態判斷于提示------------------------*/
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一区二区三区免费野_久草精品视频
免费看精品久久片| 91年精品国产| 91精品91久久久中77777| 日韩视频一区二区| 亚洲国产综合在线| www.欧美色图| 久久综合久久久久88| 日本最新不卡在线| 欧洲精品一区二区| 亚洲老司机在线| www.欧美色图| 国产精品久久久久久久岛一牛影视 | 国产欧美一区二区精品性| 午夜精品免费在线观看| 色婷婷一区二区三区四区| 国产天堂亚洲国产碰碰| 看国产成人h片视频| 欧美日韩aaa| 亚洲精品少妇30p| av电影在线观看不卡| 国产午夜一区二区三区| 国内不卡的二区三区中文字幕 | 26uuu国产日韩综合| 日本欧美加勒比视频| 69成人精品免费视频| 亚洲成av人片在线| 欧美日韩大陆在线| 午夜精品一区二区三区电影天堂 | 亚洲免费观看高清| 99re这里都是精品| 亚洲欧美国产三级| 不卡一区中文字幕| 亚洲美女视频在线| 欧美性生交片4| 欧美色精品在线视频| 国产无人区一区二区三区| 蜜桃视频第一区免费观看| 欧美一区二区私人影院日本| 香蕉成人伊视频在线观看| 欧美精品粉嫩高潮一区二区| 日本欧美在线看| 久久中文娱乐网| 国产麻豆视频精品| 国产精品久久毛片| 欧美午夜影院一区| 日韩精品一二三四| 欧美精品一区二区三区很污很色的| 蜜桃视频一区二区三区在线观看 | 久久久久久亚洲综合影院红桃 | 激情深爱一区二区| 久久精品亚洲国产奇米99| 成人精品亚洲人成在线| 亚洲欧美另类小说视频| 制服丝袜成人动漫| 国产在线精品免费| 亚洲欧洲日韩一区二区三区| 国内精品国产成人国产三级粉色 | 色综合色综合色综合| 亚洲精品视频在线观看网站| 欧美日韩中字一区| 日本特黄久久久高潮| 久久先锋资源网| 色综合色综合色综合色综合色综合 | 国产xxx精品视频大全| 国产精品色哟哟| 欧美日韩和欧美的一区二区| 激情五月婷婷综合| 亚洲蜜臀av乱码久久精品| 91精品视频网| 99久久伊人网影院| 日韩电影网1区2区| 国产精品久久久爽爽爽麻豆色哟哟| 91福利区一区二区三区| 久久电影网站中文字幕| 亚洲色图第一区| 久久免费看少妇高潮| 日本二三区不卡| 国产剧情一区二区三区| 亚洲一区二区三区四区的| 久久久久久久精| 欧美日韩国产高清一区| 成人av免费在线| 国产一区二区看久久| 香蕉乱码成人久久天堂爱免费| 亚洲国产精品成人综合| 日韩欧美国产综合在线一区二区三区| 99麻豆久久久国产精品免费| 裸体一区二区三区| 亚洲高清在线视频| 一区二区三区在线影院| 亚洲国产高清在线| 久久久久国产精品人| 7799精品视频| 欧美日韩国产欧美日美国产精品| 岛国一区二区在线观看| 韩国av一区二区三区在线观看| 亚洲va天堂va国产va久| 一区二区三区四区不卡视频 | 91麻豆产精品久久久久久| 国产乱子伦一区二区三区国色天香| 久久综合九色综合久久久精品综合| 亚洲精品乱码久久久久久久久| 日韩亚洲欧美在线观看| 在线免费精品视频| 99精品国产99久久久久久白柏| 国产在线视频一区二区三区| 青青草国产精品亚洲专区无| 亚洲综合色婷婷| 亚洲一区二区三区在线看| 亚洲图片另类小说| 亚洲欧美综合色| 亚洲视频网在线直播| 亚洲欧美激情视频在线观看一区二区三区| 欧美高清在线精品一区| 亚洲国产精品v| 国产精品久久久久婷婷| 国产精品久久精品日日| 亚洲色图第一区| 亚洲综合一区二区| 肉色丝袜一区二区| 美女在线视频一区| 国产在线播精品第三| 丁香婷婷综合五月| 免费高清在线视频一区·| 午夜a成v人精品| 美女在线观看视频一区二区| 狠狠狠色丁香婷婷综合久久五月| 精品一区二区三区免费观看| 国产自产v一区二区三区c| 国产精品1024| 97久久精品人人澡人人爽| 在线观看区一区二| 日韩女优视频免费观看| 欧美国产综合色视频| 亚洲色图第一区| 爽好多水快深点欧美视频| 蜜桃免费网站一区二区三区| 国产美女久久久久| 色av一区二区| 日韩欧美一区在线| 国产精品久久网站| 视频一区二区三区中文字幕| 国产乱色国产精品免费视频| av成人免费在线观看| 欧美日韩一二区| 国产亚洲综合色| 亚洲一区二三区| 国产尤物一区二区在线| 欧美自拍偷拍午夜视频| 欧美videos大乳护士334| 亚洲欧洲色图综合| 国产精品美女久久久久aⅴ| 国产精品久久夜| 午夜视频在线观看一区二区| 久久精品国产久精国产爱| 成人久久久精品乱码一区二区三区| 91福利国产成人精品照片| 26uuu另类欧美亚洲曰本| 亚洲美女淫视频| 国产成人精品免费网站| 欧美日韩国产a| 国产精品福利在线播放| 视频一区视频二区中文字幕| 成人精品免费视频| 欧美一区二区在线观看| 亚洲色图视频免费播放| 国产一区二区久久| 欧美高清一级片在线| 国产精品麻豆视频| 国产一区二区福利视频| 3atv一区二区三区| 亚洲自拍偷拍九九九| 不卡高清视频专区| 精品成人免费观看| 五月天激情综合| 91一区一区三区| 亚洲国产高清在线| 欧美日韩一区三区四区| 色综合久久久网| 中文字幕精品综合| 免费观看久久久4p| 欧美日韩国产综合视频在线观看 | 色综合av在线| 国产三级精品视频| 黑人巨大精品欧美一区| 日韩欧美一二三| 日韩av高清在线观看| 欧美丝袜自拍制服另类| 亚洲午夜一区二区| 欧美亚洲综合网| 亚洲综合成人网| 欧美三电影在线| 视频一区二区中文字幕| 欧美日韩亚洲丝袜制服| 洋洋成人永久网站入口| 日本乱码高清不卡字幕| 综合久久久久综合| 色噜噜狠狠色综合欧洲selulu| ...中文天堂在线一区| 91免费观看国产|