網上有很多關于pos機數字鍵盤價格,精品博文基于FPGA的計算器設計一的知識,也有很多人為大家解答關于pos機數字鍵盤價格的問題,今天pos機之家(www.yiliaobang.net)為大家整理了關于這方面的知識,讓我們一起來看下吧!
本文目錄一覽:
pos機數字鍵盤價格
這周做了一個計算器的實驗,目前可以正負實現數的加減乘除,以及定點小數的加減乘除,精度不高還在進一步完善,今天先把矩陣鍵盤掃描的模塊總結一下,明天繼續優化。
這是一個大概的模塊劃分和數據流向圖,我們首先要通過矩陣鍵盤掃描來確定按下的鍵,然后把鍵值送給輸入輸出控制模塊,來判斷輸入的是第一個操作數還是操作符,還是第二個操作數以及等號,可以說輸入輸出控制模塊是整個計算器設計最核心的模塊了,這個明天再總結,如果判斷按下等號,那么計算模塊就應該根據操作數和操作符來運算,并把運算的結果送到輸入輸出控制模塊。因為在輸入數據的時候,數碼管也是要顯示數據的,所以把計算的結果傳回來一起處理,而且計算的結果也可以作為下一次計算的操作數,實現連續運算。計算模塊還包括BCD轉二進制以及二進制轉BCD模塊,另外由于涉及到負數運算,所以計算過程都是補碼進行運算,計算結果再由補碼轉回原碼,數碼管顯示模塊和常用的數碼管模塊不同的地方就是它具有消“0”的功能,輸入的時候每輸入一位數據顯示一位,對于沒有輸入的位數是不能顯示“0”的,輸出計算結果的時候也是一樣,對于沒有數值的位,是不能顯示“0”的。
下面先總結以下矩陣鍵盤模塊,使用矩陣鍵盤的原因就不多說了,就是為了節約IO口。矩陣鍵盤掃描的原理我簡單介紹一下吧:
以4x4的矩陣鍵盤為例,同一行按鍵的一段被接到同一根先上,4行分別被接到4根,我們命名row0-row3;列同理,命名col0-col3。同時我們給row端接上上拉電阻,那么沒有按鍵按下的時候row端是高電平,我們把4根row接到FPGA作為輸入端,把col接到FPGA作為輸出端。我們在初始狀態下給col全部賦0輸出,如果某一個按鍵按下,那么就會有一個col和一個row線被聯通了,那么被聯通的那根row就會給FPGA輸入0,此時row是輸入,我們可以很容易判斷是哪根row被聯通了,但是每一根row上連上了4根col,我們還不能知道具體是哪一個col,所以我們這時用到中學物理時學到的控制變量法,我們讓col每次只有一根輸出低電平(注意原來是4個全是低電平,在檢測到有鍵按下后,變成只有一根輸出低電平),依次掃描,知道檢測到row端不全為1時,說明此時的row和col就是按下按鍵的坐標了。
最后例化的消抖模塊是上次數字鐘的消抖模塊,略微做了一點修改,所以將設計模塊化還是有很大幫助的。
里面的flag_pos是為了檢測按鍵的邊沿,按鍵按下會有一個flag標志拉高,這里檢測的其實是flag的下降沿,也就是按鍵彈起來的時候,一開始我是檢測上升沿的,但是會存在一點時序問題,因為這個flag_pos只有一個時鐘周期,我如果檢測上升沿輸出,在flag拉高的這一刻,key_value其實還沒有被賦值好,所以會導致,我按第一個按鍵的時候沒有數據顯示,按第二個的時候顯示第一個按鍵的值,但是檢測按鍵彈起的時刻(也就是flag的下降沿)就能有效避免這種情況。
矩陣鍵盤掃描的原理基本就是這樣,但是實現的方法有很多種,我覺得這種方法是比較簡單明了,適合新手理解的。當然我自己也還是新手,嘻嘻......加油!
以上就是關于pos機數字鍵盤價格,精品博文基于FPGA的計算器設計一的知識,后面我們會繼續為大家整理關于pos機數字鍵盤價格的知識,希望能夠幫助到大家!
