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

專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

單片機(jī)鍵盤(pán)的掃描查詢(xún)方式輸入

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2008年07月06日   【字體:

//本程序用于pic單片機(jī)外接鍵盤(pán)的識(shí)別,通過(guò)編程,使按下K1鍵時(shí)第一個(gè)數(shù)碼管顯示1,按下K2鍵時(shí)第一
//個(gè)數(shù)碼管上顯示2,按下K3鍵時(shí)第一個(gè)數(shù)碼管上顯示3,按下K4鍵時(shí)第一個(gè)數(shù)碼管上顯示4,
//程序由http://www.zg4o1577.cn 提供,有問(wèn)題請(qǐng)聯(lián)系單片機(jī)網(wǎng)。
//對(duì)鍵盤(pán)的掃描采用查詢(xún)方式。

#include "p18f458.h"

static volatile int table[20]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f,0xbf,0x89,0xff};
volatile unsigned char data;
unsigned int i;
unsigned char j=0;

/*初始化子程序*/
void initial()
{
 TRISA=0x00;     /*A口設(shè)置為輸出*/
 TRISB=0XF0;     /*RB1輸出,RB4輸入*/
 TRISC=0x00;     /*SDO引腳為輸出,SCK引腳為輸出*/
 TRISE=0x00;     /*E口設(shè)置為輸出*/
 INTCON=0x00;    /*關(guān)閉所有中斷*/
 SSPCON1=0x30;    /*SSPEN=1;CKP=1,F(xiàn)OSC/4*/
 SSPSTAT=0xC0;    /*時(shí)鐘下降沿發(fā)送數(shù)據(jù)*/
 PIR1=0;      /*清除SSPIF標(biāo)志*/ 
}

/*軟件延時(shí)子程序*/
void DELAY()
{
 for(i = 6553; --i ;)
 continue;
}

/*鍵盤(pán)掃描子程序*/
int  KEYSCAN()

 PORTBbits.RB1=0;
 PORTAbits.RA3=0;
 PORTE=0;     /*將K1,K2,K3,K4四條列線置0*/
 while(1)
 {
  if (PORTBbits.RB4==0)
  break;
 }       /*等待有鍵按下,RB4為0表示有鍵按下*/
 DELAY();     /*軟件延時(shí)*/
 if (PORTBbits.RB4==0)
  KEYSERVE();    /*如果仍有鍵按下,則調(diào)用鍵服務(wù)子程序*/
 else j=0x00;     /*如果為干擾,則令返回值為0*/
 return(j);
}
 
/*鍵服務(wù)子程序*/
int  KEYSERVE()
{
 PORTBbits.RB1=0;    /*K1,K2置低電平,K3,K4置高電平*/
 PORTAbits.RA3=0;    /*RB4為0,表示按鍵為K1,K2中的一個(gè)*/
 PORTE=3;     /*RB4為1,表示按鍵為K3,K4中的一個(gè)*/
 if(PORTBbits.RB4==0)
 {
  PORTBbits.RB1=0;   /*K1置低電平,K2置高電平*/
  PORTAbits.RA3=1;   /*RB4為0,表示按鍵為K1;RB4為1,表示按鍵為K2*/
  if(PORTBbits.RB4==0) j=0X01;
  else {j=0X02; PORTAbits.RA3=0;}
 }
 else
 {
  PORTEbits.RE0=0;   /*K3置低電平,K4置高電平*/
  PORTEbits.RE1=1;   /*RB4為0,表示按鍵為K3;RB4為1,表示按鍵為K4*/
  if(PORTBbits.RB4==0) j=0X03;
  else {j=0X04; PORTEbits.RE1=0;}  
 }
 while(1)
 {
  if(PORTBbits.RB4==1) break; /*為了防止一次按鍵多次識(shí)別,等鍵松開(kāi)才返回*/
 }
 return(j);
}

/*顯示子程序*/
void SPILED(char data)
{
 PORTAbits.RA5=0;    /*LACK送低電平,為鎖存做準(zhǔn)備*/
 SSPBUF=data;     /*啟動(dòng)發(fā)送*/
 do
 {
 ;
 }while(PIR1bits.SSPIF==0);  /*等待發(fā)送完畢*/
 PIR1bits.SSPIF=0;    /*清除SSPIF標(biāo)志*/
 PORTAbits.RA5=1;    /*最后給鎖存信號(hào),代表顯示任務(wù)完成*/
}

/*鍵盤(pán)掃描查詢(xún)方式輸入主程序*/
main()
{
 initial();      /*系統(tǒng)初始化*/  
 while(1)
 {
  KEYSCAN();
  if(j!=0)     /*如果j=0,證明先前的按鍵為干擾,則不予顯示*/
  {
   data=table[j];
   SPILED(data);   /*發(fā)送顯示段碼顯示*/
  }
   }
}
 

關(guān)閉窗口
主站蜘蛛池模板: 亚洲v日韩v综合v精品v | 91偷拍精品一区二区三区 | 日韩精品一区二区三区中文在线 | 日韩中文字幕在线观看 | 99re6在线视频精品免费 | 天天操天天舔 | 狠狠色综合欧美激情 | 国产精品精品视频一区二区三区 | 午夜影院在线播放 | 国产ts人妖系列高潮 | 中文字幕一区在线观看视频 | 91视频网址 | 色在线免费 | 久久黄色网| 国产精品久久久久久久久久三级 | 日本综合在线观看 | 羞羞的视频网站 | 国产精品视频 | 婷婷激情综合 | 国产黄色小视频在线观看 | 欧美日韩亚洲国产 | 91精品国产综合久久婷婷香蕉 | 视频在线一区 | 最新国产精品视频 | www.奇米| 伊人网影院| 欧美成人一区二区三区 | 911精品美国片911久久久 | 久久国产精品72免费观看 | a黄毛片| 古装三级在线播放 | 日韩中文字幕在线视频观看 | 国内精品视频一区二区三区 | 成人免费在线观看 | 亚洲日本欧美日韩高观看 | 剑来高清在线观看 | 午夜精品久久久久久久久久久久 | 五月天婷婷综合 | 日本综合在线观看 | 国内精品在线视频 | 99久久精品一区二区成人 |