新聞中心

        EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA的可編程電阻的設計

        基于FPGA的可編程電阻的設計

        作者: 時間:2011-01-11 來源:網絡 收藏

        1.4 輸出顯示電路
        輸出顯示電路主要功能是實時顯示對應的鍵盤輸入電阻值的大小、當前工作的步數和預置時間。根據要求,本實驗采用數碼管來顯示其阻值即可,能夠滿足要求,為了顯示以上數據,每個阻值的顯示至少需要九個數碼管,其中五位用來顯示當前阻值的大小,兩位用來顯示當前的工作步數,兩位用來顯示數據的工作時間,如果采用靜態顯示控制將會需要相當多的引腳端資源(9×2×8=144個),為了減少對引腳資源的使用,本設計中采用掃描的方式來實現LED的動態顯示。

        2 軟件設計及部分仿真結果
        本設計中,主要控制程序都是通過的軟件編程來實現。軟件設計大體可以分為三個大模塊:鍵盤掃描模塊、LED顯示模塊、繼電器電阻驅動電路模塊。
        2.1 鍵盤掃描模塊
        鍵盤掃描模塊主要用來檢測外界輸入的數據,主要由分頻器電路、鍵盤掃描計數器電路、鍵盤行和列按鍵檢測電路、按鍵抖動消除電路和鍵盤編碼電路組成。
        因為本設計中外接頻率為一般用6MHz的信號作為時鐘信號,但是鍵盤掃描不需要那么高的頻率,所以需要一個分頻電路將其頻率降低為1kHz。鍵盤掃描計數器主要為鍵盤行和列按鍵檢測電路和鍵盤編碼電路服務,鍵盤行和列按鍵檢測電路用來檢測鍵盤輸入所在行列的位置,按鍵抖動消除電路主要目的是為了避免按鍵時鍵盤產生的拉動效應使按鍵使能位產生不必要的抖動變化而造成重復統計按鍵次數的結果。同時,鍵盤位置的代號,并不是鍵盤上的按鍵值,所以要用鍵盤編碼電路來傳遞真正的按鍵值。
        2.2 LED顯示模塊
        LED顯示模塊采用動態顯示方式,這種實現方法是依次點亮各個LED數碼管,循環進行顯示,這種顯示方式控制好數碼管之間的延時相當重要,根據人眼視覺暫留原理,LED數碼管每秒的導通16次以上,人眼就無法分辯LED數碼管短暫的不亮,認為是一直點亮的,但延時也不是越小越好,因為LED數碼管達到一定亮需要一定時間。為了達到較好的效果,本設計中延時取0.005s。
        2.3 繼電器電阻驅動電路模塊
        繼電器電阻驅動電路模塊主要是根據鍵盤輸入的電阻值,判斷相應的一些電阻是否要接入,從而使電阻對應的繼電器閉合或斷開,給予其對應的信號1或O即可。
        2.4 仿真結果
        由上述理論可知,電阻1的產生原理和電阻2的產生原理完全一樣,為了使仿真結果更加明了,這里的仿真波形只用電阻1來驗證其正確性,其仿真波形如圖3所示。
        c.JPG

        此圖是仿真圖中的一部分,只選擇了幾個有代表性的信號顯示出來加以說明,從圖中可以看出有時鐘信號clk,復位信號reset,電阻1選擇信號 resistancel,numll至num51顯示的分別是電阻值的小數位、個位、十位、百位、干位。step11和step21分別顯示的是當前工作的步數
        的個位和十位,其中time11和time21分別顯示的是工作時間的個位和十位。Bus9則是動態顯示時的數據信號,JIDIANQI則代表的是16個繼電器的開關狀態。從上圖中可以看出該電阻的小數位的段碼為07H,對應的二進制就是00000111,其對應顯示的數字是7即小數位為7,同理可知其個位數為5,十位數為4,百位數為3,千位數為1,所以其阻值就為1345.7Ω,從圖中可以看出總線上是循環傳遞著時間、步數和數值信息,根據阻值,其相應的繼電器會閉合,根據上述電阻網絡原理,J4、J6、J8、J9、J10、J12、J14閉合,其余的繼電器均斷開,即對應的二
        進制代碼為(0010101110101000)B,換算成十六進制即為2BA8,從上圖可以看出其驗證結果是正確的。

        3 結束語
        系統通過引進FPGA來實現電阻提供這一模塊,且將周圍其他數字邏輯電路也集成至該芯片中。這樣既解決了系統的特殊性,又增強了系統的抗干擾性,提高了控制精度,也簡化了調試。此外,本系統還將驅動電路、編解碼電路等硬件通過VHDL語言在FPGA芯片中實現,相比以前的模擬電路和單片機的實現方法,使用的元器件更少,體積也更小,針對不同場合,修改起來也更加方便。具有很好的市場前景。

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

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 福鼎市| 巴南区| 玉树县| 大田县| 二连浩特市| 蓬莱市| 崇左市| 渝北区| 宜宾市| 灵川县| 合阳县| 咸宁市| 淄博市| 广西| 耒阳市| 东光县| 沈丘县| 阿拉善右旗| 称多县| 应城市| 日喀则市| 秭归县| 新晃| 大石桥市| 称多县| 葵青区| 林甸县| 秭归县| 翁源县| 泾阳县| 蓝田县| 迁西县| 稷山县| 苏尼特左旗| 东源县| 贵港市| 吴江市| 子长县| 全州县| 岱山县| 青铜峡市|