80C196單片機鼠標(biāo)接口程序設(shè)計實例_第1頁
80C196單片機鼠標(biāo)接口程序設(shè)計實例_第2頁
免費預(yù)覽已結(jié)束,剩余9頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、80C196單片機鼠標(biāo)接口程序設(shè)計實例摘要通過對鼠標(biāo)底層通信原理及協(xié)議的深入分析,探討了鼠標(biāo)在80196單片機系統(tǒng)中的應(yīng)用價值與可行性, 并介紹了鼠標(biāo)接口軟件設(shè)計的 原理及方法,給出了80196單片機與鼠標(biāo)的具體接口程序。關(guān)鍵詞鼠標(biāo)接口技術(shù)軟件設(shè)計接口程序80196單片機由于低格低、處理能力強,在信號分析、數(shù)據(jù)采集等很 多領(lǐng)域得到了廣泛應(yīng)用,在目標(biāo)系統(tǒng)中使用各種規(guī)格的液晶或顯示器也越 來越多。因此在這樣的單片機系統(tǒng)中引入鼠標(biāo),將會方便操作,提高工作效率。鼠標(biāo)內(nèi)核本質(zhì)上是一個二維的角度或位移信號檢測裝置,耗電極少、可靠性高、價格低廉,可能在許多場合發(fā)揮作用。鼠標(biāo)與主機之間通過-232標(biāo)準(zhǔn)串行接口

2、進行通信,信息傳送是單方向、無條件、無應(yīng)答連續(xù)進行的。此外80196的不直接支持鼠標(biāo)的接口協(xié)議,在程序設(shè)計中必須予以注意、。本文主要探討80196單片機與兼容鼠標(biāo)接口程序的設(shè)計實現(xiàn)。1鼠標(biāo)信號發(fā)送協(xié)議與過程鼠標(biāo)是一個功能高度集中的小型機電一體化系統(tǒng)。它首先將直線移轉(zhuǎn)換成角度位移,再轉(zhuǎn)變成數(shù)字量,然后與按鈕狀態(tài) 統(tǒng)一編碼,通過-232串口發(fā)出。鼠標(biāo)工作所需功率從-232串行接口的控制線上竊取2、接口鼠標(biāo)除外。 當(dāng)鼠標(biāo)被拖動超過一個最小距離或某一按鈕被按下時,它按照規(guī)定的 協(xié)議將移動距離和按鈕狀態(tài)通過一次或幾次信息發(fā)送到機;主機上的鼠標(biāo) 驅(qū)動程序?qū)⑿畔⒆儞Q成鼠標(biāo)位置和按鈕狀態(tài)供其它程序模塊調(diào)用。每

3、發(fā)生一次移動或按鈕狀態(tài)變化,鼠標(biāo)向上發(fā)送一次信息。 通常一般鼠標(biāo)的分辨率為400。理論上即沿著某一方向每拖動一英寸一般速度, 會產(chǎn)生400次信息發(fā) 送過程。,如果拖動較快,則信息發(fā)送次數(shù)送減少,但所反映的總的移動距離 仍然是400步。各種串行接口鼠標(biāo)在物理層普遍采用標(biāo)準(zhǔn)的串行通信協(xié)議,波特率為1200。幀格式為7個數(shù)據(jù)位、2個停止位,無奇偶校驗位。 上層協(xié)議則在此基礎(chǔ)上以十六進制數(shù)形式直接發(fā)更新鼠標(biāo)信息,包括 初始化報告移動方向、距離、按鈕狀態(tài)。其一般形式如表1所示。表1鼠標(biāo)信息發(fā)送格式序號名稱字串形式長度意義說明1初始化報告41字節(jié)聲明初始化結(jié) 束加電時發(fā)送一次2移動、按鈕1、2、33字節(jié)反

4、映按鈕狀態(tài)、移動方向 和距離移動或按鈕操作時發(fā)送上述1、2、3三個參數(shù)說明1_76固定值01;10=11本次鼠標(biāo)移動包含左右移動分量;32=11本次 鼠標(biāo)移動包含上下移動分量;4=1目前鼠標(biāo)右鍵呈按下狀態(tài);5=1目前鼠 標(biāo)左鍵呈按下狀態(tài)45=00則鍵呈釋放狀態(tài)。2_76固定值00;其余六位表示一個有符號二進制數(shù),反映左右移動 量,大于0為向右移動,小于0為向左移動。3_76固定值00;其余六位表示一個有符號二進制數(shù),反映上下移動 量,大于0為向下移動,小于0為向上移動。例如60231=6,2=02,3=3反饋出鼠標(biāo)向右移動了2個單位,向上移動 了6個單位,目前左鍵按下。2鼠標(biāo)接口程序設(shè)計801

5、96系列單片機內(nèi)設(shè)-232收發(fā)器,但需要配置接口芯片實現(xiàn)電平轉(zhuǎn)換??紤]到鼠標(biāo)從串口竊取功率,接口芯片必須具有一定的驅(qū)動能力,而 不能要用簡單的準(zhǔn)-232電平轉(zhuǎn)換器。這里采用232作為接口芯片。圖1中左側(cè)為80196單片機,20、21通過232形成滿足鼠標(biāo)要求的串 行接口,包括生成標(biāo)準(zhǔn)-232電平和提供電源供應(yīng)。圖1中最右邊為9針或24針標(biāo)準(zhǔn)串行接插件。 由于鼠標(biāo)的電源供應(yīng)采用功率竊取方案,由提供,這里為加限流電阻 防止對鼠標(biāo)造成傷害。由232垢信號發(fā)送端提供, 通過80196的20控制232的10腳對應(yīng)的 輸出腳為7腳電平高低以改變7腳電位,使鼠標(biāo)可以接收來自的控制命令,以實現(xiàn)鼠標(biāo)安裝與否的檢

6、測232的11腳對應(yīng)的輸入腳為14腳設(shè)備高電平以保證14腳電位為負(fù)-232電位,滿足鼠標(biāo)發(fā)送信號時的電平要求。從鏈路層看,80196串行接口的四種工作方式均不滿足鼠標(biāo)的幀格式 要求;但其工作方式11位起始位、8位數(shù)據(jù)位、1位停止位的總傳送位數(shù) 與鼠標(biāo)1位起始位、7個數(shù)據(jù)位、2個停止位相同,均為10位。接收過程中80196收到7個數(shù)據(jù)位后, 將2個停止位中的第一個作為 數(shù)據(jù)位裝入接收緩沖器的最高位,由于停止位在物理層是高電平,作為數(shù) 據(jù)被接收后相當(dāng)于邏輯0;剩下的第二個停止位給好為80196提供了有效 的停止位。利用80196的工作方式1完全可以保證正確接收鼠標(biāo)信息。單片機起動后,通過鼠標(biāo)驅(qū)動模

7、塊對鼠標(biāo)進行初始化,即通過20使 電平翻轉(zhuǎn)一次而令鼠標(biāo)發(fā)送初始化報告,以確認(rèn)鼠標(biāo)是否安裝。之后,鼠標(biāo)即可隨著拖動或按鈕操作向單片機發(fā)送動作信息,經(jīng)接口 模塊釋放即可反應(yīng)鼠標(biāo)位置和按鈕狀態(tài)。鼠標(biāo)接口模塊主要包括按鈕狀態(tài)識別和位置識別兩個部分。80196將根據(jù)接收到的鼠標(biāo)信息不斷刷新鼠標(biāo)信息緩沖區(qū)。 由于鼠標(biāo)事件間隔不確定,采用掃描方式但會浪費時間,還可能因來 不及處理而丟失信息。有效的處理方法是采用中斷方式接收,應(yīng)用模塊通過軟件接口獲得鼠 標(biāo)信息。完整的鼠標(biāo)接口程序流程圖如圖2所示0在初始化階段,首先檢查鼠標(biāo)是否存在,根據(jù)結(jié)果設(shè)置標(biāo)志位,以備 以后取鼠標(biāo)信息時判斷用; 根據(jù)需要設(shè)定鼠標(biāo)初始化位置

8、、 按鈕原始狀態(tài);最后設(shè)置串行接口參數(shù)幀格式等并開放鼠標(biāo)中斷。 鼠標(biāo)發(fā)送信息時,第三個字節(jié)為一個完整的信息報告。 但80196每接收到一個字節(jié),就產(chǎn)生一次中斷,然后根據(jù)當(dāng)前字節(jié)是 否大于40確定其性質(zhì)。若是信息報告的首字節(jié),則還要進一步通過有效性檢驗后保存;若不是首字節(jié),則必須經(jīng)過一系列檢驗后保存起來。收到三個字節(jié)后立即進行命令分析和執(zhí)行。具體處理過程可參看源程序。用戶模塊通過特定接口模塊圖2獲得鼠標(biāo)當(dāng)前位置和按鈕狀,并可通過進位標(biāo)志=01判斷鼠標(biāo)是否安裝。下面是圖2、3程序流程圖如圖對應(yīng)的程序清單。該程序要求80196單片機的工作頻率為12;如果采有其它工作頻率,通過修改串行口的波特率設(shè)置參

9、數(shù)以及延時程序的時間常數(shù)即可。;8098特殊功能寄存器預(yù)定義00007_08_09210_11_1111618;通用寄存器預(yù)定義11+1+1640;顯示屏寬度480;顯示屏高度;變量區(qū)20_1;光標(biāo)值_1光標(biāo)值_4;接收緩沖區(qū)1;接收指針1_1;鼠標(biāo)狀態(tài)_,#80;7存在,5,左鍵,4右鍵200020000,0,0,0,0,008000027,02080,#0100;設(shè)堆棧指針,#2;初始化指針_,#2_,#7_,#_;清除中斷_,#40;開串行中斷 ,_;清除,#09;設(shè)串口模式_,#9;1200,122,#0;22=0,#8000;延遲20000,7,_,#0;清單二取鼠標(biāo)消息,=鼠標(biāo)及按鈕狀態(tài),=,=_,#0,_;取鼠標(biāo)信息_,#40;清單三串口中斷服務(wù)程序;中斷服務(wù),6,0;第一個字節(jié)_,#_199;緩沖區(qū)空,出錯_1_,#_+2 98;緩沖區(qū)滿,出錯 ,_+;存儲收到字節(jié)

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論