新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > PIC單片機1X4獨立鍵盤C語言程序

PIC單片機1X4獨立鍵盤C語言程序

作者: 時間:2016-12-02 來源:網(wǎng)絡 收藏
/********************************************
*** 功能:1X4按鍵*** 實驗內(nèi)容:按下S1 S2 S3 S4 數(shù)碼管分別顯示出0 1 2 3*** 開發(fā)板連接方法:把J3的的跳線帽跳到1-2(左邊)*********************************************/#include              //包含單片機內(nèi)部資源預定義__CONFIG(0xFF32);//芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩const unsigned char TABLE[] = {0x3f,0x6,0x5b,0x4f,0x66};int result;void delay();              //delay函數(shù)申明void init();               //I/O口初始化函數(shù)申明void scan();               //按鍵掃描程序申明void display(int x);       //顯示函數(shù)申明/***************************************************************************** 名    稱:main()* 功    能:* 入口參數(shù):* 出口參數(shù):****************************************************************************/void main(){   result = 0x8;               //開始時顯示Finit();                                           //調(diào)用初始化函數(shù)while (1)                         //死循環(huán){scan();                      //調(diào)用按鍵掃描程序display(result);             //調(diào)用結果顯示程序}}/***************************************************************************** 名    稱:init()* 功    能:初始化* 入口參數(shù):* 出口參數(shù):****************************************************************************/void init(){TRISB = 0X0F;          //設置B口低4位為輸入TRISD = 0;          //portd 輸出TRISC = 0xf0;TRISA = 0;          //porta 輸出PORTA = 0x00;        //先關閉所有顯示PORTD = 0x0f;PORTC = 0xff;}/***************************************************************************** 名    稱:scan()* 功    能:按鍵掃描* 入口參數(shù):* 出口參數(shù):****************************************************************************/void scan(){if (RB0 == 0)               //判斷B0是否按下result = 0x1;if (RB1 == 0)               //判斷B1是否按下result = 0x2;if (RB2 == 0)               //判斷B2是否按下result = 0x3;if (RB3 == 0)               //判斷B3是否按下result = 0x4;}/***************************************************************************** 名    稱:display()* 功    能:結果顯示* 入口參數(shù):int x 要現(xiàn)實的數(shù)據(jù)* 出口參數(shù):****************************************************************************/void display(int x){switch (x)                //根據(jù)X值的不同,跳轉到相應的部分處理{case 0x1:PORTD = TABLE[0];PORTA = 0X3F;delay();break;          //B0case 0x2:PORTD = TABLE[1];PORTA = 0X3F;delay();break;          //B1case 0x3:PORTD = TABLE[2];PORTA = 0X3F;delay();break;          //B2case 0x4:PORTD = TABLE[3];PORTA = 0X3F;delay();break;          //B3case 0x8:PORTD = 0X71;PORTA = 0Xff;delay();break;                  //無按鍵下}}/***************************************************************************** 名    稱:delay()* 功    能:延時* 入口參數(shù):* 出口參數(shù):****************************************************************************/void delay()              {int i;                  //定義整形變量for (i = 600;i--;);     //延時}


評論


技術專區(qū)

關閉