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

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

?? keyb.c

?? 用3310顯示溫度與數字鐘
?? C
字號:
/* 其中鍵盤掃描程序返回的n數值分別代表 1:P1.0 
                                       2:P1.1 
									   3:P1.2 
									   4:P1.3 
	    	89S51實驗板				   5:P1.4 */ 
									  
#include "reg51.h"
#include "stdio.h"

//外部變量函數			  
sbit BLACK_LIGHT=P2^4;  //背光控制
//------------------LPH7366.C------------------
extern void LPH7366_write_str(unsigned char line,unsigned char row,unsigned char str); //LPH7366任意寫入字符函數
extern void data_tick(unsigned char i_data); //數據拆分函數
extern unsigned char ge,shi;  //數據拆分
//-----------------time.C----------------------
extern struct time
{ 
  unsigned char hour;
  unsigned char minute;
  unsigned char second;
}local_time,alarm_time,temp_time;
extern bit second_flag;   //秒信號標志
//------------------溫度計.C-------------------
extern void temp_display();  //溫度顯示
//------------------DS18B20.C------------------
extern void temp_data_turn(float in_data);  //DS18B20讀取溫度轉換
extern signed char temp_TL,temp_TH;  //溫度上下限
extern bit T_sign;   //溫度正負符號
//------------------------------------------
//內部變量函數
unsigned char keyB();  //鍵盤掃描 
void time_switch();  //時間功能切換
void temp_switch();  //溫度功能切換
void temp_set_display(unsigned char option_i); //溫度切換顯示
void temp_set_option_display(signed char temp);  //溫度切換顯示子函數
void time_set_display(unsigned char option_i); //時間切換顯示
void time_set_option_display(struct time i); //時間切換顯示子函數
void key_time_setdone(struct time *i);  //時間調整
void key_temp_setdone(unsigned char *i);  //溫度調整
void flash_co(unsigned char set_i);  //閃爍控制函數

bit key_flag=1;   //鍵盤標志位
bit flash=0;  //閃爍總開關
bit flash1;  //閃爍控制位
bit flash2;  //閃爍控制位
bit flash3;  //閃爍控制位
extern bit ring_flag;  //鬧鈴
unsigned char data key;
unsigned char key_option_i; //具體哪位調整 共有3位可調  
unsigned char temp_TLTH_dis;  //顯示用TH_dis,TL_dis


/******************************鍵盤函數********************************/
/*函數原型:unsigned char keyB()
/*函數功能:鍵盤掃描
/*輸入參數:無
/*輸出參數:key (根據該數值進行判斷是哪個鍵被按下)
/*調用模塊:無
/*建立時間:2005/10/21
/*作者:丁霄
/**********************************************************************/
unsigned char keyB()    //鍵盤掃描子程序
{    unsigned char data i;
     i=P1;   //讀P1口
     i=i|0xe0;  //屏蔽高3位 為1
      switch(i)
	 {case 0xfe: key=1;
	  break;
	  case 0xfd: key=2;
	  break;
	  case 0xfb: key=3;
	  break;
	  case 0xf7: key=4;
	  break;
	  case 0xef: key=5;
	  break;
	  case 0xff: key=6;
	  default:  key=0; 
	  break;
	 }
	  return(key);
}

/****************************鍵盤主函數********************************/
/*函數原型:void key_mian()
/*函數功能:最上級鍵盤操作
/*輸入參數:無
/*輸出參數:無
/*調用模塊:keyB(),time_set(),temp_set()
/*建立時間:2005/11/17
/*作者:丁霄
/**********************************************************************/
void key_main()
{
    keyB();

  if(key==1&&key_flag)  //時間
  {
    key_flag=0;
    time_switch();  //時間功能切換
  }
  if(key==2&&key_flag)  //溫度
  { 
    key_flag=0;
    temp_switch();  //溫度功能切換
  }

  if(key==4&&key_flag)  //背光控制
  { 
    key_flag=0;
    BLACK_LIGHT=~BLACK_LIGHT;
  }

  if(key==5&&key_flag)   //鬧鈴控制
  {
    key_flag=0;
    ring_flag=~ring_flag;
  }

  if(key==3||key==0)  //鍵盤標志位復位
  {
    key_flag=1;
  }
    flash=0;
	flash_co(0);
}

/***************************時間功能切換函數***************************/
/*函數原型:void time_switch()
/*函數功能:時間功能切換
/*輸入參數:無
/*輸出參數:無
/*調用模塊:keyB(),key_time_setdone(),LPH7366_write_str(),time_set_display()
/*建立時間:2005/11/17
/*作者:丁霄
/**********************************************************************/
void time_switch()
{
  key_option_i=1;  //鍵盤按鍵計數器
  while(1)
 {keyB();
//------------3號鍵---------------------
  if(key==3&&key_flag)  //功能切換
  {
    key_flag=0;
    key_option_i++;
    if(key_option_i==4)  
    key_option_i=1;
  }
//-----------4號鍵-------------------
  if(key==4&&key_flag)  //背光控制
  {
    key_flag=0;
    BLACK_LIGHT=~BLACK_LIGHT;
  }
//-----------5號鍵-------------------
  if(key==5&&key_flag)  //確定
  {
    key_flag=0;
	if(key_option_i==1)
    key_time_setdone(&local_time);  //時間功能的具體那項功能設置 1:local_time  2:alarm_time  3:temp_time
   	if(key_option_i==2)
    key_time_setdone(&alarm_time); 
	if(key_option_i==3)
    key_time_setdone(&temp_time); 
	LPH7366_write_str(6,9,0x00);  //顯示空格
    LPH7366_write_str(6,10,0x00);  //顯示空格
    break;
  }
//---------其余鍵--------------------
  if(key==1||key==2||key==0)
  {
    key_flag=1;
  }
//-----------------------------------
  time_set_display(key_option_i);   //功能切換時顯示
  }
}

/***************************溫度功能切換函數***************************/
/*函數原型:void temp_switch()
/*函數功能:溫度功能切換
/*輸入參數:無
/*輸出參數:無
/*調用模塊:keyB(),key_temp_setdone(),temp_set_display()
/*建立時間:2005/11/17
/*作者:丁霄
/**********************************************************************/
void temp_switch()
{
  key_option_i=1;  //鍵盤按鍵計數器
  while(1)
 {keyB();
//------------3號鍵---------------------
  if(key==3&&key_flag)  //功能切換
  {
    key_flag=0;
    key_option_i++;
    if(key_option_i==3)  
    key_option_i=1;
  }
//-----------4號鍵-------------------
  if(key==4&&key_flag)  //背光控制
  {
    key_flag=0;
    BLACK_LIGHT=~BLACK_LIGHT;
  }
//-----------5號鍵-------------------
  if(key==5&&key_flag)  //確定
  {
    key_flag=0;
	if(key_option_i==1)
    key_temp_setdone(&temp_TH);  //時間功能的具體那項功能設置  1:TH  2:TL
  	if(key_option_i==2)
    key_temp_setdone(&temp_TL);
	LPH7366_write_str(3,6,0);  //顯示空格
    LPH7366_write_str(3,7,0);  //顯示空格
    break;
  }
//----------其余鍵--------------------
  if(key==1||key==2||key==0)
  {
    key_flag=1;
  }
//-----------------------------------
  temp_set_display(key_option_i);   //功能切換時顯示
  }
}

/**************************時間切換顯示函數****************************/
/*函數原型:void time_set_display(unsigned char option_i)
/*函數功能:時間切換顯示
/*輸入參數:無
/*輸出參數:無
/*調用模塊:time_set_option_display(),LPH7366_write_str(),
/*建立時間:2005/11/18
/*作者:丁霄
/**********************************************************************/
void time_set_display(unsigned char option_i)
{
  if(option_i==1)  //local_time
 {
     time_set_option_display(local_time);
	 LPH7366_write_str(6,9,0x00);  //顯示空格
     LPH7366_write_str(6,10,35);  //顯示C
 }

  if(option_i==2)  //alarm_time
 {
     time_set_option_display(alarm_time);
     LPH7366_write_str(6,9,0x00);  //顯示空格
     LPH7366_write_str(6,10,33);  //顯示A
 }

 if(option_i==3)  //temp_time
 {
     time_set_option_display(temp_time);
     LPH7366_write_str(6,9,0x00);  //顯示空格
     LPH7366_write_str(6,10,52);  //顯示T
 }
}

/***************************時間切換顯示子函數************************/
/*函數原型:void time_set_option_display(struct time i)
/*函數功能:時間切換顯示子函數
/*輸入參數:無
/*輸出參數:無
/*調用模塊:data_tick(),LPH7366_write_str()
/*建立時間:2005/11/21
/*作者:丁霄
/**********************************************************************/
void time_set_option_display(struct time i)
{
     data_tick(i.hour);  //hour
	  if(flash1==1)
	 {
	  if(second_flag==1)
      {
	   LPH7366_write_str(6,1,(shi+16));
	   LPH7366_write_str(6,2,(ge+16));
	  }
	  else
      { 
	   LPH7366_write_str(6,1,60);  //55
	   LPH7366_write_str(6,2,60);
	  }
	 }
	  else
	 {
	  LPH7366_write_str(6,1,(shi+16));
	  LPH7366_write_str(6,2,(ge+16));
	 }

     if(second_flag==1)
     LPH7366_write_str(6,3,26);  //:
	 else
     LPH7366_write_str(6,3,0);  // 

      data_tick(i.minute);   //minute
	  if(flash2==1)
	 {
	  if(second_flag==1)
      {
	   LPH7366_write_str(6,4,(shi+16));
	   LPH7366_write_str(6,5,(ge+16));
	  }
	  else
      { 
	   LPH7366_write_str(6,4,60);  //55
	   LPH7366_write_str(6,5,60);
	  }
	 }
	 else
	{
     LPH7366_write_str(6,4,(shi+16));
	 LPH7366_write_str(6,5,(ge+16));
	}

     if(second_flag==1)
     LPH7366_write_str(6,6,26);  //:
	 else
     LPH7366_write_str(6,6,0);  // 

	  data_tick(i.second);   //second
	  if(flash3==1)
	 {
	  if(second_flag==1)
      {
	   LPH7366_write_str(6,7,(shi+16));
	   LPH7366_write_str(6,8,(ge+16));
	  }
	  else
      { 
	   LPH7366_write_str(6,7,60);  //55
	   LPH7366_write_str(6,8,60);
	  }
	 }
	 else
	 {
	  LPH7366_write_str(6,7,(shi+16));
	  LPH7366_write_str(6,8,(ge+16));
	 }
}

/***************************溫度切換顯示函數***************************/
/*函數原型:void temp_set_display(unsigned char option_i)
/*函數功能:溫度切換顯示
/*輸入參數:無
/*輸出參數:無
/*調用模塊:temp_set_option_display(),LPH7366_write_str()
/*建立時間:2005/11/18
/*作者:丁霄
/**********************************************************************/
void temp_set_display(unsigned char option_i)
{
  if(option_i==1)  //TH
 { 
   temp_set_option_display(temp_TH);
   LPH7366_write_str(3,6,52);  //顯示T
   LPH7366_write_str(3,7,40);  //顯示H
 }

 if(option_i==2)  //TL
 {  
   temp_set_option_display(temp_TL);
   LPH7366_write_str(3,6,52);  //顯示T
   LPH7366_write_str(3,7,44);  //顯示L
 }
}


/***************************溫度切換顯示子函數函數*********************/
/*函數原型:void temp_set_option_display(signed char option_i)
/*函數功能:溫度切換顯示子函數
/*輸入參數:無
/*輸出參數:無
/*調用模塊:temp_data_turn(),LPH7366_write_str(),
/*建立時間:2005/11/21
/*作者:丁霄
/**********************************************************************/
void temp_set_option_display(signed char temp)
{
     if(temp>0)   //正值
     T_sign=0;

      else   //負值
     { 
     T_sign=1;
	 temp_TLTH_dis=temp*(-1);
     }

     if(T_sign==1)  //負值
     temp_data_turn(temp_TLTH_dis); //轉換溫度數值
     else  //正值
     temp_data_turn(temp); //轉換溫度數值

     temp_display(); 

     data_tick(local_time.hour);
     LPH7366_write_str(6,1,(shi+16));
	 LPH7366_write_str(6,2,(ge+16));

     if(second_flag==1)
     LPH7366_write_str(6,3,26);  //:
	 else
     LPH7366_write_str(6,3,0);  // 

     data_tick(local_time.minute);
     LPH7366_write_str(6,4,(shi+16));
	 LPH7366_write_str(6,5,(ge+16));

     if(second_flag==1)
     LPH7366_write_str(6,6,26);  //:
	 else
     LPH7366_write_str(6,6,0);  // 

	 data_tick(local_time.second);
     LPH7366_write_str(6,7,(shi+16));
	 LPH7366_write_str(6,8,(ge+16));  
}

/***************************時間調整函數************************/
/*函數原型:void key_time_setdone(struct time *i)
/*函數功能:時間調整
/*輸入參數:無
/*輸出參數:無
/*調用模塊:無
/*建立時間:2005/11/23
/*作者:丁霄
/***************************************************************/
void key_time_setdone(struct time *i)
{
  unsigned char set_i=1;  //設置計數器
  
   while(1)
  {
    keyB();

	if(key==1&&key_flag)  //+
	{
      key_flag=0;
	  if(set_i==1)
      {
	   i->hour++;
	   if(i->hour==24)
	   i->hour=0;
	  }

	  if(set_i==2)
      {
	   i->minute++;
	   if(i->minute==60)
	   i->minute=0;
	  }

	  if(set_i==3)
      {
	   i->second++;
	   if(i->second==60)
	   i->second=0;
	  }
	}

   	if(key==2&&key_flag)  //-
	{
	  key_flag=0;
 	   if(set_i==1)
      {
	   i->hour--;
	   if(i->hour==0xff)
	   i->hour=23;
	  }

	  if(set_i==2)
      {
	   i->minute--;
	   if(i->minute==0xff)
	   i->minute=59;
	  }

	  if(set_i==3)
      {
	   i->second--;
	   if(i->second==0xff)
	   i->second=59;
	  }
	}

	if(key==3&&key_flag)  //設置位調整
	{
	  key_flag=0;
      set_i++;
	  if(set_i==4)
	  set_i=1;
	}

	if(key==4&&key_flag)  //背光
	{
      key_flag=0;
      BLACK_LIGHT=~BLACK_LIGHT;
	}

	if(key==5&&key_flag)  //跳出
	{
	  key_flag=0;
      break;
	}

	if(key==0)
	{
	 key_flag=1;
	}
	flash=1;
	flash_co(set_i);
	time_set_display(key_option_i);
  }
}

/***************************溫度調整函數************************/
/*函數原型:void key_temp_setdone(unsigned char i)
/*函數功能:溫度調整
/*輸入參數:無
/*輸出參數:無
/*調用模塊:keyB(),temp_set_display()
/*建立時間:2005/11/23
/*作者:丁霄
/***************************************************************/
void key_temp_setdone(signed char *i)
{
    while(1)
  {
    keyB();

	if(key==1&&key_flag)  //+  溫度設置在-55~125C
	{
       key_flag=0;
	   (*i)++;
	   if((*i)>125)
	   (*i)=-55;
	}

   	if(key==2&&key_flag)  //-
	{
	  key_flag=0;
	   (*i)--;
	   if((*i)<-55)
	   (*i)=125;
	}

	if(key==4&&key_flag)  //背光
	{
      key_flag=0;
      BLACK_LIGHT=~BLACK_LIGHT;
	}

	if(key==5&&key_flag)  //跳出
	{
	  key_flag=0;
      break;
	}

	if(key==0||key==3)
	{
	 key_flag=1;
	}
	temp_set_display(key_option_i);
  }
}

/********************************閃爍控制函數******************************/
/*函數原型:void flash_co(unsigned char set_i)
/*函數功能:閃爍控制
/*輸入參數:無
/*輸出參數:無
/*調用模塊:無
/*建立時間:2005/10/27
/*作者:丁霄
/**************************************************************************/
void flash_co(unsigned char set_i)
{
   if(flash==1)
 { if(set_i==1)   //第1個標志位閃爍
  {
    flash1=1;
	flash2=0;
	flash3=0;
  }

   if(set_i==2)  //第2個標志位閃爍
  {
    flash1=0;
	flash2=1;
	flash3=0;
  }

   if(set_i==3)  //第3個標志位閃爍
  {
    flash1=0;
	flash2=0;
	flash3=1;
  }
 }
  else 
 {
  if(set_i==0)
  {
   flash1=0;
   flash2=0;
   flash3=0;
  }
 }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人禁用看黄a在线| 欧美在线看片a免费观看| 国产原创一区二区三区| 蜜桃视频免费观看一区| 天天色 色综合| 午夜精品久久久久久久久久| 亚洲一本大道在线| 日韩精品电影一区亚洲| 日韩精品电影一区亚洲| 久久99在线观看| 国产米奇在线777精品观看| 国产精品456| 91丨porny丨户外露出| 欧美亚男人的天堂| 欧美精品一二三四| 日韩视频免费观看高清完整版| 日韩无一区二区| 久久久久久久久免费| 亚洲国产精品激情在线观看| 亚洲视频一区二区免费在线观看| 亚洲另类春色校园小说| 五月婷婷综合激情| 免费视频最近日韩| 国产成人午夜视频| 日本精品一区二区三区高清| 91精品欧美综合在线观看最新 | 久久亚洲影视婷婷| 日本一区二区三区国色天香| 综合色中文字幕| 亚洲不卡一区二区三区| 经典三级视频一区| 91碰在线视频| 日韩欧美你懂的| 亚洲综合999| 午夜视频在线观看一区二区三区 | 99久久免费视频.com| 欧美视频日韩视频| 欧美精品一区二区在线观看| 国产精品国产三级国产aⅴ原创| 亚洲网友自拍偷拍| 国产一区日韩二区欧美三区| 99re在线视频这里只有精品| 7777精品伊人久久久大香线蕉 | 欧美一级电影网站| 国产欧美日韩在线| 天天综合天天综合色| 高清在线观看日韩| 欧美日韩免费高清一区色橹橹| 欧美成人一区二区三区| 中文字幕日韩一区二区| 奇米综合一区二区三区精品视频| 国产99久久精品| 欧美精品在线观看播放| 国产丝袜美腿一区二区三区| 亚洲一区二区四区蜜桃| 国产福利一区在线| 欧美日韩另类一区| 国产精品传媒在线| 韩国一区二区视频| 欧美日韩一区视频| 亚洲欧洲精品一区二区精品久久久| 日韩av不卡在线观看| 91小视频免费观看| 久久久久久毛片| 日本成人在线看| 色诱亚洲精品久久久久久| 久久综合九色综合97婷婷女人 | √…a在线天堂一区| 蜜桃视频在线一区| 欧美色电影在线| 综合中文字幕亚洲| 国产成人免费视频精品含羞草妖精 | 老司机精品视频导航| 欧美视频在线播放| 亚洲精选视频在线| 成人a区在线观看| 国产婷婷色一区二区三区在线| 三级欧美韩日大片在线看| 色哟哟一区二区| 136国产福利精品导航| 国产精品一区二区三区99| 欧美一级久久久久久久大片| 五月天网站亚洲| 91成人网在线| 亚洲欧美日韩一区| 99久久精品免费看国产免费软件| 久久亚洲欧美国产精品乐播 | 日韩丝袜情趣美女图片| 亚洲aaa精品| 欧美做爰猛烈大尺度电影无法无天| 欧美国产日韩精品免费观看| 黄色小说综合网站| 日韩欧美激情一区| 日本美女视频一区二区| 91精品黄色片免费大全| 日本午夜精品视频在线观看| 欧美日韩欧美一区二区| 亚洲国产乱码最新视频| 欧美在线视频你懂得| 亚洲最新在线观看| 欧美三级中文字幕在线观看| 亚洲小说春色综合另类电影| 欧美性一二三区| 午夜精品福利一区二区三区av| 欧美日韩日日夜夜| 免费看日韩a级影片| 日韩欧美国产不卡| 久久国内精品视频| 久久免费偷拍视频| 国产成人免费av在线| 国产精品视频看| 91在线精品秘密一区二区| 亚洲欧美电影院| 精品视频在线免费看| 首页国产欧美日韩丝袜| 精品国产一区二区三区忘忧草 | 欧美肥胖老妇做爰| 老司机一区二区| 国产丝袜美腿一区二区三区| 成人avav影音| 亚洲在线视频免费观看| 欧美疯狂做受xxxx富婆| 九色综合狠狠综合久久| 欧美韩国日本一区| 欧美专区在线观看一区| 奇米影视一区二区三区| 欧美激情一区二区在线| 欧洲一区二区三区在线| 美日韩一区二区| 国产欧美一区二区三区鸳鸯浴| 色综合天天综合给合国产| 日韩激情视频网站| 中文字幕乱码日本亚洲一区二区| 91蝌蚪porny| 蜜臀av一区二区三区| 国产欧美日韩精品一区| 欧美三级电影在线看| 久久er精品视频| 亚洲色图欧美激情| 日韩免费在线观看| 91丝袜高跟美女视频| 美日韩黄色大片| 亚洲欧洲三级电影| 制服.丝袜.亚洲.中文.综合| 高清在线观看日韩| 婷婷综合五月天| 国产精品污污网站在线观看| 欧洲视频一区二区| 国产一区二区三区免费看| 亚洲乱码中文字幕综合| 2023国产一二三区日本精品2022| 色哟哟日韩精品| 国产一区二区电影| 午夜精品久久久久| 国产精品久久精品日日| 7878成人国产在线观看| thepron国产精品| 久久99国产乱子伦精品免费| 亚洲美女少妇撒尿| 国产欧美一区二区精品忘忧草 | 国产精品欧美一区二区三区| 欧美日韩成人一区二区| 成人精品视频一区| 麻豆精品一区二区综合av| 亚洲精品va在线观看| 国产亚洲欧洲一区高清在线观看| 欧美日韩大陆一区二区| 成人av免费网站| 极品少妇xxxx偷拍精品少妇| 亚洲福利视频一区二区| 综合久久久久综合| 欧美国产乱子伦| 日韩精品中午字幕| 884aa四虎影成人精品一区| 91小视频免费看| 成人国产一区二区三区精品| 久久精品国产免费看久久精品| 亚洲综合网站在线观看| 亚洲欧洲日韩在线| 欧美激情一区二区三区不卡 | 亚洲一卡二卡三卡四卡| 国产精品网站在线观看| 久久亚洲精华国产精华液| 日韩欧美一级片| 91精品婷婷国产综合久久| 欧美最猛性xxxxx直播| 99re这里都是精品| 不卡一二三区首页| 成人美女视频在线观看| 国产精品中文字幕欧美| 精品一区二区久久| 六月婷婷色综合| 另类小说综合欧美亚洲| 青青草97国产精品免费观看 | 国产传媒欧美日韩成人| 国产一区高清在线| 激情国产一区二区| 精品亚洲成av人在线观看| 久久99精品网久久| 久久超碰97人人做人人爱|