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

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

?? 矩陣鍵盤中斷掃描.c

?? 51實例大全
?? C
字號:
/*-----------------------------------------------
  名稱:矩陣鍵盤依次輸入控制 使用行列逐級掃描 中斷方式
  論壇:www.doflye.net
  編寫:shifang
  日期:2009.5
  修改:無
  內容:如計算器輸入數據形式相同 從右至左 使用行列掃描方法
        中斷方式可以有效提供cpu工作效率,在有按鍵動作時才掃描,平時不進行掃描工作
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義


#define DataPort P0 //定義數據端口 程序中遇到DataPort 則用P0 替換
#define KeyPort  P1

sbit LATCH1=P2^2;//定義鎖存使能端口 段鎖存
sbit LATCH2=P2^3;//                 位鎖存

bit KeyPressFlag;//定義按鍵標志位

unsigned char code dofly_DuanMa[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
		                  	         0x77,0x7c,0x39,0x5e,0x79,0x71};// 顯示段碼值0~F
unsigned char code dofly_WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應相應的數碼管點亮,即位碼
unsigned char TempData[8]; //存儲顯示值的全局變量

void DelayUs2x(unsigned char t);//us級延時函數聲明 
void DelayMs(unsigned char t); //ms級延時
void Display(unsigned char FirstBit,unsigned char Num);//數碼管顯示函數
unsigned char KeyScan(void);//鍵盤掃描
unsigned char KeyPro(void);
void Init_Timer0(void);//定時器初始化
void Init_INT0(void);  //外部中斷0初始化和
/*------------------------------------------------
                    主函數
------------------------------------------------*/
void main (void)
{
unsigned char num,i,j;                  
unsigned char temp[8];
Init_Timer0();
Init_INT0();
while (1)         //主循環
  {
  KeyPort=0xf0;// 賦值用于中斷檢測
 if(KeyPressFlag==1)
 {
  KeyPressFlag=0;  //按鍵標志清零,以便下次檢測
  num=KeyPro();    
  if(num!=0xff)
   {
    if(i<8)
      {
       temp[i]=dofly_DuanMa[num];
	   for(j=0;j<=i;j++)
          TempData[7-i+j]=temp[j];
       }
	i++;
	if(i==9)//多出一個按鍵輸入為了清屏 原本應該為8
      {
	  i=0;
      for(j=0;j<8;j++)//清屏
         TempData[j]=0;
       }
     }
    }	
 }
}
/*------------------------------------------------
 uS延時函數,含有輸入參數 unsigned char t,無返回值
 unsigned char 是定義無符號字符變量,其值的范圍是
 0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
 長度如下 T=tx2+5 uS 
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
 while(--t);
}
/*------------------------------------------------
 mS延時函數,含有輸入參數 unsigned char t,無返回值
 unsigned char 是定義無符號字符變量,其值的范圍是
 0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{
     
 while(t--)
 {
     //大致延時1mS
     DelayUs2x(245);
	 DelayUs2x(245);
 }
}
/*------------------------------------------------
 顯示函數,用于動態掃描數碼管
 輸入參數 FirstBit 表示需要顯示的第一位,如賦值2表示從第三個數碼管開始顯示
 如輸入0表示從第一個顯示。
 Num表示需要顯示的位數,如需要顯示99兩位數值則該值輸入2
------------------------------------------------*/
void Display(unsigned char FirstBit,unsigned char Num)
{
      static unsigned char i=0;
	  

	   DataPort=0;   //清空數據,防止有交替重影
       LATCH1=1;     //段鎖存
       LATCH1=0;

       DataPort=dofly_WeiMa[i+FirstBit]; //取位碼 
       LATCH2=1;     //位鎖存
       LATCH2=0;

       DataPort=TempData[i]; //取顯示數據,段碼
       LATCH1=1;     //段鎖存
       LATCH1=0;
       
	   i++;
       if(i==Num)
	      i=0;


}
/*------------------------------------------------
                    定時器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
 TMOD |= 0x01;	  //使用模式1,16位定時器,使用"|"符號可以在使用多個定時器時不受影響		     
 //TH0=0x00;	      //給定初值
 //TL0=0x00;
 EA=1;            //總中斷打開
 ET0=1;           //定時器中斷打開
 TR0=1;           //定時器開關打開
}
/*------------------------------------------------
                 定時器中斷子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1 
{
 TH0=(65536-2000)/256;		  //重新賦值 2ms
 TL0=(65536-2000)%256;
 
 Display(0,8);       // 調用數碼管掃描

}

/*------------------------------------------------
按鍵掃描函數,返回掃描鍵值
------------------------------------------------*/
unsigned char KeyScan(void)  //鍵盤掃描函數,使用行列逐級掃描法
{
 unsigned char Val;
 KeyPort=0xf0;//高四位置高,低四位拉低
 if(KeyPort!=0xf0)//表示有按鍵按下
   {
    DelayMs(10);  //去抖
	if(KeyPort!=0xf0)
	  {           //表示有按鍵按下
    	KeyPort=0xfe; //檢測第一行
		if(KeyPort!=0xfe)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x0e;
	  		  while(KeyPort!=0xfe);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xfe);
	     	  return Val;
	        }
        KeyPort=0xfd; //檢測第二行
		if(KeyPort!=0xfd)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x0d;
	  		  while(KeyPort!=0xfd);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xfd);
	     	  return Val;
	        }
    	KeyPort=0xfb; //檢測第三行
		if(KeyPort!=0xfb)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x0b;
	  		  while(KeyPort!=0xfb);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xfb);
	     	  return Val;
	        }
    	KeyPort=0xf7; //檢測第四行
		if(KeyPort!=0xf7)
	  		{
			  Val=KeyPort&0xf0;
	  	      Val+=0x07;
	  		  while(KeyPort!=0xf7);
			  DelayMs(10); //去抖
			  while(KeyPort!=0xf7);
	     	  return Val;
	        }
     }
   }
  return 0xff;
}
/*------------------------------------------------
按鍵值處理函數,返回掃鍵值
------------------------------------------------*/
unsigned char KeyPro(void)
{
 switch(KeyScan())
 {
  case 0x7e:return 0;break;//0 按下相應的鍵顯示相對應的碼值
  case 0x7d:return 1;break;//1
  case 0x7b:return 2;break;//2
  case 0x77:return 3;break;//3
  case 0xbe:return 4;break;//4
  case 0xbd:return 5;break;//5
  case 0xbb:return 6;break;//6
  case 0xb7:return 7;break;//7
  case 0xde:return 8;break;//8
  case 0xdd:return 9;break;//9
  case 0xdb:return 10;break;//a
  case 0xd7:return 11;break;//b
  case 0xee:return 12;break;//c
  case 0xed:return 13;break;//d
  case 0xeb:return 14;break;//e
  case 0xe7:return 15;break;//f
  default:return 0xff;break;
 }
}
/*------------------------------------------------
           外部中斷0初始化
------------------------------------------------*/
void Init_INT0(void)
{
  EA=1;          //全局中斷開
  EX0=1;         //外部中斷0開
  IT0=1;         //邊沿觸發
}

/*------------------------------------------------
                 外部中斷0程序
------------------------------------------------*/
void ISR_INT0(void) interrupt 0 
{
 KeyPressFlag=1;   //表明按鍵有動作,可以進行按鍵掃描
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人免费观看| 性久久久久久久久| 欧美成人官网二区| 在线不卡免费欧美| 制服丝袜亚洲精品中文字幕| 欧美日韩国产综合视频在线观看| 欧美三级欧美一级| 91精品国产综合久久香蕉麻豆 | 26uuu精品一区二区| 日韩视频一区二区三区在线播放| 91精品免费在线| 亚洲精品一区二区精华| 2020国产成人综合网| 中文字幕av在线一区二区三区| 国产精品无码永久免费888| 亚洲欧美一区二区视频| 亚洲一区二区三区在线看| 日韩不卡手机在线v区| 韩国成人福利片在线播放| 处破女av一区二区| 91黄色免费网站| 欧美不卡在线视频| 国产精品拍天天在线| 亚洲午夜精品久久久久久久久| 视频在线在亚洲| 成人精品视频一区二区三区| 在线看不卡av| 国产午夜精品一区二区三区嫩草| 亚洲精选一二三| 黄一区二区三区| 色av一区二区| 精品久久久久久无| 一区二区三区四区蜜桃| 狠狠色2019综合网| 精品视频在线看| 久久久777精品电影网影网 | 国产成人精品三级麻豆| av福利精品导航| 日韩精品在线网站| 一区二区三区美女视频| 国产精品综合久久| 91精品婷婷国产综合久久竹菊| 国产精品国产三级国产三级人妇| 视频一区二区国产| 91国产福利在线| 国产精品久久久久久妇女6080| 免费观看成人鲁鲁鲁鲁鲁视频| 不卡一卡二卡三乱码免费网站| 91精品国产一区二区三区| 亚洲欧美视频在线观看视频| 国内成人精品2018免费看| 7777精品伊人久久久大香线蕉的| 中文字幕色av一区二区三区| 久久激情五月婷婷| 91精品国产欧美一区二区| 亚洲欧美日韩国产手机在线| 国产69精品久久久久777| 日韩三区在线观看| 日韩高清在线电影| 日本大香伊一区二区三区| 中文字幕一区二区三区在线播放| 激情欧美日韩一区二区| 日韩视频免费直播| 日本不卡视频在线| 日韩一区二区三区观看| 五月天视频一区| 在线播放中文一区| 午夜电影久久久| 欧美精选午夜久久久乱码6080| 一区二区三区不卡视频| 一本在线高清不卡dvd| 亚洲乱码国产乱码精品精小说| 成人美女视频在线观看18| 中文字幕国产精品一区二区| 福利电影一区二区| 国产精品美女久久久久久| 成人免费视频国产在线观看| 国产日韩欧美不卡在线| www.亚洲色图| 亚洲日本中文字幕区| 色一情一乱一乱一91av| 亚洲国产aⅴ天堂久久| 欧美日韩高清不卡| 九色综合狠狠综合久久| 国产无一区二区| 99视频一区二区| 一区二区三区精品在线| 欧美日韩不卡在线| 蜜乳av一区二区三区| 欧美xingq一区二区| 丁香一区二区三区| 亚洲精品写真福利| 在线成人免费观看| 国产成人夜色高潮福利影视| 亚洲欧洲另类国产综合| 欧美视频在线不卡| 理论片日本一区| 中文字幕视频一区二区三区久| 在线国产电影不卡| 久久99久久久久| 国产精品久久影院| 欧美高清dvd| 国产精品一区免费在线观看| 亚洲激情成人在线| 日韩欧美一区中文| 99久久精品久久久久久清纯| 日韩精品乱码av一区二区| 国产欧美一区二区精品性色超碰| 色综合久久久久网| 国产一区免费电影| 一二三四区精品视频| 久久一日本道色综合| 欧美自拍偷拍一区| 国产成人精品亚洲777人妖| 夜夜夜精品看看| 中文一区在线播放| 欧美成人三级在线| 欧美视频一二三区| 成人精品鲁一区一区二区| 日韩国产在线一| 亚洲男人的天堂av| 久久久亚洲国产美女国产盗摄| 在线一区二区三区四区五区| 国产美女av一区二区三区| 亚洲一区二区三区三| 国产欧美日韩亚州综合| 欧美一级精品在线| 在线亚洲人成电影网站色www| 国产精品中文字幕日韩精品 | 视频一区二区三区中文字幕| 国产精品久久午夜| 久久综合久久鬼色中文字| 精品视频一区二区不卡| 91在线视频官网| 国产成人亚洲综合色影视| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲综合在线观看视频| 亚洲欧美福利一区二区| 亚洲欧美中日韩| 欧美精彩视频一区二区三区| 久久这里只有精品视频网| 欧美一级专区免费大片| 欧美日本在线视频| 在线不卡免费av| 91精品国产入口在线| 欧美一区二区三区成人| 欧美高清视频www夜色资源网| 日本国产一区二区| 日本韩国欧美一区二区三区| 色婷婷国产精品| 日本乱人伦一区| 色综合婷婷久久| 欧美最猛性xxxxx直播| 在线精品国精品国产尤物884a| 色素色在线综合| 欧美三级中文字幕在线观看| 欧美日韩精品欧美日韩精品一综合| 精品视频一区二区三区免费| 欧美日韩不卡视频| 精品日韩99亚洲| 久久精品免视看| 亚洲欧洲在线观看av| 一区二区三区四区在线免费观看| 一二三四区精品视频| 日韩二区三区四区| 激情综合一区二区三区| 大胆欧美人体老妇| 色综合中文字幕国产 | 日韩va亚洲va欧美va久久| 奇米影视7777精品一区二区| 韩国中文字幕2020精品| 成人福利视频在线| 欧美吞精做爰啪啪高潮| 欧美一二三四区在线| 欧美国产日韩亚洲一区| 一区二区三区四区在线免费观看| 日本sm残虐另类| eeuss鲁片一区二区三区在线观看| 91免费在线播放| 日韩美一区二区三区| 国产精品麻豆久久久| 亚洲超碰精品一区二区| 激情伊人五月天久久综合| 99精品1区2区| 欧美电影精品一区二区 | 欧美视频中文字幕| 久久综合久久综合久久综合| 一区二区三区在线播| 九九视频精品免费| 色94色欧美sute亚洲线路二 | 99久久婷婷国产综合精品| 欧美性大战xxxxx久久久| 久久精品日产第一区二区三区高清版| 综合网在线视频| 国内精品写真在线观看| 欧美美女一区二区三区| 一区二区中文字幕在线| 国产精品一卡二卡| 91精品国产综合久久香蕉麻豆| 亚洲欧美另类综合偷拍|