日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發(fā)|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓信息
贊助商
80C196單片機鼠標接口程序設計實例
80C196單片機鼠標接口程序設計實例
 更新時間:2008-8-17 16:29:45  點擊數:15
【字體: 字體顏色

 摘要:通過對鼠標底層通信原理及協(xié)議的深入分析,探討了鼠標在80C196單片機系統(tǒng)中的應用價值與可行性,并介紹了鼠標接口軟件設計的原理及方法,給出了80C196單片機與Microsoft鼠標的具體接口程序。

    關鍵詞:鼠標 接口技術 軟件設計 接口程序

80C196單片機由于低格低、處理能力強,在信號分析、數據采集等很多領域得到了廣泛應用,在目標系統(tǒng)中使用各種規(guī)格的液晶或CRT顯示器也越來越多。因此在這樣的單片機系統(tǒng)中引入鼠標,將會方便操作,提高工作效率。鼠標內核本質上是一個二維的角度或位移信號檢測裝置,耗電極少、可靠性高、價格低廉,可能在許多場合發(fā)揮作用。鼠標與主機之間通過RS-232標準串行接口進行通信,信息傳送是單方向、無條件、無應答連續(xù)進行的。此外80C196的UART不直接支持鼠標的接口協(xié)議,在程序設計中必須予以注意。本文主要探討80C196單片機與Microsoft兼容鼠標接口程序的設計實現。

1 鼠標信號發(fā)送協(xié)議與過程

鼠標是一個功能高度集中的小型機電一體化系統(tǒng)。它首先將直線移轉換成角度位移,再轉變成數字量,然后與按鈕狀態(tài)統(tǒng)一編碼,通過RS-232串口發(fā)出。鼠標工作所需功率從RS-232串行接口的控制線上竊取(PS/2、USB接口鼠標除外)。當鼠標被拖動超過一個最小距離或某一按鈕被按下時,它按照規(guī)定的協(xié)議將移動距離和按鈕狀態(tài)通過一次或幾次信息發(fā)送到機;主機上的鼠標驅動程序將信息變換成鼠標位置和按鈕狀態(tài)供其它程序模塊調用。每發(fā)生一次移動或按鈕狀態(tài)變化,鼠標向上發(fā)送一次信息。通常一般鼠標的分辨率為400DPI。理論上即沿著某一方向每拖動一英寸(一般速度),會產生400次信息發(fā)送過程。,如果拖動較快,則信息發(fā)送次數送減少,但所反映的總的移動距離仍然是400步。

各種串行接口鼠標在物理層普遍采用標準的串行通信協(xié)議,波特率為1200bps。幀格式為7個數據位、2個停止位,無奇偶校驗位。上層協(xié)議則在此基礎上以十六進制數形式直接發(fā)更新鼠標信息,包括:初始化報告:移動方向、距離、按鈕狀態(tài)。其一般形式如表1所示。

表1 鼠標信息發(fā)送格式

序  號 名  稱 字串形式 長  度 意  義 說  明
1 初始化報告 4DH(''M'') 1字節(jié) 聲明初始化結束 加電時發(fā)送一次
2 移動、按鈕 P1、P2、P3 3字節(jié) 反映按鈕狀態(tài)、移動方向和距離 移動或按鈕操作時發(fā)送

    上述P1、P2、P3三個參數說明:

    P1_D7D6固定值01;D1D0=11本次鼠標移動包含左右移動分量;D3D2=11本次鼠標移動包含上下移動分量;D4=1目前鼠標右鍵呈按下狀態(tài);D5=1目前鼠標左鍵呈按下狀態(tài)(D4D5=00則鍵呈釋放狀態(tài))。

    P2_D7D6固定值00;其余六位表示一個有符號二進制數,反映左右移動量,大于0為向右移動,小于0為向左移動。

    P3_D7D6固定值00;其余六位表示一個有符號二進制數,反映上下移動量,大于0為向下移動,小于0為向上移動。

    例如:[6CH 02H 3AH](P1=6CH,P2=02H,P3=3AH)反饋出鼠標向右移動了2個單位,向上移動了6個單位,目前左鍵按下。


2 鼠標接口程序設計

80C196系列單片機內設RS-232收發(fā)器,但需要配置接口芯片實現電平轉換。考慮到鼠標從串口竊取功率,接口芯片必須具有一定的驅動能力,而不能要用簡單的準RS-232電平轉換器。這里采用MAX232E作為接口芯片。

圖1中左側為80C196單片機,P2.0(TXD)、P2.1(RXD)通過MAX232E形成滿足鼠標要求的串行接口,包括生成標準RS-232C電平和提供電源供應。圖1中最右邊為9針或24針標準串行接插件。由于鼠標的電源供應采用功率竊取方案,由DTR/RTS提供,這里為DTR加限流電阻防止對鼠標造成傷害。RTS由MAX232E垢信號發(fā)送端提供,通過80C196的P2.0控制MAX232E的10腳(對應的輸出腳為7腳)電平高低以改變7腳電位,使鼠標可以接收來自RTS的控制命令,以實現鼠標安裝與否的檢測。MAX232E的11腳(對應的輸入腳為14腳)設備高電平以保證14腳電位為負RS-232電位,滿足鼠標發(fā)送信號時的電平要求。

從鏈路層看,80C196串行接口的四種工作方式均不滿足鼠標的幀格式要求;但其工作方式1(1位起始位、8位數據位、1位停止位)的總傳送位數與鼠標(1位起始位、7個數據位、2個停止位)相同,均為10位。接收過程中80C196收到7個數據位后,將2個停止位中的第一個作為數據位裝入接收緩沖器的最高位,由于停止位在物理層是高電平,作為數據被接收后相當于邏輯“0”;剩下的第二個停止位給好為80C196提供了有效的停止位。利用80C196的工作方式1完全可以保證正確接收鼠標信息。

單片機起動后,通過鼠標驅動模塊對鼠標進行初始化,即通過P2.0使RTS電平翻轉一次而令鼠標發(fā)送初始化報告,以確認鼠標是否安裝。之后,鼠標即可隨著拖動或按鈕操作向單片機發(fā)送動作信息,經接口模塊釋放即可反應鼠標位置和按鈕狀態(tài)。

鼠標接口模塊主要包括按鈕狀態(tài)識別和位置識別兩個部分。80C196將根據接收到的鼠標信息不斷刷新鼠標信息緩沖區(qū)。由于鼠標事件間隔不確定,采用掃描方式但會浪費CPU時間,還可能因來不及處理而丟失信息。有效的處理方法是采用中斷方式接收,應用模塊通過軟件接口獲得鼠標信息。完整的鼠標接口程序流程圖如圖2所示。在初始化階段,首先檢查鼠標是否存在,根據結果設置標志位,以備以后取鼠標信息時判斷用;根據需要設定鼠標初始化位置、按鈕原始狀態(tài);最后設置串行接口參數(幀格式等)并開放鼠標中斷。鼠標發(fā)送信息時,第三個字節(jié)為一個完整的信息報告。但80C196每接收到一個字節(jié),就產生一次中斷,然后根據當前字節(jié)是否大于40H確定其性質。若是信息報告的首字節(jié),則還要進一步通過有效性檢驗后保存;若不是首字節(jié),則必須經過一系列檢驗后保存起來。收到三個字節(jié)后立即進行命令分析和執(zhí)行。具體處理過程可參看源程序。用戶模塊通過特定接口模塊(圖2(b))獲得鼠標當前位置和按鈕狀,并可通過進位標志C=0/1判斷鼠標是否安裝。

下面是圖2、3程序流程圖如圖對應的程序清單。該程序要求80C196單片機的工作頻率為12MHz;如果采有其它工作頻率,通過修改串行口的波特率設置參數以及延時程序的時間常數即可。

;

;8098特殊功能寄存器預定義

R0 EQU 00H:Word

SBUD EQU 07H:Byte

INT_MASK EQU 08H:Byte

INT_PEND EQU 09H:Byte

BAUD_RT EQU 0EH:Byte

IOP2 EQU 10H:Byte

SP_CON EQU 11H:Byte

SP_STAT EQU 11H:Byte

IOC1 EQU 16H:Byte

SP EQU 18H:Word

[1] [2] [3]  下一頁
  • 上一篇: 基于PSD3XX與ADMC401接口設計的無功發(fā)生器系統(tǒng)
  • 下一篇: 工作頻率可動態(tài)調整的單片機系統(tǒng)設計
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

    點擊這里給我發(fā)消息66821730(技術支持)點擊這里給我發(fā)消息66821730(廣告投放) 點擊這里給我發(fā)消息41031197(編輯) 點擊這里給我發(fā)消息58733127(審核)
    本站提供的機電設備,機電供求等信息由機電企業(yè)自行提供,該企業(yè)負責信息內容的真實性、準確性和合法性。
    機電之家對此不承擔任何保證責任,有侵犯您利益的地方請聯(lián)系機電之家,機電之家將及時作出處理。
    Copyright 2007 機電之家 Inc All Rights Reserved.機電之家-由機電一體化網更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術支持

    主辦:杭州市高新區(qū)(濱江)機電一體化學會
    中國行業(yè)電子商務100強網站

    網站經營許可證:浙B2-20080178-1