版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
MCS-51單片機應用系統(tǒng)開發(fā)與設計單片機原理及接口技術單片機原理及接口技術目錄9.1單片機應用系統(tǒng)開發(fā)與設計9.2抗干擾技術9.3八路溫度巡檢儀控制系統(tǒng)設計9.4步進電機控制系統(tǒng)設計9.5出租車計費器控制系統(tǒng)設計單片機原理及接口技術9.1單片機應用系統(tǒng)開發(fā)與設計
根據(jù)工業(yè)測控系統(tǒng)或智能儀器儀表的設計要求,采用單片機為核心,配備一定的存儲器及電子元器件和相應的軟件可構成單片機應用系統(tǒng)。系統(tǒng)設計既是一個理論問題,又是一個實際工程問題。它包括自動控制理論、計算機技術、自動檢測技術和電子技術等,是多學科知識的綜合運用。單片機應用系統(tǒng)的設計一般由硬件設計和軟件設計兩部分組成。硬件設計不僅包括單片機、存儲器及I/O接口,而且還包括鍵盤及開關、檢測各種輸入量的傳感器、控制用的執(zhí)行裝置、通信接口、打印和顯示設備等。軟件設計要根據(jù)系統(tǒng)的要求,靈活地設計所需要的管理、監(jiān)控以及應用程序。應用程序主要有數(shù)據(jù)采集程序、A/D轉換程序、D/A轉換程序、數(shù)字濾波程序,以及各種控制算法及非線性補償程序等。
單片機原理及接口技術
整個系統(tǒng)的硬件配置和軟件設計是緊密的聯(lián)系在一起的,而且在某些場合,硬件和軟件具有一定的互換性。有些硬件電路的功能可用軟件來實現(xiàn),反之亦然。通常情況下,硬件實時性強,但將使系統(tǒng)增加投資,且結構復雜,容易受外界干擾;軟件可避免上述缺點,但實時性較差。為保證系統(tǒng)能可靠工作,在軟、硬件的設計過程中還應該包括系統(tǒng)的抗干擾設計。
單片機應用系統(tǒng)的開發(fā)步驟主要可分為明確任務、確定技術指標、硬件電路設計、軟件程序編制、軟/硬件仿真調試、可靠性試驗和產品化等幾個階段,但是各階段不是絕對分開的,有時還需要交叉進行,如圖9-1所示。單片機原理及接口技術圖9-1單片機應用系統(tǒng)設計步驟單片機原理及接口技術
9.1.1系統(tǒng)總體方案設計
確定單片機應用系統(tǒng)總體方案,是進行系統(tǒng)設計最重要、最關鍵的一步??傮w方案的好壞,直接影響整個應用系統(tǒng)的投資、調節(jié)品質及研發(fā)周期。在實際應用中,被控對象多種多樣,工藝要求差別很大,系統(tǒng)完成的任務也千差萬別,所以應用系統(tǒng)的總體方案必須根據(jù)工藝要求,結合被控對象來制定。但總體方案的設計過程大相徑庭,主要從以下幾個方面考慮。單片機原理及接口技術
1.系統(tǒng)分析,明確任務
如同任何新產品的設計一樣,單片機應用系統(tǒng)的設計是從確定目標任務開始的。不管是老產品的改造還是新產品的設計,都應對產品的可靠性、通用性、可維護性、先進性及成本等因素進行綜合的考慮。在著手進行系統(tǒng)設計之前,需對市場進行調研,了解國內外市場上發(fā)展情況、進展程度,是否有人進行過類似的工作。若有,則可分析它人的結果,了解有什么優(yōu)缺點,找出值得借鑒的部分;若沒有,則需要進一步調研,此時的重點應放在能否實現(xiàn)這個環(huán)節(jié),首先從理論上進行分析,探討實現(xiàn)的可能性,所要求的指標是否能滿足;其次對系統(tǒng)的工作環(huán)境準確評估,了解存在哪些干擾因素,能否實現(xiàn)信號的采集、調節(jié)和控制等。單片機原理及接口技術
2.系統(tǒng)總體方案設計
在明確設計任務后,如果可以實施,必須確定系統(tǒng)是采用開環(huán)系統(tǒng)還是閉環(huán)系統(tǒng),或者是數(shù)據(jù)處理系統(tǒng)。如果是閉環(huán)控制系統(tǒng),還須確定出整個系統(tǒng)是選用直接數(shù)字控制(DDC)、計算機監(jiān)督控制(SCC)、或者是選用分布式控制(DCS)等。工作的重點是在該項目的技術難度上,可參考這一方面更詳細、更具體的資料,根據(jù)系統(tǒng)的不同要求和要實現(xiàn)的不同功能,參考國內外同類產品的性能,提出合理、詳盡的技術指標,編寫出設計任務書,確定性價比高的工程技術方案,并具有系統(tǒng)可靠、人機界面友好、適合非計算機人員操作和容錯性能強等特點。單片機原理及接口技術
3.硬件和軟件的功能劃分
總體方案一旦確定,下一步的工作就是將該項目明確化,即明確哪些部分用硬件實現(xiàn),哪些部分用軟件實現(xiàn)。由于硬件結構與軟件設計會相互影響,因此從簡化電路結構、降低成本、減少干擾、提高系統(tǒng)的靈活性與通用性方面考慮,提倡軟件能實現(xiàn)的功能盡可能由軟件來實現(xiàn)。但也應考慮以軟件替代硬件后會降低系統(tǒng)的實時性、增加系統(tǒng)的處理時間,而且軟件設計費用、研制周期也將增加。在一般情況下,如果所研制的產品生產批量較大,且在實時性要求允許的情況下,主張能夠用軟件實現(xiàn)的功能都由軟件來實現(xiàn),以便簡化硬件結構、降低生產成本。但在總體設計時,必須權衡利弊,仔細劃分好硬件和軟件的功能。單片機原理及接口技術
9.1.2硬件設計
單片機應用系統(tǒng)的硬件設計主要包括兩部分內容:一是單片機系統(tǒng)擴展部分設計,它包括存儲器擴展和接口擴展;二是各功能模塊的設計,如信號檢測模塊、信號控制模塊、人機接口模塊、通信接口模塊等。并且根據(jù)系統(tǒng)功能要求還需配置相應的A/D轉換器、D/A轉換器、鍵盤、顯示器、打印機等外圍設備。
所謂硬件電路的總體設計,是為實現(xiàn)該項目全部功能所需要的所有硬件的電氣連線原理圖。因為電路的各部分都是緊密相關、互相協(xié)調的,任何一部分電路的考慮不充分,都會給其它部分帶來難以預料的影響,所以設計時不能急于求成,過于倉促制板和調試。
單片機原理及接口技術
在進行硬件的總體方案設計時,所涉及的具體電路可借鑒它人在這方面進行的工作。因為經過別人調試和實驗過的電路往往具有一定的合理性。如果在此基礎上,結合自己的設計目的進行一些修改,則是一種簡便、快捷的做法。當然,大部分電路需要自己設計,完全照搬是不太可能的。
在參考別人的電路時,需對其工作原理有較為透徹的分析和理解,根據(jù)其工作機理了解其適用范圍,從而確定
其移植的可能性和需要修改的部分。對于有些關鍵和尚不完全理解的電路,需要仔細分析,在設計之前先進行試驗,以確定這部分電路的正確性,并檢驗電路的可靠性和測量是否滿足精度要求。
硬件設計的任務是根據(jù)總體設計要求,在所選機型的基礎上,首先確定系統(tǒng)擴展所要用的存儲器、I/O電路以及相關外圍電路等,然后再設計系統(tǒng)的電路原理圖。為使硬件設計盡可能合理,根據(jù)經驗,系統(tǒng)的電路設計應從以下幾個方面考慮。單片機原理及接口技術
1)應根據(jù)系統(tǒng)的要求和各種單片機的性能,選擇最容易實現(xiàn)產品技術指標的單片機機型,而且要求能夠達到較高的性價比。單片機的性能包括片內的資源、擴展能力、運算速度、可靠性等幾個方面,應盡可能地選擇標準化、模塊化的典型電路,提高設計的成功率和結構的靈活性。2)在條件允許的情況下,應盡可能地選用最新的、功能強和集成度高的電路或芯片。因為采用集成電路可以減少元器件、接插件和相互連接線的數(shù)量,體積也會相應減小,使系統(tǒng)可靠性增加,而且成本往往比用多個元件實現(xiàn)的電路要低。
3)在設計硬件系統(tǒng)總體結構時,要注意選擇通用性強、市場貨源充足的器件。盡可能的對系統(tǒng)采用模塊化設計方法,即將中央控制單元、輸入/輸出接口、人機接口等功能電路分成獨立模塊進行設計,然后采用一定的連接方式將其組合成一個完整的系統(tǒng)。通常情況下,系統(tǒng)選用已有的模塊,有時成本會偏高,但可大大縮短研制周期,提高工作效率。單片機原理及接口技術
4)系統(tǒng)的擴展及各功能模塊的設計在滿足系統(tǒng)功能要求的基礎上,應適當留有余地,以備將來修改、擴展之需。在進行ROM和RAM擴展時,應盡量選用較大容量芯片,這樣不僅將來升級方便,成本也會降低;在進行I/O接口擴展時,也應給出一定的裕量,這樣對臨時增加一些測量通道或被控對象就比較容易實現(xiàn)了。
5)在電路設計時,要充分考慮應用系統(tǒng)各部分的驅動能力。MCS-51單片機的外部擴展功能很強,但4個8位并行口的負載能力是有限的。P0口能夠驅動8個TTL電路,P1~P3口只能驅動4個TTL電路。在實際應用中,所有端口的負載不應超過總負載能力的70%,以保證留有一定的裕量。在外接負載較多的情況下,如果負載是MOS芯片,因負載消耗電流很小,影響不是很大。如果負載是TTL電路,那么應采用總線驅動電路,以提高端口的驅動能力和系統(tǒng)的抗干擾能力。單片機原理及接口技術
6)單片機應用系統(tǒng)的可靠性是最重要、最基本的一項技術指標,也是在硬件設計時必須考慮的一個方面??煽啃酝ǔJ侵赶到y(tǒng)在一定的工作條件下以及時間內完成系統(tǒng)功能的能力。工作條件主要包括環(huán)境溫度、濕度、振動和供電條件等;時間一般指平均故障時間、平均無故障時間和連續(xù)正常運轉時間等。系統(tǒng)在實際工作中,可能會受到來自內部和外部的各種干擾,特別是測控系統(tǒng)常常工作在環(huán)境惡劣的工業(yè)現(xiàn)場,容易受到電網(wǎng)電壓、電磁輻射、高頻干擾等因素的影響,使系統(tǒng)工作產生錯誤或故障。為減少這種情況的發(fā)生,必須要采取各種措施提高硬件的可靠性。
7)工藝設計是一個系統(tǒng)設計人員容易疏忽但又十分重要的問題,主要包括機箱、面板、配線、接插件等部分的設計。在設計時要充分考慮到安裝、調試和維修的方便。單片機原理及接口技術
在進行系統(tǒng)的總體設計時,軟件設計和硬件設計應統(tǒng)一考慮。當系統(tǒng)的電路設計定型后,軟件設計的任務也就明確了。
系統(tǒng)中的應用軟件是根據(jù)系統(tǒng)功能要求設計的。一般來說,單片機中的軟件功能可分為兩大類:一類是監(jiān)控軟件,是用來協(xié)調各模塊和操作者之間的關系,充當組織調度角色,也稱為Debug程序,是最基本的調試工具。另一類是執(zhí)行軟件,它用來完成各種具體的功能,如測量、計算、顯示、打印和輸出控制等。監(jiān)控程序功能不足會給應用程序的開發(fā)帶來麻煩,反之,用大量精力設計監(jiān)控程序會延長軟件開發(fā)周期。所以把監(jiān)控程序控制在適當?shù)囊?guī)模是明智的。由于應用系統(tǒng)種類繁多,程序編寫者風格不一,因此應用軟件因系統(tǒng)而異、因人而異。盡管如此,作為優(yōu)秀的應用軟件還是有其共同特點和規(guī)律的。設計人員在進行軟件設計時應從以下幾個方面加以考慮。9.1.3軟件設計單片機原理及接口技術
1.初始化定義
初始化定義是指在軟件設計前,首先要明確軟件所要完成的任務,確定輸入/輸出的形式,對輸入/輸出的數(shù)據(jù)和中間變量以及可能發(fā)生的錯誤如何處理。主要有以下幾點:
1)定義并說明各輸入/輸出口的功能,是模擬信號還是數(shù)字信號以及電平范圍、與系統(tǒng)的接口方式、占用端口地址、讀取和輸入方式等。
2)要合理分配系統(tǒng)資源,包括ROM、RAM、定時/計數(shù)器、中斷源等。其中最關鍵的是片內RAM的分配。例如對8031來講,片內RAM是指00H~7FH單元,這128個字節(jié)的功能不完全相同,分配時應充分發(fā)揮其特長。在工作寄存器的8個單元中,R0和R1具有指針功能;20H~2FH這16個字節(jié)具有位尋址功能,可用來存放各種標志位、狀態(tài)變量、邏輯變量等;單片機原理及接口技術
設置堆棧區(qū)時應事先估算子程序的數(shù)量和中斷嵌套的級數(shù)以及程序中堆棧操作指令的使用情況,并留有一定的裕量。若系統(tǒng)中擴展了RAM存儲器,應把使用頻率最高的數(shù)據(jù)安排在片內RAM中,以提高處理速度。當RAM資源規(guī)劃好后,應列出一張RAM資源詳細分配表,以備編程人員查用。3)鍵盤等控制輸入量的定義與軟件編制密切相關,系統(tǒng)運行過程和運算結果的顯示、正常運行和出錯顯示等也都應該由軟件編制,所以必須事先定義,作為編程的依據(jù)。單片機原理及接口技術
2.軟件結構設計
合理的軟件結構是設計出一個性能優(yōu)良的應用系統(tǒng)軟件的基礎。整個系統(tǒng)可分解為幾個相對獨立的操作,根據(jù)這些操作的相互聯(lián)系的時間關系,設計出一個合理的軟件結構。對于簡單的單片機應用系統(tǒng),通常采用順序程序設計方法,這種方法的軟件是由主程序和若干個中斷服務子程序構成。主程序和中斷服務子程序之間的信息交換一般采用數(shù)據(jù)緩沖器和軟件標志(置位或清“0”位尋址區(qū)的某一位)方法。根據(jù)系統(tǒng)各個操作的性質,指定哪些操作由中斷服務程序完成、哪些操作由主程序完成,并指定各個中斷的優(yōu)先級。
因為順序程序設計方法容易被理解和掌握,也能滿足大多數(shù)簡單的應用系統(tǒng),所以是一種很常用的方法。順序程序設計的缺點是軟件的結構不夠清晰、軟件的修改擴充比較困難、實時性較差。這是因為功能復雜時,執(zhí)行中斷服務程序要花費較多的時間,單片機原理及接口技術
CPU執(zhí)行中斷程序時不響應低級或同級的中斷,這可能導致某些實時中斷請求得不到及時的響應,甚至會丟失中斷信息。這時只有在主程序里多設置一些緩沖器和標志位,中斷服務程序只完成一些特定功能的操作,從而縮短中斷服務程序的執(zhí)行時間,這在一定程度上能夠提高系統(tǒng)的實時性。但是眾多的標志會使軟件結構變亂,很容易發(fā)生錯誤,給調試帶來困難。針對以上情況,對于復雜的應用系統(tǒng),可采用實時多任務操作系統(tǒng)。
3.模塊化程序設計
通常人們設計程序時習慣于自頂向下設計,即先從主程序開始設計,子程序用符號來代替。主程序編好后再編制各個子程序,最后完成整個系統(tǒng)軟件的設計。程序調試也是按這個順序進行。這種程序設計方法的優(yōu)點是:比較符合人們的日常思維,可以較早地發(fā)現(xiàn)程序錯誤。其缺點是:上一級的程序錯誤將對整個程序產生影響,前面程序的修單片機原理及接口技術
改可能會引起整個程序的修改。所以對于較為復雜的系統(tǒng),一般不主張這樣設計,而提倡模塊化的程序設計方法。
模塊化的程序設計思想是根據(jù)軟件的功能要求,將系統(tǒng)軟件分成若干個相對獨立的部分。根據(jù)它們之間的聯(lián)系和時間上的關系,把一個功能完整的較長的程序分解為若干個功能相對獨立的較小的程序模塊,各個程序模塊分別進行設計、編制和調試,最后把各個調試好的程序模塊組合成一個大的程序。
模塊化程序設計的優(yōu)點是單個功能明確的程序模塊的設計和調試比較方便、容易完成,一個模塊可以為多個程序所共享,還可以利用已有的程序模塊(如各種已有的子程序)。既便于調試、鏈接,又便于移植、修改。缺點是各個模塊的連接有時有一定的困難。程序模塊的劃分沒有一定的標準,但每個模塊不宜太大,各模塊之間界限明確,在邏輯上相對獨立,盡量利用已有的程序模塊。單片機原理及接口技術
4.程序設計在選擇好軟件結構和所采用的程序設計技術后,便可著手進行程序設計,把問題的定義轉化為具體的程序。1)建立數(shù)學模型
即根據(jù)系統(tǒng)功能要求,描述出各個輸入和輸出變量之間的數(shù)學關系,它是關系到系統(tǒng)性能好壞的重要因素。例如:在直接數(shù)字控制系統(tǒng)中,采用數(shù)字PID控制算法或其改進形式,參數(shù)的整定是至關重要的。在測量應用系統(tǒng)中,從模擬量輸入通道得到的溫度、流量、速度、加速度等現(xiàn)場信息與該信息對應的物理量之間常常存在非線性關系,采用什么樣的公式來描述和修正這種關系,達到線性化處理的目的,這對儀器的測量精度是起決定性的作用。另外,為了削弱或消除干擾信號的影響,選用何種數(shù)字濾波方法等。單片機原理及接口技術
2)繪制程序流程圖
為提高軟件設計的總體效率,以簡明、直觀的方法對任務進行描述,在編寫應用軟件之前,應繪制出程序流程圖。這不僅是程序設計的一個重要組成部分,而且是決定成敗的關鍵部分,故對初學者來說尤為重要。在設計過程中,先畫出簡單的功能性流程圖(框圖),然后對功能流程圖進行擴充和具體化。對存儲器、寄存器、標志位等工作單元作具體的分配和說明,把功能流程圖中每一個具體的操作轉變?yōu)閷唧w的存儲單元、工作寄存器或I/O口的操作,從而繪出詳細的程序流程圖。3)編寫程序
在完成了程序流程圖設計以后,接著便可編寫程序。單片機應用程序大多用匯編語言編寫,如果有條件可以用高級語言編寫,如MBASIC51、PL/M51、C51等。編寫程序時,應采用標準的符號和格式書寫,必要時給出若干功能性注釋,提高程序的可讀性。單片機原理及接口技術
在完成了硬件設計和軟件設計以后,便進入了系統(tǒng)的調試階段。其主要任務是排除系統(tǒng)的硬件故障,并完善其硬件結構,運行所設計的程序,排除程序錯誤,優(yōu)化程序結構,使系統(tǒng)達到期望的功能,進而固化軟件,使其產品化??刂葡到y(tǒng)的調試步驟和方法基本上是相同的,但具體細節(jié)與所采用的開發(fā)系統(tǒng)以及用戶所選用的單片機型號有關。1.硬件調試
單片機應用系統(tǒng)的硬件調試和軟件調試是密不可分的,許多硬件故障是在軟件調試時才發(fā)現(xiàn)的,但通常情況是先排除系統(tǒng)中明顯的硬件故障后才與軟件結合起來調試。(1)常見的硬件故障9.1.4系統(tǒng)調試單片機原理及接口技術
1)邏輯錯誤。邏輯錯誤是由于設計錯誤和加工過程中的工藝性錯誤所造成的。這類錯誤包括錯線、相位錯、開路、短路等幾種,其中開路常常是由于印制電路板的金屬孔質量不好或接插件接觸不良引起的。短路是最常見也較難排除的故障。單片機應用系統(tǒng)通常要求體積小,從而使印制電路板的布線密度高,往往會造成引線之間的短路。2)電源故障。若系統(tǒng)中存在電源故障,則加電后將造成器件損壞,因此電源必須單獨調試好以后才能加到系統(tǒng)的各個部件中。電源的故障主要包括:電壓、電流值不符合設計要求,紋波系數(shù)過大,不同電源之間的短路,變壓器功率不足,內阻大,負載能力差等。單片機原理及接口技術
3)元器件失效。主要原因有兩個方面:一是由于組裝錯誤造成的元器件失效,如電容、二極管、三極管的極性錯誤和集成塊安裝的方向錯誤等;二是器件本身已損壞或性能差,諸如電阻電容的型號、參數(shù)不正確,集成電路已損壞,器件的速度、功耗等技術指標不符合要求等。4)可靠性差。系統(tǒng)不可靠的因素很多,如金屬孔、接插件接觸不良會造成系統(tǒng)時好時壞;內部和外部的干擾、器件負載過大等會造成邏輯電平不穩(wěn)定。此外,走線和布局的不合理等也會引起系統(tǒng)的可靠性變差。單片機原理及接口技術
(2)硬件調試方法
硬件調試是指利用硬件開發(fā)系統(tǒng)、基本測試儀器,通過執(zhí)行開發(fā)系統(tǒng)有關命令或運行適當?shù)臏y試程序(也可以是與硬件有關的部分用戶程序段)來檢查系統(tǒng)硬件中存在的故障。硬件調試可分為靜態(tài)調試與動態(tài)調試。1)靜態(tài)調試。首先,在上電之前,用萬用表等工具,根據(jù)硬件電氣原理圖和裝配圖仔細檢查系統(tǒng)線路是否正確,并核對元器件的型號、規(guī)格。應特別注意電源的走線,防止電源之間的短路和極性錯誤,并重點檢查擴展系統(tǒng)總線(數(shù)據(jù)總線、地址總線和控制總線)是否存在相互間的短路或與其它信號線之間的短路。
其次,上電后檢查各插件上引腳的電壓,仔細測量各點電壓是否正常,尤其應注意單片機插座上的各點電壓。若有高壓,聯(lián)機時將會損壞仿真器。
最后,在斷電情況下,除單片機以外,插上所有的元器件,用仿真插頭將單片機插座和開發(fā)工具的仿真接口相連。單片機原理及接口技術
2)動態(tài)調試。在靜態(tài)調試中,只能對硬件進行初步測試,排除一些明顯的硬件故障。其余故障只能靠聯(lián)機調試來排除。靜態(tài)調試完成后分別閉合整個系統(tǒng)和仿真器電源,就可以進行動態(tài)調試了。動態(tài)調試是在系統(tǒng)工作的情況下發(fā)現(xiàn)和排除系統(tǒng)硬件中存在的器件內部故障、器件之間連接邏輯錯誤等的一種硬件檢查。由于單片機系統(tǒng)的硬件動態(tài)調試是在開放系統(tǒng)的支持下完成的,故又稱為聯(lián)機仿真或聯(lián)機調試。
動態(tài)調試的一般方法是由近及遠、由分到合,進行分步、分層調試。
在有些情況下,由于功能要求較高或設備較復雜,使某些邏輯功能塊電路較為復雜龐大,給檢查排除故障帶來一定的難度。這時按照每塊電路信號的流向為線索,將信號流經的各器件按照距離單片機的邏輯距離進行由遠及近的分層,然后分層進行調試。調試時采用去掉無關器件的方法,逐層依次調試,從而將故障定位在具體器件或位置上。
單片機原理及接口技術
由分到合指的是首先按照邏輯功能將系統(tǒng)硬件電路分為若干塊,如程序存儲器電路、A/D轉換器電路、輸入/輸出控制電路,再分塊進行調試。當調試某電路時,仍將與該電路無關的器件全部從系統(tǒng)中去掉,這樣可將故障范圍限定在某個局部的電路上。當分塊電路調試無故障后,將各電路逐塊加入系統(tǒng)中,再對各塊電路及電路間可能存在的相互聯(lián)系進行檢驗。若此時出現(xiàn)故障,則最大的可能是電路協(xié)調關系上出了問題,如相互間信息聯(lián)絡是否正確、時序是否達到要求等,直到所有電路加入系統(tǒng)后各部分的電路仍能正確工作為止。
動態(tài)調試借助開發(fā)系統(tǒng)資源(單片機、存儲器等)來調試用戶系統(tǒng)中單片機的外圍電路。利用開發(fā)系統(tǒng)友好的人機界面,可以有效地對系統(tǒng)的各部分電路進行訪問、控制,使系統(tǒng)在運行中暴露問題,從而發(fā)現(xiàn)并排除故障。單片機原理及接口技術
2.軟件調試(1)常見的軟件錯誤1)程序失控。這種錯誤的現(xiàn)象是當運行程序時,系統(tǒng)沒有按規(guī)定的功能進行操作或什么結果也沒有,這是由于程序出現(xiàn)死循環(huán)或轉移到沒有預料到的地方所造成的。產生這類錯誤的原因有:程序中轉移地址計算錯誤、堆棧溢出、工作寄存器沖突等。在采用實時多任務操作系統(tǒng)時,錯誤可能在操作系統(tǒng)中,沒有完成正確的任務調度操作;也可能在高優(yōu)先級任務程序結束時沒有釋放處理器,使CPU在該任務中處于死循環(huán)狀態(tài)。2)中斷錯誤。主要有兩種情況,一種是不響應中斷,這種錯誤的現(xiàn)象是連續(xù)運行時不執(zhí)行中斷服務程序的規(guī)定操作。產生這類錯誤的原因主要有:中斷控制寄存器(IE、IP)的初值設置不正確,使CPU沒有開放中斷或不允許某個中斷源的請求;外部中斷源的硬件故障使外部設備無法申請中斷;對特殊功能寄存器和擴展的I/O接口編程有錯誤,造成單片機原理及接口技術
中斷不能被激活;中斷服務子程序沒有正確地返回到主程序,或者是CPU雖返回到主程序,但內部中斷狀態(tài)寄存器沒有被清除,從而不響應中斷。第二種是循環(huán)響應中斷,這種錯誤是CPU循環(huán)地響應同一個中斷,使CPU不能正常地執(zhí)行主程序或其它中斷服務子程序,這種錯誤大多發(fā)生在外部中斷中。若外部中斷(如INT0或INTl)以電平觸發(fā)方式請求中斷,當中斷服務程序沒有有效清除外部中斷或硬件故障使中斷源一直有效時,將會導致CPU一直響應該中斷。3)輸入/輸出錯誤。這類錯誤包括輸入輸出結果不正確或根本不動作,產生錯誤的原因主要有:輸入/輸出程序沒有和I/O硬件協(xié)調好(如地址錯誤、寫入的控制字和規(guī)定的I/O操作不一致等),時間上不同步,硬件中還存在故障等。單片機原理及接口技術
(2)軟件調試方法。
軟件調試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤和邏輯錯誤并加以排除糾正的過程。軟件調試與所選用的軟件結構和程序設計技術有關。如果選用實時多任務操作系統(tǒng),一般是逐個任務進行調試。在調試某一個具體任務時,同時也調試相關的子程序、中斷服務子程序和一些操作系統(tǒng)的程序。若采用模塊化程序設計技術,則逐個模塊(子程序、中斷服務子程序、I/O程序等)進行調試,再聯(lián)成一個完整的程序,然后進行系統(tǒng)調試。軟件調試的一般方法是先獨立后聯(lián)機、先分塊后組合、先單步后連續(xù)。單片機原理及接口技術
1)計算程序的調試方法。計算程序的錯誤是一種靜態(tài)和固定的錯誤,因此主要采用單步或斷點運行方式來調試。根據(jù)計算程序的功能,事先準備好測試數(shù)據(jù),然后從計算程序開始運行到結束,將運行的結果和準備好的測試數(shù)據(jù)進行比較。如果對所有的測試數(shù)據(jù)進行測試,都沒有發(fā)現(xiàn)錯誤,則該計算程序是正確的;如果發(fā)現(xiàn)結果不正確,就改用單步運行方式,即可檢查出錯誤所在的位置。2)I/O處理程序的調試。對于A/D轉換一類的I/O處理程序,要求實時性比較高,因此要采用全速斷點方式或連續(xù)運行方式進行調試。3)綜合調試。在完成了各個模塊程序(或各個任務程序)的調試工作以后,便可以進行系統(tǒng)的綜合調試。綜合調試一般采用全速斷點運行方式,這個階段的主要工作是排除系統(tǒng)單片機原理及接口技術
中遺留的錯誤,以提高系統(tǒng)的動態(tài)性能和精度。在綜合調試的最后階段,應使系統(tǒng)的晶振電路工作,系統(tǒng)全速運行。若都能實現(xiàn)預定的技術指標,便可將軟件固化,然后再運行固化程序后的系統(tǒng),成功后意味著系統(tǒng)可脫機運行。一般情況下,一個應用系統(tǒng)就算研制成功了。如果脫機后出現(xiàn)了異常情況,大多是由于系統(tǒng)的復位電路中有故障,或上電復位電路中元器件參數(shù)有誤等引起的。3.運行與維護
在進行綜合調試后,還需進行一段時間的試運行。只有經過試運行,所設計的系統(tǒng)才可能會暴露出它的問題和不足之處。在系統(tǒng)試運行階段,設計者應當對系統(tǒng)進行檢測和試驗,以驗證系統(tǒng)功能是否滿足設計要求,是否達到預期效果。
系統(tǒng)經過一段時間的烤機和試運行后,就可投入正式運行。在正式運行中還需建立一套健全的維護制度,以確保系統(tǒng)的正常工作。單片機原理及接口技術9.1.5印制電路板設計
單片機應用系統(tǒng)的硬件單元電路設計完成后,需要通過電路設計軟件在計算機上完成印制電路板圖的制作。可以采用的電路板圖設計軟件有很多種,如Altium、CAD等。但現(xiàn)在大部分電子設計者都采用Altium軟件輔助設計。首先,繪制電路原理圖,圖樣要整潔美觀大方;其次,根據(jù)原理圖繪制印制電路板圖。印制電路板一般分為2層板、4層板,8層板。層數(shù)越高,電路板的造價越高。1.電路板布局的基本原則1)遵循先難后易、先大后小的原則。2)布局可以參考硬件設計原理圖大致的布局,根據(jù)信號流向規(guī)律放置主要元器件。3)連線盡可能的短,關鍵信號線最短。4)模擬信號、數(shù)字信號分開。5)強信號、弱信號、高電壓信號和弱電壓信號要完全分開。單片機原理及接口技術
6)相同結構的電路部分應盡可能采取對稱布局。7)按照均勻分布、重心平衡、版面美觀的標準來優(yōu)化布局。8)雙列直插式元器件相互的距離要大于2mm。9)元器件的放置要便于調試和維修。大元器件邊上不能放置小元件;需要調試的元器件周圍應有足夠的空間;發(fā)熱元器件應有
足夠的空間以利于散熱;熱敏元器件應遠離發(fā)熱元器件。10)旁路電容應均勻地分布在集成電路周圍。單片機原理及接口技術
11)集成電路的去耦電容應盡量靠近芯片的電源腳,使之與電源和地之間形成的回路最短。12)用于阻抗匹配目的的阻容元器件的放置,應根據(jù)其屬性合理布局。13)匹配電阻在布局時要靠近該信號的驅動端,距離一般不超過500mil。14)匹配電容、電阻的布局要分清楚其用法,對于多負載的終端匹配一定要放在信號的最遠端進行匹配。單片機原理及接口技術
2.板層的設置規(guī)則1)在印制電路板內分配電源層與地層,且盡量相互鄰近,這樣可以很好地抑制印制電路板上固有的共模RF干擾,并且能減少高頻電源的分布阻抗。一般接地平面應在電源平面之上,這樣可以利用兩金屬平板間的電容做電源的平滑電容,同時接地平面還可以對電源平面上分布的輻射電流起到屏蔽作用。2)在多層印制電路板中,電源平面和接地平面上的分布電阻為最小。這是由于電源平面與接地平面中充滿了電磁輻射頻段的浪涌,可能會引起邏輯混亂、瞬間短路、總線上信號過載等現(xiàn)象。而且由于不同邏輯部件的導通和截止電流比是不同的,分布電阻小就能使信號線平面與接地平面間的電磁干擾通量比信號線平面與電源平面的通量要小得多。信號平面鄰近電源平面時將會引起信號相移、產生大的電感和變化的噪聲。單片機原理及接口技術
3)把模擬電路單元與數(shù)字電路單元分開,模擬電源與數(shù)字電源要絕對分開、不能混用。4)對于多層印制電路板中有多個接地平面時,其中高速信號的布線平面應該靠近接地平面,這是由于當高頻信號的布線平面接近接地平面就能迅速將高頻干擾信號泄放到結構大地,而如果布線平面接近電源平面時就會干擾電源而影響其它電路工作。5)電子系統(tǒng)設備中的時鐘電路和高頻電路是主要的干擾和輻射源,所以必須進行分區(qū),單獨安排。一般采用空間分離技術,使此類電路遠離其它敏感電路以避免對其形成干擾。3.走線的基本規(guī)則1)信號走線盡量粗細一致,有利于阻抗的匹配,一般為0.2~0.3mm,對于電源線和地線應盡可能加大,地線排在印制板的四周對電路防護有利。盡量減小信號電流環(huán)路的面積,尤其是減小高頻信號的電流環(huán)路面積。還要注意整體外觀形象。單片機原理及接口技術
2)作為高速數(shù)字電路的輸入端和輸出端,應避免相鄰平行布線。必要時,在這些導線之間要加接地線。3)仔細選擇接地點以使環(huán)路電流、接地電阻及電路的公共阻抗最小。4)時鐘芯片的上拉或下拉電阻應盡量靠近時鐘芯片。對于時鐘頻率大于等于66MHz的時鐘線,每條線的過孔數(shù)不要超過2個,平均不得超過1.5個;時鐘頻率小于66MHz的時鐘線,每條線的過孔數(shù)不要超過3個,平均不得超過2.5個;長度超過12inch的時鐘線,如果頻率大于20MHz,過孔數(shù)不得超過2個。時鐘線要遠離I/O一側板邊500mil以上,并且不要和I/O線并行布線。整板設計完成后,要及時檢查信號走線和連接是否符合設計標準,器件標注是否正確完整,同時還要注意整體外觀形象。單片機原理及接口技術9.2抗干擾技術
計算機控制系統(tǒng)大多用于工業(yè)現(xiàn)場,而工業(yè)現(xiàn)場情況復雜,環(huán)境較為惡劣,且有很多種干擾。干擾嚴重影響著控制系統(tǒng)的穩(wěn)定性和可靠性。在工業(yè)現(xiàn)場特殊的環(huán)境中,要求計算機控制系統(tǒng)要有足夠高的抗干擾能力。干擾的產生是由多種因素決定的,所以根據(jù)現(xiàn)場的情況,分析干擾的來源,常采用硬件和軟件相結合的有效措施來抑制或消除干擾。1.干擾的來源
干擾又稱為噪聲,是指有用信號以外的信號或在信號輸入、傳輸和輸出過程中出現(xiàn)的一些有害的電氣變化現(xiàn)象。這些噪聲或變化迫使信號的傳輸值、指示值或輸出值出現(xiàn)誤差,出現(xiàn)假像。干擾對電路的影響,輕則降低信號的質量,影響系統(tǒng)的穩(wěn)定性;重則破壞電路的正常功能,造成邏輯關系混亂、控制失靈。常見的干擾主要表現(xiàn)在以下幾個方面。9.2.1干擾源及其分類單片機原理及接口技術
(1)電源噪聲
工業(yè)現(xiàn)場動力設備多,功率大、類型復雜、操作頻繁。大功率設備的啟停,特別是大感性負載的啟停會造成電網(wǎng)電壓大幅度漲落。這些都會嚴重影響計算機控制系統(tǒng)的正常工作。(2)接地不良引起的干擾
地線與所有的設備都有聯(lián)系,良好的接地可以消除部分干擾。如果接地不良,會產生接地電位差,從而進入地線,就會傳遞到所有設備,從而導致設備不能正常工作。(3)其它干擾
工業(yè)環(huán)境的溫度、濕度、震動、灰塵、腐蝕性氣體等,還有電路感應產生的干擾都會影響計算機控制系統(tǒng)的正常工作。單片機原理及接口技術
2.干擾源的分類(1)從干擾的來源劃分1)內部干擾
內部干擾是應用系統(tǒng)本身引起的干擾,包括固定干擾和過渡干擾兩種。固定干擾是指信號間的相互串擾、長線傳輸阻抗不匹配時的反射噪聲、負載突變噪聲以及饋電系統(tǒng)的浪涌噪聲等。過渡干擾是指電路在工作時引起的干擾。2)外部干擾
外部干擾是由系統(tǒng)外部竄入到系統(tǒng)內部的各種干擾。包括某些自然現(xiàn)象(如閃電、雷擊、地球或宇宙輻射等)引起的自然干擾和人為干擾(如電臺、車輛、家用電器、電器設備等發(fā)出的電磁干擾,以及電源的干擾)。一般來說,自然干擾對系統(tǒng)影響不大,單片機原理及接口技術
而人為干擾則是外部干擾的關鍵。(2)從干擾與輸入信號的關系劃分1)串模干擾
串模干擾就是串聯(lián)在被測信號回路上的干擾,如圖9-2a)所示。圖中Us為信號電壓,Un為串模干擾電壓,Un既可以來自干擾源,也可以由信號源本身產生。產生串模干擾的原因主要有分布電容的靜電耦合、長線傳輸?shù)幕ジ?、空間電磁場引起的磁場耦合和工頻電壓干擾等。2)共模干擾
共模干擾就是指模擬量輸入通道的A/D轉換器的兩個輸入端上共有的干擾電壓。單片機原理及接口技術
在計算機控制系統(tǒng)中,由于控制器和被控被測的參量相距較遠,這樣被測信號Ui的參考地(模擬地)和控制器輸入信號的參考地(模擬地)之間往往存在一定的電位差Uc,如圖9-2b)所示。圖中Uc就是共模干擾電壓。它可能是交流電壓,也可能是直流電壓,其數(shù)值可達幾伏甚至幾百伏,主要取決于控制器和其它設備的接地情況以及現(xiàn)場產生干擾的因素。(a)串模干擾(b)共模干擾圖9-2干擾示意圖單片機原理及接口技術
抗干擾是指把對計算機控制系統(tǒng)的干擾(噪聲)消除或者減小到最小,以保證系統(tǒng)能夠正常工作??垢蓴_主要從以下幾個方面進行考慮。(1)消除干擾源
有些干擾,可以采取一些合理的方法予以消除。比如通過合理布線,可以消除或減少分布電容和線間感應;在集成電路的電源和地線之間連接去耦電容,可以抑制傳輸線的反射,消除信號波形的毛刺和臺階;集成電路的閑置端不要懸空;改進制造工藝和焊接技術,也可以消除部分干擾;采用屏蔽措施,把干擾源或控制系統(tǒng)屏蔽起來,也是一種消除干擾源的有效措施。9.2.2硬件抗干擾技術單片機原理及接口技術
(2)遠離干擾源
離干擾源越遠,干擾就會衰減的越小。計算機控制系統(tǒng)、計算機房、包括有終端設備的操作室都應該盡可能地遠離干擾源,比如遠離具有強磁場、強電場的地方。(3)防止干擾的竄入
干擾都是通過一定的途徑進入計算機控制系統(tǒng)中的。如果能在干擾進入途徑上采取有效的措施,就可以避免干擾對計算機控制系統(tǒng)的入侵。1.電源系統(tǒng)的抗干擾措施
實踐表明,電源系統(tǒng)的干擾是計算機控制系統(tǒng)的主要干擾,必須給予足夠的重視。電源系統(tǒng)可分為交流電源和直流電源系統(tǒng)。9.2.2硬件抗干擾技術單片機原理及接口技術
(1)交流電源系統(tǒng)的抗干擾措施1)選用供電比較穩(wěn)定的進線電源;2)對電源變壓器設置合理的屏蔽;3)為了克服電網(wǎng)電壓波動對控制系統(tǒng)的影響,在電源輸入端接一個交流穩(wěn)壓器;4)為了消除頻率高于50Hz的高次諧波干擾信號,在電源輸入端接一個低通濾波器;5)對于要求很高的控制系統(tǒng)可利用不間斷電源(UPS)供電,從而消除惡性干擾。9.2.2硬件抗干擾技術單片機原理及接口技術
(2)直流電源系統(tǒng)的抗干擾措施1)采用直流開關電源;2)如果系統(tǒng)供電網(wǎng)絡電壓波動較大,或者對直流電源的精度要求較高,可采用DC-DC變換器;3)對系統(tǒng)的各個模塊采用分散獨立的電源供電。2.過程通道干擾的抑制
過程通道是I/O接口與主機之間進行信息傳輸?shù)耐緩?,在過程通道中干擾信號通過輸入線竄入計算機控制系統(tǒng)。過程通道干擾主要從I/O接口和傳輸線兩個方面考慮。(1)I/O接口的抗干擾措施單片機原理及接口技術
1)在信號加到輸入通道之前,可以外加硬件濾波器濾除交流干擾。如果干擾信號頻率比信號頻率高,選用低通濾波器;如果干擾信號頻率比信號頻率低,選用高通濾波器;當干擾信號頻率在信號頻率的兩側時,選用帶通濾波器。使用濾波器是抑制串模干擾的常用方法;2)由于差動放大器只對差動信號起放大作用,而對共模電壓不起放大作用,因此可以利用差動方式傳輸和接收信號,從而抑制共模干擾;3)為了避免輸入端對輸出端的干擾或輸出端對輸入端的反饋干擾,可以采用光電耦合器進行光電隔離,光電耦合器采用了電-光-電的信號傳遞方式,具有很高的絕緣性;4)利用變壓器將模擬電路和數(shù)字電路隔離開來,使共模干擾電壓不能形成回路,從而抑制共模干擾。單片機原理及接口技術
(2)I/O傳輸線的抗干擾措施1)由于雙絞線是一對導線按照設定行波的長度對絞,每一個小環(huán)路上感應的電勢會互相抵消,所以傳輸線采用雙絞線;2)在干擾嚴重、精度要求很高的場合,應當采用屏蔽信號線。屏蔽信號線可以防止外部干擾竄入;3)光纖是利用光傳輸信號,可以不受任何形式的電磁干擾影響,傳輸損耗很小。因此在周圍環(huán)境電磁干擾大,傳輸距離較遠的場合,可以使用光纖傳輸;4)長線傳輸除了會受到外部干擾,還可能產生波的反射。如果傳輸線的終端阻抗和傳輸線的波阻抗不匹配,入射波到達終端時會引起反射,反射波到達始端后,如果始端阻抗不匹配,又會引起新的反射。如此反復,會在信號中引起很多干擾。因此對長線可采用阻抗匹配的辦法抑制干擾。單片機原理及接口技術
3.接地技術
單片機應用系統(tǒng)中存在的地線有數(shù)字地、模擬地、功率地、信號地和屏蔽地。數(shù)字地與模擬地應分開,最后單點相連。一般高頻電路應就近多點接地,在高頻電路中,地線上具有電感,從而增加了地線阻抗,而且地線變成了天線,向外輻射噪聲信號,因此要多點就近接地。低頻電路應一點接地,在低頻電路中,接地電路若形成環(huán)路,對系統(tǒng)影響很大,因此應一點接地。交流地、功率地與信號地不能共用。流過交流地和功率地的電流較大,會產生幾毫伏、甚至幾伏電壓,這會嚴重地干擾低電平信號的單片機原理及接口技術
電路,因此交流地、功率地與信號地要絕對分開。信號地與屏蔽地的連接不能形成死循環(huán)回路,否則會感生出電壓,形成干擾信號。
用金屬外殼將部分元器件或整機包圍起來,再將金屬外殼接地,就能起到屏蔽的作用,可以抑制各種通過電磁感應引起的干擾。屏蔽外殼的接地點要與系統(tǒng)的信號參考點相接,而且只能單點接地。若要有引出線,應采用屏蔽線,其屏蔽層應和外殼的接地點接同一系統(tǒng)參考點。參考點不同的系統(tǒng)應分別屏蔽,不可共處一個屏蔽盒內。單片機原理及接口技術
為了有效地抑制干擾,僅僅采取硬件措施是不夠的,還必須采取軟件措施。適當采用軟、硬件相結合的方法,可以獲得較理想的抗干擾效果。軟件抗干擾措施主要有:1.指令冗余
在實際應用中,根據(jù)系統(tǒng)要求,規(guī)定了程序運行的唯一途徑。但當干擾嚴重時,會使程序偏離正常的運行途徑,出現(xiàn)改變操作數(shù)數(shù)值以及將操作數(shù)誤認為操作碼等問題,即通常所說的程序“跑飛”或“死機”。發(fā)生程序“跑飛”是因為程序中有多字節(jié)指令。此時的首要工作,就是盡快將程序納入正常路徑。所謂“指令冗余”就是在一些關鍵的地方將有效單字節(jié)指令重復書寫或插入一些單字節(jié)的空操作指令(NOP)。當程序“跑飛”到某條NOP指令之上時,不會9.2.3軟件抗干擾技術單片機原理及接口技術
發(fā)生把操作數(shù)作為指令碼執(zhí)行的錯誤。但在程序中加入太多的冗余指令會降低程序正常運行的效率。因此,通常僅僅在一些對程序流向起決定作用的指令的前面插入兩條NOP指令,以保證“跑飛”的程序迅速恢復正常運行。2.軟件陷阱
指令冗余使“跑飛”的程序恢復正常運行有兩個條件,一是“跑飛”的程序必須落到程序區(qū),二是必須執(zhí)行所設置的冗余指令。如果“跑飛”的程序落到非程序區(qū)(如EPROM中未使用的空間或某些數(shù)據(jù)表格等)時,或者當“跑飛”的程序在沒有碰到冗余指令之前,已經不能正常運行,可采用設置軟件陷阱的方法,引導“跑飛”的程序進入指定的指令操作。9.2.3軟件抗干擾技術單片機原理及接口技術
所謂“軟件陷阱”,就是利用一條引導指令,強行將掉到陷阱中的程序引向一個指定的地址,在那里有程序運行出錯處理程序,會將程序納入正軌。根據(jù)“跑飛”的程序落入陷阱區(qū)的位置不同,可將軟件陷阱設置在以下區(qū)域:1)未使用的中斷區(qū)。當未使用的中斷因干擾而開放時,在對應的中斷服務程序中設置軟件陷阱,以及時捕捉錯誤的中斷,從而返回到正常路徑。2)未使用的EPROM空間。EPROM的存儲空間很少全部用完,可在空白處插入軟件陷阱指令。軟件陷阱指令為LJMP0000H,機器碼為020000H。當程序“跑飛”時,PC指針指向02H操作碼,失控程序將轉向復位入口地址0000H。3)運行程序區(qū)。將陷阱指令組分散放置在用戶程序各模塊之間的空余單元里。在正常單片機原理及接口技術
程序中不執(zhí)行這些指令,不會影響程序執(zhí)行的效率。在當前EPROM容量不成問題的條件下,“軟件陷阱”應多設置一些為好,“跑飛”的程序一旦落入此區(qū),便迅速拉到正常路徑。4)中斷服務程序區(qū)。設用戶主程序運行區(qū)間為CODE1~CODE,并設定時器T0產生10ms定時中斷??稍谥袛喾粘绦蛑信袛嘀袛鄶帱c地址CODEx,若CODEx<CODE1或CODEx>CODE2,說明發(fā)生了程序“跑飛”,則應使程序返回到復位地址0000H,將“跑飛”程序拉到正常路徑。5)外部RAM寫保護。單片機外部RAM中保存了大量數(shù)據(jù),其寫入指令為MOVX@DPTR,A。當CPU受到干擾而非法執(zhí)行該指令時,會改寫RAM中的數(shù)據(jù)。為減小RAM中數(shù)據(jù)丟失或被改寫的可能性,可在對RAM寫操作之前加入條件陷阱指令,不滿足條件時不允許寫,并進入陷阱,形成死循環(huán)。單片機原理及接口技術
3.程序運行監(jiān)控
在計算機控制系統(tǒng)中,即使采用了上述的抗干擾措施,但當程序“跑飛”到一個冗余指令和“軟件陷阱”都無能為力的死循環(huán)中時,系統(tǒng)就會癱瘓。此時只能依靠本身不依賴于CPU而獨立工作的程序運行監(jiān)視器Watchdog(看門狗)來解決程序“跑飛”問題。Watchdog可以做成硬件電路,也可以由軟件設計,但軟件的可靠性不如硬件電路,也可由兩者結合起來實現(xiàn)。
Watchdog是利用CPU在一定的時間間隔(根據(jù)程序運行要求而定)內發(fā)出正常信號的條件工作的,當CPU進入死循環(huán)后,可以及時發(fā)現(xiàn)并使系統(tǒng)復位。
單片機原理及接口技術
3.程序運行監(jiān)控
軟件看門狗基本思路是:在主程序中對T0中斷服務程序進行監(jiān)視;在T1中斷服務程序中對主程序進行監(jiān)視;T0中斷又監(jiān)視T1中斷。這種相互依存、相互制約的抗干擾措施將使系統(tǒng)的可靠性大大提高。
Watchdog的硬件電路可以由單穩(wěn)態(tài)電路構成,也可以使用集成電路uP監(jiān)控電路。uP監(jiān)控電路有多種規(guī)格和種類,有的除了具有看門狗功能,還具有上電復位、監(jiān)控電壓變化、片使能WDO和備份電源切換開關等功能。
單片機原理及接口技術9.3.1設計任務及硬件電路設計1.設計任務
設計一個八路溫度巡檢儀控制系統(tǒng),測量范圍為0~300oC,要求8路輸入溫度值,能在4位LED數(shù)碼管上輪流顯示,其中最高位顯示通道數(shù)。2.系統(tǒng)硬件電路設計
要對8路溫度進行采集并顯示,電路主要由A/D轉換模塊,多路數(shù)據(jù)選擇模塊,數(shù)據(jù)處理及顯示控制模塊組成。A/D轉換模塊由集成電路AD7705組成,數(shù)據(jù)選擇開關由多路選擇開關CD4051組成,地址線決定對哪一路進行數(shù)據(jù)轉換。外圍擴展的芯片采用串行接口芯片,使整個系統(tǒng)體積小、功耗低,具有良好的可維護性和較強的抗干擾性能。單片機選用AT89C51,晶振為12MHz,AD7705的時鐘線接單片機的ALE9.3八路溫度巡檢儀控制系統(tǒng)設計單片機原理及接口技術端,它將產生2MHz的時鐘信號。單片機的P0口接數(shù)碼管的段碼,P2口接位選。P3.0為A/D數(shù)據(jù)輸入端,采用串行通信方式0進行數(shù)據(jù)的讀入。(1)A/D采樣模塊
在這一部分電路中,AD7705是用于低頻測量系統(tǒng)的前端器件,它分辨率高,且有節(jié)電模式,能夠滿足高精度和低功耗的要求。此外,AD7705片內還有數(shù)字濾波電路、校準電路和補償電路,因而能更好地保證高精度溫度測量的實現(xiàn)。
AD7705有兩個模擬差分輸入通道,電源電壓為+5V、參考電壓為+3.3V。AD7705可直接接收傳感器產生的信號以進行A/D轉換并輸出串行數(shù)字信號。它采用Σ-Δ技術來實現(xiàn)16位A/D轉換。采樣速率由MCLKIN端的主時鐘和放大器的可變增益來
單片機原理及接口技術決定。實際上,AD7705同時可以對輸入信號進行片內放大、調制轉換和數(shù)字濾波處理。其數(shù)字濾波器的阻帶可通過編程控制,以便調節(jié)濾波器的截止頻率和輸出數(shù)據(jù)的更新速率。
關于AD7705基準電壓的選擇,為了保證測量精度,沒有直接將電源電壓作為基準電壓,而是選用專門的穩(wěn)壓集成芯片ASM1117,并且進行了去耦處理。該模塊的電路如圖9-3所示。
單片機原理及接口技術圖9-3AD采樣電路圖單片機原理及接口技術
(2)多路數(shù)據(jù)選擇模塊:
CD4051相當于一個單刀八擲開關,開關接通哪一通道,由輸入的3位地址碼ABC來決定?!?EN”是禁止端,當/EN=1時,各通道均不接通。此外,CD4051還設有另外一個電源端VEE,以作為電平位移時使用,從而使在單組電源供電情況下工作的CMOS電路所提供的數(shù)字信號能直接控制多路開關,并使多路開關可傳輸峰-峰值達15V的交流信號。例如,若模擬開關的供電電源VDD=+5V,VSS=0V,當VEE=-5V時,只要對此模擬開關施加0~5V的數(shù)字控制信號,就可控制幅度范圍為-5V~+5V的模擬信號。單片機原理及接口技術
圖9-4差分信號多路選擇開關單片機原理及接口技術
由于A/D7705的模擬輸入是以差分信號的方式輸入,所以系統(tǒng)選用兩片CD4051作八通道的選擇控制,將兩片CD4051的地址線(A、B、C)分別連到一起,使輸入的差分信號同時選通。如圖9-4所示U3與U4的第3管腳分別接AD7705的模擬輸入端。在實際應用中,為了使得它們的導通特性相同,應盡量選擇同一型號的CD4051。(3)數(shù)碼管顯示模塊:
該系統(tǒng)采用動態(tài)掃描的方式進行顯示。在硬件設計中將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。動態(tài)掃描顯示的原理是輪流向各位數(shù)碼管送出字形碼和相應的位選信號,利用發(fā)光管的余輝和人眼視覺暫留作用,使人的感覺好像各位數(shù)碼管同時都在顯示。動態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時應略小于靜態(tài)顯示電路中的限流電阻。該方案與靜態(tài)顯示相比,硬件電路比較簡單,成本較低。動態(tài)顯示模塊電路如圖9-5所示。單片機原理及接口技術
圖9-5動態(tài)LED顯示電路單片機原理及接口技術
在該電路中選用限流電阻為330Ω,因為每一個段碼的發(fā)光二極管所能承受的最大電流為10mA~20mA。在電源電壓為+5V時,如果不加限流電阻,則流過發(fā)光二極管的電流將達到幾百毫安,這樣會燒壞發(fā)光二極管。
需要說明的一點是,該系統(tǒng)選用共陽極數(shù)碼管,這樣在段碼控制端口(P0口)為低電平時數(shù)碼管導通點亮。在MCS-51單片機或者是其它的一些集成電路中,灌電流要大于其輸出電流,所以選用共陽極數(shù)碼管,讓P0口以灌電流的方式提供驅動電流,以提高驅動能力。還需要特別說明的一點是,所用端口不能直接去驅動每個數(shù)碼管的位選端口,因為MCS-51單片機的每個端口只能提供20mA的電流,如果去驅動的話,可能會燒壞單片機的端口。
八路溫度巡檢儀控制系統(tǒng)的硬件連接如圖9-6所示。單片機原理及接口技術
圖9-6
8路巡檢儀系統(tǒng)原理圖單片機原理及接口技術
首先上電復位AD7705,配置AT89C51單片機的串行接口,然后將AD7705的通道1初始化。查詢DRDY引腳,若為低電平,則讀數(shù)據(jù)寄存器,把數(shù)據(jù)轉化為溫度值,再調用顯示子程序及延時子程序,之后返回繼續(xù)采集數(shù)據(jù),查詢DRDY并顯示,直到結束。(1)主程序設計
系統(tǒng)上電后,對AD7705進行初始化。然后調用顯示子函數(shù)和A/D轉換測量子函數(shù)進入循環(huán),系統(tǒng)默認依次循環(huán)顯示8個通道的電壓值,每個通道的數(shù)據(jù)顯示時間在0.5s,溫度測量的周期為4s。主程序流程如圖9-7所示。9.3.2系統(tǒng)軟件設計單片機原理及接口技術
(2)顯示子函數(shù)
顯示程序采用動態(tài)掃描法實現(xiàn)4位數(shù)碼管的數(shù)值顯示。測量所得的A/D轉換數(shù)據(jù)放在8個事先定義的ad_data[8]內存單元中,測量所得的A/D數(shù)據(jù)在在顯示時需經過轉換變成十進制BCD碼。列掃描采用掃描字代碼,每位LED顯示時間為1ms,每路溫度數(shù)據(jù)顯示時間為0.5秒。(3)模/數(shù)轉換測量子函數(shù)
模/數(shù)(A/D)轉換測量子函數(shù)用來控制對AD7705和CD4051的八路模擬輸入的微小信號進行A/D轉換,并將對應的數(shù)值存入內存單元。程序流程如圖9-8所示。單片機原理及接口技術
圖9-7主程序流程圖圖9-8A/D轉換測量子程序流程圖單片機原理及接口技術
整個系統(tǒng)的參考程序如下:#include<reg51.h>#defineAddr_channelP1 /*八路通道地址端口*/typedefunsignedcharuchar; /*用關鍵字宏定義,其效率高*/typedefunsignedintuint;sbitDRDY=P3^2;sbitDP=P0^7;/***********內存單元定義*************//*code以節(jié)省內存單元*/ucharcodeseg7[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};/*0~9段碼譯碼數(shù)組*/ucharcodescan_con[4]={0xf7,0xfb,0xfd,0xfe}; /*4位列掃描控制字0xf7,0xfb,0xfd,0xfe*/uintdataad_data[8]={0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000};/*8個通道AD數(shù)據(jù)內存單元*/單片機原理及接口技術
uint_dataad_data_buff[3]={0x0000,0x0000,0x0000};uchardatadis[4]={0x00,0x00,0x00,0x00};/*3個顯示單元和1個數(shù)據(jù)存儲單元*//************延時1ms函數(shù)*******************//*減運算以節(jié)省代碼存儲空間*/voiddelay1ms(uintt){ uinti,j;
for(i=t;i>0;i--)
for(j=120;j>0;j--);}/*******對8位數(shù)據(jù)進行倒序處理函數(shù)*******/ucharreverse_order(ucharold_dat){
uchari,new_dat;
new_dat=old_dat&0x01; /*取要轉換數(shù)據(jù)最低位*/單片機原理及接口技術
for(i=0;i<7;i++)
{ new_dat<<=1; /*將最低位左移一次*/ old_dat>>=1; /*數(shù)據(jù)的第二位移到最低位*/ new_dat|=(old_dat&0x01);
}
returnnew_dat; }/***********向AD7705寫一個字節(jié)的數(shù)據(jù)******************/voidWrite_AD_reg(uchardat){
SBUF=dat;
while(!TI); /*等待發(fā)送完成*/
TI=0; }/********從AD7705讀出兩個字節(jié)的數(shù)據(jù),AD轉換值*******//*返回值為unsignedint類型*/單片機原理及接口技術
uintRead_AD_reg(){ucharlow8,high8;uintAD_out;SCON=0x00;Write_AD_reg(0x1c); /*讀數(shù)據(jù)通道0x38*/while(DRDY); /*為低電平時讀取數(shù)據(jù)*/REN=1; /*接收使能*/while(!RI); /*等待接收完*/RI=0;high8=SBUF; while(!RI);RI=0;low8=SBUF;REN=0;high8=reverse_order(high8); /*對讀回的高8位倒序*/low8=reverse_order(low8);AD_out=high8;單片機原理及接口技術
AD_out<<=8;AD_out|=low8;returnAD_out; }/************對AD7705初始化*****************/voidAD_Init(void) /*用串行數(shù)據(jù)輸入時一定要將數(shù)據(jù)進行倒序處理*/{
Write_AD_reg(0x04);
/*寫0x20到通信寄存器,選擇通道ANI(+)和ANI(-),下一個
寄存器指向時鐘寄存器。倒序:0x04*/
Write_AD_reg(0x30); /*寫0x0c到時鐘寄存器,接2MHz時鐘,時鐘二分頻,輸出更
新率為50Hz。倒序:0x30*/
Write_AD_reg(0x08); /*寫0x10到通信寄存器,到通信寄存器,下一個寄存器指向
設置寄存器。倒序:0x08*/
Write_AD_reg(0x62); /*寫0x46到設置寄存器,自動校準,單極性,gain=1;緩沖
模式FASYNC=0。倒序:0x62*/單片機原理及接口技術
Write_AD_reg(0x6e); /*寫0x76到設置寄存器,自動校準,單極性,
gain=64;緩沖模式,F(xiàn)ASYNC=0。倒序:0x6e*/
Write_AD_reg(0x76); /*寫0x6e到設置寄存器,自動校準,單極性,
gain=32;緩沖模式,F(xiàn)ASYNC=0。倒序:0x76*/}/************溫度采樣函數(shù)*****************/voidAD_samp(void){uchari,m,n;ucharj=0;intk;Addr_channel=j;for(i=0;i<8;i++)
{ad_data_buff[0]=Read_AD_reg();/*在此也可以做中值濾波處理*/單片機原理及接口技術
ad_data_buff[1]=Read_AD_reg();ad_data_buff[2]=Read_AD_reg();for(m=0;m<3;m++)
{
for(n=0;n<3-m;n++)
if(ad_data_buff[n]>value_buf[n+1])
{
k=ad_data_buff[n];
ad_data_buff[n]=ad_data_buff[n+1];
value_buf[n+1]=k;
}
} ad_data[i]=ad_data_buff[1];
/*使模擬開關選通可靠,起延時的作用*/
j++; Addr_channel=j;
}
單片機原理及接口技術
Addr_channel=0x00;}/************顯示處理函數(shù)*****************/voiddisplay(void){ucharm,n;floath;uinta,k,d;dis[3]=0x01; /*通道初值為1*/for(m=0;m<8;m++)
{ h=ad_data[m]/65535.0; k=h*300; dis[2]=k/100; /*對溫度值取百位數(shù)*/ dis[1]=k/10%10; /*對溫度值取十位數(shù)*/ dis[0]=k%10; /*對溫度值取個位數(shù)*/ for(a=0;a<50;a++) {
單片機原理及接口技術
for(n=0;n<4;n++) {
P0=seg7[dis[n]]; /*P0為數(shù)碼管段選端口*/
P2=scan_con[n];
delay1ms(5); /*穩(wěn)定顯示*/
P2=0xff; /*確保下次寫數(shù)據(jù)正確*/ }
} /*通道加1*/ dis[3]++;
}}單片機原理及接口技術
voidmain(void){
Addr_channel=0x00; /*通道地址初始為0*/
AD_Init();
SCON=0x00;/*串口初始化*/
while(1)
{ AD_samp(); display();
} }單片機原理及接口技術
9.4步進電機控制系統(tǒng)設計1.設計任務
利用單片機控制步進電機實現(xiàn)兩種工作方式。方式1:通過T2自動送出控制脈沖,使步進電機以某一速度恒定轉動,同時利用數(shù)碼管顯示脈沖頻率;方式2:通過向外部中斷0(P3.2)送入脈沖控制步進電機,每輸入一個脈沖,步進電機步進一次。2.硬件電路設計
步進電機是一種將電脈沖信號轉換成角位移或線位移的機電元件。步進電機的輸入量是脈沖序列,輸出量則為相應的增量位移或步進運動。正常運動情況下,它每轉一周具有固定的步數(shù);做連續(xù)步進運動時,其旋轉轉速與輸入脈沖的頻率保持嚴格的對應關9.4.1設計任務及硬件電路設計單片機原理及接口技術
系,不受電壓波動和負載變化的影響。由于步進電機能直接接受數(shù)字量的控制,所以特別適宜采用單片機進行控制。
所采用步進電機為四相六線制,當通電時序為AB-BC-CD-DA時,步進角為1.8度,通電時序為A-AB-B-BC-C-CD-D-DA時,步進角為0.9度。
基本操作:方式1下K1、K2鍵控制T2的定時長度,進而控制送給步進電機的脈沖頻率,同時數(shù)碼管顯示頻率,K3鍵控制方式1、2間的轉換。注:方式2下數(shù)碼管不再顯示。
要實現(xiàn)將單片機送出的控制脈沖經功率放大以后驅動步進電機,選用集成功放芯片L298作為驅動電路。L298芯片是一種雙H橋式驅動器,每一路輸出由標準的TTL邏輯電平信號控制,可用來驅動電感性負載。H橋可承受46V電壓,相電流高達2.5A。
為了減小設計成本,選用數(shù)碼管動態(tài)掃描方式顯示。系統(tǒng)硬件連接如圖9-9所示。 單片機原理及接口技術
圖9-9
步進電機控制系統(tǒng)原理圖單片機原理及接口技術
9.4.2系統(tǒng)軟件設計根據(jù)硬件設計要求,編寫相應參考程序如下:#include<reg52.h>#include<intrins.h>#defineucharunsignedchartypedefunsignedintuint;sfrT2MOD=0xc9;ucharcyc; /*定時器定時長度,單位毫秒*/ucharstepcode; /*指向step_code中的某一數(shù)據(jù)*/ucharcodestep_code[]={0xf3,0xf6,0xfc,0xf9}; /*雙四拍*/ucharcodestep_code[]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};/*單雙八拍*/ucharcodediscode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; /*數(shù)碼管段碼,0~9,off*/uchardis_buf[]={10,10,10,10,10,10,3,3}; /*顯示緩沖*/單片機原理及接口技術
ucharindex;
/*用于掃描時選通某一數(shù)碼管*/uchardigit; /*標記本次掃描要選通那個數(shù)碼管*/sbitK1=P1^0;sbitK2=P1^1;sbi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年心理康復治療服務協(xié)議范本3篇
- 童年治愈心理課程設計
- 2024年度員工健康促進活動集資管理協(xié)議3篇
- 測控電路課程設計論文
- 2024年度綠色環(huán)保大棚租賃服務協(xié)議范本3篇
- 2024年涂料品牌代理商合同3篇
- 晶體管值測試課程設計
- 2024年綜合材料籃球場地施工合同
- 2024年海上運輸合同模板
- 2024年游戲作品授權委托合同范本3篇
- 國開形考作業(yè):可編程控制器應用-課程實驗
- 監(jiān)理安全管理工作中有哪些細節(jié)必須注意
- 西南交大土木工程經濟與項目管理課程設計
- 管井降水施工方案
- 創(chuàng)業(yè)基礎期末考試
- 廣東省廣州市白云區(qū)八年級(上)期末數(shù)學試卷
- 全過程工程咨詢服務技術方案
- 焊機安全技操作規(guī)程15篇
- CMS電子后視鏡遇見未來
- YY/T 0698.6-2009最終滅菌醫(yī)療器械包裝材料第6部分:用于低溫滅菌過程或輻射滅菌的無菌屏障系統(tǒng)生產用紙要求和試驗方法
- GB/T 397-2009煉焦用煤技術條件
評論
0/150
提交評論