單片機(jī) 系統(tǒng)設(shè)計課件_第1頁
單片機(jī) 系統(tǒng)設(shè)計課件_第2頁
單片機(jī) 系統(tǒng)設(shè)計課件_第3頁
單片機(jī) 系統(tǒng)設(shè)計課件_第4頁
單片機(jī) 系統(tǒng)設(shè)計課件_第5頁
已閱讀5頁,還剩159頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第11章應(yīng)用系統(tǒng)設(shè)計技術(shù)與實例 設(shè)計自己的單片機(jī)系統(tǒng)第11章 應(yīng)用系統(tǒng)設(shè)計技術(shù)與實例11.1 單片機(jī)應(yīng)用系統(tǒng)開發(fā)流程 11.2 抗干擾設(shè)計 11.3 應(yīng)用舉例概述本章從單片機(jī)應(yīng)用開發(fā)的一般步驟入手,著重介紹總體設(shè)計、硬件設(shè)計、軟件設(shè)計、開發(fā)裝置的使用與系統(tǒng)調(diào)試、編程器的使用與程序固化、產(chǎn)品驗收與交付使用等技術(shù)環(huán)節(jié)要完成的任務(wù)和實際開發(fā)中應(yīng)注意的問題,軟硬件的抗干擾技術(shù),最后給出一個開發(fā)實例以便模仿。內(nèi)容上貼近實際,注意對自上而下的任務(wù)逐級分解過程的介紹,力圖按工程的要求,使開發(fā)進(jìn)程有條不紊,有理有據(jù),文檔齊全。由于篇幅限制,許多地方只能簡略介紹。1111 總體設(shè)計1用戶需求分析對用戶提出的功能

2、需求、技術(shù)指標(biāo)等,進(jìn)行必要的可行性論證。明確設(shè)計任務(wù),并以書面形式確定以下幾方面的內(nèi)容,經(jīng)用戶認(rèn)可,形成設(shè)計任務(wù)書。(1)產(chǎn)品名稱;(2)設(shè)計目的;(3)系統(tǒng)功能要求(4)系統(tǒng)性能指標(biāo)(5)總體要求;(6)設(shè)計周期;(7)設(shè)計費(fèi)用;(8)其他。2構(gòu)建系統(tǒng)總體架構(gòu)1根據(jù)設(shè)計任務(wù)書的要求,在滿足功能、性能等用戶需求的基礎(chǔ)上,初步提出可選技術(shù)路線,并對各方案進(jìn)行必要的分析,充分聽取方方面面的意見,選擇一種實施方案。實施方案中的系統(tǒng)總體架構(gòu)應(yīng)以用戶需求為出發(fā)點。主要包括:選擇機(jī)型;根據(jù)需要確定擴(kuò)展;確定主要的軟硬件功能;明確用戶界面(鍵盤、顯示、打印等)的形式;確定系統(tǒng)的結(jié)構(gòu)(或建議,經(jīng)用戶確認(rèn));單

3、片機(jī)內(nèi)部資源分配及任務(wù)分解。2構(gòu)建系統(tǒng)總體架構(gòu)2在總體設(shè)計階段應(yīng)形成總體報告(實施方案)和設(shè)計任務(wù)書。報告形成后,就可分成兩組進(jìn)行同步設(shè)計了。第一組負(fù)責(zé)硬件,第二組負(fù)責(zé)軟件,兩個組由項目負(fù)責(zé)人協(xié)調(diào)。有的時候項目較小或者其它原因,只有一個人,就要先設(shè)計硬件部分,然后交給線路板廠制版,在此期間開始軟件設(shè)計。2構(gòu)建系統(tǒng)總體架構(gòu)3硬件設(shè)計除了主要完成PCB線路板設(shè)計外,還應(yīng)考慮可靠性和保密性,最終形成PCB圖、元器件清單、網(wǎng)絡(luò)表、端口地址表等技術(shù)文檔;軟件設(shè)計主要完成軟件功能模塊劃分、出口入口參數(shù)定義、最終形成程序(子程序)框圖、源程序清單等技術(shù)文檔。軟硬件調(diào)試必須由軟硬件設(shè)計人員共同參與,形成調(diào)試報

4、告。最后向用戶提交產(chǎn)品、產(chǎn)品說明書等。圖11-2 新的產(chǎn)品開發(fā)流程圖 現(xiàn)在有了proteus軟件,不等做出電路板就可以提前進(jìn)行功能測試,大大節(jié)省了時間和金錢成本,其流程可以修改成如上。 1112 硬件設(shè)計和制作硬件原理設(shè)計是系統(tǒng)設(shè)計開始后最重要的第一步。硬件原理設(shè)計中存在的缺陷將對整個設(shè)計產(chǎn)生影響,所以原理設(shè)計要特別細(xì)心周到。原理設(shè)計完成后,將產(chǎn)生硬件原理圖、網(wǎng)絡(luò)表、元件清單等重要文檔,這些文檔是后續(xù)工作的基礎(chǔ)。在硬件原理圖基礎(chǔ)上,可以采用CAD自動布局、自動布線來自動地完成印制板繪制。通過印制板和原理圖各自生成的網(wǎng)絡(luò)表,可以驗證所繪制的線路板與原理圖是否一致。網(wǎng)絡(luò)表還用于檢查生產(chǎn)出來的印制板

5、上線路的通斷。1 硬件原理設(shè)計1硬件原理設(shè)計的任務(wù)是設(shè)計并繪制硬件原理圖,主要應(yīng)從以下幾個方面考慮。(1)最小應(yīng)用系統(tǒng)設(shè)計包括微處理器的選擇、程序存儲器的選擇、晶振的選擇、總線是否驅(qū)動、復(fù)位電路的設(shè)計、內(nèi)部資源(如定時、計數(shù)、中斷)的使用等。(2)I/O通道設(shè)計包括開關(guān)量I/O通道,接口電路、端口地址等問題,模擬量I/O通道中A/D、D/A轉(zhuǎn)換芯片的選擇等。(3)人機(jī)界面設(shè)計人機(jī)界面設(shè)計包括鍵盤、顯示和打印電路及其接口設(shè)計。1 硬件原理設(shè)計2(4)其他系統(tǒng)擴(kuò)展設(shè)計根據(jù)系統(tǒng)需要擴(kuò)展外部RAM、ROM、定時計數(shù)、中斷管理、串行口擴(kuò)展等。(5).電源設(shè)計根據(jù)系統(tǒng)的供電要求和使用環(huán)境,確定供電方案。比

6、如手持式設(shè)備往往需要電池供電;有的設(shè)備需要備用電源等。交流供電也要設(shè)計變換電路,可以選擇模擬穩(wěn)壓電源或開關(guān)穩(wěn)壓電源等。(6)接插件定義確定線路板之間的數(shù)據(jù)通信形式,包括接插件的類型,接插件管腳定義等。2 資源分配完成了原理設(shè)計之后,硬件資源就基本確定了,適時地進(jìn)行資源分配,對后續(xù)工作能起到很好的限定作用。此外,在資源分配時能及時發(fā)現(xiàn)資源的利用情況,一方面減少資源浪費(fèi),另一方面發(fā)現(xiàn)資源不足,及時修正原理設(shè)計中的潛在問題。資源分配的主要任務(wù)是對單片機(jī)內(nèi)部RAM、2(或3)個定時計數(shù)器、5(或6)個中斷源、1個全雙工異步串行口、4個并行I/O口等單片機(jī)內(nèi)部資源及擴(kuò)展資源逐個分析其用途、工作方式、工作

7、起止時間和限定條件,分配端口地址等。3 線路板圖繪制原理圖最終還要通過CAD軟件繪制出線路板圖才能交付生產(chǎn),這個工作要在仿真實驗完成之后進(jìn)行,否則可能會白白浪費(fèi)時間和金錢。在繪制線路板時一定要注意以下幾個問題。(1)器件的布局原則器件布局是指在線路板上布置元器件的位置。在電路板設(shè)計時應(yīng)合理地分區(qū),如強(qiáng)、弱信號,數(shù)字、模擬信號,輸入、輸出通道等安排在不同區(qū)域,盡可能使干擾源(如電機(jī)、繼電器)與敏感元件(如單片機(jī))遠(yuǎn)離,應(yīng)考慮走線的密度均衡、發(fā)熱均衡等因素。除了按用戶要求的鍵盤、顯示等器件的位置已確定外,其他器件最好是環(huán)繞CPU或在CPU引出的總線兩側(cè)。(2)布線原則2單片機(jī)和大功率器件的地線要單

8、獨接地,以減少相互干擾。大功率器件盡可能放在電路板邊緣。有條件應(yīng)盡量采用四層以上印制板,中間兩層為電源及地。(2)布線原則3當(dāng)大電流線寬到一定程度時,由于占用線路板資源太多,一般采用粗導(dǎo)線“跨接”的方法,這樣不僅節(jié)省了線路板資源,而且避免了由于大電流導(dǎo)致線路板被“加熱”。走線應(yīng)避免出現(xiàn)直角或銳角,以減少高頻噪聲發(fā)射。注意晶振布線,晶振與單片機(jī)引腳盡量靠近,用地線把時鐘區(qū)隔離起來,晶振外殼接地并固定。4.可靠性設(shè)計單片機(jī)應(yīng)用系統(tǒng)的可靠性是指在指定的應(yīng)用環(huán)境和條件下,系統(tǒng)穩(wěn)定工作的能力。單片機(jī)應(yīng)用系統(tǒng)由于具有很高的性能價格比,已逐步深入到各個領(lǐng)域,對單片機(jī)系統(tǒng)工作的可靠性也就提出了越來越高的要求。

9、因為系統(tǒng)一旦出現(xiàn)問題,將帶來一系列損失,產(chǎn)生嚴(yán)重的后果。提高系統(tǒng)的可靠性可以從兩方面入手,一方面從硬件設(shè)計角度提高系統(tǒng)抗干擾能力,另一方面從軟件角度提高系統(tǒng)的可靠性。具體措施在下一節(jié)詳述。 5 保密性設(shè)計單片機(jī)應(yīng)用產(chǎn)品多數(shù)采用雙面板,線路板上走線一目了然,很容易將線路板測繪出來。保密設(shè)計多采用以下兩種方法:(1).程序加密:將程序固化在單片機(jī)內(nèi)部的方法。選用內(nèi)含程序存儲器帶“加密”位的單片機(jī),這樣做的結(jié)果是使得解密變得麻煩,提高解密成本。(2).可編程邏輯陣列加密:PAL、GAL等小規(guī)??删幊踢壿嬯嚵性趩纹瑱C(jī)應(yīng)用系統(tǒng)中很實用,可以直接取代TTL組合邏輯,且多數(shù)PAL、GAL器件可以設(shè)置加密(不

10、可讀),使“仿制”者不能輕易得手。6 硬件線路板的焊接與測試(2).元件焊接對于產(chǎn)品開發(fā),IC多采用焊IC座的方法,便于線路修改。如果是批量生產(chǎn)的產(chǎn)品,除了易損壞的IC之外,為了確保硬件線路的可靠性,應(yīng)把IC直接焊在線路板上。在元件焊接時,要注意避免漏焊、錯焊和虛焊。忠告:手工焊接水平的提高需要很好的訓(xùn)練。(3).局部線路測試局部線路測試是通過編寫測試程序,檢查局部硬件線路能否正常工作。如果不能正常工作需查找問題并解決。注意:硬件的設(shè)計是最基礎(chǔ)的,任何一點馬虎或疏漏都有可能造成難以挽回的損失.1113 軟件設(shè)計軟件設(shè)計是對我們耐心和毅力的考驗,許多細(xì)節(jié)問題是比較繁瑣的。首先要進(jìn)行軟件任務(wù)劃分,

11、數(shù)據(jù)類型規(guī)劃,資源使用約定,模塊功能定義以及模塊接口定義等軟件總體設(shè)計工作。軟件的開發(fā)過程可以套用軟件工程的要求。除此之外,還有一些單片機(jī)系統(tǒng)開發(fā)的特殊性。 1 軟件設(shè)計的前期準(zhǔn)備(1).模塊功能定義主要是根據(jù)項目的功能要求來確定整個程序的功能,并將這些功能分解成若干子功能,確定完成這些功能的程序模塊,還要確定各個模塊之間的關(guān)系和數(shù)據(jù)傳遞方式等,使其成為一個有機(jī)的整體。模塊功能定義包括:單片機(jī)的初始化模塊、主控程序模塊、程序中使用的一些模塊子程序中斷服務(wù)子程序等。規(guī)定其執(zhí)行(觸發(fā))條件、入口出口參數(shù)、子程序完成的具體功能等。這些計劃在具體編程的過程中還有可能進(jìn)行局部修改。1 軟件設(shè)計的前期準(zhǔn)備

12、(3).內(nèi)存資源分配的確認(rèn)硬件設(shè)計中已經(jīng)將單片機(jī)的資源基本分配完畢,軟件設(shè)計中的資源分配主要是將還未具體分配的各RAM單元進(jìn)行合理分配,尤其是片內(nèi)RAM。例如,規(guī)定工作寄存器的使用。規(guī)定需要使用哪些標(biāo)志,占用從20H開始的幾個字節(jié)用來存放這些標(biāo)志位。其余RAM單元可以存放字節(jié)信息(包括20H到2FH單元未被用于標(biāo)志的單元),這些單元的使用還要扣除堆棧區(qū)。單片機(jī)內(nèi)部其他RAM單元對多數(shù)開發(fā)應(yīng)用來說是夠用的。51子系列內(nèi)部RAM單元不夠用可以用52子系列,應(yīng)確保單片機(jī)內(nèi)部RAM均被用于存放最常用的變量。1 軟件設(shè)計的前期準(zhǔn)備RAM資源初步劃定后,工作進(jìn)程中可能發(fā)現(xiàn)某些資源分配不盡合理,需要局部改動

13、或增減。RAM資源的管理最好通過偽指令定位的方法,避免使用直接地址,這樣,可以很方便地進(jìn)行修改。程序規(guī)模的估計,因為單片機(jī)的存儲器數(shù)量有限,再好的程序沒有地方存放也是不行的。2 系統(tǒng)監(jiān)控程序設(shè)計監(jiān)控程序其實就是主程序,監(jiān)控的任務(wù)簡單地說主要是調(diào)度:根據(jù)當(dāng)前單片機(jī)內(nèi)、外部的狀態(tài)或發(fā)生的“事件”,適時決策,執(zhí)行相應(yīng)的模塊,完成指定的作業(yè)。監(jiān)控程序的結(jié)構(gòu)一般有作業(yè)順序調(diào)度、鍵盤驅(qū)動調(diào)度等方法。前者適用于順序控制類應(yīng)用場合,后者適用于鍵盤指令型開發(fā)場合。監(jiān)控程序的設(shè)計方法常見的有狀態(tài)分析法、狀態(tài)轉(zhuǎn)移法和事件驅(qū)動法等。3 中斷與子程序設(shè)計(1)中斷在軟件總體設(shè)計時,合理分配任務(wù),確定哪些任務(wù)在主程序中實

14、現(xiàn),哪些任務(wù)在中斷服務(wù)程序中實現(xiàn),依據(jù)已定義的功能完成中斷服務(wù)程序的編寫。在中斷程序中設(shè)置一些處理標(biāo)志,主程序根據(jù)標(biāo)志進(jìn)行處理,防止中斷服務(wù)未結(jié)束之前,下一中斷請求又到來,同級中斷得不到及時響應(yīng)。中斷服務(wù)程序設(shè)計時應(yīng)注意以下三個問題。3 中斷與子程序設(shè)計 (1)中斷現(xiàn)場保護(hù)由于中斷服務(wù)程序執(zhí)行時刻的不確定性,如果不保護(hù)現(xiàn)場就可能出現(xiàn)中斷返回后其他程序的執(zhí)行受到“莫名其妙”的影響。設(shè)計時可以先不考慮現(xiàn)場保護(hù),待中斷服務(wù)程序編寫完成后,列出所有目的操作數(shù),將其中全局變量扣除,其余均需保護(hù)和恢復(fù)。特殊的工作寄存器要注意“換區(qū)”的操作,避免R0R7的沖突。 3 中斷與子程序設(shè)計 (1)中斷及時返回,釋

15、放資源中斷服務(wù)子程序有時不可能“一步到位”,以免長時間資源獨占。中斷的目的之一就是提高響應(yīng)的實時性。很多工作可以在主程序中排隊處理,中斷服務(wù)程序只需要設(shè)置一個任務(wù)標(biāo)志,并將該任務(wù)列入主程序任務(wù)處理隊列,及時釋放中斷資源。這種方式可以理解為事件驅(qū)動程序流程。3 中斷與子程序設(shè)計 (1)中斷避免中斷重入在MCS-51系統(tǒng)中,處理器完全依據(jù)IE0、TF0、IEl、TFl、RI和TI這些標(biāo)志位是否為1,觸發(fā)中斷響應(yīng)。如果用戶在中斷返回前不清除中斷標(biāo)志,就會造成中斷重入,即一次中斷請求造成多次、甚至是無休止的中斷服務(wù),使中斷服務(wù)子程序反復(fù)執(zhí)行而導(dǎo)致錯誤的結(jié)果,另一方面也使其他正常的程序執(zhí)行“舉步維艱”(

16、每執(zhí)行一條指令后就要被中斷一次)。避免中斷重入的具體方法可見第五章。(2)子程序設(shè)計與子程序調(diào)用子程序是在功能模塊劃分完成后,進(jìn)一步細(xì)化分解出來,完成某些功能的程序塊。子程序不是在軟件總體設(shè)計時能夠確定下來的。各個軟件設(shè)計組采用結(jié)構(gòu)化程序設(shè)計方法時,可以形成各自軟件框圖,將重疊部分以子程序的形式提取出來,共同約定其入口、出口參數(shù),這是一種方法。另一種方法是全部程序編制完成后,在優(yōu)化程序時,將所有可能合并的程序段或子程序合并成一個子程序。(2)子程序設(shè)計與子程序調(diào)用由于子程序可能在不同的場合被不同的程序段調(diào)用,所以子程序的編寫要規(guī)范,程序結(jié)構(gòu)合理、易讀,不能有漏洞(例如某些場合正常,而另一些場合

17、卻出錯),盡可能少地占用資源。尤其避免制造垃圾,中間變量(用于暫存的寄存器)盡量使用工作寄存器,避免占用直接地址單元。提示:子程序采用何種方式傳遞參數(shù)很重要,需要認(rèn)真考慮確定。4 軟件抗干擾措施與硬件的抗干擾措施一樣,軟件的抗干擾措施也非常重要,主要包括:軟件陷阱、數(shù)字濾波等,軟件陷阱在下一節(jié)說明。5 程序調(diào)試程序編寫完成后,在軟硬件調(diào)試之前,應(yīng)首先進(jìn)行程序測試,確保程序正常運(yùn)行。在軟硬件聯(lián)調(diào)時,減少故障點的檢出時間,提高聯(lián)調(diào)效率。程序設(shè)計的全過程分為分析問題、畫流程圖、編輯程序、程序測試四個步驟。前三步只占總工作量的40左右,60以上工作量在調(diào)試上,所以一定要有充分的思想準(zhǔn)備。程序測試的方法

18、與軟件工程中所述方法是一致的,可以采用白盒測試法、黑盒測試法。5 程序調(diào)試單片機(jī)的程序調(diào)試工具,主要是使用軟件仿真器。在軟件仿真器上調(diào)試通過之后,再進(jìn)行與硬件聯(lián)合調(diào)試。程序調(diào)試的有力工具可以說就是PROTEUS。有很多問題可以在PROTEUS仿真下得以發(fā)現(xiàn)和解決。提示:由于程序調(diào)試的復(fù)雜性,在多數(shù)情況下,人們往往滿足于能用即可,滿足于一時能正常運(yùn)行,對偶爾的不正常往往不深追細(xì)究,這樣的產(chǎn)品經(jīng)不起時間和條件的考驗,因而是不可取的。1114 系統(tǒng)調(diào)試系統(tǒng)調(diào)試一般是指,在軟件和硬件調(diào)試完成之后,把二者組合在一起,對整個單片機(jī)系統(tǒng)進(jìn)行調(diào)試。這個過程就是我們的單片機(jī)系統(tǒng)設(shè)計制作的最后一步。最終提供給用戶

19、的產(chǎn)品就是在系統(tǒng)調(diào)試之后定型的。1 一般調(diào)試方法開發(fā)單片機(jī)產(chǎn)品,往往要使用仿真器,也有的稱為開發(fā)機(jī)或開發(fā)系統(tǒng)。仿真器通過仿真線,連在用戶板的CPU插座上,可以通俗地理解為仿真器將其CPU、程序存儲器等資源全部“租借”給了用戶系統(tǒng)。用戶可以在PC機(jī)上編寫源程序,通過匯編或編譯程序?qū)⒃闯绦蚍g成機(jī)器碼,通過PC機(jī)接口將機(jī)器碼傳入仿真器內(nèi),用戶仍可以指定程序運(yùn)行到哪里,并通過PC機(jī)的顯示器觀察單片機(jī)內(nèi)部資源的變化情況(外部情況通過用戶板上的數(shù)碼管、LED可以觀察到)。1 一般調(diào)試方法仿真器也可以不連用戶板,僅進(jìn)行軟件運(yùn)行測試。通過設(shè)置斷點運(yùn)行、單步運(yùn)行等方式,可以“跟蹤”程序的執(zhí)行。仿真器將執(zhí)行結(jié)果

20、通過串行口回送PC機(jī),在顯示器上,用戶可以很明了地看到程序運(yùn)行的結(jié)果(甚至每一步執(zhí)行的結(jié)果),大大地方便了程序的查錯、糾錯。圖11-3是一種典型的仿真器與用戶系統(tǒng)連接示意圖。圖11-3單片機(jī)開發(fā)系統(tǒng)與用戶系統(tǒng)連接方法 2 系統(tǒng)聯(lián)調(diào)雖然軟硬件均已經(jīng)獨自完成了各自的測試,系統(tǒng)聯(lián)調(diào)問題相對少得多,但仍不能以為萬事大吉,調(diào)試的任務(wù)仍很艱巨。一般是在仿真器的控制下運(yùn)行用戶程序,測試用戶系統(tǒng)的各項功能。系統(tǒng)聯(lián)調(diào)的常見方法有如下兩種。2 系統(tǒng)聯(lián)調(diào)(1)由頂向下的系統(tǒng)聯(lián)調(diào)該方法是進(jìn)行整個系統(tǒng)的全速仿真運(yùn)行,未出現(xiàn)問題,完成任務(wù);出現(xiàn)問題時,分析問題可能出現(xiàn)在哪里。分析問題主要側(cè)重于軟硬件配合時可能引起的問題,

21、如硬件中斷等。根據(jù)分析,提出解決方案,著手解決問題。2 系統(tǒng)聯(lián)調(diào)(2)自底向上的系統(tǒng)聯(lián)調(diào)該方法是分模塊進(jìn)行局部的仿真運(yùn)行,排除了局部故障點后,再進(jìn)行系統(tǒng)全速仿真運(yùn)行,直到符合要求為止。提示:系統(tǒng)調(diào)試是研制工作的最后關(guān)口,必須保證所有功能都正確可靠.1115 程序固化在仿真完成后,需要將程序固化在單片機(jī)片外或片內(nèi)。這時候就需要使用編程器了,它的型號很多,檔次差別也很大,具體用法請查閱編程器附帶的使用說明書.1、程序固化在片外如果采用EPROM(27系列)芯片,一般需要使用EPROM擦除器將原來的內(nèi)容擦除掉,然后用編程器對EPROM編程。一般EPROM芯片的擦除次數(shù)在10次左右。現(xiàn)在有很多EEPR

22、OM芯片可以選用,使用方便,可擦寫次數(shù)大多在1000次以上。2、程序固化在片內(nèi)如果單片機(jī)是EPROM類型的,同樣需要進(jìn)行前述的“擦除”。FLASH型器件擦除就簡單得多了,可以直接在編程器上“擦除”,這也是FLASH型器件被廣泛應(yīng)用的原因之一。2、程序固化在片內(nèi)由上可知27系列EPROM使用極不方便且無法加密,壽命又短,所以應(yīng)用越來越少,而片內(nèi)具有Flash存儲器的單片機(jī)得到越來越廣泛的使用,本書經(jīng)常使用的AT89C51就是這種。最近幾年新推出的AT89S51還可以在系統(tǒng)編程,使用非常簡單的下載線就可以完成擦除、寫入等工作。順便提一下,最近幾年還有的單片機(jī)帶有JTAG接口,不但可以在系統(tǒng)編程,還

23、可以在系統(tǒng)調(diào)試。1116 產(chǎn)品驗收與交付使用固化好的程序在集成電路芯片里,將電路插到用戶板,通電運(yùn)行,如果沒有問題,就大功告成;如果有問題,可能就是大問題,必須要找到原因徹底解決,直到?jīng)]有問題為止。到現(xiàn)場實際使用,沒有問題,就可以交付用戶了。需要提起注意的一個問題是:有許多行業(yè)的儀器設(shè)備是有標(biāo)準(zhǔn)的,包括行業(yè)標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、國際標(biāo)準(zhǔn)等。1116 產(chǎn)品驗收與交付使用盡管并非所有的項目均要技術(shù)鑒定(取決于合同約定等因素),但產(chǎn)品驗收是必要的,驗收表明了用戶對開發(fā)方產(chǎn)品的認(rèn)可。如果說合同簽訂是任務(wù)的開始,產(chǎn)品驗收則標(biāo)志著任務(wù)的結(jié)束。在產(chǎn)品驗收時,應(yīng)依據(jù)合同規(guī)定,逐條落實,并最終向用戶交付產(chǎn)品及產(chǎn)品使用

24、說明書等有關(guān)文檔。忠告:產(chǎn)品開發(fā)初期的合同與交付使用時的驗收報告,是供需雙方簽訂的非常重要的文件,對于解決未來雙方可能產(chǎn)生的糾紛能起到很好的幫助作用。112 抗干擾設(shè)計單片機(jī)應(yīng)用系統(tǒng)的可靠性是指在指定的應(yīng)用環(huán)境和條件下,系統(tǒng)穩(wěn)定工作的能力。單片機(jī)應(yīng)用系統(tǒng)由于具有很高的性能價格比,已逐步深入到各個領(lǐng)域,對單片機(jī)系統(tǒng)工作的可靠性也就提出了越來越高的要求。因為系統(tǒng)一旦出現(xiàn)問題,將帶來一系列損失,產(chǎn)生嚴(yán)重的后果。單片機(jī)應(yīng)用系統(tǒng)的工作環(huán)境(如溫度、濕度、電壓擾動、電磁干擾、機(jī)械振動等)往往是很惡劣的,在系統(tǒng)開發(fā)中,應(yīng)確保不受環(huán)境條件的影響。形成干擾的基本要素有三個:1.干擾源:指產(chǎn)生干擾的元件、設(shè)備或信

25、號,如雷電、繼電器、可控硅、電機(jī)、高頻時鐘等都可能成為干擾源。2.傳播路徑:指干擾從干擾源傳播到敏感器件的通路或媒介。典型的干擾傳播路徑是通過空間的輻射、導(dǎo)線的傳導(dǎo)和過程通道。3.敏感器件:指容易被干擾的對象,如A/D轉(zhuǎn)換器、D/A轉(zhuǎn)換器、單片機(jī)、數(shù)字1C、弱信號放大器等。11.2.1 硬件抗干擾在硬件設(shè)計中,提高系統(tǒng)可靠性的主要措施有:采用抗干擾措施,提高系統(tǒng)的環(huán)境適應(yīng)能力;把好元件質(zhì)量關(guān),元器件經(jīng)篩選、老化后使用;印制板設(shè)計應(yīng)充分考慮可靠性等。抑制干擾主要還是要從現(xiàn)場的環(huán)境實際出發(fā),認(rèn)真分析可能的干擾,一定要深入現(xiàn)場考察與分析,避免閉門造車,具體情況還要具體分析。1供電系統(tǒng)-穩(wěn)壓電源在供電

26、系統(tǒng)設(shè)計中,一般的應(yīng)用場合可以采取同時使用工頻變壓器、全橋、三端穩(wěn)壓的方法,電路如圖114所示。三端穩(wěn)壓器件由3個引腳組成,分別為:電源輸入、穩(wěn)壓電源輸出和地。三端穩(wěn)壓器件通常要求輸入電壓要比穩(wěn)壓輸出電壓高23V以上,才能確保輸出電壓穩(wěn)定。圖114 變壓、整流、穩(wěn)壓電路1供電系統(tǒng)-穩(wěn)壓電路一般在三端穩(wěn)壓器件輸入、輸出端都要使用一個001F的高頻瓷片電容和一個幾百微法或幾千微法的電解電容,使用電解電容時,應(yīng)注意選擇的電容的耐壓值應(yīng)有1倍以上的富余量。采用上述方法電路簡單、實用,輸出紋波小,但電源效率比較低,對浪涌、過壓、欠壓等抑制效果比較差。目前較廣泛地采用開關(guān)電源或電源模塊,如AC-DC模塊、

27、DC-DC模塊等方法。提醒一句,開關(guān)電源的紋波系數(shù)比較大,特別精密的場合要注意。當(dāng)系統(tǒng)有多塊線路板組成時,盡量采用每塊線路板獨自穩(wěn)壓的方法。避免線路板電源間的相互干擾,多板結(jié)構(gòu)獨自穩(wěn)壓原理如圖115所示。圖115多板結(jié)構(gòu)獨自穩(wěn)壓原理1供電系統(tǒng)-過壓欠壓保護(hù)供電系統(tǒng)過壓、欠壓的抑制方法可以采用穩(wěn)壓器、電源調(diào)節(jié)器。對停電可以采用UPS(不間斷電源)或用靜態(tài)RAM輔以可充電電池備份重要運(yùn)行參數(shù),也有些系統(tǒng)采用E2PROM保存參數(shù)。 2過程通道抗干擾-概述由于過程I/O通道是單片機(jī)與控制對象聯(lián)系的紐帶,所以避免現(xiàn)場強(qiáng)信號對單片機(jī)系統(tǒng)弱信號的干擾是成功開發(fā)單片機(jī)應(yīng)用系統(tǒng)的關(guān)鍵。從干擾的分類來說,無外乎串

28、模和共模干擾兩種,解決過程I/O通道干擾可以從以下幾個方面著手。2過程通道抗干擾-方法1隔離:目前很多的應(yīng)用場合均采用光耦實現(xiàn)電氣隔離。2屏蔽采用屏蔽的方法可以避免空間電磁干擾,注意屏蔽層應(yīng)接地。3“地”的正確處理單片機(jī)應(yīng)用系統(tǒng)的“地線”有很多,應(yīng)仔細(xì)區(qū)分,恰當(dāng)處理。2過程通道抗干擾-地線(1)數(shù)字地:也稱為邏輯地,為邏輯芯片如8031、8155等芯片提供工作電源的零電位。(2)模擬地:A/D、D/A轉(zhuǎn)換模擬部分的地,如參考電壓、模擬輸入等的零電位。(3)功率地:大功率器件的零電位,如大繼電器(電流較大時)、接觸器等的零電位。(4)信號地:一般常指傳感器的地。(5)交流地:50Hz交流電源的地

29、線(對于三相交流電源來說就是中線)。(6)屏蔽地:屏蔽層的接地端。2過程通道抗干擾-接地正確的接地能有效地保證少受干擾。例如,數(shù)字地和模擬地應(yīng)分開走線,可以不共地,共地時,應(yīng)保證兩地線僅在一點處匯合(一點接地),不能形成環(huán)路。交流地和信號地不能共用。機(jī)殼可接地但不能形成地線環(huán)路。特別注意,不良的接地方法可能使系統(tǒng)僅能在實驗室試驗運(yùn)行,一到現(xiàn)場就無法工作。2過程通道抗干擾-信號傳輸在長距離信號傳送時,采用雙絞線方式傳送,或者轉(zhuǎn)換成020mA電流傳輸方式,還可以使用屏蔽導(dǎo)線,也可以改變信號的傳輸方式以避開強(qiáng)干擾信號源等等。具體情況比較復(fù)雜,要根據(jù)情況分別對待,或者采用采用幾種方法的綜合措施,最終必

30、須達(dá)到使用要求。提示:這一方面的進(jìn)展很快,新技術(shù)、新方法、新器件不斷出現(xiàn),我們要及時跟蹤最新進(jìn)展,采用先進(jìn)技術(shù),使得我們的單片機(jī)系統(tǒng)性能更好,性價比更高。3硬件抗干擾幾種常用手段 (1)P監(jiān)控常用TL7705電源監(jiān)視芯片來監(jiān)測電壓。TL7705電源監(jiān)視如圖116所示,其中SENSE為電源監(jiān)視端,當(dāng)SENSE上的電壓小于45V時,RESET輸出低電平(產(chǎn)生下降沿),向單片機(jī)申請中斷,在中斷服務(wù)程序中進(jìn)行一些保護(hù)重要數(shù)據(jù)的工作,然后使單片機(jī)進(jìn)入休眠或掉電狀態(tài)。RESET:復(fù)位輸出,低電平有效,OC開路,需上拉電阻。RESIN:復(fù)位輸入端,輸入低電平時,強(qiáng)制復(fù)位輸出端。3硬件抗干擾幾種常用手段 (1

31、)P監(jiān)控圖116 TL7705電源監(jiān)視3硬件抗干擾幾種常用手段 (1)P監(jiān)控隨著芯片集成度不斷提高,工程技術(shù)人員往往熱衷于既能提供P監(jiān)控,又能提供其他功能的芯片。如MAXIM公司的MAX807,它將電源監(jiān)視與看門狗集成到一起,提供定時、電源切換等多種功能?,F(xiàn)在還有的芯片把監(jiān)控和EEPROM集成在一起,性價比更高。比如X2504系列芯片。3硬件抗干擾幾種常用手段(2)硬件看門狗使用硬件看門狗的主要目的是防止程序執(zhí)行受到干擾,不能按正常的流程執(zhí)行的一種監(jiān)視芯片。所謂“看門狗”,就是一個定時器,定時時間到,它就輸出一個信號,使單片機(jī)復(fù)位。所謂“喂狗”,就是把定時器的計數(shù)值清除。只要按時喂狗,定時器就

32、不會到達(dá)定時時間,單片機(jī)就不會復(fù)位。如果程序“跑飛”,或者進(jìn)入死循環(huán),不能按時喂狗,就會復(fù)位。使單片機(jī)重新開始正常工作。3硬件抗干擾幾種常用手段(2)硬件看門狗例如,XICOR公司的X2504345就是將看門狗電路與復(fù)位電路(含手動上電復(fù)位)以及4KB的串行EEPROM集成在一起的芯片。X25045典型應(yīng)用如圖117 所示。美國DALLAS公司生產(chǎn)的“看門狗(WATCHDOG)”集成電路DS1232具有性能可靠、使用簡單、價格低廉的特點,應(yīng)用在單片機(jī)產(chǎn)品中能夠很好的提高硬件的抗干擾能力,采用8腳DIP封裝。3硬件抗干擾幾種常用手段(2)硬件看門狗圖117 X25045典型應(yīng)用 3硬件抗干擾幾種

33、常用手段(3)退(去)耦電容每個芯片電源進(jìn)線處盡可能接一個104(01F)或103(001F)的退耦電容(可以用陶瓷電容,目前使用較多的是獨石電容)。每隔5個左右芯片安置一個110F的膽(電解)電容,因為這種電容的高頻阻抗很小,對噪聲抑制效果很好。3硬件抗干擾幾種常用手段(4)續(xù)流二極管在繼電器線圈兩端增加續(xù)流二極管,消除線圈斷開時產(chǎn)生的反電動勢干擾。僅加續(xù)流二極管會使繼電器的斷開時間滯后,若再增加穩(wěn)壓二極管,則可改善響應(yīng)速度,消除滯后性。在繼電器觸點兩端應(yīng)并接火花抑制電路,減小電火花影響。3硬件抗干擾幾種常用手段(5)瞬態(tài)電壓抑制器TVS瞬態(tài)電壓抑制器(TransientVoltageSup

34、pressor,簡稱TVS),使用TVS二極管進(jìn)行浪涌保護(hù)比使用壓敏電阻優(yōu)越得多,具有響應(yīng)時間快,瞬態(tài)功率大,漏電流低,擊穿電壓偏差小,箝位電壓易于控制,有效地保護(hù)電子線路中的精密元器件,免受各種浪涌脈沖對元器件造成的損壞。1122 軟件抗干擾措施與硬件的抗干擾措施一樣,軟件的抗干擾措施也非常重要,軟件設(shè)計中,可以通過增加系統(tǒng)的自檢,重要參數(shù)備份,設(shè)置軟件陷阱,模擬量輸入采用軟件濾波等手段提高系統(tǒng)的可靠性。這里只對一些常用的方法加以討論。1軟件自檢-開機(jī)自檢軟件抗干擾還可以在上電復(fù)位后,調(diào)用自檢子程序,檢測單片機(jī)內(nèi)部資源和外部擴(kuò)展電路能否正常工作,自檢正常后才進(jìn)一步執(zhí)行其他程序,否則提示故障點

35、。這是檢查硬件的情況,需要硬件的配合,在硬件設(shè)計的時候就要考慮到自檢的需要,以確保電路能正常工作。這一部分比較麻煩,請自行參考有關(guān)硬件資料,此不多述。1軟件自檢-數(shù)據(jù)備份由于單片機(jī)內(nèi)部RAM單元存放著重要的標(biāo)志和數(shù)據(jù),一旦受擾引起標(biāo)志數(shù)據(jù)的改變,勢必造成系統(tǒng)運(yùn)行異常。防止標(biāo)志位受擾可以采用定期檢查標(biāo)志合法性的方法,發(fā)現(xiàn)干擾及時處理,例如發(fā)現(xiàn)不可能出現(xiàn)的標(biāo)志組合及時處理。也可以采用標(biāo)志冗余的方法,借助冗余標(biāo)志,進(jìn)行標(biāo)志位異常判定和糾錯。防止數(shù)據(jù)受擾可以采用熱備份的方法,適時比照、判定并糾錯。在保護(hù)單片機(jī)內(nèi)部RAM時經(jīng)常使用雙重備份、表決糾錯的方法,將單片機(jī)內(nèi)部RAM單元數(shù)據(jù)作兩個熱備份,一旦發(fā)現(xiàn)

36、三個數(shù)不相同就采取表決的方式確定正確的數(shù)據(jù)。2軟件陷阱電磁干擾除了會對測量物理量的結(jié)果產(chǎn)生影響之外,還能直接影響程序的正常運(yùn)行。正常執(zhí)行程序時,CPU按照PC中的數(shù)值(地址)到ROM中去取指令。受到干擾時,一般可能使程序計數(shù)器PC的數(shù)值改變,或者其輸出的地址信號受到干擾而改變,到不該去的地址取指令(稱為“跑飛”)。為了防止造成災(zāi)難性的后果,在進(jìn)行系統(tǒng)設(shè)計時,可以在硬件和軟件方面分別加以考慮。硬件方面前已述及,現(xiàn)在介紹一些軟件方面的方法。對于MCS-51系列單片機(jī),其程序存儲器的地址空間為64K,通常只使用了部分地址空間存放程序代碼和數(shù)據(jù),可以把64K的地址空間分為“空閑”和“非空閑”ROM。2

37、軟件陷阱(1).空閑的ROM空間對于空閑的ROM空間,正常操作時是不會使用的。但是在強(qiáng)干擾的情況下也可能到空閑的ROM空間去取指令,即“跑飛”。故此應(yīng)該在空閑的ROM空間存入適當(dāng)指令,在程序跑飛到那里時能夠回到正常區(qū)域或者進(jìn)入錯誤處理程序,這種方法稱為軟件陷阱。可以填入的指令代碼有以下幾種形式:.填入 00 00 00 00 00 00 這是空操作指令,進(jìn)入此區(qū)域時不進(jìn)行任何操作,逐步執(zhí)行到FFFFH后,就會回到0000H,這是復(fù)位入口地址,重新開始正常程序。2軟件陷阱(1).空閑的ROM空間.填入 02 00 00 02 00 00 02 00 00 這是無條件長轉(zhuǎn)移指令,會直接轉(zhuǎn)移到 00

38、00H,立即進(jìn)入復(fù)位狀態(tài)。.填入 02 02 02 02 02 02 02 02 02 這是無條件長轉(zhuǎn)移指令,當(dāng)從此區(qū)域取指令時,直接轉(zhuǎn)移到0202H。在0202H單元,我們應(yīng)該編寫“跑飛”處理程序,或者在此處放置一條轉(zhuǎn)移指令,轉(zhuǎn)移到跑飛處理程序。如果正常程序用到0202H單元,必須在0202H單元之前編寫轉(zhuǎn)移指令,越過0202H即其以后的若干單元,留出作為“非常處理”的程序入口。2軟件陷阱(1).空閑的ROM空間如果程序“跑飛”到?jīng)]有安裝ROM芯片的地址單元,取到的代碼將是FFH,這是指令 MOV R7,A 繼續(xù)執(zhí)行的結(jié)果是,一段時間后,回到0000H,進(jìn)入復(fù)位程序。2軟件陷阱(2).非空閑

39、的ROM單元對于非空閑ROM單元,一般已經(jīng)存放了程序代碼和數(shù)據(jù),處理起來比較困難。可以在關(guān)鍵程序段中加入一些校驗的程序段,檢查當(dāng)前的外部環(huán)境狀態(tài),如果不是屬于本段程序處理的范圍,就可能是程序跑飛到這里,應(yīng)該轉(zhuǎn)移到處理跑飛的程序段。2軟件陷阱(2).非空閑的ROM單元另外,由于有些指令是23個字節(jié),當(dāng)PC內(nèi)數(shù)值跑飛時,也有可能把這種指令的一部分當(dāng)作完整的指令來執(zhí)行,同理也有可能把數(shù)據(jù)部分當(dāng)作指令代碼來執(zhí)行,這樣執(zhí)行起來,程序就面目全非了。當(dāng)我們在任意地址對機(jī)器代碼進(jìn)行反匯編時,經(jīng)常可以看到這種不可理解的現(xiàn)象。為了盡量減少這種現(xiàn)象的發(fā)生,可以在指令中間加入一些NOP指令使CPU取幾條指令以后,一般

40、可以納入正軌,按照原來的指令位置取指令。3、重復(fù)輸出指令一般單片機(jī)的掃描周期為幾個毫秒,萬一某個輸出指令受到干擾出現(xiàn)錯誤動作,重復(fù)的輸出指令會在短時間內(nèi)糾正這個錯誤,一般的外設(shè)動作速度比較慢,可能是錯誤的動作還沒有執(zhí)行就被糾正了。這種方法對于電磁類執(zhí)行機(jī)構(gòu)效果很好。注意:使用任何一種抗干擾措施,都要與當(dāng)時的客觀環(huán)境相適應(yīng),才會取得理想的結(jié)果,不可生搬硬套。往往需要幾種方法綜合應(yīng)用會取得互補(bǔ)的作用。113 應(yīng)用舉例本節(jié)以自動打鈴器為例,講解MCS51系列單片機(jī)的一個應(yīng)用項目的設(shè)計過程。這只是一個非常小的應(yīng)用項目,電路比較簡單,功能比較簡單,程序規(guī)模也不大,要求也不是很嚴(yán)格,工作環(huán)境也比較好,所以

41、設(shè)計起來也容易。但是,只要你能夠完成這個簡單的項目,就算是入門了,也就可以完成更復(fù)雜的項目。這里給出的只是一個示例,并不一定是最好的方案,更不是唯一的方案。1131用戶需求分析和總體設(shè)計大多單位都有比較固定的作息時間,尤其是學(xué)校,要按時打鈴,以指揮師生員工上課、下課等統(tǒng)一行動。現(xiàn)在我們可以利用單片機(jī)設(shè)計自動打鈴器,在預(yù)定的時間打鈴。這項設(shè)計涉及到單片機(jī)的定時器、中斷、鍵盤輸入、LCD數(shù)碼和字符顯示、I2C總線、單總線、開關(guān)量輸出等內(nèi)容。考慮實訓(xùn)時間和篇幅限制,這里只要求自動打鈴。如果覺得內(nèi)容不夠,還可以增加環(huán)境溫度的測量、顯示以及語音報時等等。1、根據(jù)用戶要求確定設(shè)計任務(wù)書根據(jù)實際情況,(經(jīng)過

42、用戶認(rèn)可)我們確定的設(shè)計任務(wù)書如下:產(chǎn)品名稱:自動打鈴器產(chǎn)品功能:1、每天一次循環(huán),按照作息時間表自動打鈴;2、每次打鈴電鈴響十秒(最好可以修改);3、每天打鈴次數(shù)在32次以內(nèi);4、作息時間輸入修改要方便;1、根據(jù)用戶要求確定設(shè)計任務(wù)書15、實時鐘對表和快慢調(diào)整;6、實時顯示時分秒;7、平時使用220V交流電,停電時要有備用電池保持時間和作息時間表;8、輸出繼電器控制,最大控制電流5安培(220V交流);9、臨時打鈴( 手動)。設(shè)計周期:2周設(shè)計費(fèi)用:其 它:2、總體設(shè)計總體設(shè)計,其中最主要的就是原理設(shè)計。根據(jù)設(shè)計任務(wù)書的要求和現(xiàn)有的技術(shù)條件,在滿足功能、性能等用戶需求的基礎(chǔ)上,初步提出可選技

43、術(shù)路線,并對各方案進(jìn)行必要的分析,充分聽取方方面面的意見,選擇一種實施方案。本項目的實施方案如下:2、總體設(shè)計1選用機(jī)型:AT89C51(可以使用簡化版AT89C2051)。這是美國ATMEL公司生產(chǎn)的與INTEL公司的MCS51系列全兼容的單片機(jī)產(chǎn)品,指令兼容,引腳兼容,可以直接代換。其優(yōu)點是片內(nèi)程序存儲器是電擦寫的,使用方便,耗電少,價格低。時間顯示:16位2行的液晶顯示模塊1602,顯示內(nèi)容比較多。并行口連接。鍵盤輸入:4個獨立式按鍵,分別是對表、定時、臨時打鈴和上、下、左、右調(diào)整鍵2、總體設(shè)計2打鈴輸出:經(jīng)二級晶體管放大驅(qū)動12V直流繼電器,控制220V電源通、斷電鈴。系統(tǒng)擴(kuò)展:不需要

44、擴(kuò)展RAM、ROM、和其它I/O接口,只需要通過I2C總線擴(kuò)展一片24LC16B,用于保存打鈴時間,以保證掉電不丟失,免得重新設(shè)置之麻煩。2、總體設(shè)計3電源部分:220V交流電經(jīng)降壓、整流、濾波、穩(wěn)壓,提供12V和5V兩種直流電源,再加可充電電池作備用電源,停電時保持時鐘和作息時間表。交流供電時給電池充電?,F(xiàn)在,專用的日歷時鐘芯片很多,性能也很好,尤其是精度可以很高,省電,使用方便。如果采用這類芯片,程序會減少很多。但是考慮為了更好的熟悉定時器的使用,我們還是利用單片機(jī)本身的定時器來產(chǎn)生時間。本設(shè)計的仿真文件:自動打鈴器.DSN本設(shè)計的簡要功能說明:1、開機(jī)后自動進(jìn)入走時狀態(tài),打鈴時間到自動接

45、通電鈴電路10秒。2、按K0鍵進(jìn)入對表狀態(tài),設(shè)置方法: 按向左或向右移動光標(biāo) 按增加或減少修改光標(biāo)處數(shù)值 星期的數(shù)值1-7,7代表星期日 星期的英文字符不用修改 5秒鐘不操作自動保存修改并返回本設(shè)計的簡要功能說明1:3、按K1鍵進(jìn)入定時打鈴時間設(shè)定狀態(tài):001表示第一個設(shè)定打鈴時間,最多可以設(shè)置127個時間。后面的是小時、分和啟用標(biāo)志,啟用標(biāo)志設(shè)為1表示時間有效,到時打鈴,啟用標(biāo)志設(shè)為0表示到達(dá)這個時間也不打鈴。每次時間到打鈴10秒,同時蜂鳴器響。打鈴時間設(shè)置方法:按向左或向右移動光標(biāo),按增加或減少修改光標(biāo)處數(shù)值,啟用標(biāo)志的值大于1也算啟用,5秒鐘不操作自動保存修改并返回1132 硬件設(shè)計1、

46、原理圖設(shè)計根據(jù)設(shè)計任務(wù)書和整體設(shè)計方案,經(jīng)過比較和計算,設(shè)計原理圖如圖118直到圖11-11所示。單片機(jī)選用AT89C51,DIP40封裝,內(nèi)部有128字節(jié)的隨機(jī)存儲器,有4K字節(jié)的電擦寫的程序存儲器,可以反復(fù)擦寫1000次。圖118 自動打鈴器硬件原理圖(主機(jī)板)圖11-9 打鈴器按鍵圖11-10 打鈴器電源(通用電源模塊)圖11-11 打鈴器繼電器輸出2、原理圖設(shè)計說明(1)電源:(如圖11-10)這是一個通用電源模塊,以前用在其它單片機(jī)測控系統(tǒng)中,用在自動打鈴器也很合適。自動打鈴器消耗電流最大的時候是打鈴時間到,12V直流繼電器接通同時打鈴指示LED亮和訊響器響,電流在100毫安以下(約

47、80毫安),不打鈴的時候消耗電流只有十幾個毫安,給蓄電池充電的電流控制在50毫安以下,選擇220V5W電源變壓器容量足夠,輸入220V交流電,輸出12V交流。如果數(shù)碼顯示用LED數(shù)碼管,則電源變壓器容量應(yīng)該選10W左右。2、原理圖設(shè)計說明(1)電源:(如圖11-10)整流濾波之后輸出電壓在13V左右,供給繼電器使用,不需要穩(wěn)壓。后備電源使用6V免維護(hù)鉛酸蓄電池,價格便宜容量大,可以支持較長的停電時間,只是重量大些。為了保護(hù)蓄電池,不使其過充和過放,分別加了保護(hù)電路,當(dāng)電池電壓高于7V時停止充電,當(dāng)電池電壓低于5V時停止放電。蓄電池的輸出直流電源(57V)經(jīng)三端穩(wěn)壓電路7805后輸出5V經(jīng)二極管

48、降壓后變成4.3V供給單片機(jī),AT89S51的工作電壓在4V-5.5V之間。2、原理圖設(shè)計說明 (2)輸出(如圖11-11)打鈴器的輸出由12V直流繼電器控制。繼電器既起到功率放大的作用也起到強(qiáng)弱電隔離作用。與繼電器線圈并聯(lián)的紅色LED起到打鈴指示作用,與線圈反并聯(lián)的二極管是起續(xù)流作用。P1.1的輸出是低電平有效,可以防止單片機(jī)復(fù)位時的高電平自動響鈴。P1.1的輸出經(jīng)2級晶體管放大驅(qū)動直流繼電器工作。訊響器的工作電壓在35V,電流10mA左右,通電就響。AT89C51的并行口可以直接驅(qū)動,低電平有效。它的作用也是打鈴指示,同時它可以在停電的時候也工作,提醒時間到。這就使得這個自動打鈴器在不接電

49、鈴的時候成為鬧鐘。2、原理圖設(shè)計說明 (3)按鈕(如圖11-9)從圖上看總共有5個按鈕,一個是復(fù)位按鈕,手動復(fù)位用;其余4個各占用一位I/O口線,屬于獨立式鍵盤,按下是低電平,接在P0.0P0.3上,其作用見圖11-9中標(biāo)注。2、原理圖設(shè)計說明 (4)接插件由于電源、按鍵、LCD顯示器等部分不在一塊電路板上,他們之間通過對應(yīng)的接插件相連。需要使用具有定位結(jié)構(gòu)的接插件,以免插錯。2、原理圖設(shè)計說明 (5)顯示本設(shè)計采用LCD顯示模塊FM1602。這是一種常見的字符型LCD顯示模塊,可以顯示2行,每行16個字符。具體使用方法請參見第九章人機(jī)接口LCD顯示部分。打鈴器工作于室內(nèi),環(huán)境也比較好,沒有強(qiáng)

50、烈的干擾,看門狗電路就省略了。、PCB板圖設(shè)計說明在原理圖中選中了元件的封裝,產(chǎn)生了網(wǎng)絡(luò)表,就可以直接轉(zhuǎn)到PCB板設(shè)計。設(shè)計中考慮了PCB板的設(shè)計原則和注意事項:比如地線,輸入輸出,線寬等。此外還要考慮安裝、維修的方便等。初步設(shè)計采用雙面板布線,布線之后的板圖如圖11-12所示,圖中所示是正面能看到的圖線,背面的走線沒有顯示。這只是初步設(shè)計,還有一些需要根據(jù)實際安裝的情況來調(diào)整。Proteus軟件提供了3D預(yù)覽功能,見圖11-13所示。圖1112 布線之后的PCB板圖(主機(jī)板,焊接面的走線沒有顯示)圖11-13 3D預(yù)覽圖(主機(jī)板) 、PCB板圖設(shè)計說明電路板上的一些文字和符號,說明元件的性質(zhì)

51、,數(shù)值等。PCB板3D預(yù)覽圖上的漢字在這里顯示成一串 “?”。按鍵電路和電源電路板單獨設(shè)計,液晶顯示器要安裝在前面板上,它們與主機(jī)板的連接通過接插件和電線相連,安裝位置要符合用戶的要求,這里沒有給出板圖,主機(jī)板上只給出了接頭。1133 軟件設(shè)計軟件設(shè)計是個需要耐心和細(xì)致的工作,也是能體現(xiàn)工作成果的工作。我們的軟件采用MCS-51的匯編語言編寫,這對我們來說是個鍛煉。C51有編寫方便的優(yōu)點,但是代碼較大,需要較多的程序存儲器,執(zhí)行速度慢。同時,C51也需要有匯編語言的基礎(chǔ)才行。1、整體功能描述和主程序設(shè)計軟件的整體功能就是要在硬件的配合下完成項目的整體功能,還要界面友好,方便實用。自動打鈴器的主

52、要功能是在規(guī)定的時間接通電鈴電路,讓電鈴響起來。這個功能實現(xiàn)起來比較容易。為了使用方便,還需要:隨時顯示當(dāng)前時間,方便的對表功能,方便的輸入和修改定時打鈴的時間,如有特殊情況可以手動臨時打鈴。還有環(huán)境溫度的測量和顯示。還要符合人們的習(xí)慣,有適當(dāng)?shù)奶崾拘畔⒌鹊取?、整體功能描述和主程序設(shè)計1一般程序設(shè)計大都把整體功能分解為一些子功能,每個子功能用一個或者幾個子程序來實現(xiàn),然后在主程序中根據(jù)需要來調(diào)用子程序,也有些功能通過中斷來實現(xiàn)。我們的程序也是按照這個思路來編寫。1、整體功能描述和主程序設(shè)計2所有程序清單略。可以參看光盤文件:軟件設(shè)計.DOC。還可以參看光盤文件:自動打鈴器.DSN。那里有全部

53、的程序清單,注釋很詳細(xì)。1、整體功能描述和主程序設(shè)計(一)I/O接口和內(nèi)存分配軟件是要與硬件配合工作的,硬件設(shè)計時接線已經(jīng)確定,數(shù)據(jù)的輸入輸出接口地址也已經(jīng)確定,這些是軟件工作的基礎(chǔ)。同時我們也把內(nèi)存的分配一并考慮。這部分內(nèi)容是利用偽指令定義一些I/O接口、內(nèi)存單元,以便合理使用。1、整體功能描述和主程序設(shè)計(二)主程序設(shè)計主程序的主要功能是:初始化;檢查按鍵,并調(diào)用功能子程序;根據(jù)情況調(diào)用顯示子程序、測溫子程序、比較判斷打鈴時間等子程序,并根據(jù)結(jié)果控制繼電器的動作;控制臨時打鈴。主程序框圖如圖1114所示 主程序框圖如圖11142、中斷服務(wù)程序設(shè)計根據(jù)自動打鈴器功能需要,本設(shè)計只使用了定時器

54、0的中斷。定時器0中斷服務(wù)程序 ,T0方式1,初值15536,每100毫秒中斷一次,高優(yōu)先級。定時器0中斷的功能是實現(xiàn)實時時鐘。如果使用專用的實時時鐘芯片,程序會更簡單。為了熟悉定時器的使用,沒有使用專用的時鐘芯片。2、中斷服務(wù)程序設(shè)計1這個程序不太復(fù)雜,執(zhí)行時間也不長,設(shè)成高優(yōu)先級,也不會被其它中斷所打斷,一氣呵成,保證時間變化及時完成。本來只要計算到24小時就可以,考慮使用方便,增加了月日星期的計算。如果需要,還可以設(shè)計農(nóng)歷的顯示,這里從略。還有為了顯示的方便,每秒鐘設(shè)置一個顯示標(biāo)志DSP(20H.1),由主控程序識別并調(diào)用顯示子程序,同時清除此標(biāo)志。程序的其它功能和技巧在前面章節(jié)講過,不

55、再重復(fù)。程序清單:(略??梢詤⒖垂獗P文件:軟件設(shè)計.DOC。還可以參看光盤文件:自動打鈴器.DSN。那里有全部的程序清單。)3、子程序主程序通過調(diào)用子程序來實現(xiàn)各種功能,這里的子程序主要有顯示、對表、打鈴時間設(shè)定、測溫等,這里用到的子程序,多數(shù)都在前面的章節(jié)里講過,有的進(jìn)行了少量的修改,但是基本思路是一樣的,為了節(jié)約篇幅,所以都沒有給出程序框圖。3、子程序(1)顯示子程序這個子程序的作用是,將顯示緩沖區(qū)中的ASCII碼,發(fā)送到LCD顯示模塊1602,使其顯示出相應(yīng)的字符。這里還用到了許多輔助子程序。關(guān)于LCD顯示模塊的內(nèi)容請參閱第九章9.2.2節(jié),所講述的內(nèi)容就是我們在這個設(shè)計中的使用的程序。

56、3、子程序(2)測溫子程序我們使用DS18B20來測量溫度,關(guān)于它的使用方法和程序,請參閱第十章10.3.3節(jié),所講述的內(nèi)容就是來自于我們在這個設(shè)計中的使用的程序。3、子程序(2)測溫子程序從DS18B20中讀出來的數(shù)據(jù)存放在TEMPER_L(低字節(jié))和TEMPER_H(高字節(jié))兩個字節(jié)中,低字節(jié)中的高4位和高字節(jié)的8位(共12位)是溫度數(shù)據(jù)的整數(shù)部分,低字節(jié)中的低4位是小數(shù)部分,二進(jìn)制數(shù)補(bǔ)碼(參見第十章的讀溫度子程序READ_1820和圖10-24)。我們先用子程序TEMPER_COV把它們轉(zhuǎn)換成便于顯示和識別的形式,然后被另一個子程序轉(zhuǎn)換成便于LCD顯示的ASCII碼送到顯示緩沖區(qū)(參見:

57、填充LCD顯示屏映像區(qū) (顯示緩沖區(qū))子程序FILLLCD)。3、子程序(3)對表子程序?qū)Ρ碜映绦虻墓δ芫褪菍⒆詣哟蜮徠鞯膶崟r時鐘調(diào)整到與當(dāng)?shù)貥?biāo)準(zhǔn)時間一致。由主控程序調(diào)用。當(dāng)用戶按動對表按鍵(K0),主控程序會檢測到并消除抖動,蜂鳴器響,然后等待按鍵釋放,調(diào)用對表子程序。3、子程序(3)對表子程序進(jìn)入對表子程序后,首先顯示當(dāng)前的機(jī)器時間,并且有閃動的光標(biāo)(默認(rèn)是在年份閃動),如果要修改這個數(shù)字,直接按增加或減少鍵,直到出現(xiàn)你希望的數(shù)字即可;如果你要修改的數(shù)字現(xiàn)在沒有閃動,可以按向左或向右鍵,使下一個數(shù)字閃動,然后開始修改,直到年月日星期時分秒都修改好,等待5秒,就可以自動保存修改并退出對表功能

58、,回到正常顯示。如果在對表過程中停止按鍵,5秒后也是自動保存并返回。這時候你可以再次按對表鍵繼續(xù)對表。在對表期間,除了定時器中斷可以正常發(fā)生,不執(zhí)行主程序的其它功能。3、子程序(3)對表子程序?qū)Ρ磉^程中修改的時間數(shù)據(jù),是顯示緩沖區(qū)中的數(shù)據(jù),是ASCII碼,所以還要將這里的數(shù)據(jù)轉(zhuǎn)換成二進(jìn)制,送回時間計數(shù)單元。所以這里有2個子程序,D2T和HEBING分別完成轉(zhuǎn)換和回送功能。其余的子程序與顯示有關(guān),這里不再重復(fù)。順便說一句,往往一個項目中最麻煩的地方就在人機(jī)接口這部分。對表程序流程圖如圖11-15所示圖11-15 對表程序流程圖3、子程序(4)打鈴時間設(shè)定子程序自動打鈴器就是事先設(shè)置好打鈴時間,等

59、到了設(shè)定的打鈴時間就自動接通電鈴,每次響10秒。這個子程序就是用來設(shè)定打鈴時間。設(shè)定的打鈴時間存儲在串行接口的EEPROM 24LC16中,可以保證斷電不丟。3、子程序(4)打鈴時間設(shè)定子程序在正常走時情況下,按 “向下減少 定時設(shè)定” 鍵(K1),進(jìn)入設(shè)定功能。主程序檢測到K1鍵按下,延時10毫秒以消除抖動并使蜂鳴器響,然后等待按鍵釋放,進(jìn)入定時打鈴設(shè)定子程序。LCD屏幕第一行顯示:Jow time seting(打鈴時間設(shè)置),第二行顯示:001 00:00 0(序號 小時:分鐘 啟用標(biāo)志)。3、子程序(4)打鈴時間設(shè)定子程序序號 也是存儲的順序號,最多可以存儲127個記錄,最先設(shè)定的時間

60、序號是001。小時:分鐘 就是需要打鈴的時間,只能精確到分鐘,不能到秒,24小時制。啟用標(biāo)志 這里設(shè)置為1到這個時間就打鈴,設(shè)為0到這個時間也不打鈴。設(shè)定程序執(zhí)行期間,T0中斷繼續(xù)允許,其他功能暫停。3、子程序(4)打鈴時間設(shè)定子程序設(shè)置程序中用到了幾個子程序,和顯示有關(guān)的請參看第九章,和串行EEPROM有關(guān)的請參看第八章,數(shù)制轉(zhuǎn)換請參看第四章,其余的都很簡單。這個程序用到了串行EEPROM 24LC16B的寫入子程序,可以參看第八章有關(guān)內(nèi)容。3、子程序(4)打鈴時間設(shè)定子程序使用方法:進(jìn)入設(shè)定后,按向左、向右鍵移動光標(biāo),按增加、減少鍵修改數(shù)值。5秒鐘無操作,自動記錄設(shè)定值并返回正常走時狀態(tài)。

溫馨提示

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

評論

0/150

提交評論