【文章內(nèi)容簡介】
分頻器設(shè)計(jì) 模擬數(shù)字轉(zhuǎn)換器件 A/D0809 要正常工作,必須要有一個(gè)時(shí)鐘頻率,在 89C51 的第 30 引腳 ALE 是單片機(jī)輸入時(shí)鐘頻率的 1/6,也就是 2M(因?yàn)閱纹瑱C(jī)的時(shí)鐘是 12M 的晶振),而 A/D0809 需要一個(gè)500K~~800K 的時(shí)鐘,所以只需要對 ALE 引腳的輸出信號進(jìn)行 3 分頻,我們用的分頻器是 74LS161 計(jì)數(shù)器進(jìn)行分頻。 P03P14P25P36Q0 14Q1 13Q2 12Q3 11TC 15C E P7C E T10C L K2PE9MR17 4A L S 16 1V C C 5 vA L E 圖 9 74LS161 分頻 3 分 頻電路 更多下載請?jiān)L問 PCB 下載站: 14 看門狗電路設(shè)計(jì) 應(yīng)用系統(tǒng)受到干擾后,都要進(jìn)行復(fù)位,而一般 RC 電路往往不能保證系統(tǒng)的安全可靠工作,因此便出現(xiàn)了看門狗??撮T狗就是監(jiān)控定時(shí)器的簡稱,它的用來檢測微處理器是否工作正常,如果工作不正常,程序跑飛或者死機(jī),看門狗電路的輸入端沒有被及時(shí)觸發(fā),那么看門狗就會產(chǎn)生一個(gè)復(fù)位脈沖,能有效地使系統(tǒng)復(fù)位以使系統(tǒng)恢復(fù)正常運(yùn)轉(zhuǎn)。 “看門狗 ”技術(shù)軟件和硬件技術(shù)均可實(shí)現(xiàn),本設(shè)計(jì)采用硬件設(shè)計(jì),如圖 7 所示。 S 61 M R1V C C2G N D3P F I4 W D O8R E S E T7W D I6 P F O5J1M A X 8 13V C C 5 vW D IR E S E TP V C C 5 vR 621 0KR 613 0KD 621 .25 VD 613 .75 V 圖 10 看門狗電路 所謂硬件狗,就是一個(gè)能發(fā)出 “復(fù)位 ”信號的計(jì)數(shù)器或定時(shí)器電路, MAX813L芯片就是這么一種 芯片。該芯片具有監(jiān)控電路 ,如圖 所示。其工作原理是:單片機(jī) P1. 7作為看門狗的 “喂狗 ”信號定時(shí)給出一脈沖,當(dāng)程序正常運(yùn)行時(shí),單片機(jī)每隔 △ t輸出一脈沖給 WDI觸發(fā)MAX813L電路,使 RESET始終為低電平 。若單片機(jī)程序一旦出現(xiàn)異常,不能在 “喂狗 ”脈沖, MAX813L的 RESET將產(chǎn)生一正脈沖到單片機(jī)的 RESET口,使單片機(jī)系統(tǒng)復(fù)位,使其能重新正常運(yùn)行。 更多下載請?jiān)L問 PCB 下載站: 15 顯示模塊設(shè)計(jì) 和 38 譯碼電路設(shè)計(jì) 本次畢業(yè)設(shè)計(jì)顯示是采用 7 個(gè)八段數(shù) 共陰 碼管 , 第一個(gè)數(shù)碼管顯示的標(biāo)志位,顯示當(dāng)前輸出的電壓是什么狀態(tài)??偣灿辛?種狀態(tài),分別是: 1 表示當(dāng)前輸出的 12V, 2 表示當(dāng)前輸出的 3V, 3 表示當(dāng)前輸出的 , 4 表示當(dāng)前輸出的 6V, 5 表示當(dāng)前輸出的 9V, 6 表示當(dāng)前輸出的 的連續(xù)可調(diào)電壓。 后面的三個(gè)數(shù)碼管顯示的輸出的電壓的大小,前兩個(gè)是電壓的整數(shù)部分 ,后一個(gè)是電壓的小數(shù)部分。最后的三個(gè)數(shù)碼管顯示的當(dāng)前輸出的電流大小,前一個(gè)是電流的整數(shù)部分,后兩位顯示是電流的小數(shù)部分。 沒有數(shù)碼管都有 8 根數(shù)據(jù)線和一根公共線,公共線接正,表示數(shù)碼管為共陽,公共線接地,表示數(shù)碼管為共陰,每一根線對應(yīng)一根發(fā)光二極管。圖 11 為 顯示 電路和 38譯碼電路: P 1P 2P 3P 4P 5P 6P 7P 8R S T / V P D9P / R xD10P / T xD11P / I N T 012P / I N T 113P / T 014P / T 115P / W R16P / R D17X T A L 218X T A L 119G N D20P 21P 22P 23P 24P 25P 26P 27P 28P S E N29A L E / P R O G30E A / V p p31P 32P 33P 34P 35P 36P 37P 38P 39V C C40A T 8 9C 51A1B2C3G 2A4G 2B5G16Y77V C C16Y015Y114Y213Y312Y411Y510G N D8Y697 4L S 1 38DIR1A12A23A34A45A56A67A78A89GND10B811B712B613B514B415B316B217B118OE19VCC207 4H C 2 45abfcgdeD P Y[ L E D g n ]a b c d e f gD S 2a b c d e f gdpC B AD S 1a b c d e f gdpC B AD S 0X T A L 1X T A L 2V C C 5 vD1D2D3D4D5D6D7D8D1 D2 D3 D4 D5 D6 D7 D8a b c d e f gdpV C C 5 va b c d e f g a b c d e f gdp a b c d e f gdpV C C 5 vY0Y1Y2Y3Y4Y5Y6Y0Y1Y2Y3Y4Y5Y6I N T OP P P P P P P P P P P ABCV C C 5 vABCV C C 5 vA L ES W 1S W 2S W 3S W 4S W 5V C C 5 vN O TOEOEP P 圖 11 顯示 電路和 38 譯碼電路 更多下載請?jiān)L問 PCB 下載站: 16 圖中通過單片機(jī)的 P0 端口向數(shù)碼管送顯示的數(shù)據(jù), 通過 、 三根地址線經(jīng)過 38 譯碼器選擇顯示的位置。 其中最后一個(gè) Y7 可以 作 為 P0 端口送數(shù)據(jù)到數(shù)碼管還是從 AD0809 讀取數(shù)據(jù)的選擇信號。 輔助電路設(shè)計(jì) 輔助電路雖然比較簡單,但卻是每個(gè)系統(tǒng)中必不可少的部分。有些時(shí)候,系統(tǒng)的穩(wěn)定性就取決于這些看似不起眼的輔助電路上。圖12 為晶振電路,為單片機(jī)工作的必須的部件。 C23 3 PC33 3 PY16 MH ZX TA L1X TA L2 圖 12 晶振電路 圖 13 為邏輯電路圖,經(jīng)過邏輯變化,實(shí)現(xiàn)單片機(jī)控制 AD0809正 常工作。 123U ? A7 4A L S 02123U ? A7 4A L S 02S T A R T /A L EE N A B L EP P P 圖 13 邏輯電路 圖 14 為電源 濾波電路, 可以有效的防止信號的相互干擾,可以是器件更穩(wěn)定的工作。 V C C 5 vL E 5 2 1 0u HL E 5 1 1 0u HC E 5 10 .1u C E 5 30 .1u+ C E 5 21 0u C E 5 40 .01 u 更多下載請?jiān)L問 PCB 下載站: 17 圖 14 電源濾波電路 基于 AT89C51 智能電源 系統(tǒng) 電路合成 經(jīng)過前面的各個(gè)部分電路的詳細(xì)介紹后,下面就需要把這些分散的電路有效的合成一個(gè)完整的電路來實(shí)現(xiàn)我們需要的功能。 電路的合成不是簡單的把這些電路堆在一起, 需要考慮他們之間的資源分配,主次,先后等關(guān)系。綜合考慮多方面的因素,得到實(shí)現(xiàn)預(yù)期功能的電路圖,見附錄 1。 更多下載請?jiān)L問 PCB 下載站: 18 第 三 章 基于 AT89C51 智能電源 系統(tǒng) 軟件 設(shè)計(jì) 軟件設(shè)計(jì) 軟件設(shè)計(jì)是一 個(gè)創(chuàng)造性的過程,對一些設(shè)計(jì)者來說需要一定的資質(zhì),而最后設(shè)計(jì)通常都是由一些初步設(shè)計(jì)演變而來的。從書本上學(xué)不會設(shè)計(jì),只能經(jīng)過實(shí)踐,通過對實(shí)際系統(tǒng)的研究和實(shí)踐才能學(xué)會。對于高效的軟件工程,良好的設(shè)計(jì)是關(guān)鍵,一個(gè)設(shè)計(jì)得好的軟件系統(tǒng)應(yīng)該是可直接實(shí)現(xiàn)和易于維護(hù)、易懂和可靠的。設(shè)計(jì)得不好的系統(tǒng),盡管可以工作,但很可能維護(hù)起來費(fèi)用昂貴、測試?yán)щy和不可靠,因此,設(shè)計(jì)階段是軟件開發(fā)過程中最重要的階段。 直到最近,軟件設(shè)計(jì)在很大程度上仍是一個(gè)特定過程。一般用自然語言給定一 個(gè) 需求集,預(yù)先作非正式設(shè)計(jì),常常用流程圖的形式說明 ,接著開始編碼,當(dāng)系統(tǒng)實(shí)現(xiàn)時(shí)設(shè)計(jì)還需修改。當(dāng)實(shí)現(xiàn)階段完成后,設(shè)計(jì)往往已與起初形式相去甚遠(yuǎn)以至于設(shè)計(jì)的原始文檔完全不適合對系統(tǒng)的描述。 軟件設(shè)計(jì)任務(wù) 軟件設(shè)計(jì)主要是針對硬件設(shè)計(jì)里面的控制部分的,這里指AT89C51單片機(jī),一般的單片機(jī)均可用匯編語言和 C語言進(jìn)行編程。C語言直觀,相對比較的簡單,但占用的程序存儲器的內(nèi)存比較大,匯編語言是針對硬件設(shè)計(jì)的語言,如果想用匯編語言設(shè)計(jì)的話必須要更多下載請?jiān)L問 PCB 下載站: 19 對硬件有很 大的了解,相對 C語言就比較的復(fù)雜,但是比較的精簡,占用的程序存儲器的空間比較的小。作為還在學(xué)生階段的我們,用匯編語言進(jìn)行編程對我們理解單片機(jī)的內(nèi)部結(jié)構(gòu)、資源都有很好的幫助,因此本論文的程序都是基于匯編語言的。要完成的任務(wù)是: 初始化程序 設(shè)計(jì)、 按鍵程序設(shè)計(jì) 、 充放電控制程序設(shè)計(jì) 、 A/D轉(zhuǎn)換程序 設(shè)計(jì)、 過流保護(hù)程序 設(shè)計(jì)、 顯示程序 設(shè)計(jì) 。 軟件設(shè)計(jì)的步驟 大型的軟件設(shè)計(jì)是一個(gè)龐大的系統(tǒng)工程,需要前期的市場調(diào)查、需求分析,還需要各個(gè)行業(yè)的支持。本次畢業(yè)設(shè)計(jì)的程序是一個(gè)很簡單的過程,所以步驟也相對應(yīng)的簡單了許多。 第 一步:分析整個(gè)系統(tǒng)可以由幾個(gè)子系統(tǒng)組成,并考慮幾個(gè)子系統(tǒng)之間的內(nèi)在的關(guān)系。 第二步:編寫各個(gè)子系統(tǒng)的程序,最后組合在一起,得到整個(gè)系統(tǒng)。 第三步:編譯,查錯,改錯(包括語法錯誤、邏輯錯誤) 第四步:把編譯,看是否得到我們需要的結(jié)果,如果得不到結(jié)果就回到第三步,直到最后得到我們想要的結(jié)果。 軟件設(shè)計(jì)的 工具 本次畢業(yè)所選用 Keil C51 中的編譯 /連接器軟件 Keil uVision2 作為編譯器 /連接工具,使用萬利公司 Medwin 軟件作為集成開發(fā)環(huán)境 。Medwin 是萬利電子有限公司的軟件, Medwin 是一 個(gè)具有 Microsoft 更多下載請?jiān)L問 PCB 下載站: 20 Visual Studio 窗口風(fēng)格的集成開發(fā)環(huán)境。支持帶語法分析的彩色文本顯示、源程序斷點(diǎn)設(shè)置記憶、實(shí)時(shí)程序計(jì)數(shù)器、 PC 顯示、仿真器斷電自動重載、自適應(yīng)連接仿真器等功能,并且支持全空間程序代碼和數(shù)據(jù)空間的模擬仿真、 Trace Buffer 跟蹤器。 軟件設(shè)計(jì) 流程 流程圖是一種傳統(tǒng)的算法表示法,它利用幾何圖形的框來代表各種不同性質(zhì)的操作,用流程線來指示算法的執(zhí)行方向。由于它簡單直觀,所以應(yīng)用廣泛,特別是在早期語言階段,只有通過流程 圖才能簡明地表述算法,流程圖成為程序員們交流的重 要手段 。 本次畢業(yè)設(shè)計(jì)在軟件設(shè)計(jì)方面的難度不是很大,主要是對一些電路的控制。由于控制信號比較的多, AT89C51 單片機(jī)的引腳 已經(jīng)不能滿足需要了,我們采用 AD0809 和數(shù)碼管顯示端口復(fù)用的技術(shù), 這就需要我們在編寫程序的時(shí)候需要特別小心這些信號之間的關(guān)系。 除此之外,程序設(shè)計(jì)中還設(shè)計(jì)了兩個(gè)中斷程序,一個(gè)是 AD0809 模數(shù)轉(zhuǎn)換中斷,一個(gè)是電壓過低自動充電中斷, 這個(gè)兩個(gè)中斷的設(shè)計(jì)也是相對比較難的。 由于電壓、電流出現(xiàn)小數(shù)部分,而單片機(jī)處理小數(shù)相對比較的困難,我們 通過對電壓乘以 10 和對電流乘以 100 的處理方法,然后在數(shù)碼 管的相應(yīng)的地方通過硬件點(diǎn)亮小數(shù)點(diǎn)的方法解決小數(shù)問題,實(shí)際證明了這樣的方法大大簡化了整個(gè)的程序設(shè)計(jì)。 圖 15 為整個(gè)系統(tǒng)程序設(shè)計(jì)的流程圖 。 更多下載請?jiān)L問 PCB 下載站: 21 單 片 機(jī) 初 始 化關(guān) 閉 所 有 電 源 輸 出掃 描 鍵 盤 判斷 是 否 有 按 鍵顯 示 功 能 的 選 擇是 否 是 按 鍵 2是 否 是 按 鍵 33 V / 4 . 5 V / 6 V / 9 V 的 電 源 輸 出是 否 是 按 鍵 41 2 V 的 電 源 輸 出是 否 是 按 鍵 5輸 出 1 . 5 V 1 2 V 連 續(xù) 可 調(diào) 電 壓從 A D 0 8 0 9 讀 取 電 流 大 小判 斷 電 流 超 過 2 A從 A D 0 8 0 9 讀 取 電 壓 大 小送 數(shù) 據(jù) 到 L E D 數(shù) 碼 管 顯 示關(guān) 閉 電 源 輸 出是 否 是 按 鍵 1YNYYYYYYNNNNNN 圖 15 程序設(shè)計(jì) 流程圖 編 寫 程序 有了前面的對整個(gè)系統(tǒng)的分析后畫出的流程圖,下面的工作就是根據(jù)流程圖編寫程序。 編寫程序是一個(gè)相當(dāng)復(fù)雜的過程,要求編程人員具有很強(qiáng)邏輯思維,而且要在對整個(gè)系統(tǒng)工作原