99久久99久久精品免费看蜜桃,亚洲国产成人精品青青草原,少妇被粗大的猛烈进出va视频,精品国产不卡一区二区三区,人人人妻人人澡人人爽欧美一区

首頁 > 文章中心 > 單片機(jī)應(yīng)用

單片機(jī)應(yīng)用

前言:想要寫出一篇令人眼前一亮的文章嗎?我們特意為您整理了5篇單片機(jī)應(yīng)用范文,相信會為您的寫作帶來幫助,發(fā)現(xiàn)更多的寫作思路和靈感。

單片機(jī)應(yīng)用

單片機(jī)應(yīng)用范文第1篇

1、單片機(jī)原理是指一種在線式實時控制計算機(jī)的原理方式。在線式就是現(xiàn)場控制,需要的是有較強(qiáng)的抗干擾能力,較低的成本,這也是和離線式計算機(jī)(比如家用PC)的主要區(qū)別。

2、應(yīng)用:單片機(jī)普遍設(shè)置有并行地址總線、 數(shù)據(jù)總線、控制總線,這些引腳用以擴(kuò)展并行外圍器件都可通過串行口與單片機(jī)連接,另外,許多單片機(jī)已把所需要的外圍器件及外設(shè)接口集成一片內(nèi),因此在許多情況下可以不要并行擴(kuò)展總線,大大減省封裝成本和芯片體積,這類單片機(jī)稱為非總線型單片機(jī)。

(來源:文章屋網(wǎng) )

單片機(jī)應(yīng)用范文第2篇

Abstract: Combining 8051, the paper introduces the advantages of C-language and the programming design of C-language's relization of MCU digital blink. Though 8051 could embed assembly code at C-language programming, the complicity is obviously improved. The practice proves that if we use C-language resonablely, the equal precision with assembler language could be got at practice.

關(guān)鍵詞:單片機(jī);C語言;應(yīng)用

Key words: MCU; C-language; application

中圖分類號:TP31 文獻(xiàn)標(biāo)識碼:A文章編號:1006-4311(2010)36-0146-01

1問題的提出

將C向MCU(俗稱單片機(jī))8051上的移植始于20世紀(jì)80年代的中后期??陀^上講,C向8051 MCU移植的難點不少。經(jīng)過Keil/Franklin、Archmeades、IAR、BSO/Tasking等公司艱若不懈的努力,終于于20世紀(jì)90年代開始而趨成熟,成為專業(yè)化的MCU高級語言了。過去長期困擾人們的所謂“高級語言產(chǎn)生代碼太長,運(yùn)行速度太慢,因此不適合單片機(jī)使用”的致使缺點已被大幅度地克服。

2單片機(jī)C語言的優(yōu)越性

2.1 不懂得單片機(jī)的指令集,也能夠編寫完美的單片機(jī)程序;

2.2 無須懂得單片機(jī)的具體硬件,也能夠編出符合硬件實際的專業(yè)水平的程序;

2.3 不同函數(shù)的數(shù)據(jù)實行覆蓋,有效利用片上有限的RAM空間;

2.4 程序具有堅固性:數(shù)據(jù)被破壞是導(dǎo)致程序運(yùn)行異常的重要因素。C語言對數(shù)據(jù)進(jìn)行了許多專業(yè)性的處理,避免了運(yùn)行中間非異步的破壞;

2.5 C語言提供復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性;

2.6 提供auto、static、const等存儲類型和專門針對8051單片機(jī)的data、idata、pdata、xdata、code等存儲類型,自動為變量合理地分配地址;

2.7 提供small、compact、large等編譯模式,以適應(yīng)片上存儲器的大?。?/p>

2.8 中斷服務(wù)程序的現(xiàn)場保護(hù)和恢復(fù),中斷向量表的填寫,是直接與單片機(jī)相關(guān)的,都由C編譯器代辦;

2.9 提供常用的標(biāo)準(zhǔn)函數(shù)庫,以供用戶直接使用;

2.10 頭文件中定義宏、說明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開發(fā);

2.11 有嚴(yán)格的句法檢查,錯誤很少,可容易地在高級語言的水平上迅速地被排掉;

2.12 可方便地接受多種實用程序的服務(wù):如片上資源的初始化有專門的實用程序自動生成。

3應(yīng)用案例:C語言實現(xiàn)單片機(jī)數(shù)碼管閃爍

本應(yīng)用案例中(/*此函數(shù)主要是C語言實現(xiàn)單片機(jī)數(shù)碼管閃爍功能。效果:1――數(shù)碼管顯示0123;2――停頓;3――數(shù)碼管顯示4567;4――無窮循環(huán)1,2,3步。*/),程序為:

#include

#include

unsigned char code dis_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90, 0xff}; //定義數(shù)組

int delay(int x)//聲明延遲函數(shù)

{

int j=0;

for(j;j

}

main() //主函數(shù)

{

int i,j;//定義i,j

unsigned char seg;//定義seg,用于數(shù)碼管的初始化

seg= 0xfe ;//定義seg為0xfe,即11111110;使數(shù)碼管為第一個顯示

while (1)//無窮循環(huán)

{

{ for(j=0;j

{

for(i=0;i

{

P2=seg;//初始化P2

P0=dis_code[i]; //顯示數(shù)字

delay(200);//延遲約1ms

seg=_crol_(seg,1);//數(shù)碼管右移一位

if (seg==0xef) seg=0xfe; //輸出四個數(shù)字之后停止

}

}

P2=0xff;//數(shù)碼管全不接通,把0,1,2,3消去

delay(2000000); //延遲

for(j=0;j

{

for(i=4;i

{

P2=seg; //初始化P2

P0=dis_code[i]; //顯示數(shù)字

delay(200);//延遲約1ms

seg=_crol_(seg,1);//數(shù)碼管右移一位

if (seg==0xef) seg=0xfe;//輸出四個數(shù)字之后停止

}

}

}

}

}//函數(shù)結(jié)束

單片機(jī)應(yīng)用范文第3篇

本設(shè)計采用MicrochipPIC16C54單片機(jī),選用南通光電器件廠GR40101紅外發(fā)射二極管和GD1611硅PIN型光敏二極管作為紅外發(fā)射和接收器件,舟山海山電器有限公司生產(chǎn)的微型電機(jī)QDB-30-3.0作為泵液晶驅(qū)動。系統(tǒng)采用單鍵模式完成暫停、設(shè)定泵液量等功能。電路采用節(jié)電方式設(shè)計,待機(jī)電流小于100μA,并可提供微型電機(jī)所需的500mA負(fù)載電流,可監(jiān)測電池電壓,欠壓報警。系統(tǒng)原理如圖1所示。

圖中TX(紅外發(fā)射管)、R1、R5、Q4組成紅外發(fā)射電路,單片機(jī)RA1口輸出一定頻率的脈沖控制三極管Q4的通斷,從而控制紅外發(fā)射管TX的發(fā)射頻率。由單片機(jī)RA3口為發(fā)射電路提供電源,是為了節(jié)能。當(dāng)RA1口將要發(fā)射脈沖時,RA3口置高,發(fā)射電路加電。RX(紅外接收管)、R2、R11、R12、R13、R16、Q6、C3組成紅外接收電路,RX接收紅外脈沖,整形后由Q6放大。接收電路必須嚴(yán)格控制放大倍數(shù),確保紅外反射接收距離在10cm左右。接收電路電源由單片機(jī)RB1口提供,在發(fā)射脈沖后,將RB1口置高。R6、R7、R8、Q3組成電池電壓監(jiān)測電路,當(dāng)電源電壓降到一定值時,Q3截止,單片機(jī)RB3口為高電平,欠壓報警。D2、D3、R9、R10、Q1、Q5組成電機(jī)供電電路,提供微型電機(jī)所需的3V電壓、500mA負(fù)載電流,當(dāng)需驅(qū)動電機(jī)泵液時,由單片機(jī)RB2口輸出低電平,Q發(fā)射極為電機(jī)供電。D1、C4、Q2、R3組成電機(jī)控制電路,泵液時先為電機(jī)供電,然后單片機(jī)RA2口輸出高電平驅(qū)動電機(jī)運(yùn)轉(zhuǎn)。LED為工作狀態(tài)指示燈,單一按鍵SW為多功能鍵,可完成設(shè)定泵液量、暫停、手動泵液等功能。

2軟件設(shè)計

本電路硬件設(shè)計通過控制各單元電路供電達(dá)到節(jié)能的目的,軟件上利用PIC單片機(jī)的休眼、看門狗溢出喚醒特性以及對發(fā)射脈沖個數(shù)的控制進(jìn)一步降低能耗,使其待機(jī)電流小于100μA,4節(jié)4號堿性電池可提供15000次以上的使用次數(shù)或200天以上的使用時間。程序流程如圖2所示。

程序開始先對單片機(jī)各端口初始化,并設(shè)置好看門狗溢出時間,程序工作一個周期后,自動進(jìn)入休眠模式,由看門狗溢出喚醒單片機(jī)進(jìn)入下一周期。進(jìn)入一個工作周期前,首先判斷是電池上電第1次工作,還是看門狗溢出喚醒單片機(jī)。如果是電池上電第1次工作,指示燈應(yīng)給出指示,并對泵液量進(jìn)行設(shè)定。進(jìn)入工作周期后要判斷按鍵是否按下,若按下按鍵,則判斷是手動泵液還是暫停泵液器工作,這兩者靠按鍵時間長短決定。

紅外收發(fā)程序?qū)μ岣弑靡浩骺垢蓴_能力、降低泵液器能耗起著關(guān)鍵作用。經(jīng)過實驗選定一個發(fā)射脈沖頻率使其對外界光干擾不敏感。為了最大限度地降低能耗,程序?qū)Πl(fā)射脈沖的個數(shù)和方法進(jìn)行設(shè)計,先發(fā)2個試探脈沖,若接收到,則按選定頻率連續(xù)發(fā)60個脈沖,然后判斷接收方收到的脈沖數(shù)是否在允許的范圍內(nèi),是則泵液,否則進(jìn)入休眠模式;若接收方未收到試探脈沖,則直接進(jìn)入休眠模式。每次泵液器工作后,都檢查電池電壓,若發(fā)現(xiàn)電壓低,立即由指示燈給出報警,提示更換電池。

單片機(jī)應(yīng)用范文第4篇

【關(guān)鍵詞】單片機(jī)開發(fā)技巧;系統(tǒng)測試;減少bug數(shù)目;提高運(yùn)行效率;優(yōu)化運(yùn)行性能

1、概述

隨著微電子通信技術(shù)不斷提高以及超大規(guī)模集成電路制作工藝的不斷完善,單片機(jī)作為微處理器已經(jīng)滲透到社會中軍用民用等各個領(lǐng)域中,推動著社會現(xiàn)代化不斷向前發(fā)展。由于單片機(jī)的集成度高,體積小,可靠性良好,控制功能強(qiáng),功耗低,在導(dǎo)彈導(dǎo)航、各種交通工具的儀表控制,以及互聯(lián)網(wǎng)絡(luò)設(shè)備中的數(shù)據(jù)通訊與傳輸、門禁卡智能卡識別等方面無處不在,因此對于單片機(jī)的學(xué)習(xí)、開發(fā)和應(yīng)用對于通信工程和自動化工程專業(yè)的學(xué)生和專業(yè)人士是必不可少的,然而在單片機(jī)開發(fā)與應(yīng)用過程中,有很多技巧性的東西,需要我們在對于單片機(jī)的學(xué)習(xí)、開發(fā)和應(yīng)用過程中去掌握和了解,從而縮短學(xué)習(xí)周期,加快對單片機(jī)深入理解的步伐,能夠為以后在單片機(jī)的開發(fā)和應(yīng)用培養(yǎng)良好的習(xí)慣,減少失誤和錯誤發(fā)生的概率,最大優(yōu)化單片機(jī)的開發(fā)和應(yīng)用的過程。

2、單片機(jī)的應(yīng)用中的注意事項

單片機(jī)已經(jīng)在各個領(lǐng)域中被廣泛應(yīng)用,但是在產(chǎn)品中選擇和使用單片機(jī)的時候需要注意一些事項,來提高單片機(jī)在應(yīng)用中的可靠性和穩(wěn)定性。在選擇單片機(jī)初期,滿足使用要求和經(jīng)濟(jì)預(yù)算的情況下,盡量選擇使用壽命長的單片機(jī)型號,避免由于單片機(jī)的老化而引起產(chǎn)品或項目工程質(zhì)量的下降,同時盡量選擇運(yùn)算速度快、抗干擾能力強(qiáng)以及功耗低的單片機(jī),使其能夠充分滿足產(chǎn)品和項目工程的需要。當(dāng)一個單片機(jī)系統(tǒng)設(shè)計完成后,要對整個產(chǎn)品或者系統(tǒng)進(jìn)行系統(tǒng)測試,其中包括對單片機(jī)軟件的單元測試、系統(tǒng)測試以及性能測試,還有對整個系統(tǒng)的上電、掉電測試,ESD和EFT測試以及使用壽命測試,從而對單片機(jī)整個系統(tǒng)或產(chǎn)品進(jìn)行可靠性的了解,避免由于單片機(jī)選擇不合適而使產(chǎn)品質(zhì)量低下。

3、單片機(jī)的開發(fā)的基本技巧

單片機(jī)在開發(fā)的過程中,主要使用C語言作為開發(fā)語言來驅(qū)動單片機(jī)工作,所以對于單片機(jī)的開發(fā)的基本技巧,主要涉及到C語言代碼優(yōu)化,包括減少C代碼中的bug數(shù)目、程序代碼使用率以及代碼性能優(yōu)化的問題。只有在開發(fā)過程中盡量避免這些問題,開發(fā)的程序才能在單片機(jī)內(nèi)良好地運(yùn)行。

3.1、減少C語言代碼的bug數(shù)目

人們在做任何事情的時候都會犯錯誤,單片機(jī)C語言開發(fā)也不例外。如果由于人為的失誤或者錯誤將缺陷帶入到代碼中,那么單片機(jī)在運(yùn)行過程中就有可能出現(xiàn)錯誤,所以在C語言代碼編寫過程中要盡量在人們經(jīng)常出錯的地方謹(jǐn)慎處理,盡量避免引入缺陷到單片機(jī)運(yùn)行程序中去。常見的缺陷類型有參數(shù)類型和范圍問題,一般對單片機(jī)系統(tǒng)整體的物理參數(shù)、資源參數(shù)、應(yīng)用參數(shù)以及過程參數(shù)的類型和取值范圍設(shè)定的問題上出現(xiàn)錯誤,開發(fā)人員由于忽略了各個參數(shù)在不同參數(shù)類型的計算以及賦值或者函數(shù)返回的過程中參數(shù)類型的轉(zhuǎn)變以及取值范圍或取值精度的變化而想當(dāng)然依舊沒有改變對參數(shù)的處理使得程序在運(yùn)行過程中出現(xiàn)了缺陷問題;另一種常見的bug問題出在各中運(yùn)算符的優(yōu)先級計算或者比較的部分,開發(fā)人員忽略運(yùn)算符的優(yōu)先級選用而使程序存在缺陷;還有常見的bug問題涉及到一維或者多維數(shù)組角標(biāo)的確定或者指針自動變化的問題,此類問題常用循環(huán)模塊來計算,由于多層級計算可能會誤導(dǎo)開發(fā)人員而為程序引入缺陷。

3.2、提高運(yùn)行效率,優(yōu)化運(yùn)行性能

對于單片機(jī)開發(fā)來說,實現(xiàn)同樣功能的兩個程序片段運(yùn)行時間和運(yùn)行可靠性是非常重要的,所以在單片機(jī)開發(fā)過程中,在實現(xiàn)基本功能的前提下,盡量減少運(yùn)行代碼的行數(shù),保證運(yùn)行質(zhì)量,使得單片機(jī)高效快速響應(yīng)和穩(wěn)定有效地長期運(yùn)行。對于提高單片機(jī)的運(yùn)行效率,必須從單片機(jī)CPU型號入手,詳細(xì)了解CPU內(nèi)部的加法器、除法器、各種存儲單元、總線的分布以及中斷程序入口等,從而深入了解單片機(jī)的物理結(jié)構(gòu)以及各個模塊的工作機(jī)理,在單片機(jī)開發(fā)的過程中要根據(jù)各個模塊的工作機(jī)理來開發(fā)程序代碼,同時,對于代碼之間的邏輯關(guān)系也要有深入考究,盡量減少單片機(jī)遍歷同樣代碼的次數(shù),提高運(yùn)行效率。對于單片機(jī)程序代碼運(yùn)行性能的優(yōu)化,主要是去除運(yùn)行干擾源、精簡資源開銷以及提高程序容錯率。當(dāng)有錯誤發(fā)生時,使用軟件陷阱和看門狗機(jī)制將單片機(jī)拉回復(fù)位狀態(tài),從而避免由于程序出錯而導(dǎo)致事故發(fā)生,提高程序容錯率是開發(fā)人員的一項基本素質(zhì),需要在開發(fā)過程中去鍛煉和培養(yǎng),在反復(fù)訓(xùn)練和提高中去熟悉單片機(jī)的習(xí)性,從而避免常見的錯誤而導(dǎo)致單片機(jī)運(yùn)行失敗。

4、總結(jié)

單片機(jī)的開發(fā)和應(yīng)用技巧,需要在真正的實施過程中去總結(jié)、去體會,當(dāng)然,還有很多的應(yīng)用和開發(fā)的技巧需要我們不斷努力,在以后的工作、學(xué)習(xí)和應(yīng)用中去尋找和總結(jié),使得單片機(jī)的學(xué)習(xí)、開發(fā)和應(yīng)用過程更簡單、更有效,為單片機(jī)的開發(fā)和應(yīng)用鋪平前進(jìn)的道路。

參考文獻(xiàn):

[1]韓麗娟,鄧玉鳳.單片機(jī)的開發(fā)技巧及其應(yīng)用研究[J].科技信息,2009(34)

[2]刁世倫,潘文良.一種高效的鍵盤掃描分析算法[J].科技信息,2010(09)

[3]蔡亞洲.單片機(jī)的應(yīng)用與開發(fā)技巧[J].科技風(fēng),2009(19)

單片機(jī)應(yīng)用范文第5篇

關(guān)鍵詞 單片機(jī);接口技術(shù);PS/2

中圖分類號TP39 文獻(xiàn)標(biāo)識碼A 文章編號 1674-6708(2011)44-0208-02

接口是指各種不同特性部件的相互交接部分。對于單片機(jī),CPU與其它電路和部件相互交接的部分就是接口。接口又分為和軟件部分硬件部分。接口軟件則是指為實現(xiàn)信息交換而設(shè)計的程序;硬件接口是指兩個部件實體之間的連線和邏輯電路。在現(xiàn)在所掌握的技術(shù)條件下,硬件接口都必須得到相應(yīng)的接口軟件的支持。

1 單片機(jī)接口技術(shù)的特點

單片機(jī)本身已經(jīng)具備了一些常用的功能部件,而且我們知道單片機(jī)的應(yīng)用主要是面向測控系統(tǒng),因此,與通用計算機(jī)的接口技術(shù)相比較,單片機(jī)的接口技術(shù)有以下特點。

1)單片機(jī)的接口往往更側(cè)重于人機(jī)接口和控制接口。通用微機(jī)的人機(jī)界面是標(biāo)準(zhǔn)鍵盤和顯示器,較之單片機(jī)的人機(jī)接口要復(fù)雜,同時功能也強(qiáng)得多。PC機(jī)的鍵盤本身就是一個單片機(jī)系統(tǒng),可以對100多個鍵進(jìn)行掃描,并具有消除抖動和重鍵處理等功能。另外,通用計算機(jī)不是面向測控應(yīng)用的,因此通常不具備測控接口。如果需要,也必須使用擴(kuò)展板;

2)單片機(jī)的接口往往都是由用戶自行設(shè)計的,而且不會有統(tǒng)一的標(biāo)準(zhǔn)和規(guī)格。而且同一種功能也可以采用不同的接口設(shè)計方案。而對于通用微型計算機(jī)的接口部件一般是已經(jīng)設(shè)計好的,用戶也只能使用它所提供的功能,卻不能更改其原有的設(shè)計。因此,單片機(jī)的接口設(shè)計往往需要更多的技巧和經(jīng)驗;

3)單片機(jī)應(yīng)用系統(tǒng)的規(guī)模通常都比較小,存儲器的容量也不大。因此,很少采用大容量的存儲器,而且通常只采用靜態(tài)存儲器,很少采用動態(tài)存儲器。另外,也很少采用外部存儲器(軟盤、硬盤等)。而在通用微型計算機(jī)中,通常都采用大容量的動態(tài)存儲器,軟盤和硬盤更是必不可少的大容量的外部存儲器。

2 單片機(jī)接口技術(shù)的應(yīng)用――PS/2接口技術(shù)

作為一個出現(xiàn)較早的輸入接口,基于PS/2的開發(fā)技術(shù)已經(jīng)相當(dāng)成熟,但是這些成熟的技術(shù)主要掌握在部分主板開發(fā)商和鼠標(biāo)鍵盤開發(fā)商手上。而且PS/2協(xié)議的官方參考資料已經(jīng)很難找到,所以本課題將以監(jiān)控并分析PS/2鼠標(biāo)在實際工作中的數(shù)據(jù)流并結(jié)合前人開發(fā)經(jīng)驗心得為主要開發(fā)依據(jù),通過不斷調(diào)試改進(jìn)來完成PS/2鼠標(biāo)接口的開發(fā)。

PS/2 鼠標(biāo)和鍵盤履行一種雙向同步串行協(xié)議。換句話說每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)并且每在時鐘線上發(fā)一個脈沖就被讀入。鍵盤/鼠標(biāo)可以發(fā)送數(shù)據(jù)到主機(jī)而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備,但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時候抑制來自于鍵盤/鼠標(biāo)的通訊,只要把時鐘拉低即可。數(shù)據(jù)傳輸過程中的時鐘始終都由設(shè)備提供,如果主機(jī)要想設(shè)備發(fā)送數(shù)據(jù)就必需先告訴設(shè)備產(chǎn)生一個時鐘信號。

2.1硬件結(jié)構(gòu)基本設(shè)計

PS/2接口與單片機(jī)可以直接連接,將單片機(jī)的VCC和GND分別與PS/2接口的4號和3號針腳連接,實現(xiàn)對設(shè)備的供電。將P2.0和P2.1分別和PS/2接口的1號和5號針腳連接,作為數(shù)據(jù)線和時鐘線實現(xiàn)單片機(jī)到PS/2接口的信號傳輸。

在單片機(jī)的P2.2-P2.7引腳上連接六個按鍵,分別用來模擬鼠標(biāo)的上下左右移動以及鼠標(biāo)的左右鍵。該模塊用來測試PS/2接口設(shè)備的基本功能。P1口接8個發(fā)光二極管,在調(diào)試和測試中顯示相關(guān)內(nèi)容。P3.0-P3.1接串口模塊,實現(xiàn)單片機(jī)和PC的通信,該模塊用于擴(kuò)展和測試。

下面介紹PS/2接口設(shè)備與PC通過串口的連接:

這個模塊是一個擴(kuò)展和測試模塊,用來實現(xiàn)串口轉(zhuǎn)PS/2接口,并且可以測試PS/2接口的功能和性能。

通過串口將PC機(jī)同PS/2接口設(shè)備連接,在PC機(jī)上編寫測試軟件,測試軟件通過串口向單片機(jī)發(fā)送一定的鼠標(biāo)數(shù)據(jù)報,設(shè)備將這些數(shù)據(jù)報轉(zhuǎn)發(fā)到PS/2接口,這樣使得調(diào)試更加方便靈活,同時也實現(xiàn)了本課題的PS/2接口設(shè)備的一個擴(kuò)展應(yīng)用。

51單片機(jī)有一個全雙工的串行通訊口,所以單片機(jī)和電腦之間可以進(jìn)行串口通訊。但是電腦的串口是RS232電平的,而單片機(jī)的串口是TTL電平的,兩者之間必須有一個電平轉(zhuǎn)換電路,我們采用了三線制連接串口,也就是說和電腦的9針串口只連接其中的3根線:第5腳的GND、第2腳的RXD、第3腳的TXD。這是最簡單的連接方法。

2.2 軟件結(jié)構(gòu)設(shè)計

PS/2接口設(shè)備的軟件主要包括六個部分:PS/2接口驅(qū)動模塊,Reset模式處理模塊,stream模式處理模塊,顯示處理模塊,按鍵處理模塊,主程序模塊。

各模塊的功能如下:

1)PS/2接口驅(qū)動模塊:實現(xiàn)對PS/2接口的基本操作,包括向PS/2口發(fā)送一個字節(jié)數(shù)據(jù),從PS/2口接收一個字節(jié)數(shù)據(jù)等操作的實現(xiàn);

2)Reset模式處理模塊:完成Reset模式操作;

3)Stream模式處理模塊:完成Stream模式操作,提供發(fā)送一個完整鼠標(biāo)數(shù)據(jù)報的函數(shù);

4)顯示處理模塊:提供用于調(diào)試和測試的顯示函數(shù);

5)按鍵處理模塊:用六個按鍵分別模擬鼠標(biāo)的上下左右移動和左右鍵,當(dāng)按下某個按鍵時產(chǎn)生相應(yīng)的鼠標(biāo)數(shù)據(jù)報,并調(diào)用Stream模式處理模塊中的發(fā)送鼠標(biāo)數(shù)據(jù)報函數(shù),數(shù)據(jù)包發(fā)送到主機(jī);

6)主程序模塊:協(xié)調(diào)各模塊穩(wěn)定運(yùn)行。

2.3 PS/2鼠標(biāo)接口設(shè)備狀態(tài)轉(zhuǎn)換

通過分析PS/2鼠標(biāo)在實際使用過程中的信號了解到,在鼠標(biāo)上電一定時間后主機(jī)會向鼠標(biāo)發(fā)送多次復(fù)位信號,鼠標(biāo)上電機(jī)進(jìn)入Reset模式。Reset模式下主機(jī)會對鼠標(biāo)進(jìn)行檢測和配置,這個過程也被叫做鼠標(biāo)的初始化。主機(jī)在重新啟動和休眠喚醒時也會讓鼠標(biāo)進(jìn)入Reset模式并初始化鼠標(biāo)。Stream模式下設(shè)備可以向主機(jī)發(fā)送鼠標(biāo)數(shù)據(jù)報,當(dāng)然主機(jī)在這個時期也可能短暫的抑制鼠標(biāo)數(shù)據(jù)報的發(fā)送。

參考文獻(xiàn)