版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)論文</b></p><p> 題目:無線鼠標(biāo)的設(shè)計與實現(xiàn)</p><p> 英文題目:Design and Implementation of the Wireless Mouse</p><p><b> 摘 要</b></p><p> 隨著人們物質(zhì)
2、生活水平的提高,計算機已成為工業(yè)生產(chǎn),科技研發(fā),生活娛樂等各方面的必需品。而鼠標(biāo)是人們操作計算機的最重要的外設(shè),隨著無線通信技術(shù)的發(fā)展,無線鼠標(biāo)也將逐步取代有線鼠標(biāo),成為主流的產(chǎn)品。USB接口作為近年來發(fā)展較快的一種通信方式,逐漸代替了PS/2串行接口通信。PS/2鼠標(biāo)逐漸退出市場,如果在單片機應(yīng)用中能充分利用這些資源將可以設(shè)計出性價比很高又很有創(chuàng)意的產(chǎn)品。 </p><p> 本文在簡單介紹的鼠標(biāo)的發(fā)展后,
3、首先介紹了PS/2鼠標(biāo)的工作原理,然后詳細(xì)分析了PS/2鼠標(biāo)解碼的硬件和軟件的設(shè)計,對鼠標(biāo)信息進(jìn)行解碼。解碼后利用LCD1602顯示鼠標(biāo)的坐標(biāo)和按鍵信息對鼠標(biāo)操作進(jìn)行仿真,經(jīng)過調(diào)試驗證了系統(tǒng)的穩(wěn)定,利用ZigBee無線傳輸模塊進(jìn)行數(shù)據(jù)的無線傳輸,完成鼠標(biāo)的操作,實現(xiàn)無線鼠標(biāo)的設(shè)計。</p><p> 關(guān)鍵詞:PS/2鼠標(biāo) ,LCD1602 ,ZigBee模塊 ,無線傳輸</p><p>
4、<b> ABSTRACT</b></p><p> With the improvement of people's living standards, the computer has become a necessity of industrial production, R & D, live entertainment and other aspects. Th
5、e mouse is the most important operation of the computer peripheral people, with the development of wireless communication technology, wireless mouse will gradually replace wired mouse, mainstream products. USB interface
6、as a rapid development in recent years as a means of communication, and gradually replaced the PS / 2 serial interface c</p><p> In this paper, after a brief introduction of the development of the mouse, fi
7、rstly, introducing the PS / 2 mouse works, and a detailed analysis of the PS / 2 mouse decoding the design of hardware and software, and mouse information to decode. After decoding the use LCD1602 display key information
8、 of the mouse coordinates and mouse operation simulation, debugging to verify the stability of the system, to use ZigBee wireless transmission module for wireless transmission of data to complete the ope</p><p
9、> Key Words: PS/2 Mouse, LCD1602, ZigBee Module ,Wireless Transmission </p><p><b> 目 錄</b></p><p><b> 1 引 言1</b></p><p> 1.1 研究的目的與意義1</p>
10、<p> 1.2 國內(nèi)外研究現(xiàn)狀和發(fā)展趨勢1</p><p> 1.3 本文的主要工作2</p><p> 2 PS/2協(xié)議與PS/2鼠標(biāo)工作原理3</p><p> 2.1 PS/2協(xié)議簡介3</p><p> 2.1.1 PS/2硬件接口物理特性3</p><p> 2.1.2接口
11、協(xié)議原理3</p><p> 2.2 PS/2鼠標(biāo)的工作原理4</p><p> 2.2.1 PS/2鼠標(biāo)的工作模式4</p><p> 2.2.2 PS/2協(xié)議數(shù)據(jù)包格式4</p><p> 3 ZigBee無線傳輸協(xié)議6</p><p> 3.1 ZigBee無線通信技術(shù)概述7</p&
12、gt;<p> 3.2 ZigBee協(xié)議結(jié)構(gòu)8</p><p> 4 系統(tǒng)總體方案設(shè)計10</p><p> 5 PS/2鼠標(biāo)硬件設(shè)計與軟件解碼12</p><p> 5.1 PS/2鼠標(biāo)硬件設(shè)計12</p><p> 5.2 PS/2鼠標(biāo)軟件解碼程序設(shè)計13</p><p>
13、5.2.1液晶顯示器功能簡介14</p><p> 5.2.2鼠標(biāo)發(fā)送端軟件結(jié)構(gòu)及原理15</p><p> 6 無線鼠標(biāo)系統(tǒng)調(diào)試19</p><p> 6.1系統(tǒng)調(diào)試中遇到的問題及解決方法19</p><p> 6.2 實物設(shè)計演示及效果圖20</p><p><b> 結(jié) 論
14、23</b></p><p><b> 致 謝24</b></p><p><b> 參考文獻(xiàn)25</b></p><p><b> 附 錄26</b></p><p><b> 附錄A26</b></p>
15、;<p><b> 附錄B26</b></p><p><b> 1 引 言</b></p><p> 1.1 研究的目的與意義</p><p> 隨著信息時代的來臨,計算機已經(jīng)在人們的日常生活中變的必不可少。鼠標(biāo),作為人與電腦交互的基本工具,它能夠控制電腦屏幕光標(biāo)的移動,代替計算機鍵盤繁瑣的指令,
16、使計算機的操作變得簡便,鼠標(biāo)技術(shù)與功能的發(fā)展,己經(jīng)越來越被人們所關(guān)注。</p><p> 作為使用最頻繁的計算機外設(shè),無線鼠標(biāo)[1-2]尚未得到普及,主要有兩個方面的問題需要解決,一是功耗問題,無線鼠標(biāo)沒有主機供電,所以必須研究如何降低鼠標(biāo)的功耗,延長電池的使用壽命;二是無線通信技術(shù)問題,無線鼠標(biāo)應(yīng)該采用一種低成本、低功耗、低復(fù)雜度的無線通信技術(shù)。</p><p> 1.2 國內(nèi)外研究
17、現(xiàn)狀和發(fā)展趨勢</p><p> 平時使用電腦,接觸最密切的就是鼠標(biāo)和鍵盤,用設(shè)計精良的鼠標(biāo)可以讓人長時間的使用而不會感到勞累,并且可以大大的提高工作效率。特別是光電鼠標(biāo)的出現(xiàn),大大的增強了鼠標(biāo)對表面的適應(yīng)性。鼠標(biāo)技術(shù)的每一次革新[3],都會使計算機的操作變得更加方便和快捷。</p><p> 如果按照結(jié)構(gòu)來分的話,鼠標(biāo)可以分為機械鼠標(biāo)、光電鼠標(biāo),如果按照與電腦的連接方式來分的話有串口
18、鼠標(biāo)、PS/2鼠標(biāo)和USB鼠標(biāo)。</p><p> (1) 機械鼠標(biāo)和光電鼠標(biāo)</p><p> 機械鼠標(biāo)在出現(xiàn)之初,是通過滑動電位器來判斷它的移動方向,所以它的靈敏度低、磨損大。但是隨著技術(shù)的進(jìn)步,機械鼠標(biāo)吸收了光電鼠標(biāo)的一些設(shè)計,由純機械式結(jié)構(gòu)發(fā)展成為了光學(xué)機械式鼠標(biāo),光學(xué)機械式鼠標(biāo)采用了與純機械式鼠標(biāo)不同的編碼器,并使用了一個滾球靠在兩個轉(zhuǎn)軸上的結(jié)構(gòu)。光學(xué)機械式鼠標(biāo)的內(nèi)部結(jié)構(gòu)是由
19、機械傳動裝置、光電轉(zhuǎn)換裝置、按鍵、編碼電路和連接線、外殼等組成。</p><p> 光電鼠標(biāo)是1981年由DiekLyon和steveKirseh發(fā)明的,這種沒有滾球的鼠標(biāo)采用光學(xué)定位,最初的光電必須和特殊額墊板配合才能使用,造成諸多不便。隨著技術(shù)的進(jìn)步,光電鼠標(biāo)最終拋棄了墊板,工作的時候通過發(fā)送一束紅色的光線照射到桌面上,然后通過桌面不同顏色或凹凸點的運動和反射來判斷鼠標(biāo)的運動。</p><
20、;p> ?。?)串口鼠標(biāo)、PS/2鼠標(biāo)[4]和USB鼠標(biāo)</p><p> 早期的鼠標(biāo)并不是電腦的標(biāo)準(zhǔn)配置,因此和現(xiàn)在的鼠標(biāo)有很大的不同,除了必須外裝電源之外,還要安裝特殊的適配卡,使用起來很不方便。后來出現(xiàn)了一種轉(zhuǎn)接盒,通過它可以把鼠標(biāo)連接到Parallel接口上。Parallel接口成為了鼠標(biāo)與電腦連接的第一種接口。隨著鼠標(biāo)被廣泛使用,在加上技術(shù)的發(fā)展,從COM接口(串口)成了鼠標(biāo)使用的第二種接口,與
21、其它設(shè)備一樣,鼠標(biāo)也是使用9針連接接口(DB-9)。由于電腦的COM口本來就少,還要連接其它設(shè)備,所以很容易造成資源占用的問題。目前廣泛使用的鼠標(biāo)都是使用的PS/2鼠標(biāo)這種接口是IBM公司于1987年在PS/2系統(tǒng)上推出的,這也是被稱為PS/2鼠標(biāo)的來由。雖然PS/2系統(tǒng)最終沒能得到市場的認(rèn)可,但是其中的一些優(yōu)秀設(shè)計還是被保留下來,比如它的PS/2鼠標(biāo)接口,現(xiàn)在已經(jīng)成了ATX主機板上面的標(biāo)準(zhǔn)配置。USB接口的出現(xiàn)為外設(shè)提供了更加簡便的連
22、接方案,由于它符PNP規(guī)范,可以實現(xiàn)熱插拔,因此使用起來很方便。</p><p> 1.3 本文的主要工作 </p><p> 本文研究一款以普通Ps/2鼠標(biāo),采用ZigBee無線模塊進(jìn)行通信的無線鼠標(biāo),鼠標(biāo)系統(tǒng)由鼠標(biāo)發(fā)送部分和鼠標(biāo)接收部分組成。</p><p> 本文的主要工作如下:</p><p> (l)設(shè)計無線鼠標(biāo)的硬件系統(tǒng),
23、連接各個模塊,包括PS/2鼠標(biāo),LCD1602顯示,ZigBee無線傳輸?shù)仁髽?biāo)的硬件設(shè)計。</p><p> 為鼠標(biāo)設(shè)計合理的系統(tǒng)軟件,獲取鼠標(biāo)位移信息及按鍵信息,利用LCD1602顯示實現(xiàn)鼠標(biāo)操作仿真。</p><p> 將鼠標(biāo)的位移與按鍵信息合并后無線發(fā)送給插在電腦上的鼠標(biāo)接收器使鼠標(biāo)接收器與計算機進(jìn)行通信,最終實現(xiàn)了鼠標(biāo)的無線操作。</p><p> 2
24、 PS/2協(xié)議與PS/2鼠標(biāo)工作原理</p><p> 2.1 PS/2協(xié)議簡介</p><p> PS/2協(xié)議是由IBM開發(fā),主要用于鼠標(biāo)和鍵盤的一種通信協(xié)議,它規(guī)定了物理及電器接口、命令、數(shù)據(jù)包格式。</p><p> 2.1.1 PS/2硬件接口物理特性</p><p> PS/2接口用于許多現(xiàn)代的鼠標(biāo)和鍵盤,由IBM最初開發(fā)
25、和使用?物理上的PS/2接口[5]有兩種類型的連接器:5腳的DIN和6腳的mini-DIN?圖2—1就是兩種連接器的引腳定義?使用中,主機提供+5V電源給鼠標(biāo),鼠標(biāo)的地連接到主機電源地上?</p><p> 圖2-1 PS/2硬件接口</p><p> 2.1.2接口協(xié)議原理</p><p> PS/2鼠標(biāo)接口采用一種雙向同步串行協(xié)議?即每在時鐘線上發(fā)一個脈
26、沖,就在數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)?在相互傳輸中,主機擁有總線控制權(quán),即它可以在任何時候抑制鼠標(biāo)的發(fā)送?方法是把時鐘線一直拉低,鼠標(biāo)就不能產(chǎn)生時鐘信號和發(fā)送數(shù)據(jù)?</p><p> 如果主機要發(fā)送數(shù)據(jù),它必須控制鼠標(biāo)產(chǎn)生時鐘信號?方法如下:主機首先下拉時鐘線至少100μs抑制通信,然后再下拉數(shù)據(jù)線,最后釋放時鐘線?通過這一時序控制鼠標(biāo)產(chǎn)生時鐘信號?當(dāng)鼠標(biāo)檢測到這個時序狀態(tài),會在10ms內(nèi)產(chǎn)生時鐘信號?如圖2-3中 A
27、 時序段?主機和鼠標(biāo)之間,傳輸數(shù)據(jù)幀的時序如圖2-2?圖2-3所示。</p><p> 圖2-2 鼠標(biāo)到主機的傳輸時序</p><p> 圖2-3 主機到鼠標(biāo)的傳輸時序</p><p> 數(shù)據(jù)包結(jié)構(gòu)在主機程序中,利用每個數(shù)據(jù)位的時鐘脈沖觸發(fā)中斷,在中斷例程中實現(xiàn)數(shù)據(jù)位的判斷和接收?在實驗過程中,通過合適的編程,能夠正確控制并接收鼠標(biāo)數(shù)據(jù)?但該方案有一點不足
28、,由于每個CLOCK都要產(chǎn)生一次中斷,中斷頻繁,需要耗用大量的主機資源? </p><p> 2.2 PS/2鼠標(biāo)的工作原理</p><p> 2.2.1 PS/2鼠標(biāo)的工作模式</p><p> 目前最常見的鼠標(biāo)有PS/2鼠標(biāo)和USB鼠標(biāo)。PS/2鼠標(biāo)有4種工作模式,具體如下:</p><p> ?。?)復(fù)位模式:當(dāng)上電后或接收到復(fù)
29、位命令FF后鼠標(biāo)即處于此模式。鼠標(biāo)進(jìn)行自檢和初始化,再向主機發(fā)送0xFA,0xAA和0x00,一些參數(shù)將恢復(fù)到默認(rèn)值,即采樣率為100sample/s非自動流速、流模式、分辨率為4計數(shù)/mm、禁止?fàn)顟B(tài)。</p><p> ?。?)流模式:如果有按鍵或滾輪動作,即向系統(tǒng)發(fā)送信息,最大發(fā)送速率就是可編程的采樣率。</p><p> ?。?)遙控模式:只有主機發(fā)送了模式設(shè)置指令0xF0后,鼠標(biāo)才
30、進(jìn)入這種模式。</p><p> ?。?)卷繞模式:這種模式只用于檢測鼠標(biāo)與主機是否連接正確,在該模式下鼠標(biāo)收到什么就返回什么,除非收到退出卷繞指令0xEC或復(fù)位指令0xFF。</p><p> 流模式是默認(rèn)模式。大多數(shù)應(yīng)用系統(tǒng)使用流模式,鼠標(biāo)的任何動作都會報告給主機。也可以使用遙控模式,主機使用0xEB命令請求數(shù)據(jù),鼠標(biāo)進(jìn)行應(yīng)答。</p><p> 主機和鼠標(biāo)
31、之間的通信命令有很多。主機向鼠標(biāo)發(fā)出的每一個字節(jié)和命令鼠標(biāo)都必須采用0xFA應(yīng)答,但是重傳命令0xFE除外。</p><p> 2.2.2 PS/2協(xié)議數(shù)據(jù)包格式</p><p> PS/2鼠標(biāo)在工作過程中,會及時把它的狀態(tài)數(shù)據(jù)發(fā)送給主機?發(fā)送的數(shù)據(jù)包格式[6]如圖2-4所示?</p><p> 圖2-4 數(shù)據(jù)包格式</p><p>
32、 Byte1中的Bit0?Bit1?Bit2分別表示左?右?中鍵的狀態(tài),狀態(tài)值0表示釋放,1表示按下?Byte2和Byte3分別表示X軸和Y軸方向的移動計量值,是二進(jìn)制補碼值?Byte4的低四位表示滾輪的移動計量值,也是二進(jìn)制補碼值,高四位作為擴展符號位?這種數(shù)據(jù)包由帶滾輪的三鍵三維鼠標(biāo)產(chǎn)生?若是不帶滾輪的三鍵鼠標(biāo),產(chǎn)生的數(shù)據(jù)包沒有Byte4 其余的相同?</p><p> 標(biāo)準(zhǔn)的PS/2協(xié)議數(shù)據(jù)格式為3字節(jié)
33、,如圖2-5所示。鼠標(biāo)的按鍵和滾動信息都采用這種格式匯報給主機。</p><p> 圖2-5 標(biāo)準(zhǔn)的PS/2協(xié)議數(shù)據(jù)格式</p><p> 標(biāo)準(zhǔn)鼠標(biāo)指支持左右移動和三個鼠標(biāo)鍵。微軟智能鼠標(biāo)支持滾輪。當(dāng)主機向鼠標(biāo)發(fā)送魔幻序列0xF3 0xC8 0xF3 0x64 0xF3 0x50后,鼠標(biāo)進(jìn)入滾輪模式。此時讀取鼠標(biāo)ID返回0x03。此后通信過程使用如圖2-6所示的4字節(jié)協(xié)議。</p
34、><p> 圖2-6字節(jié)的PS/2協(xié)議數(shù)據(jù)格式</p><p> 其中ZH和ZL都采用二進(jìn)制補碼表示,范圍為-8~7。</p><p> 此外,鼠標(biāo)還有只能IE鼠標(biāo)和臺風(fēng)(Typhoon)鼠標(biāo),通信協(xié)議與上述還有不同。目前最常見的鼠標(biāo)就是這兩種。</p><p> 3 ZigBee無線傳輸協(xié)議</p><p>
35、 隨著現(xiàn)代社會對通信技術(shù)的要求日益提高,由于短距離無線通信技術(shù)有廣闊的應(yīng)用前景和巨大的市場空間因此得到了許多廠商的重視,取得很大的發(fā)展。各種短距離無線通信技術(shù)各有自己的特點和應(yīng)用領(lǐng)域,下面對其中幾種常用的短距離無線通信技術(shù)做簡單介紹,并比較其特點。</p><p><b> 1、紅外技術(shù)</b></p><p> 紅外線[7]是波長在750nm-1mm之間的電磁波
36、,它的頻率高于微波而低于可見光,是一種人眼看不到的光線。由于紅外線波長較短,對障礙物衍射能力差,所以更適合應(yīng)用在需要短距離無線通信的場合,進(jìn)行點對點的直線數(shù)據(jù)傳輸。紅外數(shù)據(jù)協(xié)會將紅外數(shù)據(jù)通信所采用的光波波長范圍限定在850nm-900nm之內(nèi)。紅外數(shù)據(jù)通信的通信距離通常最大不超過10m,通信角度不能超過30°,傳輸速率可以達(dá)到16Mbps。該技術(shù)具有工作原理簡單、功耗小、成本低的特點,但由于其傳輸距離有限、傳輸方向性強等缺點,
37、在應(yīng)用范圍上受到了一定程度的限制。</p><p> 2、家庭無線電射頻技術(shù)(HomeRadioFrequency)</p><p> 家庭無線電射頻[8] 無線聯(lián)網(wǎng)標(biāo)準(zhǔn)是由西門子、摩托羅拉等技術(shù)巨頭組建的HomeRF工作組負(fù)責(zé)研發(fā)的,旨在為家庭無線聯(lián)網(wǎng)提供一種組網(wǎng)方便、易用、成本低廉的通用性標(biāo)準(zhǔn),是IEEE 802.11與DECT的結(jié)合,使用開發(fā)的2.4GHz頻段,能夠有效降低話音和
38、數(shù)據(jù)傳輸成本,可提供1-2Mbps的數(shù)據(jù)傳輸,最高可達(dá)10Mbps。</p><p> 3、射頻識別技術(shù)(RadioFrequencyIdentificationDevices)</p><p> 無線射頻[9]識別是一種非接觸式的自動識別技術(shù),它通過射頻信號自動識別目標(biāo)對象并獲取相關(guān)數(shù)據(jù)。其突出特點主要有識別速度快,適應(yīng)高速移動物體,能穿透布、皮、木等材料,且閱讀距離遠(yuǎn),可全天候工作
39、。目前主要應(yīng)用在電子標(biāo)簽領(lǐng)域。</p><p> 4、藍(lán)牙技術(shù)(Bluetooth)</p><p> 藍(lán)牙技術(shù)[10]于1998年5月由愛立信、諾基亞、東芝、IBM和英特爾公司在聯(lián)合開展短程無線通信技術(shù)的標(biāo)準(zhǔn)化活動時提出的,旨在提供一種短距離、低成本的無線傳輸應(yīng)用技術(shù)。利用藍(lán)牙技術(shù),能夠有效地簡化掌上電腦、筆記本電腦和移動電話等移動通信終端設(shè)備之間的通信,也能夠成功地簡化以上這些設(shè)備
40、與Intemet之間的通信,從而使數(shù)據(jù)傳輸更加簡便迅速高效。藍(lán)牙工作在2.4GH ISM頻段,采用1600次/秒的擴頻調(diào)頻技術(shù),通信距離為10-100m,傳輸速率從720kbps發(fā)展到3Mbps,而且在傳輸數(shù)據(jù)信息的同時,還可以傳輸一路話音信息。藍(lán)牙技術(shù)的應(yīng)用領(lǐng)域越來越廣泛,從工業(yè)自動控制、家庭自動化到PDA、手機和電腦外設(shè)等,無處不在。</p><p> 上面簡單介紹了幾種常用的短距離無線通信技術(shù)特征,接下來
41、將這幾種短距離無線通信技術(shù)與ZigBee通信技術(shù)[11]做簡單的性能比較。由3-1可以看出,各種短距離無線通信技術(shù)各有特點,適用于不同的場合。</p><p> 表3-1幾種短距離無線通信技術(shù)的比較</p><p> 由上表比較可知,ZigBee無線傳輸更適合本設(shè)計,所以本設(shè)計的無線傳輸部分采用ZigBee無線傳輸技術(shù)。</p><p> 3.1 ZigBee
42、無線通信技術(shù)概述</p><p> ZigBee技術(shù)[12]是一種近距離、低復(fù)雜度、低功耗、低數(shù)據(jù)速率、低成本的雙向無線通信技術(shù),適用于自動控制和遠(yuǎn)程控制領(lǐng)域,可以嵌入到各種設(shè)備中。</p><p> ZigBee是一組基于IEEE802.15.4無線標(biāo)準(zhǔn)研制開發(fā)的,有關(guān)組網(wǎng)、安全和應(yīng)用軟件方面的技術(shù)標(biāo)準(zhǔn)。ZigBee設(shè)備應(yīng)該包括IEEE8o2.l5.4(該標(biāo)準(zhǔn)定義了RF射頻以及與相鄰
43、設(shè)備之間的通信)的PHY和MAC層,以及ZigBee堆棧層、網(wǎng)絡(luò)層(NWK)、應(yīng)用層和安全服務(wù)提供層。ZigBee聯(lián)盟對網(wǎng)絡(luò)層協(xié)議和API進(jìn)行了標(biāo)準(zhǔn)化,完全協(xié)議用于一次可直接連接到一個設(shè)備的基本節(jié)點的4K字節(jié)或作為協(xié)調(diào)器的32K字節(jié)。每個協(xié)調(diào)器可連接255個節(jié)點,幾個協(xié)調(diào)器即可形成一個網(wǎng)絡(luò),對路由傳輸?shù)臄?shù)目沒有限制。ZigBee聯(lián)盟還開發(fā)了安全層,以保證不會意外泄漏其標(biāo)識,網(wǎng)絡(luò)的遠(yuǎn)距離傳輸不會被其它節(jié)點獲得。</p>&l
44、t;p> ZigBee技術(shù)的主要特點包括:</p><p> 低速率:只有10k字節(jié)/秒到250k字節(jié)/秒,滿足低速率傳輸數(shù)據(jù)的應(yīng)用需求;</p><p> 低功耗:在低耗電待機模式下,兩節(jié)普通5號干電池可使用6個月到2年;</p><p> 低成本:ZigBee數(shù)據(jù)傳輸速率低,協(xié)議簡單,所以大大降低了成本,且ZigBee協(xié)議免收專利費;大網(wǎng)絡(luò)容量:每
45、個ZigBee網(wǎng)絡(luò)最多可支持255個設(shè)備;</p><p> 短時延:通常時延都在15毫秒至30毫秒之間;</p><p> 高安全:ZigBee提供了三級安全模式,包括無安全設(shè)定、使用接入控制清單(ACL)防止非法獲取數(shù)據(jù)以及采用高級加密標(biāo)準(zhǔn)(AEs128)的對稱密碼,以靈活確定其安全屬性;</p><p> 近距離:有效覆蓋范圍10-75米之間,具體依據(jù)實
46、際發(fā)射功率的大小和各種不同的應(yīng)用模式而定,基本能夠覆蓋普通的家庭或辦公室環(huán)境;</p><p> 工作頻段靈活:使用的頻段分別為2.4GHz、868MHz(歐洲)及91SMHz(美國),均為免執(zhí)照頻段。</p><p> 3.2 ZigBee協(xié)議結(jié)構(gòu)</p><p> ZigBee結(jié)構(gòu)采用分層技術(shù),每一層負(fù)責(zé)完成所規(guī)定的任務(wù)并且向上層提供服務(wù)。完整的ZigBe
47、e協(xié)議套件由高層應(yīng)用規(guī)范、應(yīng)用會聚層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層和物理層組成。網(wǎng)絡(luò)層以上協(xié)議由ZigBee聯(lián)盟制定,IEEE負(fù)責(zé)物理層和鏈路層標(biāo)準(zhǔn)。ZigBee協(xié)議棧的結(jié)構(gòu)見圖3-2所示。</p><p> 圖3-2 ZigBee協(xié)議棧</p><p> 物理層:使用IEEE802.15.4協(xié)議,負(fù)責(zé)啟動和關(guān)閉無線收發(fā)器,進(jìn)行能量檢測,鏈路質(zhì)量檢測,信道選擇,清除信道評估,以及通過物理媒體對
48、數(shù)據(jù)包進(jìn)行發(fā)送和接收。</p><p> MAC層:使用IEEE802.15.4協(xié)議,負(fù)責(zé)設(shè)備之間無線數(shù)據(jù)鏈路的建立、維護以及結(jié)束,確認(rèn)模式的數(shù)據(jù)傳送和接收,可選時隙,實現(xiàn)低延遲傳輸,支持各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),網(wǎng)絡(luò)中每個設(shè)備為16位地址尋址,通過物理層數(shù)據(jù)服務(wù)發(fā)送和接收MAC層協(xié)議數(shù)據(jù)。</p><p> 網(wǎng)絡(luò)層:負(fù)責(zé)配置一個新的設(shè)備,初始化網(wǎng)絡(luò),連接和斷開網(wǎng)絡(luò),路由發(fā)現(xiàn),鄰居設(shè)備發(fā)現(xiàn),接
49、收控制生成網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元,指定拓?fù)鋫鬏斅酚伞?lt;/p><p> 應(yīng)用層:應(yīng)用層維持器件的功能屬性,發(fā)現(xiàn)該器件工作空間中其他器件的工作,根據(jù)服務(wù)和需求使多個器件之間進(jìn)行通信,根據(jù)具體應(yīng)用由用戶開發(fā)。ZigBee協(xié)議?;跇?biāo)準(zhǔn)的七層開放式系統(tǒng)互聯(lián)(051)模型,但僅對涉及ZigBee的層予以定義。IEEE802.15.4定義了物理層(PHY)和介質(zhì)訪問控制層(MAC),ZigBee聯(lián)盟定義了網(wǎng)絡(luò)層和應(yīng)用層(AP
50、I),其中應(yīng)用層的框架包括了應(yīng)用支持(APS),ZigBee設(shè)備對象(ZDO)和由制造商制訂的應(yīng)用對象。</p><p> 4 系統(tǒng)總體方案設(shè)計</p><p> 本文設(shè)計一種基于ZigBee無線傳輸?shù)臒o線鼠標(biāo),共由兩部分組成:鼠標(biāo)發(fā)送端和鼠標(biāo)接收端。鼠標(biāo)發(fā)送端包括一個PS/2鼠標(biāo)[13]和ZigBee轉(zhuǎn)串口模塊,鼠標(biāo)接收端是一個ZigBee USB模塊。接收端通過USB與主機連接,進(jìn)
51、行通信。</p><p> 選擇鼠標(biāo)發(fā)送端硬件結(jié)構(gòu)時,由于PS/2鼠標(biāo)是市場上比較常見的一種鼠標(biāo),其采用的協(xié)議比較簡單,只需要對其進(jìn)行初始化就可以正常使用,因此決定采用PS/2鼠標(biāo)作為發(fā)送端。利用51類型單片機、Keil軟件對PS/2鼠標(biāo)進(jìn)行解碼。由于無法用仿真軟件進(jìn)行仿真,所以用LCD1602顯示鼠標(biāo)的坐標(biāo)和左右鍵信息。解碼后將鼠標(biāo)信息通過ZigBee無線發(fā)送模塊CC2530發(fā)送到ZigBee無線接收模塊CC
52、2531,傳輸給電腦,完成鼠標(biāo)與電腦的通信,實現(xiàn)無線鼠標(biāo)的設(shè)計。</p><p> 本設(shè)計的硬件實現(xiàn)框圖如圖4-1所示。</p><p> VCC +5V 控制線</p><p> CLK INT 數(shù)據(jù)線</p><p> DATA I/O
53、 I/O輸出</p><p> GND GND 3.3V供電</p><p><b> 基于ZigBee</b></p><p><b> 無線傳輸</b></p><p> 接收信息,實現(xiàn)鼠標(biāo)操作</p><p>
54、圖4-1 無線鼠標(biāo)的實現(xiàn)框圖</p><p> 本設(shè)計的軟件實現(xiàn)原理框架如圖4-2所示。</p><p> 圖4-2 軟件實現(xiàn)原理框圖</p><p> 5 PS/2鼠標(biāo)硬件設(shè)計與軟件解碼</p><p> 5.1 PS/2鼠標(biāo)硬件設(shè)計</p><p> 圖5-1顯示了鼠標(biāo)與單片機接口的連接[14]原理
55、圖,鼠標(biāo)1接口為數(shù)據(jù)線,接單片機P3.7口;鼠標(biāo)5接口為時鐘線,接單片機的P3.3口。</p><p> 圖5-1 鼠標(biāo)與單片機接口的連接圖</p><p> 解碼后由LCD1602顯示鼠標(biāo)坐標(biāo)和按鍵信息,無誤后發(fā)送給CC2530模塊進(jìn)行傳輸。LCD1602顯示的硬件設(shè)計如圖5-2所示。</p><p> 圖5-2 LCD1602與單片機的連接圖</
56、p><p> ZigBeeCC2530模塊發(fā)射端管腳說明:</p><p> 端口1: VCC_3.3V</p><p> 端口2:無效,可浮空,不連接</p><p> 端口3:無效,可浮空,不連接</p><p> 端口4: GND_0V</p><p> 端口5: 無效,可浮空,不
57、連接</p><p> 端口6: 無效,可浮空,不連接</p><p> 端口7: 接P3.0,鼠標(biāo)左鍵,低電平有效</p><p> 端口8: 接P3.1,鼠標(biāo)右鍵,低電平有效</p><p> 端口9: 接P1.0,光標(biāo)左移,低電平有效</p><p> 端口10:接P1.1,光標(biāo)右移,低電平有效<
58、/p><p> 端口11:接P1.2,光標(biāo)上移,低電平有效</p><p> 端口12:接P1.3,光標(biāo)下移,低電平有效</p><p> 無線傳輸CC2530模塊為3.3V供電,ZigBee無線傳輸CC2530模塊與單片機連接方式如圖5-3所示。</p><p> 圖5-3 CC2530模塊與單片機連接圖</p><
59、;p> 在實際電路設(shè)計中51單片機采用5V供電,在給CC2530供電時在電源正極串聯(lián)兩個1N4007二極管,實現(xiàn)1.4V左右的壓降。整體電路設(shè)計見附錄A。</p><p> 將USB端插入電腦USB接口,自動識別驅(qū)動USB端接入電腦后紅燈亮,指示工作正常,并等待鼠標(biāo)端發(fā)射,接收到信號后紅燈將變?yōu)樾盘枱簦撕?,有輸入時,紅燈會點亮,無輸入則關(guān)閉。目前支持左鍵、右鍵、左右上下光標(biāo)移動。模塊中內(nèi)置按鍵濾波函數(shù)
60、。</p><p> 5.2 PS/2鼠標(biāo)軟件解碼程序設(shè)計</p><p> 鼠標(biāo)的發(fā)送端由兩個模塊組成,分別是ZigBee無線傳輸CC2530模塊和PS/2模塊。ZigBee模塊要尋找ZigBee網(wǎng)絡(luò)并嘗試連接接收端,處理鼠標(biāo)數(shù)據(jù)的采集和發(fā)送。</p><p> 5.2.1液晶顯示器功能簡介</p><p> LCD1602 主要技
61、術(shù)參數(shù): </p><p> 顯示容量:16×2 個字符 </p><p> 芯片工作電壓:4.5-5.5V </p><p> 工作電流:2.0mA (5.0V) </p><p> 模塊最佳工作電壓:5.0V </p><p> 字符尺寸:2.95×4.35(W×H) mm
62、 </p><p><b> 引腳功能說明:</b></p><p> LCD1602采用標(biāo)準(zhǔn)的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口說明如表5-1所示。</p><p> 表5-1 LCD1602各引腳接口說明</p><p> 第 1 腳:VSS 為地電源。 </p>&l
63、t;p> 第 2 腳:VDD 接 5V 正電源。 </p><p> 第 3 腳:VL 為液晶顯示器對比度調(diào)整端,接電源正極時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K 的電位器調(diào)整對比度。 </p><p> 第 4 腳:RS 為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。 </p><p>
64、 第 5 腳:R/W 為讀寫信號線,高電平時進(jìn)行讀操作,低電平時進(jìn)行寫操作。當(dāng) RS和 R/W 共同為低電平時可以寫入指令或者顯示地址,當(dāng) RS 為低電平 R/W 為高電平時可以讀忙信號,當(dāng) RS 為高電平 R/W 為低電平時可以寫入數(shù)據(jù)。 </p><p> 第 6 腳:E 端為使能端,當(dāng) E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。</p><p> 第 7~14 腳:D0~D
65、7 為 8 位雙向數(shù)據(jù)線。 </p><p> 第 15 腳:背光源正極。 </p><p> 第 16 腳:背光源負(fù)極。</p><p> 基本操作時序表如圖5-2所示。</p><p> 圖5-2基本操作時序圖</p><p> 設(shè)計中定義的部分LCD1602顯示的子程序[15]:</p>
66、<p> void LCD1602_Init(void); //液晶初始化</p><p> void LCD1602_write_cmd(unsigned char command); //寫命令</p><p> void LCD1602_write_data(unsigned char temp); //寫數(shù)據(jù)</p><
67、;p> void LCD1602_set_xy(unsigned char x, unsigned char y); //設(shè)置坐標(biāo)</p><p> void LCD1602_write_char(unsigned x,unsigned char y,unsigned char dat); //寫一個字符到第x行y列</p><p> void LCD1602_write_s
68、tring(unsigned char x,unsigned char y,unsigned char *s);//寫字符串到第x行y列</p><p> void LCD1602_Read_BF(void); //讀忙信號</p><p> void num(unsigned char x,unsigned char y,unsigned int n); //在第x行,
69、第y列顯示整型數(shù)字n</p><p> 5.2.2鼠標(biāo)發(fā)送端軟件結(jié)構(gòu)及原理</p><p> 鼠標(biāo)發(fā)送端軟件結(jié)構(gòu)原理圖如圖5-4所示。</p><p> 圖5-4 鼠標(biāo)發(fā)送端軟件結(jié)構(gòu)原理圖</p><p> 1.單片機對鼠標(biāo)的初始化如圖5-5所示。</p><p> void Init_mouse(void
70、)</p><p><b> {</b></p><p> TCON=0x00;</p><p><b> EA=1;</b></p><p> EX1=1;//允許外部中斷1</p><p> ET0=0x01;//允許全局中斷,允許定時器/計數(shù)器0溢出中斷
71、</p><p> PX1=1;//設(shè)置中斷優(yōu)先級</p><p><b> }</b></p><p><b> 圖5-5鼠標(biāo)初始化</b></p><p> 單片機發(fā)送命令到鼠標(biāo)子程序如圖5-6所示。</p><p><b> NO</b&g
72、t;</p><p><b> YES</b></p><p> 鼠標(biāo)將時鐘、數(shù) NO</p><p><b> 據(jù)線都釋放</b></p><p><b> YES</b></p><p> 圖5-6 單片機發(fā)送命令到鼠標(biāo)
73、子程序</p><p> 當(dāng)鼠標(biāo)檢測到單片機發(fā)送來的命令也即一個下拉低電平后,鼠標(biāo)關(guān)閉外部中斷并一次向單片機發(fā)送8個數(shù)據(jù)位。</p><p> for(i=0;i<=7;i++) </p><p><b> { </b></p><p> while(mouse_CLK==1); //等待設(shè)備拉低時鐘
74、線</p><p> mouse_SDA=(dat>>i)&0x01;//發(fā)送數(shù)據(jù)位</p><p> while(mouse_CLK==0); //等待設(shè)備釋放時鐘線</p><p><b> }</b></p><p> 此8位為一個BIT,然后鼠標(biāo)開始發(fā)送剩下的3位也即校驗位、停止位
75、、應(yīng)答位。完成數(shù)據(jù)的一次傳送后鼠標(biāo)隨機打開外部中斷(EX1=1)等待單片機的下一個命令。</p><p> 3.單片機從鼠標(biāo)讀取數(shù)據(jù)子程序</p><p> 鼠標(biāo)每發(fā)送一次信息,單片機會截取其中的8位有用的數(shù)據(jù)位合成一個字節(jié),當(dāng)收集了4個字節(jié)后,單片機開始對這4個字節(jié)進(jìn)行打包處理,流程圖如圖5-7所示。</p><p><b> YES</b&
76、gt;</p><p><b> NO</b></p><p><b> YES</b></p><p> NO YES</p><p> NO YES</p><p> NO
77、 </p><p><b> YES</b></p><p><b> NO </b></p><p> 圖5-7 單片機從鼠標(biāo)讀取數(shù)據(jù)子程序流程圖</p><p> 6 無線鼠標(biāo)系統(tǒng)調(diào)試</p><p> 6.1系統(tǒng)調(diào)試中遇到的問題及解決方法&
78、lt;/p><p> 在系統(tǒng)開發(fā)時,由于使用了多種協(xié)議和硬件設(shè)備,所以在調(diào)試中出現(xiàn)了很多問題,經(jīng)過反復(fù)試驗后,終于得到解決。調(diào)試中出現(xiàn)的主要問題如下:</p><p> 1 PS/2鼠標(biāo)的初始化</p><p> 在按照PS/2協(xié)議規(guī)定的時序編寫代碼后,發(fā)現(xiàn)無法將數(shù)據(jù)寫入鼠標(biāo),檢查時序及代碼沒有發(fā)現(xiàn)任何問題,經(jīng)過反復(fù)測試后發(fā)現(xiàn),在主機對鼠標(biāo)發(fā)送一個字節(jié)的命令后,應(yīng)
79、該將鼠標(biāo)的應(yīng)答數(shù)據(jù)讀回,當(dāng)主機發(fā)送復(fù)位信號FF后,鼠標(biāo)返回3個字節(jié)的應(yīng)答:FA,表示收到主機的命令,然后返回AA,00,表示鼠標(biāo)正在自檢"然后,應(yīng)當(dāng)對鼠標(biāo)的分辨率、解析度、采樣頻率進(jìn)行設(shè)置,當(dāng)鼠標(biāo)在接收到這些命令時,返回FA做為應(yīng)答,在設(shè)置了鼠標(biāo)的基本信息后,最后發(fā)送使能信號F4激活鼠標(biāo)。</p><p><b> 鼠標(biāo)解碼后信息輸出</b></p><p&g
80、t; 在LCD1602顯示鼠標(biāo)信息無誤后進(jìn)行輸出,輸出后左右鍵和位移輸出之間影響,但坐標(biāo)顯示無誤。經(jīng)過反復(fù)檢查程序發(fā)現(xiàn):當(dāng)無位移變化,有按鍵信息時,程序會進(jìn)入外部中斷,對坐標(biāo)信息進(jìn)行分析。此時,雖然坐標(biāo)無變化但P1.1和P1.2瞬間會變成低電平,對輸出造成干擾。進(jìn)一步調(diào)試程序,當(dāng)位移不變時,用當(dāng)然位移量和初始位移坐標(biāo)進(jìn)行比較,無差別時不對P1口進(jìn)行操作。如:</p><p> if(move_x!=pre_m
81、ove_x)</p><p><b> {</b></p><p> pre_move_x=move_x;</p><p> left=0;right = 1;</p><p><b> }</b></p><p><b> else</b>&
82、lt;/p><p><b> {</b></p><p><b> left = 1;</b></p><p><b> }</b></p><p> 修正后,按鍵信息和位移信息不再有影響,可以正常輸出。</p><p> 6.2 實物設(shè)計演示及效
83、果圖</p><p> 將ZigBee無線接收模塊CC2531端插入電腦USB接口,自動識別驅(qū)動USB端接入電腦后紅燈亮,指示工作正常,并等待鼠標(biāo)端發(fā)射,接收到信號后紅燈將變?yōu)樾盘枱?,此后,有輸入時,紅燈會點亮,無輸入則關(guān)閉。圖6-1為ZigBee無線傳輸接收模塊CC2531,插入電腦USB接口后,指示燈紅燈亮,正常工作。</p><p> 圖6-1 ZigBee無線傳輸接收模塊CC2
84、531</p><p> ZigBee無線傳輸發(fā)送模塊CC2530為3.3V供電,最高電壓不能超過3.9V。在實際焊接中在5V電源正極串聯(lián)兩個1N4007,實現(xiàn)1.4V左右壓降,各端口連接方式如圖6-2所示。</p><p> 圖6-2 ZigBee無線傳輸發(fā)送模塊CC2530</p><p> 正確連接各模塊后,打開電源開關(guān),鼠標(biāo)不移動且不按鍵時,LCD16
85、02顯示坐標(biāo)初始值和nothing,顯示如圖6-3所示。</p><p> 圖6-3 鼠標(biāo)無信息時,初始狀態(tài)</p><p> 當(dāng)鼠標(biāo)移動無按鍵時,顯示如圖6-4所示。</p><p> 圖6-4顯示鼠標(biāo)位移信息</p><p> 當(dāng)鼠標(biāo)不移動按下左鍵時,顯示如圖6-5所示。</p><p> 圖6-5 鼠標(biāo)
86、按下左鍵</p><p> 當(dāng)鼠標(biāo)不移動按下右鍵時,顯示如圖6-6所示。</p><p> 圖6-6 鼠標(biāo)按下右鍵</p><p> 經(jīng)過調(diào)試,LCD1602能正確顯示鼠標(biāo)的位移信息和按鍵信息。當(dāng)鼠標(biāo)進(jìn)行操作時顯示穩(wěn)定,至此對鼠標(biāo)操作的仿真完成。</p><p><b> 結(jié) 論</b></p>
87、<p> 鼠標(biāo)是人們?nèi)粘J褂玫碾娔X外設(shè),其技術(shù)發(fā)展備受矚目。隨著工作場合和客戶需求的不斷變化,人們越來越需要一種具有無線功能和懸空遙控功能的鼠標(biāo),它不依賴與平面,沒有連線的距離限制。本設(shè)計通過研究一款以普通Ps/2鼠標(biāo),利用STC89C52RC對其解碼并通過LCD1602液晶顯示器顯示鼠標(biāo)的位移和按鍵信息,通過ZigBee無線模塊實現(xiàn)無線通信。經(jīng)過調(diào)試已經(jīng)可以穩(wěn)定地完成預(yù)設(shè)的功能,鼠標(biāo)不再受鼠標(biāo)線的限制,可以實現(xiàn)鼠標(biāo)對電
88、腦的操作,達(dá)到無線鼠標(biāo)的效果。</p><p> 由于個人能力和知識的局限,加上時間和條件的限制,設(shè)計還有一些不足之處有待改進(jìn):</p><p> (1).電路的設(shè)計有些混亂,焊接技術(shù)有待提高。</p><p> (2).本設(shè)計雖然用到了ZigBee無線傳輸技術(shù),但是是采用的ZigBee模塊,模塊內(nèi)部的固件自己無法修改,因此無法修改鼠標(biāo)的靈敏度和精確度。<
89、;/p><p><b> 致 謝</b></p><p> 本論文即將結(jié)束的時刻,我要向所有在我畢業(yè)設(shè)計中給我?guī)椭椭С值睦蠋熀屯瑢W(xué)們表示感謝。感謝他們在我學(xué)習(xí)和生活中的幫助和指導(dǎo)。</p><p> 本論文的工作是在**老師的悉心指導(dǎo)下完成的,老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和科學(xué)的工作方法給了我極大的幫助和影響。在此衷心感謝幾個月來老師對我的關(guān)心
90、和指導(dǎo)。</p><p> 在進(jìn)行畢業(yè)設(shè)計及撰寫論文期間,宋飛同學(xué)對我論文中的鼠標(biāo)解碼輸出研究工作給予了熱情幫助,在此向他表達(dá)我的感激之情。</p><p><b> 參考文獻(xiàn)</b></p><p> [1] 陳霞玲,沈驊,聶利敏.無線遙控鼠標(biāo)的設(shè)計[M].武漢:中國地質(zhì)大學(xué),2006.</p><p> [2
91、] 鄭金存,邵平,周善東.多媒體教室的長距離無線鼠標(biāo)的設(shè)計與實現(xiàn)[J].廣西物理,2006,25.</p><p> [3] 于向華,鼠標(biāo)的進(jìn)化歷程[N],北京電子報,2006-09-23(5).</p><p> [4] TP8452 PS/2 MOUSE CONTROLLER[DB/OL].http//www.topro.com.tw,2001</p><p&g
92、t; [5] 白智濤,趙莉,姜紅梅. 基于PS/2接口的無線鼠標(biāo)[J].無線電工程,2000, 30</p><p> [6] 王朱勞.基于單片機AT89C2051光電鼠標(biāo)位移檢測系統(tǒng)的研究[D].陜西:陜西科技大學(xué),2005.</p><p> [7] Tim Moors.Marvyn Mei.Agus Salim.Using Short-range Communication t
93、o Control Mobile Device Functionality[J].Pers Ubiquit Comput,2008,(12):11-18.</p><p> [8] 陳邦媛編著,“射頻通信電路”,科學(xué)出版社ISBN7.03—010761—6,2002.</p><p> [9] 池保勇,余志平,射頻集成電路分析與設(shè)計.清華大學(xué)出版社,2006.
94、60;</p><p> [10] 周琛暉.藍(lán)牙技術(shù)及應(yīng)用簡析[J].中國新通信,2008.</p><p> [11] Zigbee Alliance.ZigBee Specification[R].ZigBe Alliance.</p><p> [12] 李文仲,段朝玉等.ZigBee無線網(wǎng)絡(luò)技術(shù)入門與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社,2007.
95、</p><p> [13] 邵平,楊路明,周善東.一種無線遙控鼠標(biāo)編譯碼電路的設(shè)計[N].云南大學(xué)報,2005-02-13(3).</p><p> [14] 李湘云.基于AT89C51應(yīng)用系統(tǒng)的串行通信設(shè)計[Z].現(xiàn)代電子技術(shù)</p><p> [15] 徐愛鈞.單片機高級語言C51 Windows 環(huán)境編程與應(yīng)用[ M].北京:電子工業(yè)出版,2001 .
96、</p><p><b> 附 錄</b></p><p><b> 附錄A</b></p><p><b> 電路原理圖</b></p><p><b> 附錄B</b></p><p><b> 部分程序代
97、碼如下:</b></p><p> /**********************鼠標(biāo)主函數(shù)******************/ </p><p> #include<reg51.h></p><p> #include"mouse.h"</p
98、><p> #include"LCD1602.h"</p><p> void main()</p><p><b> {</b></p><p> LCD1602_Init();</p><p> Init_mouse();</p><p>
99、mouse_send_data(0xf4);//向鼠標(biāo)發(fā)送0xF4命令發(fā)其開始工作</p><p> EX1=0;//關(guān)掉外部中斷以避開鼠標(biāo)發(fā)回的應(yīng)答</p><p> delayms(100);</p><p><b> EX1=1;</b></p><p><b> //重開外部中斷&
100、lt;/b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> P1=0xff;</b></p><p> LCD1602_write_cmd(0x01);//清屏 </p>
101、<p> LCD1602_write_string(0,0,"x:");</p><p> num(0,2,move_x);//x坐標(biāo)值</p><p> LCD1602_write_string(0,8,"y:");</p><p> num(0,10,move_y);//y坐標(biāo)值<
102、/p><p> if(mouse_data[0]&0x01)//如果點下左鍵</p><p><b> {</b></p><p> LCD1602_write_string(1,0,"left");</p><p> mosleft=0;</p>&
103、lt;p><b> }</b></p><p> else mosleft = 1;</p><p> if(mouse_data[0]&0x02)//如果點下右鍵</p><p><b> {</b></p><p> LCD1602_write_strin
104、g(1,0,"right");</p><p> mosright=0; </p><p><b> }</b></p><p> else mosright = 1;</p><p> if(mouse_data[0]&0x04) //如果點下中鍵</p>&l
105、t;p><b> {</b></p><p> LCD1602_write_string(1,0,"middle"); </p><p><b> }</b></p><p> if((mouse_data[0]&0x0f)==0x08)</p><p&
106、gt;<b> {</b></p><p> LCD1602_write_string(1,0,"nothing");</p><p> mosright=1;mosleft=1;</p><p><b> }</b></p><p> delayms(5
107、0);</p><p><b> }</b></p><p><b> }</b></p><p> /**********************鼠標(biāo)驅(qū)動頭文件******************/</p><p> #include"delay.h"</p&
108、gt;<p> #include "lcd1602.h"</p><p> #ifndef __MOUSE_H__</p><p> #define __MOUSE_H__</p><p> sbit mouse_SDA=P3^6;//數(shù)據(jù)線P3_6</p><p> sbit mouse_CLK
109、=P3^3;//時鐘線P3_3</p><p> sbit up=P1^0;</p><p> sbit down=P1^1;</p><p> sbit left=P1^2;</p><p> sbit right=P1^3;</p><p> sbit mosleft=P3^0;</p&
110、gt;<p> sbit mosright=P3^1;</p><p> unsigned char bdata mouse_byte;//接收字節(jié)</p><p> sbit mouse_byte_bit0=mouse_byte^0;//mouse_byte第0位</p><p> sbit mouse_byte_bit1=mouse
111、_byte^1;//mouse_byte第1位</p><p> sbit mouse_byte_bit2=mouse_byte^2;//mouse_byte第2位</p><p> sbit mouse_byte_bit3=mouse_byte^3;//mouse_byte第3位</p><p> sbit mouse_byte_bit4=mouse_
112、byte^4;//mouse_byte第4位</p><p> sbit mouse_byte_bit5=mouse_byte^5;//mouse_byte第5位</p><p> sbit mouse_byte_bit6=mouse_byte^6;//mouse_byte第6位</p><p> sbit mouse_byte_bit7=mouse_b
113、yte^7;//mouse_byte第7位</p><p> unsigned char bdata mouse_fuction;//功能信息字節(jié)</p><p> unsigned char mouse_buffer[11];//接收位數(shù)據(jù)緩沖區(qū)</p><p> unsigned char mouse_buffer_bit=0;//mouse_b
114、uffer[mouse_buffer_bit]</p><p> unsigned char mouse_data[3];//接收鼠標(biāo)數(shù)據(jù)緩沖區(qū),分別存放:功能信息字節(jié),x位移量,y位移量</p><p> unsigned char mouse_data_bit=0;//mouse_data[mouse_data_bit]</p><p> unsi
115、gned int move_x=10000;//存放橫坐標(biāo)</p><p> unsigned int move_y=10000;//存放縱坐標(biāo)</p><p> unsigned int pre_move_x=10000;//存放橫坐標(biāo)</p><p> unsigned int pre_move_y=10000;//存放縱坐標(biāo)<
116、;/p><p> void Init_mouse(void)</p><p><b> {</b></p><p> TCON=0x00;</p><p><b> EA=1;</b></p><p> EX1=1;//允許外部中斷1</p><
117、p> ET0=0x01;//允許全局中斷,允許定時器/計數(shù)器0溢出中斷</p><p> PX1=1;//設(shè)置中斷優(yōu)先級</p><p><b> }</b></p><p> /*********</p><p><b> 發(fā)送數(shù)據(jù)</b></p><p&
118、gt; *********/</p><p> void mouse_send_data(unsigned char dat)</p><p><b> {</b></p><p> unsigned char i;</p><p> EX1=0; /*關(guān)閉外部中斷1*/</p><
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無線鼠標(biāo)的設(shè)計與實現(xiàn)
- 無線鼠標(biāo)的設(shè)計與實現(xiàn)
- 畢業(yè)論文---無線鼠標(biāo)設(shè)計
- 無線鼠標(biāo)畢業(yè)論文
- 多功能無線鼠標(biāo)的研究與設(shè)計.pdf
- 鼠標(biāo)設(shè)計類畢業(yè)論文
- 智能保健鼠標(biāo)的設(shè)計與實現(xiàn).pdf
- 無線加速度手套式鼠標(biāo)系統(tǒng)設(shè)計畢業(yè)論文
- 鼠標(biāo)鍵盤錄制回放研究與實現(xiàn)-畢業(yè)論文
- 無線鼠標(biāo)設(shè)計論文資料
- 物理學(xué)畢業(yè)論文光電鼠標(biāo)的光學(xué)原理
- 畢業(yè)論文-無線局域網(wǎng)的設(shè)計與實現(xiàn)
- 無線數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 無線數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 藍(lán)牙無線鍵盤鼠標(biāo)的研制.pdf
- 機械設(shè)計畢業(yè)論文鼠標(biāo)的緩沖包裝設(shè)計及有限元分析
- 畢業(yè)論文家庭無線局域網(wǎng)的設(shè)計與實現(xiàn)
- 利用Android手機仿真PC鼠標(biāo)的設(shè)計與實現(xiàn).pdf
- 鼠標(biāo)上蓋制品畢業(yè)論文
- 畢業(yè)論文設(shè)計家庭無線局域網(wǎng)的設(shè)計與實現(xiàn)
評論
0/150
提交評論