單片機應(yīng)用系統(tǒng)設(shè)計_第1頁
單片機應(yīng)用系統(tǒng)設(shè)計_第2頁
單片機應(yīng)用系統(tǒng)設(shè)計_第3頁
單片機應(yīng)用系統(tǒng)設(shè)計_第4頁
單片機應(yīng)用系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩68頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2021/3/271第第12章章 單片機應(yīng)用系統(tǒng)設(shè)計單片機應(yīng)用系統(tǒng)設(shè)計2021/3/27212.1.1 單片機應(yīng)用系統(tǒng)開發(fā)的基本過程單片機應(yīng)用系統(tǒng)開發(fā)的基本過程一系統(tǒng)需求與方案調(diào)研一系統(tǒng)需求與方案調(diào)研 系統(tǒng)需求與方案調(diào)研的目的是通過市場或用戶系統(tǒng)需求與方案調(diào)研的目的是通過市場或用戶了解了解用戶對用戶對擬擬開發(fā)應(yīng)用系統(tǒng)的開發(fā)應(yīng)用系統(tǒng)的設(shè)計目標(biāo)設(shè)計目標(biāo)和和技術(shù)指標(biāo)技術(shù)指標(biāo)。通過查。通過查找資料找資料,分析研究分析研究,解決以下問題解決以下問題:1)了解國內(nèi)外同類系統(tǒng)的開發(fā)水平、器材、設(shè)備水了解國內(nèi)外同類系統(tǒng)的開發(fā)水平、器材、設(shè)備水平、供應(yīng)狀態(tài)平、供應(yīng)狀態(tài);對接收委托研制項目對接收委托研制項目,還應(yīng)

2、充分了解對方還應(yīng)充分了解對方技術(shù)要求、環(huán)境狀況、技術(shù)水平技術(shù)要求、環(huán)境狀況、技術(shù)水平,以確定課題的技術(shù)難以確定課題的技術(shù)難度。度。2)了解可移植的硬、軟件技術(shù)。能移植的盡量移植了解可移植的硬、軟件技術(shù)。能移植的盡量移植,以防止大量低水平重復(fù)勞動。以防止大量低水平重復(fù)勞動。3)摸清硬、軟件技術(shù)難度摸清硬、軟件技術(shù)難度,明確技術(shù)主攻方向。明確技術(shù)主攻方向。4)綜合考慮硬、軟件分工與配合方案。單片機應(yīng)用綜合考慮硬、軟件分工與配合方案。單片機應(yīng)用系統(tǒng)設(shè)計中系統(tǒng)設(shè)計中,硬、軟件工作具有密切的相關(guān)性。硬、軟件工作具有密切的相關(guān)性。2021/3/273 可行性分析的目的是對系統(tǒng)開發(fā)研制的必要可行性分析的目的

3、是對系統(tǒng)開發(fā)研制的必要性及可行性作出性及可行性作出明確明確的判定結(jié)論。根據(jù)這一結(jié)論的判定結(jié)論。根據(jù)這一結(jié)論決定系統(tǒng)的開發(fā)研制工作是否進行下去。決定系統(tǒng)的開發(fā)研制工作是否進行下去。 可行性分析可行性分析通常從以下幾個方面進行論證通常從以下幾個方面進行論證:1)市場或用戶的需求情況。)市場或用戶的需求情況。2)經(jīng)濟效益和社會效益。)經(jīng)濟效益和社會效益。3)技術(shù)支持與開發(fā)環(huán)境。)技術(shù)支持與開發(fā)環(huán)境。4)現(xiàn)在的競爭力與未來的生命力。)現(xiàn)在的競爭力與未來的生命力。二可行性分析二可行性分析2021/3/274 系統(tǒng)功能設(shè)計系統(tǒng)功能設(shè)計包括包括系統(tǒng)總體目標(biāo)功能的確定系統(tǒng)總體目標(biāo)功能的確定及及系系統(tǒng)硬、軟件模

4、塊功能的劃分與協(xié)調(diào)關(guān)系統(tǒng)硬、軟件模塊功能的劃分與協(xié)調(diào)關(guān)系。 系統(tǒng)功能設(shè)計系統(tǒng)功能設(shè)計是根據(jù)系統(tǒng)硬件、軟件功能的劃分是根據(jù)系統(tǒng)硬件、軟件功能的劃分及其協(xié)調(diào)關(guān)系及其協(xié)調(diào)關(guān)系,確定系統(tǒng)硬件結(jié)構(gòu)和軟件結(jié)構(gòu)。確定系統(tǒng)硬件結(jié)構(gòu)和軟件結(jié)構(gòu)。 系統(tǒng)系統(tǒng)硬件硬件結(jié)構(gòu)設(shè)計的主要內(nèi)容包括單片機系統(tǒng)擴結(jié)構(gòu)設(shè)計的主要內(nèi)容包括單片機系統(tǒng)擴展方案和外圍設(shè)備的配置及其接口電路方案展方案和外圍設(shè)備的配置及其接口電路方案,最后要以最后要以邏輯框圖形式描述出來。邏輯框圖形式描述出來。 系統(tǒng)系統(tǒng)軟件軟件結(jié)構(gòu)設(shè)計主要完成的任務(wù)是確定出系統(tǒng)結(jié)構(gòu)設(shè)計主要完成的任務(wù)是確定出系統(tǒng)軟件功能模塊的劃分及各功能模塊的程序?qū)崿F(xiàn)的技術(shù)軟件功能模塊的劃分

5、及各功能模塊的程序?qū)崿F(xiàn)的技術(shù)方法方法,最后以結(jié)構(gòu)框圖或流程圖描述出來。最后以結(jié)構(gòu)框圖或流程圖描述出來。三系統(tǒng)功能設(shè)計三系統(tǒng)功能設(shè)計2021/3/27512.12.1 單片機應(yīng)用系統(tǒng)的硬件組成單片機應(yīng)用系統(tǒng)的硬件組成被被控控對對象象單單片片機機光電隔離光電隔離A/D光電隔離光電隔離光電隔離光電隔離D/A擴展存儲器擴展存儲器 顯示器顯示器 鍵盤接口鍵盤接口功能芯片功能芯片接口接口數(shù)字量輸入數(shù)字量輸入模擬量輸入模擬量輸入開關(guān)量輸入開關(guān)量輸入開關(guān)量輸出開關(guān)量輸出模擬量輸出模擬量輸出輸輸入入輸輸出出接接口口I/O接接口口2021/3/276 系統(tǒng)詳細(xì)設(shè)計與制作就是將前面的系統(tǒng)方案付系統(tǒng)詳細(xì)設(shè)計與制作就是

6、將前面的系統(tǒng)方案付諸實施諸實施,將硬件框圖轉(zhuǎn)化成具體電路將硬件框圖轉(zhuǎn)化成具體電路,并制作成電路板并制作成電路板,軟件框圖或流程圖用程序加以實現(xiàn)。軟件框圖或流程圖用程序加以實現(xiàn)。四系統(tǒng)詳細(xì)設(shè)計與制作四系統(tǒng)詳細(xì)設(shè)計與制作 系統(tǒng)調(diào)試是檢測所設(shè)計系統(tǒng)的正確性與可靠性的系統(tǒng)調(diào)試是檢測所設(shè)計系統(tǒng)的正確性與可靠性的必要過程。單片機應(yīng)用系統(tǒng)設(shè)計是一個相當(dāng)復(fù)雜的勞必要過程。單片機應(yīng)用系統(tǒng)設(shè)計是一個相當(dāng)復(fù)雜的勞動過程動過程,在設(shè)計、制作中在設(shè)計、制作中,難免存在一些局部性問題或錯難免存在一些局部性問題或錯誤。系統(tǒng)調(diào)試可發(fā)現(xiàn)存在的問題和錯誤誤。系統(tǒng)調(diào)試可發(fā)現(xiàn)存在的問題和錯誤,以便及時地進以便及時地進行修改。調(diào)試與修

7、改的過程可能要反復(fù)多次行修改。調(diào)試與修改的過程可能要反復(fù)多次,最終使系最終使系統(tǒng)試運行成功統(tǒng)試運行成功,并達到設(shè)計要求。并達到設(shè)計要求。五系統(tǒng)調(diào)試與修改五系統(tǒng)調(diào)試與修改2021/3/277 硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器等)波器等),通過執(zhí)行開發(fā)系統(tǒng)有關(guān)命令或測試程序通過執(zhí)行開發(fā)系統(tǒng)有關(guān)命令或測試程序,檢查用戶檢查用戶系統(tǒng)硬件中存在的故障。它又可分為靜態(tài)調(diào)試和動態(tài)調(diào)試兩系統(tǒng)硬件中存在的故障。它又可分為靜態(tài)調(diào)試和動態(tài)調(diào)試兩步步: 靜態(tài)調(diào)試即用戶系統(tǒng)未工作時的一種硬件檢查。靜態(tài)調(diào)試即用戶系統(tǒng)未工作時的一種硬件檢查。一一般采用目測

8、、萬用表測試、加電測試等方法對印制電路板般采用目測、萬用表測試、加電測試等方法對印制電路板及各芯片、器件進行檢查。及各芯片、器件進行檢查。 動態(tài)調(diào)試是在用戶系統(tǒng)工作時發(fā)現(xiàn)和排除硬件故障動態(tài)調(diào)試是在用戶系統(tǒng)工作時發(fā)現(xiàn)和排除硬件故障的一種硬件檢查。的一種硬件檢查。其一般方法是先進行各單元電路調(diào)試再其一般方法是先進行各單元電路調(diào)試再進行全系統(tǒng)調(diào)試。進行全系統(tǒng)調(diào)試。 什么是硬件調(diào)試?什么是硬件調(diào)試?仿真調(diào)試仿真調(diào)試 仿真調(diào)試分硬件調(diào)試、軟件調(diào)試和系統(tǒng)聯(lián)調(diào)三個階段。仿真調(diào)試分硬件調(diào)試、軟件調(diào)試和系統(tǒng)聯(lián)調(diào)三個階段。(1)硬件調(diào)試)硬件調(diào)試2021/3/278(2)軟件調(diào)試)軟件調(diào)試 軟件調(diào)試是通過對用戶程

9、序的匯編、連接、執(zhí)行來軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。的過程。 軟件調(diào)試的一般方法是先獨立后聯(lián)機、先分塊后組軟件調(diào)試的一般方法是先獨立后聯(lián)機、先分塊后組合、先單步后連續(xù)。合、先單步后連續(xù)。什么是軟件調(diào)試?什么是軟件調(diào)試?(3)系統(tǒng)聯(lián)調(diào))系統(tǒng)聯(lián)調(diào) 系統(tǒng)聯(lián)調(diào)是指讓用戶系統(tǒng)的軟件在其硬件上實際運系統(tǒng)聯(lián)調(diào)是指讓用戶系統(tǒng)的軟件在其硬件上實際運行行,并進行軟、硬件聯(lián)合調(diào)試。并進行軟、硬件聯(lián)合調(diào)試。2021/3/2794程序固化及獨立運行程序固化及獨立運行5文件編制階段文件編制階段 文件應(yīng)包括

10、文件應(yīng)包括:u任務(wù)描述任務(wù)描述;u設(shè)計的指導(dǎo)思想及設(shè)計方案論證設(shè)計的指導(dǎo)思想及設(shè)計方案論證;u性能測定及現(xiàn)場試用報告與說明性能測定及現(xiàn)場試用報告與說明;u使用指南使用指南;u軟件資料(流程圖、子程序使用說明、地址分配、程軟件資料(流程圖、子程序使用說明、地址分配、程序清單)序清單);u硬件資料(電路原理圖、元件布置圖及接線圖、接插硬件資料(電路原理圖、元件布置圖及接線圖、接插件引腳圖、印制線路板圖、注意事項等)。件引腳圖、印制線路板圖、注意事項等)。2021/3/2710 系統(tǒng)硬件、軟件調(diào)試通過后系統(tǒng)硬件、軟件調(diào)試通過后,就可以把調(diào)試完畢就可以把調(diào)試完畢的軟件固化在的軟件固化在EPROM中中,

11、然后脫機(脫離開發(fā)系統(tǒng))然后脫機(脫離開發(fā)系統(tǒng))運行。如果脫機運行正常運行。如果脫機運行正常,再在真實環(huán)境或模擬真實再在真實環(huán)境或模擬真實環(huán)境下運行環(huán)境下運行,經(jīng)反復(fù)運行正常經(jīng)反復(fù)運行正常,開發(fā)過程即告結(jié)束。開發(fā)過程即告結(jié)束。 六生成正式系統(tǒng)或產(chǎn)品六生成正式系統(tǒng)或產(chǎn)品2021/3/271112.2 單片機應(yīng)用系統(tǒng)的硬件設(shè)計單片機應(yīng)用系統(tǒng)的硬件設(shè)計12.2.1 硬件系統(tǒng)設(shè)計原則硬件系統(tǒng)設(shè)計原則 一個單片機應(yīng)用系統(tǒng)的硬件電路設(shè)計包括三個一個單片機應(yīng)用系統(tǒng)的硬件電路設(shè)計包括三個部分內(nèi)容部分內(nèi)容:一是一是單片機芯片的選擇單片機芯片的選擇,二是二是單片機系統(tǒng)擴單片機系統(tǒng)擴展展,三是三是系統(tǒng)配置。系統(tǒng)配置

12、。一、單片機芯片的選擇一、單片機芯片的選擇二、單片機系統(tǒng)擴展二、單片機系統(tǒng)擴展 單片機系統(tǒng)擴展是指單片機內(nèi)部的功能單元單片機系統(tǒng)擴展是指單片機內(nèi)部的功能單元(如程如程序存儲器、數(shù)據(jù)存儲器、序存儲器、數(shù)據(jù)存儲器、I/O口、定時器口、定時器/計數(shù)器、中計數(shù)器、中斷系統(tǒng)等斷系統(tǒng)等)的容量不能滿足應(yīng)用系統(tǒng)的要求時的容量不能滿足應(yīng)用系統(tǒng)的要求時,必須在必須在片外進行擴展片外進行擴展,這時應(yīng)選擇適當(dāng)?shù)男酒@時應(yīng)選擇適當(dāng)?shù)男酒?設(shè)計相應(yīng)的擴展設(shè)計相應(yīng)的擴展連接電路連接電路;系統(tǒng)配置是按照系統(tǒng)功能要求配置外圍設(shè)備系統(tǒng)配置是按照系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤、顯示器、打印機、如鍵盤、顯示器、打印機、A/D轉(zhuǎn)換

13、器、轉(zhuǎn)換器、D/A轉(zhuǎn)換器等轉(zhuǎn)換器等,設(shè)計相應(yīng)的接口電路。設(shè)計相應(yīng)的接口電路。 2021/3/2712單片機的選型原則單片機的選型原則1.單片機的系統(tǒng)適應(yīng)性單片機的系統(tǒng)適應(yīng)性 所謂系統(tǒng)適應(yīng)性是指能否用這個單片機完成對所謂系統(tǒng)適應(yīng)性是指能否用這個單片機完成對應(yīng)用系統(tǒng)的控制任務(wù)。應(yīng)用系統(tǒng)的控制任務(wù)。 主要考慮以下幾點主要考慮以下幾點: 是否有所需的是否有所需的I/O端口數(shù)端口數(shù) 是否有所需的中斷源及定時器是否有所需的中斷源及定時器 是否有所需的外圍端口部件是否有所需的外圍端口部件 是否有合適的計算處理能力是否有合適的計算處理能力 是否有足夠的極限性能是否有足夠的極限性能2021/3/27132單片機

14、的可開發(fā)性單片機的可開發(fā)性(1 1)開發(fā)環(huán)境)開發(fā)環(huán)境 包括包括匯編程序、編譯、連接程序。匯編程序、編譯、連接程序。 (2 2)調(diào)試工具)調(diào)試工具 包括包括在線仿真器、邏輯分析工具、調(diào)試監(jiān)在線仿真器、邏輯分析工具、調(diào)試監(jiān)控程序??爻绦颉#? 3)在線)在線BBSBBS服務(wù)服務(wù) 包括實時執(zhí)行、應(yīng)用案例、缺陷故障包括實時執(zhí)行、應(yīng)用案例、缺陷故障報告、實用軟件、樣本源碼。報告、實用軟件、樣本源碼。(4)應(yīng)用支持)應(yīng)用支持 包括是否存在專職的應(yīng)用支持機構(gòu)包括是否存在專職的應(yīng)用支持機構(gòu)? ?是否是否存在應(yīng)用工程師及銷售人員的支持存在應(yīng)用工程師及銷售人員的支持? ?支持人員的學(xué)識水平支持人員的學(xué)識水平如何

15、如何? ?是否有便利的通信工具是否有便利的通信工具, ,是否及時得到支持是否及時得到支持? ?2021/3/27143制造商歷史及可購買性制造商歷史及可購買性 產(chǎn)品的性價比以及是否可靠產(chǎn)品的性價比以及是否可靠? 購買途徑是否順暢購買途徑是否順暢? 供貨量是否充足穩(wěn)定供貨量是否充足穩(wěn)定? 是否停產(chǎn)是否停產(chǎn)? 是否在改進之中是否在改進之中? 總結(jié)總結(jié)依據(jù)上述三個原則進行單片機的選型依據(jù)上述三個原則進行單片機的選型,應(yīng)可以選擇出最應(yīng)可以選擇出最能適用于具體應(yīng)用系統(tǒng)的單片機能適用于具體應(yīng)用系統(tǒng)的單片機,同時可以保證應(yīng)用系同時可以保證應(yīng)用系統(tǒng)具有高可靠性、高性價比、高使用壽命及可升級換代統(tǒng)具有高可靠性、

16、高性價比、高使用壽命及可升級換代性。性。2021/3/2715三、系統(tǒng)擴展和配置設(shè)計遵循的原則三、系統(tǒng)擴展和配置設(shè)計遵循的原則(1)盡可能選擇典型通用的電路盡可能選擇典型通用的電路,并符合單片機的常規(guī)并符合單片機的常規(guī)用法。用法。(2)系統(tǒng)的擴展與外圍設(shè)備配置的水平應(yīng)充分滿足應(yīng)系統(tǒng)的擴展與外圍設(shè)備配置的水平應(yīng)充分滿足應(yīng)用系統(tǒng)當(dāng)前的功能要求用系統(tǒng)當(dāng)前的功能要求,并留有適當(dāng)余地并留有適當(dāng)余地,便于以后進行功便于以后進行功能的擴充。能的擴充。(3)硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。硬件結(jié)構(gòu)應(yīng)結(jié)合應(yīng)用軟件方案一并考慮。(4)整個系統(tǒng)中相關(guān)的器件要盡可能做到性能匹配。整個系統(tǒng)中相關(guān)的器件要盡可能做到性

17、能匹配。(5)可靠性及抗干擾設(shè)計是硬件設(shè)計中不可忽視的一可靠性及抗干擾設(shè)計是硬件設(shè)計中不可忽視的一部分。部分。(6)單片機外接電路較多時單片機外接電路較多時,必須考慮其驅(qū)動能力。必須考慮其驅(qū)動能力。2021/3/271612.2.2 硬件設(shè)計硬件設(shè)計一程序存儲器一程序存儲器二數(shù)據(jù)存儲器二數(shù)據(jù)存儲器三三I/O接口接口四譯碼電路四譯碼電路五總線驅(qū)動器五總線驅(qū)動器六抗干擾電路六抗干擾電路2021/3/271712.3 單片機應(yīng)用系統(tǒng)的軟件設(shè)計單片機應(yīng)用系統(tǒng)的軟件設(shè)計 一個應(yīng)用系統(tǒng)中的軟件一般是由一個應(yīng)用系統(tǒng)中的軟件一般是由系統(tǒng)監(jiān)控程序系統(tǒng)監(jiān)控程序和和應(yīng)用程序應(yīng)用程序兩部分構(gòu)成的。其中兩部分構(gòu)成的。其

18、中: 應(yīng)用程序應(yīng)用程序是用來完成諸如測量、計算、顯示、打是用來完成諸如測量、計算、顯示、打印、輸出控制等各種實質(zhì)性功能的軟件印、輸出控制等各種實質(zhì)性功能的軟件; 系統(tǒng)監(jiān)控程序系統(tǒng)監(jiān)控程序是控制單片機系統(tǒng)按預(yù)定操作方式運是控制單片機系統(tǒng)按預(yù)定操作方式運行的程序行的程序,它負(fù)責(zé)組織調(diào)度各應(yīng)用程序模塊它負(fù)責(zé)組織調(diào)度各應(yīng)用程序模塊,完成系統(tǒng)完成系統(tǒng)自檢、初始化、處理鍵盤命令、處理接口命令、處理自檢、初始化、處理鍵盤命令、處理接口命令、處理條件觸發(fā)和顯示等功能。條件觸發(fā)和顯示等功能。2021/3/2718 軟件設(shè)計時軟件設(shè)計時,應(yīng)根據(jù)系統(tǒng)軟件功能要求應(yīng)根據(jù)系統(tǒng)軟件功能要求,將軟件分成將軟件分成若干個相對

19、獨立的部分若干個相對獨立的部分,并根據(jù)它們之間的聯(lián)系和時間并根據(jù)它們之間的聯(lián)系和時間上的關(guān)系上的關(guān)系,設(shè)計出軟件的總體結(jié)構(gòu)設(shè)計出軟件的總體結(jié)構(gòu),畫出程序流程框圖。畫出程序流程框圖。畫流程框圖時還要對系統(tǒng)資源作具體的分配和說明。根畫流程框圖時還要對系統(tǒng)資源作具體的分配和說明。根據(jù)系統(tǒng)特點和用戶的了解情況選擇編程語言據(jù)系統(tǒng)特點和用戶的了解情況選擇編程語言,現(xiàn)在一般現(xiàn)在一般用匯編語言和用匯編語言和C語言。語言。 匯編語言編寫程序?qū)τ布僮骱芊奖銋R編語言編寫程序?qū)τ布僮骱芊奖?編寫的程序編寫的程序代碼短代碼短,以前單片機應(yīng)用系統(tǒng)軟件主要用匯編語言編寫以前單片機應(yīng)用系統(tǒng)軟件主要用匯編語言編寫; C語言

20、功能豐富語言功能豐富,表達能力強表達能力強,使用靈活方便使用靈活方便,應(yīng)用面應(yīng)用面廣廣,目標(biāo)程序效率高目標(biāo)程序效率高,可移植性好可移植性好,現(xiàn)在單片機應(yīng)用系統(tǒng)開現(xiàn)在單片機應(yīng)用系統(tǒng)開發(fā)很多都用發(fā)很多都用C語言來進行開發(fā)和設(shè)計語言來進行開發(fā)和設(shè)計。2021/3/271912.3.1 軟件設(shè)計的特點軟件設(shè)計的特點一個優(yōu)秀的應(yīng)用系統(tǒng)的軟件應(yīng)具有以下特點一個優(yōu)秀的應(yīng)用系統(tǒng)的軟件應(yīng)具有以下特點:(1)軟件結(jié)構(gòu)清晰、簡捷、流程合理。軟件結(jié)構(gòu)清晰、簡捷、流程合理。(2)各功能程序?qū)崿F(xiàn)模塊化各功能程序?qū)崿F(xiàn)模塊化,系統(tǒng)化。這樣系統(tǒng)化。這樣,既便于調(diào)既便于調(diào)試、連接試、連接,又便于移植、修改和維護。又便于移植、修改

21、和維護。(3)程序存儲區(qū)、數(shù)據(jù)存儲區(qū)規(guī)劃合理程序存儲區(qū)、數(shù)據(jù)存儲區(qū)規(guī)劃合理,既能節(jié)約存儲既能節(jié)約存儲容量容量,又能給程序設(shè)計與操作帶來方便。又能給程序設(shè)計與操作帶來方便。(4)運行狀態(tài)實現(xiàn)標(biāo)志化管理。各個功能程序運行狀運行狀態(tài)實現(xiàn)標(biāo)志化管理。各個功能程序運行狀態(tài)、運行結(jié)果以及運行需求都設(shè)置狀態(tài)標(biāo)志以便查詢態(tài)、運行結(jié)果以及運行需求都設(shè)置狀態(tài)標(biāo)志以便查詢,程程序的轉(zhuǎn)移、運行、控制都可通過狀態(tài)標(biāo)志來控制。序的轉(zhuǎn)移、運行、控制都可通過狀態(tài)標(biāo)志來控制。2021/3/2720(5)經(jīng)過調(diào)試修改后的程序應(yīng)進行規(guī)范化經(jīng)過調(diào)試修改后的程序應(yīng)進行規(guī)范化,除去修改除去修改“痕跡痕跡”。規(guī)范化的程序便于交流、借鑒。規(guī)

22、范化的程序便于交流、借鑒,也為今后的也為今后的軟件模塊化、標(biāo)準(zhǔn)化打下基礎(chǔ)。軟件模塊化、標(biāo)準(zhǔn)化打下基礎(chǔ)。(6)實現(xiàn)全面軟件抗干擾設(shè)計。軟件抗干擾是計算機實現(xiàn)全面軟件抗干擾設(shè)計。軟件抗干擾是計算機應(yīng)用系統(tǒng)提高可靠性的有力措施。應(yīng)用系統(tǒng)提高可靠性的有力措施。(7)為了提高運行的可靠性為了提高運行的可靠性,在應(yīng)用軟件中設(shè)置自診在應(yīng)用軟件中設(shè)置自診斷程序斷程序,在系統(tǒng)運行前先運行自診斷程序在系統(tǒng)運行前先運行自診斷程序,用以檢查系統(tǒng)用以檢查系統(tǒng)各特征參數(shù)是否正常。各特征參數(shù)是否正常。2021/3/272112.3.2 資源分配資源分配一程序存儲器一程序存儲器ROM/EPROM資源的分配資源的分配 在這些資

23、源分配中在這些資源分配中,定時定時/計數(shù)器、中斷、串行口計數(shù)器、中斷、串行口等分配比較容易等分配比較容易,這里介紹程序存儲器和數(shù)據(jù)存儲器的這里介紹程序存儲器和數(shù)據(jù)存儲器的分配。分配。 程序存儲器程序存儲器ROM/EPROM用于存放程序和數(shù)據(jù)表格。用于存放程序和數(shù)據(jù)表格。按照按照MCS-51單片機的復(fù)位及中斷入口的規(guī)定單片機的復(fù)位及中斷入口的規(guī)定,002FH以以前的地址單元作為中斷、復(fù)位入口地址區(qū)。在這些單元前的地址單元作為中斷、復(fù)位入口地址區(qū)。在這些單元中一般都設(shè)置了轉(zhuǎn)移指令中一般都設(shè)置了轉(zhuǎn)移指令,用于轉(zhuǎn)移到相應(yīng)的中斷服務(wù)用于轉(zhuǎn)移到相應(yīng)的中斷服務(wù)程序或復(fù)位啟動程序。當(dāng)程序存儲器中存放的功能程序

24、程序或復(fù)位啟動程序。當(dāng)程序存儲器中存放的功能程序及子程序數(shù)量較多時及子程序數(shù)量較多時,應(yīng)盡可能為它們設(shè)置入口地址表。應(yīng)盡可能為它們設(shè)置入口地址表。一般的常數(shù)、表格集中設(shè)置在表格區(qū)。二次開發(fā)一般的常數(shù)、表格集中設(shè)置在表格區(qū)。二次開發(fā),擴展擴展部分盡可能放在高位地址區(qū)。部分盡可能放在高位地址區(qū)。2021/3/2722 RAM分為片內(nèi)分為片內(nèi)RAM和片外和片外RAM。片外。片外RAM的容的容量比較大量比較大,通常用來存放批量大的數(shù)據(jù)通常用來存放批量大的數(shù)據(jù),如采樣結(jié)果數(shù)據(jù)如采樣結(jié)果數(shù)據(jù);片內(nèi)片內(nèi)RAM容量較少容量較少,應(yīng)盡量重疊使用應(yīng)盡量重疊使用,比如數(shù)據(jù)暫存區(qū)比如數(shù)據(jù)暫存區(qū)與顯示、打印緩沖區(qū)重疊。

25、與顯示、打印緩沖區(qū)重疊。 對于對于MCS-51單片機來說單片機來說,片內(nèi)片內(nèi)RAM是指是指00H7FH單元單元,這這128個單元的功能并不完全相同個單元的功能并不完全相同,分配分配時應(yīng)注意發(fā)揮各自的特點時應(yīng)注意發(fā)揮各自的特點,做到物盡其用。做到物盡其用。二數(shù)據(jù)二數(shù)據(jù)RAM資源分配資源分配2021/3/272312.3.3 單片機應(yīng)用系統(tǒng)開發(fā)工具單片機應(yīng)用系統(tǒng)開發(fā)工具 一個單片機應(yīng)用系統(tǒng)經(jīng)過總體設(shè)計一個單片機應(yīng)用系統(tǒng)經(jīng)過總體設(shè)計,完成硬件開完成硬件開發(fā)和軟件設(shè)計發(fā)和軟件設(shè)計,就進行硬件安裝。硬件安裝好后就進行硬件安裝。硬件安裝好后,把編把編制好的程序?qū)懭氪鎯ζ髦兄坪玫某绦驅(qū)懭氪鎯ζ髦?調(diào)試好后系

26、統(tǒng)就可以運行調(diào)試好后系統(tǒng)就可以運行了。但用戶設(shè)計的應(yīng)用系統(tǒng)本身并不具備自開發(fā)的了。但用戶設(shè)計的應(yīng)用系統(tǒng)本身并不具備自開發(fā)的能力能力,不能夠?qū)懭氤绦蚝驼{(diào)試程序不能夠?qū)懭氤绦蚝驼{(diào)試程序,這必須借助于單片這必須借助于單片機開發(fā)系統(tǒng)才能完成這些工作。單片機開發(fā)系統(tǒng)是機開發(fā)系統(tǒng)才能完成這些工作。單片機開發(fā)系統(tǒng)是能夠模擬用戶實際的單片機能夠模擬用戶實際的單片機,并且能隨時觀察運行的并且能隨時觀察運行的中間過程和結(jié)果中間過程和結(jié)果,從而能對現(xiàn)場進行模仿的仿真開發(fā)從而能對現(xiàn)場進行模仿的仿真開發(fā)系統(tǒng)。通過它能很方便的對硬件電路進行診斷和調(diào)系統(tǒng)。通過它能很方便的對硬件電路進行診斷和調(diào)試試,得到正確的結(jié)果。得到正確

27、的結(jié)果。 2021/3/2724 目前國內(nèi)使用的通用單片機的仿真開發(fā)系統(tǒng)很多目前國內(nèi)使用的通用單片機的仿真開發(fā)系統(tǒng)很多,如復(fù)旦大學(xué)研制的如復(fù)旦大學(xué)研制的SICE系列、啟東計算機廠制造的系列、啟東計算機廠制造的DVCC系列、中國科大研制的系列、中國科大研制的KDV系列、系列、南京偉福實南京偉福實業(yè)有限公司的偉福業(yè)有限公司的偉福E6000以及西安唐都科教儀器公司以及西安唐都科教儀器公司的的TDS51開發(fā)及教學(xué)實驗系統(tǒng)。它們都具有對用戶程開發(fā)及教學(xué)實驗系統(tǒng)。它們都具有對用戶程序進行輸入、編輯、匯編和調(diào)試的功能。此外序進行輸入、編輯、匯編和調(diào)試的功能。此外,有些還有些還具備在線仿真功能具備在線仿真功能

28、,能夠直接將程序固化到能夠直接將程序固化到EEPROM中。中。一般都支持匯編語言編程一般都支持匯編語言編程,有的可以通過開發(fā)軟件有的可以通過開發(fā)軟件,支持支持C語言編程。例如可通過語言編程。例如可通過Keil C51軟件來編寫軟件來編寫C語言源語言源程序程序,編譯連接生成目標(biāo)文件、可執(zhí)行文件編譯連接生成目標(biāo)文件、可執(zhí)行文件,仿真、調(diào)試、仿真、調(diào)試、生成代碼并下載到應(yīng)用系統(tǒng)中。生成代碼并下載到應(yīng)用系統(tǒng)中。 2021/3/272512.4 12.4 單片機應(yīng)用系統(tǒng)的抗干擾設(shè)計單片機應(yīng)用系統(tǒng)的抗干擾設(shè)計 1. 1. 干擾源及干擾途徑干擾源及干擾途徑 單片機系統(tǒng)中的干擾有多種類型。單片機系統(tǒng)中的干擾有

29、多種類型。 一種一種是來自空間輻射的干擾。可控硅逆變電源、變頻是來自空間輻射的干擾??煽毓枘孀冸娫础⒆冾l調(diào)速器、發(fā)射機等特殊設(shè)備在工作時會產(chǎn)生很強的干擾調(diào)速器、發(fā)射機等特殊設(shè)備在工作時會產(chǎn)生很強的干擾, ,在這種環(huán)境中單片機系統(tǒng)難以正常運行在這種環(huán)境中單片機系統(tǒng)難以正常運行; ; 另一種另一種是來自電源的干擾。各種開關(guān)的通斷、火花干是來自電源的干擾。各種開關(guān)的通斷、火花干擾、大電機啟停等現(xiàn)象在工業(yè)現(xiàn)場很常見擾、大電機啟停等現(xiàn)象在工業(yè)現(xiàn)場很常見, ,這些來自交流這些來自交流電源的干擾對單片機系統(tǒng)的正常運行危害極大電源的干擾對單片機系統(tǒng)的正常運行危害極大; ; 還有一種還有一種就是來自信號通道的干

30、擾。在實際的應(yīng)用系就是來自信號通道的干擾。在實際的應(yīng)用系統(tǒng)中統(tǒng)中, ,測控信號的輸入測控信號的輸入/輸出是必不可少的。在工業(yè)現(xiàn)場中輸出是必不可少的。在工業(yè)現(xiàn)場中, ,這些這些I/O信號線、控制線有時長達幾百米信號線、控制線有時長達幾百米, ,不可避免地會把不可避免地會把干擾引入到系統(tǒng)中。如果受控對象是強干擾源干擾引入到系統(tǒng)中。如果受控對象是強干擾源, ,如可控硅、如可控硅、電焊機等電焊機等, ,則單片機系統(tǒng)根本就無法運行。則單片機系統(tǒng)根本就無法運行。 2021/3/27262 2、硬件抗干擾措施、硬件抗干擾措施 根據(jù)干擾的產(chǎn)生及傳輸特點根據(jù)干擾的產(chǎn)生及傳輸特點, ,在硬件上可以采取在硬件上可以

31、采取以下措施以下措施: :(1 1)硬件屏蔽。)硬件屏蔽。將系統(tǒng)安裝在對電磁輻射干擾具有屏將系統(tǒng)安裝在對電磁輻射干擾具有屏蔽作用的金屬機箱中蔽作用的金屬機箱中, ,并進行正確接地并進行正確接地, ,可以有效地抑可以有效地抑制強電設(shè)備產(chǎn)生的空間輻射干擾。制強電設(shè)備產(chǎn)生的空間輻射干擾。(2 2)光電隔離。)光電隔離。對于開關(guān)量信號用光電耦合器隔離以對于開關(guān)量信號用光電耦合器隔離以后再進行輸入后再進行輸入/ /輸出輸出, ,對于模擬量信號可選用光電隔離對于模擬量信號可選用光電隔離器或變壓器隔離后再進行輸入器或變壓器隔離后再進行輸入/ /輸出輸出, ,并使用雙絞線或并使用雙絞線或屏蔽線進行信號傳輸屏蔽

32、線進行信號傳輸, ,這樣就可以有效地克服信號傳這樣就可以有效地克服信號傳輸通道帶來的干擾。輸通道帶來的干擾。(3 3)電源濾波。)電源濾波。對于來自電源的干擾對于來自電源的干擾, ,可采用低通濾波可采用低通濾波器以及帶有屏蔽層的電源變壓器來進行抑制。器以及帶有屏蔽層的電源變壓器來進行抑制。2021/3/2727(4 4)電源去耦。)電源去耦。對于系統(tǒng)中每一片集成電路對于系統(tǒng)中每一片集成電路, ,在電源在電源和和地之間都加上去耦電容地之間都加上去耦電容, ,既是本芯片的蓄能電容既是本芯片的蓄能電容, ,還能抑還能抑制高頻噪聲。制高頻噪聲。(5 5)在滿足要求的前提下盡量用較低的時鐘頻率和低在滿足

33、要求的前提下盡量用較低的時鐘頻率和低頻的器件。頻的器件。(6 6)合理布置元件在線路板上的位置合理布置元件在線路板上的位置, ,把模擬電路、高把模擬電路、高速數(shù)字電路和產(chǎn)生噪聲的功率驅(qū)動部分合理地分開速數(shù)字電路和產(chǎn)生噪聲的功率驅(qū)動部分合理地分開, ,各各部件之間的引線盡量短部件之間的引線盡量短, ,對各種輸入對各種輸入/ /輸出線分類打把輸出線分類打把, ,以減少寄生電容的干擾。以減少寄生電容的干擾。(7 7)系統(tǒng)中芯片的未用端不要懸空系統(tǒng)中芯片的未用端不要懸空, ,應(yīng)根據(jù)實際情況接應(yīng)根據(jù)實際情況接到電源端、地端或已用端。到電源端、地端或已用端。(8 8)盡量不用盡量不用ICIC插座插座, ,

34、而將集成電路直接焊接在電路板而將集成電路直接焊接在電路板上。上。 2021/3/27283 3、軟件抗干擾措施、軟件抗干擾措施(1 1)在程序中插入空操作指令實現(xiàn)指令冗余。系統(tǒng)在工在程序中插入空操作指令實現(xiàn)指令冗余。系統(tǒng)在工作時容易因干擾而使作時容易因干擾而使PCPC指向程序存儲器的非代碼區(qū)指向程序存儲器的非代碼區(qū), ,從從而導(dǎo)致而導(dǎo)致“死機死機”。為此可以在程序中插入一些單字節(jié)的。為此可以在程序中插入一些單字節(jié)的空操作指令空操作指令NOPNOP, ,失控的程序遇到該指令后得到調(diào)整而轉(zhuǎn)失控的程序遇到該指令后得到調(diào)整而轉(zhuǎn)入正常。入正常。(2 2)對未用的中斷向量進行處理。在程序中對未用的中對未用

35、的中斷向量進行處理。在程序中對未用的中斷都編寫出相應(yīng)的錯誤處理程序斷都編寫出相應(yīng)的錯誤處理程序, ,若因干擾觸發(fā)了這些若因干擾觸發(fā)了這些中斷中斷, ,則執(zhí)行完簡單的出錯處理程序后可以正常返回。則執(zhí)行完簡單的出錯處理程序后可以正常返回。(3 3)采用超時判斷克服程序的死鎖。在系統(tǒng)的數(shù)據(jù)采集采用超時判斷克服程序的死鎖。在系統(tǒng)的數(shù)據(jù)采集部分部分, ,如如A/DA/D轉(zhuǎn)換結(jié)果采用查詢方式讀取轉(zhuǎn)換結(jié)果采用查詢方式讀取, ,若因干擾使若因干擾使A/DA/D轉(zhuǎn)換結(jié)束標(biāo)志無效轉(zhuǎn)換結(jié)束標(biāo)志無效, ,程序就會進入死循環(huán)。針對類似情程序就會進入死循環(huán)。針對類似情況況, ,可在程序中采用超時判斷可在程序中采用超時判斷

36、, ,若系統(tǒng)在一定的時間內(nèi)采若系統(tǒng)在一定的時間內(nèi)采不到有效的標(biāo)志不到有效的標(biāo)志, ,就自動放棄本次采樣就自動放棄本次采樣, ,從而避免程序死從而避免程序死鎖的發(fā)生。鎖的發(fā)生。2021/3/2729(4 4)采用軟件陷阱。當(dāng)程序因干擾而采用軟件陷阱。當(dāng)程序因干擾而“跑飛跑飛”時時, ,可在非程序區(qū)設(shè)置陷阱可在非程序區(qū)設(shè)置陷阱, ,強迫強迫PCPC進入一個指定的地址進入一個指定的地址, ,執(zhí)行一段專門對死機進行處理的程序執(zhí)行一段專門對死機進行處理的程序, ,使系統(tǒng)恢復(fù)正使系統(tǒng)恢復(fù)正常。軟件陷阱可安排在未使用的中斷區(qū)和未使用的常。軟件陷阱可安排在未使用的中斷區(qū)和未使用的大片大片ROMROM空間空間,

37、 ,可由以下三條指令構(gòu)成可由以下三條指令構(gòu)成: :NOPNOPNOPNOPLJMP ERRLJMP ERR2021/3/2730(5 5)采用看門狗。當(dāng)程序采用看門狗。當(dāng)程序“跑飛跑飛”而前述方法又沒有而前述方法又沒有捕捉到時捕捉到時, ,可以用看門狗來恢復(fù)系統(tǒng)的正常運行。具可以用看門狗來恢復(fù)系統(tǒng)的正常運行。具體設(shè)計時可以用軟件實現(xiàn)體設(shè)計時可以用軟件實現(xiàn), ,也可以用專用的看門狗芯也可以用專用的看門狗芯片如片如MAX693MAX693、X25045X25045等來實現(xiàn)。等來實現(xiàn)。軟件方法軟件方法利是用單片利是用單片機中未用的定時器進行定時機中未用的定時器進行定時, ,在主程序每一次循環(huán)的在主程

38、序每一次循環(huán)的特定時刻刷新定時器的時間常數(shù)特定時刻刷新定時器的時間常數(shù), ,若定時器因系統(tǒng)死若定時器因系統(tǒng)死機而得不到刷新機而得不到刷新, ,就會產(chǎn)生溢出而引起中斷就會產(chǎn)生溢出而引起中斷, ,在其中斷在其中斷服務(wù)程序中進行出錯處理后轉(zhuǎn)入正常運行??撮T狗芯服務(wù)程序中進行出錯處理后轉(zhuǎn)入正常運行??撮T狗芯片也相當(dāng)于定時器片也相當(dāng)于定時器, ,系統(tǒng)在每一次循環(huán)中用一根口線系統(tǒng)在每一次循環(huán)中用一根口線使芯片復(fù)位使芯片復(fù)位, ,若芯片因系統(tǒng)異常而得不到復(fù)位若芯片因系統(tǒng)異常而得不到復(fù)位, ,其接到其接到MCUMCU復(fù)位端的溢出信號就能使系統(tǒng)恢復(fù)正常運行。復(fù)位端的溢出信號就能使系統(tǒng)恢復(fù)正常運行。2021/3/

39、2731(6)采用數(shù)字濾波。為了提高數(shù)據(jù)采集的可靠性采用數(shù)字濾波。為了提高數(shù)據(jù)采集的可靠性, ,減小減小虛假信息的影響虛假信息的影響, ,可以采用數(shù)字濾波的方法可以采用數(shù)字濾波的方法, ,如程序判斷如程序判斷濾波、中值濾波、滑動平均值濾波、防脈沖干擾平均值濾波、中值濾波、滑動平均值濾波、防脈沖干擾平均值濾波、一階滯后濾波等。也可以對數(shù)據(jù)進行非線性補償濾波、一階滯后濾波等。也可以對數(shù)據(jù)進行非線性補償和誤差修正和誤差修正, ,提高數(shù)據(jù)精度。提高數(shù)據(jù)精度。2021/3/2732單片機系統(tǒng)的故障診斷 v(1 1)同類比較法。)同類比較法。v(2 2)分段檢查法。)分段檢查法。v(3 3)隔離壓縮法。)

40、隔離壓縮法。v(4 4)故障跟蹤法。)故障跟蹤法。v(5 5)振動加固法。)振動加固法。v(6 6)拉偏檢測法。)拉偏檢測法。v(7 7)直接查找法。)直接查找法。2021/3/2733系統(tǒng)級故障診斷 v在單片機系統(tǒng)的電氣連接沒有問題的條件下在單片機系統(tǒng)的電氣連接沒有問題的條件下, ,可以可以進一步利用程序存儲器中固化的系統(tǒng)自檢程序?qū)M一步利用程序存儲器中固化的系統(tǒng)自檢程序?qū)ο到y(tǒng)進行預(yù)定的幾項檢查。對系統(tǒng)故障進行檢查系統(tǒng)進行預(yù)定的幾項檢查。對系統(tǒng)故障進行檢查時時, ,一個十分有效的辦法是利用系統(tǒng)本身的自檢功一個十分有效的辦法是利用系統(tǒng)本身的自檢功能能, ,包括指令系統(tǒng)自檢、數(shù)據(jù)存儲器自檢、程序

41、存包括指令系統(tǒng)自檢、數(shù)據(jù)存儲器自檢、程序存儲器自檢、儲器自檢、I/OI/O接口自檢、傳感器裝置自檢、調(diào)節(jié)接口自檢、傳感器裝置自檢、調(diào)節(jié)機構(gòu)自檢等。自檢手段不僅可用自檢軟件機構(gòu)自檢等。自檢手段不僅可用自檢軟件, ,而且還而且還可以配置一定的自檢硬件電路來實現(xiàn)系統(tǒng)自檢??梢耘渲靡欢ǖ淖詸z硬件電路來實現(xiàn)系統(tǒng)自檢。尤其是對于控制系統(tǒng)的末級部分尤其是對于控制系統(tǒng)的末級部分, ,利用硬件手段效利用硬件手段效果更好。果更好。2021/3/273412.5 12.5 設(shè)計實例設(shè)計實例: :多功能數(shù)字鐘多功能數(shù)字鐘12.5.1 12.5.1 設(shè)計要求設(shè)計要求 設(shè)計制作具有下列功能的數(shù)字鐘設(shè)計制作具有下列功能的數(shù)

42、字鐘: :l l 自動計時自動計時, ,由由6 6位位LEDLED顯示器顯示時、分和秒顯示器顯示時、分和秒; ;l l 具備校準(zhǔn)功能具備校準(zhǔn)功能, ,可以直接由可以直接由0-90-9數(shù)字鍵設(shè)置當(dāng)前時間數(shù)字鍵設(shè)置當(dāng)前時間; ;l l 具備定時鬧鐘功能。具備定時鬧鐘功能。 2021/3/273512.5.2 12.5.2 設(shè)計方案設(shè)計方案1. 計時方案計時方案 利用單片機內(nèi)部的定時利用單片機內(nèi)部的定時/計數(shù)器進行中斷定時計數(shù)器進行中斷定時,配合軟配合軟件延時實現(xiàn)時、分和秒的計時。件延時實現(xiàn)時、分和秒的計時。2. 鍵盤鍵盤/顯示方案顯示方案 設(shè)計方案中采用設(shè)計方案中采用43鍵盤實現(xiàn)輸入設(shè)置鍵盤實現(xiàn)輸

43、入設(shè)置,采用動態(tài)顯采用動態(tài)顯示方式實現(xiàn)示方式實現(xiàn)LED顯示顯示,如圖所示。如圖所示。2021/3/27363、控制方案、控制方案(1 1)時間顯示)時間顯示 上電后系統(tǒng)自動進入時鐘顯示上電后系統(tǒng)自動進入時鐘顯示,從從00:00:00開始計時開始計時,此此時可以設(shè)定當(dāng)前時間。時可以設(shè)定當(dāng)前時間。(2 2)時間調(diào)整)時間調(diào)整 按下按下C/R鍵(時間設(shè)定鍵(時間設(shè)定/啟動計時鍵)啟動計時鍵),系統(tǒng)停止計時系統(tǒng)停止計時,進進入時間設(shè)定狀態(tài)入時間設(shè)定狀態(tài),系統(tǒng)保持原有顯示系統(tǒng)保持原有顯示,等待鍵入當(dāng)前時間等待鍵入當(dāng)前時間,按按下下09數(shù)字鍵可以順序設(shè)置時、分和秒數(shù)字鍵可以順序設(shè)置時、分和秒,并在相應(yīng)的并

44、在相應(yīng)的LED上上顯示設(shè)置值顯示設(shè)置值,6位設(shè)置完畢后系統(tǒng)將從設(shè)定后的時間開始計位設(shè)置完畢后系統(tǒng)將從設(shè)定后的時間開始計時顯示。時顯示。2021/3/2737(3 3)鬧鐘設(shè)置)鬧鐘設(shè)置 按下按下ALM鍵(鬧鐘設(shè)置鍵(鬧鐘設(shè)置/啟鬧啟鬧/停鬧鍵)停鬧鍵),系統(tǒng)繼續(xù)計時系統(tǒng)繼續(xù)計時,顯示顯示00:00:00,進入鬧鐘設(shè)置狀態(tài)進入鬧鐘設(shè)置狀態(tài),等待鍵入啟鬧時間等待鍵入啟鬧時間,按下按下0-9數(shù)字鍵可以順序進行相應(yīng)的時間設(shè)置數(shù)字鍵可以順序進行相應(yīng)的時間設(shè)置,并在相應(yīng)的并在相應(yīng)的LED上顯示設(shè)置值上顯示設(shè)置值,6位設(shè)置完畢后系統(tǒng)啟動定時啟鬧功能位設(shè)置完畢后系統(tǒng)啟動定時啟鬧功能,并并恢復(fù)時間顯示。定時時間

45、到恢復(fù)時間顯示。定時時間到,蜂鳴器鳴叫蜂鳴器鳴叫,直至重新按下直至重新按下ALM鍵停鬧鍵停鬧,并取消鬧鐘設(shè)置。并取消鬧鐘設(shè)置。2021/3/273812.5.3 硬件原理硬件原理 數(shù)字鐘電路由單片機、可編程數(shù)字鐘電路由單片機、可編程I/O接口芯片接口芯片8155、43鍵盤輸入電路、鍵盤輸入電路、6位位LED顯示輸出電路及蜂鳴器啟顯示輸出電路及蜂鳴器啟鬧電路組成鬧電路組成,如圖如圖125所示為系統(tǒng)電路原理圖。所示為系統(tǒng)電路原理圖。 12.單片機單片機: :選用選用89C51可滿足要求??蓾M足要求。 2I/OI/O接口電路接口電路: 采用采用8155作為鍵盤作為鍵盤/顯示接口電路顯示接口電路,其中

46、其中8155的的A口作口作為為6位位LED顯示的位選口(低電平有效)顯示的位選口(低電平有效),B口作為段選口作為段選口(高電平有效)口(高電平有效),C口的低口的低3位為鍵盤輸入口位為鍵盤輸入口,對應(yīng)對應(yīng)02行行,A口同時用做鍵盤的列掃描口。由系統(tǒng)電路原理圖可口同時用做鍵盤的列掃描口。由系統(tǒng)電路原理圖可知知:2021/3/2739 8155的地址分配如下的地址分配如下: 控制寄存器控制寄存器:8000H,定義為定義為PORT A口口:8001H,定義為定義為PORTA B口口:8002H,定義為定義為PORTB C口口:8003H,定義為定義為PORTC2021/3/2740 3 4 43

47、3鍵盤輸入電路鍵盤輸入電路: 采 用采 用 4 3 鍵 盤鍵 盤 , 包 括包 括 0 9 十 個 數(shù) 字 鍵 ( 鍵 號 為十 個 數(shù) 字 鍵 ( 鍵 號 為00H09H)、)、C/R鍵(時間設(shè)定鍵(時間設(shè)定/啟動計時鍵啟動計時鍵,鍵號為鍵號為0AH)和和ALM鍵(鬧鐘設(shè)置鍵(鬧鐘設(shè)置/啟鬧啟鬧/停鬧鍵停鬧鍵,鍵號為鍵號為0BH)。)。 4 LEDLED數(shù)碼顯示電路數(shù)碼顯示電路: : 采用共陰極數(shù)碼管實現(xiàn)時鐘顯示采用共陰極數(shù)碼管實現(xiàn)時鐘顯示,6位位LED從左到右依從左到右依次顯示時、分和秒次顯示時、分和秒,采用采用24小時計時。小時計時。 5 蜂鳴器啟鬧電路蜂鳴器啟鬧電路: : 由由89C5

48、1的的P12.0控制驅(qū)動蜂鳴器(低電平有效)。控制驅(qū)動蜂鳴器(低電平有效)。2021/3/2741圖圖12125 數(shù)字鐘硬件電路圖數(shù)字鐘硬件電路圖 2021/3/274212.5.4 程序設(shè)計程序設(shè)計1.系統(tǒng)資源分配系統(tǒng)資源分配 定時器定時器T0按照定時方式按照定時方式1工作工作,片內(nèi)片內(nèi)RAM及標(biāo)志位的分配與及標(biāo)志位的分配與定義見表定義見表121。地地 址址功功 能能名名 稱稱初始值初始值30H-35H顯示緩沖區(qū),時、分、秒顯示緩沖區(qū),時、分、秒(高位在前(高位在前)DISP0-DISP500H3CH-3FH計時緩沖區(qū),時、分、秒、計時緩沖區(qū),時、分、秒、100msHOUR,MIN,SEC,

49、MSEC00H40H-42H鬧鐘值寄存區(qū),時、分、鬧鐘值寄存區(qū),時、分、秒秒AHOUR,AMIN,ASECFFH50H-7FH堆棧區(qū)堆棧區(qū)PSW.5計時顯示允許位(計時顯示允許位(1:禁止,:禁止,0:允許):允許)F00PSW.1鬧鐘標(biāo)志位(鬧鐘標(biāo)志位(1:正在鬧響,:正在鬧響,0:未鬧響):未鬧響)F102021/3/27432主要程序設(shè)計主要程序設(shè)計(1 1)主程序)主程序 實現(xiàn)初始化與鍵盤監(jiān)控實現(xiàn)初始化與鍵盤監(jiān)控,流程圖如圖流程圖如圖126所示。所示。(2 2)定時器)定時器T0T0中斷服務(wù)程序中斷服務(wù)程序 實現(xiàn)計時功能實現(xiàn)計時功能,同時刷新計時緩沖區(qū)。流程圖如圖同時刷新計時緩沖區(qū)。流

50、程圖如圖127所示。所示。 定時器定時器T0每隔每隔100 ms溢出中斷一次(設(shè)系統(tǒng)使用溢出中斷一次(設(shè)系統(tǒng)使用6 MHz晶振晶振,定時器定時器T0工作在方式工作在方式1的定時器初值為的定時器初值為3CB0H,即即TH0=3CH,TL0=0B0H),每循環(huán)中斷每循環(huán)中斷10次則延時時間為次則延時時間為1s,重復(fù)重復(fù)60次為次為1分分,分計時分計時60次為次為1小時小時,小時計時小時計時24次則時間次則時間重新回到重新回到00:00:00。2021/3/2744圖圖12126 主程序流程圖主程序流程圖 圖圖127 計時流程圖計時流程圖2021/3/2745(3 3)時間設(shè)置與鬧鐘設(shè)置子程序)時間

51、設(shè)置與鬧鐘設(shè)置子程序 實現(xiàn)當(dāng)前時間及定時啟鬧時間的鍵盤輸入設(shè)置。流程實現(xiàn)當(dāng)前時間及定時啟鬧時間的鍵盤輸入設(shè)置。流程圖如圖圖如圖128所示。所示。 圖128 時間設(shè)置/鬧鐘定時流程圖 其功能是用鍵盤設(shè)置子程序?qū)㈡I入的其功能是用鍵盤設(shè)置子程序?qū)㈡I入的6位時間值送入鍵盤設(shè)置緩沖區(qū)位時間值送入鍵盤設(shè)置緩沖區(qū),用合字用合字子程序?qū)㈡I盤設(shè)置緩沖區(qū)中的子程序?qū)㈡I盤設(shè)置緩沖區(qū)中的6位位BCD碼合并為碼合并為3位壓縮位壓縮BCD碼碼,送入計時緩沖送入計時緩沖區(qū)或鬧鐘值寄存區(qū)。若鍵盤輸入的小時區(qū)或鬧鐘值寄存區(qū)。若鍵盤輸入的小時值大于值大于23,分和秒值大于分和秒值大于59,則不合法則不合法,將將取消本次設(shè)置取消本

52、次設(shè)置,清零重新開始計時。清零重新開始計時。2021/3/2746(4 4)鍵盤掃描子程序)鍵盤掃描子程序 圖圖129 鍵盤掃描程序流程圖鍵盤掃描程序流程圖 作用作用: 判斷是否有鍵判斷是否有鍵按下按下,無鍵按下則無鍵按下則循環(huán)等待循環(huán)等待,有鍵按有鍵按下則求取鍵號后下則求取鍵號后返回。流程圖如返回。流程圖如圖圖129所示。所示。2021/3/2747圖圖1210 1210 顯示程序流程圖顯示程序流程圖(5 5)顯示子程序)顯示子程序 實現(xiàn)顯示緩沖區(qū)的實現(xiàn)顯示緩沖區(qū)的6位位BCD碼的動態(tài)掃描方式顯示。碼的動態(tài)掃描方式顯示。2021/3/2748(6 6)定時比較子程序)定時比較子程序 實現(xiàn)當(dāng)前

53、時間(計時實現(xiàn)當(dāng)前時間(計時緩沖區(qū)的值)與預(yù)設(shè)的啟緩沖區(qū)的值)與預(yù)設(shè)的啟鬧時間(鬧鐘設(shè)置寄存區(qū)鬧時間(鬧鐘設(shè)置寄存區(qū)的值)的比較的值)的比較, ,若二者完全若二者完全相同時相同時, ,啟動蜂鳴器鳴叫并啟動蜂鳴器鳴叫并置位鬧鐘標(biāo)志位。當(dāng)重新置位鬧鐘標(biāo)志位。當(dāng)重新按下按下ALMALM鍵時鍵時, ,停鬧并清零停鬧并清零鬧鐘標(biāo)志。流程圖如右圖鬧鐘標(biāo)志。流程圖如右圖所示。所示。2021/3/2749(7 7)其它輔助功能子程序)其它輔助功能子程序 鍵盤設(shè)置子程序鍵盤設(shè)置子程序:將鍵入的將鍵入的6位時間值送入鍵盤設(shè)位時間值送入鍵盤設(shè)置緩沖區(qū)置緩沖區(qū),流程圖見圖流程圖見圖1212所示。所示。 拆字子程序拆字

54、子程序:將將3字節(jié)計時緩沖區(qū)中時、分和秒字節(jié)計時緩沖區(qū)中時、分和秒壓縮壓縮BCD碼拆分為碼拆分為6字節(jié)字節(jié)BCD碼并刷新顯示緩沖區(qū)。碼并刷新顯示緩沖區(qū)。 合字子程序合字子程序:將鍵盤設(shè)置緩沖區(qū)中將鍵盤設(shè)置緩沖區(qū)中6位位BCD碼合碼合并為并為3位壓縮位壓縮BCD碼碼,送入計時緩沖區(qū)或鬧鐘值寄存區(qū)送入計時緩沖區(qū)或鬧鐘值寄存區(qū),同時檢測時間值的合法性。同時檢測時間值的合法性。2021/3/2750圖圖1212 鍵盤設(shè)置子程鍵盤設(shè)置子程序流程圖序流程圖 2021/3/27513 3源程序清單源程序清單主程序主程序: :ORGORG0000H0000HAJMPAJMP MAIN MAINORGORG 0

55、00BH000BHAJMPAJMP CLOCK CLOCKORGORG 0030H0030HPORTPORT EQU 8000HEQU 8000HPORTA PORTA EQUEQU8001H8001HPORTB PORTB EQUEQU8002H8002HPORTCEQU 8003H DISP0 DISP0 EQU EQU 30H30HDISP1 DISP1 EQU EQU 31H31H2021/3/2752DISP2 DISP2 EQU EQU 32H32HDISP3 DISP3 EQU EQU 33H33HDISP4 DISP4 EQU 34HEQU 34HDISP5 DISP5 EQU

56、 35HEQU 35HHOUR HOUR EQU EQU 3CH3CHMIN MIN EQU EQU 3DH3DHSEC SEC EQU 3EHEQU 3EHMSEC MSEC EQU 3FHEQU 3FHAHOUR AHOUR EQU 40HEQU 40HAMINAMINEQU 41HEQU 41HASEC ASEC EQU 42HEQU 42HF1 F1 BIT PSW.1 BIT PSW.1 2021/3/2753MAINMAIN: :MOV MOV SPSP, ,#50H #50H ; ;設(shè)置堆棧區(qū)設(shè)置堆棧區(qū) MOVX DPTRMOVX DPTR, ,#PORT#PORT ; ;815

57、58155初始化初始化 MOVMOVA A, ,#03H#03H MOVX DPTR MOVX DPTR, ,A A CLR CLR F1F1 ; ;清零鬧鐘標(biāo)志位清零鬧鐘標(biāo)志位 CLRCLRF0F0 ; ;允許計時顯示允許計時顯示 MOV AHOURMOV AHOUR, ,#0FFH#0FFH ; ;鬧鐘值寄存區(qū)置初值鬧鐘值寄存區(qū)置初值 MOV AMINMOV AMIN, ,#0FFH #0FFH MOV ASEC MOV ASEC, ,#0FFH#0FFH MOV R7 MOV R7, ,#10H #10H ; ;顯示緩沖區(qū)、計時緩沖區(qū)清零顯示緩沖區(qū)、計時緩沖區(qū)清零 MOV R0MOV R

58、0, ,#DISP0#DISP0 CLR A CLR A2021/3/2754LOOPLOOP: : MOV R0MOV R0, ,A A INC INCR0R0 DJNZ R7, ,LOOP MOV TMODMOV TMOD, ,#01H#01H ; ;定時器定時器T0T0初始化初始化 MOV TL0MOV TL0, ,#0B0H#0B0H MOV TH0, ,#3CH SETB TR0 ;啟動定時器啟動定時器 SETB EA ;開中斷開中斷 SETB ET0BEGIN:ACALLALARM ;調(diào)用定時比較調(diào)用定時比較 ACALLKEYSCAN;調(diào)用鍵盤掃描調(diào)用鍵盤掃描 CJNEA,#0AH

59、,NEXT1;是是C/R鍵否鍵否? CLR TR0 ;暫時停止計時暫時停止計時 2021/3/2755 MOV R1, ,#HOUR ; ;地址指針指向計時地址指針指向計時 緩沖區(qū)首地址緩沖區(qū)首地址 AJMPAJMP MODMODNEXT1NEXT1: :CJNE ACJNE A, ,#0BH#0BH, ,BEGINBEGIN; ;是是ALMALM鍵否鍵否? ? JBJBF1F1, ,NEXT2NEXT2; ;鬧鐘正在鬧響否鬧鐘正在鬧響否? ? MOV R1MOV R1, ,#AHOUR#AHOUR; ;地址指針指向鬧鐘值寄存區(qū)地址指針指向鬧鐘值寄存區(qū) 首地址首地址MODMOD: : SETB

60、SETBF0F0; ;禁止顯示計時時間禁止顯示計時時間 ACALL MODIFY ACALL MODIFY ; ;調(diào)用時間設(shè)置調(diào)用時間設(shè)置/ /鬧鐘定時程序鬧鐘定時程序 SETBSETB TR0 TR0 ; ;重新開始計時重新開始計時 CLR CLR F0 F0 ; ;恢復(fù)顯示計時時間恢復(fù)顯示計時時間 AJMP AJMP BEGINBEGIN2021/3/2756NEXT2NEXT2: : SETBSETBP12.0 P12.0 ; ;鬧鐘正在鬧響鬧鐘正在鬧響, ,停鬧停鬧 CLRCLRF1F1; ;清零鬧鐘標(biāo)志清零鬧鐘標(biāo)志 AJMPAJMPBEGIN BEGIN 定時器定時器T0T0中斷服務(wù)

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論