基于2.4GHz射頻通信的多功能鼠標設計
如圖5所示,首先判斷是否有位移,即Motion的最高位是否為1。若不為1,則表示沒有位移,本次查詢結束;若為1,則表示有位移,然后再去讀DeltaX和DeltaY的值,并將其通過無線發(fā)射部分發(fā)送出去。
讀DeltaX、DeltaY寄存器后,寄存器中的值自動清零,但是Motion寄存器讀后不清零,所以最后需要對Motion寄存器的最高位進行清零,以防止在沒有位移的情況下,系統也對DeltaX、DeltaY寄存器進行掃描,造成不必要的浪費。
另一個需考慮的地方是光傳感器的分辨率。在上電復位后,光傳感器的分辨率為默認的500cpi(cells perinch),但是實驗效果并不好。在調試時,其位移并不明顯,后來修改寄存器的值,將其分辨率改為1 000 cpi(只有500 cpi和1 000 cpi兩種分辨率),光標的位移效果明顯好于分辨率為500 cpi時的效果。由此可見,光傳感器的這一屬性也是相當重要的。
2.4 讀按鍵與鍵盤
左右鍵的設計與普通按鍵的設汁稍有不同。使用鼠標時可以看到,在按下左鍵同時拖動鼠標時,可以選中光標移動范圍內的選項;同樣,右鍵也具有這樣的功能。
在左右鍵的掃描程序中,當程序掃描到有鍵按下時(例如左鍵按下),立刻將所得到的鍵值發(fā)送出去,這時,接收端的左鍵值一直是處于按下狀態(tài)的,同時也不耽誤光傳感器等的掃描;當左鍵抬起時,再向接收端發(fā)送按鍵抬起的指令,一次左右鍵的掃描就完成了。這樣就可以實現在按下左鍵同時拖動鼠標時,選中光標移動范圍內選項的操作了。
上下鍵與左鍵和右鍵的操作方式不同。在上下鍵的掃描程序中還應考慮點動和連動這兩種不同的情況。點動即為在一定時間內快速按下一個按鍵,然后立即釋放;而按下一個鍵并延時一段時間再釋放,則程序將其識別為連動。
鍵盤部分設置了20個鍵,是一個5×4的矩陣,包括“O~9”10個數字鍵,“上、下、左、右”4個方向鍵,“←”鍵,“確定”鍵,“Esc鍵以及3個快捷鍵(“顯示桌面”、“瀏覽器”和“我的電腦”)。其中“0~9”10個數字鍵是復用鍵,像手機鍵盤一樣,根據一定時間內連擊次數的不同,可以輸入不同的鍵值。
結 語
本文所涉及的硬件均在實際中調試通過。實驗證明,MSP430系列單片機成本較低,在低功耗產品中的應用極為廣泛,將會得到廣大開發(fā)人員的認同。本系統已實現鼠標和手機鍵盤結合的基本功能,以后仍可以對其功能進行補充,完善多功能無線鼠標的性能。
評論