




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章 MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),主要內(nèi)容: 從總體設(shè)計(jì)、硬件設(shè)計(jì)、軟件設(shè)計(jì)、可靠性設(shè)計(jì)、系統(tǒng)調(diào)試與測(cè)試等幾個(gè)方面介紹了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的方法及基本過(guò)程,并給出了典型設(shè)計(jì)實(shí)例,同時(shí)還簡(jiǎn)單介紹了C51編程方法和Keil C51開(kāi)發(fā)系統(tǒng)。重點(diǎn)在于單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的方法與實(shí)際應(yīng)用,難點(diǎn)在于將單片機(jī)應(yīng)用系統(tǒng)開(kāi)發(fā)的方法應(yīng)用于實(shí)際工程中,設(shè)計(jì)出最優(yōu)的單片機(jī)應(yīng)用系統(tǒng)。,7.1 概述,由于單片機(jī)具有體積小、功耗低、功能強(qiáng)、可靠性高、實(shí)時(shí)性強(qiáng)、簡(jiǎn)單易學(xué)、使用方便靈巧、易于維護(hù)和操作、性能價(jià)格比高、易于推廣應(yīng)用、可實(shí)現(xiàn)網(wǎng)絡(luò)通信等技術(shù)特點(diǎn)。因此,單片機(jī)在自動(dòng)化裝置、智能儀表、家用電器,乃至數(shù)據(jù)采集、工業(yè)控
2、制、計(jì)算機(jī)通信、汽車電子、機(jī)器人等領(lǐng)域得到了日益廣泛的應(yīng)用。 單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)應(yīng)當(dāng)考慮其主要技術(shù)性能(速度 精度 功耗 可靠性 驅(qū)動(dòng)能力等),還應(yīng)當(dāng)考慮功能需求,應(yīng)用需求,開(kāi)發(fā)條件,市場(chǎng)情況,可靠性需求,成本需求,盡量以軟件代替硬件等。下頁(yè)圖描述了單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)的一般過(guò)程。,7.2 MCS-51單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì),7.2.1 總體設(shè)計(jì) 1明確設(shè)計(jì)任務(wù) 認(rèn)真進(jìn)行目標(biāo)分析,根據(jù)應(yīng)用場(chǎng)合、工作環(huán)境、具體用途,考慮系統(tǒng)的可靠性、通用性、可維護(hù)性、先進(jìn)性,以及成本等,提出合理的、詳盡的功能技術(shù)指標(biāo)。 2器件選擇 (1)單片機(jī)選擇 主要從性能指標(biāo)如字長(zhǎng)、主頻、尋址能力、指令系統(tǒng)、內(nèi)部寄存器狀況、存儲(chǔ)
3、器容量、有無(wú)A/D、D/A通道、功耗、價(jià)能比等方面進(jìn)行選擇。對(duì)于一般的測(cè)控系統(tǒng),選擇8位機(jī)即能滿足要求。,(2)外圍器件的選擇 外圍器件應(yīng)符合系統(tǒng)的精度、速度和可靠性、功耗、抗干擾等方面的要求。應(yīng)考慮功耗、電壓、溫度、價(jià)格、封裝形式等其他方面的指標(biāo),應(yīng)盡可能選擇標(biāo)準(zhǔn)化、模塊化、功能強(qiáng)、集成度高的典型電路。 3總體設(shè)計(jì) 總體設(shè)計(jì)就是根據(jù)設(shè)計(jì)任務(wù)、指標(biāo)要求和給定條件,設(shè)計(jì)出符合現(xiàn)場(chǎng)條件的軟、硬件方案。并進(jìn)行方案優(yōu)化。應(yīng)劃分硬件、軟件任務(wù),畫(huà)出系統(tǒng)結(jié)構(gòu)框圖。要合理分配系統(tǒng)內(nèi)部的硬件、軟件資源。包括以下幾個(gè)方面: (1)從系統(tǒng)功能需求出發(fā)設(shè)計(jì)功能模塊。包括顯示器、鍵盤(pán)、數(shù)據(jù)采集、檢測(cè)、通信、控制、驅(qū)動(dòng)
4、、供電方式等 (2)從系統(tǒng)應(yīng)用需求分配元器件資源。包括定時(shí)器/計(jì)數(shù)器、中斷系統(tǒng)、串行口、I/O接口、A/D、D/A、信號(hào)調(diào)理、時(shí)鐘發(fā)生器等。 (3)從開(kāi)發(fā)條件與市場(chǎng)情況出發(fā)選擇元器件。包括仿真器、編程器、元器件、語(yǔ)言、程序設(shè)計(jì)的簡(jiǎn)易等。 (4)從系統(tǒng)可靠性需求確定系統(tǒng)設(shè)計(jì)工藝。包括去耦、光隔、屏蔽、印制板、低功耗、散熱、傳輸距離/速度、節(jié)電方式、掉電保護(hù)、軟件措施等。,7.2.2 硬件設(shè)計(jì),由總體設(shè)計(jì)所給出的硬件框圖所規(guī)定的硬件功能,在確定單片機(jī)類型的基礎(chǔ)上進(jìn)行硬件設(shè)計(jì)、實(shí)驗(yàn)。進(jìn)行必要的工藝結(jié)構(gòu)設(shè)計(jì),制作出印刷電路板,組裝后即完成了硬件設(shè)計(jì)。 一個(gè)單片機(jī)應(yīng)用系統(tǒng)的硬件設(shè)計(jì)包含系統(tǒng)擴(kuò)展和系統(tǒng)的配
5、置(按照系統(tǒng)功能要求配置外圍設(shè)備)兩部分。 1硬件電路設(shè)計(jì)的一般原則 (1)采用新技術(shù),注意通用性,選擇典型電路。 (2)向片上系統(tǒng)(SOC)方向發(fā)展。擴(kuò)展接口盡可能采用PSD等器件。 (3)注重標(biāo)準(zhǔn)化、模塊化。 (4)滿足應(yīng)用系統(tǒng)的功能要求,并留有適當(dāng)余地,以便進(jìn)行二次開(kāi)發(fā)。 (5)工藝設(shè)計(jì)時(shí)要考慮安裝、調(diào)試、維修的方便。,2硬件電路各模塊設(shè)計(jì)的原則,單片機(jī)應(yīng)用系統(tǒng)的一般結(jié)構(gòu) 如下圖所示。,各模塊電路設(shè)計(jì)時(shí)應(yīng)考慮以下幾個(gè)方面: (1)存儲(chǔ)器擴(kuò)展:類型、容量、速度和接口,盡量減少芯片的數(shù)量。 (2)I/O接口的擴(kuò)展:體積、價(jià)格、負(fù)載能力、功能,合適的地址譯碼方法。,(3)輸入通道的設(shè)計(jì):開(kāi)關(guān)量
6、(接口形式、電壓等級(jí)、隔離方式、擴(kuò)展接口等),模擬輸入通道(信號(hào)檢測(cè)、信號(hào)傳輸、隔離、信號(hào)處理、 A/D、擴(kuò)展接口、速度、精度和價(jià)格等)。 (4)輸出通道的設(shè)計(jì):開(kāi)關(guān)量(功率、控制方式等),模擬量輸出通道(輸出信號(hào)的形式、 D/A 、隔離方式、擴(kuò)展接口等) (5)人機(jī)界面的設(shè)計(jì):鍵盤(pán)、開(kāi)關(guān)、撥碼盤(pán)、啟/停操作、復(fù)位、顯示器、打印、指示、報(bào)警、擴(kuò)展接口等。 (6)通信電路的設(shè)計(jì):根據(jù)需要選擇RS-232C、RS-485、紅外收發(fā)等通信標(biāo)準(zhǔn)。 (7)印刷電路板的設(shè)計(jì)與制作:專業(yè)設(shè)計(jì)軟件( Protel,OrCAD等)、設(shè)計(jì)、專業(yè)化制作廠家、安裝元件、調(diào)試等。,(8)負(fù)載容限:總線驅(qū)動(dòng)。 (9)信號(hào)
7、邏輯電平兼容性:電平兼容和轉(zhuǎn)換。 (10)電源系統(tǒng)的配置:電源的組數(shù)、輸出功率、抗干擾。 (11)抗干擾的實(shí)施:芯片、器件選擇、去耦濾波、印刷電路板布線、通道隔離等。 7.2.3 軟件設(shè)計(jì) 軟件設(shè)計(jì)流程圖如右圖所示。可分為以下幾個(gè)方面。,1總體規(guī)劃 結(jié)合硬件結(jié)構(gòu),明確軟件任務(wù),確定具體實(shí)施的方法,合理分配資源。定義輸入/輸出、確定信息交換的方式(數(shù)據(jù)速率、數(shù)據(jù)格式、校驗(yàn)方法、狀態(tài)信號(hào)等)、時(shí)間要求,檢查與糾正錯(cuò)誤。 2程序設(shè)計(jì)技術(shù) 軟件結(jié)構(gòu)實(shí)現(xiàn)結(jié)構(gòu)化,各功能程序?qū)嵭心K化、子程序化。一般有以下兩種設(shè)計(jì)方法: (1)模塊程序設(shè)計(jì):優(yōu)點(diǎn)是單個(gè)功能明確的程序模塊的設(shè)計(jì)和調(diào)試比較方便,容易完成,一個(gè)模
8、塊可以為多個(gè)程序所共享。其缺點(diǎn)是各個(gè)模塊的連接有時(shí)有一定難度。 (2)自頂向下的程序設(shè)計(jì):優(yōu)點(diǎn)是比較符合于人們的日常思維,設(shè)計(jì)、調(diào)試和連接同時(shí)按一個(gè)線索進(jìn)行,程序錯(cuò)誤可以較早的發(fā)現(xiàn)。缺點(diǎn)是上一級(jí)的程序錯(cuò)誤將對(duì)整個(gè)程序產(chǎn)生影響,一處修改可能引起對(duì)整個(gè)程序的全面修改。,3程序設(shè)計(jì),(1)建立數(shù)學(xué)模型:描述出各輸入變量和各輸出變量之間的數(shù)學(xué)關(guān)系。 (2)繪制程序流程圖:以簡(jiǎn)明直觀的方式對(duì)任務(wù)進(jìn)行描述。 (3)程序的編制:選擇語(yǔ)數(shù)據(jù)結(jié)構(gòu)、控制算法、存儲(chǔ)空間分配,系統(tǒng)硬件資源的合理分配與使用,子程序的入/出口參數(shù)的設(shè)置與傳遞。 4軟件裝配 各程序模塊編輯之后,需進(jìn)行匯編或編譯、調(diào)試,當(dāng)滿足設(shè)計(jì)要求后,將
9、各程序模塊按照軟件結(jié)構(gòu)設(shè)計(jì)的要求連接起來(lái),即為軟件裝配。在軟件裝配時(shí),應(yīng)注意軟件接口。,7.2.4 可靠性設(shè)計(jì),可靠性:通常是指在規(guī)定的條件(環(huán)境條件如溫度、濕度、振動(dòng),供電條件等)下,在規(guī)定的時(shí)間內(nèi)(平均無(wú)故障時(shí)間)完成規(guī)定功能的能力。 提高單片機(jī)本身的可靠性措施:降低外時(shí)鐘頻率,采用時(shí)鐘監(jiān)測(cè)電路與看門(mén)狗技術(shù)、低電壓復(fù)位、EFT抗干擾技術(shù)、指令設(shè)計(jì)上的軟件抗干擾等幾方面。 單片機(jī)應(yīng)用系統(tǒng)的主要干擾渠道:空間干擾、過(guò)程通道干擾、供電系統(tǒng)干擾。應(yīng)用于工業(yè)生產(chǎn)過(guò)程中的單片機(jī)應(yīng)用系統(tǒng)中,應(yīng)重點(diǎn)防止供電系統(tǒng)與過(guò)程通道的干擾。,1供電系統(tǒng)干擾與抑制,干擾源:電源及輸電線路的內(nèi)阻、分布電容和電感等。 抗干
10、擾措施:采用交流穩(wěn)壓器、電源低通濾波器、帶屏蔽層的隔離變壓器、獨(dú)立的(或?qū)I(yè)的)直流穩(wěn)壓模塊,交流引線應(yīng)盡量短,主要集成芯片的電源采用去耦電路,增大輸入/輸出濾波電容等措施 。 2過(guò)程通道的干擾與抑制 干擾源:長(zhǎng)線傳輸。單片機(jī)應(yīng)用系統(tǒng)中,從現(xiàn)場(chǎng)信號(hào)輸出的開(kāi)關(guān)信號(hào)或從傳感器輸出的微弱模擬信號(hào),經(jīng)傳輸線送入單片機(jī),信號(hào)在傳輸線上傳輸時(shí),會(huì)產(chǎn)生延時(shí)、畸變、衰減及通道干擾。 抗干擾措施: (1)采用隔離技術(shù):光電隔離、變壓器隔離、繼電器隔離和布線隔離等。典型的信號(hào)隔離是光電隔離。其優(yōu)點(diǎn)是能有效地抑制尖峰脈沖及各種噪聲干擾,從而使過(guò)程通道上的信噪比大大提高。,(2)采用屏蔽措施:金屬盒罩、金屬網(wǎng)狀屏蔽線
11、。但金屬屏蔽本身必須接真正的地(保護(hù)地)。 (3)采用雙絞線傳輸:雙絞線能使各個(gè)小環(huán)路的電磁感應(yīng)干抗相互抵消。其特點(diǎn)是波阻抗高、抗共模噪聲能力強(qiáng),但頻帶較差。 (4)采用長(zhǎng)線傳輸?shù)淖杩蛊ヅ洌河兴姆N形式,如下圖所示。, 終端并聯(lián)阻抗匹配:如上頁(yè)圖(a)所示, RP= R1/R2 ,其特點(diǎn)是終端阻值低,降低了高電平的抗干擾能力。 始端串聯(lián)匹配:如上頁(yè)圖(b)所示,匹配電阻R的取值為RP與A門(mén)輸出低電平的輸出阻抗ROUT(約20)之差值,其特點(diǎn)是終端的低電平抬高,降低了低電平的抗干擾能力。 終端并聯(lián)隔直流匹配:如圖上頁(yè)(c)所示,R=Rp,其特點(diǎn)是增加了對(duì)高電平的抗干擾能力。 終端接鉗位二極管匹配:
12、如圖上頁(yè)(d)所示,利用二極管D把B門(mén)輸入端低電平鉗位在0.3V以下。其特點(diǎn)是減少波的反射和振蕩,提高動(dòng)態(tài)抗干擾能力。 注意:長(zhǎng)線傳輸時(shí),用電流傳輸代替電壓傳輸,可獲得較好的抗干擾能力。,3其他硬件抗干擾措施,(1)對(duì)信號(hào)整形 可采用斯密特電路整形。 (2)組件空閑輸入端的處理 組件空閑輸入端的處理方法如下圖所示。其中,圖(a)所示的方法最簡(jiǎn)單,但增加了前級(jí)門(mén)的負(fù)擔(dān)。圖(b)所示的方法適用于慢速、多干擾的場(chǎng)合。圖(c)利用印刷電路板上多余的反相器,讓其輸入端接地,使其輸出去控制工作門(mén)不用的輸入端。,(3)機(jī)械觸點(diǎn),接觸器、可控硅的噪聲抑制 開(kāi)關(guān)、按鈕、繼電器觸點(diǎn)等在操作時(shí)應(yīng)采取去抖處理。 在輸
13、入/輸出通道中使用接觸器、繼電器時(shí),應(yīng)在線圈兩端并接噪聲抑制器,繼電器線圈處要加裝放電二極管。 可控硅兩端并接RC抑制電路,可減小可控硅產(chǎn)生的噪聲。 (4)印刷電路板(PCB)設(shè)計(jì)中的抗干擾問(wèn)題 合理選擇PCB板的層數(shù),大小要適中,布局、分區(qū)應(yīng)合理,把相互有關(guān)的元件盡量放得靠近一些。印刷導(dǎo)線的布設(shè)應(yīng)盡量短而寬,盡量減少回路環(huán)的面積,以降低感應(yīng)噪聲。導(dǎo)線的布局應(yīng)當(dāng)是均勻的、分開(kāi)的平行直線,以得到一條具有均勻波阻抗的傳輸通路。應(yīng)盡可能地減少過(guò)孔的數(shù)量。在PCB板的各個(gè)關(guān)鍵部位應(yīng)配置去耦電容。要將強(qiáng)、弱電路嚴(yán)格分開(kāi),盡量不要把它們?cè)O(shè)計(jì)在一塊印刷電路板上。電源線的走向應(yīng)盡量與數(shù)據(jù)傳遞方向一致,電源線、
14、地線應(yīng)盡量加粗,以減小阻抗。,(5)地線設(shè)計(jì) 地線結(jié)構(gòu)大致有保護(hù)地、系統(tǒng)地、機(jī)殼地(屏蔽地)、數(shù)字地、模擬地等。 在設(shè)計(jì)時(shí),數(shù)字地和模擬地要分開(kāi),分別與電源端地線相連;屏蔽線根據(jù)工作頻率可采用單點(diǎn)接地或多點(diǎn)接地;保護(hù)地的接地是指接大地。不能把接地線與動(dòng)力線的零線混淆。 此外,應(yīng)提高元器件的可靠性,注意各電路之間的電平匹配,總線驅(qū)動(dòng)能力要符合要求,單片機(jī)的空閑端要接地或接電源,或者定義成輸出。室外使用的單片機(jī)系統(tǒng)或從室外架空引入室內(nèi)的電源線、信號(hào)線,要防止雷擊,常用的防雷擊器件有:氣體放電管,TVS(瞬態(tài)電壓抑制器)等。,4軟件的抗干擾設(shè)計(jì),常用的軟件抗干擾技術(shù)有軟件陷阱、時(shí)間冗余、指令冗余、空
15、間冗余、容錯(cuò)技術(shù)、設(shè)置特征標(biāo)志和軟件數(shù)字濾波等 (1)實(shí)時(shí)數(shù)據(jù)采集系統(tǒng)的軟件抗干擾 采用軟件數(shù)字濾波。常用的方法有以下幾種: 算術(shù)平均值法:對(duì)一點(diǎn)數(shù)據(jù)連續(xù)采樣多次(可取35次),以平均值作為該點(diǎn)的采樣結(jié)果。這種方法可以減少系統(tǒng)的隨機(jī)干擾對(duì)采集結(jié)果的影響。 比較舍取法:對(duì)每個(gè)采樣點(diǎn)連續(xù)采樣幾次,根據(jù)所采樣數(shù)據(jù)的變化規(guī)律,確定取舍辦法來(lái)剔除偏差數(shù)據(jù)。例如,“采三取二”,即對(duì)每個(gè)采樣點(diǎn)連續(xù)采樣三次,取兩次相同數(shù)據(jù)作為采樣結(jié)果。 中值法:對(duì)一個(gè)采樣點(diǎn)連續(xù)采集多個(gè)信號(hào),并對(duì)這些采樣值進(jìn)行比較,取中值作為該點(diǎn)的采樣結(jié)果。, 一階遞推數(shù)字濾波法:利用軟件完成RC低通濾波器的算法。 其公式為:Yn=QXn+(
16、1Q)Yn1 其中:Q 數(shù)字濾波器時(shí)間常數(shù); Xn第n次采樣時(shí)的濾波器的輸入; Yn1第n1次采樣時(shí)的濾波器的輸出。 Yn第n次采樣時(shí)的濾波器的輸出。 注意:選取何種方法必須根據(jù)信號(hào)的變化規(guī)律予以確定。 (2)開(kāi)關(guān)量控制系統(tǒng)的軟件抗干擾 可采取軟件冗余、設(shè)置當(dāng)前輸出狀態(tài)寄存單元、設(shè)置自檢程序等軟件抗干擾措施。,5程序運(yùn)行失常的軟件對(duì)策,程序運(yùn)行失常:當(dāng)系統(tǒng)受到干擾侵害,致使程序計(jì)數(shù)器PC值改變,造成程序的無(wú)序運(yùn)行,甚至進(jìn)入死循環(huán)。 程序運(yùn)行失常的軟件對(duì)策:發(fā)現(xiàn)失常狀態(tài)后,及時(shí)引導(dǎo)系統(tǒng)恢復(fù)原始狀態(tài)??刹捎靡韵路椒ǎ?(1)程序監(jiān)視定時(shí)器(Watchdag,WDT)技術(shù) 程序監(jiān)視定時(shí)器(也稱為“看
17、門(mén)狗” )的作用:通過(guò)不斷監(jiān)視程序每周期的運(yùn)行事件是否超過(guò)正常狀態(tài)下所需要的時(shí)間,從而判斷程序是否進(jìn)入了“死循環(huán)”,并對(duì)進(jìn)入“死循環(huán)”的程序作出系統(tǒng)復(fù)位處理。 “看門(mén)狗”技術(shù):可由硬件、軟件或軟硬結(jié)合實(shí)現(xiàn)。 硬件“看門(mén)狗”可以很好地解決主程序陷入死循環(huán)的故障,但是,嚴(yán)重的干擾有時(shí)會(huì)出現(xiàn)中斷關(guān)閉故障使系統(tǒng)無(wú)法定時(shí)“喂狗”,無(wú)法探測(cè)到這種故障,硬件“看門(mén)狗”電路失效。,表2-5 工作寄存器組選擇控制表, 軟件“看門(mén)狗” 可以保證對(duì)中斷關(guān)閉故障的發(fā)現(xiàn)和處理,但若單片機(jī)的死循環(huán)發(fā)生在某個(gè)高優(yōu)先級(jí)的中斷服務(wù)程序中,軟件“看門(mén)狗”也無(wú)法完成其作用。 利用軟硬結(jié)合的“看門(mén)狗”組合可以克服單一“看門(mén)狗”功能的
18、缺陷,從而實(shí)現(xiàn)對(duì)故障的全方位監(jiān)控。 (2)設(shè)置軟件陷阱 軟件陷阱:指將捕獲的“跑飛”程序引向復(fù)位入口地址0000H的指令。 設(shè)置方法: 在EPROM中,非程序區(qū)設(shè)置軟件陷阱,軟件陷阱一般1KB空間有23個(gè)就可以進(jìn)行有效攔截。指令如下: NOP NOP LJMP 0000H, 在未使用的中斷服務(wù)程序中設(shè)置軟件陷阱,能及時(shí)捕獲錯(cuò)誤的中斷。指令如下: NOP NOP RETI (3)指令冗余技術(shù) 指令冗余:在程序的關(guān)鍵地方人為插入一些單字節(jié)指令,或?qū)⒂行巫止?jié)指令重寫(xiě),稱為指令冗余。 作用:可將“跑飛”程序納入正軌。 設(shè)置方法:通常是在雙字節(jié)指令和三字節(jié)指令后插入兩個(gè)字節(jié)以上的NOP。這樣即使程序“
19、跑飛”到操作數(shù)上,由于空操作指令NOP的存在,避免了后面的指令被當(dāng)做操作數(shù)執(zhí)行,程序自動(dòng)納入正軌。此外,對(duì)系統(tǒng)流向起重要作用的指令(如RET,RETI,LCALL,LJMP,JC等指令)之前也可插入兩條NOP指令,確保這些重要指令的執(zhí)行。,單片機(jī)應(yīng)用系統(tǒng)的軟、硬件制作完成后,必須反復(fù)進(jìn)行調(diào)試、修改,直至完全正常工作,經(jīng)過(guò)測(cè)試,功能完全符合系統(tǒng)性能指標(biāo)要求,應(yīng)用系統(tǒng)設(shè)計(jì)才算完成。 1硬件調(diào)試 (1)靜態(tài)檢查 根據(jù)硬件電路圖核對(duì)元器件的型號(hào)、極性、安裝是否正確,檢查硬件電路連線是否與電路圖一致,有無(wú)短路、虛焊等現(xiàn)象。 (2)通電檢查 通電檢查時(shí),可以模擬各種輸入信號(hào)分別送入電路的各有關(guān)部分,觀察I
20、/O口的動(dòng)作情況,查看電路板上有無(wú)元件過(guò)熱、冒煙、異味等現(xiàn)象,各相關(guān)設(shè)備的動(dòng)作是否符合要求,整個(gè)系統(tǒng)的功能是否符合要求。,7.2.5 單片機(jī)應(yīng)用系統(tǒng)的調(diào)試、測(cè)試,2軟件調(diào)試 程序模塊編寫(xiě)完成后,通過(guò)匯編或編譯后,在開(kāi)發(fā)系統(tǒng)上進(jìn)行調(diào)試。調(diào)試時(shí)應(yīng)先分別調(diào)試各模塊子程序,調(diào)試通過(guò)后,再調(diào)試中斷服務(wù)子程序,最后調(diào)試主程序,并將各部分進(jìn)行聯(lián)調(diào)。 3系統(tǒng)調(diào)試 當(dāng)硬件和軟件調(diào)試完成之后,就可以進(jìn)行全系統(tǒng)軟、硬件調(diào)試,對(duì)于有電氣控制負(fù)載的系統(tǒng),應(yīng)先試驗(yàn)空載,空載正常后再試驗(yàn)負(fù)載情況。系統(tǒng)調(diào)試的任務(wù)是排除軟、硬件中的殘留錯(cuò)誤,使整個(gè)系統(tǒng)能夠完成預(yù)定的工作任務(wù),達(dá)到要求的性能指標(biāo)。 4程序固化 系統(tǒng)調(diào)試成功之后,
21、就可以將程序通過(guò)專用程序固化器固化到ROM中。,5脫機(jī)運(yùn)行調(diào)試 將固化好程序的ROM插回到應(yīng)用系統(tǒng)電路板的相應(yīng)位置,即可脫機(jī)運(yùn)行。系統(tǒng)試運(yùn)行要連續(xù)運(yùn)行相當(dāng)長(zhǎng)的時(shí)間(也稱為考機(jī)),以考驗(yàn)其穩(wěn)定性。并要進(jìn)一步進(jìn)行修改和完善處理。 6測(cè)試單片機(jī)系統(tǒng)的可靠性 單片機(jī)系統(tǒng)設(shè)計(jì)完成時(shí),一般需進(jìn)行單片機(jī)軟件功能的測(cè)試,上電、掉電測(cè)試,老化測(cè)試,靜電放電(ElectroStatic Discharge,ESD)抗擾度和電快進(jìn)瞬變脈沖群(Electrical Fast Transient,EFT)抗擾度等測(cè)試。可以使用各種干擾模擬器來(lái)測(cè)試單片機(jī)系統(tǒng)的可靠性,還可以模擬人為使用中可能發(fā)生的破壞情況。 經(jīng)過(guò)調(diào)試、測(cè)
22、試后,若系統(tǒng)完全正常工作,功能完全符合系統(tǒng)性能指標(biāo)要求,則一個(gè)單片機(jī)應(yīng)用系統(tǒng)的研制過(guò)程全部結(jié)束。,7.3 C51編程簡(jiǎn)介,MCS-51的編程語(yǔ)言常用的有兩種,一種是匯編語(yǔ)言,一種是C語(yǔ)言(C51)。 匯編語(yǔ)言的特點(diǎn):機(jī)器代碼生成效率很高,可讀性差,編程難度大。 C51的特點(diǎn):C語(yǔ)言程序本身不依賴于機(jī)器硬件系統(tǒng),基本上不作修改就可將程序從不同的單片機(jī)中移植過(guò)來(lái)。 C51提供了很多數(shù)學(xué)函數(shù)并支持浮點(diǎn)運(yùn)算,開(kāi)發(fā)效率高,程序的可讀性和可維護(hù)性較好。而且C51還可以嵌入?yún)R編語(yǔ)言來(lái)解決高時(shí)效性的代碼編寫(xiě)問(wèn)題。,7.3.1 MCS-51單片機(jī)C51語(yǔ)言簡(jiǎn)介,1. C51的優(yōu)點(diǎn) C51與ASM-51(匯編語(yǔ)言
23、)相比,有如下優(yōu)點(diǎn): 對(duì)單片機(jī)的指令系統(tǒng)、硬件不要求了解,僅要求對(duì)MCS-51的存儲(chǔ)器結(jié)構(gòu)有初步了解,就能夠編程。 程序有規(guī)范的結(jié)構(gòu),易于結(jié)構(gòu)化、模塊化和移植,已編好的程序可以很容易地植入新程序。 寄存器分配、存儲(chǔ)器的尋址及數(shù)據(jù)類型,中斷服務(wù)程序的現(xiàn)場(chǎng)保護(hù)和恢復(fù),中斷向量表的填寫(xiě)都由C51編譯器處理。 提供豐富的庫(kù)函數(shù)供用戶直接調(diào)用,不同函數(shù)的數(shù)據(jù)實(shí)行覆蓋,有效地利用了片上有限的RAM空間。具有較強(qiáng)的數(shù)據(jù)處理能力。, C51提供了復(fù)雜的數(shù)據(jù)類型(數(shù)組、結(jié)構(gòu)、聯(lián)合、枚舉、指針等),極大地增強(qiáng)了程序處理能力和靈活性;提供auto,extern,static,const等存儲(chǔ)類型和專門(mén)針對(duì)MCS-5
24、1單片機(jī)的data,bdata,idata,pdata,xdata,code等存儲(chǔ)類型,自動(dòng)為變量合理地分配地址;提供small,compact,large等編譯模式,以適應(yīng)片上存儲(chǔ)器的大?。煌暾木幾g控制指令為程序調(diào)試提供必要的符號(hào)信息。 頭文件中允許定義宏、說(shuō)明復(fù)雜數(shù)據(jù)類型和函數(shù)原型,有利于程序的移植和支持單片機(jī)的系列化產(chǎn)品的開(kāi)發(fā)。 可方便地接受多種實(shí)用程序的服務(wù),有專門(mén)的實(shí)用程序自動(dòng)生成;有實(shí)時(shí)多任務(wù)操作系統(tǒng),可調(diào)度多道任務(wù),簡(jiǎn)化用戶編程,提高運(yùn)行的安全性等。 2. 單片機(jī)C51語(yǔ)言與C語(yǔ)言的異同 單片機(jī)的C51是繼承了標(biāo)準(zhǔn)C的絕大部分的特性,基本語(yǔ)法相同,但其本身在特定的硬件結(jié)構(gòu)上又有
25、所擴(kuò)展(如專門(mén)針對(duì)MCS-51單片機(jī)的存儲(chǔ)類型等 ),需要在C51的實(shí)際編程應(yīng)用過(guò)程中逐步體會(huì)。,7.3.2 C51的基本語(yǔ)法,1. C51的程序結(jié)構(gòu) 與一般C語(yǔ)言的結(jié)構(gòu)相同,以main()函數(shù)為程序入口,程序體中包含若干語(yǔ)句,還可以包含若干函數(shù)。 2. C51的數(shù)據(jù)類型 常用的數(shù)據(jù)類型有:位型(bit,1位)、字符型(char,1字節(jié))、整型(int,2字節(jié))、長(zhǎng)整型(long int,4字節(jié))、浮點(diǎn)型(float,4字節(jié))、數(shù)組型、指針型等。 3. C51數(shù)據(jù)的存儲(chǔ)類型 C51數(shù)據(jù)的存儲(chǔ)類型如下表所示。,4. C51包含的頭文件 C51包含的頭文件通常有reg51.h,math.h,cty
26、pe.h,stdio.h,stdlib.h,absacc.h。其中,常用的有reg51.h(定義特殊功能寄存器和位寄存器)和math.h(定義常用數(shù)學(xué)運(yùn)算)。 5.C51的運(yùn)算符 C51的運(yùn)算符與C語(yǔ)言基本相同:+(加)、-(減)、*(乘)、/(除)、(大于)、=(大于等于)、(位右移)、(位左移)、 void timer0(void)interrupt 1 using 1 /*T0中斷服務(wù)程序入口*/ P1_0=!P1_0; TH0=-(1000/256); /*計(jì)數(shù)初值重裝*/ TL0=-(1000%256); void main(void) TMOD=0 x01; /*T0工作在定時(shí)器方
27、式1*/ P1_0=0; TH0=-(1000/256); /*預(yù)置計(jì)數(shù)初值*/ TL0=-(1000%256); EA=1; /*CPU開(kāi)中斷*/ ET0=1; /*T0開(kāi)中斷*/ TR0=1; /*啟動(dòng)T0*/ dowhile(1); ,注意:在編寫(xiě)中斷服務(wù)程序時(shí)必須注意不能進(jìn)行參數(shù)傳遞,不能有返回值。 例題 拆字程序。將2000H的內(nèi)容拆開(kāi),高位送2001H低位,低位送2002H低位。 解:匯編語(yǔ)言程序如下: ORG 1000H SE02:MOV DPTR, #2000H MOVX A, DPTR MOV B, A ; (2000H)AB SWAP A ; 交換 ANL A, #0FH
28、; 屏蔽高位 INC DPTR MOVX DPTR, A ; 送2001H INC DPTR MOV A, B ANL A, #0FH ; (2000H)內(nèi)容屏蔽高位 MOVX DPTR, A ; 送2002H SJMP $ END,C51程序如下: #include main( ) unsigned char xdata *p=0 x2000;/*指針指向2000H單元*/ /* 2002H單元高4位清零,低4位裝2000H單元低4位 */ *(p+2)=(*p) ,7.4 單片機(jī)應(yīng)用系統(tǒng)舉例,7.4.1 單片機(jī)在控制系統(tǒng)中的應(yīng)用 單片機(jī)的一個(gè)廣泛應(yīng)用領(lǐng)域就是控制系統(tǒng)。 1設(shè)計(jì)思想 通過(guò)傳感
29、電路不斷循環(huán)檢測(cè)室內(nèi)溫度、濕度、有害氣體(如煤氣)濃度等環(huán)境參數(shù),然后與由控制鍵盤(pán)預(yù)置的參數(shù)臨界值相比較,從而作出開(kāi)/關(guān)窗、啟/停換氣扇、升/降溫(濕)等判斷,再結(jié)合窗狀態(tài)檢測(cè)電路所檢測(cè)到的窗狀態(tài),發(fā)出一系列的控制命令,完成下雨則自動(dòng)關(guān)窗、室內(nèi)有害氣體超標(biāo)則自動(dòng)開(kāi)窗、開(kāi)/啟換氣扇、恒溫(濕)等自動(dòng)控制功能。用戶還可通過(guò)控制鍵盤(pán),直接控制窗戶的開(kāi)/關(guān)、換氣扇的啟/停、溫(濕)度的升/降,選擇所顯示參數(shù)的種類等。 2系統(tǒng)組成和部分電路設(shè)計(jì) 控制系統(tǒng)主要由控制器、數(shù)據(jù)檢測(cè)傳感電路、A/D轉(zhuǎn)換器、窗驅(qū)動(dòng)控制接口電路、窗驅(qū)動(dòng)電路等組成。其系統(tǒng)原理圖如下頁(yè)圖所示。,控制器采用美國(guó)Atmel公司的AT89C
30、51單片機(jī)。利用89C51的P0口采集數(shù)據(jù),完成控制信息的采集和控制功能。利用P1.0P1.3作為窗狀態(tài)檢測(cè)端口,完成對(duì)窗狀態(tài)(即窗是否移到邊框)的檢測(cè)。 數(shù)據(jù)檢測(cè)傳感電路由溫度傳感電路、濕度傳感電路、有害氣體傳感電路、紅外防盜傳感器四個(gè)部分組成。在此只以溫度傳感電路為例進(jìn)行設(shè)計(jì)。,根據(jù)溫度檢測(cè)的要求,溫度的檢測(cè)選用集成溫度傳感器AD590(測(cè)溫范圍為55+150)。測(cè)量電路如圖右所示。,傳感器的采集信號(hào)經(jīng)過(guò)數(shù)據(jù)處理電路,必須通過(guò)A/D轉(zhuǎn)換器才能與單片機(jī)連接,本系統(tǒng)中有4路模擬輸入, A/D轉(zhuǎn)換器選用了ADC0809,89C51通過(guò)中斷方式讀取A/D轉(zhuǎn)換的數(shù)據(jù)。通過(guò)A/D轉(zhuǎn)換實(shí)現(xiàn)的數(shù)據(jù)采集電路
31、如下圖所示。 A/D轉(zhuǎn)換器的口地址為7FFFH。,根據(jù)驅(qū)動(dòng)信號(hào)與所控對(duì)象的關(guān)系,將系統(tǒng)的驅(qū)動(dòng)電路分解為移窗驅(qū)動(dòng)電路、換窗驅(qū)動(dòng)電路、鎖窗驅(qū)動(dòng)電路、溫度調(diào)節(jié)驅(qū)動(dòng)電路、濕度調(diào)節(jié)驅(qū)動(dòng)電路、換氣扇驅(qū)動(dòng)電路和報(bào)警驅(qū)動(dòng)電路等,分別用它們?nèi)タ刂?個(gè)對(duì)象。 窗狀態(tài)檢測(cè)電路采用4個(gè)開(kāi)關(guān)型磁敏器件。在外窗、內(nèi)窗的左、右邊上,與磁敏器件相對(duì)應(yīng)的地方,各貼上一小片磁鐵,當(dāng)小磁鐵隨窗戶的移動(dòng)而移近相對(duì)應(yīng)的磁敏器件時(shí),該磁敏器件的輸出信號(hào)從高電平變?yōu)榈碗娖?,表示窗戶已移到相?yīng)邊上。 鍵盤(pán)輸入及顯示電路采用Intel公司生產(chǎn)的8279通用可編程鍵盤(pán)、顯示器接口芯片??蓪?shí)現(xiàn)對(duì)鍵盤(pán)和顯示器的自動(dòng)掃描,并識(shí)別鍵盤(pán)上閉合鍵的鍵號(hào)。
32、對(duì)于控制鍵盤(pán),采用微動(dòng)開(kāi)關(guān)制作,并安裝在窗戶的固定邊框上。通過(guò)控制鍵盤(pán),用戶可設(shè)置各環(huán)境參數(shù)的臨界值、隨意選擇所顯示參數(shù)的種類、直接控制窗戶的開(kāi)/關(guān)、換氣扇的啟/停、溫(濕)度的升/降等。,3軟件設(shè)計(jì),控制系統(tǒng)的軟件主要由一個(gè)主程序和兩個(gè)中斷服務(wù)程序等組成。 主程序的主要作用是在系統(tǒng)復(fù)位后對(duì)系統(tǒng)進(jìn)行初始化,設(shè)置8279,ADC0809等的工作方式和初始狀態(tài),設(shè)置各中斷的優(yōu)先級(jí)別并開(kāi)中斷,首次啟動(dòng)A/D轉(zhuǎn)換等,然后向8279循環(huán)送顯示字符,進(jìn)行顯示。程序框圖如右上圖所示。 鍵中斷服務(wù)程序的主要作用是在AT89 C51響應(yīng)中斷(有鍵按下,則產(chǎn)生該中斷)后,讀出鍵值,并根據(jù)鍵值依序發(fā)出相應(yīng)的控制命令
33、字,完成相應(yīng)的控制功能。該中斷應(yīng)設(shè)為高優(yōu)先級(jí)。程序框圖如右下圖所示。,循環(huán)檢測(cè)中斷服務(wù)程序的主要作用是在89C51響應(yīng)中斷后,將A/D轉(zhuǎn)換結(jié)果送相應(yīng)緩沖區(qū),然后判斷該轉(zhuǎn)換結(jié)果是否在上、下限值之間,并根據(jù)判斷結(jié)果按序發(fā)出相應(yīng)的控制命令字,完成相應(yīng)的控制、報(bào)警功能。然后重新選擇被轉(zhuǎn)換量,再次啟動(dòng)A/D轉(zhuǎn)換后,返回主程序。該中斷應(yīng)設(shè)為低優(yōu)先級(jí),并設(shè)為電平觸發(fā)方式。程序流程圖如右圖所示。,7.4.2 單片機(jī)在家用電器中的應(yīng)用,單片機(jī)在家電行業(yè)具有廣泛的應(yīng)用。下面以單片機(jī)在電冰箱控制系統(tǒng)中的應(yīng)用為例加以介紹。 1總體方案設(shè)計(jì) 直冷式電冰箱的控制原理:根據(jù)蒸發(fā)器的溫度控制制冷壓縮機(jī)的啟動(dòng)、停止,使冰箱內(nèi)的
34、溫度保持在設(shè)定溫度范圍內(nèi)。 采用單片機(jī)控制壓縮機(jī)的啟動(dòng)和停止,可以使控制更準(zhǔn)確、更靈活。 電冰箱采用單片機(jī)控制的性能指標(biāo)如下: 設(shè)定3個(gè)測(cè)溫點(diǎn),測(cè)量范圍在26+26之間,精度為0.5。 利用功能鍵分別控制溫度設(shè)定、速凍設(shè)定、冷藏室及冷凍室溫度設(shè)定等。, 利用數(shù)碼管顯示冷凍室、冷藏室溫度,壓縮機(jī)啟動(dòng)、停止和速凍、報(bào)警狀態(tài)。 制冷壓縮機(jī)停機(jī)后,自動(dòng)延時(shí)3分鐘才能再啟動(dòng)。 電冰箱具有自動(dòng)除霜功能,當(dāng)霜的厚度達(dá)3cm時(shí)自動(dòng)除霜。 開(kāi)門(mén)延時(shí)超過(guò)2分鐘發(fā)出聲音報(bào)警。 連續(xù)速凍時(shí)間設(shè)定范圍為18小時(shí)。 工作電壓在180240V之間,當(dāng)欠壓或過(guò)壓時(shí),禁止啟動(dòng)壓縮機(jī),并用指示燈顯示。 根據(jù)上面所列出的控制系統(tǒng)要
35、求,可估算出所需要的程序存儲(chǔ)器的容量不會(huì)超過(guò)4KB,因此可以采用Philips公司生產(chǎn)的80C51單片機(jī)(片內(nèi)有4KB的ROM, 128字節(jié)的RAM ),不用進(jìn)行外部擴(kuò)展存儲(chǔ)器,可以大大簡(jiǎn)化系統(tǒng)的硬件電路。此外,80C51單片機(jī)在市場(chǎng)上的貨源充足,技術(shù)比較成熟,同時(shí)也具有較好的開(kāi)發(fā)環(huán)境。,2硬件設(shè)計(jì),(1)主電路設(shè)計(jì) 主電路采用80C51單片機(jī),擴(kuò)展一片A/D轉(zhuǎn)換芯片ADC0809,構(gòu)成基本的系統(tǒng)。由于本系統(tǒng)無(wú)通信要求,可以通過(guò)串行口擴(kuò)展四片74LS164作為四位LED顯示器接口和一片74LS164來(lái)實(shí)現(xiàn)鍵盤(pán)功能。本系統(tǒng)還有一些附加的電路,如除霜電路、電壓檢測(cè)電路和開(kāi)關(guān)報(bào)警電路等。電冰箱控制系
36、統(tǒng)的電路原理圖如下頁(yè)圖所示。 (2)A/D轉(zhuǎn)換電路 A/D轉(zhuǎn)換電路采用ADC0809。ADC0809共有8路模擬輸入通道(本系統(tǒng)只用到其中的4路IN0IN3 )。其中,IN0作為冷凍室溫度檢測(cè)通道,IN1作為冷藏室溫度檢測(cè)通道,IN2作為除霜檢測(cè)通道,IN3作為電源電壓檢測(cè)通道。ADC0809與單片機(jī)接口電路見(jiàn)電路原理圖如下頁(yè)圖所示。,上頁(yè)圖中,ADC0809的A,B,C三個(gè)引腳直接和80C51單片機(jī)的P0.0P0.2三個(gè)引腳相連,用于選擇不同的模擬通道信號(hào)。P1.6與讀寫(xiě)控制信號(hào)端和經(jīng)過(guò)或非門(mén)連接到ADC0809的START,ALE,OE端,分別控制ADC0809的啟動(dòng)、地址鎖存、讀操作和寫(xiě)
37、操作。ADC0809的EOC端懸空,A/D轉(zhuǎn)換后利用軟件延時(shí)一段時(shí)間來(lái)讀取轉(zhuǎn)換后的數(shù)據(jù)。 (3)功能鍵和顯示電路 功能鍵和顯示電路如上頁(yè)圖所示。采用6個(gè)功能鍵控制冷凍室、冷藏室及速凍溫度設(shè)定,4位LED顯示器用于顯示冷凍、冷藏室溫度,以及壓縮機(jī)啟動(dòng)、停止和報(bào)警等狀態(tài)。 LED顯示及功能鍵都是通過(guò)80C51的串行口擴(kuò)展的。顯示輸出通道和鍵盤(pán)輸入通道的選擇由端口線P3.2和與門(mén)完成。當(dāng)P3.2為“1”時(shí),數(shù)據(jù)輸出到顯示器。當(dāng)P3.2為“0”時(shí),80C51王誠(chéng)對(duì)鍵盤(pán)的掃描。,(4)除霜電路 選用MF53-1型熱敏電阻作為溫度傳感器(Rt),它具有負(fù)溫度系數(shù),靈敏度較高。把熱敏電阻安裝在距蒸發(fā)器3mm
38、的某個(gè)合適的位置上,當(dāng)霜厚大于3mm時(shí),熱敏電阻Rt接觸到霜從而感受到較低的溫度,其電阻值變大,A點(diǎn)溫度降低,運(yùn)算放大器輸出信號(hào)有變化,經(jīng)A/D轉(zhuǎn)換后送入CPU,經(jīng)單片機(jī)分析、判斷,給出除霜命令。除霜電路如下圖所示。,熱敏電阻Rt的阻值和溫度的關(guān)系為: (k) A點(diǎn)電壓與溫度的關(guān)系為: (5)制冷壓縮機(jī)和除霜電熱絲啟動(dòng)、停止控制電路 其電路如下頁(yè)圖所示,加熱絲和壓縮機(jī)的工作原理如下: 80C51單片機(jī)控制信號(hào)經(jīng)P1.3和P1.4端口輸出,并通過(guò)P1.7的控制,將信號(hào)鎖存在74LS273中,74LS273的輸出經(jīng)過(guò)達(dá)林頓驅(qū)動(dòng)器DS2003后,驅(qū)動(dòng)固態(tài)繼電器RELAY1和RELAY2。當(dāng)DS200
39、3的16腳有高電平輸出時(shí),RELAY1的3,4腳接通,使加熱絲接通電源,開(kāi)始除霜。當(dāng)DS2003的15腳輸出高電平時(shí),RELAY2的3,4腳接通,使壓縮機(jī)繞組接通電源而啟動(dòng),開(kāi)始制冷。74LS273的鎖存控制信號(hào),一方面增加輸出功率,另一方面也防止單片機(jī)復(fù)位時(shí)引起控制的誤動(dòng)作。,電冰箱控制程序主要分為三大部分:主程序、定時(shí)器T0中斷服務(wù)程序和定時(shí)器T1中斷服務(wù)程序。 (1)主程序 主程序是整個(gè)電冰箱的總控制程序,主要實(shí)現(xiàn)控制各單元初始化、控制中斷、定時(shí)、顯示、鍵盤(pán)程序的啟動(dòng)與重復(fù)等功能。主程序的程序流程圖如右圖所示。,3軟件設(shè)計(jì),T0中斷服務(wù)程序主要完成電源欠壓、過(guò)壓處理,開(kāi)門(mén)狀態(tài)檢查,以及處
40、理等功能。其程序流程圖如右圖所示。,(2)T0中斷服務(wù)程序,(3)Tl中斷服務(wù)程序 Tl工作于計(jì)數(shù)方式,用于制冷壓縮機(jī)停機(jī)后自動(dòng)延時(shí)3分鐘才能再啟動(dòng)的時(shí)間延時(shí)。Tl的中斷服務(wù)程序主要完成3分鐘定時(shí),以及溫度、除霜、速凍等各種檢測(cè),根據(jù)檢測(cè)結(jié)果,比較、分析得出執(zhí)行元器件工作的狀態(tài),并控制對(duì)應(yīng)的元器件工作。Tl中斷服務(wù)程序流程圖如右圖所示。,7.4.3 單片機(jī)在里程、速度計(jì)量中的應(yīng)用,設(shè)計(jì)要求:利用單片機(jī)實(shí)現(xiàn)的自行車?yán)锍?速度計(jì)能自動(dòng)顯示自行車行駛的總里程數(shù)及自行車行駛速度,具有超速信號(hào)提醒功能,里程數(shù)據(jù)自動(dòng)記憶。也可應(yīng)用于電動(dòng)自行車、摩托車、汽車等機(jī)動(dòng)車儀表上。 1. 總體設(shè)計(jì) 控制器采用AT8
41、9C52單片機(jī),速度及里程傳感器采用霍爾元件,顯示器通過(guò)AT89C52的P0口和P2口擴(kuò)展。外部存儲(chǔ)器采用E2PROM存儲(chǔ)器AT24C01,用于存儲(chǔ)里程和速度等數(shù)據(jù)。并用控制器來(lái)控制里程/速度指示燈,里程指示燈亮?xí)r,顯示里程;速度指示燈亮?xí)r,顯示速度。超速報(bào)警采用揚(yáng)聲器,用一個(gè)發(fā)光二極管來(lái)配合揚(yáng)聲器,揚(yáng)聲器響時(shí),二極管亮,表明超速。,2. 硬件電路設(shè)計(jì),電路原理圖如下頁(yè)圖所示。P0口和P2口用于七段LED顯示器的段碼及掃描輸出。在顯示里程時(shí),第三位小數(shù)點(diǎn)用P3.7口()控制點(diǎn)亮。P1.0口和P1.1口分別用于顯示里程狀態(tài)和速度狀態(tài)。P1.2,P1.3,P1.6和P1.7口分別用于設(shè)置輪圈的大小
42、。P3.0口的開(kāi)關(guān)用于確定顯示的方式。當(dāng)開(kāi)關(guān)閉合時(shí),顯示速度;斷開(kāi)時(shí),顯示里程。外中斷用于對(duì)輪子圈數(shù)的計(jì)數(shù)輸入,輪子每轉(zhuǎn)一圈,霍爾傳感器輸出一個(gè)低電平脈沖。外中斷用于控制定時(shí)器T1的啟停,當(dāng)輸入為0時(shí)關(guān)閉定時(shí)器。此控制信號(hào)是將輪子圈數(shù)的計(jì)數(shù)脈沖經(jīng)二分頻后形成,這樣,每次定時(shí)器T1的開(kāi)啟時(shí)間正好為輪子轉(zhuǎn)一圈的時(shí)間,根據(jù)輪子的周長(zhǎng)就可以計(jì)算出自動(dòng)車的速度。P1.4口和P1.5口用于E2PROM存儲(chǔ)器24C01的存取控制。11腳(TXD)輸出用于速度超速時(shí)的報(bào)警。,3. 軟件設(shè)計(jì),軟件主要包括:主程序、初始化程序、里程計(jì)數(shù)子程序、數(shù)據(jù)處理子程序、計(jì)數(shù)器中斷服務(wù)程序、E2PROM存取程序、顯示子程序。
43、,(1)主程序 根據(jù)P0口的開(kāi)關(guān)狀態(tài)切換顯示狀態(tài),即選擇里程顯示和速度顯示。其流程圖如右圖所示。,程序如下: ORG 0000H LJMP START ; 跳至主程序 ORG 0003H ; 外中斷0中斷程序入口 LJMP INTEX0 ; 跳至INTEX0中斷服務(wù)程序 ORG 000BH ; 定時(shí)器T0中斷程序入口 RETT1 ; 中斷返回 ORG 0013H ; 外中斷1中斷入口 LJMP INTEX1 ; 跳至INTEX1中斷服務(wù)程序 ORG 001BH ; 定時(shí)器T1中斷程序入口 LJMP INTT1 ; 跳至INTT1中斷服務(wù)程序 ORG 0023H ; 串口中斷入口地址 RET1
44、; 中斷返回 ORG 002BH ; 定時(shí)器T2中斷入口地址 RET1 ; 中斷返回 ORG 0050H START: LCALL CLEARMEN ; 上電初始化 START1: JB P0.4, DISPLAYS ; P0.4=1,則顯示里程 LCALL DISPLAYV ; P0.4=0,顯示速度 START2: SJMP START ; 轉(zhuǎn)START循環(huán),(2)初始化程序 初始化程序主要功能是將T1設(shè)為外部控制定時(shí)器方式,外中斷 及 設(shè)為邊沿觸發(fā)方式,將部分內(nèi)存單元清0,設(shè)置車輪周長(zhǎng)值,開(kāi)中斷、啟動(dòng)定時(shí)器,將AT24C01中的數(shù)據(jù)調(diào)入內(nèi)存中,設(shè)置車輪圈出錯(cuò)處理程序。 程序如下: CLE
45、ARMEN:MOV TMOD, #90 ; T1為16位外部控制定時(shí)器 MOV SP, #75H ; 堆棧在75H開(kāi)始 SETB PX0 ; 外中斷0優(yōu)先級(jí)為1 SETB IT0 ; 外中斷0用邊沿觸發(fā) SETB IT1 ; 外中斷1用邊沿觸發(fā) MOV A, #00H ; 清A MOV 20H, A ; 清內(nèi)存中特定單元 MOV 6CH, A MOV 6DH, A MOV 70H, A MOV 71H, A MOV 72H, A MOV 73H, A MOV 60H, A,MOV 61H, A MOV 62H, A MOV 63H, A ; 清內(nèi)存中特定單元 DEC A ; A為#0FFH MOV 68H,A ; 內(nèi)存置數(shù)據(jù)#0FFH MOV 69H,A ; 內(nèi)存置數(shù)據(jù)#0FFH MOV 6AH,A ; 內(nèi)存置數(shù)據(jù)#0FFH MOV 6BH,A ; 內(nèi)存置數(shù)據(jù)#0FFH MOV P1, A ; P1口置1 CLEAR1:JB P1.2, KEY1 ; 根據(jù)P1.2, P1.3, P1.6, P1.7設(shè)置狀態(tài) 在21H地址單元設(shè)置自行車周長(zhǎng)值 MOV 21H,#0FH ; 22英寸自行車周長(zhǎng)系數(shù) LJMP CLEAR2 ; 轉(zhuǎn)CLEAR2 KEY1:JB P1.3, KEY2 MOV 21H, #12H ; 24英寸自行車周長(zhǎng)系數(shù) LJM
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大數(shù)據(jù)助力訂單農(nóng)業(yè)精準(zhǔn)化供應(yīng)鏈管理
- 2025至2030迷你酒吧行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢(shì)及投資規(guī)劃深度研究報(bào)告
- 江西省撫州市宜黃縣2024年九上化學(xué)期末調(diào)研試題含解析
- 福建省寧德市2025屆九年級(jí)化學(xué)第一學(xué)期期末質(zhì)量檢測(cè)試題含解析
- 江蘇省南京市六合區(qū)2025屆數(shù)學(xué)八上期末考試試題含解析
- 貴州省從江縣2025屆數(shù)學(xué)八年級(jí)第一學(xué)期期末質(zhì)量跟蹤監(jiān)視試題含解析
- 人才派遣代理招聘服務(wù)合同
- 蘇州園林教學(xué)設(shè)計(jì)
- 鄉(xiāng)村衛(wèi)生院網(wǎng)絡(luò)信息化建設(shè)與升級(jí)方案
- 綠色環(huán)保型自修復(fù)環(huán)氧樹(shù)脂產(chǎn)品的開(kāi)發(fā)
- 廣州市藝術(shù)中學(xué)招聘教師考試真題2024
- 工業(yè)自動(dòng)化設(shè)備保修及維修管理措施
- 期末作文預(yù)測(cè)外研版七年級(jí)英語(yǔ)下冊(cè)
- 2025-2030中國(guó)兒童魚(yú)油行業(yè)銷售動(dòng)態(tài)及競(jìng)爭(zhēng)策略分析報(bào)告
- 統(tǒng)編版五年級(jí)升六年級(jí)語(yǔ)文暑期銜接《課外閱讀》專項(xiàng)測(cè)試卷及答案
- 小小理財(cái)家課件
- DB43-T 2622-2023 醫(yī)療導(dǎo)管標(biāo)識(shí)管理規(guī)范
- 譯林版一年級(jí)下冊(cè)全冊(cè)英語(yǔ)知識(shí)點(diǎn)梳理
- 案場(chǎng)物業(yè)制度管理制度
- 護(hù)理事業(yè)十五五發(fā)展規(guī)劃(2026-2030)
- CJ/T 316-2009城鎮(zhèn)供水服務(wù)
評(píng)論
0/150
提交評(píng)論