久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

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

作者:佚名   來源:本站原創   點擊數:  更新時間:2013年04月04日   【字體:

    PIC16F877單片機數碼管顯示矩陣鍵值,4X4矩陣鍵盤一共有16個按鍵,對應的是0~F,十六進制數,本程序是利用行掃描法,進行循環掃描矩陣鍵盤,當每一行有一個按鍵被按下,它都會檢測得到鍵值,然后數碼管就會顯示對應的數值啦。

 

#include <pic.h>  

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  

{  

//第四行掃描  

PORTC=0Xef;  

temp=PORTC;  

temp=temp&0x0f;  

   if(temp!=0x0f)  

   {  

       delay(10);  

           temp=PORTC;  

       temp=temp&0x0f;  

       if(temp!=0x0f)  

       {  

           temp=temp|0xe0;  

       }  

   }  

     }  

   }  

 }  

}  

void display()  //數碼管顯示函數

{  

   switch(temp)  

   {  

       case 0xee:PORTD=table[0];break;  //0

       case 0xed:PORTD=table[1];break;  //1

       case 0xeb:PORTD=table[2];break;  //2

       case 0xe7:PORTD=table[3];break;  //3  

       case 0xde:PORTD=table[4];break;  //4

       case 0xdd:PORTD=table[5];break;  //5  

       case 0xdb:PORTD=table[6];break;  //6

       case 0xd7:PORTD=table[7];break;  //7

       case 0xbe:PORTD=table[8];break;  //8

       case 0xbd:PORTD=table[9];break;  //9

       case 0xbb:PORTD=table[10];break;  //A

       case 0xb7:PORTD=table[11];break;  //B

       case 0x7e:PORTD=table[12];break;  //C

       case 0x7d:PORTD=table[13];break;  //D

       case 0x7b:PORTD=table[14];break;  //E

       case 0x77:PORTD=table[15];break;  //F

   }  

}  

void main() //主函數  

{  

 init();//端口初始化  

 while(1)   //無限循環

 {  

   keyscan();  //按鍵掃描

   display();  //顯示鍵值

 }  

}
關閉窗口

相關文章

主站蜘蛛池模板: 午夜性色 | 国产精品羞羞答答 | 国产一区二区在线播放 | 日韩综合在线观看 | 久久久天堂国产精品女人 | 综合av| 在线观看亚洲视频 | 69精品视频| 麻豆一区二区三区四区 | 久久性| 久久黄色大片 | 天天躁日日躁狠狠很躁 | 亚洲欧美在线播放 | 国产激情综合五月久久 | 欧美一区二区在线播放 | 亚洲成人天堂 | 一级片免费 | 中文字幕永久在线 | 一区二区三区国产精品 | 国产精品免费在线播放 | 午夜av片 | av片免费看| 一二三区视频 | 国产欧美一区二区三区视频在线观看 | 九色91在线| 一级免费毛片 | 中文字幕综合网 | 在线视频日韩 | 黄色免费网站 | 日韩激情视频 | 国产欧美日韩在线观看 | 欧美一级免费看 | 在线一区视频 | 日韩在线欧美 | 免费成人结看片 | 日日干夜夜干 | 丁香婷婷在线 | 国产乱人伦 | 国产精品成人免费视频 | 一区二区影视 | 在线观看黄网 |