新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于PIC16F877單片機數碼管顯示矩陣鍵值

基于PIC16F877單片機數碼管顯示矩陣鍵值

作者: 時間:2016-11-30 來源:網絡 收藏
值,4X4矩陣鍵盤一共有16個按鍵,對應的是0~F,十六進制數,本程序是利用行掃描法,進行循環(huán)掃描矩陣鍵盤,當每一行有一個按鍵被按下,它都會檢測得到鍵值,然后數碼管就會顯示對應的數值啦。
#include   typedef unsigned char  uchar;  typedef unsigned int   uint;  uchar table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e}; //數碼管共陽段碼  uchar table_we[]={0xfe,0xfd,0xfb,0x7f,0xef,0xdf}; // 位碼uchar temp;  //***********延時z毫秒***********/  void delay(uint z)  {  uint x,y;  for(x=z;x>0;x--)  for(y=110;y>0;y--);  }  void init()  {  TRISC=0X0f;//設置c端口高4位為輸出,低4位為輸入;  TRISD=0;  //設D口為輸出TRISB=0;  //設B口為輸出PORTB=0XFF;  }  void keyscan()  //矩陣鍵盤掃描子程序{  //uchar temp;  //第一行掃描  PORTC=0X7f;//1110 1111  temp=PORTC;  temp=temp&0x0f;  if(temp!=0x0f)//有鍵按下  {  delay(10);  temp=PORTC;  temp=temp&0x0f;  if(temp!=0x0f)  {  temp=temp|0x70;  }  }  else  {  //第二行掃描  PORTC=0Xbf;  temp=PORTC;  temp=temp&0x0f;  if(temp!=0x0f)  {  delay(10);  temp=PORTC;  temp=temp&0x0f;  if(temp!=0x0f)  {  temp=temp|0xb0;  }  }  else  {  //第三行掃描  PORTC=0Xdf;  temp=PORTC;  temp=temp&0x0f;  if(temp!=0x0f)  {  delay(10);  temp=PORTC;  temp=temp&0x0f;  if(temp!=0x0f)  {  temp=temp|0xd0;  }  }  else  {  				   
				
            
                
			
							
上一頁 1 2 下一頁

評論


技術專區(qū)

關閉