80C196單片機(jī)鼠標(biāo)接口程序設(shè)計實例
發(fā)布時間:2008/6/3 0:00:00 訪問次數(shù):625
    
    
    來源:電子技術(shù)應(yīng)用 作者:華北電力大學(xué)(北京)(102206)楊國田 白焰 撫順石油學(xué)院(113001)徐培民
    
    摘要:通過對鼠標(biāo)底層通信原理及協(xié)議的深入分析,探討了鼠標(biāo)在80c196單片機(jī)系統(tǒng)中的應(yīng)用價值與可行性,并介紹了鼠標(biāo)接口軟件設(shè)計的原理及方法,給出了80c196單片機(jī)與microsoft鼠標(biāo)的具體接口程序。
    
    關(guān)鍵詞:鼠標(biāo) 接口技術(shù) 軟件設(shè)計 接口程序
    
    80c196單片機(jī)由于低格低、處理能力強(qiáng),在信號分析、數(shù)據(jù)采集等很多領(lǐng)域得到了廣泛應(yīng)用,在目標(biāo)系統(tǒng)中使用各種規(guī)格的液晶或crt顯示器也越來越多。因此在這樣的單片機(jī)系統(tǒng)中引入鼠標(biāo),將會方便操作,提高工作效率。鼠標(biāo)內(nèi)核本質(zhì)上是一個二維的角度或位移信號檢測裝置,耗電極少、可靠性高、價格低廉,可能在許多場合發(fā)揮作用。鼠標(biāo)與主機(jī)之間通過rs-232標(biāo)準(zhǔn)串行接口進(jìn)行通信,信息傳送是單方向、無條件、無應(yīng)答連續(xù)進(jìn)行的。此外80c196的uart不直接支持鼠標(biāo)的接口協(xié)議,在程序設(shè)計中必須予以注意。本文主要探討80c196單片機(jī)與microsoft兼容鼠標(biāo)接口程序的設(shè)計實現(xiàn)。
    
    1 鼠標(biāo)信號發(fā)送協(xié)議與過程
    
    鼠標(biāo)是一個功能高度集中的小型機(jī)電一體化系統(tǒng)。它首先將直線移轉(zhuǎn)換成角度位移,再轉(zhuǎn)變成數(shù)字量,然后與按鈕狀態(tài)統(tǒng)一編碼,通過rs-232串口發(fā)出。鼠標(biāo)工作所需功率從rs-232串行接口的控制線上竊取(ps/2、usb接口鼠標(biāo)除外)。當(dāng)鼠標(biāo)被拖動超過一個最小距離或某一按鈕被按下時,它按照規(guī)定的協(xié)議將移動距離和按鈕狀態(tài)通過一次或幾次信息發(fā)送到機(jī);主機(jī)上的鼠標(biāo)驅(qū)動程序?qū)⑿畔⒆儞Q成鼠標(biāo)位置和按鈕狀態(tài)供其它程序模塊調(diào)用。每發(fā)生一次移動或按鈕狀態(tài)變化,鼠標(biāo)向上發(fā)送一次信息。通常一般鼠標(biāo)的分辨率為400dpi。理論上即沿著某一方向每拖動一英寸(一般速度),會產(chǎn)生400次信息發(fā)送過程。,如果拖動較快,則信息發(fā)送次數(shù)送減少,但所反映的總的移動距離仍然是400步。
    
    各種串行接口鼠標(biāo)在物理層普遍采用標(biāo)準(zhǔn)的串行通信協(xié)議,波特率為1200bps。幀格式為7個數(shù)據(jù)位、2個停止位,無奇偶校驗位。上層協(xié)議則在此基礎(chǔ)上以十六進(jìn)制數(shù)形式直接發(fā)更新鼠標(biāo)信息,包括:初始化報告:移動方向、距離、按鈕狀態(tài)。其一般形式如表1所示。
    
    表1 鼠標(biāo)信息發(fā)送格式
    
    
    
    上述p1、p2、p3三個參數(shù)說明:
    
    p1_d7d6固定值01;d1d0=11本次鼠標(biāo)移動包含左右移動分量;d3d2=11本次鼠標(biāo)移動包含上下移動分量;d4=1目前鼠標(biāo)右鍵呈按下狀態(tài);d5=1目前鼠標(biāo)左鍵呈按下狀態(tài)(d4d5=00則鍵呈釋放狀態(tài))。
    
    p2_d7d6固定值00;其余六位表示一個有符號二進(jìn)制數(shù),反映左右移動量,大于0為向右移動,小于0為向左移動。
    
    p3_d7d6固定值00;其余六位表示一個有符號二進(jìn)制數(shù),反映上下移動量,大于0為向下移動,小于0為向上移動。
    
    例如:[6ch 02h 3ah](p1=6ch,p2=02h,p3=3ah)反饋出鼠標(biāo)向右移動了2個單位,向上移動了6個單位,目前左鍵按下。
    
    
    2 鼠標(biāo)接口程序設(shè)計
    
    80c196系列單片機(jī)內(nèi)設(shè)rs-232收發(fā)器,但需要配置接口芯片實現(xiàn)電平轉(zhuǎn)換。考慮到鼠標(biāo)從串口竊取功率,接口芯片必須具有一定的驅(qū)動能力,而不能要用簡單的準(zhǔn)rs-232電平轉(zhuǎn)換器。這里采用max232e作為接口芯片。
    
    圖1中左側(cè)為80c196單片機(jī),p2.0(txd)、p2.1(rxd)通過max232e形成滿足鼠標(biāo)要求的串行接口,包括生成標(biāo)準(zhǔn)rs-232c電平和提供電源供應(yīng)。圖1中最右邊為9針或24針標(biāo)準(zhǔn)串行接插件。由于鼠標(biāo)的電源供應(yīng)采用功率竊取方案,由dtr/rts提供,這里為dtr加限流電阻防止對鼠標(biāo)造成傷害。rts由max232e垢信號發(fā)送端提供,通過80c196的p2.0控制max232e的10腳(對應(yīng)的輸出腳為7腳)電平高低
    
    
    來源:電子技術(shù)應(yīng)用 作者:華北電力大學(xué)(北京)(102206)楊國田 白焰 撫順石油學(xué)院(113001)徐培民
    
    摘要:通過對鼠標(biāo)底層通信原理及協(xié)議的深入分析,探討了鼠標(biāo)在80c196單片機(jī)系統(tǒng)中的應(yīng)用價值與可行性,并介紹了鼠標(biāo)接口軟件設(shè)計的原理及方法,給出了80c196單片機(jī)與microsoft鼠標(biāo)的具體接口程序。
    
    關(guān)鍵詞:鼠標(biāo) 接口技術(shù) 軟件設(shè)計 接口程序
    
    80c196單片機(jī)由于低格低、處理能力強(qiáng),在信號分析、數(shù)據(jù)采集等很多領(lǐng)域得到了廣泛應(yīng)用,在目標(biāo)系統(tǒng)中使用各種規(guī)格的液晶或crt顯示器也越來越多。因此在這樣的單片機(jī)系統(tǒng)中引入鼠標(biāo),將會方便操作,提高工作效率。鼠標(biāo)內(nèi)核本質(zhì)上是一個二維的角度或位移信號檢測裝置,耗電極少、可靠性高、價格低廉,可能在許多場合發(fā)揮作用。鼠標(biāo)與主機(jī)之間通過rs-232標(biāo)準(zhǔn)串行接口進(jìn)行通信,信息傳送是單方向、無條件、無應(yīng)答連續(xù)進(jìn)行的。此外80c196的uart不直接支持鼠標(biāo)的接口協(xié)議,在程序設(shè)計中必須予以注意。本文主要探討80c196單片機(jī)與microsoft兼容鼠標(biāo)接口程序的設(shè)計實現(xiàn)。
    
    1 鼠標(biāo)信號發(fā)送協(xié)議與過程
    
    鼠標(biāo)是一個功能高度集中的小型機(jī)電一體化系統(tǒng)。它首先將直線移轉(zhuǎn)換成角度位移,再轉(zhuǎn)變成數(shù)字量,然后與按鈕狀態(tài)統(tǒng)一編碼,通過rs-232串口發(fā)出。鼠標(biāo)工作所需功率從rs-232串行接口的控制線上竊。╬s/2、usb接口鼠標(biāo)除外)。當(dāng)鼠標(biāo)被拖動超過一個最小距離或某一按鈕被按下時,它按照規(guī)定的協(xié)議將移動距離和按鈕狀態(tài)通過一次或幾次信息發(fā)送到機(jī);主機(jī)上的鼠標(biāo)驅(qū)動程序?qū)⑿畔⒆儞Q成鼠標(biāo)位置和按鈕狀態(tài)供其它程序模塊調(diào)用。每發(fā)生一次移動或按鈕狀態(tài)變化,鼠標(biāo)向上發(fā)送一次信息。通常一般鼠標(biāo)的分辨率為400dpi。理論上即沿著某一方向每拖動一英寸(一般速度),會產(chǎn)生400次信息發(fā)送過程。,如果拖動較快,則信息發(fā)送次數(shù)送減少,但所反映的總的移動距離仍然是400步。
    
    各種串行接口鼠標(biāo)在物理層普遍采用標(biāo)準(zhǔn)的串行通信協(xié)議,波特率為1200bps。幀格式為7個數(shù)據(jù)位、2個停止位,無奇偶校驗位。上層協(xié)議則在此基礎(chǔ)上以十六進(jìn)制數(shù)形式直接發(fā)更新鼠標(biāo)信息,包括:初始化報告:移動方向、距離、按鈕狀態(tài)。其一般形式如表1所示。
    
    表1 鼠標(biāo)信息發(fā)送格式
    
    
    
    上述p1、p2、p3三個參數(shù)說明:
    
    p1_d7d6固定值01;d1d0=11本次鼠標(biāo)移動包含左右移動分量;d3d2=11本次鼠標(biāo)移動包含上下移動分量;d4=1目前鼠標(biāo)右鍵呈按下狀態(tài);d5=1目前鼠標(biāo)左鍵呈按下狀態(tài)(d4d5=00則鍵呈釋放狀態(tài))。
    
    p2_d7d6固定值00;其余六位表示一個有符號二進(jìn)制數(shù),反映左右移動量,大于0為向右移動,小于0為向左移動。
    
    p3_d7d6固定值00;其余六位表示一個有符號二進(jìn)制數(shù),反映上下移動量,大于0為向下移動,小于0為向上移動。
    
    例如:[6ch 02h 3ah](p1=6ch,p2=02h,p3=3ah)反饋出鼠標(biāo)向右移動了2個單位,向上移動了6個單位,目前左鍵按下。
    
    
    2 鼠標(biāo)接口程序設(shè)計
    
    80c196系列單片機(jī)內(nèi)設(shè)rs-232收發(fā)器,但需要配置接口芯片實現(xiàn)電平轉(zhuǎn)換。考慮到鼠標(biāo)從串口竊取功率,接口芯片必須具有一定的驅(qū)動能力,而不能要用簡單的準(zhǔn)rs-232電平轉(zhuǎn)換器。這里采用max232e作為接口芯片。
    
    圖1中左側(cè)為80c196單片機(jī),p2.0(txd)、p2.1(rxd)通過max232e形成滿足鼠標(biāo)要求的串行接口,包括生成標(biāo)準(zhǔn)rs-232c電平和提供電源供應(yīng)。圖1中最右邊為9針或24針標(biāo)準(zhǔn)串行接插件。由于鼠標(biāo)的電源供應(yīng)采用功率竊取方案,由dtr/rts提供,這里為dtr加限流電阻防止對鼠標(biāo)造成傷害。rts由max232e垢信號發(fā)送端提供,通過80c196的p2.0控制max232e的10腳(對應(yīng)的輸出腳為7腳)電平高低
熱門點擊
- 利用單片機(jī)I/O口直接驅(qū)動LCD
- MSP430的軟硬件C延時程序設(shè)計
- CPLD在DSP系統(tǒng)中的應(yīng)用設(shè)計
- 8051單片機(jī)中DPTR的擴(kuò)展設(shè)計
- 利用SoC單片機(jī)的多功能數(shù)據(jù)采集卡
- 基于單片機(jī)通用引腳的軟件UART設(shè)計
- 高速數(shù)字串行加法器及其應(yīng)用
- C8051F020的音頻峰值采集和網(wǎng)絡(luò)傳送
- 基于MSP430單片機(jī)高精度溫度測量的補(bǔ)償方
- 用SPMC75F2313A實現(xiàn)LIN結(jié)點
推薦技術(shù)資料
- 分立器件&無源元件選型及工作原
- 新一代“超越EUV”光刻系統(tǒng)參
- 最新品BAT激光器制造工藝設(shè)計
- 新款汽車SoC產(chǎn)品Malibo
- 新芯片品類FPCU(現(xiàn)場可編程
- 電動汽車動力總成系統(tǒng)̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究