-
首先,你要弄清楚你有什麼型別的鍵盤,不管是行列式掃瞄還是矩陣式,行列式是老式的,先掃瞄掃瞄列中的行,這樣做的好處是節省了電纜。 另一種是矩陣,即按鈕直接產生相應的資料。
你需要做的是,首先,寫鍵盤驅動和LED數碼管驅動。
完成後,可以將鍵盤讀取的資料儲存在乙個64位暫存器中,該暫存器通過數碼管顯示,當新資料進來時,資料移位,新資料佔據16位高,舊資料向右移16位。 等等。
在進行擊鍵時,要注意防抖動,即使用計數器記錄擊鍵的時間,超過閾值後,就被認為是有效的擊鍵,以防止毛刺。
在做LED驅動器時,需要注意LED的重新整理率,這是人眼可以看到的頻率。
我已經在 spantan3 上完成了 LED 驅動器,如果您有任何問題,可以討論一下
謝謝 按re有延遲,那麼如何判斷鍵是否被舉起呢?
按它是 0,抬起它是 1(在我的板上,連線到上拉電阻),你判斷 0 是 1。
-
你至少用了兩個數碼管,對吧? 以 2 個為例,每個電子管都有乙個 8 位暫存器(或 7 位)來儲存金鑰值。 鍵盤鍵盤矩陣是4*4嗎?
是的,輸入狀態使用八位輸入暫存器註冊。 每當判斷乙個金鑰的值時,它總是有效,就會過濾乙個點,即使用幾個延遲來判斷金鑰的級別是否為毛刺波。 當判斷按鈕的值發生變化時,數碼管的寄存值會相應改變,輸出將被鎖定。
這是我的思路,可能不是很好,你再想一想。
-
答案應該是 61,即 6'h3d;
操作順序應如下所示。
原始 = 4'd12)/4)
3) =十進位。
000011) 二進位。
二進位負數被否定並加以 1。
否定是 111100 加 1 到 111101,即十六進製 3d 十進位 61
所以教科書沒有錯
你明白嗎? 給我更多的分數。
-
ls說的不是錯誤,而是不完整,我不可能隨便寫乙個程式就問這個,這樣的錯誤確實是因為設定的頂層和設定中預設的頂層名稱不同,所以才導致了錯誤。 大多數時候是因為正在建設的專案是乙個頂級名稱,當你寫**時它是另乙個。 或者中途改變頂層。
通常有兩種方法可以解決這個問題。
1.隨著頂層名稱的改動,也就是這裡有了adder4,但是這種通用的就不用了,因為這個頂層名一般都是有意義的,大部分都是根據函式來命名的,一般你看到頂層模組名大概就知道函式了,隨意改動也不是乙個好習慣。
2.在設定中替換 quartus 要求的頂層,一般使用這種方法,步驟:
開啟設定選單,通常它會描述當前正在使用的頂級名稱以及您所在的最後幾個頂級名稱。
將頂級實體名稱更改為當前的 addr4 就可以了。
-
我猜 b==c 是乙個判斷語句,對吧? 你得到的值等於 1 而不是 0,所以只有 1 或 0 會給 a,你跑看看,我猜。
-
具體錯誤呢?
明智的電子設計 VGZ
首先,前端必須是 t 向量。
length(t) 表示 i=2:length(t) 時 t 個元素(t 向量)的數量。 >>>More