新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ATMEGA8設計的8路鍵盤D觸發鎖存器技術詳解

        ATMEGA8設計的8路鍵盤D觸發鎖存器技術詳解

        作者: 時間:2011-12-06 來源:網絡 收藏

        的8路D鎖存器

        本文引用地址:http://www.104case.com/article/172369.htm

        實現目的:

        當管腳設定為輸入時,了解如何可以編程設定上拉電阻,以達到簡化硬件的目的。

        如何使用軟件控制取樣頻率及時間,達到抗干擾目的.

        為了讓程序運行更穩定,防止跑飛,了解如何使用看門狗.

        電路、軟件原理描述:

        為簡化代碼及線路圖,本實驗僅使用兩個輸入及兩個輸出 .

        (Atmega8最大可以擴充到支持11路D器,修改軟件即可)。Atmega8在看門狗的監護下,定期掃描PB0與PB1的取樣電平。如果連續十次取樣的結果都相同,視為有效的取樣。如果十次取樣,有一次或以上不同,視為干擾或臨界狀態,不予處理。本軟件實現D型鎖存器的功能: 即每按一次SW,相應的輸出會翻轉一次。

        為了增加程序的通用性及方便日后的性能測試或調整,本程序的定期掃描取樣周期及取樣的有效次數可以方便調整。(修改程序內的sampling_times與 sampling_interval 值即可。本程序定義為掃描20次電平都相同時,才認為是有效的輸入。每次掃描的間隔是50us)。

        #define sapleing_way 2 中的2改成你所需要的路數,就能自動處理新設置的路數,不需要再修改代碼。

        問題答疑一:

        為何要使用sampling_times次掃描取樣,當連續sampling_times次取樣結果一致時,才認為是有效的輸入?

        答:是為了增加抗干擾的能力,及防止按下時產生的抖動造成的不確定性。大家在實現完成后,可以將取樣次數設置為1次,就會發現,D觸發器的工作會變得不可靠。

        問題答疑二:

        為何要使用看門狗?

        答:在實際的應用中,經常會發生許多不可知的情況,可能導致AVR芯片“跑飛”,即程序出錯甚至死機。必須復位芯片才能解決問題。看門狗其實就是定期將AVR芯片復位。當然要注意在程序時,喂狗的指令要放置在正確的位置,既保證程序執行過程中不會復位,又保證程序陷入死循環,在允許的時間內復位。

        DIY機械鍵盤相關社區:機械鍵盤DIY




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 察哈| 姚安县| 抚顺市| 专栏| 巧家县| 加查县| 宝应县| 临夏县| 肥西县| 禄劝| 军事| 四平市| 桐柏县| 昭通市| 宁明县| 昂仁县| 德阳市| 阿坝| 垣曲县| 温宿县| 顺平县| 浑源县| 金塔县| 元谋县| 广河县| 盐边县| 嘉善县| 安国市| 琼海市| 明光市| 淳化县| 汪清县| 韶山市| 赞皇县| 铁力市| 河源市| 天镇县| 宝应县| 桂东县| 南木林县| 石柱|