新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > PIC單片機捕捉模塊的程序設計

        PIC單片機捕捉模塊的程序設計

        作者: 時間:2013-03-15 來源:網絡 收藏
          由于本設計測試4種參數,并且可以利用鍵盤選擇顯示其中的任何一種,因此編程設定S9為加1鍵、S11為減1鍵、S10為確定鍵、S12為功能鍵。

          當按下S9鍵時,寄存器COUNTER可以從1連續或點動步進地加到4;同理按下S11鍵時,COUNTER從4減到1,并且把顯示在LED上,不同的對應不同的測試參數。

          程序根據不同的把相應的參數(已轉換成BCD碼)送到顯示緩沖區,此時按下確定鍵,則LED上顯示出該COUNTER值對應的測試參數。

          按下功能鍵時,LED上示出當前的COUNTER值,又可以對其講行加減操作。從而選擇顯示不同的參數,COUNTER值與其對應的測試參數關系如下。

          · COUNTER=1,對應測試參數為頻率。

          · COUNTER=2,對應測試參數為周期。

          · COUNTER=3,對應測試參數為占空比。

          · COUNTER=4,對應測試參數為脈寬。

          程序中有5個不同的顯示任務(顯示COUNTER、頻率、周期、占空比、脈寬),如果編寫5個不同的顯示子程序,會使程序復雜化。

          本例引入一個顯示緩沖區,如果沒有按下確定鍵,則把COUNTER的值送到顯示緩沖區;如果按下確定鍵,則根據COUNTER的實際值把相應的測試參數的結果送到顯示緩沖區。

          利用此方法,可以編制一個顯示程序,該程序只執行從顯示緩沖區取數顯示的任務。是COUNTER,還是參數測試結果,只需將顯示緩沖區的內容顯示出來即可。

          中斷服務程序中“把CCP1模塊變成捕捉相反的脈沖邊沿”的含義為:若在本次中斷以前,CCP1捕捉脈沖的上升沿,則把它改成捕捉脈沖下降沿;若在本次中斷以前,CCP1捕捉脈沖的下降沿,則把它改成捕捉脈沖的上升沿。

          實際編寫程序時,為了充分提高CPU的工作效率,可以利用等待CCP1中斷的時問進行鍵盤的消抖動延時,程序設計流程如圖1和圖2所示。

          圖1 主程序流程及中斷服務程序流程

          圖2 鍵盤服務子程序流程

          (1)首先包含必要的頭文件,定義程序用到的全局變量及宏。

          (2)SPI顯示初始化子程序,首先初始化SPI模塊,設置在時鐘下降沿發送數據。設置RA5引腳為輸出端口,用以輸出顯示鎖存信號。

          (3)對CCP模塊進行初始化,使其工作在捕捉方式,打開CCP1中斷,設置RC2端口為輸入口。

          (4)對系統其他部分進行初始化,包括COUNT及與鍵盤有關的寄存器的初始化,建立鍵盤掃描的初始條件。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 资兴市| 虎林市| 孟连| 宁远县| 德化县| 新乡市| 沁阳市| 泗水县| 吴江市| 枞阳县| 大丰市| 张掖市| 依兰县| 台中市| 定远县| 葵青区| 桐城市| 耿马| 通州市| 德格县| 竹北市| 罗源县| 阆中市| 唐山市| 卢龙县| 内乡县| 恩平市| 安西县| 当雄县| 西盟| 吴忠市| 古交市| 南涧| 镇康县| 镇雄县| 开封县| 泰来县| 策勒县| 蒙阴县| 南和县| 三亚市|