2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩74頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  摘 要</b></p><p>  本文主要介紹了基于AVR的移動小車通信與控制軟件設計。</p><p>  AVR單片機是ATMEL公司推出的世界上著名的高性能低功耗非易失性存儲器和數(shù)字集成電路的一流半導體,它的EEPROM電可擦除技術(shù)、閃速存儲器技術(shù)和質(zhì)量、高可靠性的生產(chǎn)技術(shù),在COMS器件生產(chǎn)領域中,ATMEL的先進設計水平、優(yōu)秀

2、的生產(chǎn)工藝及封裝技術(shù)一直處于世界的領先地位。</p><p>  軟件設計的核心芯片選用8位的AVR單片機ATmega32。采用C語言設計單片機應用系統(tǒng)程序,C語言具有良好的程序結(jié)構(gòu),適用于模塊化程序設計。通過C語言編譯器ICC AVR和集成開發(fā)環(huán)境AVR studio編譯和寫入硬件。連接PC機進行程序調(diào)試,按下鍵盤“m”“n”和空格鍵,在PC機中中能正確顯示。按下鍵盤“上”“下”“左”“右”鍵,小車能按照鍵盤的

3、指示,左轉(zhuǎn)、右轉(zhuǎn),或者前進、后退。</p><p>  軟件編程主要是依據(jù)PS/2鍵盤協(xié)議的,它是一種雙向同步串行協(xié)議。每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)并且每在時鐘線上發(fā)一個脈沖就被讀入。鍵盤可以發(fā)送數(shù)據(jù)到主機,而主機也可以發(fā)送數(shù)據(jù)到設備,但主機總是在總線上有優(yōu)先權(quán),它可以在任何時候抑制來自于鍵盤的通訊,只要把時鐘拉低即可。所有數(shù)據(jù)安排在字節(jié)中,每個字節(jié)為一幀,包含了11-12個位。程序?qū)懭牒?,小車能按照鍵盤的指示正常運

4、行。</p><p>  關鍵詞:AVR單片機;移動小車;C語言;PS/2鍵盤協(xié)議</p><p><b>  Abstract</b></p><p>  The article mainly introduced based on the AVR traversing crane correspondence and the control

5、 software design.</p><p>  The AVR microcontroller is in the world which ATMEL Corporation promotes the famous high performance low power loss nonvolatile storage and digital integrated circuit's first-c

6、lass semiconductor, its EEPROM electricity may clean the technology, dodge the fast memory technology and the quality, the redundant reliable production technology, in the COMS component realm of production, the ATMEL ad

7、vanced design horizontal, the outstanding technique of production and the seal technology has been in th</p><p>  Software design's core chip selects 8-bit AVR microcontroller ATmega32. Uses the C langua

8、ge design monolithic integrated circuit application system procedure, the C language has the good program structure, is suitable in the modularized program design.Through C language compiler ICC AVR and integrated develo

9、pment environment AVR studio translates and reads in the hardware. 窗體頂端Connects PC machine to carry on the program debugging, presses down the keyboard “m” “n” and the space bar, can demonstr</p><p>  The so

10、ftware programming is mainly based on the PS/2 keyboard protocol, its a bidirectional synchronous serial protocol. Data is sent one bit at a time on the Data line and is read on each time Clock is pulsed. The keyboard/mo

11、use can send data to the host and the host can send data to the device, but the host always has priority over the bus and can inhibit communication from the keyboard/mouse at any time by holding Clock low. All data is ar

12、ranged in bytes with each byte sent in a frame consist</p><p>  Key words: 窗體頂端</p><p>  AVR microcontroller; Traversing crane; C language; PS/2 keyboard protocol 窗體底端</p><p><b&

13、gt;  目 錄</b></p><p><b>  1 緒 論1</b></p><p>  1.1 AVR單片機的發(fā)展過程及現(xiàn)狀1</p><p>  1.2 基于AVR的移動小車設計原則1</p><p>  1.3 課題背景及意義2</p><p>  1.4

14、 論文結(jié)構(gòu)2</p><p>  2 AVR單片機簡介4</p><p>  2.1 AVR單片機的主要特征4</p><p>  2.2 AVR單片機的選型6</p><p>  2.3 AVR單片機的型號標識解析7</p><p>  3 移動小車硬件與編程環(huán)境9</p><

15、;p>  3.1 硬件電路原理圖9</p><p>  3.2 主要元器件的工作原理10</p><p>  3.3 軟件開發(fā)工具11</p><p>  3.3.1 C編譯器11</p><p>  3.3.2 集成開發(fā)環(huán)境16</p><p>  4 PS/2簡介17</p>

16、;<p>  4.1 PS/2鍵盤協(xié)議17</p><p>  4.1.1 概述17</p><p>  4.1.2 設備到主機的通訊17</p><p>  4.1.3 主機到設備的通訊20</p><p>  4.2 PS/2鍵盤接口22</p><p>  4.2.1 PS/2

17、接口簡介22</p><p>  4.2.2 掃描碼23</p><p>  4.2.2 通碼、斷碼和機打重復率23</p><p>  4.2.3 命令集24</p><p>  5 程序設計26</p><p>  5.1 移動小車的結(jié)構(gòu)框圖26</p><p>  5

18、.2 單片機C語言的主要特點26</p><p>  5.3 主流程圖27</p><p>  6 運行結(jié)果29</p><p>  6.1 程序下載方法29</p><p>  6.2 系統(tǒng)運行結(jié)果32</p><p><b>  結(jié) 論34</b></p>

19、<p><b>  致 謝35</b></p><p><b>  參考文獻36</b></p><p>  附錄A:英文原文37</p><p>  附錄B:中文翻譯49</p><p>  附錄C:程序代碼58</p><p><b>  1

20、 緒 論</b></p><p>  1.1 AVR單片機的發(fā)展過程及現(xiàn)狀</p><p>  早期單片機主要由于工藝及設計水平不高、功耗高和抗干擾性能差等原因,所以采取穩(wěn)妥方案:即采用較高的分頻系數(shù)對時鐘分頻,使得指令周期長,執(zhí)行速度慢。以后的CMOS單片機雖然采用提高時鐘頻率和縮小分頻系數(shù)等措施,但這種狀態(tài)并未被徹底改觀;此間雖有某些精簡指令集單片機(RISC)問世,但

21、依然沿襲對時鐘分頻的做法。</p><p>  ATMEL公司是世界上著名的高性能、低功耗、非易失性存儲器和數(shù)字集成電路的一流半導體制造公司。20世紀90年代初 ,ATMEL率先把MCS-51內(nèi)核與其擅長的Flash技術(shù)相結(jié)合,推出轟動世界的AT89系列單片機。1997年,ATMEL挪威設計中心出于市場需求考慮,充分發(fā)揮其Flash技術(shù)優(yōu)勢,推出全新配置的精簡指令集(RISC)單片機,簡稱AVR。幾年來,AVR單

22、片機已形成系列產(chǎn)品,其Attiny,AT90,Atmega分別對應為低、中、高檔產(chǎn)品。</p><p>  電子技術(shù)如今迅猛發(fā)展,尤其是單片機已廣泛地應用于軍事、工業(yè)、家用電器、智能玩具、便攜式智能儀表、機器人制作等領域,使產(chǎn)品功能、精度和質(zhì)量大幅度提高,且電路簡單,故障率低,可靠性高,成本低廉。AVR單片機價格低廉、可擦除1000次以上,不再有報廢品產(chǎn)生,且對掉電后數(shù)據(jù)的保存帶來方便,來電時能記住掉電時的工作狀

23、態(tài),給用戶帶來極高的可靠性,受到一致好評。</p><p>  1.2 基于AVR的移動小車設計原則</p><p>  可靠性:系統(tǒng)應保證長期安全地進行。系統(tǒng)中的硬軟件及信息資源應滿足可靠性的設計要求。</p><p>  安全性:系統(tǒng)應具有必要的安全保護和保密措施。</p><p>  抗干擾性:系統(tǒng)應具有較強的抗干擾性,對各類用戶的誤

24、操作應有提示或自動消除的能力。</p><p>  適應性:系統(tǒng)應對不斷發(fā)展和完善的統(tǒng)計核算方法,調(diào)查方法和指標體系具有廣泛的適應性。</p><p>  可擴充性:系統(tǒng)的硬件應具有擴充升級的余地,不可因硬軟件擴充、升級或改型而使原有的系統(tǒng)失去作用。</p><p>  實用性:注重采用成熟實用的技術(shù),使系統(tǒng)建設的投入產(chǎn)出比最高,能產(chǎn)生良好的社會效益和經(jīng)濟效益。&l

25、t;/p><p>  先進性:在實用的前提下,應盡可能跟蹤國內(nèi)外最先進的計算機硬軟件技術(shù)、信息技術(shù)及網(wǎng)絡通信技術(shù),使系統(tǒng)具有較高的性能指標。</p><p>  易操作性:貫徹面向最終用戶的原則,使用戶操作簡單直觀,易于掌握。</p><p>  1.3 課題背景及意義</p><p>  近十幾年來,隨著移動通信技術(shù)飛速發(fā)展,越來越多的信息采

26、集和遠程控制系統(tǒng)采用了無線數(shù)據(jù)傳送技術(shù),它與有線數(shù)傳相比主要有布線成本低、安裝簡便、便于移動的優(yōu)點,而且隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展和快速普及,越來越多的基于單片機為微控制器的的測控設備或智能儀器儀表都需要通過互聯(lián)網(wǎng)上進行數(shù)據(jù)交換或傳輸數(shù)據(jù)。</p><p>  隨著技術(shù)的飛速發(fā)展,單片機的應用范圍日益廣泛,已遠遠超出了計算機科學的領域。小道玩具、信用卡,大到航天器、機器人,從實現(xiàn)數(shù)據(jù)采集、過程控制、模糊控制等智能系

27、統(tǒng)到人類的日常生活,到處離不開單片機,而AVR的應用目前占主導地位,研究它的發(fā)展和應用具有現(xiàn)實意義。</p><p>  移動小車的設計也是對移動機器人技術(shù)的延伸,移動機器人是近年來發(fā)展起來的一門綜合學科,集中了機械、電子、計算機、自動控制以及人工智能等多學科最新研究成果,代表了機電一體化的最高成就。移動機器人在工業(yè)生產(chǎn)中常用來完成運輸和上下科等任務,同時也被廣泛用于農(nóng)業(yè)、醫(yī)療、軍事等不同行業(yè)。</p>

28、;<p>  雖然移動機器人的概念和工作硬件已經(jīng)出現(xiàn)了幾十年,但是近年又不斷發(fā)生的自然災害和持續(xù)的軍事沖突,促使世界各國工程師以新的眼光去重視機器人技術(shù)。移動機器人技術(shù)的范圍廣泛,從帶攝像頭的獨輪車,到攜有軍事裝備的無人駕駛飛機,它可以挽救無數(shù)人的生命,因此成為最有希望的開發(fā)項目。</p><p>  本設計就是在Atmega32單片機的基礎上將小車的通信與控制智能化,便于人們使用和改進,并能在此基

29、礎上做進一步的開發(fā)。</p><p><b>  1.4 論文結(jié)構(gòu)</b></p><p>  本論文主要介紹了基于AVR單片機的移動小車控制與通信軟件設計,共從以下六部分進行了介紹:</p><p>  第一部分介紹了AVR單片機的發(fā)展過程及現(xiàn)狀,設計原則以及課題相關的背景和意義;</p><p>  第二部分對于A

30、VR單片機的主要特征、選型和型號標識做了介紹;</p><p>  第三部分介紹了小車的部分硬件和開發(fā)環(huán)境;</p><p>  第四部分對PS/2鍵盤協(xié)議和接口進行了說明;</p><p>  第五部分是程序設計部分,介紹了移動小車的結(jié)構(gòu)框圖,單片機C語言編程的主要特點和程序的主流程圖;</p><p>  第六部分介紹了移動小車的程序下載

31、方法和系統(tǒng)運行結(jié)果。</p><p>  2 AVR單片機簡介</p><p>  2.1 AVR單片機的主要特征</p><p>  高可靠性、功能強、高速度、低功耗和低價位,一直是衡量單片機性能的重要指標,也是單片機占領市場、賴以生存的必要條件。</p><p>  AVR單片機廢除了機器周期,拋棄復雜指令計算機(CISC)追求指令完

32、備的做法;采用精簡指令集,以字作為指令長度單位,將內(nèi)容豐富的操作數(shù)與操作碼安排在一字之中(指令集中占大多數(shù)的單周期指令都是如此),取指周期短,又可預取指令,實現(xiàn)流水作業(yè),故可高速執(zhí)行指令。當然這種速度上的升躍,是以高可靠性為其后盾的。</p><p>  AVR單片機硬件結(jié)構(gòu)采取8位機與16位機的折中策略,即采用局部寄存器存堆(32個寄存器文件)和單體高速輸入/輸出的方案(即輸入捕獲寄存器、輸出比較匹配寄存器及相

33、應控制邏輯)。提高了指令執(zhí)行速度(1Mips/MHz),克服了瓶頸現(xiàn)象,增強了功能;同時又減少了對外設管理的開銷,相對簡化了硬件結(jié)構(gòu),降低了成本。故AVR單片機在軟/硬件開銷、速度、性能和成本諸多方面取得了優(yōu)化平衡,是高性價比的單片機。 </p><p>  AVR單片機內(nèi)嵌高質(zhì)量的Flash程序存儲器,擦寫方便,支持ISP和IAP,便于產(chǎn)品的調(diào)試、開發(fā)、生產(chǎn)、更新。內(nèi)嵌長壽命的EEProm可長期保存關鍵數(shù)據(jù),避

34、免斷電丟失。片內(nèi)大容量的RAM不僅能滿足一般場合的使用,同時也更有效的支持使用高級語言開發(fā)系統(tǒng)程序,并可像MCS-51單片機那樣擴展外部 RAM。 </p><p>  AVR單片機的I/O線全部帶可設置的上拉電阻、可單獨設定為輸入/輸出、可設定(初始)高阻輸入、驅(qū)動能力強(可省去功率驅(qū)動器件)等特性,使的得I/O口資源靈活、功能強大、可充分利用。 </p><p>  AVR單片機片內(nèi)具

35、備多種獨立的時鐘分頻器,分別供URAT、I2C、SPI使用。其中與8/16位定時器配合的具有多達10 位的預分頻器,可通過軟件設定分頻系數(shù)提供多種檔次的定時時間。AVR單片機獨有的“以定時器/計數(shù)器(單)雙向計數(shù)形成三角波,再與輸出比較匹配寄存器配合,生成占空比可變、頻率可變、相位可變方波的設計方法(即脈寬調(diào)制輸出PWM)”更是令人耳目一新。</p><p>  增強性的高速同/異步串口,具有硬件產(chǎn)生校驗碼、硬件

36、檢測和校驗偵錯、兩級接收緩沖、波特率自動調(diào)整定位(接收時)、屏蔽數(shù)據(jù)幀等功能,提高了通信的可靠性,方便程序編寫,更便于組成分布式網(wǎng)絡和實現(xiàn)多機通信系統(tǒng)的復雜應用,串口功能大大超過MCS-51/96單片機的串口,加之AVR單片機高速,中斷服務時間短,故可實現(xiàn)高波特率通訊。 </p><p>  面向字節(jié)的高速硬件串行接口TWI、SPI。TWI與I2C接口兼容,具備ACK信號硬件發(fā)送與識別、地址識別、總線仲裁等功能,

37、能實現(xiàn)主/從機的收/發(fā)全部4種組合的多機通信。SPI支持主/從機等4種組合的多機通信。</p><p>  AVR單片機有自動上電復位電路、獨立的看門狗電路、低電壓檢測電路BOD,多個復位源(自動上下電復位、外部復位、看門狗復位、BOD復位),可設置的啟動后延時運行程序,增強了嵌入式系統(tǒng)的可靠性。</p><p>  AVR單片機具有多種省電休眠模式,且可寬電壓運行(5-2.7V),抗干擾

38、能力強,可降低一般8位機中的軟件抗干擾設計工作量和硬件的使用量。 AVR單片機技術(shù)體現(xiàn)了單片機集多種器件(包括FLASH程序存儲器、看門狗、EEPROM、同/異步串行口、TWI、SPI、A/D模數(shù)轉(zhuǎn)換器、定時器/計數(shù)器等)和多種功能(增強可靠性的復位系統(tǒng)、降低功耗抗干擾的休眠模式、品種多門類全的中斷系統(tǒng)、具輸入捕獲和比較匹配輸出等多樣化功能的定時器/計數(shù)器、具替換功能的I/O端口…… )于一身,充分體現(xiàn)了單片機技術(shù)的從“片自為戰(zhàn)”向“片

39、上系統(tǒng)SoC”過渡的發(fā)展方向。</p><p>  單片機已廣泛地應用于軍事、工業(yè)、家用電器、智能玩具、便攜式智能儀表和機器人制作等領域,使產(chǎn)品功能、精度和質(zhì)量大幅度提升,且電路簡單,故障率低,可靠性高,成本低廉。單片機種類很多,在簡易機器人制作和創(chuàng)新中,為什么選用AVR單片機呢? </p><p>  1、簡便易學,費用低廉 </p><p>  首先,對于非專業(yè)

40、人員來說,選擇AVR單片機的最主要原因,是進入AVR單片機開發(fā)的門檻非常低,只要會操作電腦就可以學習AVR單片機的開發(fā)。單片機初學者只需一條ISP下載線,把編輯、調(diào)試通過的軟件程序直接在線寫入AVR單片機,即可以開發(fā)AVR單片機系列中的各種封裝的器件。AVR單片機因此在業(yè)界號稱“一線打天下”。 </p><p>  其次,AVR單片機便于升級。AVR程序?qū)懭胧侵苯釉陔娐钒迳线M行程序修改、燒錄等操作,這樣便于產(chǎn)品升

41、級。 </p><p>  2、高速、低耗、保密 </p><p>  首先,AVR單片機是高速嵌入式單片機:</p><p>  (1)AVR單片機具有預取指令功能,即在執(zhí)行一條指令時,預先把下一條指令取進來,使得指令可以在一個時鐘周期內(nèi)執(zhí)行。</p><p> ?。?)多累加器型,數(shù)據(jù)處理速度快。AVR單片機具有32個通用工作寄存器,相當

42、于有32條立交橋,可以快速通行。</p><p>  (3)中斷響應速度快。AVR單片機有多個固定中斷向量入口地址,可快速響應中斷。 </p><p>  其次,AVR單片機耗能低。對于典型功耗情況,WDT關閉時為100na,更適用于電池供電的應用設備。有的器件最低1.8 V即可工作。</p><p>  再次,AVR單片機保密性能好。它具有不可破解的位加密鎖Loc

43、k Bit技術(shù),保密位單元深藏于芯片內(nèi)部,無法用電子顯微鏡看到。</p><p>  3、I/O口功能強,具有A/D轉(zhuǎn)換等電路 </p><p> ?。?) AVR單片機的I/O口是真正的I/O口,能正確反映I/O口輸入/輸出的真實情況。工業(yè)級產(chǎn)品,具有大電流(灌電流)10~40 am,可直接驅(qū)動可控硅SCR或繼電器,節(jié)省了外圍驅(qū)動器件。 </p><p>  (2

44、) AVR單片機內(nèi)帶模擬比較器,I/O口可用作A/D轉(zhuǎn)換,可組成廉價的A/D轉(zhuǎn)換器。ATMega48/8/16等器件具有8路10位A/D。 </p><p> ?。?) 部分AVR單片機可組成零外設元件單片機系統(tǒng),使該類單片機無外加元器件即可工作,簡單方便,成本又低。</p><p> ?。?)AVR單片機可重設啟動復位,以提高單片機工作的可靠性。有看門狗定時器實行安全保護,可防止程序走亂

45、(飛),提高了產(chǎn)品的抗干擾能力。</p><p>  4、有功能強大的定時器/計數(shù)器及通訊接口</p><p>  定時/計數(shù)器T/C有8位和16位,可用作比較器。計數(shù)器外部中斷和PWM(也可用作D/A)用于控制輸出,某些型號的AVR單片機有3~4個PWM,是作電機無級調(diào)速的理想器件。</p><p>  AVR單片機有串行異步通訊UART接口,不占用定時器和SPI

46、同步傳輸功能,因其具有高速特性,故可以工作在一般標準整數(shù)頻率下,而波特率可達576K。</p><p>  2.2 AVR單片機的選型</p><p>  單片機是硬件系統(tǒng)的核心,它直接決定了整個系統(tǒng)的功能和性能,同時,不同封裝形式的單片機芯片也會影響到系統(tǒng)的物理尺寸和重量,因此單片機的選型主要考慮兩個因素。</p><p>  從Atmel公司于1997年首次推

47、出AVR單片機到現(xiàn)在,AVR單片機已經(jīng)形成了一系列產(chǎn)品,其中Tiny、AT90、Atmega系列單片機分別對應低、中、高檔產(chǎn)品,根據(jù)不同的要求,有30多種型號可供用戶選擇。 </p><p> ?。?)低檔的Tiny系列。該系列是專門為需要小型微控制器的簡單應用而優(yōu)化設計的,有很高的性價比,主要有8個引腳的Tiny11/12/13/15、20個引腳的Tiny26和28個引腳的Tiny28。其中Tiny15和Tin

48、y26有10位的A/D轉(zhuǎn)化器,Tiny26還有128字節(jié)的RAM,Tiny11和Tiny28具有流水線特征。該系列的產(chǎn)品適用于家用電器和簡單的控制,如空調(diào)、冰箱、微波爐、煙霧報警器等。 </p><p> ?。?)中檔的AT90S系列。自2002年以來,Atmel公司對AVR單片機產(chǎn)品線進行了調(diào)整,逐步停止了該系列產(chǎn)品的生產(chǎn)。主要有AT90S1200/2313/8515/8535等。</p><

49、;p>  (3)高檔的ATmega系列。該系列是目前Atmel公司的主流產(chǎn)品,它不僅性能優(yōu)越,同時也有非常好的性價比。該系列主要有ATmega8/16/32/64/128( 存儲容量為8/16/32/64/128 KB)以及ATmega8515/8535等。</p><p>  近年來,隨著電子產(chǎn)業(yè)的發(fā)展和市場需求的變化,Atmel公司不斷調(diào)整生產(chǎn)線,在上述三個系列之外又相繼退出了LCD AVR、USB A

50、VR、CAN AVR等系列產(chǎn)品。 </p><p>  2.3 AVR單片機的型號標識解析</p><p> ?。?) 型號緊跟的字母,表示電壓工作范圍。帶“V”:1.8-5.5V;若缺省,不帶“V”:2.7-5.5V。</p><p>  其中帶“L”與不帶“L”的區(qū)別:“L”是“Low”的縮寫。</p><p>  “L”表示它可以支持

51、低電壓,它支持的電壓范圍為:2.7-5.5V。不帶“L”的則表示支持電壓范圍為:4.5-5.5V。 </p><p>  例:ATmega48-20AU,不帶“V”表示工作電壓為2.7-5.5V。 </p><p> ?。?) 后綴的數(shù)字部分,表示支持的最高系統(tǒng)時鐘。 </p><p>  例:ATmega48-20AU,“20”表示可支持最高為20MHZ的系統(tǒng)時鐘

52、。 </p><p> ?。?) 后綴第一(第二)個字母,表示封裝。“P”:DIP封裝,“A”:TQFP封裝,“M”:MLF封裝。 </p><p>  例:ATmega48-20AU,“A”表示TQFP封裝。 </p><p> ?。?) 后綴最后一個字母,表示應用級別。“C”:商業(yè)級,“I”:工業(yè)級(有鉛)、“U”工業(yè)級(無鉛)。 </p><

53、;p>  例:ATmega48-20AU,“U”表示無鉛工業(yè)級。ATmega48-20AI,“I”表示有鉛工業(yè)級。 </p><p>  3 移動小車硬件與編程環(huán)境</p><p>  3.1 硬件電路原理圖</p><p>  電路原理圖包括主芯片部分和驅(qū)動電路模塊,如圖3.1所示。</p><p>  圖3.1 移動小車通信與控

54、制電路原理圖</p><p>  3.2 主要元器件的工作原理</p><p><b>  1、AVR單片機</b></p><p>  采用ATmega系列的ATmega32作為控制系統(tǒng)的核心芯片。</p><p>  ATmega32是基于增強的AVR RISC結(jié)構(gòu)的低功耗8位CMOS微控制器。由于其先進的指令集以

55、及單時鐘周期指令執(zhí)行時間,ATmega32的數(shù)據(jù)吞吐率高達1 MIPS/MHz,從而可以緩減系統(tǒng)在功耗和處理速度之間的矛盾。</p><p>  ATmega32的片內(nèi)集成了32KB的系統(tǒng)內(nèi)可編程Flash(具有同時讀/寫的能力,即RWW)、1KB EEPROM、2KB SRAM、32個通用I/O口線、32個通用工作寄存器,具有用于邊界掃描的JTAG接口,支持片內(nèi)調(diào)試與編程,3個具有比較模式的靈活的定時器/計數(shù)器

56、(T/C),片內(nèi)/外中斷,可編程串行USART,面向字節(jié)的兩線串行接口,8路10位具有可選差分輸入級可編程增益(TQFP封裝)的ADC,具有片內(nèi)振蕩器的可編程看門狗定時器以及1個SPI串行端口。</p><p><b>  2、電機驅(qū)動模塊</b></p><p>  選用SGS公司的L298N,內(nèi)部包含4通道邏輯驅(qū)動電路。是一種二相和四相電機的專用驅(qū)動器,即內(nèi)含二個

57、H橋的高電壓大電流雙全橋式驅(qū)動器,接收標準TTL邏輯電平信號。</p><p>  芯片L298屬于H橋集成電路,其輸出電流為2000mA,最高電流4A,最高工作電壓36V,可以驅(qū)動感性負載,比如:中性直流電機,驅(qū)動器、布進電機和開關電源晶體管,特別是其輸入端可以與單片機直接相連,從而很方便地受單片機控制。當驅(qū)動小型直流電機時,可以直接控制兩路電機,并可以實現(xiàn)電機正轉(zhuǎn)與反轉(zhuǎn),實現(xiàn)此功能只需改變輸入端的邏輯電平。&

58、lt;/p><p>  本模塊加入多級驅(qū)動,超高輸入阻抗,對輸入信號沒有驅(qū)動要求,適合各類I/O口,應用廣泛。并且具有體積小,控制方便的特點。</p><p><b>  3、調(diào)試與編程工具</b></p><p>  選用Atmel公司日前宣布推出針對AVR(R)微控制器的AVR Dragon(TM)開發(fā)工具。AVR Dragon為30多種不同的

59、AVR Flash微控制器提供了一種完備的片上調(diào)試與編程工具,售價僅為49美元,是業(yè)界最完善的低成本開發(fā)工具。</p><p>  Atmel憑借AVR Dragon,為低成本開發(fā)工具樹立了新的標準。AVR Dragon支持所有AVR微控制器的各種編程模式,還支持高達32 Kb的Flash 程序存儲器的片上調(diào)試。</p><p>  AVR Dragon的售價遠低于同類全功能工具的價格,卻

60、能滿足各種編程和調(diào)試需求。AVR Dragon與外部目標板以及板上原型區(qū)共同使用,可在不添加任何硬件的情況下,進行編程和調(diào)試。</p><p>  通過對質(zhì)量的關注,讓一個工具套件囊括整個AVR微控制器系列,工程人員只需運用幾項平價工具,就可獲得完整的開發(fā)環(huán)境。Atmel 的AVR開發(fā)工具總監(jiān)Dag Arne Braend 表示:“低成本、應用廣泛和優(yōu)質(zhì),一直是我們AVR開發(fā)工具的宗旨。AVR Dragon 是又

61、一個低成本工具,但功能強大,足以應付開發(fā)環(huán)境的日常需要。它支持30多種不同的 AVR 微控制器?!?lt;/p><p>  所支持的 AVR 編程和調(diào)試協(xié)議:</p><p> ?。?)在系統(tǒng)編程 (ISP) 3線 AVR 編程協(xié)議;</p><p>  (2)符合 JTAG 編程4線 IEEE(R) 1149.1的 JTAG 接口;</p><p&

62、gt; ?。?)高壓串行編程;</p><p><b> ?。?)平行編程;</b></p><p>  (5)可對高達32 Kb Flash 的設備進行 JTAG 調(diào)試;</p><p> ?。?)debugWIRE 單線 AVR 調(diào)試協(xié)議。</p><p>  AVR Dragon由USB線驅(qū)動,也可由高達300 m

63、A的外部目標驅(qū)動,進行編程或調(diào)試。如果該目標已由外部電源驅(qū)動,AVR Dragon會對目標和AVR Dragon之間的所有信號進行調(diào)適和電平轉(zhuǎn)換。</p><p>  3.3 軟件開發(fā)工具</p><p>  3.3.1 C編譯器</p><p>  1、ICC AVR簡介</p><p>  AVR系列單片機的集成開發(fā)環(huán)境有Image

64、Craft公司的ICC AVR和Atmel公司的AVR Studio等。其中ICC AVR因支持標準C語言對AVR系列單片機的編程而得到了廣泛的應用。ICC AVR嚴格來說只是支持AVR單片機程序設計的一個C編譯器,它并不提供對程序的軟件仿真功能。然而ICC AVR對源程序編譯輸出的*cof映像文件可以與AVR Studio無縫地連接,通過AVR Studio調(diào)試器來對程序進行軟件仿真。</p><p>  自A

65、TMEL公司的AT90系列單片機誕生以來有很多第三方廠商為AT90系列開發(fā)了用于程序開發(fā)的C語言工具,ICCAVR就是ATMEL公司推薦的第三方C編譯器之一。</p><p>  圖3.2是ICC AVR7.0版本的窗口設置,分為5大區(qū):</p><p>  圖3.2 ICC AVR7.0的窗口設置</p><p><b>  (1)菜單項 </b

66、></p><p>  包括文件、編輯、搜索、視圖、工程菜單、工具菜單、電腦終端、幫助。</p><p><b>  (2)快捷菜單圖標</b></p><p>  從左到右依次為:新建,打開,保存,打印,剪切,復制,粘貼,查找,編譯,停止,工程屬性,到第一個錯誤,下一個錯誤,應用向?qū)С绦駻pplication Builder,ISP對話

67、框。 </p><p><b> ?。?)程序編輯區(qū)</b></p><p>  所有的程序編輯工作在這里完成。</p><p>  (4)編譯狀態(tài)顯示欄</p><p>  顯示編譯狀態(tài),查看報錯情況進行相應修改。</p><p><b> ?。?)文件列表框</b><

68、;/p><p>  文件分類管理查看,這里的分類只是為了方便管理,并沒有實際的分開。 </p><p>  文件分為.c程序文件,.h頭文件,說明文檔。 </p><p>  ICCAVR是一種符合ANSI標準的C語言來開發(fā)MCU(單片機)程序的一個工具,功能合適、使用方便、技術(shù)支持好,它主要有以下幾個特點: </p><p> ?。?)ICCA

69、VR是一個綜合了編輯器和工程管理器的集成工作環(huán)境(IDE); </p><p> ?。?)源文件全部被組織到工程之中,文件的編輯和工程的構(gòu)筑也在這個環(huán)境中完成,錯誤顯示在狀態(tài)窗口中,并且當你點擊編譯錯誤時,光標自動跳轉(zhuǎn)到錯誤的那一行; </p><p> ?。?)該工程管理器還能直接產(chǎn)生INTEL HEX格式文件的燒寫文件(該格式的文件可被大多數(shù)編程器所支持,可以直接下載到芯片中使用)和符

70、合AVRStudio的調(diào)試文件(COFF格式); </p><p>  (4)ICCAVR是一個32位的程序,支持長文件名; </p><p> ?。?)ICCAVR是一個綜合了編輯器和工程管理器的集成開發(fā)環(huán)境(IDE),是一個純32位的程序,Win 2000、Win XP和Win 7環(huán)境下運行。</p><p>  2、ICCAVR中的文件類型及其擴展名</

71、p><p>  文件類型是由它們的擴展名決定的IDE和編譯器可以使用以下幾種類型的文件。</p><p><b> ?。?)輸入文件</b></p><p>  .c   擴展名,表示是C語言源文件;</p><p>  .s   擴展名,表示是匯編語言源文件;</p>

72、<p>  .h   擴展名,表示是C語言的頭文件;</p><p>  .prj  擴展名,表示是工程文件 這個文件保存由IDE所創(chuàng)建和修改的一個工程的有關信息;</p><p>  .a   擴展名,庫文件,它可以由幾個庫封裝在一起libcavr.a是一個包含了標準C的庫和AVR特殊程序調(diào)用的基本庫,如果庫被引用,鏈接器會將

73、其鏈接到您的模塊或文件中,您也可以創(chuàng)建或修改一個符合你需要的庫。</p><p><b> ?。?)輸出文件</b></p><p>  .s   對應每個C語言源文件,由編譯器在編譯時產(chǎn)生的匯編輸出文件;</p><p>  .o  由匯編文件匯編產(chǎn)生的目標文件,多個目標文件可以鏈接成一個可執(zhí)行文件;</p

74、><p>  .hex  INTEL HEX 格式文件,其中包含了程序的機器代碼;</p><p>  .eep  INTEL HEX 格式文件,包含了EEPROM的初始化數(shù)據(jù);</p><p>  .cof  COFF格式輸出文件,用于在ATMEL的AVR Studio環(huán)境下進行程序調(diào)試;</p><p>  .l

75、st     列表文件,在這個文件中列舉出了目標代碼對應的最終地址;</p><p>  .mp    內(nèi)存映象文件,它包含了您程序中有關符號及其所占內(nèi)存大小的信息;</p><p>  .cmd  NoICE 2.xx,調(diào)試命令文件;</p><p>  .noi  

76、; NoICE 3.xx,調(diào)試命令文件;</p><p>  .dbg   ImageCraft ,調(diào)試命令文件。</p><p>  3、ICCAVR硬件訪問的C編程</p><p> ?。?)訪問 AVR 的低層硬件 </p><p>  AVR 系列使用高級語言編程時有很高的 C 語言密度,它允許你對訪問目

77、標 MCU 的底層硬件進行訪問。由于AVR 性能,除了要最大程序地優(yōu)化代碼外很少使用匯編。偶然情況下目標MCU的硬件特點在C語言中不能很好地使用,很顯然使用在線匯編和預處理宏能訪問這些特點。</p><p>  頭文件 io*.h(如 io8515.h iom603.h)等定義了指定AVR MCU 的 IO寄存器細節(jié)。這些文件是從 ATMEL官方發(fā)布的文件經(jīng)過修改,以匹配這個編譯器的語法要求 文件。macro

78、s.h 定義了許多有用的宏,例如宏 UART_TRANSMIT_ON( )能使UART 開始工作。 </p><p>  這個編譯器的效率很高,當訪問由IO 寄存器映射的內(nèi)存時能產(chǎn)生單周期指令象in、out 、sbis、 sbi 等。參考 IO 寄存器。 </p><p>  注意:老的頭文件 avr.h 定義IO寄存器的bit 有一些模糊,盡管 io*.h 定義了它們的bit的位置。因

79、此使用 io*.h和 IO 寄存器的 bit,很多時候你將需要使用定義在 macros.h文件中的BIT()宏。例如: </p><p><b>  avr.h: </b></p><p>  #define SRE 0x80 // 外部 RAM 使能 </p><p>  ... (你的 C 程序) </p>

80、<p>  MCUCR |= SRE; </p><p><b>  io8515.h </b></p><p>  #define SRE 7 </p><p>  ... (你的 C 程序) </p><p>  #include <macros.h> </p>

81、;<p>  MCUCR |= BIT(SRE); </p><p><b>  (2)位操作 </b></p><p>  一個共同的任務是編程微控制器 MCU 打開或關閉 IO 寄存器的一些位(bit)。很幸運, 標準 C 有較好的和適用的位操作功能,而沒有借助于匯編指令或其它非標準 C 結(jié)構(gòu),C 定義了一些按位進行的運算是很有用的。 <

82、/p><p>  a | b :按位或,這個表達式指示中a 被表達式中的b按位進行或運算。這慣用于打開某些位,尤其常用|=的形式,例如:</p><p>  PORTA |= 0x80;// 打開位7 (最高位) </p><p>  a & b :按位與,這個運;算在檢查某些位是否置 1 時有用,例如:</p><p>  If(

83、(PORTA & 0x81) == 0) // 檢查位7 和位0 </p><p>  注意圓括號需要括在&運算符的周圍,因為它和==相比運算優(yōu)先級較低,這是 C程序中很多錯誤的原因之一。 </p><p>  a ^ b :按位異或,這個運算對一個位取反有用。例如,在下面的例子中,位7是被翻轉(zhuǎn)的:</p><p>  PORTA ^= 0x80

84、;// 翻轉(zhuǎn)位7 </p><p>  ~a :按位取反,在表達式中這個運算執(zhí)行一個取反,當用按位與運算關閉某些位時與這個運算組合使用尤其有用,如: </p><p>  PORTA &= ~0x80;// 關閉位7 </p><p>  這個編譯器對這些運算能產(chǎn)生最理想的機器指令,例如:sbic 指令可以用在根據(jù)位的狀態(tài)進行條件分枝的按位與運算中。&l

85、t;/p><p>  3.3.2 集成開發(fā)環(huán)境</p><p>  1、AVR Studio 環(huán)境簡介</p><p>  AVR Studio 軟件是一款用于開發(fā)AVR單片機的集成開發(fā)環(huán)境(IDE)。它是一款免費軟件,由ATMEL公司開發(fā)并免費提供給用戶,不僅支持Atmegal16單片機,基本完全支持AVR全系列單片機的開發(fā)。用戶可以在ATMEL公司的官方網(wǎng)站上自由

86、下載。AVR Studio內(nèi)含了項目管理器、源代碼編輯器、AVR匯編語言編譯器、軟件模擬和實時仿真功能,借助于仿真器,還可以實現(xiàn)JTAG ICE實時仿真功能,以及AVR prog串行程序下載、STK500/JTAG ICE串行程序下載。但是AVR Studio 不能進行C語言程序的編譯,但是仍然是瑕不掩瑜,借助于其強大的軟件仿真功能,基本上所有的第三方AVR高級語言開發(fā)軟件,如ICCAVR、CodeVersion、AVR等均以內(nèi)置或外掛

87、的形式,支持使用AVR Studio進行仿真。</p><p>  ATMEL 公司的AVR Studio軟件同時有兩種版本存在,分別是4.x和3.x。AVR Studio 3.x集成了AVR Studio之前版本的一貫風格,而AVR Studio 4.x的內(nèi)核被重新設計過,采用了XML技術(shù),更利于對ATMEL公司的新器件與開發(fā)工具的支持,所有對于ATMEL公司的新產(chǎn)品,往往首先被AVR Studio4.x支持。

88、</p><p>  2、AVR Studio的特點</p><p> ?。?)支持AVR匯編程序的編輯、編譯、連接以及生成目標代碼;</p><p> ?。?)內(nèi)嵌AVR GCC高級語言接口;</p><p>  (3)內(nèi)含AVR 軟件模擬器;</p><p> ?。?)仿真調(diào)試平臺還可以配合ATMEL公司設計推出的

89、多種類型的仿真器,如實時在板仿真器ICE40、ICE50,實時在片仿真器JTAG ICE、JTAGICE mkⅡ等,以實現(xiàn)系統(tǒng)的在線的硬件仿真調(diào)試功能和目標代碼的下載功能。</p><p>  本設計使用AVR Studio4.0+ICCAVR來進行AVR單片機的開發(fā)。</p><p><b>  4 PS/2簡介</b></p><p> 

90、 4.1 PS/2鍵盤協(xié)議</p><p><b>  4.1.1 概述</b></p><p>  PS/2鍵盤履行一種雙向同步串行協(xié)議。換句話說,每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)并且每在時鐘線上發(fā)一個脈沖就被讀入。鍵盤可以發(fā)送數(shù)據(jù)到主機,而主機也可以發(fā)送數(shù)據(jù)到設備,但主機總是在總線上有優(yōu)先權(quán),它可以在任何時候抑制來自于鍵盤的通訊,只要把時鐘拉低即可。 </p&g

91、t;<p>  從鍵盤發(fā)送到主機的數(shù)據(jù)在時鐘信號的下降沿(當時鐘從高變到低的時候)被讀取;從主機發(fā)送到鍵盤的數(shù)據(jù)在上升沿(當時鐘從低變到高的時候)被讀取。不管通訊的方向怎樣,鍵盤總是產(chǎn)生時鐘信號。如果主機要發(fā)送數(shù)據(jù),它必須首先告訴設備開始產(chǎn)生時鐘信號。最大的時鐘頻率是33kHz,而且大多數(shù)設備工作在10-20kHz。如果你要制作一個PS/2設備,推薦你把頻率控制在15kHz 左右,這就意味著時鐘應該是高40微秒低40微秒。

92、 </p><p>  所有數(shù)據(jù)安排在字節(jié)中,每個字節(jié)為一幀,包含了11-12個位,這些位的含義如下:</p><p>  1 個起始位,總是為0 ;</p><p>  8 個數(shù)據(jù)位,低位在前; </p><p>  1 個校驗位,奇校驗; </p><p>  1 個停止位,總是為 1; </p>&

93、lt;p>  1 個應答位,僅在主機對設備的通訊中。</p><p>  如果數(shù)據(jù)位中包含偶數(shù)個1,校驗位就會置1;如果數(shù)據(jù)位中包含奇數(shù)個1,校驗位就會置0。數(shù)據(jù)位中1的個數(shù)加上校驗位總為奇數(shù)(這就是奇校驗)。這是用來錯誤檢測。 </p><p>  當主機發(fā)送數(shù)據(jù)給鍵盤/鼠標時,設備回送一個握手信號來應答數(shù)據(jù)包已經(jīng)收到,這個位不會出現(xiàn)在設備發(fā)送數(shù)據(jù)到主機的過程中。 </p&g

94、t;<p>  4.1.2 設備到主機的通訊</p><p>  數(shù)據(jù)和時鐘線都是集電極開路結(jié)構(gòu)(正常保持高電平)。當鍵盤或鼠標等待發(fā)送數(shù)據(jù)時,它首先檢查時鐘以確認它是否是高電平。如果不是,那么是主機抑制了通訊,設備必須緩沖任何要發(fā)送的數(shù)據(jù)直到重新獲得總線的控制權(quán)(鍵盤有16字節(jié)的緩沖區(qū),而鼠標的緩沖區(qū)僅存儲最后一個要發(fā)送的數(shù)據(jù)包)。如果時鐘線是高電平,設備就可以開始傳送數(shù)據(jù)。</p>

95、<p>  每位在時鐘的下降沿被主機讀入,如圖4.1和圖4.2所示:</p><p>  圖4.1設備到主機的通訊(當時鐘為高,數(shù)據(jù)線改變狀態(tài),在時鐘信號的下降沿數(shù)據(jù)被鎖存)</p><p>  圖4.2 Q鍵的掃描碼從鍵盤發(fā)送到計算機,通道A是時鐘信號,通道B是數(shù)據(jù)信號</p><p>  時鐘頻率為10-16.7kHz。從時鐘脈沖的上升沿到一個數(shù)據(jù)

96、轉(zhuǎn)變的時間至少要有5微秒。數(shù)據(jù)變化到時鐘脈沖的下降沿的時間至少要有5微秒并且不大于25微秒。這個定時非常重要——應該嚴格遵循它。主機可以在第11個時鐘脈沖(停止位)之前把線拉低,導致設備放棄發(fā)送當前字節(jié)(這是非常罕見的)。在停止位發(fā)送后,設備在發(fā)送下個包前至少應該等待50毫秒。這將給主機時間當它處理接收到的字節(jié)時抑制發(fā)送(主機在收到每個包時,通常自動做這個)。在主機釋放抑制后,設備至少應該在發(fā)送任何數(shù)據(jù)前等50毫秒。</p>

97、<p>  發(fā)送一個單一字節(jié)從仿真鍵盤到主機的大體過程如下:</p><p>  (1)等待Clock = high; </p><p> ?。?)延時50微秒 ;</p><p> ?。?)Clock s 仍舊為high? </p><p>  No—到第 1步; </p><p>  (4)Data

98、= high? </p><p>  No—放棄 (并且從主機讀取字節(jié)) ;</p><p> ?。?)延遲20毫秒 (=40 微秒 to the time Clock is pulled low in sending the start bit) ;</p><p>  (6)輸出起始位0 ;</p><p> ?。?)輸出8個數(shù)據(jù)位 ;

99、</p><p> ?。?)輸出校驗位 ;</p><p> ?。?)輸出停止位1 ;</p><p> ?。?0)延遲30毫秒 (=50 微秒 from the time Clock is released in sending the stop bit)。</p><p>  在發(fā)送所有這些位的每一位后,測試時鐘確認主機是否把它拉低了,

100、這說明主機要放棄這次傳送。</p><p>  通過以下步驟可發(fā)送單個位: </p><p> ?。?)準備數(shù)據(jù)位(將需要發(fā)送的數(shù)據(jù)位放到數(shù)據(jù)線上); </p><p> ?。?)延時20μs; </p><p> ?。?)把時鐘線拉低; </p><p> ?。?)延時40μs; </p><p&

101、gt; ?。?)釋放時鐘線; </p><p> ?。?)延時20μs。</p><p>  4.1.3 主機到設備的通訊 </p><p>  被發(fā)送的包有點不同于主機到設備通訊過程。</p><p>  首先,PS/2設備總是產(chǎn)生時鐘信號。如果主機要發(fā)送數(shù)據(jù),它必須首先把時鐘和數(shù)據(jù)線設置為“請求發(fā)送”狀態(tài):通過下拉時鐘線至少100微秒來

102、抑制通訊;通過下拉數(shù)據(jù)線來應用“請求發(fā)送”然后釋放時鐘。</p><p>  設備應該在不超過10毫秒的間隔內(nèi)就要檢查這個狀態(tài)。當設備檢測到這個狀態(tài), 它將開始產(chǎn)生時鐘信號,并且時鐘脈沖標記下輸入八個數(shù)據(jù)位和一個停止位。主機僅當時鐘線為低的時候改變數(shù)據(jù)線,而數(shù)據(jù)在時鐘脈沖的上升沿被鎖存。這在發(fā)生在設備到主機通訊的過程中正好相反。</p><p>  在停止位發(fā)送后,設備要應答接收到的

103、字節(jié),就把數(shù)據(jù)線拉低并產(chǎn)生最后一個時鐘脈沖。如果主機在第11個時鐘脈沖后不釋放數(shù)據(jù)線,設備將繼續(xù)產(chǎn)生時鐘脈沖直到數(shù)據(jù)線被釋放(然后設備將產(chǎn)生一個錯誤)。</p><p>  主機可以在第11個時鐘脈沖(應答位)前中止一次傳送,只要下拉時鐘線至少100微秒。</p><p>  圖4.3用圖形表示,圖4.4以單獨的時序表示了由主機產(chǎn)生的信號及由PS/2設備產(chǎn)生的信號。注意應答位時序的改變——

104、數(shù)據(jù)改變發(fā)生在時鐘線為高的時候(不同于其它11位是當它為低的時候)。</p><p>  圖4.3 主機到設備的通訊</p><p>  圖4.4 主機到設備通訊的詳細過程</p><p>  圖4.4描述了兩個重要的定時條件:(a)和(b)。(a)在主機最初把書記現(xiàn)拉低后,設備開始產(chǎn)生時鐘脈沖的時間,必須步大于15ms;(b)數(shù)據(jù)包被發(fā)送的時間必須不大于2ms.如

105、果這兩個條件不滿足,主機將產(chǎn)生一個錯誤。在包收到后,主機為了處理數(shù)據(jù)立刻把時鐘線拉低來抑制通訊。如果主機發(fā)送的命令要求有一個回應,這個回應必須在書籍釋放時鐘線后20ms之內(nèi)被收到。如果沒有收到,則主機產(chǎn)生一個錯誤。在設備到主機通訊的情況中,時鐘改變后的5微秒內(nèi)不應該發(fā)生數(shù)據(jù)改變的情況。</p><p>  在主程序中至少每 10 毫秒檢測數(shù)據(jù)線是否為低,如果數(shù)據(jù)線已被主機拉低,則從主機讀取一個字節(jié)。</p&

106、gt;<p>  PS/2設備從主機接收一個字節(jié)的步驟如下:</p><p> ?。?)等待時鐘線為高; </p><p> ?。?)數(shù)據(jù)線仍然為低嗎?</p><p>  不,有錯誤發(fā)生,放棄; </p><p>  (3)讀入8個數(shù)據(jù)位;</p><p><b>  (4)讀入校驗位;<

107、;/b></p><p><b> ?。?)讀入停止位;</b></p><p>  (6)數(shù)據(jù)線仍舊為0 嗎? </p><p>  是,保持時鐘直到數(shù)據(jù)=1,然后產(chǎn)生一個錯誤; </p><p> ?。?)輸出應答位; </p><p> ?。?)檢查校驗位; </p>&

108、lt;p>  如果校驗位不正確則產(chǎn)生一個錯誤; </p><p> ?。?)延遲45微秒,給主機時間抑制下次的傳送。</p><p>  在讀入這些位后,測試時鐘線數(shù)否被主機拉低,這就意味著放棄這次傳送。</p><p>  下面的步驟可用于發(fā)出應答位。 </p><p>  (1)延時15μs; </p><p&g

109、t;  (2)把數(shù)據(jù)線拉低; </p><p>  (3)延時5μs; </p><p> ?。?)把時鐘線拉低; </p><p> ?。?)延時40μs; </p><p> ?。?)釋放時鐘線; </p><p> ?。?)延時5μs; </p><p><b>  (8)釋放數(shù)

110、據(jù)線。</b></p><p>  4.2 PS/2鍵盤接口</p><p>  4.2.1 PS/2接口簡介</p><p>  隨著計算機工業(yè)的發(fā)展,作為計算機最常用輸入設備的鍵盤也日新月異。1981年IBM推出了IBM PC/XT鍵盤及其接口標準。該標準定義了83鍵,采用5腳DIN連接器和簡單的串行協(xié)議。實際上,第一套鍵盤掃描碼集并沒有主機到鍵

111、盤的命令。為此,1984年IBM推出了IBM AT鍵盤接口標準。該標準定義了84~101鍵,采用5腳DIN連接器和雙向串行通訊協(xié)議,此協(xié)議依照第二套鍵盤掃描碼集設有8個主機到鍵盤的命令。到了1987年,IBM又推出了PS/2鍵盤接口標準。該標準仍舊定義了84~101鍵,但是采用6腳mini-DIN連接器,該連接器在封裝上更小巧,仍然用雙向串行通訊協(xié)議并且提供有可選擇的第三套鍵盤掃描碼集,同時支持17個主機到鍵盤的命令?,F(xiàn)在,市面上的鍵盤

112、都和PS/2及AT鍵盤兼容,只是功能不同而已。</p><p>  物理上的PS/2 端口是兩類連接器中的一種:5腳的DIN或6腳的mini-DIN。這兩種連接器(在電氣特性上)是十分類似的。實際上兩者只有一點不同那就是管腳的排列, 這就意味著這兩類連接器可以很容易用一種簡單的硬件連線的適配器來轉(zhuǎn)換。這種適配器大約每個值6美元,或者你可以根據(jù)任意兩種連接器的對應管腳關系做你自己的適配器。</p>

113、<p>  PC鍵盤可以有6腳的mini-DIN或5腳的DIN連接器。如果你的鍵盤是6 腳的mini-DIN,而你的計算機是5 腳的DIN(或者相反),這兩類連接器可以用上面提到的適配器來兼容。具有6 腳mini-DIN 的鍵盤通常被叫做“PS/2”鍵盤,而那些有 5 腳 DIN 叫做“AT”設備(XT”鍵盤也使用 腳 DIN,但它們非常古老并且多年前就不生產(chǎn)了)。其實這兩種連接器都只有四個腳有意義。它們分別是Clock(時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論