新聞中心

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

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

        作者: 時間:2016-12-02 來源:網絡 收藏
        /********************************************
        *** 功能:1X4按鍵*** 實驗內容:按下S1 S2 S3 S4 數碼管分別顯示出0 1 2 3*** 開發板連接方法:把J3的的跳線帽跳到1-2(左邊)*********************************************/#include              //包含單片機內部資源預定義__CONFIG(0xFF32);//芯片配置字,看門狗關,上電延時開,掉電檢測關,低壓編程關,加密,4M晶體HS振蕩const unsigned char TABLE[] = {0x3f,0x6,0x5b,0x4f,0x66};int result;void delay();              //delay函數申明void init();               //I/O口初始化函數申明void scan();               //按鍵掃描程序申明void display(int x);       //顯示函數申明/***************************************************************************** 名    稱:main()* 功    能:* 入口參數:* 出口參數:****************************************************************************/void main(){   result = 0x8;               //開始時顯示Finit();                                           //調用初始化函數while (1)                         //死循環{scan();                      //調用按鍵掃描程序display(result);             //調用結果顯示程序}}/***************************************************************************** 名    稱:init()* 功    能:初始化* 入口參數:* 出口參數:****************************************************************************/void init(){TRISB = 0X0F;          //設置B口低4位為輸入TRISD = 0;          //portd 輸出TRISC = 0xf0;TRISA = 0;          //porta 輸出PORTA = 0x00;        //先關閉所有顯示PORTD = 0x0f;PORTC = 0xff;}/***************************************************************************** 名    稱:scan()* 功    能:按鍵掃描* 入口參數:* 出口參數:****************************************************************************/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()* 功    能:結果顯示* 入口參數:int x 要現實的數據* 出口參數:****************************************************************************/void display(int x){switch (x)                //根據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()* 功    能:延時* 入口參數:* 出口參數:****************************************************************************/void delay()              {int i;                  //定義整形變量for (i = 600;i--;);     //延時}


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 垣曲县| 图木舒克市| 邳州市| 连南| 噶尔县| 新泰市| 丁青县| 务川| 泰州市| 南澳县| 宣恩县| 安顺市| 若羌县| 白水县| 湟源县| 汉源县| 剑川县| 永善县| 马关县| 宜州市| 舞阳县| 滦南县| 都匀市| 北流市| 额尔古纳市| 包头市| 资源县| 喀喇沁旗| 内江市| 嵊泗县| 武邑县| 高唐县| 平安县| 龙口市| 泾源县| 张家口市| 瑞丽市| 合阳县| 洛隆县| 保山市| 西宁市|