單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)重點(diǎn)要求_第1頁
單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)重點(diǎn)要求_第2頁
單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)重點(diǎn)要求_第3頁
單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)重點(diǎn)要求_第4頁
單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)重點(diǎn)要求_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)重點(diǎn)要求 第五章 單片機(jī)應(yīng)用系統(tǒng)抗干擾技術(shù)一一 干擾的主要來源干擾的主要來源三三 抗干擾措施抗干擾措施 硬件抗干擾措施硬件抗干擾措施 軟件抗干擾措施軟件抗干擾措施二二 干擾產(chǎn)生帶來的后干擾產(chǎn)生帶來的后果果一、干擾的主要來源干擾的主要來源 工業(yè)現(xiàn)場環(huán)境中的干擾通常是以脈沖的形式進(jìn)入單片機(jī)系統(tǒng),其主要的渠道有三條 1 1、空間干擾、空間干擾 空間干擾,又稱場干擾。電磁信號通過空間輻射進(jìn)入系統(tǒng),多發(fā)生在高電壓、大電流、高頻電磁場附近,并通過靜電感應(yīng),電磁感應(yīng)等方式侵入系統(tǒng)內(nèi)部。 2 2、供電系統(tǒng)干擾、供電系統(tǒng)干擾 電磁信號通過供電線路進(jìn)入系統(tǒng)。供電系統(tǒng)干擾主要由電源的噪聲干擾

2、引起的。 3 3、過程通道干擾、過程通道干擾 干擾通過與系統(tǒng)相連的前向通道、后向通道及與其它系統(tǒng)的相互通道進(jìn)入,一般沿各種線路侵入系統(tǒng)。 說明:說明: 一般情況下一般情況下空間干擾空間干擾在強(qiáng)度上在強(qiáng)度上遠(yuǎn)小于遠(yuǎn)小于其它兩種,故微機(jī)系統(tǒng)其它兩種,故微機(jī)系統(tǒng) 中應(yīng)重點(diǎn)防止過程通道干擾和供電系統(tǒng)干擾中應(yīng)重點(diǎn)防止過程通道干擾和供電系統(tǒng)干擾 。 此外,系統(tǒng)接地裝置不可靠等,也是產(chǎn)生干擾的重要原因;各此外,系統(tǒng)接地裝置不可靠等,也是產(chǎn)生干擾的重要原因;各 類傳感器,輸入輸出線路的絕緣損壞也有可能引入干擾類傳感器,輸入輸出線路的絕緣損壞也有可能引入干擾 。二二、干擾產(chǎn)生帶來的后果干擾產(chǎn)生帶來的后果1 1、

3、數(shù)據(jù)采集誤差加大數(shù)據(jù)采集誤差加大 2 2、程序運(yùn)行失常程序運(yùn)行失常3 3、系統(tǒng)被控對象誤操作系統(tǒng)被控對象誤操作 4 4、被控對象狀態(tài)不穩(wěn)定被控對象狀態(tài)不穩(wěn)定 5 5、定時不準(zhǔn)定時不準(zhǔn) 6、數(shù)據(jù)發(fā)生變化數(shù)據(jù)發(fā)生變化 2 2、程序運(yùn)行失常程序運(yùn)行失常 控制狀態(tài)失靈控制狀態(tài)失靈 當(dāng)干擾侵入單片機(jī)系統(tǒng)的前向通道疊加在信號上,會使當(dāng)干擾侵入單片機(jī)系統(tǒng)的前向通道疊加在信號上,會使數(shù)據(jù)采集誤差增大,特別是前向通道的傳感器接口是小電數(shù)據(jù)采集誤差增大,特別是前向通道的傳感器接口是小電壓信號輸入時,此現(xiàn)象會更加嚴(yán)重。壓信號輸入時,此現(xiàn)象會更加嚴(yán)重。 在單片機(jī)系統(tǒng)中,由于干擾的加入使輸出誤差加大,在單片機(jī)系統(tǒng)中,由

4、于干擾的加入使輸出誤差加大,造成邏輯狀態(tài)改變,最終導(dǎo)致控制失常。造成邏輯狀態(tài)改變,最終導(dǎo)致控制失常。 死機(jī)死機(jī) 在單片機(jī)系統(tǒng)受強(qiáng)干擾后,造成程序計(jì)數(shù)器在單片機(jī)系統(tǒng)受強(qiáng)干擾后,造成程序計(jì)數(shù)器PCPC值的改值的改變,破壞程序正常運(yùn)行變,破壞程序正常運(yùn)行 ,造成死循環(huán)造成死循環(huán)。1 1、數(shù)據(jù)采集誤差的加大數(shù)據(jù)采集誤差的加大3.3.系統(tǒng)被控對象誤操作系統(tǒng)被控對象誤操作 4.4.被控對象狀態(tài)不穩(wěn)定被控對象狀態(tài)不穩(wěn)定 鎖存電路與被控對象間的線路鎖存電路與被控對象間的線路( (包括驅(qū)動電路包括驅(qū)動電路) )受干擾,受干擾,從而造成被控對象狀態(tài)不穩(wěn)定從而造成被控對象狀態(tài)不穩(wěn)定( (鎖存電路一般較敏感鎖存電路一

5、般較敏感) )。 單片機(jī)內(nèi)部程序指針錯亂,指向了其它地方,從而單片機(jī)內(nèi)部程序指針錯亂,指向了其它地方,從而運(yùn)行了錯誤的程序。運(yùn)行了錯誤的程序。 RAM RAM中的某些數(shù)據(jù)被沖亂或者特殊寄存器的值被中的某些數(shù)據(jù)被沖亂或者特殊寄存器的值被改變,使程序計(jì)算出錯誤的結(jié)果。改變,使程序計(jì)算出錯誤的結(jié)果。 中斷誤觸發(fā),使系統(tǒng)進(jìn)行錯誤的中斷處理。中斷誤觸發(fā),使系統(tǒng)進(jìn)行錯誤的中斷處理。 6. 6. 數(shù)據(jù)發(fā)生變化數(shù)據(jù)發(fā)生變化 在單片機(jī)應(yīng)用系統(tǒng)中,由于外部在單片機(jī)應(yīng)用系統(tǒng)中,由于外部RAMRAM是可讀寫的,在干是可讀寫的,在干擾的侵入下,擾的侵入下,RAMRAM中數(shù)據(jù)有可能發(fā)生改變,雖然中數(shù)據(jù)有可能發(fā)生改變,雖然

6、ROMROM能避能避免干擾破壞,但單片機(jī)片內(nèi)免干擾破壞,但單片機(jī)片內(nèi)RAMRAM以及片內(nèi)各種特殊功能寄以及片內(nèi)各種特殊功能寄存器等狀態(tài)都有可能受干擾而變化,甚至存器等狀態(tài)都有可能受干擾而變化,甚至EEPROMEEPROM中的數(shù)中的數(shù)據(jù)也可能誤讀寫,使程序計(jì)算出錯誤的結(jié)果。據(jù)也可能誤讀寫,使程序計(jì)算出錯誤的結(jié)果。 5.5.定時不準(zhǔn)定時不準(zhǔn) RAMRAM中計(jì)時數(shù)據(jù)被沖亂,使程序計(jì)算出錯誤的結(jié)果。中計(jì)時數(shù)據(jù)被沖亂,使程序計(jì)算出錯誤的結(jié)果。 單片機(jī)內(nèi)部程序指針錯亂,使中斷程序運(yùn)行超出定單片機(jī)內(nèi)部程序指針錯亂,使中斷程序運(yùn)行超出定 時時間。時時間。 抗干擾措施有抗干擾措施有硬件措施硬件措施和和軟件措施軟

7、件措施。硬件措施如。硬件措施如果得當(dāng),果得當(dāng),可將絕大部分干擾拒之門外可將絕大部分干擾拒之門外,但仍然會有,但仍然會有少數(shù)干擾進(jìn)入微機(jī)系統(tǒng),故軟件措施作為第二道防少數(shù)干擾進(jìn)入微機(jī)系統(tǒng),故軟件措施作為第二道防線必不可少。由于線必不可少。由于軟件抗干擾措施是以降低軟件抗干擾措施是以降低CPUCPU效效率為代價(jià)的率為代價(jià)的,如果沒有硬件消除絕大多數(shù)干擾,如果沒有硬件消除絕大多數(shù)干擾,CPUCPU將疲于奔命,無暇顧及正常工作,嚴(yán)重影響系將疲于奔命,無暇顧及正常工作,嚴(yán)重影響系統(tǒng)的工作效率和實(shí)時性。因此,一個成功的抗干擾統(tǒng)的工作效率和實(shí)時性。因此,一個成功的抗干擾系統(tǒng)是由硬件和軟件相結(jié)合構(gòu)成的。系統(tǒng)是由

8、硬件和軟件相結(jié)合構(gòu)成的。 三、抗干擾措施三、抗干擾措施1 1、注意印制電路板的布線與工藝、注意印制電路板的布線與工藝 2 2、屏蔽、屏蔽4 4、光電隔離、光電隔離 3 3、提高元器件的可靠性、提高元器件的可靠性 5 5、過壓保護(hù)電路、過壓保護(hù)電路 6 6、增加硬件看門狗電路、增加硬件看門狗電路7 7、供電系統(tǒng)抗干擾措、供電系統(tǒng)抗干擾措施施硬件抗干擾措施硬件抗干擾措施1 1、注意印制電路板的布線與工藝、注意印制電路板的布線與工藝 盡量采用盡量采用多層印制電路板多層印制電路板,多層板可提供良好的接地,多層板可提供良好的接地網(wǎng),可防止產(chǎn)生地電位差和元件之間的耦合(但要考慮網(wǎng),可防止產(chǎn)生地電位差和元件

9、之間的耦合(但要考慮性價(jià)比)。性價(jià)比)。 印制電路板要印制電路板要合理分區(qū)合理分區(qū)。模擬電路區(qū)、數(shù)字電路區(qū)、模擬電路區(qū)、數(shù)字電路區(qū)、功率驅(qū)動區(qū)功率驅(qū)動區(qū)要盡量分開,地線不能相混,分別和電源端要盡量分開,地線不能相混,分別和電源端的地線相連的地線相連。元件面和焊接面應(yīng)采用元件面和焊接面應(yīng)采用相互垂直相互垂直、盡量避免相互平行、盡量避免相互平行走線以減小寄生耦合;避免相鄰導(dǎo)線平行段過長;加大走線以減小寄生耦合;避免相鄰導(dǎo)線平行段過長;加大信號線間距。高頻電路互聯(lián)導(dǎo)線盡量短,使用信號線間距。高頻電路互聯(lián)導(dǎo)線盡量短,使用4545或者或者圓弧折線布線,不要使用圓弧折線布線,不要使用9090折線,以減小高

10、頻信號的折線,以減小高頻信號的發(fā)射發(fā)射。印制電路板要按印制電路板要按單點(diǎn)接電單點(diǎn)接電的原則布置。三個區(qū)域的電源的原則布置。三個區(qū)域的電源線、地線分三路引出。地線、電源線要盡量粗,噪聲元件線、地線分三路引出。地線、電源線要盡量粗,噪聲元件與非噪聲元件要盡量離遠(yuǎn)一些。時鐘振蕩電路、特殊高速與非噪聲元件要盡量離遠(yuǎn)一些。時鐘振蕩電路、特殊高速邏輯電路部分用地線圈起來,讓周圍電場趨近于零。邏輯電路部分用地線圈起來,讓周圍電場趨近于零。使用滿足系統(tǒng)要求的使用滿足系統(tǒng)要求的最低頻率最低頻率的時鐘,時鐘產(chǎn)生器要的時鐘,時鐘產(chǎn)生器要盡量靠近用到該時鐘的器件。石英晶體振蕩器外殼要接盡量靠近用到該時鐘的器件。石英晶

11、體振蕩器外殼要接地,時鐘線盡量短,時鐘線要遠(yuǎn)離地,時鐘線盡量短,時鐘線要遠(yuǎn)離I IO O線,在石英晶體線,在石英晶體振蕩器下面要振蕩器下面要加大接地的面積加大接地的面積而不應(yīng)該走其它信號線。而不應(yīng)該走其它信號線。 I IO O驅(qū)動器件、功率放大器件驅(qū)動器件、功率放大器件盡量靠近印制板的邊、靠盡量靠近印制板的邊、靠近引出接插件。重要的信號線近引出接插件。重要的信號線盡量短盡量短并要并要盡量粗盡量粗,并在兩,并在兩側(cè)加上保護(hù)地。將信號通過扁平電纜引出時,要使用地線側(cè)加上保護(hù)地。將信號通過扁平電纜引出時,要使用地線- -信號信號- -地線相間的結(jié)構(gòu)。地線相間的結(jié)構(gòu)。 原則上原則上每個每個ICIC元件

12、元件要加一個要加一個0.010.010.10.1F F去耦電容去耦電容,布,布線時去耦電容應(yīng)盡量靠近線時去耦電容應(yīng)盡量靠近ICIC的電源腳和接地腳。要選高頻的電源腳和接地腳。要選高頻特性好的獨(dú)石電容或瓷片電容作去耦電容。去耦電容焊在特性好的獨(dú)石電容或瓷片電容作去耦電容。去耦電容焊在印制電路板上時,引腳要盡量短。這樣便印制電路板上時,引腳要盡量短。這樣便可以消除大部分可以消除大部分高頻干擾。高頻干擾。 閑置不用的閑置不用的ICIC管腳管腳不要懸空以避免干擾引入。單片機(jī)不要懸空以避免干擾引入。單片機(jī)不用的不用的I IO O口定義成輸出。單片機(jī)上有一個以上電源、口定義成輸出。單片機(jī)上有一個以上電源、

13、接地端,每個都要接上,不要懸空。接地端,每個都要接上,不要懸空。 2 2、屏蔽、屏蔽避免環(huán)流的產(chǎn)生避免環(huán)流的產(chǎn)生、包地技術(shù)等。、包地技術(shù)等。加粗的線加粗的線晶振晶振盡量盡量靠近用到靠近用到時鐘的器件時鐘的器件AT89c2051選用質(zhì)量好的電子元件并進(jìn)行嚴(yán)格的測試、篩選和老化。選用質(zhì)量好的電子元件并進(jìn)行嚴(yán)格的測試、篩選和老化。設(shè)計(jì)時元件技術(shù)參數(shù)設(shè)計(jì)時元件技術(shù)參數(shù)要有一定的余量要有一定的余量。提高印制板和組裝的質(zhì)量。提高印制板和組裝的質(zhì)量。 4 4、光電隔離、光電隔離 在輸入和輸出通道上采用光電隔離器來進(jìn)行信息傳輸,將在輸入和輸出通道上采用光電隔離器來進(jìn)行信息傳輸,將微機(jī)系統(tǒng)與各種傳感器、開關(guān)、執(zhí)

14、行機(jī)構(gòu)從電氣上隔離開來,微機(jī)系統(tǒng)與各種傳感器、開關(guān)、執(zhí)行機(jī)構(gòu)從電氣上隔離開來,很大一部分干擾將被阻擋。很大一部分干擾將被阻擋。 3 3、提高元器件的可靠性、提高元器件的可靠性 2 2、屏蔽、屏蔽 對容易產(chǎn)生干擾和被干擾的部件對容易產(chǎn)生干擾和被干擾的部件使用金屬盒進(jìn)行屏蔽使用金屬盒進(jìn)行屏蔽以使以使干擾電磁波短路接地。干擾電磁波短路接地。 在輸入輸出通道上應(yīng)采用一過壓保護(hù)電路,以防引入高在輸入輸出通道上應(yīng)采用一過壓保護(hù)電路,以防引入高電壓,傷害微機(jī)系統(tǒng)。電壓,傷害微機(jī)系統(tǒng)。過壓保護(hù)電路由限流電阻和穩(wěn)壓管過壓保護(hù)電路由限流電阻和穩(wěn)壓管組成組成,限流電阻選擇要適宜,太大會引起信號衰減,太小,限流電阻選

15、擇要適宜,太大會引起信號衰減,太小起不到保護(hù)穩(wěn)壓管的作用。穩(wěn)壓管的選擇也要適宜,起不到保護(hù)穩(wěn)壓管的作用。穩(wěn)壓管的選擇也要適宜,其穩(wěn)其穩(wěn)壓值以略高于最高傳送信號電壓為宜壓值以略高于最高傳送信號電壓為宜,太低將對有效信號,太低將對有效信號起限幅效果,使信號失真。起限幅效果,使信號失真。 5 5、過壓保護(hù)電路、過壓保護(hù)電路 outouti in n6 6、增加硬件看門狗電路、增加硬件看門狗電路 對于失控的對于失控的CPUCPU,最簡單的方法是使其復(fù)位,程序自動從,最簡單的方法是使其復(fù)位,程序自動從0000H0000H開始執(zhí)行。為此只要在單片機(jī)的開始執(zhí)行。為此只要在單片機(jī)的RESETRESET端加上一

16、個高電端加上一個高電平信號,并持續(xù)平信號,并持續(xù)10ms10ms以上即可。以上即可。 WATCHDOGWATCHDOG有如下特征:有如下特征: 本身能獨(dú)立工作,基本上不依賴于本身能獨(dú)立工作,基本上不依賴于CPUCPU。CPUCPU只只在一個固在一個固定的時間間隔定的時間間隔內(nèi)與之打一次交道,表明整個系統(tǒng)內(nèi)與之打一次交道,表明整個系統(tǒng)“目前尚屬正目前尚屬正常?!?。 當(dāng)當(dāng)CPUCPU落入死循環(huán)之后,能及時發(fā)現(xiàn)并使整個系統(tǒng)復(fù)位。落入死循環(huán)之后,能及時發(fā)現(xiàn)并使整個系統(tǒng)復(fù)位。 “喂狗喂狗”過程一般安排在過程一般安排在監(jiān)控循環(huán)或定時中斷監(jiān)控循環(huán)或定時中斷中,如果有比中,如果有比較長的延時子程序,則應(yīng)該在其

17、中插入較長的延時子程序,則應(yīng)該在其中插入“喂狗喂狗”過程。目前有過程。目前有很多單片機(jī)在內(nèi)部已經(jīng)集成了片內(nèi)的硬件很多單片機(jī)在內(nèi)部已經(jīng)集成了片內(nèi)的硬件WATCHDOGWATCHDOG電路,使用電路,使用起來更為方便。對于片內(nèi)看門狗,是通過兩條特定的賦值指令起來更為方便。對于片內(nèi)看門狗,是通過兩條特定的賦值指令來完成。此外,也可以也可以用軟件程序來形成來完成。此外,也可以也可以用軟件程序來形成WATCHDOGWATCHDOG。CPUWATCHWATCHDOGDOGRESET脈沖脈沖RESET供電系統(tǒng)抗干擾措施供電系統(tǒng)抗干擾措施(1)(1)防止從電源系統(tǒng)引入干擾,可采取交流穩(wěn)壓器保證供防止從電源系統(tǒng)

18、引入干擾,可采取交流穩(wěn)壓器保證供電的穩(wěn)定性,防止電源的過壓和欠壓。使用隔離變壓器電的穩(wěn)定性,防止電源的過壓和欠壓。使用隔離變壓器濾掉高頻噪聲,低通濾波器濾掉工頻干擾。濾掉高頻噪聲,低通濾波器濾掉工頻干擾。(2)(2)采用開關(guān)電源并提供足夠的功率余量采用開關(guān)電源并提供足夠的功率余量,主機(jī)部分使用,主機(jī)部分使用單獨(dú)的穩(wěn)壓電路,必要時輸入,輸出供電分別采用單獨(dú)的穩(wěn)壓電路,必要時輸入,輸出供電分別采用DC-DCDC-DC模塊隔離,以避免各個部分相互干擾。模塊隔離,以避免各個部分相互干擾。 1.開機(jī)自檢2.軟件陷阱(程序“跑飛”檢測)3.設(shè)置程序運(yùn)行狀態(tài)標(biāo)記4.輸出端口刷新5.輸入多次采樣6.數(shù)據(jù)濾波7

19、.指令冗余8.軟件“看門狗” 常用軟件抗干擾措施常用軟件抗干擾措施:1 1、開機(jī)自檢、開機(jī)自檢開機(jī)后首先對單片機(jī)系統(tǒng)的硬件及軟件狀態(tài)進(jìn)行檢測,一旦發(fā)現(xiàn)不正常,就進(jìn)行相應(yīng)的處理。開機(jī)自檢程序通常包括對RAM、ROM、I/O通道等的檢測。 檢測RAM檢查RAM讀寫是否正常,出錯時應(yīng)作出提示(聲光)或標(biāo)志。方法:1.向RAM單元寫“00H”和“FFH” ,讀出也應(yīng)為“00H”和“FFH” ,檢查通過。 2.不改變RAM單元內(nèi)容的檢查方法。(實(shí)例程序)不改變RAM單元內(nèi)容的檢查方法實(shí)例程序設(shè)有1片6264,地址為2000H3FFFH,結(jié)果F0=1:出錯。 TEST7:TEST7: MOV DPTR,#

20、2000H ;MOV DPTR,#2000H ;診斷診斷62646264MOV R2,#20HMOV R2,#20H ; ;共共20H20H頁頁TEST70TEST70:LCALL TEST75:LCALL TEST75 ; ;JB F0 TEST71JB F0 TEST71 ; ;出錯出錯_ _跳跳DJNZ R2,DJNZ R2,TEST70TEST70TEST71:RETTEST71:RETTEST75:TEST75:SETBSETB F0F0; ;頁內(nèi)檢測頁內(nèi)檢測TEST76TEST76:MOVX A,DPTR:MOVX A,DPTR; ;檢查一個字節(jié)檢查一個字節(jié)MOV B,AMOV B

21、,A; ;保存副本保存副本CPL ACPL A; ;取反取反MOVX DPTR,A ;MOVX DPTR,A ;寫寫MOVX A,DPTR ;MOVX A,DPTR ;讀讀CPL A CPL A ; ;取反取反CJNE A,B,TEST78 ;CJNE A,B,TEST78 ;校對校對, ,錯轉(zhuǎn)錯轉(zhuǎn)MOVX DPTR,A MOVX DPTR,A ; ;恢復(fù)恢復(fù)MOVX A,DPTR ;MOVX A,DPTR ;再讀再讀CJNE A,B,TEST78 ;CJNE A,B,TEST78 ;校對校對, ,錯轉(zhuǎn)錯轉(zhuǎn)INC DPTRINC DPTR ; ;下一單元下一單元MOV A,DPLMOV A,D

22、PLJNZ JNZ TEST76TEST76 ; ;全頁完?全頁完?CLR F0CLR F0TEST78:RETTEST78:RET說明:說明:256Byte256Byte為為1 1頁,頁,1K1K有有4 4頁。頁。62646264是是8KRAM8KRAM,故有,故有3232頁頁=20H=20H頁。頁。檢測ROM對ROM單元的檢測主要是檢查ROM單元的內(nèi)容的校驗(yàn)和。1.將ROM的內(nèi)容逐一相加,放棄進(jìn)位后得到的一個數(shù)值。2.將ROM的內(nèi)容逐一異或相加,得到的一個數(shù)值。校驗(yàn)和求法: 編程完成后,另編程序求出校驗(yàn)和,存入ROM的最后一個單元,校驗(yàn)時用相同方法求校驗(yàn)和并和ROM最后一個單元中的內(nèi)容進(jìn)行

23、比較,若相同則校驗(yàn)通過。校驗(yàn)方法:實(shí)例程序:求校驗(yàn)和程序(異或和)求校驗(yàn)和程序(異或和)設(shè)有1片EPROM2764(8K),地址:0000H 1FFFH方法:在應(yīng)用軟件(包括各種抗干擾措施)編譯后,把目標(biāo)碼調(diào)入開發(fā)系統(tǒng)的RAM中,例如0A000H 0BFFFH,然后用程序求出這8K字節(jié)(最后1個單元除外)的校驗(yàn)和,并把它存入最后1個單元0BFFFH中。至此即可將0A000H 0BFFFH的內(nèi)容寫入2764中了。(程序)求異或校驗(yàn)和程序求異或校驗(yàn)和程序ORG 8000HROMT: MOV DPTR,#0BFFFH;指向最后單元CLR AMOV B,AMOVX DPTR,A;最后單元清零,思考為什

24、么清零?MOV R2,#20H;8K有20H頁MOV DPTR,#0A000HXRT0: MOVX A,DPTRXRL B,AINC DPTRMOV A,DPLJNZ XRT0 ;本頁結(jié)束否,沒結(jié)束跳DJNZ R2, XRT0 ;全部結(jié)束否,沒結(jié)束跳MOV DPTR,#0BFFFH;指向最后單元MOV A,BMOVX DPTR,A ;存異或和RET求和區(qū).008000HBFFFHBFFEH ROMROM檢測程序檢測程序ROMT1:MOV DPTR,#0000H;首地址 MOV R2,#20H MOV B,#0R0MT2: CLR A MOVC A,A+DPTR;讀ROM XRL B,A INC

25、 DPTR MOV A,DPL JNZ ROMT2;本頁校完? DJNZ R2,ROMT2;全部校完? MOV A,B;判斷:A0 正確 RET; A0 出錯檢測檢測I/OI/O通道通道數(shù)字?jǐn)?shù)字I/OI/O通道通道模擬模擬I/OI/O通道通道方法:人機(jī)互動進(jìn)行檢測方法:人機(jī)互動進(jìn)行檢測 數(shù)字I/O通道顯示器件(數(shù)碼管、指示燈) 一般開機(jī)時全部點(diǎn)亮數(shù)秒鐘,或閃亮數(shù)秒種。鍵盤 逐個按動并作相應(yīng)指示來檢查。報(bào)警器(蜂鳴器、喇叭) 開機(jī)鳴響數(shù)秒。通訊口 進(jìn)行通訊檢測。 模擬I/O通道A/D通道 用基準(zhǔn)電壓源進(jìn)行轉(zhuǎn)換,檢查結(jié)果是否正確。D/A通道 輸出標(biāo)準(zhǔn)數(shù)據(jù)(固定之值或步進(jìn)增長值),檢查結(jié)果是否正確。

26、 軟件陷阱軟件陷阱設(shè)置目的:捕捉設(shè)置目的:捕捉“跑飛跑飛”程序程序設(shè)置位置:設(shè)置位置:程序存儲器未使用的區(qū)域程序存儲器未使用的區(qū)域 程序段之間程序段之間 程序存儲器的結(jié)尾處程序存儲器的結(jié)尾處捕捉方法捕捉方法:若干條空操作和無條件跳轉(zhuǎn)指令相結(jié)合若干條空操作和無條件跳轉(zhuǎn)指令相結(jié)合,使,使程序轉(zhuǎn)到程序轉(zhuǎn)到“跑飛跑飛”處理程序入口。處理程序入口。實(shí)例程序?qū)嵗绦?軟件陷阱軟件陷阱NOPNOPNOPLJMP FLY 程序存儲器未使用區(qū)域的代碼程序存儲器未使用區(qū)域的代碼數(shù)據(jù): FFH 相當(dāng)指令:MOV R7,A.FFFFFFFFFF0000H07FFH有程序區(qū)無程序區(qū) 在程序存儲器未使用的區(qū)域設(shè)軟件陷阱在

27、程序存儲器未使用的區(qū)域設(shè)軟件陷阱設(shè)有4K地址范圍:0000H0FFFH,空區(qū)域0800H 0FFFHORG 0800H NOP;軟件陷阱 NOP NOP LJMP FLYORG 0C00H NOP;軟件陷阱 NOP NOP LJMP FLY.NOPNOPNOPLJMPFLY_hFLY_l0000H0FFFH07FFH0800H 程序段之間設(shè)軟件陷阱程序段之間設(shè)軟件陷阱 DSP:;顯示子程序 RET NOP;軟件陷阱 NOP NOP LJMP FLY;D10MS:MOV R0,010H;延時子程序 RET NOP ;軟件陷阱 NOP NOP LJMP FLYFLY: ;“跑飛”處理子程序 RET

28、 在長程序段中的非連續(xù)程序處設(shè)軟件陷阱在長程序段中的非連續(xù)程序處設(shè)軟件陷阱CJNE Rn,#DATA,L1 ;跳轉(zhuǎn)L1 SJMP L2;=跳轉(zhuǎn)L2 NOP ;軟件陷阱 NOP NOP LJMP FLYL1: .L2:. 在程序存儲器的結(jié)尾處設(shè)軟件陷阱在程序存儲器的結(jié)尾處設(shè)軟件陷阱設(shè)ROM為8K,地址范圍:0000H1FFFH ORG 1FFAH 1FFAH: NOP;軟件陷阱 1FFBH: NOP 1FFCH: NOP1FFDH 1FFFH: LJMP FLY.FFFFFFFFFFFF0000H1FFFH0000H如果不設(shè)陷阱,程序又將從頭開始執(zhí)行。ROM地址對應(yīng)指令:MOV R7,A 程序開

29、頭中斷地址處理程序開頭中斷地址處理地址 機(jī)器碼 ORG 0000H0000 020100 STR: LJMP KS0003 0205C5 LJMP WZD0 ;外中斷00006 00 NOP0007 00 NOP0008 020030 LJMP ERR000B 020030 LJMP ERR ;T0中斷(沒用)000E 00 NOP000F 00 NOP0010 020030 LJMP ERR0013 0205E2 LJMP WZD1 ;外中斷10016 00 NOP0017 00 NOP0018 020030 LJMP ERR001B 0205FF LJMP DDS ;定時001B 0205

30、FF LJMP DDS ;定時001E 00 NOP001F 00 NOP0020 020030 LJMP ERR0023 020030 LJMP ERR;串行口中斷(沒用)0026 00 NOP0027 00 NOP0028 020030 LJMP ERR002B 020030 LJMP ERR002E 00 NOP002F 00 NOP 0030 ERR: 注意;沒用到的中斷入口設(shè)置軟件陷阱注意;沒用到的中斷入口設(shè)置軟件陷阱 設(shè)置程序運(yùn)行狀態(tài)標(biāo)記設(shè)置程序運(yùn)行狀態(tài)標(biāo)記程序運(yùn)行狀態(tài)標(biāo)記是在程序運(yùn)行狀態(tài)標(biāo)記是在RAM區(qū)中區(qū)中設(shè)立一些標(biāo)志位,這設(shè)立一些標(biāo)志位,這些標(biāo)志位分別代表程序運(yùn)行的不同階段及

31、運(yùn)行后的狀些標(biāo)志位分別代表程序運(yùn)行的不同階段及運(yùn)行后的狀態(tài)態(tài)。在初始化程序中,首先對這些單元置初值,在程。在初始化程序中,首先對這些單元置初值,在程序運(yùn)行的不同階段,這些單元的內(nèi)容將被改變成特定序運(yùn)行的不同階段,這些單元的內(nèi)容將被改變成特定值,標(biāo)記程序運(yùn)行的階段和運(yùn)行后的狀態(tài)。這些標(biāo)志值,標(biāo)記程序運(yùn)行的階段和運(yùn)行后的狀態(tài)。這些標(biāo)志除了在程序正常運(yùn)行中起到條件轉(zhuǎn)移的作用外,還能除了在程序正常運(yùn)行中起到條件轉(zhuǎn)移的作用外,還能在程序在程序“跑飛跑飛”,而,而RAM區(qū)數(shù)據(jù)正常時起到恢復(fù)程序區(qū)數(shù)據(jù)正常時起到恢復(fù)程序運(yùn)行現(xiàn)場的作用。運(yùn)行現(xiàn)場的作用。 輸出端口刷新由于單片機(jī)的由于單片機(jī)的I/O口很容易受到外

32、部信號的干擾,輸出口口很容易受到外部信號的干擾,輸出口的狀態(tài)也可能因此而改變。在程序中周期性地添加輸出端的狀態(tài)也可能因此而改變。在程序中周期性地添加輸出端刷新指令,可以降低干擾對輸出口狀態(tài)的影響。刷新指令,可以降低干擾對輸出口狀態(tài)的影響。方法:方法:1。在程序中指定。在程序中指定RAM單元存儲輸出口當(dāng)時應(yīng)處的狀態(tài),在單元存儲輸出口當(dāng)時應(yīng)處的狀態(tài),在程序運(yùn)行過程中根據(jù)這些程序運(yùn)行過程中根據(jù)這些RAM單元的內(nèi)容去刷新單元的內(nèi)容去刷新I/O口???。2。輸出時連續(xù)兩次對端口置狀態(tài)。輸出時連續(xù)兩次對端口置狀態(tài)。 SETB P1.0NOPSETB P1.0 輸入多次采樣鍵輸入 要注意消抖。數(shù)據(jù)輸入(如A/

33、D轉(zhuǎn)換結(jié)果) 對輸入數(shù)據(jù)進(jìn)行多次采樣,而后進(jìn)行數(shù)據(jù)濾波。鍵輸入去抖一般每隔10mS讀一次鍵進(jìn)行去抖。讀鍵去抖動執(zhí)行等待鍵釋放讀鍵去抖動執(zhí)行等待鍵釋放實(shí)例1實(shí)例2鍵輸入去抖程序?qū)嵗I輸入去抖程序?qū)嵗?(設(shè)鍵值為設(shè)鍵值為8位,無鍵時為位,無鍵時為FF)KEY:LCALL KEYIN;讀鍵CPL A;取反JZ KEY;取反后,無鍵時全0LCALL TIME;延時10mS,去抖LCALL KEYIN;再讀CPL A;JZKEY;未按,再讀CPLA;恢復(fù)有效鍵碼.;散轉(zhuǎn)到各執(zhí)行模塊.;K_OFF: LCALL KEYIN;讀鍵CJNE A,#0FFH,K_OFF;未釋放,再讀LJMP KEY;已釋放,讀

34、新的按鍵鍵輸入去抖程序?qū)嵗I輸入去抖程序?qū)嵗?(設(shè)一個鍵對應(yīng)一個設(shè)一個鍵對應(yīng)一個I/O口口);高電平輸入有效,讀鍵程序?yàn)椋?;KEY:JNB P1.0,$;設(shè)從P1.0讀入LCALL TIME ;延時10mS,去抖JNB P1.0,KEYKEY1: JB P1.0,$;等鍵釋放LCALL TIMEJB P1.0,KEY1;已釋放 .;散轉(zhuǎn)到各執(zhí)行模塊.;LJMP KEY; 讀新的按鍵實(shí)例實(shí)例2說明說明1。這是一段開關(guān)量輸入信號必加的去抖程序,開關(guān)。這是一段開關(guān)量輸入信號必加的去抖程序,開關(guān)量輸入信號有光電傳感信號、繼電器觸點(diǎn)輸入、水量輸入信號有光電傳感信號、繼電器觸點(diǎn)輸入、水銀接點(diǎn)、干簧管輸入、

35、比較器信號輸出等等。銀接點(diǎn)、干簧管輸入、比較器信號輸出等等。2。去抖方法有多種,要否等鍵釋放、等待時間有否。去抖方法有多種,要否等鍵釋放、等待時間有否限制等諸多因素的考慮,視實(shí)際項(xiàng)目而定。限制等諸多因素的考慮,視實(shí)際項(xiàng)目而定。 試編一段等待按鍵時間為試編一段等待按鍵時間為2秒的程序,秒的程序,2秒之內(nèi)秒之內(nèi)如未按鍵,程序繼續(xù)執(zhí)行。如未按鍵,程序繼續(xù)執(zhí)行。 數(shù)據(jù)濾波為排除干擾的影響,對采樣數(shù)據(jù)為排除干擾的影響,對采樣數(shù)據(jù)必須必須進(jìn)行數(shù)據(jù)濾波。進(jìn)行數(shù)據(jù)濾波。數(shù)據(jù)濾波的數(shù)據(jù)濾波的前提:前提:對同一數(shù)據(jù)進(jìn)行多次采樣。對同一數(shù)據(jù)進(jìn)行多次采樣。數(shù)據(jù)濾波數(shù)據(jù)濾波方法:方法: 中值濾波:中值濾波:一般采樣一般

36、采樣5、7次,排序后取中間值。次,排序后取中間值。 求平均值求平均值:一般采樣:一般采樣8次,求平均值。次,求平均值。 去極值平均濾波:去極值平均濾波:去掉最大最小值后求平均值去掉最大最小值后求平均值 一般采樣一般采樣10 、12次。次。 加權(quán)平均濾波加權(quán)平均濾波:各加權(quán)系數(shù)之和為:各加權(quán)系數(shù)之和為1。 滑動平均濾波滑動平均濾波:本次采樣值和前:本次采樣值和前n次采樣值求平均。次采樣值求平均。 數(shù)據(jù)濾波數(shù)據(jù)濾波方法選用:方法選用:視現(xiàn)場環(huán)境和被測對象而定視現(xiàn)場環(huán)境和被測對象而定。指令冗余MCS51指令系統(tǒng)最多為三字節(jié)指令,指令系統(tǒng)最多為三字節(jié)指令,CPU受干擾后,會把受干擾后,會把雙字節(jié)指令、

37、三字節(jié)指令中的雙字節(jié)指令、三字節(jié)指令中的操作數(shù)當(dāng)作指令碼來執(zhí)行操作數(shù)當(dāng)作指令碼來執(zhí)行,即把多字節(jié)指令拆散了,從而使程序出錯,所以即把多字節(jié)指令拆散了,從而使程序出錯,所以應(yīng)盡量采應(yīng)盡量采用單字節(jié)指令用單字節(jié)指令,并在一些關(guān)鍵地方插入一些單字節(jié)指令,并在一些關(guān)鍵地方插入一些單字節(jié)指令(NOP)或?qū)⒂行巫止?jié)或?qū)⒂行巫止?jié)指令重復(fù)設(shè)置,指令重復(fù)設(shè)置,這便是這便是指令冗余指令冗余。原指令正常入口ANL 30H,#dataJNB bit,rel5330datadata ROM5330data data ROM如跑飛并從此處入口,會形成錯誤指令:正確指令錯誤指令data1 data1 指令錯誤并沖散下條

38、指令data1data1 下條指令指令冗余(續(xù))具體操作:具體操作:1。在雙字節(jié)指令、三字節(jié)指令之后,插入兩條在雙字節(jié)指令、三字節(jié)指令之后,插入兩條NOP指令,這樣保指令,這樣保證其后的指令不被拆散。證其后的指令不被拆散。2 2。在一些對程序流程起決定性作用的。在一些對程序流程起決定性作用的指令前指令前插入兩條插入兩條NOPNOP指令。指令。此類指令有:此類指令有:RETRET、RETIRETI、ACALLACALL、LCALLLCALL、SJMPSJMP、AJMPAJMP、LJMPLJMP、JZJZ、JNZJNZ、JCJC、JNCJNC、JBJB、JNBJNB、CJNECJNE、DJNZDJNZ等。等。RETRETNOPNOP NOP NOP ROMLCALLLCALLdata1data1 data2 data2 ROM NOP NOP NOP NOPLJMPLJMPdata1data1 data2 data2 ROM NOP NOP NOP NOP舉例:舉例:指令冗余(續(xù))說明:說明:1 1。指令冗余降低了系統(tǒng)的效率,所以只有關(guān)鍵地方才加上指令。指令冗余降低了系統(tǒng)的效率,所以只有關(guān)鍵地方才加上指令冗余。冗余。2 2。在冗余指令起作用時,系統(tǒng)已受干擾,并由此可能已使系統(tǒng)。在冗余指令起作用時,系統(tǒng)已受干擾,并由此可能已使系統(tǒng)發(fā)生紊亂。表

溫馨提示

  • 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

提交評論