基于單片機(jī)的洗衣機(jī)智能控制系統(tǒng)_第1頁
基于單片機(jī)的洗衣機(jī)智能控制系統(tǒng)_第2頁
基于單片機(jī)的洗衣機(jī)智能控制系統(tǒng)_第3頁
基于單片機(jī)的洗衣機(jī)智能控制系統(tǒng)_第4頁
基于單片機(jī)的洗衣機(jī)智能控制系統(tǒng)_第5頁
已閱讀5頁,還剩73頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

基于單片機(jī)的洗衣機(jī)智能控制系統(tǒng)摘要基于MCS51單片機(jī)的洗衣控制系統(tǒng),控制面板由按鍵、指示燈組成按鍵選擇洗衣機(jī)工作方式,指示燈配合按鍵工作,LED顯示器則顯示洗衣機(jī)洗滌和脫水時間洗衣機(jī)的整體電路模塊包括鍵盤矩陣、指示燈、電動機(jī)控制及電源電路控制程序設(shè)計包括定時中斷服務(wù)程序、外中斷服務(wù)程序及主程序關(guān)鍵詞全自動,智能,89C2051ABSTRACTBASEDONTHEMCS51MICROCONTROLLERLAUNDRYCONTROLSYSTEM,CONTROLPANELFROMTHEBUTTONINDICATORCOMPONENTSBUTTONTOCHOOSEWASHINGMACHINESWORK,WITHAKEYINDICATOR,LEDDISPLAYSSHOWMACHINEWASHINGANDDEHYDRATIONTIMEWASHINGMACHINES,THEOVERALLCIRCUITMODULEINCLUDINGKEYBOARDMATRIX,LAMP,MOTORCONTROLANDPOWERSUPPLYCIRCUITCONTROLPROCEDURESDESIGNEDTIMERINTERRUPTSERVICEPROCEDURES,EXTERNALINTERRUPTSERVICEPROCEDURESANDTHEMAINPROGRAMKEYWORDSAUTOMATIC,INTELLIGENT89C2051目錄摘要0ABSTRACT1目錄1第一章緒言111課題背景112本課題的任務(wù)和要求413系統(tǒng)解決的問題和擬采用的研究手段814本文的工作9第二章系統(tǒng)的總體設(shè)計1021核心單元電路1022工作控制程序設(shè)計2223模擬軟件調(diào)試24第三章系統(tǒng)的實(shí)現(xiàn)和關(guān)鍵技術(shù)3431硬件的選擇與說明34311AT89C205134312固態(tài)繼電器的選用3631374LS05反相器六非門37314雙24譯碼器74LS13938315TC4013BP39316電機(jī)4432匯編程序與模擬軟件45321主程序45322KEIL的使用方法61第五章總結(jié)71致謝72參考文獻(xiàn)73第一章緒言11課題背景洗衣機(jī)是一種在家庭中不可缺少的家用電器,發(fā)展非???,全自動式洗衣機(jī)因使用方便得到大家的青睞,全自動即進(jìn)水、洗滌、漂洗、摔干等一系列過程自動完成,控制器通常設(shè)有幾種洗滌程序,對不同的衣物可供用戶選擇。展,洗衣機(jī)的性能將會不斷完善。全自動洗衣機(jī)由于具有對衣物的磨損小、洗滌量大、節(jié)水等特點(diǎn),越來越得到廣大家庭的青睞。隨著社會的進(jìn)步和生活水平的提高,人們對全自動洗衣機(jī)的功能多樣化、操作簡單化也提出了更高的要求。為適應(yīng)這種變化,全自動洗衣機(jī)的控制器已由機(jī)械式、混合式逐步過渡到全電子控制。單片機(jī)又稱微控制器,或稱嵌入式控制器。而現(xiàn)在的智能家電無一例外是采用微控制器來實(shí)現(xiàn)的,所以家用電器是單片機(jī)應(yīng)用最多的領(lǐng)域之一。它是家用電器實(shí)現(xiàn)智能化的心臟和大腦。由于家用電器體積小,故要求其控制器體積更小以便能嵌入其結(jié)構(gòu)之中。而家用電器品種多,功能差異也大,所以又要求其控制器有靈活的控制功能。單片機(jī)以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足家用電器的需求。單片機(jī)是一個單芯片形態(tài),面向控制對象的嵌入式應(yīng)用計算機(jī)系統(tǒng)。它的出現(xiàn)及發(fā)展使計算機(jī)技術(shù)從通用型數(shù)值計算領(lǐng)域進(jìn)入到智能化的控制領(lǐng)域從此,計算機(jī)技術(shù)在兩個重要領(lǐng)域通用計算機(jī)領(lǐng)域和嵌入式計算機(jī)領(lǐng)域都得到了極其重要的發(fā)展,并正在深深地改變著我們的社會。單片機(jī)的結(jié)構(gòu)特征是將組成計算機(jī)的基本部件集成在一塊晶體芯片上,構(gòu)成一臺功能獨(dú)特的,完整的單片微型計算機(jī)。6單片機(jī)獨(dú)特的結(jié)構(gòu)決定了它具有如下特點(diǎn)。(1)高集成度,高可靠性單片機(jī)將各功能部件集成在一塊晶體芯片上,集成度很高,體積自然也是最小的。芯片本身是按工業(yè)測控環(huán)境要求設(shè)計的,內(nèi)部布線很短,其抗工業(yè)噪音性能優(yōu)于一般通用的CPU。單片機(jī)程序指令,常數(shù)及表格等固化在ROM中不易破壞,許多信號通道均在一個芯片內(nèi),故可靠性高。(2)控制功能強(qiáng)為了滿足對對象的控制要求,單片機(jī)的指令系統(tǒng)均有極豐富的條件分支轉(zhuǎn)移能力,I/O口的邏輯操作及位處理能力,非常適用于專門的控制功能。(3)低電壓,低功耗為了滿足廣泛使用于便攜式系統(tǒng),許多單片機(jī)內(nèi)的工作電壓僅為18V36V,而工作電流僅為數(shù)百微安。(4)優(yōu)異的性能價格比單片機(jī)的性能極高。為了提高速度和運(yùn)行效率,單片機(jī)已開始使用RISC流水線和DSP等技術(shù)。單片機(jī)的尋址能力也已突破64KB的限制,有的已可達(dá)到1MB和16MB,片內(nèi)的ROM容量可達(dá)62MB,RAM容量則可達(dá)2MB由于單片機(jī)的廣泛使用,因而銷量極大,各大公司的商業(yè)競爭更使其價格十分低廉,其性能價格比極高。由于單片機(jī)功能的飛速發(fā)展,它的應(yīng)用范圍日益廣泛,已遠(yuǎn)遠(yuǎn)超出了計算機(jī)科學(xué)的領(lǐng)域小到玩具,信用卡,大到航天器,機(jī)器人,從實(shí)現(xiàn)數(shù)據(jù)采集,過程控制,模糊控制等智能系統(tǒng)到人類的日常生活,到處都離不開單片機(jī)其主要的應(yīng)用領(lǐng)域如下。(1)在測控系統(tǒng)中的應(yīng)用單片機(jī)可以用于構(gòu)成各種工業(yè)控制系統(tǒng),自適應(yīng)控制系統(tǒng),數(shù)據(jù)采集系統(tǒng)等。例如,工業(yè)上的鍋爐控制,電機(jī)控制,車輛檢測系統(tǒng),水閘自動控制,數(shù)控機(jī)床及軍事上的雷達(dá),導(dǎo)彈系統(tǒng)等。(2)在智能化儀器儀表中的應(yīng)用單片機(jī)應(yīng)用于儀器儀表設(shè)備中促使儀器儀表向數(shù)字化,智能化,多功能化和綜合化等方向發(fā)展。單片機(jī)的軟件編程技術(shù)使長期以來測量儀表中的誤差修正,線性化的處理等難題迎刃而解。(3)在機(jī)電一體化中的應(yīng)用單片機(jī)與傳統(tǒng)的機(jī)械產(chǎn)品結(jié)合使傳統(tǒng)的機(jī)械產(chǎn)品結(jié)構(gòu)簡化,控制走向智能化,構(gòu)成新一代的機(jī)電一體化產(chǎn)品。這是機(jī)械工業(yè)發(fā)展的方向。(4)在智能接口中的應(yīng)用計算機(jī)系統(tǒng),特別是較大型的工業(yè)測控系統(tǒng)中采用單片機(jī)進(jìn)行接口的控制管理,單片機(jī)與主機(jī)并行工作,可大大提高系統(tǒng)的運(yùn)行速度。例如,在大型數(shù)據(jù)采集系統(tǒng)中,用單片機(jī)對模/數(shù)轉(zhuǎn)換接口進(jìn)行控制不僅可提高采集速度,還可以對數(shù)據(jù)進(jìn)行預(yù)處理。如數(shù)字濾波,誤差修正,線性化處理等。(5)在人類生活中的應(yīng)用單片機(jī)由于其價格低廉,體積小巧,被廣泛應(yīng)用在人類生活的諸多場合,如洗衣機(jī),電冰箱,空調(diào)器,電飯煲,視聽音響設(shè)備,大屏幕顯示系統(tǒng),電子玩具,信用卡,樓宇防盜系統(tǒng)等單片機(jī)將使人類的生活更加方便舒適,豐富多彩。12本課題的任務(wù)和要求單片機(jī)又稱微控制器,或稱嵌入式控制器。而現(xiàn)在的智能家電無一例外是采用微控制器來實(shí)現(xiàn)的,所以家用電器是單片機(jī)應(yīng)用最多的領(lǐng)域之一。它是家用電器實(shí)現(xiàn)智能化的心臟和大腦。由于家用電器體積小,故要求其控制器體積更小以便能嵌入其結(jié)構(gòu)之中。而家用電器品種多,功能差異也大,所以又要求其控制器有靈活的控制功能。單片機(jī)以微小的體積和編程的靈活性而產(chǎn)生多種控制功能,完全可以滿足家用電器的需求。單片機(jī)主要用于計算機(jī)外設(shè)、實(shí)時控制、儀器儀表、通信和家用電器等各個領(lǐng)域,是計算機(jī)技術(shù)和電子技術(shù)的綜合性應(yīng)用,在不同應(yīng)用場合其技術(shù)要求各不相同,因此設(shè)計方法和研制的步驟不完全一樣。單片機(jī)應(yīng)用系統(tǒng)由硬件和軟件組成。硬件是指MCU、存儲器、I/O接口和外設(shè)等物理器件的有機(jī)組合。軟件是指系統(tǒng)監(jiān)控程序的總稱。在開發(fā)的過程中,它們的設(shè)計不能完全分開,二者需要互相配合、不斷調(diào)整才能組成高性能的應(yīng)用系統(tǒng)。單片機(jī)應(yīng)用系統(tǒng)的開發(fā)包括系統(tǒng)總體設(shè)計、硬件設(shè)計、軟件設(shè)計、系統(tǒng)調(diào)試等幾個階段,它們有時交叉進(jìn)行。121設(shè)計任務(wù)(1)系統(tǒng)總體設(shè)計任務(wù)在進(jìn)行系統(tǒng)設(shè)計之前,首先應(yīng)根據(jù)對系統(tǒng)的功能要求及其應(yīng)用環(huán)境等確定合理的、具體的功能和技術(shù)指標(biāo),對應(yīng)用系統(tǒng)的可靠性、通用性、先進(jìn)性、可維護(hù)性、以及成本等進(jìn)行綜合考慮,以盡量合理并符合相應(yīng)的標(biāo)準(zhǔn)。然后根據(jù)市場上各種單片機(jī)的貨源情況和單片機(jī)的性能及開發(fā)工具等因素選擇合適的機(jī)型。接下來要根據(jù)系統(tǒng)中可能遇到的傳感器、模擬電路、I/O接口、存儲器和顯示器等器件和設(shè)備進(jìn)行器件選擇,使之符合系統(tǒng)在精度、速度和可靠性等方面的要求。最后確定硬件和軟件的功能劃分。由于在系統(tǒng)設(shè)計中某些功能用硬件和軟件都能實(shí)現(xiàn),在設(shè)計中應(yīng)綜合考慮研制周期和成本等因素具體劃分軟硬件功能。(2)系統(tǒng)硬件設(shè)計任務(wù)硬件設(shè)計的任務(wù)是根據(jù)總體要求,在所選的MCU和各個元器件型號的基礎(chǔ)上設(shè)計出系統(tǒng)的電路原理圖,做一些必要的不見實(shí)驗(yàn),以及工藝結(jié)構(gòu)的設(shè)計加工,印刷電路板的設(shè)計制作和樣機(jī)的組裝等。在硬件設(shè)計中,需要考慮系統(tǒng)總線的負(fù)載能力、系統(tǒng)擴(kuò)展時的片選方式、模擬電路的速度和精度等,如需擴(kuò)展存儲器則盡量用一片完成,這樣既降低了成本,又減小了線路板的面積,同時提高了系統(tǒng)的可靠性。(3)系統(tǒng)軟件設(shè)計任務(wù)單片機(jī)應(yīng)用系統(tǒng)的軟件設(shè)計是系統(tǒng)設(shè)計中最基本而且工作量較大的任務(wù)。與系統(tǒng)機(jī)上操作系統(tǒng)支持下的純軟件不同,單片機(jī)的軟件設(shè)計是在裸機(jī)的條件下進(jìn)行的,而且隨應(yīng)用系統(tǒng)的不同而不同。在軟件中一般需考慮以下幾個方面1)根據(jù)要求確定軟件的具體任務(wù)細(xì)節(jié),然后確定合理的軟件結(jié)構(gòu)。一般系統(tǒng)軟件的主程序和若干個子程序及中斷服務(wù)程序組成,詳細(xì)劃分主程序、子程序和中斷服務(wù)程序的具體任務(wù),確定各個中斷的優(yōu)先級。主程序是一個順序執(zhí)行的無限循環(huán)的程序,不停地順序查詢各種軟件標(biāo)志,以完成對事務(wù)的處理。在子程序和中斷服務(wù)程序中,要考慮現(xiàn)場的保護(hù)和恢復(fù),以及它們和主程序之間的信息交換方法。2)程序的結(jié)構(gòu)用模塊化結(jié)構(gòu),即把監(jiān)控程序分解為若干個功能相對獨(dú)立的較小的程序模塊分別設(shè)計,以便于調(diào)試。具體設(shè)計時可采用自底向上或自頂向下的方法。3)在進(jìn)行程序設(shè)計時,先根據(jù)問題的定義描述出各個輸入變量和輸出變量之間的數(shù)學(xué)關(guān)系,即建立數(shù)學(xué)模型,然后繪制流程圖,再根據(jù)流程圖用匯編語言進(jìn)行具體程序的編寫。4)在程序設(shè)計完成后,利用相應(yīng)的開發(fā)工具和軟件進(jìn)行程序的匯編,生成程序的機(jī)器碼。(4)系統(tǒng)的調(diào)試任務(wù)在系統(tǒng)樣機(jī)的組裝和軟件設(shè)計完成以后,就進(jìn)入系統(tǒng)的調(diào)試階段。應(yīng)用系統(tǒng)的調(diào)試步驟和方法是相同的,但具體細(xì)節(jié)與采用的開發(fā)系統(tǒng)(即仿真器)及選用的單片機(jī)型號有關(guān)。調(diào)試的過程就是軟硬件的查錯過程,分為硬件調(diào)試和軟件調(diào)試。122系統(tǒng)設(shè)計要求AT89C2051單片機(jī)是ATMEL公司8位單片機(jī)系列產(chǎn)品之一,是一種20引腳雙列直插式芯片。它內(nèi)含2KB可反復(fù)燒錄的FLASH存儲器,RAM字節(jié)也有128個,15個I/O口,5個中斷,2個定時,已經(jīng)可以滿足程序的需要,指令也和51系列兼容,基于上述特點(diǎn),選擇它來設(shè)計一臺智能洗衣機(jī),完全可以達(dá)到以下的功能1、洗衣工作狀態(tài)功能強(qiáng)、弱洗滌;2、洗衣程序功能含4種獨(dú)立程序,即標(biāo)準(zhǔn)洗衣程序、經(jīng)濟(jì)洗衣、單次洗衣、脫水功能;3、特殊功能故障診斷、安全保護(hù)、防振、暫停、間歇工作、聲光顯示功能。洗衣機(jī)要完成洗衣工作,除了對一般洗衣過程的人工工作及效能進(jìn)行模擬之外,還要根據(jù)洗衣機(jī)的機(jī)械電子性質(zhì)進(jìn)行有關(guān)控制和檢測。對于一臺全自動洗衣機(jī)而言,首先要求能完成洗衣功能;同時還要根據(jù)用戶的不同要求設(shè)置幾種不同的洗衣程序;還要考慮水流的情況決定洗滌的弱強(qiáng)情況;另外,還要對洗衣過程出現(xiàn)的故障進(jìn)行診斷;保證高速運(yùn)轉(zhuǎn)是脫水的安全性等。所以對全自動洗衣機(jī),一般要求具有如下基本功能(1)弱強(qiáng)洗滌功能。要求強(qiáng)洗時正反轉(zhuǎn)驅(qū)動時間各為4S,間歇時間為1S;弱洗時正反轉(zhuǎn)驅(qū)動時間各為3S,間歇時間為2S。(2)4種洗衣工作程序,即標(biāo)準(zhǔn)程序經(jīng)濟(jì)程序單獨(dú)程序和排水程序。標(biāo)準(zhǔn)程序是進(jìn)水洗滌漂洗洗滌;脫水,如此循環(huán)3次,每循環(huán)一次洗滌或漂洗環(huán)節(jié)時間比上一循環(huán)同一環(huán)節(jié)時間減少2MIN,具體是第一循環(huán)為洗滌,時間為6MIN,第二第三次循環(huán)為漂洗,時間分別為4MIN和2MIN排水時間采用動態(tài)時間法確定,脫水時間為2MIN經(jīng)濟(jì)程序與標(biāo)準(zhǔn)程序一樣,只是循環(huán)次數(shù)為二次。單獨(dú)程序是進(jìn)水洗滌(6MIN結(jié)束(留水不排不脫)。排水程序是排水脫水結(jié)束,時間確定與上述程序相應(yīng)環(huán)節(jié)相同。(3)進(jìn)排水系統(tǒng)故障自動診斷功能。洗衣機(jī)在進(jìn)水或排水過程中,若在一定的時間范圍內(nèi)進(jìn)水或排水未能達(dá)到預(yù)定的水位,就說明進(jìn)排水系統(tǒng)有故障,此故障由控制系統(tǒng)測知并通過警告程序發(fā)出警告信號,提醒操作者進(jìn)行人工排除。(4)脫水期間安全保護(hù)和防振動功能。洗衣機(jī)脫水期間,若打開機(jī)蓋時,洗衣機(jī)就會自動停止脫水操作。脫水期間,如果出現(xiàn)衣物纏繞引起脫水桶重心偏移而不平衡,洗衣機(jī)也會自動停止脫水,以免振動過大,待人工處理后恢復(fù)工作。(5)間歇驅(qū)動方式。脫水期間采取間歇驅(qū)動方式,以便節(jié)能。本系統(tǒng)要求驅(qū)動5S,間歇2S,間歇期間靠慣性力使脫水桶保持高速旋轉(zhuǎn)。(6)暫停功能。不管洗衣機(jī)工作在什么狀態(tài),當(dāng)按下暫停鍵時,洗衣機(jī)需暫停工作,待啟動鍵按下后洗衣機(jī)又能按原來所選擇的工作方式繼續(xù)工作。(7)聲光顯示功能。洗衣機(jī)各種工作方式的選擇和各種工作狀態(tài)均有聲光提示和顯示。13系統(tǒng)解決的問題和擬采用的研究手段本課題主要是研究基于單片機(jī)的全自動洗衣機(jī)控制系統(tǒng)軟硬件設(shè)計。首先要熟悉設(shè)計內(nèi)容,學(xué)習(xí)掌握單片機(jī)的使用方法;精確分析并設(shè)計出該控制系統(tǒng)的全部工作流程圖,確定輸入、輸出的名稱功能;設(shè)計系統(tǒng)軟件并在PC機(jī)上仿真模擬調(diào)試;設(shè)計并制作硬件模擬電路盤,接電模擬調(diào)試;軟硬件聯(lián)合調(diào)試,實(shí)現(xiàn)全部功能,完成設(shè)計并撰寫畢業(yè)論文。針對課題采取以下研究方法及步驟1、各種元器件以及芯片的選擇2、硬件電路的設(shè)計3、用匯編語言完成軟件方面的設(shè)計4、結(jié)合電路對程序進(jìn)行調(diào)試5、找出程序中的錯誤,改正這些錯誤14本文的工作本文的工作就是介紹如何做一個全自動洗衣機(jī),第2部分給出相關(guān)方案的研究為后面程序設(shè)計打下基礎(chǔ),第3部分給出了系統(tǒng)的總體設(shè)計,對程序的模塊分析、設(shè)計思想第4部分給出詳細(xì)的實(shí)現(xiàn)過程和重要的技術(shù)實(shí)現(xiàn)。最后給出了我對這個設(shè)計一個看法,這個系統(tǒng)有些什么特色,還有展望之類的。第二章系統(tǒng)的總體設(shè)計21核心單元電路洗衣機(jī)是一種在家庭中不可缺少的家用電器,發(fā)展非???全自動式洗衣機(jī)因使用方便得到大家的青睞,全自動即進(jìn)水、洗滌、漂洗、摔干等一系列過程自動完成,控制器通常設(shè)有幾種洗滌程序,對不同的衣物可供用戶選擇。那么我們先來說說它的硬件設(shè)計。硬件電路框圖如圖1所示,在該硬件系統(tǒng)中主要由核心單元電路、進(jìn)水閥控制電路、排水閥控制電路、電機(jī)轉(zhuǎn)動控制電路、狀態(tài)顯示電路、特殊功能電路等單元組成。CPU(AT892051)狀態(tài)顯示電路排水閥電路進(jìn)水閥電路電機(jī)控制電路特殊功能電路電源電路圖11核心單元電路單芯片微處理器是屬于EMBEDDEDSYSTEM嵌入系統(tǒng),此系統(tǒng)的是把CPU加上一些少量的記憶體和輸出入組件I/O,都嵌入在一顆芯片內(nèi),再使用特定的組譯和編譯軟體編輯程序,利用燒錄器把程序儲存到單芯片,如此加上一些簡單的周邊電路,即可變成一個控制系統(tǒng),所以單芯片又稱為微程控器MICROCONTROLLER。8051是由INTEL公司發(fā)展出來的8BITMCU微處理器,目前在工業(yè)界的應(yīng)用相當(dāng)?shù)钠占盎?,目前已有相?dāng)多家的公司也制造與8051兼容的單晶片,除的基本的構(gòu)造相同外,更增加其周邊的控制功能,例如DALLAS公司生產(chǎn)的DS87C550,已經(jīng)內(nèi)建A/D轉(zhuǎn)換和PWM,如此可減少周邊組件和布線的成本,而國內(nèi)的華邦電子公司也推出了40MHZW78C51/52/54/58ATMEL半導(dǎo)體公司的AT89C51系列的產(chǎn)品,不需紫外線的清除,而是用電子式抹除,比一般的51系列更為方便,目前在一般的學(xué)校實(shí)習(xí),大都采用此系列產(chǎn)品。PHILIPS半導(dǎo)體公司出產(chǎn)的P87C552家族,除了51本身的UART外,更增加的I2CINTERINTEGRATEDCIRCUIT的功能,這是利用SDA和SCL兩條傳輸線,和周邊的IC互相溝通、傳送資料,而且這些IC都必須有I2C的編號,這使得選購IC時,受到一些限制,所一在目前的工業(yè)應(yīng)用上,還不是相當(dāng)?shù)钠占盎?。由?1家族繁多,所以在設(shè)計之前,必須針對51家族功能有相當(dāng)?shù)恼J(rèn)識如此才能選購符合自己所需,而且價格便宜的MCU。INTEL8051家族介紹INTEL公司是第一家出產(chǎn)8051,其它公司也依照INTEL所發(fā)展出來的8051為最基本的架構(gòu),再加上自己一些額外的功能以顯示出自己的特色,讓使用者能依照電路所需,選擇最適合的8051去做控制,而且最重要的是,為了方變設(shè)計者能隨時更換不同廠牌的8051,其接腳大都是40PIN,而且每PIN的定亦都相同,但也有24PIN87C748、87C751和68PINPLCC包裝DS87C550,不過這些都是特殊規(guī)格的MCS51。MCS51單芯片一般分為三個版本1單芯片內(nèi)部不包含程序記憶體,稱為ROMLESS。2單芯片內(nèi)部已內(nèi)建ROM。3單芯片內(nèi)部已內(nèi)建EPROM。其中2和3的區(qū)別在于2的單芯片只可燒錄一下,較適合于程序已完成,用于大量生產(chǎn),因?yàn)槠鋬r格較便宜,可節(jié)省產(chǎn)品的成本,3的單芯片適合用于程序發(fā)展階段,因?yàn)樾枰貜?fù)的更改程序,而內(nèi)含有EPROM的MCS51,只需要使用紫外線清除器,就可把MCS51的程序記憶體清為空白,達(dá)到重復(fù)燒錄的特性。INTEL公司出產(chǎn)的各版本MCS51編號如下內(nèi)部程序內(nèi)存大小組件編號ROM容量RAM容量定時器中斷個數(shù)8031AHNONE1288RAM216BIT58051AH4K8ROM1288RAM216BIT58051AHP4K8ROM1288RAM216BIT58751H4K8EPROM1288RAM216BIT58751H84K8EPROM1288RAM216BIT58751BH4K8EPROM1288RAM216BIT58032AHNONE2568RAM316BIT68052AH8K8ROM2568RAM316BIT68752BH8K8EPROM2568RAM316BIT6其特性如下1是一個8位的MCU。2具有布爾代數(shù)的運(yùn)算能力。34個8位PORT,共有32條雙向且可獨(dú)立被控制的I/OPORT。4有1288RAM,可以儲存資料記憶體8052為2568。5有4K8ROM的程序記憶體8052為8K8。6有2組16BIT計時器8052有3個。7具有全雙工傳輸信號UART。85個中斷源8052有6個,具有兩層優(yōu)先權(quán)中斷架構(gòu)。9內(nèi)部有時脈CLOCK振蕩器電路12MHZ。10程序記憶體ROM可擴(kuò)充至64KBYTE。11資料記憶體RAM可擴(kuò)充至64KBYTE。ATMEL家族介紹ATMEL公司所出產(chǎn)的ATC89C51可以說是目前一般在實(shí)驗(yàn)階段最時常被用到MCS51,因?yàn)锳TMEL所出產(chǎn)的MCS51系列其程序記憶體是做成FLASHMEMORY,可以省略使用EPROM照紫外線的時間,而且重復(fù)燒錄的次數(shù)多,價格又比價一般的便宜,其燒錄的次數(shù)可高達(dá)1000次,8051之所以能如此盛行,ATMEL公司其功不可沒,因?yàn)樗箤W(xué)習(xí)者的學(xué)習(xí)方式變的簡單價格上也EPROM型的8051系列便宜的多,雖然目前DALLAS公司所推行的高速8051HSM已漸漸威脅到ATMEL的地位,不過它目前所推出的51系列含有更高的速度和增加了更多功能,未來和DALLAS公司所推出的8051都值得消費(fèi)者注意。為了方便讓讀者選購ATMEL公司出產(chǎn)的MCS51,以下介紹其IC編號所代表的意義ATMEL公司生產(chǎn)的各版本MCS51編號如下組件編號程序內(nèi)存PROGRAMMEMORY數(shù)據(jù)存儲器容量DATAMEMORYBYTES16BIT定時器16BITTIMERAT89C10511KFLASH64RAM1AT89C20512KFLASH128RAM2AT89C514KFLASH128RAM2AT89C328KFLASH256RAM3AT89C5520KFLASH256RAM3AT89S82528KFLASH256RAM2KEEPROM3AT89S5312KFLASH256RAM3由于AT89C51/52/55是一般較為通用的MCU,我們就把它與8051/8052做功能上的比較,其所增加功能如下1具有4K/8KBYTES可重復(fù)規(guī)劃的快閃記憶體REPROGRAMMABLEFLASHMEMORY,可寫入/抹除1000次以上,程序可保存10年以上。2操作頻率0MHZ24MHZAT89C55為高速可達(dá)33MHZ。3操作電壓5V。4AT89C51具有兩層優(yōu)先權(quán)的5個中斷向量結(jié)構(gòu),AT89C52/55具兩層優(yōu)先權(quán)的6個中斷向量結(jié)構(gòu)。5三個可規(guī)劃的記憶體上鎖位。6ALE腳可規(guī)劃為,只在執(zhí)行MOVC和MOVX時才動作??蓽p少EMI,因?yàn)榉讲ǖ碾姶鸥蓴_很大7AT89C52/55的計數(shù)器2共有四種操作模式1)捕獲CAPTURE。2)自動重載AUTORELOAD往上或往下計數(shù)。3)鮑率產(chǎn)生器BAUDRATEGENERATOR。4)時鐘輸出CLOCKOUT。其中第2種操作模式增加了可往上或往下計數(shù)的功能一般為上數(shù)功能,第4種操作模式為新增加的功能,利用P10可以規(guī)劃出50責(zé)任周期的時鐘輸出。而AT89S53增加了一個相當(dāng)令人注意的功能ISP,這個功能使得程序可經(jīng)由ISPINSYSTEMREPROGRAMMABLE接口下載,其具有12K可可重復(fù)規(guī)劃的快閃記憶體,可寫入/抹除1000次以上,使得使用者更加方便使用。DALLAS家族介紹DALLAS公司所出產(chǎn)的8051家族,一般都是用在對高速有嚴(yán)格要求之下才會考慮使用,一般統(tǒng)稱為高速微控器HSM,目前較為常用得有DS80C310和DS80C320,如果考慮高速動作這兩顆是一般常用的微控器,而且價格和其它高速微控器來比是較為便宜的,但唯一的缺點(diǎn)是其內(nèi)部沒有ROM,一般都是外接EPROM,但不能超過64K位組,由于在高速動作,所以周邊的IC存取速度就需要相當(dāng)?shù)淖⒁?,?4HC373來說,就要換成74F373,在EPROM的存取速度也要配合微控器的振蕩器頻率,一般模擬所用的ICE是無法做高速模擬的所以必須使用DALLAS公司自己出產(chǎn)的ICE;以往DALLAS公司所標(biāo)榜的是高速微控器,但目前華邦公司也出廠了高速微控器40MHZ,其速度不輸于DALLAS的產(chǎn)品,如果設(shè)計上對速度有嚴(yán)格的要求,倒也可以考慮一下華邦的W78E51/52/54/58,但假設(shè)你要整合性強(qiáng)又要高速的話DS87C550或許可以滿足你的要求。以下介紹其IC編號所代表的意義DALLAS公司出產(chǎn)的各版本MCS51編號如下組件編號程序內(nèi)存PROGRAMMEMORY定時器/計數(shù)器串聯(lián)I/OSERIALI/ODS80C310NO31DS80C323NO3WDT2DS87C52016KBEPROM3WDT2DS83C53016KBEPROM3WDT2DS87C53016KBEPROM3WDT2DS87C5508KBEPROM3WDT2WDT看門狗計時器SERIALI/OUART一般常用的為DS80C310和DS80C320,我們就把它與80C32做功能上的比較,其所增加功能如下DS80C3101有兩組DPTR,一般只有一組。2振蕩器頻率范圍033MHZ,一個機(jī)械周期需4個振蕩周期,一般為12個振蕩周期。3可變機(jī)械周期的MOVX指令,用來配合ROM或周邊組件的讀取速度。4有6個外部中斷,一般只有/INT0和/INT1。5有兩層優(yōu)先權(quán)的10個中斷,因?yàn)橥獠恐袛喽嗔?個。DS80C320除了具有DS80C310外,還增加了一些功能1有13個中斷源,其中包含了6個外部中斷。2有看門狗計時器WATCHDOGTIMER的功能。3提早警告電源失效中斷。4電源下降自動重置REST功能。目前DALLAS公司所出產(chǎn)的微控器除了以上介紹的功能外,更添加了其它的功能,而且是百分之百和8051兼容,這使得使用者在設(shè)計時更加的方便,現(xiàn)就以DS87C520為例1有OTP只能燒錄一次和EPROM可多次燒錄版本,增加使用的彈性。2可用軟體規(guī)劃特殊功能暫存器SFR,控制ALE腳對EMI干擾。3可用軟體規(guī)劃特殊功能暫存器SFR,控制指令周期速度為64或是1024,一般內(nèi)定48051為12。4可用MOVX指令讀取內(nèi)部1KBYTES的SRAM一般只有256BYTES的資料記憶體。5內(nèi)部的16KBYTES的ROM,可用軟體規(guī)劃特殊功能暫存器SFR,成為從0到16KBYTES的ROM使用。由于DALLAS的微控器增加了許多的功能,如果使用者有需要使用的話,就必須事先在程序中定義特殊功能暫存器SFR,否則在組譯時會產(chǎn)生錯誤的訊息,但如果你沒有使用到這些特殊功能,就不需去定義,這是在使用DALLAS微控器時必須注意的事情。目前在8位微控器的市場,有MICROCHIP公司出產(chǎn)的PIC16CXX,其特色為省電、低功率,而且對于周邊的電路整合性比8051強(qiáng),因?yàn)槠鋬?nèi)部有些已內(nèi)建A/D、PWM、I2C、LCD控制功能,這讓使用者有更多選擇的空間,如果讀者有興趣也可上網(wǎng)WWWMICROCHIPCOM查看該公司的資料,而且也可向該公司索取資料;另外還有MOTROLA公司所出產(chǎn)68HC05,該公司所出產(chǎn)的微控器在工業(yè)界更是占有一席之地,其使用者和8051相比是不相上下;ATMEL公司目前也相當(dāng)積極在推動AVR微控器,而且它還提供整套發(fā)展工具給學(xué)校做實(shí)驗(yàn),未來的發(fā)展值得注意。綜合考慮系統(tǒng)擴(kuò)展方便性、系統(tǒng)工作可靠性、性價比等因素,系統(tǒng)主機(jī)芯片采用ATMEL公司所出產(chǎn)的ATC89C51。全自動洗衣機(jī)的控制邏輯電路如圖2所示。它由單片機(jī)AT89C2051為核心加上有關(guān)集成電路及元器件組成。從圖中看出,這個全自動洗衣機(jī)控制邏輯電路相當(dāng)簡單。全自動洗衣機(jī)的工作部件有3個,這就是電機(jī)進(jìn)水閥和排水閥。電機(jī)是洗衣機(jī)的動力源,它的轉(zhuǎn)動帶動洗衣桶和波輪的轉(zhuǎn)動,從而時現(xiàn)對衣物的洗滌。進(jìn)水閥用于控制洗衣機(jī)的進(jìn)水量。排水閥用于控制排水。電機(jī)在脫水時還高速旋轉(zhuǎn)帶動衣物脫水。電機(jī)的狀態(tài)有3種,即正轉(zhuǎn)反轉(zhuǎn)及停止?fàn)顟B(tài)。電機(jī)一般工作在這三種狀態(tài)的不斷轉(zhuǎn)換之中,從而實(shí)現(xiàn)洗滌。但在脫水時,只工作在正轉(zhuǎn)高速狀態(tài)。進(jìn)水閥和派排水閥則只有開關(guān)這兩種狀態(tài)。從圖2的控制電路中可以看出AT89C2051的P1端口中的P10P13共四條I/O線通過4塊SP111O新型固態(tài)繼電器分別直接驅(qū)動洗衣機(jī)的這些工作部件。SP1110是一種固態(tài)繼電器,內(nèi)有發(fā)光二極管及光觸發(fā)雙向可控硅,1050MA輸入電流即可使雙向可控硅完全導(dǎo)通,輸出端通態(tài)電流為3A(平均值),浪通電流15A(不重復(fù))。之所以選用這個器件,是因?yàn)樗环矫婵墒闺娐愤M(jìn)一部簡化,另一方面還可使強(qiáng)弱兩類電完全隔離,保證主板的安全。74LSO5為六反相器,用其作為中間反相器,其中的4個反相器可分別驅(qū)動4個SP1110繼電器,剩余兩反相器用于驅(qū)動LED5和LED6。圖274LS139為雙24線譯碼器,選用它可解決CPUI/O線數(shù)量的不足。從控制要求可知,洗衣機(jī)有4種不同的顯示來加以區(qū)別。74LSW139雙24線譯碼器僅占用CPU的P30和P31兩口線即可提供4種不同顯示的驅(qū)動,其邏輯關(guān)系是P30,P31為“11”時LED1亮,指示標(biāo)準(zhǔn)程序;為“10”時LED2亮,指示經(jīng)濟(jì)程序;為“01”時LED3亮,指示單獨(dú)程序;為“00”時LED4亮,指示排水程序。洗衣機(jī)的暫停功能和安全保護(hù)及防震動功能采用中斷處理方式。這兩個中斷分別對應(yīng)于CPU的外部中斷“0”和外部中斷“1”。中斷信號通過TC4013BP雙D觸發(fā)器的兩個Q/分別加到CPUP32和P33口線由觸發(fā)器鎖存直到CPU響應(yīng)中斷為止。開蓋(安全保護(hù))或不平衡(防振動)中斷信號通過由BG1,BG2組成的反相器送至TC4013BP的11腳CP端,經(jīng)觸發(fā)器的第12腳(Q/)加到P33。本系統(tǒng)對開蓋和不平衡中斷采取相同的處理方法,因此,共享外部中斷“1”。為了充分利用(CPU的I/O口線,P34和P35采用分時復(fù)用技術(shù),每線具有兩個功能。在洗衣機(jī)未進(jìn)入工作狀態(tài)或洗衣機(jī)處于暫停狀態(tài)期間,P34為輸入線,用于監(jiān)測啟動鍵的狀態(tài),當(dāng)啟動鍵按下時,洗衣機(jī)即進(jìn)入工作狀態(tài)或從暫停狀態(tài)恢復(fù)到原來的工作狀態(tài);在洗衣機(jī)暫停中斷響應(yīng)期間,P34為輸出線,用于撤消暫停中斷請求。在洗衣機(jī)進(jìn)水或排水期間,P35被用作輸入線,用于監(jiān)測水位開關(guān)狀態(tài),為CPU提供洗衣機(jī)的水位信息;在洗衣機(jī)高速脫水期間,當(dāng)發(fā)生開蓋和不平衡中斷時,P35為輸出線,用于撤消中斷請求信號。CPU的P37線用于驅(qū)動蜂鳴器發(fā)出各種告警信號。4,5腳外接6MHZ的晶振。1腳通過10UF電容接到5V電源,可實(shí)現(xiàn)上電自動復(fù)位。K7為強(qiáng)制復(fù)位鍵。洗衣機(jī)的強(qiáng)弱洗可通過K1鍵進(jìn)行循環(huán)選擇。K1還具有第二功能,即當(dāng)洗衣機(jī)發(fā)生故障轉(zhuǎn)入報警程序后,按下K1鍵可使洗衣機(jī)退出報警狀態(tài)回到處始待命狀態(tài)。洗衣機(jī)工作程序可通過K2鍵循環(huán)選擇。洗衣機(jī)的工作狀態(tài)可通過LED7LED9進(jìn)行顯示。脫水期間系統(tǒng)在響應(yīng)開蓋或不平衡終止后,CPU采取軟件查詢的方式方式通過P16線對蓋開關(guān)進(jìn)行監(jiān)測以確定洗衣機(jī)是否繼續(xù)進(jìn)行脫水操作。22工作控制程序設(shè)計由AT89C2051控制的全自動洗衣機(jī)的工作程序框圖如圖3所示。從程序框圖可以看出,這個控制程序也較為簡單,所以,占用的存儲器容量不大。上電復(fù)位初始化P30,P311,1P171掃描K1,K2,K4NY判斷57H相應(yīng)工作程序序工作時間限制之內(nèi)Y結(jié)束故障處理程序人工解除從程序框圖中可以看出程序的基本流程,系統(tǒng)上電復(fù)位后,首先進(jìn)行初始化,默認(rèn)標(biāo)準(zhǔn)洗衣工作程序和強(qiáng)洗方式,然后掃描K1,K2和啟動鍵K4,這時洗衣機(jī)處于待命狀態(tài)。通過K1,K2可分別修改強(qiáng)/弱洗方式和洗衣工作程序。掃描過程中當(dāng)發(fā)現(xiàn)啟動鍵K4按下時,洗衣機(jī)即從待命狀態(tài)進(jìn)入工作狀態(tài)。洗衣機(jī)進(jìn)入工作程序后,系統(tǒng)首先根據(jù)RAM中57H單元的特征字判斷洗衣機(jī)的洗衣工作程序,若特征字為01H為標(biāo)準(zhǔn)程序,02H為經(jīng)濟(jì)程序。進(jìn)水操作P10置位驅(qū)動進(jìn)水閥開啟。進(jìn)水期間系統(tǒng)不斷檢測水位開關(guān)K5的狀態(tài),當(dāng)檢測到K5閉合時,說明進(jìn)水以達(dá)到預(yù)定水位。若在規(guī)定的4MIN極限內(nèi)為檢測到K5閉合,說明進(jìn)水系統(tǒng)發(fā)生故障,此時洗衣機(jī)退出工作狀態(tài),程序跳轉(zhuǎn)到FW為標(biāo)號地址的故障處理程序段進(jìn)行報警,其處理方法是將P10P13位全部置“0”,中止洗衣機(jī)的各中操作,然后洗衣機(jī)以響1S停2S的規(guī)律不斷地發(fā)出報警信號,直到人工干預(yù)即按下K1鍵后為止(按下K1后,程序跳轉(zhuǎn)回主程起始地址,洗衣機(jī)又回到待命的初始狀態(tài))。在正常情況下,進(jìn)水期間檢測到K5閉合時,說明進(jìn)水以達(dá)預(yù)定水位,這時洗衣機(jī)進(jìn)入下一程序即洗滌工作。因?yàn)殡姍C(jī)在洗滌或漂洗工作時有正、反轉(zhuǎn)和間歇三種狀態(tài),所以用P12,P13兩線才能實(shí)現(xiàn)對惦記這三種狀態(tài)的控制。其邏輯關(guān)系是P13,P12為“00”時電機(jī)間歇,為“01”時正轉(zhuǎn),為“10”時反轉(zhuǎn)。洗滌時間為6MIN洗滌結(jié)束后,系統(tǒng)通過一條判斷指令,判斷是否排水。由控制要求可知,若不排水則為單獨(dú)程序,這時程序直接跳到結(jié)束,否則進(jìn)入排水進(jìn)程。排水時間采用動態(tài)時間法確定,其原理是;根據(jù)常用的空氣壓力水位開關(guān)的特性(即在進(jìn)水中當(dāng)水位達(dá)到預(yù)定水位時水位開關(guān)就接通;在排水中當(dāng)桶內(nèi)水位下降11CM后,水位開關(guān)才斷開),在排水過程中若從開始到開關(guān)斷開所需時間為D,則整個排水所用時間為2D50S(經(jīng)驗(yàn)值)。若在規(guī)定的1MIN極限時間內(nèi),系統(tǒng)檢測不到水位開關(guān)K5斷開,說明排水系統(tǒng)有故障,程序跳轉(zhuǎn)至故障處理程序段發(fā)出警告信號,其處理程序段發(fā)出告警信號,其處理方法與進(jìn)水系統(tǒng)故障相同。排水結(jié)束后,洗衣機(jī)接著執(zhí)行脫水操作,P11維持置位狀態(tài),保持排水閥開啟,P12按5S置位2S清0的規(guī)律連續(xù)驅(qū)動電機(jī)高速旋轉(zhuǎn)2MIN,然后脫水結(jié)束。脫水結(jié)束后系統(tǒng)通過一條判斷指令判斷整個洗衣工作是否結(jié)束。其原理是洗衣機(jī)在每次洗滌或漂洗工作環(huán)節(jié)結(jié)束之后,洗衣工作程序標(biāo)志57H單元減1一次,在脫水脫水工作結(jié)束,洗衣機(jī)報警三聲后。即返回初始待命狀態(tài)。若洗衣工作尚未結(jié)束,洗衣機(jī)再次執(zhí)行進(jìn)水操作,進(jìn)入下一循環(huán)。以上是洗衣機(jī)工作的大概流程,工作過程中所許的各種計時,均由定時器“0”定時中斷服務(wù)程序提供。定時器“0”設(shè)置為定時方式1,每100MS產(chǎn)生一次中斷,因此,TL0,TH0裝入的常數(shù)分別為0B0H,3CH。定時器“0”中斷服務(wù)子程序入口地址放在0BH單元中,洗衣機(jī)進(jìn)入工作狀態(tài)后定時器即被啟動/每中斷一次,70H單元累加1一次,累加到0AH時,為1S,因此71H單元累加1一次,該單元累加至3CH時,為1MIN,這時72H單元累加1一次。系統(tǒng)根據(jù)這幾個內(nèi)存單元中的數(shù)據(jù)就可以確定洗衣機(jī)工作各個進(jìn)程的時間。在暫停中斷以及開蓋或不平衡中斷響應(yīng)期間,定時中斷被禁止,計時各單元內(nèi)容不變。洗衣機(jī)的暫停中斷在洗衣機(jī)進(jìn)入工作狀態(tài)后,中斷請求即被設(shè)置為允許,中斷請求有效;而開蓋或不平衡中斷只有在洗衣機(jī)進(jìn)入高速脫水的工作進(jìn)程時,中斷請求才被設(shè)置為允許,請求信號有效。這兩個中斷服務(wù)程序比較簡單。23模擬軟件調(diào)試單片機(jī)的程序設(shè)計調(diào)試分為兩種,一種是使用軟件模擬調(diào)試,意思就是用開發(fā)單片機(jī)程序的計算機(jī)去模擬單片機(jī)的指令執(zhí)行,并虛擬單片機(jī)片內(nèi)資源,從而實(shí)現(xiàn)調(diào)試的目的,但是軟件調(diào)試存在一些問題,如計算機(jī)本身是多任務(wù)系統(tǒng),劃分執(zhí)行時間片是由操作系統(tǒng)本身完成的,無法得到控制,這樣就無法時時的模擬單片機(jī)的執(zhí)行時序,也就是說,不可能像真正的單片機(jī)運(yùn)行環(huán)境那樣執(zhí)行的指令在同樣一個時間能完成(往往要完成的比單片機(jī)慢)。為了解決軟件調(diào)試的問題,第二種是硬件調(diào)試,硬件調(diào)試其實(shí)也需要計算機(jī)軟件的配合,大致過程是這樣的計算機(jī)軟件把編譯好的程序通過串行口、并行口或者USB口傳輸?shù)接布{(diào)試設(shè)備中(這個設(shè)備叫仿真器),仿真器仿真全部的單片機(jī)資源(所有的單片機(jī)接口,并且有真實(shí)的引腳輸出),仿真器可以接入實(shí)際的電路中,然后與單片機(jī)一樣執(zhí)行。同時,仿真器也會返回單片機(jī)內(nèi)部內(nèi)存與時序等情況給計算機(jī)的輔助軟件,這樣就可以在軟件里看到真實(shí)的執(zhí)行情況。不僅如此,還可以通過計算機(jī)斷的軟件實(shí)現(xiàn)單步、全速、運(yùn)行到光標(biāo)的常規(guī)調(diào)試手段??偨Y(jié)一下兩者的不同與相同相同點(diǎn)1都可以檢測單片機(jī)執(zhí)行時序下的片內(nèi)資源情況(如R0R7、PC計數(shù)器等)2可以實(shí)現(xiàn)斷點(diǎn)、全速、單步、運(yùn)行到光標(biāo)等常規(guī)調(diào)試手段。不同點(diǎn)1軟件調(diào)試無法實(shí)現(xiàn)直接連接硬件電路的調(diào)試,只能通過軟件窗口虛擬硬件端口的電平輸出情況而仿真器可以實(shí)現(xiàn)與單片機(jī)一樣的功能的硬件連接,從某種意義上說這個時候仿真器就是一個單片機(jī)。2軟件調(diào)試執(zhí)行單片機(jī)指令的時間無法與真實(shí)的單片機(jī)執(zhí)行時間畫上等號,也就是說如果一個程序在單片機(jī)中要執(zhí)行300US,可能在計算機(jī)中執(zhí)行的時間可能會比這個長很多,而且無法預(yù)料。仿真器則是完全與單片機(jī)相同。3軟件調(diào)試只能是一種初步的,小型工程的調(diào)試,比如一個只有幾百上千行的代碼的程序,軟件調(diào)試能很好的完成,如果是一個協(xié)調(diào)系統(tǒng),可能還需要借助幾個單片機(jī)仿真器和相關(guān)的儀器才能解決。4軟件仿真不需要額外花錢,而硬件需要,一個仿真器一般都上千元,同時可以仿真許多種單片機(jī)的工作。KEILUVISION2是目前使用廣泛的單片機(jī)開發(fā)軟件,它集成了源程序編輯和程序調(diào)試于一體,支持匯編、C、PL/M語言。這里我們僅僅介紹KEILUVISION2的簡單使用,更詳細(xì)的使用方法見本光盤單片機(jī)軟件KEILC51KEIL書籍與資料目錄中的內(nèi)容。下面將具體介紹如何使用KEILUVISION來軟件調(diào)試單片機(jī)程序。首先打開一個已經(jīng)編譯通過的單片機(jī)項(xiàng)目(如何新建與編譯單片機(jī)程序項(xiàng)目這里省略)選擇DEBUG下面的START/STOPDEBUGSESSION,這個選項(xiàng)可以打開調(diào)試也可以關(guān)閉調(diào)試接下來看到的窗口就是調(diào)試窗口了下面具體說說相關(guān)子窗口的功能1左側(cè)的PROJECTWORKSPACEREGS是片內(nèi)內(nèi)存的相關(guān)情況值,SYS是系統(tǒng)一些累加器、計數(shù)器等。REGS很簡單就不多說。具體介紹一下SYSA累加器ACC,往往在運(yùn)算前暫存一個操作數(shù)(如被加數(shù)),而運(yùn)算后又保存其結(jié)果(如代數(shù)和)。B寄存器B,主要用于乘法和除法操作SPSP_MAXDPTR數(shù)據(jù)指針DPTRPCSTATES執(zhí)行指令的數(shù)量SEC執(zhí)行指令的時間累計(單位秒)PSW程序狀態(tài)標(biāo)志寄存器PSW,八位寄存器,用來存放運(yùn)算結(jié)果的一些特征,如有無進(jìn)位、借位等。P奇偶標(biāo)志P。反映累加器ACC內(nèi)容的奇偶性,如果ACC中的運(yùn)算結(jié)果有偶數(shù)個1(如11001100B,其中有4個1),則P為0,否則,P1。F1OV溢出標(biāo)志位OV。MCS51反映帶符號數(shù)的運(yùn)算結(jié)果是否有溢出,有溢出時,此位為1,否則為0。RSF0AC輔助進(jìn)位標(biāo)志AC。又稱半進(jìn)位標(biāo)志,它反映了兩個八位數(shù)運(yùn)算低四位是否有半進(jìn)位,即低四位相加(或減)有否進(jìn)位(或借位),如有則AC為1狀態(tài),否則為0。CY進(jìn)位標(biāo)志CY(PSW7)。它表示了運(yùn)算是否有進(jìn)位(或借位)。如果操作結(jié)果在最高位有進(jìn)位(加法)或者借位(減法),則該位為1,否則為0由于PSW存放程序執(zhí)行中的狀態(tài),故又叫程序狀態(tài)字運(yùn)算器中還有一個按位(BIT)進(jìn)行邏輯運(yùn)算的邏輯處理機(jī)(又稱布爾處理機(jī))根據(jù)指令執(zhí)行的不同上述值會有相應(yīng)的變化,也正是為了監(jiān)測這些在單片機(jī)中看不到的值而達(dá)到調(diào)試的目的。雖然軟件調(diào)試無法實(shí)現(xiàn)硬件調(diào)試那樣的信號輸出,但是可以通過軟件窗口的模擬監(jiān)測輸出信號的高低電平以及單片機(jī)相關(guān)端口的變化。上圖所示,PORT0,PORT1,PORT2,PORT3就對應(yīng)于單片機(jī)的四個P0,P1,P2,P3口,共32個針腳。這是全部打開后的效果。有了輸出,就應(yīng)該有輸入的設(shè)置這個按鈕可以打開輸入預(yù)設(shè)窗口,輸入值窗口如下選擇不同的INTSOURCE會有不同的SELECTEDINTERRUPT的變化,通過選擇與賦值達(dá)到模擬輸入的目的。接下來是串口的設(shè)置這是設(shè)置串口的窗口監(jiān)測窗口數(shù)據(jù)還有一個窗口點(diǎn)擊將會出現(xiàn),這個窗口可以監(jiān)測從串口輸出的ASCII代碼。關(guān)于串口的問題,以后我會有專門的文章介紹,這里就這樣大致介紹一下。最下面還有一個定時器的設(shè)置3個定時器與一個看門狗,設(shè)置定時器的數(shù)量與工程選擇的單片機(jī)種類有關(guān)系,如果是8051就只有2個定時器,如果是選擇8052就有3個定時器了。定時器的設(shè)置很簡單下面再介紹一下一些常用的調(diào)試按鈕就是RESET,相當(dāng)于單片機(jī)最簡系統(tǒng)的復(fù)位按鈕,按下后,所有的系統(tǒng)狀態(tài)將變成初始狀態(tài)這是全速運(yùn)行,相當(dāng)于單片機(jī)的通電執(zhí)行。這個就是停止全速運(yùn)行的按鈕。STEPINTO逐語句;進(jìn)入并單步執(zhí)行;單步執(zhí)行STEPOVER逐過程STEPOUT跳出執(zhí)行到斷點(diǎn)處可以在代碼所在窗口的最左邊右擊按鈕插入一個斷點(diǎn),如下圖所示有了這個功能,你就可以控制監(jiān)控要執(zhí)行到某位置時系統(tǒng)的狀態(tài)??傊肒EIL豐富的調(diào)試功能可以看到洗衣機(jī)執(zhí)行程序的全部操作。第三章系統(tǒng)的實(shí)現(xiàn)和關(guān)鍵技術(shù)31硬件的選擇與說明311AT89C2051AT89C2051是一個低電壓,高性能CMOS8位單片機(jī),片內(nèi)含2KBYTES的可反復(fù)擦寫的只讀FLASH程序存儲器和128BYTES的隨機(jī)存取數(shù)據(jù)存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)MCS51指令系統(tǒng),片內(nèi)置通用8位中央處理器和FLASH存儲單元,功能強(qiáng)大AT89C2051單片機(jī)可為您提供許多高性價比的應(yīng)用場合。AT89C2051是一個功能強(qiáng)大的單片機(jī),但它只有20個引腳,15個雙向輸入/輸出(I/O)端口,其中P1是一個完整的8位雙向I/O口,兩個外中斷口,兩個16位可編程定時計數(shù)器,兩個全雙向串行通信口,一個模擬比較放大器。同時AT89C2051的時鐘頻率可以為零,即具備可用軟件設(shè)置的睡眠省電功能,系統(tǒng)的喚醒方式有RAM、定時/計數(shù)器、串行口和外中斷口,系統(tǒng)喚醒后即進(jìn)入繼續(xù)工作狀態(tài)。省電模式中,片內(nèi)RAM將被凍結(jié),時鐘停止振蕩,所有功能停止工作,直至系統(tǒng)被硬件復(fù)位方可繼續(xù)運(yùn)行。AT89C2051是ATMEL公司生產(chǎn)的帶2K字節(jié)閃速可編程可擦除只讀存儲器EEPROM的8位單片機(jī),它具有如下主要特性和MCS51產(chǎn)品的兼容2K字節(jié)可重編程閃速存儲器耐久性1,000寫擦除周期27V6V的操作范圍全靜態(tài)操作0HZ24MHZ兩級加密程序存儲器1288位內(nèi)部RAM15根可編程I/O引線兩個16位定時器/計數(shù)器六個中斷源可編程串行UART通道直接LED驅(qū)動輸出片內(nèi)模擬比較器低功耗空載和掉電保護(hù)圖4AT89C2051的結(jié)構(gòu)框圖AT89C2051是一帶有2K字節(jié)閃速可編程可擦除只讀存儲體EEPROM的低電壓,高性能8位CMOS微型計算機(jī)。如圖5所示。它采用ATMEL的高密非易失存儲技術(shù)制造并和工業(yè)標(biāo)準(zhǔn)MCS51指令集和引腳結(jié)構(gòu)兼容。通過在單塊芯片上組合通用的CPL1和閃速存儲器,ATMELAT89C2051是一強(qiáng)勁的微型計算機(jī),它對許多嵌入式控制應(yīng)用提供一高度靈活和成本低的解決辦法。圖5AT89C2051內(nèi)部結(jié)構(gòu)圖此外,從AT89C2051內(nèi)部結(jié)構(gòu)圖也可看出,其內(nèi)部結(jié)構(gòu)與8051內(nèi)部結(jié)構(gòu)基本一致(除模擬比較器外),引腳RST、XTAL1、XTAL2的特性和外部連接電路也完全與51系列單片機(jī)相應(yīng)引腳一致,但P1口、P3口有其獨(dú)特之處。AT89C2051的引腳說明AT89C2051是一個有20個引腳的芯片,引腳如圖4所示,與8051內(nèi)部結(jié)構(gòu)進(jìn)行對比可發(fā)現(xiàn),AT89C2051減少了兩個對外端口(即P0、P2口),使它最大可能地減少了對外引腳,因而芯片尺寸有所減少。AT89C2051芯片的20個引腳功能為1VCC電源電壓。2GND地。3P1口P1口是一8位雙向I/O口。口引腳P12P17提供內(nèi)部上拉電阻。P10和P11要求外部上拉電阻。P10和P11還分別作為片內(nèi)精密模擬比較器的同相輸入AIN0和反相輸入(AIN1。P1口輸出緩沖器可吸收20MA電流并能直接驅(qū)動LED顯示。當(dāng)P1口引腳寫入“1”時,其可用作輸入端。當(dāng)引腳P12P17用作輸入并被外部拉低時,它們將因內(nèi)部的上拉電阻而流出電流IIL。P1口還在閃速編程和程序校驗(yàn)期間接收代碼數(shù)據(jù)。4P3口P3口的P30P35、P37是帶有內(nèi)部上拉電阻的七個雙向I/0引腳。P36用于固定輸入片內(nèi)比較器的輸出信號并且它作為一通用I/O引腳而不可訪問。P3口緩沖器可吸收20MA電流。當(dāng)P3口引腳寫入“1”時,它們被內(nèi)部上拉電阻拉高并可用作輸入端。用作輸入時,被外部拉低的P3口引腳將用上拉電阻而流出電流IIL。P3口還用于實(shí)現(xiàn)AT89C2051的各種功能,如下表所示。P3口還接收一些用于閃速存儲器編程和程序校驗(yàn)的控制信號。5RST復(fù)位輸入。RST一旦變成高電平,所有的I/O引腳就復(fù)位到“1”。當(dāng)振蕩器正在運(yùn)行時,持續(xù)給出RST引腳兩個機(jī)器周期的高電平便可完成復(fù)位。每一個機(jī)器周期需12個振蕩器或時鐘周期。6XTAL1作為振蕩器反相放大器的輸入和內(nèi)部時鐘發(fā)生器的輸入。7XTAL2作為振蕩器反相放大器的輸出。從上述引腳說明可看出,AT89C2051沒有提供外部擴(kuò)展存儲器與I/O設(shè)備所需的地址、數(shù)據(jù)、控制信號,因此利用AT89C2051構(gòu)成的單片機(jī)應(yīng)用系統(tǒng)不能在AT89C2051之外擴(kuò)展存儲器或I/O設(shè)備,也即AT89C2051本身即構(gòu)成了最小單片機(jī)系統(tǒng)。(2)固態(tài)繼電器的技術(shù)參數(shù)及選用1)技術(shù)參數(shù)1、輸入電壓范圍在環(huán)境溫度25C下,固態(tài)繼電器能夠工作的輸入電壓范圍。2、輸入電流在輸入電壓范圍內(nèi)某一特定電壓對應(yīng)的輸入電流值。3、接通電壓在輸入端加該電壓或大于該電壓值時,輸出端確保導(dǎo)通。4、關(guān)斷電壓在輸入端加該電壓或小于該電壓值時,輸出端確保導(dǎo)通。5、反極性電壓能夠加在繼電器輸入端上,而不應(yīng)起永久性破壞的最大允許反向電壓。6、額定輸出電流環(huán)境25C時的最大穩(wěn)態(tài)工作電流。7、額定輸出電壓能夠承受的最大負(fù)載工作電壓。8、輸出電壓降當(dāng)繼電器處于導(dǎo)通時,在額定輸出電流下測得的輸出端電壓。9、輸出漏電流當(dāng)繼電器處于關(guān)斷狀態(tài)施加額定輸出電壓時,流經(jīng)負(fù)載的電流值。10、接通時間當(dāng)繼電器接通時,加輸入電壓到接通電壓開始至輸出達(dá)到其電壓最終變化的90為止之間的時間間隔。11、關(guān)斷時間當(dāng)繼電器關(guān)斷時,切除輸入電壓到關(guān)斷電壓開始至輸出達(dá)到其電壓最終變化的10為止之間的時間間隔。12、過零電壓對交流過零型固態(tài)繼電器,輸入端加入額定電壓,能使繼電器輸出端導(dǎo)通的最大起

溫馨提示

  • 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

提交評論