以at89s52單片機(jī)為核心_設(shè)計(jì)出功能較強(qiáng)的新型單片機(jī)實(shí)驗(yàn)系統(tǒng)畢業(yè)設(shè)計(jì)_第1頁(yè)
以at89s52單片機(jī)為核心_設(shè)計(jì)出功能較強(qiáng)的新型單片機(jī)實(shí)驗(yàn)系統(tǒng)畢業(yè)設(shè)計(jì)_第2頁(yè)
以at89s52單片機(jī)為核心_設(shè)計(jì)出功能較強(qiáng)的新型單片機(jī)實(shí)驗(yàn)系統(tǒng)畢業(yè)設(shè)計(jì)_第3頁(yè)
以at89s52單片機(jī)為核心_設(shè)計(jì)出功能較強(qiáng)的新型單片機(jī)實(shí)驗(yàn)系統(tǒng)畢業(yè)設(shè)計(jì)_第4頁(yè)
以at89s52單片機(jī)為核心_設(shè)計(jì)出功能較強(qiáng)的新型單片機(jī)實(shí)驗(yàn)系統(tǒng)畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩67頁(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)介

摘要目前單片機(jī)應(yīng)用已滲透到各個(gè)領(lǐng)域,單片機(jī)技術(shù)的發(fā)展也因此日新月異。傳統(tǒng)的單片機(jī)實(shí)驗(yàn)系統(tǒng),需要頻繁拔插燒寫(xiě)單片機(jī)芯片來(lái)編程,依賴(lài)于仿真機(jī)調(diào)試,實(shí)驗(yàn)成本高且效率低,已不適應(yīng)現(xiàn)代科技開(kāi)發(fā)需求。本文從微處理器、嵌入式系統(tǒng)和C語(yǔ)言等三個(gè)方面著手,以AT89S52單片機(jī)為核心,設(shè)計(jì)出功能較強(qiáng)的新型單片機(jī)實(shí)驗(yàn)系統(tǒng)。以AT89S52為核心,設(shè)計(jì)出12種實(shí)驗(yàn)的原理圖。采用電子CADPROTEL99SE軟件、PROTEUS等軟件。利用C語(yǔ)言調(diào)整軟件DEVCIDE、編譯器KEILC(UVISION51)軟件等技術(shù)創(chuàng)新,實(shí)現(xiàn)了PROTEUS仿真調(diào)試功能,將嵌入式技術(shù)融入到單片機(jī)實(shí)驗(yàn)系統(tǒng)開(kāi)發(fā)與應(yīng)用中,極大地提高了程序開(kāi)發(fā)的效率,達(dá)到優(yōu)化單片機(jī)實(shí)驗(yàn)系統(tǒng)功能的目的。關(guān)鍵詞微處理器嵌入式系統(tǒng)AT89S52單片機(jī)實(shí)驗(yàn)系統(tǒng)調(diào)試與仿真PROTEUSABSTRACTATPRESENTTHEMONOLITHICINTEGRATEDCIRCUITMICROCONTROLLERUNIT,MCUAPPLICATIONSHAVEPENETRATEDINTOALLFIELDSTHETRADITIONALMONOLITHICINTEGRATEDCIRCUITEXPERIMENTSYSTEM,NEEDSFREQUENTLYTOPULLOUTINSERTSTHEFEVERTOWRITETHEMONOLITHICINTEGRATEDCIRCUITCHIPTOPROGRAM,RELIESONTOTHESIMULATIONMACHINEDEBUGGING,THEEXPERIMENTALCOSTHIGHALSOTHEEFFICIENCYISLOW,ALREADYUNSUITABLEMODERNSCIENCEANDTECHNOLOGYDEVELOPMENTDEMANDTHISARTICLEFROMTHEMICROPROCESSOR,EMBEDDEDSYSTEMSANDTHECLANGUAGEANDSOONTHREEASPECTSBEGINS,TODRAWUPTAKETHEAT89S52MONOLITHICINTEGRATEDCIRCUITASACORE,DESIGNSTHEFUNCTIONSTRONGERNEWMONOLITHICINTEGRATEDCIRCUITEXPERIMENTSYSTEMTOOKAT89S52ASTHECORE,DESIGNED12EXPERIMENTSAFTERUSESELECTRONICCADPROTEL99SESOFTWARE,PROTEUSSOFTWAREUSINGCLANGUAGEADJUSTMENTSOFTWAREDEVCIDE,COMPILERKEILCUVISION51AND,TECHNICALINNOVATIONANDSOONPROTEUSSOFTWARE,HASREALIZEDTHEPROTEUSONLINESIMULATIONDEBUGGINGFUNCTION,INSERTSTHEEMBEDDEDTECHNOLOGYTOMELTINTOTOINTHEMONOLITHICINTEGRATEDCIRCUITEXPERIMENTSYSTEMDEVELOPMENTANDTHEAPPLICATIONKEYWORDSMICROPROCESSOREMBEDDEDSYSTEMSAT89S52MCUEXPERIMENTALSYSTEMDEBUGGINGANDSIMULATIONPROTEUS目錄摘要IABSTRACTII第一章概述1第二章PROTEUS介紹321PROTEUS的工作過(guò)程【2】322用PROTEUS軟件虛擬單片機(jī)實(shí)驗(yàn)的優(yōu)點(diǎn)423本章小結(jié)4第三章單片機(jī)介紹631功能特征描述632引腳功能【4】633存儲(chǔ)器結(jié)構(gòu)9331程序存儲(chǔ)器9332數(shù)據(jù)存儲(chǔ)器934看門(mén)狗定時(shí)器9341WDT的使用10342掉電和空閑方式下的WDT1035UART1036定時(shí)器0和定時(shí)器11037定時(shí)器211371捕捉方式11372自動(dòng)重載【6】1138波特率發(fā)生器1239可編程時(shí)鐘輸出13310中斷13311晶振特性14312空閑模式14313掉電模式14314本章小結(jié)14第四章基于PROTEUS的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真1541虛擬實(shí)驗(yàn)室的構(gòu)建1542虛擬實(shí)驗(yàn)實(shí)例15實(shí)驗(yàn)一彩燈控制器15實(shí)驗(yàn)二定時(shí)器/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)【10】17實(shí)驗(yàn)三按鍵實(shí)驗(yàn)19實(shí)驗(yàn)四利用中斷,動(dòng)態(tài)數(shù)碼管顯示21實(shí)驗(yàn)五利用中斷,音樂(lè)演奏23實(shí)驗(yàn)六1602液晶顯示的DS1302實(shí)時(shí)時(shí)鐘25實(shí)驗(yàn)七DS1621溫度傳感器實(shí)驗(yàn)27實(shí)驗(yàn)八按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)實(shí)驗(yàn)29實(shí)驗(yàn)九ADC0809模數(shù)轉(zhuǎn)換與顯示32實(shí)驗(yàn)十D/A轉(zhuǎn)換實(shí)驗(yàn)35實(shí)驗(yàn)十一ADC0808PWM實(shí)驗(yàn)39實(shí)驗(yàn)十二可編程并行接口芯片8255的應(yīng)用試驗(yàn)4143本章小結(jié)43第五章結(jié)論45參考文獻(xiàn)46附錄(程序)47致謝67第一章概述隨著半導(dǎo)體技術(shù)的飛速發(fā)展,以及移動(dòng)通信、網(wǎng)絡(luò)技術(shù)、多媒體技術(shù)在嵌入式系統(tǒng)設(shè)計(jì)中的應(yīng)用,單片機(jī)從4位、8位、16位到32位,其發(fā)展歷程一直受到廣大電子愛(ài)好者的極大關(guān)注。單片機(jī)功能越來(lái)越強(qiáng)大,價(jià)格卻不斷下降的優(yōu)勢(shì)無(wú)疑成為嵌入式系統(tǒng)方案設(shè)計(jì)的首選,同時(shí)單片機(jī)應(yīng)用領(lǐng)域的擴(kuò)大也使得更多人加入到基于單片機(jī)系統(tǒng)的開(kāi)發(fā)行列中,推動(dòng)著單片機(jī)技術(shù)的創(chuàng)新進(jìn)步。然而傳統(tǒng)的單片機(jī)系統(tǒng)開(kāi)發(fā)除了需要購(gòu)置諸如仿真器、編程器、示波器等價(jià)格不菲的電子設(shè)備外,開(kāi)發(fā)過(guò)程也較繁瑣。如圖11所示,用戶程序需要在硬件完成的情況下才能進(jìn)行聯(lián)調(diào),如果在調(diào)試過(guò)程中發(fā)現(xiàn)需修改硬件,則要重新制板。因此無(wú)論從硬件成本還是開(kāi)發(fā)周期來(lái)看,其高風(fēng)險(xiǎn)、低效率的特性顯露無(wú)遺。來(lái)自英國(guó)LABCENTERELECTRONICS公司的PROTEUS軟件很好地詮釋了利用現(xiàn)代EDA工具方便快捷開(kāi)發(fā)單片機(jī)系統(tǒng)的優(yōu)勢(shì)。它包括PROTEUSVSM(VIRTUALSYSTEMMODELLING)、PROTEUSPCBDESIGN兩大組成部分,在PC機(jī)上就能實(shí)現(xiàn)原理圖電路設(shè)計(jì)、電路分析與仿真、單片機(jī)代碼級(jí)調(diào)試與仿真、系統(tǒng)測(cè)試與功能驗(yàn)證以及形成PCB文件的完整嵌入式系統(tǒng)設(shè)計(jì)與研發(fā)過(guò)程。本文講述PROTEUSVSM單片機(jī)系統(tǒng)的PROTEUS設(shè)計(jì)與仿真功能,圖12為基于PROTEUS仿真軟件的單片機(jī)系統(tǒng)設(shè)計(jì)流程,它極大地簡(jiǎn)化了設(shè)計(jì)工作,得到眾多設(shè)計(jì)師的青睞1。根據(jù)系統(tǒng)功能設(shè)計(jì)原理圖PCB的設(shè)計(jì)及制作元器件的焊接目標(biāo)板上仿真與調(diào)試調(diào)試通過(guò)設(shè)計(jì)完成硬件問(wèn)題軟件問(wèn)題源程序設(shè)計(jì)生成目標(biāo)代碼PROTEUS電路設(shè)計(jì)源程序設(shè)計(jì)生成目標(biāo)代碼基于PROTEUS仿真調(diào)試調(diào)試通過(guò)設(shè)計(jì)完成軟件問(wèn)題硬件問(wèn)題NYNY圖11傳統(tǒng)單片機(jī)設(shè)計(jì)流程圖圖12基于PROTEUS的單片機(jī)系統(tǒng)設(shè)計(jì)第二章PROTEUS介紹PROTEUS與其它單片機(jī)仿真軟件不同的是,它不僅能仿真單片機(jī)CPU的工作情況,也能仿真單片機(jī)外圍電路或沒(méi)有單片機(jī)參與的其它電路的工作情況。因此在仿真和程序調(diào)試時(shí),關(guān)心的不再是某些語(yǔ)句執(zhí)行時(shí)單片機(jī)寄存器和存儲(chǔ)器內(nèi)容的改變,而是從工程的角度直接看程序運(yùn)行和電路工作的過(guò)程和結(jié)果。對(duì)于這樣的仿真實(shí)驗(yàn),從某種意義上講,是彌補(bǔ)了實(shí)驗(yàn)和工程應(yīng)用間脫節(jié)的矛盾和現(xiàn)象。21PROTEUS的工作過(guò)程2(1)運(yùn)行PROTEUS的ISIS程序后,進(jìn)入該仿真軟件的主界面。在工作前,要設(shè)置VIEW菜單下的捕捉對(duì)齊和SYSTEM下的顏色、圖形界面大小等項(xiàng)目。通過(guò)工具欄中的P從庫(kù)中選擇元件命令,在PICKDEVICES窗口中選擇電路所需的元件,放置元件并調(diào)整其相對(duì)位置,元件參數(shù)設(shè)置,元器件間連線,編寫(xiě)程序;在SOURCE菜單的DEFINECODEGENERATIONTOOLS菜單命令下,選擇程序編譯的工具、路徑、擴(kuò)展名等項(xiàng)目;在SOURCE菜單的ADD/REMOVESOURCEFILES命令下,加入單片機(jī)硬件電路的對(duì)應(yīng)程序;通過(guò)DEBUG菜單的相應(yīng)命令仿真程序和電路的運(yùn)行情況。(2)PROTEUS軟件所提供的元件資源PROTEUS軟件所提供了30多個(gè)元件庫(kù),數(shù)千種元件。元件涉及到數(shù)字和模擬、交流和直流等。(3)PROTEUS軟件所提供的儀表資源對(duì)于一個(gè)仿真軟件或?qū)嶒?yàn)室,測(cè)試的儀器儀表的數(shù)量、類(lèi)型和質(zhì)量,是衡量實(shí)驗(yàn)室是否合格的一個(gè)關(guān)鍵因素。在PROTEUS軟件包中,不存在同類(lèi)儀表使用數(shù)量的問(wèn)題,其提供的儀表。除了測(cè)試儀表外,PROTEUS還提供了一個(gè)圖形顯示功能,可以將線路上變化的信號(hào),以圖形的方式實(shí)時(shí)地顯示出來(lái),其作用與示波器相似但功能更多。(4)PROTEUS軟件所提供的調(diào)試手段PROTEUS提供了比較豐富的測(cè)試信號(hào)用于電路的測(cè)試。這些測(cè)試信號(hào)包括模擬信號(hào)和數(shù)字信號(hào)。對(duì)于單片機(jī)硬件電路和軟件的調(diào)試,PROTEUS提供了兩種方法一種是系統(tǒng)總體執(zhí)行效果,一種是對(duì)軟件的分步調(diào)試以看具體的執(zhí)行情況。對(duì)于總體執(zhí)行效果的調(diào)試方法,只需要執(zhí)行DEBUG菜單下的EXECUTE菜單項(xiàng)或F12快捷鍵啟動(dòng)執(zhí)行,用DEBUG菜單下的PAUSEANIMATION菜單項(xiàng)或PAUSE鍵暫停系統(tǒng)的運(yùn)行;或用DEBUG菜單下的STOPANIMATION菜單項(xiàng)或SHIFTBREAK組合鍵停止系統(tǒng)的運(yùn)行。其運(yùn)行方式也可以選擇工具欄中的相應(yīng)工具進(jìn)行。對(duì)于軟件的分步調(diào)試,應(yīng)先執(zhí)行DEBUG菜單下的START/RESTARTDEBUGGING菜單項(xiàng)命令,此時(shí)可以選擇STEPOVER、STEPINTO和STEPOUT命令執(zhí)行程序可以用快捷鍵F10、F11和CTRLF11,執(zhí)行的效果是單句執(zhí)行、進(jìn)入子程序執(zhí)行和跳出子程序執(zhí)行。在執(zhí)行了START/RESTARTDEBUGING命令后,在DEBUG菜單的下面要出現(xiàn)仿真中所涉及到的軟件列表和單片機(jī)的系統(tǒng)資源等,可供調(diào)試時(shí)分析和查看3。22用PROTEUS軟件虛擬單片機(jī)實(shí)驗(yàn)的優(yōu)點(diǎn)采用PROTEUS仿真軟件進(jìn)行虛擬單片機(jī)實(shí)驗(yàn),具有比較明顯的優(yōu)勢(shì),如涉及到的實(shí)驗(yàn)實(shí)習(xí)內(nèi)容全面、硬件投入少、學(xué)生可自行實(shí)驗(yàn)、實(shí)驗(yàn)過(guò)程中損耗小、與工程實(shí)踐最為接近等。當(dāng)然其存在的缺點(diǎn)也是有的。(1)內(nèi)容全面內(nèi)容全面包括其能實(shí)驗(yàn)的內(nèi)容包括軟件部分的匯編、C51等語(yǔ)言的調(diào)試過(guò)程,也包括硬件接口電路中的大部分類(lèi)型。對(duì)同一類(lèi)功能的接口電路,可以采用不同的硬件來(lái)搭建完成。(2)硬件投入少,經(jīng)濟(jì)優(yōu)勢(shì)明顯對(duì)于傳統(tǒng)的采用單片機(jī)實(shí)驗(yàn)教學(xué)板的實(shí)驗(yàn),由于硬件電路的固定,也就將單片機(jī)的CPU和具體的接口電路固定了下來(lái)。在單片機(jī)的實(shí)際學(xué)習(xí)中,如果要涉及到51系列,也要涉及到PIC16系列,那么為了學(xué)習(xí)必然要投入兩種單片機(jī)的實(shí)驗(yàn)教學(xué)板;同時(shí)在教學(xué)過(guò)程中所涉及到的接口電路,也需要有較大的投入和儲(chǔ)備,以利于實(shí)驗(yàn)的進(jìn)行和在實(shí)驗(yàn)過(guò)程中元件損毀后的更換。PROTEUS所提供的元件庫(kù)中,大部分可以直接用于接口電路的搭建,同時(shí)該軟件所提供的儀表,不管在質(zhì)量還是數(shù)量上,都是可靠和經(jīng)濟(jì)的。如果在實(shí)驗(yàn)教學(xué)中投入這樣的真實(shí)的儀器儀表,僅儀表的維護(hù)來(lái)講,其工作量也是比較大的。因此采用軟件的方式進(jìn)行學(xué)習(xí),其經(jīng)濟(jì)優(yōu)勢(shì)是比較明顯的。(3)學(xué)生可自行實(shí)驗(yàn),鍛煉解決實(shí)際工程問(wèn)題的能力實(shí)驗(yàn)?zāi)芰蛯?shí)驗(yàn)?zāi)芰Φ呐囵B(yǎng),是工科學(xué)生解決實(shí)際工程問(wèn)題能力中較為重要的。傳統(tǒng)的實(shí)驗(yàn)教學(xué)中,忽視了學(xué)生實(shí)驗(yàn)設(shè)計(jì)能力的培養(yǎng),對(duì)于實(shí)驗(yàn)設(shè)計(jì)能力的培養(yǎng),則很少涉及到。因此學(xué)生學(xué)習(xí)了理論,要想將其應(yīng)用到實(shí)際的工程實(shí)踐中,其難度是比較大的。還有,學(xué)生畢業(yè)后想對(duì)單片機(jī)控制技術(shù)或智能儀表等有較深的研究和學(xué)習(xí),如果采用傳統(tǒng)的實(shí)驗(yàn)學(xué)習(xí)方法,則學(xué)生需要購(gòu)置的設(shè)備比較多,增加了他們學(xué)習(xí)和研究的投入。采用仿真軟件后,學(xué)習(xí)的投入變得比較的小,而實(shí)際工程問(wèn)題的研究,也可以先在軟件環(huán)境中模擬通過(guò),再進(jìn)行硬件的投入,這樣處理,不僅省時(shí)省力,也可以節(jié)省因方案不正確所造成的硬件投入的浪費(fèi)。23本章小結(jié)傳統(tǒng)的實(shí)驗(yàn)教學(xué)方法,是學(xué)生通過(guò)做驗(yàn)證實(shí)驗(yàn)加深對(duì)原理的理解,實(shí)驗(yàn)的內(nèi)容、步驟、電路、儀器等都是事先安排好的,有時(shí),整個(gè)電路都是連接好的,學(xué)生只須按部就班,機(jī)械的完成實(shí)驗(yàn),每次實(shí)驗(yàn)后,學(xué)生的實(shí)驗(yàn)報(bào)告基本上都是大同小異,沒(méi)有創(chuàng)新點(diǎn),效果一般。通過(guò)PROTEUS在實(shí)驗(yàn)教學(xué)中的應(yīng)用,設(shè)備要求簡(jiǎn)單,只有一臺(tái)裝有PROTEUS的計(jì)算機(jī)就可以了,原來(lái)受實(shí)驗(yàn)條件限制無(wú)法開(kāi)設(shè)的實(shí)驗(yàn)也可進(jìn)行仿真實(shí)驗(yàn)了,這樣使得學(xué)生有更多的鍛煉與學(xué)習(xí)的機(jī)會(huì),加強(qiáng)了實(shí)驗(yàn)?zāi)芰μ岣?。在虛擬實(shí)驗(yàn)室中學(xué)生可提出各種方案進(jìn)行仿真,不受硬件條件的限制,并能很快獲得仿真結(jié)果,做到及時(shí)發(fā)現(xiàn)問(wèn)題,解決問(wèn)題,從而可以提高學(xué)生分析問(wèn)題,解決問(wèn)題的能力,激發(fā)他們的求知欲和創(chuàng)新精神。綜合上述,PROTEUS應(yīng)用到實(shí)驗(yàn)教學(xué),能取得巨大的成效。第三章單片機(jī)介紹主要性能與MCS51單片機(jī)產(chǎn)品兼容8K字節(jié)在系統(tǒng)可編程FLASH存儲(chǔ)器1000次擦寫(xiě)周期全靜態(tài)操作0HZ33HZ三級(jí)加密程序存儲(chǔ)器32個(gè)可編程I/O口線三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源全雙工UART串行通道低功耗空閑和掉電模式掉電后中斷可喚醒看門(mén)狗定時(shí)器雙數(shù)據(jù)指針掉電標(biāo)識(shí)符31功能特征描述AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程FLASH存儲(chǔ)器。使用ATMEL公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上FLASH允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程FLASH,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能8K字節(jié)FLASH,256字節(jié)RAM,32位I/O口線,看門(mén)狗定時(shí)器,2個(gè)數(shù)據(jù)指針,三個(gè)16位定時(shí)器/計(jì)數(shù)器,一個(gè)6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。另外,AT89S52可降至0HZ靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式。空閑模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止。32引腳功能4VCC電源GND接地P0口P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高阻抗輸入。當(dāng)訪問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在FLASH編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部上拉電阻。P1口P1口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P1端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。此外,P10和P12分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(P10/T2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(P11/T2EX),具體如下表所示。在FLASH編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。表1引腳號(hào)第二功能P10T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P11T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P15MOSI(在系統(tǒng)編程用)P16MISO(在系統(tǒng)編程用)P17SCK(在系統(tǒng)編程用)P2口P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電(IIL)。在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVXDPTR)時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如MOVXRI)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在FLASH編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。P3口P3口是一個(gè)有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P3端口寫(xiě)“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)使用,如下表所示。在FLASH編程和校驗(yàn)時(shí),P3口也接收一些控制信號(hào)。表2引腳號(hào)第二功能P30RXD(串行輸入)P31TXD(串行輸出)P32外部中斷0INT0P33外部中斷11P34T0(定時(shí)器0外部輸入)P35T1定時(shí)器1外部輸入)P36外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通WRP37外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通DRST復(fù)位輸入。晶振工作時(shí),RST腳持續(xù)2個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T(mén)狗計(jì)時(shí)完成后,RST腳輸出96個(gè)晶振周期的高電平。特殊寄存器AUXR地址8EH上的DISRTO位可以使此功能無(wú)效。DISRTO默認(rèn)狀態(tài)下,復(fù)位高電平有效。ALE/地址鎖存控制信號(hào)(ALE)是訪問(wèn)外部程序存儲(chǔ)器時(shí),鎖存低8位地址的PROG輸出脈沖。在FLASH編程時(shí),此引腳也用作編程輸入脈沖。在一般情況下,ALEPROG以晶振六分之一的固定頻率輸出脈沖,可用來(lái)作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),ALE脈沖將會(huì)跳過(guò)。如果需要,通過(guò)將地址為8EH的SFR的第0位置“1”,ALE操作將無(wú)效。這一位置“1”,ALE僅在執(zhí)行MOVX或MOVC指令時(shí)有效。否則,ALE將被微弱拉高。這個(gè)ALE使能標(biāo)志位(地址為8EH的SFR的第0位)的設(shè)置對(duì)微控制器處于外部執(zhí)行模式下無(wú)效。外部程序存儲(chǔ)器選通信號(hào)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)AT89S52從外PSENPSEN部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),在每個(gè)機(jī)器周期被激活兩次,而在訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將不被激活。/VPP訪問(wèn)外部程序存儲(chǔ)器控制信號(hào)。為使能從0000H到FFFFH的外部程序存儲(chǔ)器讀EA取指令,必須接GND。為了執(zhí)行內(nèi)部程序指令,應(yīng)該接VCC。在FLASH編程期間,EA也接收12伏VPP電壓。EAXTAL1振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。XTAL2振蕩器反相放大器的輸出端。33存儲(chǔ)器結(jié)構(gòu)MCS51器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以64K尋址。331程序存儲(chǔ)器如果引腳接地,程序讀取只從外部存儲(chǔ)器開(kāi)始。對(duì)于89S52,如果接VCC,程EAEA序讀寫(xiě)先從內(nèi)部存儲(chǔ)器(地址為0000H1FFFH)開(kāi)始,接著從外部尋址,尋址地址為2000HFFFFH。332數(shù)據(jù)存儲(chǔ)器AT89S52有256字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128字節(jié)與特殊功能寄存器重疊。也就是說(shuō)高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開(kāi)的。當(dāng)一條指令訪問(wèn)高于7FH的地址時(shí),尋址方式?jīng)Q定CPU訪問(wèn)高128字節(jié)RAM還是特殊功能寄存器空間。直接尋址方式訪問(wèn)特殊功能寄存器(SFR)。例如,下面的直接尋址指令訪問(wèn)0A0H(P2口)存儲(chǔ)單元MOV0A0H,DATA使用間接尋址方式訪問(wèn)高128字節(jié)RAM。例如,下面的間接尋址方式中,R0內(nèi)容為0A0H,訪問(wèn)的是地址0A0H的寄存器,而不是P2口(它的地址也是0A0H)。MOVR0,DATA堆棧操作也是簡(jiǎn)介尋址方式。因此,高128字節(jié)數(shù)據(jù)RAM也可用于堆棧空間。34看門(mén)狗定時(shí)器WDT是一種需要軟件控制的復(fù)位方式。WDT由13位計(jì)數(shù)器和特殊功能寄存器中的看門(mén)狗定時(shí)器復(fù)位存儲(chǔ)器(WDTRST)構(gòu)成。WDT在默認(rèn)情況下無(wú)法工作;為了激活WDT,戶用必須往WDTRST寄存器(地址0A6H)中依次寫(xiě)入01EH和0E1H。當(dāng)WDT激活后,晶振工作,WDT在每個(gè)機(jī)器周期都會(huì)增加。WDT計(jì)時(shí)周期依賴(lài)于外部時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或WDT溢出復(fù)位),沒(méi)有辦法停止WDT工作。當(dāng)WDT溢出,它將驅(qū)動(dòng)RSR引腳一個(gè)高個(gè)電平輸出。341WDT的使用為了激活WDT,用戶必須向WDTRST寄存器(地址為0A6H的SFR)依次寫(xiě)入0E1H和0E1H。當(dāng)WDT激活后,用戶必須向WDTRST寫(xiě)入01EH和0E1H喂狗來(lái)避免WDT溢出。當(dāng)計(jì)數(shù)達(dá)到81911FFFH時(shí),13位計(jì)數(shù)器將會(huì)溢出,這將會(huì)復(fù)位器件。晶振正常工作、WDT激活后,每一個(gè)機(jī)器周期WDT都會(huì)增加。為了復(fù)位WDT,用戶必須向WDTRST寫(xiě)入01EH和0E1H(WDTRST是只讀寄存器)。WDT計(jì)數(shù)器不能讀或?qū)?。?dāng)WDT計(jì)數(shù)器溢出時(shí),將給RST引腳產(chǎn)生一個(gè)復(fù)位脈沖輸出,這個(gè)復(fù)位脈沖持續(xù)96個(gè)晶振周期(TOSC),其中TOSC1/FOSC。為了很好地使用WDT,應(yīng)該在一定時(shí)間內(nèi)周期性寫(xiě)入那部分代碼,以避免WDT復(fù)位。342掉電和空閑方式下的WDT在掉電模式下,晶振停止工作,這意味這WDT也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開(kāi)掉電模式硬件復(fù)位或通過(guò)一個(gè)激活的外部中斷。通過(guò)硬件復(fù)位退出掉電模式后,用戶就應(yīng)該給WDT喂狗,就如同通常AT89S52復(fù)位一樣。通過(guò)中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長(zhǎng)一段時(shí)間,使得晶振穩(wěn)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止WDT在中斷保持低電平的時(shí)候復(fù)位器件,WDT直到中斷拉低后才開(kāi)始工作。這就意味著WDT應(yīng)該在中斷服務(wù)程序中復(fù)位。為了確保在離開(kāi)掉電模式最初的幾個(gè)狀態(tài)WDT不被溢出,最好在進(jìn)入掉電模式前就復(fù)WDT。在進(jìn)入待機(jī)模式前,特殊寄存器AUXR的WDIDLE位用來(lái)決定WDT是否繼續(xù)計(jì)數(shù)。默認(rèn)狀態(tài)下,在待機(jī)模式下,WDIDLE0,WDT繼續(xù)計(jì)數(shù)。為了防止WDT在待機(jī)模式下復(fù)位AT89S52,用戶應(yīng)該建立一個(gè)定時(shí)器,定時(shí)離開(kāi)待機(jī)模式,喂狗,再重新進(jìn)入待機(jī)模式【5】。35UART在AT89S52中,UART的操作與AT89C51和AT89C52一樣。為了獲得更深入的關(guān)于UART的信息,可參考ATMEL網(wǎng)站(HTTP/WWWATMELCOM)。從這個(gè)主頁(yè),選擇“PRODUCTS”,然后選擇“8051ARCHITECHFLASHMICROCONTROLLER”,再選擇“PRODUCTOVERVIEW”即可。36定時(shí)器0和定時(shí)器1在AT89S52中,定時(shí)器0和定時(shí)器1的操作與AT89C51和AT89C52一樣。為了獲得更深入的關(guān)于UART的信息,可參考ATMEL網(wǎng)站(HTTP/WWWATMELCOM)。從這個(gè)主頁(yè),選擇“PRODUCTS”,然后選擇“8051ARCHITECHFLASHMICROCONTROLLER”,再選擇“PRODUCTOVERVIEW”即可。37定時(shí)器2定時(shí)器2是一個(gè)16位定時(shí)/計(jì)數(shù)器,它既可以做定時(shí)器,又可以做事件計(jì)數(shù)器。其工作方式由特殊寄存器T2CON中的C/T2位選擇(如表2所示)。定時(shí)器2有三種工作模式捕捉方式、自動(dòng)重載(向下或向上計(jì)數(shù))和波特率發(fā)生器。如表3所示,工作模式由T2CON中的相關(guān)位選擇。定時(shí)器2有2個(gè)8位寄存器TH2和TL2。在定時(shí)工作方式中,每個(gè)機(jī)器周期,TL2寄存器都會(huì)加1。由于一個(gè)機(jī)器周期由12個(gè)晶振周期構(gòu)成,因此,計(jì)數(shù)頻率就是晶振頻率的1/12。表3定時(shí)器2工作模式RCLKTCLKCP/RLTR2MODE00116位自動(dòng)重載01116位捕捉1X1波特率發(fā)生器XX0(不用)在計(jì)數(shù)工作方式下,寄存器在相關(guān)外部輸入角T2發(fā)生1至0的下降沿時(shí)增加1。在這種方式下,每個(gè)機(jī)器周期的S5P2期間采樣外部輸入。一個(gè)機(jī)器周期采樣到高電平,而下一個(gè)周期采樣到低電平,計(jì)數(shù)器將加1。在檢測(cè)到跳變的這個(gè)周期的S3P1期間,新的計(jì)數(shù)值出現(xiàn)在寄存器中。因?yàn)樽R(shí)別10的跳變需要2個(gè)機(jī)器周期(24個(gè)晶振周期),所以,最大的計(jì)數(shù)頻率不高于晶振頻率的1/24。為了確保給定的電平在改變前采樣到一次,電平應(yīng)該至少在一個(gè)完整的機(jī)器周期內(nèi)保持不變。371捕捉方式在捕捉模式下,通過(guò)T2CON中的EXEN2來(lái)選擇兩種方式。如果EXEN20,定時(shí)器2時(shí)一個(gè)16位定時(shí)/計(jì)數(shù)器,溢出時(shí),對(duì)T2CON的TF2標(biāo)志置位,TF2引起中斷。如果EXEN21,定時(shí)器2做相同的操作。除上述功能外,外部輸入T2EX引腳(P11)1至0的下跳變也會(huì)使得TH2和TL2中的值分別捕捉到RCAP2H和RCAP2L中。除此之外,T2EX的跳變會(huì)引起T2CON中的EXF2置位。像TF2一樣,T2EX也會(huì)引起中斷。372自動(dòng)重載【6】當(dāng)定時(shí)器2工作于16位自動(dòng)重載模式,可對(duì)其編程實(shí)現(xiàn)向上計(jì)數(shù)或向下計(jì)數(shù)。這一功能可以通過(guò)特殊寄存器T2MOD(見(jiàn)表4)中的DCEN(向下計(jì)數(shù)允許位)來(lái)實(shí)現(xiàn)。通過(guò)復(fù)位,DCEN被置為0,因此,定時(shí)器2默認(rèn)為向上計(jì)數(shù)。DCEN設(shè)置后,定時(shí)器2就可以取決于T2EX向上、向下計(jì)數(shù)。DCEN0時(shí),定時(shí)器2自動(dòng)計(jì)數(shù)。通過(guò)T2CON中的EXEN2位可以選擇兩種方式。如果EXEN20,定時(shí)器2計(jì)數(shù),計(jì)到0FFFFH后置位TF2溢出標(biāo)志。計(jì)數(shù)溢出也使得定時(shí)器寄存器重新從RCAP2H和RCAP2L中加載16位值。定時(shí)器工作于捕捉模式,RCAP2H和RCAP2L的值可以由軟件預(yù)設(shè)。如果EXEN21,計(jì)數(shù)溢出或在外部T2EX(P11)引腳上的1到0的下跳變都會(huì)觸發(fā)16位重載。這個(gè)跳變也置位EXF2中斷標(biāo)志位。置位DCEN,允許定時(shí)器2向上或向下計(jì)數(shù)。在這種模式下,T2EX引腳控制著計(jì)數(shù)的方向。T2EX上的一個(gè)邏輯1使得定時(shí)器2向上計(jì)數(shù)。定時(shí)器計(jì)到0FFFFH溢出,并置位TF2。定時(shí)器的溢出也使得RCAP2H和RCAP2L中的16位值分別加載到定時(shí)器存儲(chǔ)器TH2和TL2中。T2EX上的一個(gè)邏輯0使得定時(shí)器2向下計(jì)數(shù)。當(dāng)TH2和TL2分別等于RCAP2H和RCAP2L中的值的時(shí)候,計(jì)數(shù)器下溢。計(jì)數(shù)器下溢,置位TF2,并將0FFFFH加載到定時(shí)器存儲(chǔ)器中。定時(shí)器2上溢或下溢,外部中斷標(biāo)志位EXF2被鎖死。在這種工作模式下,EXF2不能觸發(fā)中斷。38波特率發(fā)生器通過(guò)設(shè)置T2CON中的TCLK或RCLK可選擇定時(shí)器2作為波特率發(fā)生器。如果定時(shí)器2作為發(fā)送或接收波特率發(fā)生器,定時(shí)器1可用作它用,發(fā)送和接收的波特率可以不同。如圖8所示,設(shè)置RCLK和(或)TCLK可以使定時(shí)器2工作于波特率產(chǎn)生模式。波特率產(chǎn)生工作模式與自動(dòng)重載模式相似,因此,TH2的翻轉(zhuǎn)使得定時(shí)器2寄存器重載被軟件預(yù)置16位值的RCAP2H和RCAP2L中的值。模式1和模式3的波特率由定時(shí)器2溢出速率決定,具體如下公式21316定時(shí)器溢出率模式和模式波特率定時(shí)器可設(shè)置成定時(shí)器,也可為計(jì)數(shù)器。在多數(shù)應(yīng)用情況下,一般配置成定時(shí)方式(CP/0)。定時(shí)器2用于定時(shí)器操作與波特率發(fā)生器有所不同,它在每一機(jī)器周T(1/12晶振周期)都會(huì)增加;然而,作為波特率發(fā)生器,它在每一機(jī)器狀態(tài)(1/2晶振周期)都會(huì)增加。波特率計(jì)算公式如下132653晶振頻率模式和模式波特率(RCAP2H,L)其中,(RCAP2H,RCAP2L)是RCAP2H和RCAP2L組成的16位無(wú)符號(hào)整數(shù)。特別強(qiáng)調(diào),TH2的翻轉(zhuǎn)并不置位TF2,也不產(chǎn)生中斷;EXEN2置位后,T2EX引腳上10的下跳變不會(huì)使(RCAP2H,RCAP2L)重載到(TH2,TL2)中。因此,定時(shí)器2作為波特率發(fā)生器,T2EX也還可以作為一個(gè)額外的外部中斷。定時(shí)器2處于波特率產(chǎn)生模式,TR21,定時(shí)器2正常工作。TH2或TL2不應(yīng)該讀寫(xiě)。在這種模式下,定時(shí)器在每一狀態(tài)都會(huì)增加,讀或?qū)懢筒粫?huì)準(zhǔn)確。寄存器RCAP2可以讀,但不能寫(xiě),因?yàn)閷?xiě)可能和重載交迭,造成寫(xiě)和重載錯(cuò)誤。在讀寫(xiě)定時(shí)器2或RCAP2寄存器時(shí),應(yīng)該關(guān)閉定時(shí)器(TR2清0)【7】。39可編程時(shí)鐘輸出可以通過(guò)編程在P10引腳輸出一個(gè)占空比為50的時(shí)鐘信號(hào)。這個(gè)引腳除了常規(guī)的I/O角外,還有兩種可選擇功能。它可以通過(guò)編程作為定時(shí)器/計(jì)數(shù)器2的外部時(shí)鐘輸入或占空比為50的時(shí)鐘輸出。當(dāng)工作頻率為16MHZ時(shí),時(shí)鐘輸出頻率范圍為61HZ到4HZ。為了把定時(shí)器2配置成時(shí)鐘發(fā)生器,位C/(T2CON1)必須清0,位T2T2OE(T2MOD1)必須置1。位TR2(T2CON2)啟動(dòng)、停止定時(shí)器。時(shí)鐘輸出頻率取決于晶振頻率和定時(shí)器2捕捉寄存器(RCAP2H,RCAP2L)的重載值,如公式所示在時(shí)鐘輸出模式下,定時(shí)器2不會(huì)產(chǎn)生中斷,這和定時(shí)器2用作波特率發(fā)生器一樣。定時(shí)器2也可以同時(shí)用作波特率發(fā)生器和時(shí)鐘產(chǎn)生。不過(guò),波特率和輸出時(shí)鐘頻率相互并不獨(dú)立,它們都依賴(lài)于RCAP2H和RCAP2L。310中斷AT89S52有6個(gè)中斷源兩個(gè)外部中斷(和),三個(gè)定時(shí)中斷(定時(shí)器INT0I10、1、2)和一個(gè)串行中斷。每個(gè)中斷源都可以通過(guò)置位或清除特殊寄存器IE中的相關(guān)中斷允許控制位分別使得中斷源有效或無(wú)效。IE還包括一個(gè)中斷允許總控制位EA,它能一次禁止所有中斷。IE6位是不可用的。對(duì)于AT89S52,IE5位也是不能用的。用戶軟件不應(yīng)給這些位寫(xiě)1。它們?yōu)锳T89系列新產(chǎn)品預(yù)留。定時(shí)器2可以被寄存器T2CON中的TF2和EXF2的或邏輯觸發(fā)。程序進(jìn)入中斷服務(wù)后,這些標(biāo)志位都可以由硬件清0。實(shí)際上,中斷服務(wù)程序必須判定是否是TF2或EXF2激活中斷,標(biāo)志位也必須由軟件清0。定時(shí)器0和定時(shí)器1標(biāo)志位TF0和TF1在計(jì)數(shù)溢出的那個(gè)周期的S5P2被置位。它們的值一直到下一個(gè)周4653晶振頻率時(shí)鐘輸出頻率(RCAP2H,L)期被電路捕捉下來(lái)。然而,定時(shí)器2的標(biāo)志位TF2在計(jì)數(shù)溢出的那個(gè)周期的S2P2被置位,在同一個(gè)周期被電路捕捉下來(lái)【8】。311晶振特性AT89S52單片機(jī)有一個(gè)用于構(gòu)成內(nèi)部振蕩器的反相放大器,XTAL1和XTAL2分別是放大器的輸入、輸出端。石英晶體和陶瓷諧振器都可以用來(lái)一起構(gòu)成自激振蕩器。從外部時(shí)鐘源驅(qū)動(dòng)器件的話,XTAL2可以不接,而從XTAL1接入。由于外部時(shí)鐘信號(hào)經(jīng)過(guò)二分頻觸發(fā)后作為外部時(shí)鐘電路輸入的,所以對(duì)外部時(shí)鐘信號(hào)的占空比沒(méi)有其它要求,最長(zhǎng)低電平持續(xù)時(shí)間和最少高電平持續(xù)時(shí)間等還是要符合要求的。312空閑模式在空閑工作模式下,CPU處于睡眠狀態(tài),而所有片上外部設(shè)備保持激活狀態(tài)。這種狀態(tài)可以通過(guò)軟件產(chǎn)生。在這種狀態(tài)下,片上RAM和特殊功能寄存器的內(nèi)容保持不變??臻e模式可以被任一個(gè)中斷或硬件復(fù)位終止。由硬件復(fù)位終止空閑模式只需兩個(gè)機(jī)器周期有效復(fù)位信號(hào),在這種情況下,片上硬件禁止訪問(wèn)內(nèi)部RAM,而可以訪問(wèn)端口引腳??臻e模式被硬件復(fù)位終止后,為了防止預(yù)想不到的寫(xiě)端口,激活空閑模式的那一條指令的下一條指令不應(yīng)該是寫(xiě)端口或外部存儲(chǔ)器。313掉電模式在掉電模式下,晶振停止工作,激活掉電模式的指令是最后一條執(zhí)行指令。片上RAM和特殊功能寄存器保持原值,直到掉電模式終止。掉電模式可以通過(guò)硬件復(fù)位和外部中斷退出。復(fù)位重新定義了SFR的值,但不改變片上RAM的值。在VCC未恢復(fù)到正常工作電壓時(shí),硬件復(fù)位不能無(wú)效,并且應(yīng)保持足夠長(zhǎng)的時(shí)間以使晶振重新工作和初始化【9】。314本章小結(jié)本章研究了嵌入式系統(tǒng)及其發(fā)展趨勢(shì)。深入研究了AT89S52單片機(jī)的性能特點(diǎn),為虛擬實(shí)驗(yàn)的開(kāi)發(fā)打下了基礎(chǔ)。第四章基于PROTEUS的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真41虛擬實(shí)驗(yàn)室的構(gòu)建PROTEUS支持51、PIC、AVR、RAM7等多個(gè)系列的單片機(jī)芯片,集編輯、編譯、仿真調(diào)試于一體。它的界面簡(jiǎn)潔友好,可利用該軟件提供的數(shù)千種數(shù)字/模擬仿真元器件以及豐富的仿真設(shè)備,使得在程序調(diào)試、系統(tǒng)仿真時(shí)不僅能觀察到程序執(zhí)行過(guò)程中單片機(jī)寄存器和存儲(chǔ)器等內(nèi)容變化,還可從工程的角度直觀地看到外圍電路工作情況,非常接近工程應(yīng)用。另外PROTEUS還能與第三方集成開(kāi)發(fā)環(huán)境(如KEIL的VISION)進(jìn)行聯(lián)合仿真調(diào)試,給予開(kāi)發(fā)人員莫大便利。本設(shè)計(jì)以51單片機(jī)構(gòu)成的虛擬測(cè)控實(shí)驗(yàn)為例描述基于PROTEUS的硬件設(shè)計(jì)、基于KEILC的軟件設(shè)計(jì)過(guò)程。隨著嵌入式系統(tǒng)應(yīng)用不斷擴(kuò)大,功能不斷增強(qiáng),為了對(duì)整個(gè)系統(tǒng)及其所操作的部件、裝置等資源進(jìn)行統(tǒng)一協(xié)調(diào)、指揮和有效控制,使開(kāi)發(fā)人員只專(zhuān)注于應(yīng)用程序設(shè)計(jì),在嵌入式系統(tǒng)中引入操作系統(tǒng)是非常必要的。C/OSII是源碼公開(kāi)的實(shí)時(shí)多任務(wù)操作系統(tǒng),具備足夠的穩(wěn)定性和安全性,特別適合用于中小型嵌入式系統(tǒng)中。KEIL公司的KEILVISION3,是目前使用最為廣泛的開(kāi)發(fā)環(huán)境之一。這里介紹在KEILVISION3環(huán)境下基于C/OSII嵌入式操作系統(tǒng)的用戶程序設(shè)計(jì)。基于PROTEUS電路設(shè)計(jì)、KEIL程序設(shè)計(jì)以及它們聯(lián)合仿真調(diào)試的方法,建立了單片機(jī)系統(tǒng)硬件設(shè)計(jì)、軟件設(shè)計(jì)以及調(diào)試的全虛擬環(huán)境,使得全部的設(shè)計(jì)工作基于PC就能完成,顯著提高了設(shè)計(jì)開(kāi)發(fā)效率,降低開(kāi)發(fā)風(fēng)險(xiǎn),這對(duì)嵌入式方案設(shè)計(jì)無(wú)疑是一個(gè)很好的思路42虛擬實(shí)驗(yàn)實(shí)例在PROTEUS虛擬實(shí)驗(yàn)系統(tǒng)中能夠開(kāi)發(fā)設(shè)計(jì)模擬電路、數(shù)字電路和單片機(jī)系統(tǒng)在內(nèi)的各種仿真實(shí)驗(yàn)。論文中只在單片機(jī)中選擇了幾個(gè)典型的有代表性實(shí)驗(yàn)項(xiàng)目,作為應(yīng)用實(shí)例。根據(jù)單片機(jī)編程仿真實(shí)驗(yàn)系統(tǒng)硬件資源,設(shè)計(jì)了如下實(shí)驗(yàn)實(shí)驗(yàn)一彩燈控制器一、目的掌握可編程I/O接口芯片AT89S52的接口原理使用,熟悉對(duì)AT89S52初始化編程和輸入、輸出軟件的設(shè)計(jì)方法。二、內(nèi)容編寫(xiě)程序,讓AT89S52的發(fā)光二極管閃爍,根據(jù)花樣表進(jìn)行花樣變化三、硬件說(shuō)明P1接8只LED晶體為12MHZ四、線路實(shí)驗(yàn)線路圖如圖11圖11彩虹控制燈現(xiàn)象五、程序及流程圖程序見(jiàn)附錄1開(kāi)始打開(kāi)發(fā)光管公共陽(yáng)極進(jìn)入花樣循環(huán)花樣表中的數(shù)據(jù)取反送出延時(shí)圖12彩虹燈控制流程圖實(shí)驗(yàn)二定時(shí)器/計(jì)數(shù)器應(yīng)用實(shí)驗(yàn)10一、目的和要求1、掌握定時(shí)器/計(jì)數(shù)器計(jì)數(shù)功能的使用方法。2、掌握定時(shí)器/計(jì)數(shù)器的中斷、查詢使用方法。3、掌握PROTEUS軟件與KEIL軟件的使用方法。4、掌握單片機(jī)系統(tǒng)的硬件和軟件設(shè)計(jì)方法。二、內(nèi)容或原理1、利用單片機(jī)的定時(shí)器/計(jì)數(shù)器以查詢方式計(jì)數(shù)外部連續(xù)周期性矩形波并在單片機(jī)口線上產(chǎn)生某一頻率的連續(xù)周期性矩形波。2、利用單片機(jī)的定時(shí)器/計(jì)數(shù)器以中斷方式計(jì)數(shù)外部連續(xù)周期性矩形波并在單片機(jī)口線上產(chǎn)生某一頻率的連續(xù)周期性矩形波。三、設(shè)計(jì)要求1、用PROTEUS軟件畫(huà)出電路原理圖,單片機(jī)的定時(shí)器/計(jì)數(shù)器以查詢方式工作,設(shè)定計(jì)數(shù)功能,對(duì)外部連續(xù)周期性脈沖信號(hào)進(jìn)行計(jì)數(shù),每計(jì)滿100個(gè)脈沖,則取反P10口線狀態(tài),在P10口線上接示波器觀察波形。2、用PROTEUS軟件畫(huà)出電路原理圖,單片機(jī)的定時(shí)器/計(jì)數(shù)器以查詢方式工作,設(shè)定計(jì)數(shù)功能,對(duì)外部連續(xù)周期性脈沖信號(hào)進(jìn)行計(jì)數(shù),每計(jì)滿200個(gè)脈沖,則取反P10口線狀態(tài),在P10口線上接示波器觀察波形。四、電路原理圖連續(xù)方式如圖21XTAL218XTAL119ALE30EA31PSEN29RST9P00/AD039P01/AD138P02/AD237P03/AD336P04/AD435P05/AD534P06/AD63P07/AD732P101P112P123P134P145P156P167P178P30/RXD10P31/TXD1P32/INT012P33/INT113P34/T014P37/RD17P36/WR16P35/T115P27/A1528P20/A821P21/A92P22/A1023P23/A124P24/A1225P25/A1326P26/A1427U1AT89C51ABCDU1P34/T01K圖21電路原理及連接線路五、程序及流程圖程序見(jiàn)附錄二。圖22主程序流程圖六、實(shí)驗(yàn)結(jié)果開(kāi)始計(jì)數(shù)器初始化開(kāi)定時(shí)器0TF01P10取反TF0清零結(jié)束Y開(kāi)始計(jì)數(shù)器、中斷初始化開(kāi)定時(shí)器0等待結(jié)束ITPOP10取反返回圖23中斷計(jì)數(shù)流程圖程序1與程序2從T0接入1000HZ的方波圖24計(jì)100次脈沖圖25計(jì)200次脈沖實(shí)驗(yàn)三按鍵實(shí)驗(yàn)一、目的學(xué)習(xí)AT89S52芯片和單片機(jī)的接口原理和方法,掌握82C53工作方式以及編程方法。二、內(nèi)容將按下按鍵的編號(hào)顯示到數(shù)碼管上三、線路或現(xiàn)象按鍵實(shí)驗(yàn)線路及現(xiàn)象如圖31圖31、按鍵掃描線路及現(xiàn)象四、步驟按鍵和數(shù)碼顯示公用P1,程序要分時(shí)掃描進(jìn)行晶體為12MHZ五、程序及流程圖程序見(jiàn)附錄三【11】定義變量,初始化端口進(jìn)入無(wú)限循環(huán),初始化變量開(kāi)始是否按鍵1消除抖動(dòng),數(shù)碼管顯示消除抖動(dòng),數(shù)碼管顯示消除抖動(dòng),數(shù)碼管顯示是否按鍵2是否按鍵3YYYNN進(jìn)N入無(wú)限循環(huán),初始化變量N圖32按鍵掃描程序流程圖實(shí)驗(yàn)四利用中斷,動(dòng)態(tài)數(shù)碼管顯示一、目的了解數(shù)碼管結(jié)構(gòu),掌握串行顯示的軟件編程以及中斷使用方法。二、內(nèi)容編寫(xiě)程序,使得數(shù)碼管從左向右依次顯示16三、原理所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余輝和人眼視覺(jué)暫留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。圖41中斷原理圖引起CPU中斷的根源,稱(chēng)為中斷源。中斷源向CPU提出的中斷請(qǐng)求。CPU暫時(shí)中斷原來(lái)的事務(wù)A,轉(zhuǎn)去處理事件B。對(duì)事件B處理完畢后,再回到原來(lái)被中斷的地方(即斷點(diǎn)),稱(chēng)為中斷返回。實(shí)現(xiàn)上述中斷功能的部件稱(chēng)為中斷系統(tǒng)(中斷機(jī)構(gòu))【12】。如圖41所示四、線路或現(xiàn)象連接線路如圖42圖42、動(dòng)態(tài)數(shù)碼管連接線路及現(xiàn)象五、程序及流程圖程序見(jiàn)附錄四選擇1號(hào)數(shù)碼管并顯示1數(shù)碼管序號(hào)加1,顯示數(shù)字加1并延時(shí)數(shù)碼序號(hào)大于6否是圖43動(dòng)態(tài)數(shù)碼管掃描程序流程圖實(shí)驗(yàn)五利用中斷,音樂(lè)演奏一、內(nèi)容用蜂鳴器演奏“同一首歌”歌曲二、硬件說(shuō)明P37連接到蜂鳴器,晶體為12MHZ三、其它說(shuō)明本程序來(lái)源于網(wǎng)絡(luò),牽扯到音樂(lè)知識(shí),頻率常數(shù)即音樂(lè)術(shù)語(yǔ)中的音調(diào),而節(jié)拍常數(shù)即音樂(lè)術(shù)語(yǔ)中的多少拍四、線路或現(xiàn)象連接線路如圖51圖51音樂(lè)演奏線路連接圖五、程序及流程圖程序見(jiàn)附錄五【13】開(kāi)始初始化設(shè)置定時(shí)器初值存入樂(lè)曲代碼表讀取音符(定時(shí)常數(shù))AFFH讀取節(jié)拍(延時(shí)常數(shù))延時(shí)常數(shù)存入R2調(diào)用延時(shí)子程序R20結(jié)束T0重裝定時(shí)P34輸出返回NYNY圖53T0中斷子程序流程圖圖52主程序流程圖實(shí)驗(yàn)六1602液晶顯示的DS1302實(shí)時(shí)時(shí)鐘一、目的1、了解DS1302時(shí)鐘芯片的基本原理和功能。2、掌握DS1302和單片機(jī)的硬件接口和軟件設(shè)計(jì)方法。二、內(nèi)容利用1602液晶顯示器實(shí)時(shí)顯示時(shí)鐘三、線路或現(xiàn)象1602液晶顯示實(shí)時(shí)時(shí)鐘如圖61圖61、1602液晶顯示實(shí)時(shí)時(shí)鐘四、程序及流程圖程序見(jiàn)附錄六開(kāi)始變量初始化復(fù)位端產(chǎn)生1個(gè)高電平寫(xiě)1302地址延時(shí)一段時(shí)間向這個(gè)地址寫(xiě)數(shù)據(jù)地址增加數(shù)據(jù)寫(xiě)完了嗎復(fù)位端產(chǎn)生1個(gè)高電平寫(xiě)1302地址延時(shí)一段時(shí)間將該地址的數(shù)據(jù)讀出地址增加數(shù)據(jù)讀完了嗎顯示數(shù)據(jù)YNYN圖62液晶顯示實(shí)時(shí)時(shí)鐘程序流程圖實(shí)驗(yàn)七DS1621溫度傳感器實(shí)驗(yàn)一、目的熟悉并掌握溫度傳感器的相關(guān)知識(shí)及使用方法二、內(nèi)容讀取DS1621測(cè)得的溫度,轉(zhuǎn)換并顯示出來(lái)。三、其它說(shuō)明本實(shí)驗(yàn)牽扯到DS1621的相關(guān)知識(shí),請(qǐng)參閱本目錄下DS1621的器件手冊(cè)四、線路或現(xiàn)象線路連接圖如圖71圖71、DS1621溫度顯示連接圖及現(xiàn)象五、程序及流程圖程序見(jiàn)附錄七啟動(dòng)發(fā)送地址碼和R/W接收ACK發(fā)送EEH接收ACK停止數(shù)據(jù)傳輸啟動(dòng)發(fā)送地址碼和R/W接收ACK發(fā)送ACH接收ACK發(fā)送配置寄存器值接收ACK停止數(shù)據(jù)傳輸啟動(dòng)發(fā)送地址碼和R/W接收ACK發(fā)送AAH接收ACK重新啟動(dòng)發(fā)送地址碼和R/W接收ACK接受溫度高字節(jié)接收ACK接收溫度低字節(jié)發(fā)送NOACK停止傳輸72、啟動(dòng)轉(zhuǎn)換流程溫度顯示74、讀取溫度流程73、寫(xiě)配置寄存器流程實(shí)驗(yàn)八按鍵控制步進(jìn)電機(jī)正反轉(zhuǎn)實(shí)驗(yàn)一、目的1、掌握采用單片機(jī)控制步進(jìn)電機(jī)的硬件接口技術(shù)。2、掌握步進(jìn)電機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)和調(diào)試方法。3、熟悉步進(jìn)電動(dòng)機(jī)的工作特性。二、內(nèi)容根據(jù)按鍵控制,步進(jìn)電機(jī)按一定速度進(jìn)行正、反方向旋轉(zhuǎn)三、線路及現(xiàn)象線路連接圖如圖81圖81、按鍵控制電動(dòng)機(jī)正反轉(zhuǎn)連接線路及現(xiàn)象四、程序及流程圖程序見(jiàn)附錄八主程序開(kāi)始定時(shí)器01初始化電機(jī)狀態(tài)初始化調(diào)用鍵盤(pán)處理函數(shù)FLAG_STOP0FLAG_MODE0正傳和速度處理調(diào)用電機(jī)轉(zhuǎn)步函數(shù)反轉(zhuǎn)和速度處理圖82、主程序流程圖說(shuō)明1、FLAG_STOP為電機(jī)轉(zhuǎn)動(dòng)或停止標(biāo)志位,0表示轉(zhuǎn)動(dòng),1表示定時(shí)轉(zhuǎn)動(dòng),默認(rèn)為1,通過(guò)按鍵可改變?cè)撐坏闹怠?、FLAG_MODE為電機(jī)正轉(zhuǎn)或反轉(zhuǎn)標(biāo)志位,0表示正轉(zhuǎn),1表示反轉(zhuǎn),默認(rèn)為0,通過(guò)按鍵可改變?cè)撐坏闹?。按鍵處理函數(shù)開(kāi)始檢測(cè)轉(zhuǎn)動(dòng)方向鍵轉(zhuǎn)動(dòng)方向位處理檢測(cè)啟動(dòng)/停止鍵啟動(dòng)/停止位處理結(jié)束YNYN圖83、按鍵處理函數(shù)流程圖電機(jī)轉(zhuǎn)步函數(shù)開(kāi)始SETP_MOTOR_FFWN轉(zhuǎn)動(dòng)第N步結(jié)束圖84、電機(jī)轉(zhuǎn)步函數(shù)流程圖實(shí)驗(yàn)九ADC0809模數(shù)轉(zhuǎn)換與顯示一、目的1、了解ADC08098位A/D轉(zhuǎn)換芯片的基本原理和功能。2、掌握ADC0809和單片機(jī)的硬件接口和軟件設(shè)計(jì)方法。二、內(nèi)容控制并讀取ADC0831測(cè)量到的模擬數(shù)據(jù),顯示到數(shù)碼管上三、原理圖91、ADC0809引腳圖如圖91所示,CLOCK(10)引腳為ADC0809時(shí)鐘輸入引腳,最大頻率不能超過(guò)640KHZ,我們這里用ALE通過(guò)7032內(nèi)部組成的4分頻電路,得到的頻率為110592M(12M)644608K(500K),能夠滿足要求。REF(),REF()為0809基準(zhǔn)電壓輸入端,當(dāng)REF()接到5V,REF()接到0V時(shí),IN0IN8檢測(cè)到5V時(shí)輸出0FFH,檢測(cè)到0V時(shí)輸出00HADC0809為8路檢測(cè),ADDA、ADDB、ADDC(25,24,23)為檢測(cè)路選通端,內(nèi)部是一個(gè)38譯碼器,通過(guò)選擇不同的ADDA,ADDB,ADDC的值來(lái)依次選通IN0IN7模擬輸入信道信道,實(shí)現(xiàn)8路巡回檢測(cè)。這里我們把ADDA,ADDB,ADDC都接地,只檢測(cè)IN0(26)口。IN0端的電壓輸入,我們采用電位器調(diào)節(jié)電壓的形式(見(jiàn)原理圖),VCC接到5V,則IN0輸入電壓為05V。ALE,START為內(nèi)部轉(zhuǎn)換信號(hào)端,ALE(22)端出現(xiàn)一個(gè)上升沿,則0809取三位地址送地址鎖存器,并經(jīng)譯碼器得到地址輸出,以選擇相應(yīng)的模擬輸入通道。START(6)為啟動(dòng)信號(hào)端,加上正脈沖后,A/D轉(zhuǎn)換開(kāi)始進(jìn)行。ENABLE(9)為輸出允許信號(hào),當(dāng)ENABLE出現(xiàn)高電平時(shí),允許輸出轉(zhuǎn)換值。上面給出了ADC0809基本工作原理,具體請(qǐng)參閱ADC0809技術(shù)資料。四、步驟1、單片機(jī)最小應(yīng)用系統(tǒng)的P0口接A/D轉(zhuǎn)換的D0D7口,單片機(jī)最小應(yīng)用系統(tǒng)的Q0Q7口接0809的A0A7口,單片機(jī)最小應(yīng)用系統(tǒng)的WR、RD、P20、ALE、INT1分別接A/D轉(zhuǎn)換的WR、RD、P20、CLOCK、INT1、A/D轉(zhuǎn)換的IN接入5V,單片機(jī)最小應(yīng)用系統(tǒng)的RXD、TXD連接到串行靜態(tài)顯示實(shí)驗(yàn)?zāi)K的DIN、CLK。2、介于KEIL建立A/D轉(zhuǎn)換程序,要求將采集到的電壓等間隔分為09共10級(jí),并用一位共陰極數(shù)碼管顯示。五、線路或現(xiàn)象ADC0809數(shù)模轉(zhuǎn)換與顯示線路連接圖及現(xiàn)象如圖92六、流程圖及源程序源程序見(jiàn)附錄九開(kāi)始初始化啟動(dòng)A/D轉(zhuǎn)換A/D轉(zhuǎn)換完成數(shù)據(jù)輸出延時(shí)結(jié)束圖93ADC0809模數(shù)轉(zhuǎn)換顯示流程圖實(shí)驗(yàn)十D/A轉(zhuǎn)換實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康暮鸵?、掌握單片機(jī)與DAC0832的接口設(shè)計(jì)方法。2、掌握PROTEUS軟件與KEIL軟件的使用方法。二、內(nèi)容或原理1、設(shè)計(jì)一個(gè)簡(jiǎn)單的單片機(jī)應(yīng)用系統(tǒng),利用DAC0832輸出連續(xù)周期性方波、鋸齒波、三角波、正弦波信號(hào)。圖92、仿真電路圖三、設(shè)計(jì)要求1、用PROTEUS軟件畫(huà)出電路原理圖,在單片機(jī)的外部擴(kuò)展片外三總線,并通過(guò)片外三總線與0832接口。2、在單片機(jī)的外部擴(kuò)展一個(gè)4個(gè)按鍵的鍵盤(pán)。3、按下K0,產(chǎn)生連續(xù)方波信號(hào)。4、按下K1,產(chǎn)生連續(xù)鋸齒波信號(hào)。5、按下K2,產(chǎn)生連續(xù)三角波信號(hào)。6、按下K3,產(chǎn)生連續(xù)正弦波信號(hào)。7、通過(guò)外接示波器觀察波形。四、實(shí)驗(yàn)原理電路圖VCWRD0D1D2D3D4D5D6D7GGGNDGNDD0D1D2D3WRQ0VCWRQ0D4D5D6D7O2O1Q0FGNDO2O1FGNDP0P1P2P3P4P0P1P2P3P4XTAL218XTAL119ALE30EA3

溫馨提示

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