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