久久久久久久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();  //顯示鍵值

 }  

}
關閉窗口

相關文章

主站蜘蛛池模板: 亚洲国产一区二区在线 | 一区二区国产精品 | 亚洲欧美视频 | 一级片aaa | www.久久久久久久久 | 日日操夜夜操天天操 | 国产精品嫩草影院精东 | 欧美日韩精品一区二区三区四区 | 亚洲高清免费视频 | 国产综合精品一区二区三区 | 国产福利在线 | 日韩精品在线看 | av一区二区三区 | 国产一区欧美 | 国产在线一区二 | 日本电影一区二区 | 毛片区| 久久久久久久久综合 | 99久久99| 欧美天堂在线观看 | 日韩福利在线 | 日韩一级黄色毛片 | 亚洲欧美日韩中文在线 | 久久久国产精品一区 | 亚洲精品电影网在线观看 | 91国产精品 | 91麻豆产精品久久久久久夏晴子 | 999热精品视频 | 成人影| 国内精品久久久久久 | 久久精品屋 | 成人视屏在线观看 | 中文字幕视频网 | 国产精品久久久久久吹潮 | 国产免费观看一级国产 | 成人激情视频在线观看 | 亚洲精品美女视频 | 成人在线影视 | 国产精品亚洲精品 | 日韩视频免费 | 亚洲综合日韩精品欧美综合区 |