一種矩陣式鍵盤掃描電路及編碼電路的制作方法
【技術領域】
[0001] 本發明設及一種鍵盤的掃描電路,尤其是一種矩陣式鍵盤掃描電路及編碼電路。
【背景技術】
[0002] 隨著嵌入式技術的不斷發展,當前各類電子產品普遍采用微控制器作為控制核 屯、,鍵盤作為主要的輸入設備,得到了廣泛的應用。
[0003] 目前的鍵盤掃描主要由微控制器所控制,需要通過運行微控制器中的程序來進 行,遇到干擾,造成程序飛跑,掃描程序將不能正常工作。
[0004] 申請號為CN201010153560.2的發明專利"一種矩陣鍵盤的快速掃描定位方法"采 用鍵盤中斷觸發的方式進入鍵盤的掃描定位過程,采用多次重復鍵盤掃描步驟的方法判斷 按鍵是否有效,并對所獲得的鍵值進行狀態判斷;如果多次采樣狀態相同,則處于穩定狀 態,鍵值有效;如果多次采樣狀態不同,鍵值無效。單鍵操作或組合鍵操作需要單獨判斷,如 是單鍵操作,則進入單鍵處理模式;如是組合鍵操作,則進入組合鍵處理模式。該專利所述 方法解決了由于鍵盤自身的機械特性造成的鍵盤抖動而引起錯鍵、連續觸鍵等錯誤問題, W及對組合鍵和重復按鍵的支持問題。但所述方法單鍵操作與組合鍵操作需要分別處理; 沒有考慮鍵盤狀態維持一段時間到后才執行有效操作的鍵盤操作功能;增減按鍵操作功能 或者是調整按鍵操作功能時,需要修改鍵盤掃描定位程序結構。
【發明內容】
[0005] 為了解決現有鍵盤掃描定位方法存在的上述技術問題,本發明提供了一種矩陣式 鍵盤掃描電路及編碼電路,由矩陣式鍵盤、第一移位寄存器、第二移位寄存器、狀態碼寄存 器、編碼器組成。
[0006] 所述一種矩陣式鍵盤掃描電路及編碼電路由掃描脈沖、第一移位脈沖、第二移位 脈沖進行同步控制。
[0007] 所述矩陣式鍵盤共有X行、Y列,設有N位鍵盤狀態信號輸出端;所述N位鍵盤狀態信 號為電平信號;所述N=X+Y。所述矩陣式鍵盤設有取樣脈沖輸入端。
[000引所述第一移位寄存器具有N位同步并行輸入端和串行輸出端;所述第二移位寄存 器具有串行輸入端和2 X N位并行輸出端。
[0009] 所述第一移位寄存器的N位并行輸入端連接至N位鍵盤狀態信號輸出端;第二移位 寄存器的串行輸入端連接至第一移位寄存器的串行輸出端;第一移位寄存器的時鐘脈沖輸 入端連接至第一移位脈沖,第二移位寄存器的移位脈沖輸入端連接至第二移位脈沖,第一 移位寄存器的并行輸入控制端連接至掃描脈沖。
[0010] 所述狀態碼寄存器為2 X N位二進制寄存器;狀態碼寄存器的2 X N位數據輸入端連 接至第二移位寄存器的2XN位并行輸出端;所述狀態碼寄存器的接收脈沖輸入端連接至掃 描脈沖。
[0011] 所述編碼器有2 X N位編碼輸入端,所述2 X N位編碼輸入端連接至狀態碼寄存器的 2XN位數據輸出端。
[0012] 所述掃描脈沖、第一移位脈沖、第二移位脈沖的時序滿足W下要求:
[0013] 每1+N個第一移位脈沖為一個掃描周期;
[0014] -個掃描周期中,第1個第一移位脈沖周期期間,掃描脈沖為第一移位寄存器并行 輸入使能有效電平;
[0015] -個掃描周期中,第1個第一移位脈沖周期之后的N個第一移位脈沖周期期間,掃 描脈沖為第一移位寄存器并行輸入使能無效電平;
[0016] -個掃描周期中,第二移位脈沖有N個移位脈沖。
[0017] 所述掃描脈沖的周期為20~100ms。
[0018] 所述第一移位寄存器、第二移位寄存器的移位脈沖邊沿有效;第二移位脈沖的N個 移位脈沖的有效邊沿時刻不遲于第一移位脈沖相應的N個移位脈沖的有效邊沿時刻。
[0019] 所述第一移位寄存器的串行移位和并行輸入預置均由第一移位脈沖控制,在第一 移位脈沖的有效邊沿實現串行移位或者并行輸入預置。
[0020] 所述狀態碼寄存器的2XN位數據輸出端輸出2XN位的狀態碼;所述狀態碼由有效 狀態碼和無效狀態碼組成;所述編碼器輸出的鍵號由有效鍵號和無效鍵號組成;所述有效 狀態碼由有效鍵盤操作或狀態產生,編碼器輸入每一個有效狀態碼時對應輸出相應的有效 鍵號;所述無效狀態碼由無效鍵盤操作或狀態產生,編碼器輸入所有無效狀態碼時都對應 輸出無效鍵號。
[0021] 所述編碼器有M位鍵號輸出端,M值的選擇應滿足/大于等于有效鍵號與無效鍵號 的數量之和。
[0022] 所述一種矩陣式鍵盤掃描電路及編碼電路還包括鍵盤狀態變化脈沖產生單元,用 于判斷矩陣式鍵盤輸出的鍵號是否發生改變,當矩陣式鍵盤輸出的鍵號發生改變時,輸出 鍵盤狀態變化脈沖。
[0023] 所述鍵盤狀態變化脈沖產生單元由M位延遲緩沖器、M個異或口和或口組成;M位延 遲緩沖器用于對矩陣式鍵盤輸出的M位鍵號分別進行信號延遲;M個異或口的輸入分別為M 位延遲緩沖器的輸入、輸出信號;M個異或口的輸出分別連接至或口的輸入端;或口的輸出 端輸出鍵盤狀態變化脈沖。
[0024] 所述矩陣式鍵盤由X行-Y列按鍵矩陣、低電平使能有效行S態緩沖器、高電平使能 有效列=態緩沖器、下降沿鎖存有效行狀態寄存器、上升沿鎖存有效列狀態寄存器組成;所 有按鍵矩陣的行線分別連接至行=態緩沖器的輸出端,所有按鍵矩陣的列線分別連接至列 =態緩沖器的輸出端;行=態緩沖器和列=態緩沖器的所有輸入端連接至低電平;所有按 鍵矩陣的行線分別連接至行狀態寄存器的輸入端,所有按鍵矩陣的列線分別連接至列狀態 寄存器的輸入端;所述行狀態寄存器的輸出端與列狀態寄存器的輸出端共同組成鍵盤狀態 信號輸出端。
[0025] 所述低電平使能有效行S態緩沖器、高電平使能有效列S態緩沖器的使能控制輸 入端連接至取樣脈沖;所述下降沿鎖存有效行狀態寄存器、上升沿鎖存有效列狀態寄存器 的接收脈沖輸入端連接至取樣脈沖。
[0026] 所述的一種矩陣式鍵盤掃描電路及編碼電路還包括由振蕩器、計數器、脈沖分配 器組成的電路;所述掃描脈沖、第一移位脈沖、第二移位脈沖由振蕩器、計數器、脈沖分配器 組成的電路產生。所述脈沖分配器為ROM存儲器。
[0027]所述取樣脈沖的周期不大于掃描周期。通常選擇掃描脈沖、第一移位脈沖、第二移 位脈沖的一個作為取樣脈沖。
[002引所述的N位、2XN位、M位均指二進制位數據。
[0029] 本發明的有益效果是:將對單鍵操作、組合鍵操作、鍵盤維持狀態操作的掃描定 位,由滿足特定時序要求的多個脈沖控制轉換成同一二進制長度的狀態碼,采用統一編碼 的方式進行處理,單鍵操作、組合鍵操作、鍵盤維持狀態操作僅體現在狀態碼的不同上;如 果需要增減按鍵操作功能或者是調整按鍵操作功能,不需要修改鍵盤掃描電路結構,只需 根據增減后的狀態碼與鍵號之間的對應關系更改編碼器、即重新寫入只讀存儲器的存儲內 容即可。所述發明電路沒有使用單片機、ARM等微控制器,不用運行程序,工作可靠。
【附圖說明】
[0030] 圖1是一種矩陣式鍵盤掃描電路及編碼電路原理框圖;
[0031 ]圖2是本發明實施例的矩陣式鍵盤電路圖;
[0032] 圖3是本發明實施例的掃描編碼電路圖;
[0033] 圖4是本發明實施例的脈沖時序圖;
[0034] 圖5是本發明實施例的脈沖電路原理圖;
[0035] 圖6是本發明實施例的鍵盤狀態變化脈沖產生單元的電路圖;
[0036] 圖7是本發明實施例的鍵盤有效操作的相關波形示意圖。
【具體實施方式】
[0037] W下結合附圖對本發明作進一步說明。
[0038] 圖1是一種矩陣式鍵盤掃描電路及編碼電路原理框圖,由矩陣式鍵盤400、第一移 位寄存器100、第二移位寄存器200、狀態碼寄存器500、編碼器300組成。
[0039] 圖2是本發明實施例的矩陣式鍵盤400的電路圖,共有2行、2列,共4個按鍵,由按鍵 Sl、按鍵S2、按鍵S3、按鍵S4和連接至電源+VCC的上拉電阻Rl、上拉電阻R2、上拉電阻R3、上 拉電阻R4, W及行S態緩沖器401、列S態緩沖器402、行狀態寄存器403、列狀態寄存器404 組成。行=態緩沖器401的2個輸出端Y1、Y2分別連接至2根行線,列=態緩沖器402的2個輸 出端Y3、M分別連接至2根列線;行S態緩沖器40巧日列S態緩沖器402的所有輸入端Xl~X4 連接至低電平。
[0040] 行狀態寄存器403的2個輸入端D4UD42分別連接至2根行線,列狀態寄存器404的2 個輸入端D43、D44分別連接至2根列線;行狀態寄存器403的2個輸出端Q41、Q42輸出行狀態 信號11、12,列狀態寄存器404的2個輸出端943、944輸出列狀態信號13、14;行狀態寄存器 403的2個輸出端與列狀態寄存器404的2個輸出端共同組成4位鍵盤狀態信號輸出端,輸出 鍵盤狀態信號II、12、13、14。
[0041] 實施例中,行S態緩沖器401的使能輸入ENl低電平有效,列S態緩沖器402的使能 輸入EN2高電平有效;EN巧此肥均連接至振蕩器500的取樣脈沖CK輸出端。行狀態寄存器403 與列狀態寄存器404的接收脈沖輸入端化K3XLK4均連接至振蕩器500的取樣脈沖CK輸出 端,行狀態寄存器403在取樣脈沖CK的下降沿進行數據鎖存,列狀態寄存器404在取樣脈沖 CK的上升沿進行數據鎖存。
[0042] 當行S態緩沖器401和列S態緩沖器402使用同型號的S態緩沖器,例如,同時使 用S態緩沖器74肥241時,74肥241的使能輸入為高電平有效,因此,在取樣脈沖CK輸出端與 行S態緩沖器401的使能輸入端ENl之間,需要增加一個非口。同樣地,當行狀態寄存器403 和列狀態寄存器404使用同型號的數據寄存器,例如,行狀態寄存器403和列狀態寄存器404 均使用雙D觸發器74HC74組成數據寄存器時,74HC74的觸發輸入為上升沿有效,因此,在取 樣脈沖CK輸出端與行狀態寄存器403的接收脈沖輸入端CLK3之間,需要增加一個非口。
[0043] 圖1中的第一移位寄存器100、第二移位寄存器200、狀態碼寄存器500組成掃描電 路,編碼器300組成編碼電路,其實施例電路圖如圖3所示。實施例矩陣式鍵盤電路輸出的狀 態信號有4位,因此,第一移位寄存器100為具有同步并行輸入、串行輸出功能的4位二進制 移位寄存器,第二移位寄存器200為具有串行輸入、并行輸出功能的8位二進制移位寄存器。 第一移位寄存器100的4個并行輸入端LO~L3依次連接至11、12、13、14,第二移位寄存器200 的串行輸入端D2連接至第一移位寄存器100的串行輸出端Ql。第一移位寄存器100的時鐘脈 沖輸入端化Kl連接至第一移位脈沖CPl,第二移位寄存器200的移位脈沖輸入端CLK2連接至 第二移位脈沖CP2,第一移位寄存器100的并行輸入控制端LD連接至掃描脈沖CP3。
[0044] 狀態碼寄存器500要求寄存8位二進制數據,其8位數據輸入端D57~D50連接至第 二移位寄存器200的8位并行輸出端Q27~Q20;狀態碼寄存器500的接收脈沖輸入端化K5連 接至掃描脈沖CP3。
[0045] 編碼器300的8個輸入端A7~AO連接至狀態碼寄存器500的8個數據輸出端Q57~ Q50。編碼器300輸出經過掃描編碼確定的4位二進制鍵號。
[0046] 圖3實施例中,第一移位寄存器100可W選擇由74肥166等具有同步并行輸入、串行 輸出功能的中規模集成移位寄存器組成,或者是由邊沿觸發器組成。第二移位寄存器200可 W選擇由74HC164等具有串行輸入、并行輸出功能的中規模集成移位寄存器組成,或者由邊 沿觸發器組成。由邊沿觸發器組成第一移位寄存器100、第二移位寄存器200時,優選由邊沿 觸發的D觸發器組成。狀態碼寄存器500由邊沿觸發器組成,優選由邊沿觸發的D觸發器組 成,例如,選擇雙D觸發器74肥74,或者4D觸發器74肥175,或者8D觸發器74肥273組成。
[0047] 圖3實施例中,編碼器300為只讀存儲器。只讀存儲器的地址輸入端A7~AO為編碼 器300的輸入端,只讀存儲器的數據輸出端D3~DO為編碼器300的編碼輸出端C3~C0。
[0048] 一種矩陣式鍵盤掃描電路及編碼電路的工作原理如下:
[0049] 掃描電路在掃描脈沖CP3、第一移位脈沖CPl、第二移位脈沖CP2的控制下工作,相 關的脈沖時序圖如圖4所示。
[0050] 實施例中CP1、CP2、CP3的時序滿足W下要求:每5個CPl脈沖為一個掃描周期。一個 掃描周期中,第1個CPl脈沖周期為并行輸入控制周期,CP3為第一移位寄存器100并行輸入 使能有效電平,第一移位寄存器100在第1個CPl脈沖的控制下進行并行輸入預置;接下來的 4個CPl脈沖周期為移位周期,CP3為第一移位寄存器100并行輸入使能無效電平,第一移位 寄存器100在CPl脈沖的控制下進行串行移位。一個掃描周期中,CP2有4個移位脈沖。
[0051] 滿足時序要求的CPl、CP2、CP3脈沖可W由各種脈沖分配器產生,圖5是本發明實施 例的脈沖電路原理圖,由振蕩器801、計數器802、脈沖分配器803組成。圖4中的時鐘脈沖CP 由振蕩器產生,CP送至計數器802進行計數,計數器802為10進制計數器,其結果P的10個狀 態(數值)依次為P〇^P9,如圖4所示。實施例中的脈沖分配器803采用ROM存儲器實現,在此 稱為脈沖分配ROM存儲器。脈沖分配ROM存儲器的地址輸入連接至計數器802的計數輸出,脈 沖分配ROM存儲器的3位數據輸出端分別輸出CPl脈沖、CP2脈沖、CP3脈沖。脈沖分配ROM存儲 器的寫入內容見表1。
[0052]表1脈沖分配ROM存儲器數據表 [0化3]
[0054] 表1中的ROM存儲器地址,即計數器輸出至少為4位二進制碼。一般情況下,計數器 802如果采用二進制加法規則,則PO~P9順序對應4位二進制碼0000~1001,即ROM存儲器地 址范圍為0000~1001,地址0000~1001的存儲內容為表1中PO~P9對應的內容。
[0055] 脈沖分配ROM存儲器需要3位數據輸出。設脈沖分配ROM存儲器的地址輸入有R位, 當矩陣式鍵盤有N位鍵盤狀態信號輸出時,R的選擇需要滿足2^大于等于2 X (N+1)。
[0化6] 振蕩器801為多諧振蕩器。掃描脈沖CP3的周期為20~10〇1113八?1八?2八?3也可^ 由一種矩陣式鍵盤掃描電路及編碼電路之外的電路或者裝置提供。
[0057]圖2中,矩陣式鍵盤的4個按鍵W2 X 2的矩陣形式排列,所有的行線與列線都通過 上拉電阻接至電源+VCC。矩陣式鍵盤由取樣脈沖CK控制,采用反轉法獲取鍵盤狀態信號14、 13、12、11。例如,沒有鍵按下的鍵盤狀態信號是1111,51按下的鍵盤狀態信號是1010,51、52 同時按下的鍵盤狀態信號是0010。鍵盤狀態信號的4位二進制碼稱為鍵值。取樣脈沖CK可W 選擇掃描脈沖CP3、第一移位脈沖CPl、第二移位脈沖CP2中的一個,優選將第一移位脈沖CPl 同時作為取樣脈沖CK。
[005引取樣脈沖CK控制對矩陣式鍵盤進行采樣讀取鍵值的方法是:在取樣脈沖CK的低電 平,通過行=態緩沖器401控制所有行線輸出低電平,列=態緩沖器402輸出高阻態開放列 線;在取樣脈沖CK的上升沿由列狀態寄存器404采樣讀取列線狀態作為鍵值的高2位;在取 樣脈沖CK的高電平,通過列S態緩沖器402控制所有列線輸出低電平,行S態緩沖器401輸 出高阻態開放行線;在取樣脈沖CK的下降沿由行狀態寄存器403采樣讀取行線狀態作為鍵 值的低2位;上述過程周而復始,列狀態寄存器404、行狀態寄存器403輸出的4位鍵值始終為 矩陣式鍵盤的最新狀態。
[0059] 從取樣脈沖CK控制對矩陣式鍵盤進行采樣讀取鍵值的方法可知,行S態緩沖器 401在取樣脈沖CK的低電平使能有效時,同時要求列狀態寄存器404在取樣脈沖CK的上升沿 進行數據鎖存、列S態緩沖器402在取樣脈沖CK的高電平使能有效、行狀態寄存器403在取 樣脈沖CK的下降沿進行數據鎖存。反過來,如果行=態緩沖器401在取樣脈沖CK的高電平使 能有效時,同時要求列狀態寄存器404在取樣脈沖CK的下降沿進行數據鎖存、列=態緩沖器 402在取樣脈沖CK的低電平使能有效、行狀態寄存器403在取樣脈沖CK的上升沿進行數據鎖 存。
[0060] 在上述取樣脈沖CK控制采樣讀取鍵值的過程中,行狀態寄存器403、列狀態寄存器 404進行采樣的時刻恰好是列=態緩沖器402與行=態緩沖器401進行狀態反轉的時刻,正 常工作下的行狀態寄存器403或列狀態寄存器404能夠正確采樣。如果要求有一定時序上的 裕量,則可W對連接至列=態緩沖器402與行=態緩沖器401的取樣脈沖CK進行延遲,方法 是令取樣脈沖CK經過RC延遲電路再連接至行S態緩沖器401與列S態緩沖器402的ENl、 EN2,延遲時間由RC延遲電路決定,確定RC延遲電路的延遲時間的原則是,延遲的取樣脈沖 CK相位不超過90%或者是取樣脈沖CK經過幾個口電路的緩沖后再連接至行=態緩沖器401 與列=態緩沖器402的ENl、EN2,此時的延遲時間為所述幾個口電路的總時延時間。
[0061] 第一移位寄存器100在掃描脈沖CP3和第一移位脈沖CPl的控制下,對矩陣式鍵盤 400輸出的狀態信號11、12、13、14進行數據輸入鎖存,此時第一移位寄存器100內部的鎖存 的數據稱為當前鍵值。第二移位寄存器200在之前的二個周期經由8個CP2脈沖的控制,將前 二個當前鍵值移位至第二移位寄存器200輸出端,此時第二移位寄存器200輸出中先移入的 4位數據稱為現態鍵值,后移入的4位數據稱為前態鍵值。
[0062] 掃描脈沖CP3將第二移位寄存器200輸出的現態鍵值、前態鍵值鎖存在狀態碼寄存 器500的輸出端,狀態碼寄存器500的輸出同樣為前態鍵值與現態鍵值。
[0063] 第一移位寄存器100、第二移位寄存器200的移位脈沖均邊沿有效;在一個掃描周 期的移位周期中,CP2的4個移位脈沖的有效邊沿時刻不遲于CPl相應的4個移位脈沖的有效 邊沿時刻。
[0064] 第一移位寄存器100的串行移位和并行輸入預置均由第一移位脈沖CPl控制,在第 一移位脈沖CPl的有效邊沿實現串行移位或者并行輸入預置。實施例中,第一移位寄存器 100選擇由74HC166組成,其并行輸入控制為低電平使能有效,因此,掃描脈沖CP3為低電平 時,第一移位寄存器100在CPl的上升沿進行并行輸入預置,掃描脈沖CP3為高電平時,第一 移位寄存器100在CPl的上升沿進行串行移位。
[0065] 實施例中,狀態碼寄存器500數據輸出端輸出的4位現態鍵值和4位前態鍵值共同 組成8位狀態碼。所述的8位狀態碼用于識別矩陣式鍵盤的當前狀態和操作狀態。例如,本實 施例中,無鍵按下的狀態碼是11111111 ;S1鍵單鍵按下操作的狀態碼是11111010;S1鍵單鍵 按下且維持的狀態碼是l〇l〇l〇l〇;Sl鍵單鍵釋放操作的狀態碼是10101111 ;S2鍵單鍵按下 操作的狀態碼是11110110; S4鍵單鍵按下操作的狀態碼是11110101; S化Sl組合操作的Sl按 下操作,表示先按下S2后,在S2維持按下的狀態再按下Sl的操作,該操作的狀態碼是 01100010。
[0066] 編碼器300用于將狀態碼轉換為鍵號。實施例中,設有6個有效的鍵盤操作與狀態, 包括:
[0067] 操作0:按鍵SI的單鍵按下操作,鍵號為0000;
[0068] 操作1:按鍵S2的單鍵按下操作,鍵號為0001;
[0069] 操作2:按鍵S3的單鍵按下操作,鍵號為OOlO;
[0070] 操作3:按鍵S3單鍵按下后的維持狀態,鍵號為0011;
[0071] 操作4:按鍵S4單鍵按下后,再按下按鍵S2的組合鍵操作,鍵號為0100;
[0072] 操作5:按鍵Sl的單鍵釋放操作,鍵號為OlOl。
[0073] 根據上述規定得到的狀態碼和鍵號見編碼表2:
[0074] 表2編碼表 「mv"
L〇〇76」編碼器300為組合邏輯電路,設計電路,滿足表2的邏輯關系即可。
[0077] 實施例的編碼器300優選由只讀存儲器301組成。只讀存儲器301有8位地址,共28 個4位二進制存儲單元。6個有效的鍵盤操作與狀態有6個有效狀態碼,對應6個有效的鍵號; 將狀態碼作為只讀存儲器301的地址A7~AO,在與6個有效狀態碼相對應的存儲單元中,將 相應的鍵號作為存儲數據寫入。6個有效的鍵盤操作與狀態之外產生的狀態碼為無效狀態 碼,即表2中的其他操作或狀態所產生的為無效狀態碼;在其他存儲單元中,全部寫入無效 鍵號,無效鍵號為6個有效鍵號之外的一個值,實施例中,無效鍵號為1111。
[0078] 只讀存儲器301-直工作在數據輸出狀態。當只讀存儲器301具有片選控制、數據 輸出緩沖控制功能時,應使其片選控制、數據輸出緩沖控制處于有效狀態。
[0079] 實施例中的鍵號為4位二進制碼。鍵號的二進制位數可W根據需要增加,或者減 少,此時,只需選擇與此相匹配的只讀存儲器301即可。設鍵號的二進制位數為M,M值的選擇 應滿足2?大于等于有效鍵號與無效鍵號的數量之和。當矩陣式鍵盤有N位鍵盤狀態信號輸 出時,只讀存儲器301需要有2 X N位地址輸入,M位數據輸出。
[0080] 如果需要增減按鍵操作功能或者是調整按鍵操作功能,只需根據需要修改表2,將 修改后的內容重新寫入只讀存儲器301的存儲內容即可。
[0081] 將狀態碼寄存器500進行數據鎖存的時刻的掃描脈沖CP3的邊沿稱為狀態鎖存沿, 實施例中為CP3的上升沿。實施例中,當矩陣式鍵盤Sl單鍵按下,經過CP3脈沖控制并行輸入 預置和下一 CP3脈沖的狀態鎖存沿將狀態碼鎖存在狀態碼寄存器500后,一個CP3脈沖周期 內,編碼輸出端C3~CO輸出鍵號0000;當矩陣式鍵盤S2單鍵按下,經過CP3脈沖控制并行輸 入預置和下一CP3脈沖的狀態鎖存沿將狀態碼鎖存在狀態碼寄存器500后,一個CP3脈沖周 期內,輸出鍵號0001;當矩陣式鍵盤先按下S4后,再按下S2,編碼器300在S2組合鍵按下,經 過CP3脈沖控制并行輸入預置和下一 CP3脈沖的狀態鎖存沿將狀態碼鎖存在狀態碼寄存器 500后,一個CP3脈沖周期內,輸出鍵號0100;當矩陣式鍵盤SI單鍵釋放,經過CP3脈沖控制并 行輸入預置和下一 CP3脈沖的狀態鎖存沿將狀態碼鎖存在狀態碼寄存器500后,一個CP3脈 沖周期內,輸出鍵號0101;因此可W看出,當識別的是矩陣式鍵盤的有效按鍵操作時,編碼 器300在該有效按鍵操作后輸出持續時間為一個CP3周期寬度的有效鍵號。
[0082] 實施例中,當矩陣式鍵盤S3單鍵按下時,編碼器300在S3單鍵按下,經過CP3脈沖控 制并行輸入預置和下一CP3脈沖的狀態鎖存沿將狀態碼鎖存在狀態碼寄存器500后,一個 CP3脈沖周期內,輸出鍵號OOlO;在接下來的CP3的狀態鎖存沿開始,至S3單鍵按下維持狀態 結束,經過CP3脈沖控制并行輸入預置和下一 CP3脈沖的狀態鎖存沿將狀態碼鎖存在狀態碼 寄存器500后,編碼器300輸出鍵號0011;因此可W看出,當識別的是矩陣式鍵盤的維持狀態 時,編碼器300輸出有效鍵號的持續時間與該維持狀態的持續時間相適應。
[0083] 當鍵盤的狀態或操作為表2中所述的6個有效的鍵盤操作與狀態之外時,編碼器 300輸出無效鍵號1111。無論是輸出有效鍵號,還是輸出無效鍵號,編碼器300改變輸出內容 的時刻為CP3的狀態鎖存沿;實施例中,編碼器300改變輸出內容的時刻為CP3的上升沿。
[0084] CP3的周期為矩陣式鍵盤的掃描周期。鍵盤掃描周期在20msW上時,能夠有效地避 開鍵盤按鍵抖動的影響;鍵盤掃描周期在IOOmsW下時,不至于遺漏鍵盤操作;因此,CP3的 周期應該控制在20~100ms。
[0085] 由于CP3脈沖在狀態鎖存沿鎖存至狀態碼寄存器500的狀態碼為前態鍵值與現態 鍵值,按鍵操作后的當前鍵值需要延遲一個CP3脈沖周期才能作為現態鍵值組合成為狀態 碼,因此,按鍵按下后,編碼器300輸出鍵號也有一個CP3脈沖周期的延遲。由于按鍵由人工 操作,幾十ms的時間延遲對操作中沒有影響。
[0086] 圖6是本發明實施例的鍵盤狀態變化脈沖產生單元的電路圖。當識別的是矩陣式 鍵盤的有效按鍵操作時,編碼器300在該有效按鍵操作后的CP3的狀態鎖存沿開始,至下一 個CP3的狀態鎖存沿為止,輸出持續時間為一個CP3周期寬度的有效鍵號。接收所述矩陣式 鍵盤輸出的裝置,需要時刻查詢矩陣式鍵盤的輸出,獲取鍵號。查詢的周期間隔必須小于 CP3的周期。
[0087] 圖6所示電路用于判斷矩陣式鍵盤輸出的鍵號是否發生改變,當矩陣式鍵盤輸出 的鍵號發生改變時,輸出鍵盤狀態變化脈沖,用于輔助矩陣式鍵盤的接收裝置接收矩陣式 鍵盤輸出的鍵號,例如,將鍵盤狀態變化脈沖作為接收裝置的中斷請求信號。
[008引圖6所示電路由延遲緩沖器601、異或口602、異或口603、異或口604、異或口605、或 口 606組成。延遲緩沖器601由只具有觸發功能的4個邊沿觸發器組成,4個邊沿觸發器的觸 發輸入端為延遲緩沖器601的接收脈沖輸入端,均連接至CP3;延遲緩沖器601在CP3的狀態 鎖存沿進行數據鎖存。
[0089]延遲緩沖器601用于對編碼器300的編碼輸出端的4位數據C3~CO分別進行延遲處 理。延遲緩沖器601的4個數據輸入端D63~D60連接至編碼器300的編碼輸出端C3~CO,延遲 緩沖器601的4個數據輸出端Q63~Q60相應輸出的數據是C31~C01;C31~COl經過延遲緩沖 器601的一級緩沖后,其信號比C3~CO延遲一個CP3脈沖周期,圖7所示為本發明實施例的鍵 盤有效操作的相關波形示意圖。設在CP3脈沖的Tl區間,矩陣式鍵盤存在一次有效操作,實 施例的有效操作包括:別單鍵按下、S2單鍵按下、S3單鍵按下、S4+S1組合操作的Sl按下、S4+ S2組合操作的S2按下、Sl單鍵釋放。在一次有效操作的下一個狀態鎖存沿,即圖7中CP3脈沖 Tl區間之后的上升沿,編碼器300輸出的編碼C3~CO發生改變;在T2區間,編碼器300輸出一 個CP3脈沖周期的有效編碼C3~CO;在T3J4及之后區間,編碼器300輸出的編碼C3~CO再一 次改變且進入維持狀態,該維持狀態可能是例如Sl單鍵按下后面的維持狀態,輸出無效鍵 號,也可能是S3單鍵按下后面的維持狀態,輸出有效鍵號,直到下一次有效操作。
[0090]圖7中的D6脈沖示意表示編碼器300輸出的編碼C3~CO是處于維持狀態,沒有變 化,還是發生改變,實際電路中不存在所述的D6脈沖。如圖7所示,D6脈沖為低電平,示意表 示編碼器300輸出的編碼C3~CO是處于維持狀態,沒有變化;D6脈沖為高電平,示意表示編 碼器300輸出一個周期的有效編碼C3~CO。圖7中的Q6反映的是C31~CO 1的變化情況,顯然, Q6比D6延遲一個CP3脈沖周期。同樣,實際電路中不存在所述的Q6脈沖。
[0091 ]圖7中,編碼器300輸出的編碼C3~CO是處于維持狀態,沒有變化,還是發生改變, 實際是由4位延遲緩沖器601、異或口 602、異或口 603、異或口 604、異或口 605、或口 606所組 成的邏輯電路完成。4個異或口分別與編碼器300編碼輸出端C3~CO中的1位相對應,輸入分 別為4位延遲緩沖器601的輸入、輸出信號。例如,異或口602的兩個輸入信號分別為CO和 COl,C01比CO延遲一個CP3脈沖周期,因此,當CO發生變化時,異或口602輸出1個CP3脈沖周 期寬度的正脈沖;當CO為一個CP3脈沖周期寬度變化信號時,異或口602輸出2個CP3脈沖周 期寬度的正脈沖。異或口 603、異或口 604、異或口 605分別判斷Cl~C3是否發生變化,原理與 判斷CO是否發生變化相同。異或口 602、異或口 603、異或口 604、異或口 605的輸出端分別連 接至或口 606的輸入端,或口 606用于綜合判斷CO~C3是否發生變化,只要CO~C3發生變化, 或口 606即輸出鍵盤狀態變化脈沖F,該脈沖為正脈沖。
[0092] 實施例中,延遲緩沖器601選擇上升沿觸發的8D觸發器74肥273。
[0093] 延遲緩沖器601還可W采用其他方案,例如,采用RC電路,利用4個RC電路分別對CO ~C3進行延遲;如果RC電路的延遲時間小于一個CP3脈沖周期,則編碼器300輸出一個周期 的有效編碼C3~CO時,在輸出有效編碼C3~CO開始和輸出有效編碼C3~CO結束都產生一個 鍵盤狀態變化脈沖,鍵盤狀態變化脈沖的寬度等于RC電路延遲時間;如果RC電路的延遲時 間大于等于一個CP3脈沖周期,則編碼器300輸出一個周期的有效編碼C3~CO時,在輸出有 效編碼C3~CO開始時產生一個鍵盤狀態變化脈沖,該脈沖寬度大于等于2個CP3脈沖周期。 要求RC電路的延遲時間不超過2個CP3脈沖周期,W免產生漏報。
[0094] 所述的發明電路中,將對單鍵操作、組合鍵操作、鍵盤維持狀態操作的定位,由滿 足特定時序要求的2個脈沖控制轉換成同一二進制長度的狀態碼,采用統一編碼的方式進 行處理,單鍵操作、組合鍵操作、鍵盤維持狀態操作僅體現在狀態碼的不同上;如果需要增 減按鍵操作功能或者是調整按鍵操作功能,不需要修改鍵盤掃描電路結構,只需根據增減 后的狀態碼表更新編碼器300、即重新寫入更新只讀存儲器的存儲內容即可。所述發明電路 沒有使用單片機、ARM等微控制器,不用運行程序,工作可靠。
【主權項】
1. 一種矩陣式鍵盤掃描電路及編碼電路,其特征在于,由矩陣式鍵盤、第一移位寄存 器、第二移位寄存器、狀態碼寄存器、編碼器組成; 所述矩陣式鍵盤共有X行、Y列,設有N位鍵盤狀態信號輸出端;所述N=X+Y; 所述矩陣式鍵盤設有取樣脈沖輸入端; 所述第一移位寄存器具有N位同步并行輸入端和串行輸出端;所述第二移位寄存器具 有串行輸入端和2 X N位并行輸出端; 所述第一移位寄存器的N位并行輸入端連接至N位鍵盤狀態信號輸出端;第二移位寄存 器的串行輸入端連接至第一移位寄存器的串行輸出端;第一移位寄存器的時鐘脈沖輸入端 連接至第一移位脈沖,第二移位寄存器的移位脈沖輸入端連接至第二移位脈沖,第一移位 寄存器的并行輸入控制端連接至掃描脈沖; 所述狀態碼寄存器為2 X N位二進制寄存器;狀態碼寄存器的2 X N位數據輸入端連接至 第二移位寄存器的2XN位并行輸出端;所述狀態碼寄存器的接收脈沖輸入端連接至掃描脈 沖; 所述編碼器有2 X N位編碼輸入端,所述2 X N位編碼輸入端連接至狀態碼寄存器的2 X N 位數據輸出端;所述編碼器有Μ位鍵號輸出端。2. 根據權利要求1所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:所述編碼 器為只讀存儲器。3. 根據權利要求1所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:還包括由 振蕩器、計數器、脈沖分配器組成的電路;所述掃描脈沖、第一移位脈沖、第二移位脈沖由振 蕩器、計數器、脈沖分配器組成的電路產生。4. 根據權利要求3所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:所述脈沖 分配器為ROM存儲器。5. 根據權利要求1所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:還包括鍵 盤狀態變化脈沖產生單元。6. 根據權利要求5所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:所述鍵盤 狀態變化脈沖產生單元由Μ位延遲緩沖器、Μ個異或門和或門組成;Μ位延遲緩沖器用于對矩 陣式鍵盤輸出的Μ位鍵號分別進行信號延遲;Μ個異或門的輸入分別為Μ位延遲緩沖器的輸 入、輸出信號;Μ個異或門的輸出分別連接至或門的輸入端;或門的輸出端輸出鍵盤狀態變 化脈沖。7. 根據權利要求1所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:所述矩陣 式鍵盤由X行-Υ列按鍵矩陣、低電平使能有效行三態緩沖器、高電平使能有效列三態緩沖 器、下降沿鎖存有效行狀態寄存器、上升沿鎖存有效列狀態寄存器組成;所有按鍵矩陣的行 線分別連接至行三態緩沖器的輸出端,所有按鍵矩陣的列線分別連接至列三態緩沖器的輸 出端;行三態緩沖器和列三態緩沖器的所有輸入端連接至低電平;所有按鍵矩陣的行線分 別連接至行狀態寄存器的輸入端,所有按鍵矩陣的列線分別連接至列狀態寄存器的輸入 端;所述行狀態寄存器的輸出端與列狀態寄存器的輸出端共同組成鍵盤狀態信號輸出端。8. 根據權利要求7所述的一種矩陣式鍵盤掃描電路及編碼電路,其特征在于:所述低電 平使能有效行三態緩沖器、高電平使能有效列三態緩沖器的使能控制輸入端連接至取樣脈 沖;所述下降沿鎖存有效行狀態寄存器、上升沿鎖存有效列狀態寄存器的接收脈沖輸入端 連接至取樣脈沖。
【專利摘要】一種矩陣式鍵盤掃描電路及編碼電路,由矩陣式鍵盤、第一移位寄存器、第二移位寄存器、狀態碼寄存器、編碼器組成。所述掃描電路的掃描方法是,經由滿足特定時序要求的掃描脈沖、第一移位脈沖、第二移位脈沖的控制,將矩陣式鍵盤的單鍵操作、組合鍵操作,或者是維持的狀態,轉換成同一二進制長度的有效狀態碼和無效狀態碼,經過編碼器編碼后輸出與每一個有效狀態碼對應的有效鍵號或者是輸出與所有無效狀態碼對應的無效鍵號;不同的單鍵操作、組合鍵操作,或者是維持的狀態僅體現在狀態碼的不同上;如果需要增減按鍵操作功能或者是調整按鍵操作功能,不需要修改鍵盤掃描電路結構,只需根據增減后的狀態碼與鍵號之間的對應關系更改編碼器即可。所述發明電路不用編寫和運行程序,工作可靠。
【IPC分類】G06F3/02
【公開號】CN205384582
【申請號】CN201620006900
【發明人】王兵, 凌云, 彭杲, 陳海東
【申請人】湖南工業大學
【公開日】2016年7月13日
【申請日】2016年1月5日