新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CCS PICC實現的矩陣鍵盤掃描

        CCS PICC實現的矩陣鍵盤掃描

        作者: 時間:2012-10-27 來源:網絡 收藏

        網上關于 的參考程序較少,本人近來做了此類實驗,這里將把程序公開至此以便和學習 的網友交流!

        例:

        unsigned char key()
        {
        #use fast_io(C)
        unsigned char k1,k2,k3;
        set_tris_c(0x00);
        output_c(0x0f);
        set_tris_c(0x0f);
        k1=input_c()0x0f;
        set_tris_c(0x00);
        output_c(0xf0);
        set_tris_c(0xf0);
        k2=input_c()0xf0;
        k3=k1|k2;
        return(k3);
        }//此程序只是最基本的矩陣掃描,忽略了抖鍵、干擾和多鍵同時按下的情況!

        /*需要注意的是: 中庫函數output_x()、input_x()都會整個的將TRIS端口方向控制寄存器改為輸出或輸入,而時要求:端口輸出0x0f,然后高四位設置為輸出低四位設置為輸入,結果和0x0f相與屏蔽無效位,檢測是否有0出現,如果有,即有按鍵按下,轉到掃描處理,如果沒有,低四位應該為0x0f。接著端口輸出0xf0,然后高四位設置為輸入低四位設置為輸出,結果和0xf0相與屏蔽無效位,檢測是否有0出現,如果有,即有按鍵按下,轉到掃描處理,如果沒有,高四位應該為0xf0。PIC單片機與51系列單片機不同,如果使用過程中不注意設置端口方向,將得不到正確的值。CCS PICC中庫函數output_x()、input_x()能自動將整個TRIS端口方向控制寄存器改為輸出或輸入,但在矩陣掃描中,需要手動設置方向控制寄存器,本例中就使用#use fast_io(C)、set_tris_x()這些語句來設置方向控制寄存器。本人在這個例子中走了不少彎路。*/



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 宁武县| 香格里拉县| 重庆市| 鄂伦春自治旗| 永城市| 石景山区| 商洛市| 长丰县| 会泽县| 东乌| 通州区| 四川省| 昌黎县| 江源县| 双鸭山市| 利津县| 东阳市| 霍山县| 顺昌县| 凤阳县| 巴中市| 民权县| 舒城县| 车险| 海晏县| 菏泽市| 定襄县| 古蔺县| 阳西县| 大城县| 东莞市| 斗六市| 山东省| 临洮县| 泗洪县| 郁南县| 丽江市| 绥芬河市| 谷城县| 洱源县| 黄大仙区|