D-幻燈片定稿-第11章_第1頁(yè)
D-幻燈片定稿-第11章_第2頁(yè)
D-幻燈片定稿-第11章_第3頁(yè)
D-幻燈片定稿-第11章_第4頁(yè)
D-幻燈片定稿-第11章_第5頁(yè)
已閱讀5頁(yè),還剩59頁(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)介

第11章單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)本章要點(diǎn):n

單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)開(kāi)發(fā)流程n

單片機(jī)可靠性設(shè)計(jì)主要技術(shù)措施11.1應(yīng)用系統(tǒng)設(shè)計(jì)11.1.1系統(tǒng)總體設(shè)計(jì)確定單片機(jī)控制系統(tǒng)的總體方案,是系統(tǒng)設(shè)計(jì)中十分重要的一步。合理的總體設(shè)計(jì)來(lái)自對(duì)于系統(tǒng)要求的全面分析和對(duì)于實(shí)現(xiàn)方法的正確選擇。一般說(shuō)來(lái),系統(tǒng)的總體設(shè)計(jì)步驟如下:1.全面分析任務(wù)對(duì)系統(tǒng)的要求其內(nèi)容主要包括以下幾個(gè)方面:(1)需要檢測(cè)的信號(hào)有哪些,變換的快慢怎樣,對(duì)檢測(cè)精度有何要求。相應(yīng)的確定檢測(cè)方法和檢測(cè)元件。(2)執(zhí)行機(jī)構(gòu)是什么,需要輸出幾個(gè)怎樣的控制信號(hào)——模擬量還是數(shù)字量、功率有多大、有何特殊要求、相應(yīng)的確定輸入輸出通道的結(jié)構(gòu)。(3)對(duì)控制的精度有何要求,應(yīng)采用何種控制算法。(4)對(duì)輸出、通信等方面有何要求,相應(yīng)的實(shí)現(xiàn)方法是什么。(5)系統(tǒng)操作方式,比如如何啟動(dòng)和停止,如何設(shè)置參數(shù)等。(6)系統(tǒng)是否有進(jìn)一步擴(kuò)展的需要,輸入/輸出通道和存儲(chǔ)器容量是否要適當(dāng)留下余量。(7)系統(tǒng)的工作環(huán)境如何,是否需要加強(qiáng)抗干擾設(shè)施??刂葡到y(tǒng)通常都是為某種生產(chǎn)設(shè)備或生產(chǎn)過(guò)程服務(wù)的。在分析對(duì)于系統(tǒng)控制的要求時(shí),必須了解有關(guān)設(shè)備的運(yùn)行性能和工藝過(guò)程。實(shí)際設(shè)計(jì)控制系統(tǒng)時(shí),還往往涉及到電氣設(shè)備的主電路,如電動(dòng)機(jī)等,它們的工作方式與實(shí)際需要有關(guān),對(duì)此必須考慮到。另外,在進(jìn)行分析研究的過(guò)程中,還必須充分了解這類系統(tǒng)在國(guó)內(nèi)外的現(xiàn)有狀況,努力借鑒已有的經(jīng)驗(yàn),盡可能使用定型的產(chǎn)品,避免低水平的重復(fù)開(kāi)發(fā)。2.確定系統(tǒng)的構(gòu)成類型單片機(jī)應(yīng)用系統(tǒng)的構(gòu)成類型包括采用從元件級(jí)設(shè)計(jì)系統(tǒng)、利用應(yīng)用板構(gòu)成系統(tǒng)和通過(guò)購(gòu)置模塊式工業(yè)控制單片機(jī)組成系統(tǒng)三種,確定采用何種構(gòu)成是系統(tǒng)總體設(shè)計(jì)中的重大決策。在進(jìn)行應(yīng)用系統(tǒng)開(kāi)發(fā)的實(shí)際工作中,不一定要對(duì)系統(tǒng)作全面地了解分析之后才確定系統(tǒng)的構(gòu)成類型,而只需根據(jù)系統(tǒng)某些主要的要求即可確定應(yīng)采用何種構(gòu)成。這些主要的要求如:是否需要屏幕顯示,有怎樣的打印要求,微機(jī)工作環(huán)境如何,以及經(jīng)費(fèi)預(yù)算和工期等。據(jù)此結(jié)合單片機(jī)控制系統(tǒng)三種構(gòu)成類型的特點(diǎn),便可確定采用哪一種類型更為合理。3.劃分硬件和軟件任務(wù),畫(huà)出系統(tǒng)結(jié)構(gòu)框圖在分析系統(tǒng)要求和確定系統(tǒng)類型之后,就要?jiǎng)澐钟布蛙浖娜蝿?wù),完成系統(tǒng)結(jié)構(gòu)設(shè)計(jì)。單片機(jī)的硬件和軟件是相互結(jié)合而工作的,有些任務(wù)必須由硬件來(lái)實(shí)現(xiàn),另外有些任務(wù)則必須由軟件來(lái)實(shí)現(xiàn)。但是也有一些任務(wù)既可以由硬件來(lái)完成,也可以由軟件來(lái)完成,例如定時(shí)、邏輯控制等,這就要綜合考慮確定。一般來(lái)說(shuō),增加硬件會(huì)提高成本,但能夠簡(jiǎn)化設(shè)計(jì)程序,且實(shí)用性好。反之,加重軟件任務(wù),會(huì)增加編程調(diào)試工作量,但能降低成本。劃分硬件和軟件任務(wù)時(shí),要按照各個(gè)部分列出其任務(wù)清單。例如數(shù)據(jù)采集部分,硬件的任務(wù)是提供測(cè)量電路,包括傳感器、信號(hào)轉(zhuǎn)換和放大電路、A/D轉(zhuǎn)換器等;軟件的任務(wù)則為

按照一定的采樣周期,進(jìn)行定時(shí)采樣,把數(shù)據(jù)存入指定區(qū)域。根據(jù)對(duì)硬件任務(wù)和軟件任務(wù)的劃分,可以畫(huà)出系統(tǒng)的結(jié)構(gòu)框圖。系統(tǒng)結(jié)構(gòu)框圖包括硬件框圖和應(yīng)用程序結(jié)構(gòu)框圖??驁D畫(huà)成模塊式,作為下一步硬件設(shè)計(jì)和軟件設(shè)計(jì)的基礎(chǔ)。如果一個(gè)微機(jī)控制系統(tǒng)(包括智能儀表等)確定采用單片機(jī),那么系統(tǒng)構(gòu)成一般只限于兩種類型——從元件級(jí)設(shè)計(jì)系統(tǒng)或利用應(yīng)用板(單片機(jī))構(gòu)成系統(tǒng)。在這里我們只講述從元件級(jí)設(shè)計(jì)系統(tǒng)。所謂從元件級(jí)進(jìn)行系統(tǒng)設(shè)計(jì),即根據(jù)任務(wù)需求分析,選擇合適的單片機(jī),配置必需的存儲(chǔ)器、接口和外圍設(shè)備組成一個(gè)應(yīng)用系統(tǒng)。在完成總體設(shè)計(jì)之后,系統(tǒng)設(shè)計(jì)的任務(wù)便可細(xì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩部分。11.1.2硬件設(shè)計(jì)硬件設(shè)計(jì)的任務(wù)是根據(jù)總體設(shè)計(jì)給出的結(jié)構(gòu)框圖,逐一設(shè)計(jì)出每一個(gè)單元電路,最后組合起來(lái),成為完整的硬件系統(tǒng)。1.微處理器的選擇從元件級(jí)設(shè)計(jì)控制系統(tǒng),微處理器一般都選擇單片機(jī)。微處理器的主要性能指標(biāo)是位數(shù)、主頻、尋址能力、指令系統(tǒng)、內(nèi)部寄存器情況等。位數(shù)是重要指標(biāo),除了影響運(yùn)算精度以外,還關(guān)系到指令系統(tǒng)的功能、尋址能力以及操作速度。主頻影響操作速度。尋址能力決定可能的最大存儲(chǔ)容量。指令系統(tǒng)性能影響數(shù)據(jù)處理、輸入/輸出等操作功能以及編程的方便性。內(nèi)部寄存器的數(shù)量和功能也與操作方便性有關(guān)。此外,單片機(jī)都帶有一定數(shù)量的內(nèi)部RAM,還可能有內(nèi)部ROM或其他部件。對(duì)于工業(yè)控制系統(tǒng)來(lái)說(shuō),一般對(duì)于微處理器的運(yùn)算精度、數(shù)據(jù)處理功能、尋址能力和操作速度,沒(méi)有很高的要求。它的要求偏重于中斷系統(tǒng)、I/O口的數(shù)量和功能、內(nèi)部寄存器和存儲(chǔ)器的類型、容量以及是否集成A/D轉(zhuǎn)換器件等。因此,除了某些高精度快速系統(tǒng)需要采用16位單片機(jī)以外,對(duì)于一般控制系統(tǒng)來(lái)說(shuō),選擇8位單片機(jī)均能滿足要求。8位單片機(jī)的類型很多,計(jì)算機(jī)公司根據(jù)檢測(cè)和控制的需要,還在大力開(kāi)發(fā)新的產(chǎn)品,如增加片內(nèi)ROM的容量、集成高速A/D轉(zhuǎn)換器、附帶看門狗電路等,具有很大的選擇余地。

2.存儲(chǔ)器的配置

存儲(chǔ)器的配置任務(wù)是確定片外存儲(chǔ)器的類型和容量,選定存儲(chǔ)器型號(hào),設(shè)計(jì)擴(kuò)展電路。

在硬件設(shè)計(jì)階段,由于還沒(méi)有完成軟件設(shè)計(jì),無(wú)法準(zhǔn)確地估計(jì)所需存儲(chǔ)器的容量。這時(shí)可根據(jù)對(duì)控制系統(tǒng)的分析,憑借經(jīng)驗(yàn)大致地估算所需存儲(chǔ)器的容量,估算時(shí)應(yīng)留有一定的余量。

對(duì)于RAM和ROM,需分別確定容量。選擇存儲(chǔ)器芯片的型號(hào)時(shí),應(yīng)選擇常用型號(hào),盡量減少芯片數(shù)量,同時(shí)對(duì)于RAM還需考慮是否需要進(jìn)行掉電保護(hù)。3.輸入通道設(shè)計(jì)輸入通道的設(shè)計(jì)內(nèi)容是確定通道結(jié)構(gòu)和元件配置,合理選擇A/D轉(zhuǎn)換器和其他部件。作為實(shí)際控制系統(tǒng)的完整輸入通道,還包括信號(hào)的檢測(cè)和轉(zhuǎn)換環(huán)節(jié),在設(shè)計(jì)輸入通道時(shí)需要統(tǒng)一考慮。例如,對(duì)于溫度檢測(cè)和控制系統(tǒng),選用哪種測(cè)溫元件;若傳送距離較長(zhǎng),是采用電壓信號(hào)、電流信號(hào)還是頻率信號(hào)進(jìn)行傳送。另外,如果采用熱電偶作為檢測(cè)元件,其信號(hào)需要經(jīng)過(guò)放大,還有冷端補(bǔ)償和查分度表的問(wèn)題;如果采用熱電阻做測(cè)溫元件,則信號(hào)需要經(jīng)過(guò)轉(zhuǎn)換和放大,還有線性化等一系列問(wèn)題。這些既與輸入通道的硬件設(shè)計(jì)有關(guān),同時(shí)還涉及到軟件設(shè)計(jì)問(wèn)題。此外,在輸入通道設(shè)計(jì)中,必須采取適當(dāng)?shù)男盘?hào)隔離措施。4.輸出通道設(shè)計(jì)輸出通道的設(shè)計(jì)內(nèi)容也是要確定其通道結(jié)構(gòu)和元件配置,并合理選擇D/A轉(zhuǎn)換器和其他部件。輸出通道的特點(diǎn)是帶有功率驅(qū)動(dòng),要根據(jù)執(zhí)行機(jī)構(gòu)的需要,合理的選擇驅(qū)動(dòng)電路。這一部分有時(shí)也會(huì)涉及到電氣設(shè)備的主電路。另外,與輸入通道設(shè)計(jì)相同,輸出通道設(shè)計(jì)時(shí)也要注意采取適當(dāng)措施對(duì)信號(hào)進(jìn)行隔離以抗干擾。5.外圍電路設(shè)計(jì)(1)人機(jī)交互參數(shù)設(shè)定。任何控制系統(tǒng)中都需要人機(jī)交互界面,這其中有些參數(shù)可能需要人為設(shè)定。如實(shí)現(xiàn)某一輸入功能的按鍵、開(kāi)關(guān)等器件,通??筛鶕?jù)方便操作的原則來(lái)選用。(2)系統(tǒng)啟動(dòng)/停止等操作。為了實(shí)現(xiàn)系統(tǒng)的啟動(dòng)、停止和復(fù)位,要設(shè)置相應(yīng)的按鍵和開(kāi)關(guān)。另外,為了使生產(chǎn)設(shè)備在自動(dòng)控制系統(tǒng)出現(xiàn)故障的情況下能夠繼續(xù)運(yùn)行,一般需設(shè)置手動(dòng)操作開(kāi)關(guān),同時(shí)要有自動(dòng)/手動(dòng)切換環(huán)節(jié)。(3)顯示部分的設(shè)計(jì)。在簡(jiǎn)單應(yīng)用系統(tǒng)中,一般不需CRT顯示器,通常使用LED數(shù)碼管顯示器或LCD顯示器。設(shè)計(jì)時(shí)可根據(jù)要顯示的數(shù)據(jù)種類、數(shù)目和位數(shù),確定顯示方式和顯示數(shù)碼管的數(shù)量。當(dāng)用一組數(shù)碼管顯示多種數(shù)據(jù)時(shí),可以采取多種不同的顯示方式。例如自動(dòng)巡回顯示或由按鍵選擇顯示等。另外,還需根據(jù)實(shí)際需要確定系統(tǒng)采用動(dòng)態(tài)顯示還是靜態(tài)顯示。這些定下來(lái)后就可以著手設(shè)計(jì)顯示部分的電路。(4)打印。當(dāng)系統(tǒng)有打印要求時(shí),一般可采用安裝在操作面板上的微型打印機(jī)。首先要設(shè)計(jì)其接口電路,此外要確定打印操作方式——定時(shí)打印還是由開(kāi)關(guān)(按鍵)控制打印。若是后者,則需設(shè)置打印開(kāi)關(guān)。(5)報(bào)警。報(bào)警的方式通常有聲(如蜂鳴器)、光(信號(hào)燈)等,這些信號(hào)通常由開(kāi)關(guān)量輸出、經(jīng)驅(qū)動(dòng)電路進(jìn)行控制。另外,還可以采取在聲、光報(bào)警的同時(shí)在數(shù)碼管上顯示特殊字符或符號(hào)進(jìn)行報(bào)警的方法,符號(hào)的顯示一般由軟件完成。根據(jù)系統(tǒng)的報(bào)警需求,確定出報(bào)警的方式,從而設(shè)計(jì)出相應(yīng)的電路。(6)通信。若有通信需求,可利用單片機(jī)上的串行口來(lái)實(shí)現(xiàn)。6.硬件合成以上的各單元電路的設(shè)計(jì)完成之后,就可以進(jìn)行硬件合成了。所謂硬件合成即將各單元電路按照總體設(shè)計(jì)的硬件結(jié)構(gòu)框圖組合在一起,形成一個(gè)完整的硬件系統(tǒng)原理圖。在進(jìn)行硬件合成時(shí),應(yīng)注意以下幾點(diǎn):(1)根據(jù)輸入和輸出的信號(hào)需要,全面地安排微處理器的I/O口,查看是否夠用。如果不夠用,應(yīng)擴(kuò)展I/O口。擴(kuò)展I/O口(以及存儲(chǔ)器)之后,應(yīng)該校核微處理器總線的實(shí)際負(fù)載,必要時(shí)接入總線驅(qū)動(dòng)器。(2)檢查信號(hào)邏輯電平是否兼容。電路中可能兼有TTL和MOS器件,也可能有非標(biāo)準(zhǔn)的信號(hào)電平,若電平不兼容,就要加電平轉(zhuǎn)換電路。(3)從提高可靠性出發(fā),全面檢查電路設(shè)計(jì)。檢查抗干擾措施是否完備,考慮是否要設(shè)置“看門狗”電路,是否需要增加自檢環(huán)節(jié)等。(4)考慮電源系統(tǒng)。相互隔離部分的電路必須采用各自獨(dú)立的電源和地線,切不可混用。同一部分電路的電源,其電壓種類應(yīng)盡量減少。對(duì)于穩(wěn)壓性能有特殊要求的電路,如A/D轉(zhuǎn)換器的基準(zhǔn)電壓,要確定是否需要單獨(dú)設(shè)置。(5)合理安排地線系統(tǒng)。確定哪些單元電路的地線可以相連,哪些地線接機(jī)殼、接大地或浮空。7.電源配置在確定系統(tǒng)所用的幾種直流電源后,分別估算出其所需功率。如有合適的微機(jī)用整流產(chǎn)品,直接選用即可。在交流側(cè)應(yīng)采用濾波裝置,必要時(shí)加隔離變壓器和交流穩(wěn)壓器。如果沒(méi)有現(xiàn)成產(chǎn)品可用,就要自行設(shè)計(jì)電源變壓器和整流穩(wěn)壓電路。硬件設(shè)計(jì)除了上述七部分內(nèi)容以外,還可能需要進(jìn)行印制電路板、操作面板的設(shè)計(jì)等,這些內(nèi)容都有相關(guān)專業(yè)資料介紹,在此不再贅述。11.1.3軟件設(shè)計(jì)軟件設(shè)計(jì)是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)中最重要、最基本的工作環(huán)節(jié)之一。軟件設(shè)計(jì)的任務(wù)是在系統(tǒng)設(shè)計(jì)和硬件設(shè)計(jì)的基礎(chǔ)上,根據(jù)要求確定程序結(jié)構(gòu)和劃分功能模塊(包括主程序模塊和各子程序模塊),然后編寫(xiě)各模塊程序,分別調(diào)試完畢后連接在一起,構(gòu)成一個(gè)完整的應(yīng)用程序?,F(xiàn)在分別進(jìn)行介紹。1.軟件結(jié)構(gòu)設(shè)計(jì)在進(jìn)行系統(tǒng)總體設(shè)計(jì)時(shí),已經(jīng)給出軟件結(jié)構(gòu)框圖。但由于總體設(shè)計(jì)時(shí),硬件系統(tǒng)沒(méi)有明確,因此結(jié)構(gòu)框圖只是一個(gè)粗略的整體框架。當(dāng)硬件設(shè)計(jì)完成后,就能夠具體明確對(duì)軟件的要求。例如:數(shù)據(jù)采集部分,明確CPU對(duì)啟動(dòng)A/D轉(zhuǎn)換要發(fā)什么控制信號(hào);端口地址是什么;CPU用什么方法得知A/D轉(zhuǎn)換結(jié)束,以便輸入轉(zhuǎn)換結(jié)果;采樣周期多長(zhǎng)等。根據(jù)這些具體信息,便可進(jìn)行軟件結(jié)構(gòu)的具體設(shè)計(jì)。軟件結(jié)構(gòu)設(shè)計(jì)通常采用模塊化程序設(shè)計(jì)方法。其中心思想是將一個(gè)功能較多、程序量較大的程序整體,按其功能劃分為若干個(gè)相對(duì)獨(dú)立的程序段(稱為程序模塊),分別進(jìn)行獨(dú)立的設(shè)計(jì)、調(diào)試和查錯(cuò),最終連接成一個(gè)程序整體。模塊化程序設(shè)計(jì)方法的優(yōu)點(diǎn)是:每個(gè)模塊的程序設(shè)計(jì)無(wú)須過(guò)多了解其它模塊,可以獨(dú)立進(jìn)行;便于修改和調(diào)試;便于程序調(diào)用;程序整體層次清晰,結(jié)構(gòu)一目了然,方便閱讀。一般系統(tǒng)軟件結(jié)構(gòu)由主程序模塊和多個(gè)子程序及中斷服務(wù)程序模塊構(gòu)成。主程序的一般結(jié)構(gòu)是先進(jìn)行各種初始化,然后循環(huán)查詢各種軟件標(biāo)志以完成對(duì)事務(wù)的處理。主程序通常是一個(gè)順序執(zhí)行的無(wú)限循環(huán)程序。各個(gè)子程序模塊可根據(jù)其所完成的具體功能來(lái)劃分,例如可分為:定時(shí)、數(shù)據(jù)采集、數(shù)字濾波、標(biāo)度變換、控制算法、顯示、報(bào)警、打印等,進(jìn)而明確各個(gè)模塊的任務(wù)和相互聯(lián)系,畫(huà)出每個(gè)模塊的算法流程圖。2.主程序和各模塊程序的設(shè)計(jì)

根據(jù)確定的算法流程圖,分別編寫(xiě)主程序和各模塊程序。編程時(shí)盡量利用已有的子程序,以減少工作量。對(duì)于程序的編寫(xiě),需要說(shuō)明以下幾點(diǎn):(1)編程語(yǔ)言一般都采用匯編語(yǔ)言,匯編語(yǔ)言具有執(zhí)行速度快、占用內(nèi)存少的特點(diǎn),適合用于實(shí)時(shí)控制系統(tǒng)。對(duì)于那些計(jì)算工作量較大的系統(tǒng),也可以采用高級(jí)語(yǔ)言和匯編語(yǔ)言混合編程的方法。數(shù)據(jù)采集、判斷和控制輸出等程序用匯編語(yǔ)言,而較為復(fù)雜的計(jì)算程序采用高級(jí)語(yǔ)言。在單片機(jī)系統(tǒng)中,可以采用的高級(jí)語(yǔ)言有BASIC語(yǔ)言、C語(yǔ)言、PL/M語(yǔ)言等。借助于一般的單片機(jī)開(kāi)發(fā)裝置,就能使用高級(jí)語(yǔ)言編程。(2)在程序設(shè)計(jì)過(guò)程中,完成預(yù)定的功能是最基本、最重要的任務(wù),但同時(shí)還必須貫徹可靠性設(shè)計(jì)的原則,例如采取必要的抗干擾措施——數(shù)字濾波、軟件陷阱等。(3)控制算法是微機(jī)控制系統(tǒng)程序設(shè)計(jì)中的重要內(nèi)容,要根據(jù)被控制對(duì)象的特性,合理選擇控制算法,以達(dá)到所要求的控制精度。(4)對(duì)于存儲(chǔ)器空間的使用應(yīng)統(tǒng)一安排。例如在程序存儲(chǔ)器中,安排好用戶程序區(qū)、子程序區(qū)、表格區(qū)等。在數(shù)據(jù)存儲(chǔ)器中,安排好采樣數(shù)據(jù)區(qū)、處理結(jié)果數(shù)據(jù)區(qū)、顯示和打印數(shù)據(jù)區(qū)、標(biāo)志區(qū)等。(5)對(duì)于各個(gè)程序模塊,要首先畫(huà)出程序算法流程圖,說(shuō)明其功能。以便于編寫(xiě)子程序時(shí)明確各程序模塊的入口、出口參數(shù)和對(duì)CPU內(nèi)部寄存器的占用情況。(6)對(duì)于程序中的指令應(yīng)有必要的注釋,以便于閱讀與使用。(7)主程序和各模塊程序的設(shè)計(jì)完成后,連接成為一個(gè)完整的程序。最后對(duì)于整個(gè)程序作詳細(xì)的說(shuō)明,內(nèi)容包括占用內(nèi)部資源情況、存儲(chǔ)器分配情況、標(biāo)志的定義以及程序啟動(dòng)方法等。11.1.4軟件與硬件的調(diào)試在整個(gè)系統(tǒng)硬件設(shè)計(jì)和軟件設(shè)計(jì)基本完成后,就進(jìn)入系統(tǒng)調(diào)試階段。系統(tǒng)調(diào)試通常分為三步,即硬件調(diào)試、軟件調(diào)試和綜合調(diào)試。1.硬件調(diào)試盡管單片機(jī)系統(tǒng)的硬件和軟件調(diào)試相互密切聯(lián)系,許多硬件錯(cuò)誤是在軟件調(diào)試中發(fā)現(xiàn)的,但是一般還是盡可能的先排除硬件故障后,再進(jìn)行聯(lián)機(jī)調(diào)試。(1)靜態(tài)測(cè)試在樣機(jī)加電之前,首先要進(jìn)行靜態(tài)測(cè)試,主要內(nèi)容有:1)檢查線路。通過(guò)目測(cè)和使用萬(wàn)用表,檢查樣機(jī)連線的正確性,應(yīng)特別注意各電路板之間的連線。對(duì)于自制或委托加工的印制電路板,應(yīng)檢查電路板的線條和元件焊接質(zhì)量。2)核對(duì)元器件,檢查所有元器件是否有插錯(cuò)或損壞現(xiàn)象。3)檢查電源系統(tǒng)。將用戶樣機(jī)中所有芯片都從插座上拔下,給樣機(jī)加電。檢查完整流穩(wěn)壓電路后,逐一檢查各芯片插座上電源引腳及其它引腳電壓是否有異常情況。若一切正常,斷電,插上一個(gè)芯片,重復(fù)檢查電壓,并試摸該芯片是否發(fā)熱。如果電源電壓正常而芯片過(guò)熱,說(shuō)明芯片有故障。如果插上某個(gè)芯片后對(duì)電源系統(tǒng)有影響,則應(yīng)進(jìn)一步檢查與該芯片有關(guān)的電路或更換該芯片再試。在進(jìn)行電源系統(tǒng)檢查時(shí),應(yīng)重點(diǎn)檢查CPU插座,該插座上絕對(duì)不能有高于5V的電壓。否則連機(jī)時(shí)將損壞仿真器。電源系統(tǒng)檢查正常后,即可插上全部芯片(CPU除外)。4)外圍電路調(diào)試。將所有能進(jìn)行硬件單獨(dú)調(diào)試的外圍電路如檢測(cè)信號(hào)放大電路、輸出驅(qū)動(dòng)電路等都調(diào)試好。進(jìn)行這些局部電路調(diào)試時(shí),可能要人為提供有關(guān)模擬信號(hào)或開(kāi)關(guān)信號(hào)。有些系統(tǒng)有多塊外圍電路印制電路板,就要逐塊調(diào)試,所以這一步也稱為“單板調(diào)試”。(2)聯(lián)機(jī)調(diào)試聯(lián)機(jī)調(diào)試是軟硬件結(jié)合調(diào)試,即利用簡(jiǎn)單的調(diào)試程序來(lái)調(diào)試硬件系統(tǒng)。聯(lián)機(jī)調(diào)試需要用專用仿真插頭將用戶樣機(jī)和仿真器連接起來(lái),分別打開(kāi)用戶樣機(jī)和仿真器的電源,然后按以下步驟進(jìn)行:1)測(cè)試擴(kuò)展RAM(數(shù)據(jù)存儲(chǔ)器)。用開(kāi)發(fā)裝置將一批數(shù)據(jù)寫(xiě)入用戶樣機(jī)的擴(kuò)展RAM中,然后再將其讀出校驗(yàn)。如果對(duì)于任意區(qū)域讀出和寫(xiě)入的內(nèi)容都一致,表明擴(kuò)展RAM工作正常,否則就有故障??赡墚a(chǎn)生RAM讀寫(xiě)故障的原因有:工作電源未接通;地址線、數(shù)據(jù)線路短路或接錯(cuò);讀寫(xiě)信號(hào)線未接好以及RAM芯片損壞等。2)測(cè)試I/O口和I/O設(shè)備。對(duì)于單片機(jī)本身的輸出口,用仿真器內(nèi)部特殊功能寄存器修改命令將數(shù)據(jù)寫(xiě)入輸出口或運(yùn)行一段給輸出口賦值的程序,然后檢查輸出口的相應(yīng)狀態(tài)及所接設(shè)備的狀態(tài),如與寫(xiě)入的內(nèi)容一致,說(shuō)明輸出口及輸出設(shè)備工作正常。對(duì)于單片機(jī)本身的輸入口,通過(guò)輸入設(shè)備給輸入口設(shè)置一定的狀態(tài),然后用讀特殊功能寄存器命令讀出相應(yīng)輸入接口寄存器的狀態(tài),如與設(shè)定的狀態(tài)一致,說(shuō)明輸入口工作正常。擴(kuò)展I/O口大多是可編程的。檢查時(shí)應(yīng)先向其控制(命令)寄存器寫(xiě)入控制字,設(shè)定接口的工作狀態(tài),然后再用外部數(shù)據(jù)存儲(chǔ)器讀寫(xiě)命令來(lái)檢查I/O口的狀態(tài),如果I/O口狀態(tài)與讀寫(xiě)數(shù)據(jù)一致,表明工作正常。3)檢查晶振電路和復(fù)位電路。將仿真器的晶振選擇開(kāi)關(guān)打到用戶一邊,仿真器應(yīng)能正常工作,否則用戶樣機(jī)的晶振電路有故障。用戶樣機(jī)加電或按復(fù)位按鈕時(shí),仿真系統(tǒng)應(yīng)能復(fù)位,否則復(fù)位電路有故障。4)測(cè)試A/D和D/A轉(zhuǎn)換器。A/D轉(zhuǎn)換器的測(cè)試,一般要編制一段檢測(cè)程序。人為調(diào)節(jié)輸入模擬電壓大小,如果輸出數(shù)字量與輸入模擬量符合轉(zhuǎn)換關(guān)系,則此A/D轉(zhuǎn)換系統(tǒng)工作正常。D/A轉(zhuǎn)換器的測(cè)試也要借助于檢測(cè)程序。如果輸出模擬量與輸入數(shù)字量的對(duì)應(yīng)關(guān)系正確,說(shuō)明D/A轉(zhuǎn)換系統(tǒng)工作正常。5)試驗(yàn)顯示、打印、報(bào)警等電路。顯示、打印、報(bào)警等電路的試驗(yàn),也需要借助程序進(jìn)行。以上4)、5)兩項(xiàng)的測(cè)試,也可以利用系統(tǒng)應(yīng)用軟件中有關(guān)的程序段來(lái)進(jìn)行,這就歸入下面的“軟件調(diào)試”部分。2.軟件調(diào)試軟件調(diào)試是指應(yīng)用程序調(diào)試。首先要將用匯編語(yǔ)言或高級(jí)語(yǔ)言編寫(xiě)的源程序進(jìn)行編輯、匯編(或編譯),變成目標(biāo)程序(機(jī)器代碼程序),然后才能調(diào)試,因此,軟件調(diào)試實(shí)際上可分為編輯、匯編(或編譯)和調(diào)試兩部分。(1)程序的編輯、匯編(或編譯)源程序的編輯在PC機(jī)上進(jìn)行,一般利用仿真系統(tǒng)提供的編輯環(huán)境,也可以利用PC機(jī)上的某一種編輯軟件。源程序的編輯完成以后,其匯編(或編譯)工作在開(kāi)發(fā)環(huán)境下使用相應(yīng)軟件來(lái)完成,生成目標(biāo)程序。將該文件送入仿真RAM中,就可以調(diào)試用戶程序。(2)程序調(diào)試在前面曾經(jīng)介紹過(guò),應(yīng)用程序分成若干功能模塊來(lái)編寫(xiě)和調(diào)試,各程序模塊都調(diào)試通過(guò)后,再將它們組合起來(lái)進(jìn)行系統(tǒng)統(tǒng)調(diào)。模塊程序從調(diào)試方法來(lái)說(shuō)分為兩種情況。一種是各種計(jì)算程序以及代碼轉(zhuǎn)換程序、靜態(tài)I/O程序。這類程序如果不能正常運(yùn)行,程序中的錯(cuò)誤是靜態(tài)的固定的錯(cuò)誤,因此可以用單步或斷點(diǎn)運(yùn)行方式來(lái)調(diào)試。例如對(duì)于計(jì)算程序,先準(zhǔn)備好一組原始數(shù)據(jù),寫(xiě)入程序的入口單元,然后設(shè)置幾個(gè)斷點(diǎn),從程序開(kāi)始運(yùn)行。遇到斷點(diǎn)停下時(shí)檢查計(jì)算的中間結(jié)果是否正確。如果有錯(cuò)誤,改用單步運(yùn)行方式,檢查錯(cuò)誤是在哪一步,予以改正。這樣直到程序運(yùn)行完畢,得到正確的結(jié)果為止。需注意所準(zhǔn)備的原始數(shù)據(jù)要有代表性或可能要有多組,以便使程序中各個(gè)分支都有能得到運(yùn)行,調(diào)試工作不致出現(xiàn)遺漏。另一種是I/O實(shí)時(shí)處理程序和通訊程序。調(diào)試這類程序不能用單步或慢速斷點(diǎn)方式,而必須采用全速斷點(diǎn)或全速連續(xù)運(yùn)行方式。這是因?yàn)閷?shí)時(shí)事件的發(fā)生是隨機(jī)的或不能停止的。例如調(diào)試采用中斷方式的A/D轉(zhuǎn)換程序,首先檢查是否產(chǎn)生中斷,為此可將斷點(diǎn)設(shè)在中斷入口,以全速斷點(diǎn)方式運(yùn)行。如果能遇到斷點(diǎn),說(shuō)明產(chǎn)生了A/D中斷,然后將斷點(diǎn)設(shè)在A/D中斷服務(wù)程序的結(jié)束處,以全速斷點(diǎn)方式運(yùn)行。遇到斷點(diǎn)后,檢查站A/D轉(zhuǎn)換結(jié)果是否與輸入電壓相對(duì)應(yīng)。如果有問(wèn)題,需要從硬件和軟件兩個(gè)面方面進(jìn)行檢查和解決。3.綜合調(diào)試當(dāng)硬件調(diào)試及軟件分模塊調(diào)試完成以后,就可以進(jìn)行系統(tǒng)綜合調(diào)試(即系統(tǒng)調(diào)試)。在系統(tǒng)綜合調(diào)試時(shí),應(yīng)將全部硬件電路都接上,應(yīng)用程序也都組合好,進(jìn)行全系統(tǒng)軟硬件的統(tǒng)調(diào)。綜合調(diào)試的任務(wù)是排除軟硬件中的殘留錯(cuò)誤,使整個(gè)微機(jī)系統(tǒng)能夠完成預(yù)定的工作任務(wù),達(dá)到要求的技術(shù)性能指標(biāo)。在系統(tǒng)綜合調(diào)試中要注意以下幾點(diǎn):(1)對(duì)于有電氣控制負(fù)載(如加熱元件、電動(dòng)機(jī)等)的系統(tǒng),應(yīng)先試驗(yàn)空載,空載正常后再試驗(yàn)負(fù)載的情況。(2)要試驗(yàn)系統(tǒng)的各項(xiàng)功能,避免遺漏。仔細(xì)調(diào)整有關(guān)軟件或硬件,使檢測(cè)和控制達(dá)到要求的精度。(3)當(dāng)主電路投切電氣負(fù)載時(shí),注意觀察微機(jī)是否有受干擾的現(xiàn)象。如出現(xiàn)程序飛跑情況,要檢查和加強(qiáng)抗干擾措施。也可以根據(jù)系統(tǒng)實(shí)際工作環(huán)境人為地設(shè)置干擾,如頻繁地開(kāi)停接在同一交流電源上的手電鉆,檢驗(yàn)系統(tǒng)的抗干擾性能。(4)綜合調(diào)試時(shí),仿真器采用全速斷點(diǎn)或連續(xù)運(yùn)行方式,在綜合調(diào)試的最后階段應(yīng)使用用戶樣機(jī)中的晶振。(5)系統(tǒng)要連續(xù)運(yùn)行一段時(shí)間,以考驗(yàn)硬件部分的穩(wěn)定性。(6)有些系統(tǒng)的實(shí)際工作環(huán)境是在生產(chǎn)現(xiàn)場(chǎng),在實(shí)驗(yàn)室作調(diào)試時(shí)某些部分只能進(jìn)行模擬,這樣的系統(tǒng)必須到生產(chǎn)現(xiàn)場(chǎng)最終完成綜合調(diào)試工作。當(dāng)系統(tǒng)綜合調(diào)試通過(guò)以后,即可將用戶程序固化到ROM中,然后將此ROM芯片插入用戶樣機(jī),用戶樣機(jī)即可脫離仿真系統(tǒng)獨(dú)立運(yùn)行。至此系統(tǒng)調(diào)試工作全部完成。以上介紹了單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的一般方法和步驟,其整個(gè)流程如圖11-1所示。由于系統(tǒng)結(jié)構(gòu)和功能的不同,每個(gè)系統(tǒng)的硬件和軟件都有各自的特點(diǎn),在進(jìn)行調(diào)試時(shí)應(yīng)從實(shí)際情況出發(fā)制訂出具體實(shí)施方案。圖11-1單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)流程圖11.2系統(tǒng)可靠性設(shè)計(jì)接地、屏蔽、隔離和濾波等技術(shù)關(guān)系到單片機(jī)系統(tǒng)工作的穩(wěn)定性和可靠性。在現(xiàn)場(chǎng)環(huán)境下,這些問(wèn)題更顯得格外重要,必須給予充分的注意。11.2.1可靠性設(shè)計(jì) 可靠性是微機(jī)控制系統(tǒng)的重要性能指標(biāo),有多種因素對(duì)其產(chǎn)生影響。其中比較重要的是接地技術(shù)。下面我們就接地技術(shù)作一下簡(jiǎn)單的介紹。1.接地種類控制系統(tǒng)中通常有兩種接地方式。一種是為人身或設(shè)備安全目的,把設(shè)備的外殼接地,這種接地稱之為外殼接地或安全接地;另外一種接地是為電路工作提供一個(gè)公共的電位參考點(diǎn),這種接地稱之為工作接地。(1)外殼接地外殼接地是真正的接地、要實(shí)實(shí)在在地與大地連接,以使漏到機(jī)殼上的電荷能及時(shí)泄放到地球上去,這樣才能確保人身和設(shè)備的安全。外殼接地的接地電阻應(yīng)當(dāng)盡可能低,因此在材料及施工方面均有一定的要求。(2)工作接地工作接地是為電路工作需要而進(jìn)行的。許多情況下,工作地不與設(shè)備外殼相連,因此工作地的零電位參考點(diǎn)(即工作地)相對(duì)地球的大地是浮空的。所以也把工作地稱之為“懸浮地”。2.接地系統(tǒng)對(duì)于一個(gè)較大的單片機(jī)應(yīng)用系統(tǒng),應(yīng)根據(jù)信號(hào)電壓和電流的大小,以及電源的類別等分類接地,構(gòu)成一個(gè)完整的接地系統(tǒng)。接地系統(tǒng)通常分為三類。(1)第一類:弱信號(hào)地即把系統(tǒng)中的小信號(hào)回路、控制回路、邏輯電路以及它們的直流電源等連在一起接地。弱信號(hào)地實(shí)際上就是工作地。(2)第二類:功率地即把系統(tǒng)中的繼電器、電磁閥以及它們的驅(qū)動(dòng)電源等連在一起構(gòu)成功率地。因?yàn)檫@些電路往往功率較大,成為干擾弱信號(hào)回路的噪聲源,因此功率地與工作地不可混接。(3)第三類:機(jī)殼地包括系統(tǒng)中所有機(jī)架、箱體等金屬構(gòu)件的接地,即所謂安全地。通常,兩個(gè)相互獨(dú)立的系統(tǒng)接地可采用如圖11-2所示的方式,也可采用如圖11-3所示的傘狀接地系統(tǒng),而如圖11-4所示的接地系統(tǒng)則是錯(cuò)誤的方式。

圖11-12相互獨(dú)立的系統(tǒng)接地圖11-3傘狀接地系統(tǒng)

圖11-4不正確的系統(tǒng)接地

3.其它接地問(wèn)題(1)雙絞線或同軸電纜的接地為了減少信號(hào)回路的電磁干擾、送入單片機(jī)的信號(hào)有時(shí)需采用雙絞線或同軸電纜。雙絞線或同軸電纜的接地方式如圖11-5所示。

(a)信號(hào)線用雙絞線

(b)信號(hào)線用同軸電纜圖11-5 采用雙絞線或同軸電纜的接地當(dāng)采用帶屏蔽的雙絞線時(shí),還應(yīng)注意屏蔽體和工作地的良好連接。而且這種連接只能在一個(gè)點(diǎn)接地,否則屏蔽體兩端就會(huì)形成環(huán)路,在屏蔽體上產(chǎn)生較大的噪聲電流,從而在雙絞線上感應(yīng)出噪聲電壓。屏蔽體的正確接地如圖11-6所示。

圖11-6 屏蔽體接地

(2)工作地與安全地的連接當(dāng)需要把工作地與安全地連在一起時(shí),對(duì)于兩個(gè)以上設(shè)備應(yīng)注意工作地與安全地只能在一點(diǎn)相連。如圖11-7所示。

(a)發(fā)送一側(cè)接地(b)接收一側(cè)接地(3)變壓器屏蔽層的接地有些變壓器是帶屏蔽層的,因?yàn)槠帘螌涌梢砸种茝碾娫淳€傳導(dǎo)的噪聲。屏蔽層通常采用銅箔或鋁箔制作。使用時(shí)應(yīng)與變壓器的初級(jí)繞組交流一線相連,如圖11-8(a)所示。有些變壓器的初級(jí)和次級(jí)都有屏蔽層,這時(shí)應(yīng)將中間屏蔽層與次級(jí)繞組屏蔽層連接,如圖11-8(b)所示。(a)(b)圖11-8 變壓器屏蔽層接地法11.2.2抗干擾設(shè)計(jì)干擾是指疊加在電源電壓或正常工作信號(hào)上的其他電信號(hào)。干擾有多種來(lái)源,如電網(wǎng)、空間電磁場(chǎng)、輸入/輸出通道等。干擾會(huì)影響傳送信息的正確性,擾亂程序的正常運(yùn)行,使程序“飛走”或進(jìn)入死循環(huán),還可能損壞電子元器件。通常采取以下幾種抗干擾措施。1.屏蔽技術(shù)高頻電源、交流電源、強(qiáng)電設(shè)備產(chǎn)生的電火花甚至雷電,都能產(chǎn)生電磁波,從而成為電磁干擾的噪聲源。當(dāng)距離較近時(shí),電磁波會(huì)通過(guò)分布電容和電感耦合到信號(hào)回路而形成電磁干擾;當(dāng)距離較遠(yuǎn)時(shí),電磁波則以幅射形式構(gòu)成干擾。單片機(jī)使用的振蕩器,也是電磁干擾的薄弱環(huán)節(jié)。以金屬板、金屬網(wǎng)或金屬盒構(gòu)成的屏蔽體能有效地對(duì)付電磁波的干擾。屏蔽體以反射方式和吸收方式來(lái)削弱電磁波,從而形成對(duì)電磁波的屏蔽作用。為了有效發(fā)揮屏蔽體的屏蔽作用,還應(yīng)注意屏蔽體的接地問(wèn)題。為了消除屏蔽體與內(nèi)部電路的寄生電容,屏蔽體應(yīng)按“一點(diǎn)接地”的原則接地。2.隔離技術(shù)隔離包括物理隔離和光電隔離兩種。(1)物理隔離物理隔離是指對(duì)小信號(hào)低電平的隔離。其信號(hào)連線應(yīng)盡量遠(yuǎn)離高電平大功率的導(dǎo)線,以減少噪聲和電磁場(chǎng)的干擾。為了實(shí)行物理隔離,即使在同一設(shè)備的內(nèi)部也應(yīng)當(dāng)把這兩類信號(hào)導(dǎo)線分開(kāi)走線、遠(yuǎn)距離走線時(shí),更應(yīng)注意把信號(hào)電纜和功率電纜分開(kāi),并保持一定的距離。必要時(shí)還可以用鋼管把它們分別套起來(lái),以增加屏蔽效果。(2)光電隔離光電隔離通常通過(guò)光電耦合器來(lái)實(shí)現(xiàn)。常用的光電耦合器符號(hào)如圖11-9所示。

圖11-9

光電耦合器輸入信號(hào)使發(fā)光二極管發(fā)光,其光線又使光敏三極管產(chǎn)生電信號(hào)輸出,從而既完成了信號(hào)的傳遞又實(shí)現(xiàn)了電氣上的隔離。使用光電耦合器可實(shí)現(xiàn)以下兩個(gè)主要功能:1)電平轉(zhuǎn)換如圖11-10所示,TTL電路與28V電源電路之間通過(guò)光電耦合器連接,不需另加匹配電路就可以實(shí)現(xiàn)信號(hào)傳輸,從而實(shí)現(xiàn)了電平轉(zhuǎn)換。

圖11-10光電耦合器的電平轉(zhuǎn)換電路

2)隔離如圖11-11所示,由于信號(hào)電路與接收電路之間被隔離,因此即使兩個(gè)電路的接地電位不同,也不會(huì)形成干擾。光電耦合器中光敏三極管的基極有引出和不引出兩種型式?;鶚O引出后通常經(jīng)一個(gè)電阻接地,連接電路如圖11-12所示。通過(guò)接地電阻可以控制耦合的響應(yīng)速度和靈敏度??偟膩?lái)說(shuō),電阻越小,響應(yīng)速度越高。圖11-11光電耦合器的隔離電路

圖11-12光電耦合器的基極引出形式3.濾波技術(shù)濾波是為了抑制噪聲干擾。在直流電源回路中,負(fù)載的變化會(huì)引起電源噪聲,例如在數(shù)字電路中,當(dāng)電路從一個(gè)狀態(tài)轉(zhuǎn)換為另一種狀態(tài)時(shí),就會(huì)在電源線上產(chǎn)生一個(gè)很大的尖峰電流,形成瞬變的噪聲電壓。利用電容、電感等儲(chǔ)能元件可以抑制因負(fù)載變化而產(chǎn)生的噪聲。通常也把這種作用稱之為濾波或去耦。為了進(jìn)行濾波或去耦,可在電源線的輸入端并聯(lián)兩個(gè)電容,這在印刷電路板上是經(jīng)??吹降?,如圖11-13所示。圖11-13電源濾波4.反電勢(shì)干擾抑制技術(shù)在單片機(jī)的應(yīng)用系統(tǒng)中,常使用諸如繼電器、電動(dòng)機(jī)、電磁閥等具有較大電感量的元件或設(shè)備。當(dāng)電感回路的電流被切斷時(shí),會(huì)產(chǎn)生很大的反電勢(shì)而形成噪聲干擾。對(duì)于反電勢(shì)干擾,可采用如下措施加以抑制:(1)如果通過(guò)電感線圈的是直流電流,可在線圈兩端并聯(lián)二極管和穩(wěn)壓管,如圖11-14所示。(2)如果把穩(wěn)壓管換為電阻,同樣可以達(dá)到抑制反電勢(shì)的目的,因此也適用于直流驅(qū)動(dòng)線圈的電路。在這個(gè)電路中,電阻的阻值范圍可以從幾歐姆到幾十歐姆。阻值太小,反電勢(shì)衰減慢;而阻值太大又會(huì)增大反電勢(shì)的幅值。因此應(yīng)在兩方面找一個(gè)平衡點(diǎn)。(3)反電勢(shì)抑制電路也可由電阻和電容構(gòu)成,如圖11-15所示。(4)反電勢(shì)抑制電路不但可以接在線圈的兩端,也可以接在開(kāi)關(guān)的兩端。

圖11-14由二極管和穩(wěn)壓管構(gòu)成的抑制電路

圖11-15由電阻和電容構(gòu)成的抑制電路5.軟件抗干擾措施通常在軟件設(shè)計(jì)中也可采取適當(dāng)?shù)奶幚硪蕴岣呦到y(tǒng)的抗干擾能力,通常采取的措施有如下幾點(diǎn):(1)程序中采用數(shù)字濾波。為了減小干擾信號(hào)對(duì)采集系統(tǒng)的影響,可采用數(shù)字濾波的方法。常用的數(shù)字濾波技術(shù)有:中值濾波、算術(shù)平均值濾波、判斷濾波等。(2)采用“看門狗”技術(shù)。當(dāng)程序“跑飛”時(shí)可采用看門狗來(lái)恢復(fù)系統(tǒng)的正常運(yùn)行。(3)采用中斷技術(shù)。在程序中使用系統(tǒng)未用的中斷編寫(xiě)針對(duì)錯(cuò)誤處理的相應(yīng)中斷處理程序來(lái)使程序正常返回。(4)采用軟件陷阱。當(dāng)程序進(jìn)入死循環(huán)時(shí),可在非程序區(qū)設(shè)置陷阱,強(qiáng)迫PC進(jìn)入一個(gè)指定的地址,執(zhí)行一段專門的處理程序,使系統(tǒng)恢復(fù)。例如,假設(shè)系統(tǒng)受到外界干擾進(jìn)入非法程序存儲(chǔ)區(qū)后就可以被軟件陷阱捕捉到,然后強(qiáng)制進(jìn)入下面的自恢復(fù)程序段,轉(zhuǎn)到0000處,重新開(kāi)始執(zhí)行程序:

ERROR:CLREA;關(guān)中斷MOVDPTR,#ERR1;將返回地址壓入堆棧PUSHDPLPUSHDPHRETI;清除高級(jí)中斷申請(qǐng)標(biāo)志ERR1:MOV30H,#0AAH;重建上電標(biāo)志

MOV31H,#44HCLRA;將復(fù)位地址0000H壓入堆棧

PUSHACC PUSHACC RETI;清除低級(jí)中斷申請(qǐng)標(biāo)志11.3單片機(jī)綜合應(yīng)用舉例11.3.1作息時(shí)間控制數(shù)字時(shí)鐘系統(tǒng)1.任務(wù)描述作息時(shí)間控制數(shù)字鐘常在學(xué)校中使用。試設(shè)計(jì)一個(gè)簡(jiǎn)易數(shù)字時(shí)鐘系統(tǒng),使其能夠按照已定的作息時(shí)間自動(dòng)完成響鈴等提示動(dòng)作。2.實(shí)現(xiàn)原理分析在單片機(jī)計(jì)時(shí)的過(guò)程中,每一次秒加1時(shí),都與規(guī)定的作息時(shí)間比較,如比較相等就進(jìn)行電鈴或擴(kuò)音設(shè)備的開(kāi)關(guān)控制,其實(shí)現(xiàn)原理流程如圖11-16所示。圖11-16 時(shí)鐘控制系統(tǒng)原理圖本系統(tǒng)共有4項(xiàng)控制內(nèi)容,即:接通電鈴和斷開(kāi)電鈴以及接通擴(kuò)音設(shè)備和斷開(kāi)擴(kuò)音設(shè)備。由P1口輸出控制碼進(jìn)行控制,其控制口定義為:接通電鈴0FEH斷開(kāi)電鈴0FDH接通擴(kuò)音設(shè)備0FH斷開(kāi)擴(kuò)音設(shè)備0BFH把設(shè)備一次開(kāi)關(guān)的控制碼及預(yù)置時(shí)間結(jié)合在一起,構(gòu)成4個(gè)字節(jié)的存儲(chǔ)字。其中控制設(shè)備開(kāi)關(guān)的控制碼占一個(gè)字節(jié),預(yù)置時(shí)間的時(shí)、分、秒各占一個(gè)字節(jié)。具體格式為:XXXXXXXX開(kāi)關(guān)設(shè)備控制碼字節(jié)時(shí)字節(jié)分字節(jié)秒字節(jié)假定某校作息時(shí)間如下表所示:08:00~08:50 第一節(jié)課09:00~09:50 第二節(jié)課09:52~10:05 課間操(播放歌曲及廣播操)10:10~11:00 第三節(jié)課11:10~12:00 第四節(jié)課12:00~13:30 午間休息13:30~14:20 第五節(jié)課14:30~15:20 第六節(jié)課15:21~15:50 播放歌曲把存儲(chǔ)字存放在外部RAM50H開(kāi)始的存儲(chǔ)區(qū)中,如表11-1所示。表11—1作息時(shí)間存儲(chǔ)字存儲(chǔ)單元開(kāi)控制碼時(shí)分秒開(kāi)控制碼時(shí)分秒50H~57H0FEH0800000FDH08001058H~5FH0FEH0850000FDH08501060H~67H0FEH0900000FDH09001068H~6FH0FEH0950000FDH09501070H~77H7EH0952000BFH10050078H~7FH0FEH1010000FDH10101080H~87H0FEH1100000FDH11001088H~8FH0FEH1110000FDH11101090H~97H0FEH1200000FDH12001098H~9FH0FEH1330000FDH1330100A0H~0A7H0FEH1420000FDH1420100A8H~0AFH0FEH1430000FDH1430100B0H~0B7H0FEH1520000FDH1520100B8H~0BFH7EH1521000BFH1550000C0H~0C7H00HXXXXXX

11-1中存儲(chǔ)字的存放是按時(shí)間順序。實(shí)際上存儲(chǔ)字的存放順序可以是任意的,這樣就可以通過(guò)增減存儲(chǔ)字隨意修改作息內(nèi)容。設(shè)置控制字00H,表示存儲(chǔ)字結(jié)束

3.

時(shí)鐘計(jì)時(shí)程序(程序略)計(jì)時(shí)程序用于時(shí)鐘計(jì)時(shí),在本系統(tǒng)中為主程序。此處省略程序而只列出其中使用的時(shí)間單元(內(nèi)部RAM):20H 時(shí)單元21H 分單元22H 秒單元使用時(shí),運(yùn)行時(shí)鐘計(jì)時(shí)程序,每進(jìn)行一次秒加1操作時(shí),都調(diào)用下面的時(shí)間比較子程序,與存儲(chǔ)區(qū)中的預(yù)置時(shí)間進(jìn)行比較,比較時(shí)要用到上述3個(gè)單元。4.時(shí)間比較子程序此程序以計(jì)時(shí)時(shí)間和存儲(chǔ)字中的預(yù)置時(shí)間進(jìn)行比較,如比較相等,則說(shuō)明作息時(shí)間已到,發(fā)出開(kāi)關(guān)控制碼,控制電鈴或擴(kuò)音設(shè)備的開(kāi)或斷;否則子程序返回。本程序使用的工作單元都在內(nèi)部RAM中,具體如下:50H ——存儲(chǔ)區(qū)首地址R0

——存儲(chǔ)區(qū)地址指針2EH ——存儲(chǔ)區(qū)地址指針暫存單元6AH ——存開(kāi)關(guān)控制碼6BH~6DH——依次存放存儲(chǔ)字的秒值、分值和小時(shí)值

LOOP1:MOV R0,#4H;存儲(chǔ)字存儲(chǔ)區(qū)首地址減4

MOV 2EH,R0;送暫存單元LOOP2:MOV R0,2EHMOV R3,#04H

MOV R1,#23HLOOP3:INC R0 ;地址指針加4,得開(kāi)關(guān)控

制碼地址DJNZ R2,LOOP3MOV 2EH,R0 ;暫存開(kāi)關(guān)控制碼地址

MOV R3,#03HMOVX A,@R0;讀取控制碼

JZ A,LOOP5 ;控制碼為“0”則返回

MOV 6AH,A ;存控制碼LOOP4:INC R0 ;地址指針增量

DEC R1 ;計(jì)時(shí)單元地址減量

MOVX

A,@R0 ;讀取作息時(shí)間

MOV 6BH,A ;存作息時(shí)間

MOV A,@R1 ;讀取計(jì)時(shí)時(shí)間CJNE A,6BH,LOOP2 ;計(jì)時(shí)時(shí)間與作息時(shí)間比較

不等則轉(zhuǎn),繼續(xù)讀下面的控制碼DJNZ R3,LOOP4 ;共讀取3次MOV A,6AH ;開(kāi)關(guān)控制碼送ACPL A ;取反MOV P1,A ;開(kāi)關(guān)控制碼輸出LOOP5: RET;返回

11.3.2交通信號(hào)燈自動(dòng)控制系統(tǒng)1.任務(wù)要求設(shè)計(jì)并制作一個(gè)如圖11-17所示的十字路口交通信號(hào)自動(dòng)控制模擬指示系統(tǒng)。設(shè)該路口由A、B兩條通行干道相交而成,四個(gè)路口各設(shè)二組分別指示直行和左轉(zhuǎn)的紅、黃、綠三色信號(hào)燈,用兩位數(shù)碼管作定時(shí)顯示。這個(gè)題目是2002年山東省大學(xué)生電子設(shè)計(jì)競(jìng)賽基礎(chǔ)部分題目之一。2.系統(tǒng)功能分析(1)以秒為計(jì)時(shí)單位,兩位數(shù)碼管以十進(jìn)制遞減計(jì)數(shù)形式作定時(shí)顯示,在遞減計(jì)數(shù)回零瞬間完成換燈操作。(2)通過(guò)鍵盤(pán)或數(shù)碼撥盤(pán)能對(duì)指示A、B兩條干道直行和左轉(zhuǎn)的紅、黃、綠三色信號(hào)燈所亮?xí)r間在0~99秒內(nèi)任意設(shè)定。(3)在通行干道中,兩位數(shù)碼管按順序分別顯示直行綠燈、黃燈和左轉(zhuǎn)綠燈、黃燈所亮?xí)r

溫馨提示

  • 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)論