基于c51的轉(zhuǎn)速測(cè)量課程設(shè)計(jì)論文_第1頁(yè)
基于c51的轉(zhuǎn)速測(cè)量課程設(shè)計(jì)論文_第2頁(yè)
基于c51的轉(zhuǎn)速測(cè)量課程設(shè)計(jì)論文_第3頁(yè)
基于c51的轉(zhuǎn)速測(cè)量課程設(shè)計(jì)論文_第4頁(yè)
基于c51的轉(zhuǎn)速測(cè)量課程設(shè)計(jì)論文_第5頁(yè)
已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、常熟理工學(xué)院課程設(shè)計(jì)報(bào)告PAGE - PAGE 37 -基于單片機(jī)的轉(zhuǎn)速測(cè)量顯示裝置設(shè)計(jì)目錄 TOC o 1-3 h z u HYPERLINK l _Toc329268873 課程設(shè)計(jì)任務(wù)書(shū) PAGEREF _Toc329268873 h 1 HYPERLINK l _Toc329268874 一 概 述 PAGEREF _Toc329268874 h 2 HYPERLINK l _Toc329268875 1.1背景概述和應(yīng)用介紹: PAGEREF _Toc329268875 h 2 HYPERLINK l _Toc329268876 1.2 總體設(shè)計(jì)方案 PAGEREF _Toc3292

2、68876 h 3 HYPERLINK l _Toc329268877 1.2.1 硬件電路設(shè)計(jì)思路 PAGEREF _Toc329268877 h 3 HYPERLINK l _Toc329268878 1.2.2 軟件設(shè)計(jì)思路 PAGEREF _Toc329268878 h 3 HYPERLINK l _Toc329268879 二 硬件電路的設(shè)計(jì) PAGEREF _Toc329268879 h 4 HYPERLINK l _Toc329268880 2.1 傳感器的選型 PAGEREF _Toc329268880 h 4 HYPERLINK l _Toc329268881 2.1.1 霍

3、爾元件的應(yīng)用 PAGEREF _Toc329268881 h 4 HYPERLINK l _Toc329268882 2.1.2 UGN3144霍爾開(kāi)關(guān)元件 PAGEREF _Toc329268882 h 4 HYPERLINK l _Toc329268883 2.2傳感器接口電路設(shè)計(jì) PAGEREF _Toc329268883 h 5 HYPERLINK l _Toc329268884 2.3 單片機(jī)最小系統(tǒng)的設(shè)計(jì) PAGEREF _Toc329268884 h 6 HYPERLINK l _Toc329268885 2.3.1 AT89C51單片機(jī)的簡(jiǎn)介 PAGEREF _Toc32926

4、8885 h 6 HYPERLINK l _Toc329268886 2.3.2 復(fù)位電路 PAGEREF _Toc329268886 h 9 HYPERLINK l _Toc329268887 2.3.3時(shí)鐘電路 PAGEREF _Toc329268887 h 10 HYPERLINK l _Toc329268888 2.4 顯示電路的設(shè)計(jì) PAGEREF _Toc329268888 h 10 HYPERLINK l _Toc329268889 三 系統(tǒng)軟件設(shè)計(jì) PAGEREF _Toc329268889 h 14 HYPERLINK l _Toc329268890 3.1 主程序初始化 P

5、AGEREF _Toc329268890 h 14 HYPERLINK l _Toc329268891 3.2主程序流程圖程序流程圖 PAGEREF _Toc329268891 h 16 HYPERLINK l _Toc329268892 四 仿真及結(jié)果 PAGEREF _Toc329268892 h 18 HYPERLINK l _Toc329268893 4.1 軟件調(diào)試 PAGEREF _Toc329268893 h 18 HYPERLINK l _Toc329268894 4.2 仿真結(jié)果 PAGEREF _Toc329268894 h 19 HYPERLINK l _Toc32926

6、8895 設(shè)計(jì)總結(jié) PAGEREF _Toc329268895 h 20 HYPERLINK l _Toc329268896 參考文獻(xiàn) PAGEREF _Toc329268896 h 21 HYPERLINK l _Toc329268897 附錄一:原理圖 PAGEREF _Toc329268897 h 22 HYPERLINK l _Toc329268898 附錄二:?jiǎn)纹瑱C(jī)程序 PAGEREF _Toc329268898 h 23 HYPERLINK l _Toc329268899 致 謝 PAGEREF _Toc329268899 h 25一 概 述1.1背景概述和應(yīng)用介紹:智能化轉(zhuǎn)速測(cè)量

7、可以對(duì)轉(zhuǎn)速進(jìn)行測(cè)量,電機(jī)在運(yùn)行的過(guò)程中,需要對(duì)其平穩(wěn)性進(jìn)行監(jiān)測(cè),適時(shí)對(duì)轉(zhuǎn)速的測(cè)量有效地可以反映電機(jī)的狀況。本系統(tǒng)主要由傳感器,單片機(jī)AT89C51構(gòu)成。可以對(duì)大范圍轉(zhuǎn)速進(jìn)行測(cè)量,測(cè)量的轉(zhuǎn)速精度高,實(shí)現(xiàn)對(duì)電機(jī)轉(zhuǎn)速的測(cè)量。單片機(jī)的英文名稱是Micro Controller unit,縮寫為MCU,又稱為微控制器,它是一種面向控制的大規(guī)模集成電路芯片。它具有功能強(qiáng)、體積小、可靠性高、應(yīng)用簡(jiǎn)單靈活,因而使用非常廣泛,有力地推動(dòng)各行業(yè)的技術(shù)發(fā)展和更新?lián)Q代。 本文首先在第二章緒論介紹了此系統(tǒng)的功能、技術(shù)指標(biāo)以及主要內(nèi)容等;在第三章論述了總體設(shè)計(jì)過(guò)程,確定了技術(shù)指標(biāo)及器件的選擇;第四章著重描述了系統(tǒng)硬件電路

8、設(shè)計(jì)、硬件設(shè)計(jì)框圖及所使用的各種芯片功能與特性;在第五章中重點(diǎn)剖析了軟件設(shè)計(jì)的過(guò)程;最后在第六章中具體論述單片機(jī)、電平轉(zhuǎn)換電路、通信的處理及調(diào)試。系統(tǒng)主要實(shí)現(xiàn)功能是:AT89C51單片機(jī)接收傳感器傳來(lái)的脈沖信號(hào),單片機(jī)根據(jù)中斷,以及內(nèi)部定時(shí)器進(jìn)行記數(shù)計(jì)算出電機(jī)轉(zhuǎn)速送到LED顯示。傳感器電路、轉(zhuǎn)速測(cè)量、LED顯示、電平轉(zhuǎn)換電路設(shè)計(jì)等將在以下章節(jié)作詳細(xì)地設(shè)計(jì)。傳感器單 片 機(jī) AT89C51LED顯示驅(qū)動(dòng)電路圖2-1 系統(tǒng)硬件電路1.2 總體設(shè)計(jì)方案1.2.1 硬件電路設(shè)計(jì)思路硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)要求,在選擇的機(jī)型的基礎(chǔ)上,具體確定系統(tǒng)中所要使用的元器件,設(shè)計(jì)出系統(tǒng)的原理框圖、電路原理圖。

9、89C51單片機(jī)通過(guò)INT0輸入傳感器的脈沖信號(hào),P0口P2口接LED動(dòng)態(tài)顯示。轉(zhuǎn)速測(cè)量部分的硬件設(shè)計(jì)思路:本次設(shè)計(jì)單片機(jī)部分的硬件框圖如 圖21所示。光電傳感器整形電路CPU執(zhí)行單元(單片機(jī)) 時(shí)鐘電路顯示電路圖3-1 單片機(jī)部分硬件框圖1.2.2 軟件設(shè)計(jì)思路軟件需要解決的是定時(shí)器1的記數(shù)和定時(shí)器0的計(jì)時(shí)設(shè)定、由于測(cè)量的轉(zhuǎn)速范圍大,所以低速和高速都要考慮在內(nèi),關(guān)鍵在于一個(gè)四字節(jié)除三字節(jié)程序的實(shí)現(xiàn)。顯示部分、需要有一個(gè)二進(jìn)制到十進(jìn)制的轉(zhuǎn)化程序,以及轉(zhuǎn)換成非壓縮BCD 的程序后、才能進(jìn)行調(diào)用查表程序送到顯示。軟件工作流程:傳感器利用磁電效應(yīng)產(chǎn)生一周期脈沖向單片機(jī)的定時(shí)器1(P3.1)口發(fā)送一個(gè)

10、脈沖信號(hào),定時(shí)器0工作在內(nèi)部定時(shí),TH0、TL0設(shè)定初值為50um,作為除數(shù)的低兩字節(jié),利用軟件記數(shù)器、定時(shí)器0作為時(shí)間信號(hào)。定時(shí)完畢讀取內(nèi)部記數(shù)值,再對(duì)二進(jìn)制數(shù)進(jìn)行一系列變換后調(diào)用查表顯示程序,顯示在數(shù)碼管上。二 硬件電路的設(shè)計(jì)2.1 傳感器的選型2.1.1 霍爾元件的應(yīng)用使用霍爾器件檢測(cè)磁場(chǎng)的方法極為簡(jiǎn)單,將霍爾器件做成各種形式的探頭,放在被測(cè)磁場(chǎng)中,因霍爾器件只對(duì)垂直于霍爾片表面的磁感應(yīng)強(qiáng)度敏感,因而必須令磁力線和器件表面垂直,通電后即可由輸出電壓得到被測(cè)磁場(chǎng)的磁感應(yīng)強(qiáng)度。若不垂直,則應(yīng)求出其垂直分量來(lái)計(jì)算被測(cè)磁場(chǎng)的磁感應(yīng)強(qiáng)度值。而且,因霍爾元件的尺寸極小,可以進(jìn)行多點(diǎn)檢測(cè),由單片機(jī)進(jìn)行

11、數(shù)據(jù)處理,可以得到場(chǎng)的分布狀態(tài),并可對(duì)狹縫,小孔中的磁場(chǎng)進(jìn)行檢測(cè)用磁場(chǎng)作為被傳感物體的運(yùn)動(dòng)和位置信息載體時(shí),一般采用永久磁鋼來(lái)產(chǎn)生工作磁場(chǎng)。例如,用一個(gè)542.5(mm3)的釹鐵硼號(hào)磁鋼,就可在它的磁極表面上得到約2300高斯的磁感應(yīng)強(qiáng)度。在空氣隙中,磁感應(yīng)強(qiáng)度會(huì)隨距離增加而迅速下降。在計(jì)算總有效工作氣隙時(shí),應(yīng)從霍爾片表面算起。在封裝好的霍爾電路中,霍爾片的深度在產(chǎn)品手冊(cè)中會(huì)給出。因?yàn)榛魻柶骷枰ぷ麟娫矗谧鬟\(yùn)動(dòng)或位置傳感時(shí),一般令磁體隨被檢測(cè)物體運(yùn)動(dòng),將霍爾器件固定在工作系統(tǒng)的適當(dāng)位置,用它去檢測(cè)工作磁場(chǎng),再?gòu)臋z測(cè)結(jié)果中提取被檢信息。2.1.2 UGN3144霍爾開(kāi)關(guān)元件1UGN3144霍

12、爾開(kāi)關(guān)元件的工作原理UGN3144霍爾開(kāi)關(guān)元件屬于開(kāi)關(guān)型霍爾傳感器(集成霍爾開(kāi)關(guān)),它是把霍爾片產(chǎn)生的霍爾電壓VH放大后驅(qū)動(dòng)觸發(fā)電路,輸出電壓是能反映B的變化的方脈沖。集成霍爾開(kāi)關(guān)由穩(wěn)壓器、霍爾電勢(shì)發(fā)生器(即硅霍爾片)、差分放大器、施密特觸發(fā)器和OC門輸出五個(gè)基本部分組成。在輸入端(1、2之間)輸入電壓Vcc,經(jīng)穩(wěn)壓器穩(wěn)壓后加在霍爾發(fā)生器的兩電流端。根據(jù)霍爾效應(yīng)原理,當(dāng)霍爾片處于磁場(chǎng)中時(shí),霍爾發(fā)生器的兩電壓端將會(huì)有一個(gè)霍爾電勢(shì)差VH 輸出。VH 經(jīng)放大器放大以后送至施密特觸發(fā)器整形,使其成為方波輸送到OC門輸出。圖2-1 開(kāi)關(guān)型霍爾傳感器的原理當(dāng)外磁場(chǎng)B達(dá)到“工作點(diǎn)”Bop時(shí),觸發(fā)器輸出高電平

13、(相對(duì)于地電位),三極管導(dǎo)通,此時(shí),OC門輸出端輸出低電平,通常稱這種狀態(tài)為“開(kāi)”;當(dāng)外磁場(chǎng)B達(dá)到“釋放點(diǎn)”Brp時(shí),觸發(fā)器輸出低電平,三極管截止,OC門輸出高電平,這時(shí)稱其為“關(guān)”狀態(tài)。Bop與Brp是有一定差值的,此差值BH=Bop-Brp稱為霍爾開(kāi)關(guān)的磁滯。B的變化不超過(guò)BH,霍爾開(kāi)關(guān)不翻轉(zhuǎn),這就使得開(kāi)關(guān)輸出穩(wěn)定可靠。集成霍爾開(kāi)關(guān)傳感器的輸出特性如圖(3-6)。圖2-2 開(kāi)關(guān)型霍爾傳感器的輸出特性UGN3144主要技術(shù)性能與特點(diǎn)Allegro MicroSystems 公司生產(chǎn)的UGN 3144 器件是雙極性磁場(chǎng)即N,S交變場(chǎng)磁啟動(dòng)的霍爾開(kāi)關(guān)電路,它的主要性能特點(diǎn)如下:(1)電源電壓為4

14、.524V;(2)連續(xù)輸出電流為25MA;(3)磁通密度不受限制,輸出關(guān)斷電壓為25V;(4)具有反向電壓保護(hù)(反向電壓為35V)和極好的溫度穩(wěn)定性;3UGN3144霍爾開(kāi)關(guān)元件的引腳功能和封裝形式UGN3144 采用SOT89或者TO-243封裝。其中,引腳端1為電源正端,引腳端2為接地,引腳端3為輸出(OC形式)。圖2-3 UGN3144的封裝結(jié)構(gòu)2.2傳感器接口電路設(shè)計(jì)UGN3144霍爾開(kāi)關(guān)元件芯片內(nèi)部包含有穩(wěn)壓電路,霍爾效應(yīng)電壓產(chǎn)生電路,信號(hào)放大器,施密特觸發(fā)器和一個(gè)集電極開(kāi)路輸出電路。集電極開(kāi)路輸出電路可連續(xù)輸出25MA電流,可直接控制繼電器,雙向可控硅,可控硅,LED和燈負(fù)載。其具

15、有輸出自舉電路,也可直接與雙極型和MOS邏輯電路連接。轉(zhuǎn)速測(cè)量是開(kāi)關(guān)型霍爾元件的典型應(yīng)用,UGN3144霍爾開(kāi)關(guān)元件感應(yīng)被測(cè)量量的轉(zhuǎn)速,當(dāng)被測(cè)量量每轉(zhuǎn)動(dòng)一周,霍爾傳感器便輸出一個(gè)脈沖,因?yàn)樵撈骷榧姌O開(kāi)路輸出,故輸出端加接一上拉電阻,其電壓電壓范圍寬達(dá)4.5 V到24 V,對(duì)磁感應(yīng)強(qiáng)度B要求不嚴(yán),其輸出電壓經(jīng)9012后可提高其負(fù)載能力。其具體電路圖如3-8所示:圖2-4 UGN3144霍爾開(kāi)關(guān)元件與單片機(jī)的連接電路2.3 單片機(jī)最小系統(tǒng)的設(shè)計(jì)2.3.1 AT89C51單片機(jī)的簡(jiǎn)介單片機(jī)我們采用AT89C51(其引腳圖如圖5-1),相較于INTEL公司的8051它本身帶有一定的優(yōu)點(diǎn)。AT89C

16、51是一種帶4K字節(jié)閃爍可編程可擦除只讀存貯器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機(jī)。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器, AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。圖2-5 AT89C51引腳圖主要特性:與MCS-51 兼容4K字節(jié)可編程閃爍存儲(chǔ)器 壽命:1000寫/擦循環(huán)數(shù)據(jù)保留時(shí)間

17、:10年全靜態(tài)工作:0Hz-24Hz三級(jí)程序存儲(chǔ)器鎖定128*8位內(nèi)部RAM32可編程I/O線兩個(gè)16位定時(shí)器/計(jì)數(shù)器5個(gè)中斷源 可編程串行通道低功耗的閑置和掉電模式片內(nèi)振蕩器和時(shí)鐘電路管腳說(shuō)明:1.VCC:供電電壓;2.GND:接地;3.P0口:P0口為一個(gè)8位漏極開(kāi)路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一次寫1時(shí),被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時(shí),P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時(shí),P0輸出原碼,此時(shí)P0外部必須被拉高。4.P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖

18、器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時(shí),P1口作為第八位地址接收。5.P2口:P2口為一個(gè)內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個(gè)TTL門電流,當(dāng)P2口被寫“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),P2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫時(shí),P2口

19、輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。6.P3口:P3口管腳是8個(gè)帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個(gè)TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3口也可作為AT89C51的一些特殊功能口,如下表3-1所示:7.RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。8.ALE/PROG:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時(shí),A

20、LE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。表2-1 P3口的第二功能引 腳第 二 功 能信 號(hào) 名 稱P3.0RXD串行數(shù)據(jù)接收P3.1TXD串行數(shù)據(jù)發(fā)送P3.2INT0外部中斷0請(qǐng)求P3.4INT1外部中斷1請(qǐng)求P3.4T0定時(shí)器/計(jì)數(shù)器0輸入P3.5T1定時(shí)器/計(jì)數(shù)器1輸入P3.6WR外部RAM寫選通P3.7RD外部RAM讀選通P3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。此時(shí), ALE只有在執(zhí)行MOVX,MO

21、VC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無(wú)效。9./PSEN:外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次/PSEN有效。但在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的/PSEN信號(hào)將不出現(xiàn)。 10./EA/VPP:當(dāng)/EA保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000H-FFFFH),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 11.XTAL1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路

22、的輸入。 12.XTAL2:來(lái)自反向振蕩器的輸出。2.3.2 復(fù)位電路計(jì)算機(jī)在啟動(dòng)運(yùn)行時(shí)都需要復(fù)位,使中央處理器CPU和系統(tǒng)中的其它部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開(kāi)始工作。MCS-51單片機(jī)有一個(gè)復(fù)位引腳RST,它是史密特觸發(fā)輸入(對(duì)于CHMOS單片機(jī),RST引腳的內(nèi)部有一個(gè)拉低電阻),當(dāng)振蕩器起振后該引腳上出現(xiàn)2個(gè)機(jī)器周期(即24個(gè)時(shí)鐘周期)以上的高電平,使器件復(fù)位,只要RST保持高電平,MCS-51保持復(fù)位狀態(tài)。此時(shí)ALE、PSEN、P0、P1、P2、P3口都輸出高電平。RST變?yōu)榈碗娖胶?,退出?fù)位,CPU從初始狀態(tài)開(kāi)始工作。 本設(shè)計(jì)中采用電容進(jìn)行復(fù)位,其電路圖如下:圖2-6

23、復(fù)位電路2.3.3時(shí)鐘電路 時(shí)鐘電路是計(jì)算機(jī)的心臟,它控制著計(jì)算機(jī)的工作節(jié)奏。MCS-51單片機(jī)允許的時(shí)鐘頻率是因型號(hào)而異的典型值為12MHZ 。MCS-51內(nèi)部都有一個(gè)反相放大器, XTAL1、XTAL2分別為反相放大器輸入和輸出端,外接定時(shí)反饋元件以后就組成振蕩器,產(chǎn)生時(shí)鐘送至單片機(jī)內(nèi)部的各個(gè)部件。電路中的電容C1和C2典型值通常選擇為30pf左右。對(duì)外接電容的值雖然沒(méi)有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器的頻率的高低,振蕩器的穩(wěn)定性和起振的快速性。晶振的振蕩頻率的范圍通常是在1.2MHZ-12MHZ之間。晶振的頻率越高,則系統(tǒng)的時(shí)鐘頻率也就越高,單片機(jī)的運(yùn)行速度也就越快。但反過(guò)來(lái)運(yùn)行速度

24、快對(duì)存儲(chǔ)器的速度要求就高,對(duì)印制電路板的工藝要求也高,即要求線簡(jiǎn)的寄生電容要小;晶振和電容應(yīng) 盡可能安裝得與單片機(jī)芯片靠近,以減少寄生電容,更好地保證振蕩器穩(wěn)定,可靠地工作。綜合考慮,本設(shè)計(jì)采用30pf的電容,因?yàn)榫д竦念l率無(wú)法精確達(dá)到12MHZ,所以一般情況采用11.0592MHZ(本例中采用12MHZ),其電路圖如下所示:圖2-7 AT89C51的時(shí)鐘電路2.4 顯示電路的設(shè)計(jì)顯示電路采用LED數(shù)碼管動(dòng)態(tài)顯示,LED(Light-Emitting Diode)是一種外加電壓從而渡過(guò)電流并發(fā)出可見(jiàn)光的器件。LED是屬于電流控制器件,使用時(shí)必須加限流電阻。LED有單個(gè)LED和八段LED之分,也

25、有共陰和共陽(yáng)兩種。顯示器結(jié)構(gòu):常用的七段顯示器的結(jié)構(gòu)如圖44所示。發(fā)光二極管的陽(yáng)極連在一起的稱為共陽(yáng)極顯示器,陰極連在一起的稱為共陰極顯示器。1位顯示器由八個(gè)發(fā)光二極管組成,其中七個(gè)發(fā)光二極管ag控制七個(gè)筆畫(段)的亮或暗,另一個(gè)控制一個(gè)小數(shù)點(diǎn)的亮和暗,這種筆畫式的七段顯示器能顯示的字符較少,字符的開(kāi)頭有些失真,但控制簡(jiǎn)單,使用方便。此外,要畫出電路圖,首先還要搞清楚他的引腳圖的分布,在了解了正確的引腳圖后才能進(jìn)行正確的字型段碼編碼。才能顯示出正確的數(shù)字來(lái),如圖4-5所示,為七段數(shù)碼管的管腳圖。圖2-8 七段發(fā)光顯示器的結(jié)構(gòu) 圖2-9 七段發(fā)光顯示器管腳的結(jié)構(gòu)驅(qū)動(dòng)方式:采用的數(shù)碼管驅(qū)動(dòng)為74l

26、s245,其結(jié)構(gòu)簡(jiǎn)單,使用方便,圖4-6為74ls245的圖以及各個(gè)引腳的分布功能介紹。圖2-10 74ls245管腳的結(jié)構(gòu)顯示方式:為了節(jié)省I/O口線,我們采用的動(dòng)態(tài)顯示方式。所謂動(dòng)態(tài)顯示,就一位一位地輪流點(diǎn)亮各位顯示器(掃描),對(duì)于每一位顯示器來(lái)說(shuō),每隔一段時(shí)間點(diǎn)亮一次。顯示器的亮度既與導(dǎo)通電流有關(guān),也與點(diǎn)亮?xí)r間和間隔時(shí)間的比例有關(guān)。調(diào)整電流和時(shí)間參數(shù),可實(shí)現(xiàn)亮度較高較穩(wěn)定的顯示。若顯示器的位數(shù)不大于8位,則控制顯示器公共極電位只需8位口(稱為掃描口),控制各位顯示器所顯示的字形也需一個(gè)8位口(稱為段數(shù)據(jù)口)。本次設(shè)計(jì)要求的轉(zhuǎn)速測(cè)量范圍60r/min-36000r/min,所以只需要5位數(shù)

27、碼管即可。5位共陰極顯示器和AT89C51的接口邏輯如圖4-7所示。AT89C51的P0口作為段數(shù)據(jù)口,接上拉電阻到顯示器的各個(gè)段;P2口作為掃描口,經(jīng)同相驅(qū)動(dòng)器7407接顯示器公共極。對(duì)于圖4-7中的5位顯示器,在AT89C51RAM存貯器中設(shè)置五個(gè)顯示緩沖器單元30H35H,分別存放5位顯示器的顯示數(shù)據(jù),AT89C51的P2口掃描輸出總是只在一位為低電平,即5位顯示器中僅有一位公共陰極為低電平,其它位為高電平,AT89C51的P0口相應(yīng)位(陰極為低)的顯示數(shù)據(jù)的段數(shù)據(jù),使該位顯示出一個(gè)字符,其它們?yōu)榘担来蔚馗淖働2口輸出為高的位,P0口輸出對(duì)應(yīng)的段數(shù)據(jù),5位顯示器就顯示出由緩沖器中顯示數(shù)

28、據(jù)所確定的字符。圖2-11 四位動(dòng)態(tài)顯示電路三 系統(tǒng)軟件設(shè)計(jì)3.1 主程序初始化(1).定時(shí)器的初始化AT89C51 有兩個(gè)定時(shí)器/計(jì)數(shù)器T0 和T1,每個(gè)定時(shí)器/計(jì)數(shù)器均可設(shè)置成為16位,也可以設(shè)置成為13 位進(jìn)行定時(shí)或計(jì)數(shù)。計(jì)數(shù)器的功能是對(duì)T0 或T1 外來(lái)脈沖的進(jìn)行計(jì)數(shù),外部輸入脈沖負(fù)跳變時(shí),計(jì)數(shù)器進(jìn)行加1。定時(shí)功能是通過(guò)計(jì)數(shù)器的計(jì)數(shù)來(lái)實(shí)現(xiàn)的,每個(gè)機(jī)器周期產(chǎn)生1 個(gè)計(jì)數(shù)脈沖,即每個(gè)機(jī)器周期計(jì)數(shù)器加1,因此定時(shí)時(shí)間等于計(jì)數(shù)個(gè)數(shù)乘以機(jī)器周期。定時(shí)器工作時(shí),每接收到1 個(gè)計(jì)數(shù)脈沖(或機(jī)器周期)則在設(shè)定的初值基礎(chǔ)上自動(dòng)加1,當(dāng)所有位都位1時(shí),再加1 就會(huì)產(chǎn)生溢出,將向CPU 提出定時(shí)器溢出中斷身

29、請(qǐng)。當(dāng)定時(shí)器采用不同的工作方式和設(shè)置不同的初值時(shí),產(chǎn)生溢出中斷的定時(shí)值和計(jì)數(shù)值將不同,從而可以適應(yīng)不同的定時(shí)或計(jì)數(shù)控制。定時(shí)器有4 種工作方式:方式0、方式2、方式2 和方式3,在此對(duì)工作方式不做具體介紹。工作方式寄存器TMOD 的設(shè)定:GATEC/TM1MOGATEC/TM1M0 TMOD 各位的含義如下:GATE:門控位,用于控制定時(shí)/計(jì)數(shù)器的啟動(dòng)是否受外部中斷請(qǐng)求信號(hào)的影響。C/T:定時(shí)或計(jì)數(shù)方式選擇位,當(dāng)C/T=1 時(shí)工作于計(jì)數(shù)方式;當(dāng)C/T=0 時(shí)工作于定時(shí)方式。M1、M0 為工作方式選擇位,用于對(duì)T0 的四種工作方式,T1 的三種工作方式進(jìn)行選擇,選擇情況如下表6-1:M1M0=0

30、0 為方式0;M1M0=01 為方式1;表3-1 M1、M0 為工作方式選擇位M0M1工作方式方式說(shuō)明00110101012313位定時(shí)、計(jì)數(shù)器16位定時(shí)、計(jì)數(shù)器8位自動(dòng)重置定時(shí)、計(jì)數(shù)器兩個(gè)8位定時(shí)。計(jì)數(shù)器(只有T0有)13 位定時(shí)/計(jì)數(shù)器16 位定時(shí)/計(jì)數(shù)器8 位自動(dòng)重置定時(shí)/計(jì)數(shù)器兩個(gè)8 位定時(shí)/計(jì)數(shù)器(只有T0 有)(2)中斷允許控制MCS-51 單片機(jī)中沒(méi)有專門的開(kāi)中斷和關(guān)中斷指令,對(duì)各個(gè)中斷源的允許和屏蔽是由內(nèi)部的中斷允許寄存器IE 的_各位來(lái)控制的。中斷允許寄存器IE 的字節(jié)地址為A8H,可以進(jìn)行位尋址.表3-2 中斷位尋址表IED7D6D5D4D3D2D1(A8H)EAET2ES

31、ST1EX1EX0EA:中斷允許總控位。EA=0,屏蔽所有的中斷請(qǐng)求;EA=1,開(kāi)放中斷。ET2:定時(shí)器/計(jì)數(shù)器T2 的溢出中斷允許位ES:串行口中斷允許位。ET1:定時(shí)器/計(jì)數(shù)器T1 的溢出中斷允許位。EX1:外部中斷INT1 的中斷允許位。ET0:定時(shí)器/計(jì)數(shù)器T0 的溢出中斷允許位。EX0:外部中斷INT0 的中斷允許位。3.2主程序流程圖程序流程圖1.主程序流程開(kāi)始刷新數(shù)碼管延時(shí)2ms顯示初始化定時(shí)器計(jì)時(shí)器 圖3.1 主程序流程圖2.顯示子程序流程開(kāi)始顯示緩存初始化Led顯示初始化數(shù)碼顯示 圖3.2 顯示子程序流程圖3.定時(shí)計(jì)數(shù)子程序流程圖3.3 定時(shí)計(jì)數(shù)子程序流程圖四 仿真及結(jié)果4.

32、1 軟件調(diào)試單片機(jī)程序調(diào)試思路:?jiǎn)纹瑱C(jī)部分調(diào)試工作的完成主要應(yīng)用LCA51軟件來(lái)完成,這一部分工作首先將轉(zhuǎn)速測(cè)量系統(tǒng)中的各個(gè)模塊計(jì)算程序中的除法程序、雙字節(jié)的二-十進(jìn)制數(shù)制轉(zhuǎn)換程序,壓縮BCD碼十進(jìn)制數(shù)轉(zhuǎn)換為非壓縮BCD碼的程序以及顯示部分程序調(diào)試好,不斷調(diào)試,不斷修改直到正確為止。LCA51軟件是一種非常實(shí)用的多窗口編輯、調(diào)試軟件。 LCA51軟件全面支持匯編語(yǔ)言,C51語(yǔ)言,PL/M51語(yǔ)言的編譯/連接、調(diào)試。軟件支持單文件方式和工程化管理兩種模式。用戶可自定義各種語(yǔ)言的關(guān)鍵詞.軟件完全支持源語(yǔ)句級(jí)在線調(diào)試。高級(jí)語(yǔ)言還支持源文件調(diào)試和匯編語(yǔ)言指令行對(duì)照調(diào)試。用戶可同時(shí)打開(kāi)多個(gè)窗體編輯、調(diào)試

33、、變量觀察.用戶可在線對(duì)原文件直接編輯、編譯、連接、加載和調(diào)試,軟件支持編譯錯(cuò)誤源文件定位。調(diào)試時(shí)用戶可動(dòng)態(tài)觀察、修改設(shè)定變量(包括CPU片內(nèi)寄存器、特殊寄存器及外部寄存器、內(nèi)存)的值。調(diào)試主要方法和技巧:通常一個(gè)調(diào)試程序應(yīng)該具備至少四種性能:跟蹤、斷點(diǎn)、查看變量、更改值。1.跟蹤調(diào)試調(diào)試應(yīng)用程序所提供的重要性能也許就是跟蹤應(yīng)用程序。跟蹤應(yīng)用程序使用戶能夠在運(yùn)行應(yīng)用程序時(shí),看到PC指針在應(yīng)用源代碼程序中的確切位置,LCA51提供以下方法對(duì)程序的執(zhí)行進(jìn)行跟蹤。2.斷點(diǎn)調(diào)試 如果已知程序中某塊代碼實(shí)際運(yùn)行正常的情況下,仍用跟蹤調(diào)試方法,將大大浪費(fèi)時(shí)間,而且很枯燥,因此調(diào)試中第二個(gè)重要工具是在源代碼

34、中預(yù)定處設(shè)置斷點(diǎn),大多數(shù)調(diào)試程序通過(guò)使用斷點(diǎn)中止程序執(zhí)行。3.查看變量 顯然,通過(guò)一系列指令查看應(yīng)用程序,了解導(dǎo)致某一錯(cuò)誤的執(zhí)行也是一種非常有效的方法。LCA51軟件提供了以下幾種方法對(duì)變量進(jìn)行查看。通過(guò)添加觀察項(xiàng)菜單可以將用戶希望觀察的變量添加到觀察窗口中,長(zhǎng)期進(jìn)行觀察。用戶程序在單步或斷點(diǎn)停下時(shí),將更新變量的取值。用戶可以直接移動(dòng)鼠標(biāo)到相應(yīng)的變量名上,點(diǎn)擊鼠標(biāo)左鍵,將出現(xiàn)一個(gè)提示窗口,顯示這個(gè)變量的當(dāng)前值。用戶還可以打開(kāi)程序空間窗口、內(nèi)部數(shù)據(jù)窗口、外部數(shù)據(jù)窗口進(jìn)行數(shù)據(jù)塊觀察。4.更改數(shù)值 如果用戶在調(diào)試過(guò)程中了解到變量的內(nèi)容(超值、未定義等)會(huì)對(duì)程序性能產(chǎn)生影響或引起異常時(shí),立即更改變量的

35、內(nèi)容是很有效的方法,以確保該值在正確范圍內(nèi)不會(huì)產(chǎn)生錯(cuò)誤。LCA51軟件提供一系列更改變量數(shù)值的方法,以便用戶能檢查程序?qū)φ麄€(gè)變量值范圍的反應(yīng),而無(wú)需為設(shè)置每個(gè)值而重新加載調(diào)試。在更改對(duì)話框中用戶輸入要更改的取值,點(diǎn)擊確定按鈕。用戶可以在輸入框中輸入十六進(jìn)制或十進(jìn)制數(shù)據(jù)。程序調(diào)試過(guò)程: 整個(gè)程序是一個(gè)主程序調(diào)用各個(gè)子程序?qū)崿F(xiàn)功能的過(guò)程,要使主程序和整個(gè)程序都能平穩(wěn)運(yùn)行,各個(gè)模塊的子程序的正確與平穩(wěn)運(yùn)行必不可少,所以在軟件調(diào)試的最初階段就是把各個(gè)子程序模塊進(jìn)行分別調(diào)試。4.2 仿真結(jié)果在軟件單獨(dú)調(diào)試成功后進(jìn)行系統(tǒng)仿真,它可以分成以下幾個(gè)步驟:1.使傳感器有方波信號(hào)輸出;2.使單片機(jī)獲得信號(hào),計(jì)算出

36、轉(zhuǎn)速值并存儲(chǔ);3.通過(guò)數(shù)碼管把測(cè)量的數(shù)據(jù)顯示出來(lái)。4.通過(guò)比較顯示數(shù)值與真實(shí)值之間的差異來(lái)完成仿真。首先用模擬的脈沖表示傳感器輸入的量:圖4.1 模擬量輸入 圖4.2模擬量輸入界面圖4.3 仿真結(jié)果 設(shè)計(jì)總結(jié)本次課程設(shè)計(jì)完成轉(zhuǎn)速檢測(cè)顯示裝置設(shè)計(jì),都是基于傳感器的一個(gè)理論與時(shí)間相結(jié)合的成功應(yīng)用。在進(jìn)行具體的電路設(shè)計(jì)之前,先學(xué)習(xí)了相關(guān)的專業(yè)知識(shí),這對(duì)我完成電路帶來(lái)了莫大的幫助。在為期一周的課程設(shè)計(jì)中,同學(xué)們用在課堂上所學(xué)到的知識(shí)親自去構(gòu)思、設(shè)計(jì)、連接、調(diào)試,完成一個(gè)電路。雖然拙作還不成熟、不完善,但大家的收獲還是很多的,學(xué)會(huì)了在復(fù)雜的問(wèn)題面前怎樣去分析,找到問(wèn)題的關(guān)鍵所在,而且努力去尋找解決的方法

37、。從總體上來(lái)看,這次的電路設(shè)計(jì)制作還是比較成功的,跟以往的制作相比,本次電路完全是在自己個(gè)人的思路下創(chuàng)作出來(lái)的,因此獲得了很多的經(jīng)驗(yàn),綜合如下:1設(shè)計(jì)思路是實(shí)施操作的扎實(shí)基石 一個(gè)良好的設(shè)計(jì)思路,是電路的生命。寧愿在思路設(shè)計(jì)上多花上50%的時(shí)間,因?yàn)榍捌诳此坡?,?shí)際上恰恰給后期的制作帶來(lái)很大的方便,效果往往是更節(jié)省了許多時(shí)間。2活學(xué)活用這次設(shè)計(jì)讓我真正體會(huì)到了書(shū)本知識(shí)永遠(yuǎn)是基礎(chǔ),而基礎(chǔ)正是你向高層次邁進(jìn)的扎實(shí)階梯,沒(méi)有這個(gè)基礎(chǔ),就無(wú)法實(shí)現(xiàn)技術(shù)上的騰飛。在實(shí)踐當(dāng)中,靈活運(yùn)用書(shū)本上所講的知識(shí),萬(wàn)變不離其中,只有扎實(shí)掌握了核心的方法,才有可能做到活用巧用。在課程設(shè)計(jì)中,將理論轉(zhuǎn)化為知識(shí),真正變?yōu)樽约?/p>

38、的東西,讓我們體會(huì)到創(chuàng)意設(shè)計(jì)的樂(lè)趣。參考文獻(xiàn)1彭介華.電子技術(shù)課程設(shè)計(jì)指導(dǎo)M 湖南大學(xué):高等教育出版社,19992蔣換文.電子測(cè)量.北京:中國(guó)計(jì)量出版社,20033張克農(nóng).數(shù)字電子技術(shù)基礎(chǔ).北京:高等教育出版社,20034康華光.電子技術(shù)基礎(chǔ).數(shù)字部分(第四版).北京:高等教育出版社,20005張錫富.傳感器.北京:機(jī)械工業(yè)出版社,20016 梁廷貴、王裕琛.現(xiàn)代集成電路實(shí)用手冊(cè).北京:科學(xué)技術(shù)文獻(xiàn)出版社,19997 于海生.微型計(jì)算機(jī)控制技術(shù)選編.北京:清華大學(xué)出版社,19998 徐愛(ài)鈞.智能化測(cè)量控制儀表原理與設(shè)計(jì). 北京:北京航空航天大學(xué)出版社,19959 扈嘯,周旭升編著.單片機(jī)數(shù)據(jù)通

39、信技術(shù)從入門到精通.西安:西安電子科技大學(xué)出版社,200210 Schroeder,ME Wolman,RL Wetterneck,TB Carayon,PTubing misload allowsfree flow event with smart intravenous infusion pumpJAnesthesiology,2006附錄一:仿真圖附錄二:?jiǎn)纹瑱C(jī)程序#include#define uchar unsigned char#define uint unsigned intuint count=0000;uchar qian,bai,shi,ge,t;uint jj; ucha

40、r code table=0 xc0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,;void delay(uint m) uint i,j; for(i=m;i0;i-) for(j=110;j0;j-);void display()jj=count;qian=jj/1000;bai=jj%1000/100;shi=jj%100/10;ge=jj%10;P2=0 x10;P0=tableqian;delay(10);P2=0 x20;P0=tablebai;delay(10);P2=0 x40; P0=tableshi;delay

41、(10);P2=0 x80; P0=tablege;delay(10);void init() EA=1;ET0=1;ET1=1;TMOD=0X51;TH0=(65535-50000)/256;TL0=(65535-50000)%256;TH1=0;TL1=0;TR0=1;TR1=1;void main() init(); P0=0; while(1) display(); void timer0() interrupt 1 TH0=(65535-50000)/256; TL0=(65535-50000)%256; t+; if(t=20) t=0; TR0=0; TR1=0; count=0

42、;count|=TH1;count=(count8)|TL1;TH1=0;TL1=0;TR0=1;TR1=1; void timer1() interrupt 3 TR1=0; TR0=0; count=0;致 謝本文介紹的應(yīng)用于單片機(jī)系統(tǒng)在電機(jī)轉(zhuǎn)速這一領(lǐng)域的應(yīng)用,實(shí)現(xiàn)了單片機(jī)對(duì)電機(jī)轉(zhuǎn)速的測(cè)量以及??梢詫?duì)電機(jī)轉(zhuǎn)速的平穩(wěn)性做個(gè)分析。關(guān)于本次課程設(shè)計(jì),感受頗多。總的來(lái)說(shuō)是可以的,富有收獲的,盡管其中充滿了艱辛與困難。但看到自己的成果時(shí),所有的艱辛與疲倦都拋到了九霄云外。一種成就感在心頭油然而生。另外一方面,在自己的親身實(shí)踐中,也發(fā)現(xiàn)了自己的一些不足的地方,有待進(jìn)一步提高與改善。此次畢業(yè)設(shè)計(jì)任務(wù)是高

43、精度大范圍的電機(jī)轉(zhuǎn)速測(cè)量系統(tǒng),在實(shí)際調(diào)試中遇到的種種問(wèn)題使我在設(shè)計(jì)與調(diào)試中學(xué)習(xí)到了許多知識(shí)。整個(gè)課程設(shè)計(jì)過(guò)程是對(duì)自己大學(xué)所學(xué)知識(shí)歸納總結(jié)和應(yīng)用,也就是把理論知識(shí)用到實(shí)踐之中去。讓理論和實(shí)踐相結(jié)合,以此產(chǎn)生實(shí)際的成果。而這正是我們學(xué)習(xí)理論知識(shí)的目的之所在。除此之外,我們要在擁有扎實(shí)的專業(yè)知識(shí)的前提條件下,在整個(gè)設(shè)計(jì)與調(diào)試過(guò)程中要有信心和耐心,對(duì)自己有信心,相信自己能夠很好的完成本次設(shè)計(jì)任務(wù)。在調(diào)試中不斷發(fā)現(xiàn)問(wèn)題進(jìn)而解決問(wèn)題,這是一個(gè)再學(xué)習(xí)的過(guò)程,其本身就是對(duì)自己的一次鍛煉,培養(yǎng)了自己獨(dú)立思考,動(dòng)手解決問(wèn)題的能力。從而從各個(gè)方面得到提高與完善了自己,使自己的各個(gè)方面提高到一個(gè)新的臺(tái)階,同時(shí)為以后的

44、工作打下基礎(chǔ)。在本次畢業(yè)設(shè)計(jì)中,特別要感謝戴老師以及其他老師和同學(xué)給我們的熱心幫助和鼓勵(lì),才使得我的課程設(shè)計(jì)能夠很好的完成。附錄資料:不需要的可以自行刪除C語(yǔ)言編譯環(huán)境中的調(diào)試功能及常見(jiàn)錯(cuò)誤提示調(diào)試功能1常用健 : 激活系統(tǒng)菜單: 將光標(biāo)在編輯窗口和、信息窗口之間切換: 加載一個(gè)文件+: 查看程序運(yùn)行結(jié)果: 得到有關(guān)編輯器在線幫助+: 得到有關(guān)C語(yǔ)言的在線幫助+: 終止正在運(yùn)行的程序2塊操作 KB: 定義塊首 KK: 定義塊尾 KV: 塊移動(dòng) KC: 塊復(fù)制 KY: 塊刪除 KH: 取消塊定義3查找、替換和刪除操作 QF: 查找字符串 QA: 查找并替換字符串 Option: G(全程), B

45、(向文件頭), N(直接替換) Y : 刪除一行 QY: 刪除從光標(biāo)位置到行末的所有字符編譯中的常見(jiàn)錯(cuò)誤例析(1)警告類錯(cuò)誤 XXXdeclare but never used 變量XXX已定義但從未用過(guò)。 XXXis assigned a value which is never used 變量XXX已賦值但從未用過(guò)。 Code has no effect 程序中含有沒(méi)有實(shí)際作用的代碼。 Non-portable pointer conversion 不適當(dāng)?shù)闹羔樲D(zhuǎn)換,可能是在應(yīng)該使用指針的地方用了一個(gè)非0的數(shù)值。 Possible use of XXXbefore definition 表

46、達(dá)式中使用了未賦值的變量 Redeclaration of main 一個(gè)程序文件中主函數(shù)main不止一個(gè)。 Suspicious pointer conversion 可疑的指針轉(zhuǎn)換。通常是使用了基本類型不匹配的指針。 Unreachable code 程序含有不能執(zhí)行到的代碼。(2)錯(cuò)誤或致命錯(cuò)誤 Compound statement missing in function main 程序結(jié)尾缺少括號(hào)。 “”expected; “(”expected等 復(fù)合語(yǔ)句或數(shù)組初始化的結(jié)尾缺少“)”;“(”。 Case outside of switch case 不屬于Switch結(jié)構(gòu),多由于sw

47、itch結(jié)構(gòu)中的花括號(hào)不配對(duì)所致。 Case statement missing : switch結(jié)構(gòu)中的某個(gè)case之后缺少冒號(hào)。 Constant expression required 定義數(shù)組時(shí)指定的數(shù)組長(zhǎng)度不是常量表達(dá)式。 Declaration syntax error 結(jié)構(gòu)體或聯(lián)合類型的定義后缺少分號(hào)。 Declaration was expected 缺少說(shuō)明,通常是因?yàn)槿鄙俜纸绶缍禾?hào)、分號(hào)、右圓括號(hào)等所引起的。 Default outside switch Default部分放到了switch結(jié)構(gòu)之外,一般是因?yàn)榛ɡㄌ?hào)不匹配而引起的。 do statement must h

48、ave while do語(yǔ)句中缺少相應(yīng)的while部分。 Expression syntax 表達(dá)式語(yǔ)法錯(cuò)。如表達(dá)式中含有兩個(gè)連續(xù)的運(yùn)算符 Extra parameter in call fun 調(diào)用函數(shù)fun時(shí)給出了多余的實(shí)參。 Function should return a value 函數(shù)應(yīng)該返回一個(gè)值,否則與定義時(shí)的說(shuō)明類型不匹配。 Illegal use of pointer 指針被非法引用,一般是使用了非法的指針運(yùn)算。 Invalid pointer addition 指針相加非法。一個(gè)指針(地址)可以和一個(gè)整數(shù)相加,但兩個(gè)指針不能相加。 Lvalue required 賦值運(yùn)算

49、的左邊是不能尋址的表達(dá)式。 Misplaced else 程序遇到了沒(méi)有配對(duì)的else No matching 表達(dá)式中的括號(hào)不配對(duì)。 Pointer required on left side of_ 在“_”運(yùn)算的左邊只能允許一個(gè)指針而不能是一個(gè)一般的結(jié)構(gòu)體變量或聯(lián)合類型的變量。 Statement missing; 程序遇到了后面沒(méi)有分號(hào)的語(yǔ)句。 Too few parameters in call 調(diào)用某個(gè)函數(shù)時(shí)實(shí)參數(shù)目不夠。 Unable to open include file XXXXXXXXXXX 頭文件找不到。 Unexpected 或:或 在不希望的地方使用了或:。 Und

50、efined symbol Xin function fun 函數(shù)fun中的變量X沒(méi)有定義。5.連接中的常見(jiàn)錯(cuò)誤主要錯(cuò)誤類似于“undefined symbol _print in modula xxx”(print沒(méi)有定義),通常是函數(shù)名書(shū)寫錯(cuò)誤。6.運(yùn)行中的常見(jiàn)錯(cuò)誤Abnormal program termination 程序異常終止。通常是由于內(nèi)存使用不當(dāng)所致。Floating point error : Domain 或Divide by 0 運(yùn)算結(jié)果不是一個(gè)數(shù)或被0 除Null pointer assignment 對(duì)未初始化的指針賦值,程序有嚴(yán)重錯(cuò)誤。User break 在運(yùn)行程

51、序時(shí)終止。7.程序的跟蹤調(diào)試?yán)肦un菜單可以進(jìn)行程序的跟蹤調(diào)試(1)GO to Cursor ()選擇該選項(xiàng)使程序執(zhí)行到光標(biāo)所在行首先將光標(biāo)移到某行(一般為可執(zhí)行),選擇該功能項(xiàng),則程序執(zhí)行到該行的前一行暫停。此時(shí)程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處,此時(shí)可以查詢變量或表達(dá)式的值。(2)Trace into ()執(zhí)行一條語(yǔ)句或一行暫停此時(shí)程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處。該選項(xiàng)可跟蹤到被調(diào)函數(shù)的內(nèi)部。(3)Step over ()執(zhí)行一條語(yǔ)句或一行暫停此時(shí)程序處于跟蹤調(diào)試狀態(tài),并有亮條顯示在暫停處。該選項(xiàng)將自定義函數(shù)當(dāng)作一個(gè)語(yǔ)句執(zhí)行,不跟蹤到函程序的內(nèi)部。(4)Debug 菜

52、單程序處于跟蹤狀態(tài)時(shí),可使用該菜單的選項(xiàng)。其主要是使用Evaluate目的是查詢或更新變量或表達(dá)式的值。選擇Evaluate功能后,系統(tǒng)彈出一個(gè)對(duì)話框。該對(duì)話框包含三個(gè)選項(xiàng)區(qū)域:Evaluate域可以輸入一個(gè)含有目前代碼中(程序暫停區(qū)的作用域)正在使用的變量名、或含變量的表達(dá)式、或常量表達(dá)式。按回車鍵后,在Result域中顯示變量或表達(dá)式的值。還可以用New value域進(jìn)行調(diào)試。如果調(diào)試程序時(shí)發(fā)現(xiàn)Result域顯示的某變量或表達(dá)式的值不正確,并能估計(jì)出該變量或表達(dá)式的值,則可以將該值輸入到New value域,繼續(xù)執(zhí)行程序,其目的是肯定錯(cuò)誤發(fā)生處是否在當(dāng)前位置之前。如果輸入這個(gè)正確的值并將程

53、序繼續(xù)執(zhí)行完畢而結(jié)果正確,說(shuō)明在目前暫停處之前已經(jīng)發(fā)生錯(cuò)誤而之后無(wú)錯(cuò)誤。(5)Break/Watch用于設(shè)置斷點(diǎn)和監(jiān)視表達(dá)式。選擇Add Watch功能選項(xiàng),系統(tǒng)將彈出一個(gè)菜單,在Add Watch框中輸入變量名或表達(dá)式,按回車鍵后,系統(tǒng)在屏幕底部開(kāi)辟一個(gè)窗口并顯示 該變量或表達(dá)式的值?!境R?jiàn)錯(cuò)誤信息語(yǔ)句索引】Ambiguous operators need parentheses:不明確的運(yùn)算需要用括號(hào)括起 Ambiguous symbol xxx :不明確的符號(hào) Argument list syntax error:參數(shù)表語(yǔ)法錯(cuò)誤 Array bounds missing in funct

54、ion main 缺少數(shù)組界限符 Array bounds missing :丟失數(shù)組界限符 Array size too large :數(shù)組尺寸太大 Bad character in paramenters :參數(shù)中有不適當(dāng)?shù)淖址?Bad file name format in include directive :包含命令中文件名格式不正確 Bad ifdef directive synatax :編譯預(yù)處理ifdef有語(yǔ)法錯(cuò) Bad undef directive syntax :編譯預(yù)處理undef有語(yǔ)法錯(cuò) Bit field too large :位字段太長(zhǎng) Call of non-

55、function :調(diào)用未定義的函數(shù) Call to function with no prototype :調(diào)用函數(shù)時(shí)沒(méi)有函數(shù)的說(shuō)明 Cannot modify a const object :不允許修改常量對(duì)象 Case outside of switch :漏掉了case 語(yǔ)句 Case syntax error :Case 語(yǔ)法錯(cuò)誤 Code has no effect :代碼不可述不可能執(zhí)行到 Compound statement missing :分程序漏掉 Conflicting type modifiers :不明確的類型說(shuō)明符 Constant expression requ

56、ired :要求常量表達(dá)式 Constant out of range in comparison :在比較中常量超出范圍 Conversion may lose significant digits :轉(zhuǎn)換時(shí)會(huì)丟失意義的數(shù)字 Conversion of near pointer not allowed :不允許轉(zhuǎn)換近指針 Could not find file xxx :找不到XXX文件 Declaration missing ; :說(shuō)明缺少; Declaration syntax error :說(shuō)明中出現(xiàn)語(yǔ)法錯(cuò)誤 Default outside of switch :Default 出現(xiàn)在

57、switch語(yǔ)句之外 Define directive needs an identifier :定義編譯預(yù)處理需要標(biāo)識(shí)符 Division by zero :用零作除數(shù) Do statement must have while :Do-while語(yǔ)句中缺少while部分 Enum syntax error :枚舉類型語(yǔ)法錯(cuò)誤 Enumeration constant syntax error :枚舉常數(shù)語(yǔ)法錯(cuò)誤 Error directive :xxx :錯(cuò)誤的編譯預(yù)處理命令 Error writing output file :寫輸出文件錯(cuò)誤 Expression syntax error

58、 :表達(dá)式語(yǔ)法錯(cuò)誤 Extra parameter in call :調(diào)用時(shí)出現(xiàn)多余錯(cuò)誤 File name too long :文件名太長(zhǎng) Function call missing ) :函數(shù)調(diào)用缺少右括號(hào) Fuction definition out of place :函數(shù)定義位置錯(cuò)誤 Fuction should return a value :函數(shù)必需返回一個(gè)值 Goto statement missing label :Goto語(yǔ)句沒(méi)有標(biāo)號(hào) Hexadecimal or octal constant too large :16進(jìn)制或8進(jìn)制常數(shù)太大 Illegal characte

59、r x :非法字符x Illegal initialization :非法的初始化 Illegal octal digit :非法的8進(jìn)制數(shù)字 Illegal pointer subtraction :非法的指針相減 Illegal structure operation :非法的結(jié)構(gòu)體操作 Illegal use of floating point :非法的浮點(diǎn)運(yùn)算 Illegal use of pointer :指針使用非法 Improper use of a typedefsymbol :類型定義符號(hào)使用不恰當(dāng) In-line assembly not allowed :不允許使用行間匯

60、編 Incompatible storage class :存儲(chǔ)類別不相容 Incompatible type conversion :不相容的類型轉(zhuǎn)換 Incorrect number format :錯(cuò)誤的數(shù)據(jù)格式 Incorrect use of default Default使用不當(dāng) Invalid indirection 無(wú)效的間接運(yùn)算 Invalid pointer addition 指針相加無(wú)效 Irreducible expression tree 無(wú)法執(zhí)行的表達(dá)式運(yùn)算 Lvalue required 需要邏輯值0或非0值 Macro argument syntax error

溫馨提示

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

評(píng)論

0/150

提交評(píng)論