AT89C51單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第1頁(yè)
AT89C51單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第2頁(yè)
AT89C51單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第3頁(yè)
AT89C51單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第4頁(yè)
AT89C51單片機(jī)電子時(shí)鐘的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

...wd......wd......wd...基于AT89C51單片機(jī)電子時(shí)鐘的設(shè)計(jì)摘要單片機(jī)是集CPU、RAM、ROM、定時(shí)、計(jì)數(shù)和多種接口于一體的微控制器。近年來隨著計(jì)算機(jī)在社會(huì)領(lǐng)域的滲透和大規(guī)模集成電路的開展,單片機(jī)的應(yīng)用正在不斷地走向深入而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。由于它具有功能強(qiáng),體積小,功耗低,價(jià)格廉價(jià),工作可靠,使用方便等特點(diǎn),因此特別適合于與控制有關(guān)的系統(tǒng),越來越廣泛地應(yīng)用于自動(dòng)控制,智能化儀器,儀表,數(shù)據(jù)采集,軍工產(chǎn)品以及家用電器等各個(gè)領(lǐng)域,本文介紹單片機(jī)AT89C51結(jié)合74LS373設(shè)計(jì)時(shí)鐘定時(shí)控制器實(shí)現(xiàn)的方案。74LS373為三態(tài)輸出的八組緩沖器。本系統(tǒng)將單片機(jī)AT89C51內(nèi)部時(shí)鐘讀出并通過七段數(shù)碼管(LED)顯示出來,通過按鍵設(shè)定的時(shí)間來改變系統(tǒng)的鬧鐘時(shí)間,單片機(jī)依據(jù)設(shè)定的時(shí)間來響鈴,從而實(shí)現(xiàn)了系統(tǒng)的智能化。關(guān)鍵詞:AT89C51電子時(shí)鐘74LS373AbstractMCUisaCPU、RAM、ROM、timing、countingandmultipleinterfacesinonemicrocontroller.Inrecentyears,withthefieldofcomputerpenetrationinthecommunityandthedevelopmentoflarge-scaleintegratedcircuits,single-chipapplicationsissteadilymovingtowarddepthand51single-chipisthemosttypicalandmostrepresentativeone.Becauseofitsstrongfunctions,smallsize,lowpowerconsumption,cheap,reliableandeasytouseandsoon,itisparticularlysuitedtocontrolsystemsand,morewidelyusedinautomaticcontrol,intelligentinstruments,meters,dataacquisition,militaryproducts,aswellashouseholdappliancesandotherfields,Thisarticledescribesthedesignofsingle-chipmicrocomputerAT89C51combination74LS373clocktimingoftheprogramcontroller.74LS373tri-stateoutputfortheeightsetsofbuffers.AT89C51single-chipmicrocomputerofthesystemwillreadouttheinternalclockandthroughtheLEDdisplay,throughthebuttontosetthealarmclocktochangethesystemtime,single-chipbasedonthetimetosetalarmclockprocessing,thusrealizingtheintelligentsystem.Keywords:AT89C51MCU;Electronicclock;74LS373目錄摘要1Abstract1目錄2第一章單片機(jī)概述31.1單片機(jī)的定義31.2單片機(jī)的特點(diǎn)31.3單片機(jī)的應(yīng)用領(lǐng)域4第二章MCS-51單片機(jī)簡(jiǎn)介62.1MCS-51單片機(jī)構(gòu)造及引腳說明62.2中央處理器(CPU)的構(gòu)造82.3AT89C51單片機(jī)的存儲(chǔ)器10第三章LED數(shù)碼管及74LS373簡(jiǎn)介143.1數(shù)碼管的分類143.2數(shù)碼管的驅(qū)動(dòng)方式143.3數(shù)碼管應(yīng)用153.4數(shù)碼管使用的電流與電壓153.574LS373簡(jiǎn)介15第四章電子鐘功能介紹164.1系統(tǒng)功能介紹164.2軟件設(shè)計(jì)流程164.3電子鐘程序清單18第五章電子鐘軟件實(shí)現(xiàn)仿真195.1單片機(jī)模擬調(diào)試軟件Keil195.2Proteus軟件簡(jiǎn)介225.3電子時(shí)鐘仿真235.4整機(jī)仿真及調(diào)試25附錄29第一章單片機(jī)概述1.1單片機(jī)的定義單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大局部功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大局部部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大局部還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備[1]。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。單片機(jī)也被稱為微控制器〔Microcontroller〕,是因?yàn)樗钤绫挥迷诠I(yè)控制領(lǐng)域。單片機(jī)由芯片內(nèi)僅有CPU的專用處理器開展而來,最早的設(shè)計(jì)理念是通過將大量外圍設(shè)備和CPU集成在一個(gè)芯片中,使計(jì)算機(jī)系統(tǒng)更小、更容易集成于復(fù)雜的而對(duì)體積要求嚴(yán)格的控制設(shè)備當(dāng)中。INTEL的Z80是最早按照這種思想設(shè)計(jì)出的處理器,從此以后,單片機(jī)和專用處理器的開展便分道揚(yáng)鑣。1.2單片機(jī)的特點(diǎn)單片機(jī)是以工業(yè)測(cè)控對(duì)象、環(huán)境、接口特點(diǎn)出發(fā)向著增強(qiáng)控制功能,提高工業(yè)環(huán)境下的可靠性方向開展。主要特點(diǎn)如下[2]:種類多,型號(hào)全很多單片機(jī)廠家逐年擴(kuò)大適應(yīng)各種需要,有針對(duì)性地推出一系列型號(hào)產(chǎn)品,使系統(tǒng)開發(fā)工程師有很大的選擇余地。大局部產(chǎn)品有較好的兼容性,保證了已開發(fā)產(chǎn)品能順利移植,較容易地使產(chǎn)品進(jìn)展升級(jí)換代。提高性能,擴(kuò)大容量,性能價(jià)格比高集成度已經(jīng)到達(dá)300萬(wàn)個(gè)晶體管以上,總線速度到達(dá)數(shù)十微妙到幾百納秒,指令執(zhí)行周期已經(jīng)到達(dá)幾微妙到數(shù)十納秒,以往片外XRAM現(xiàn)已在物理上存入片內(nèi),ROM容量已經(jīng)擴(kuò)大達(dá)32K,64K,128K以致更大的空間。價(jià)格從幾百到幾元不等。增加控制功能,向真正意義上的“單片〞機(jī)開展把原本是外圍接口芯片的功能集成到一塊芯片內(nèi),在一片芯片中構(gòu)造了一個(gè)完整的功能強(qiáng)大的微處理應(yīng)用系統(tǒng)。低功耗現(xiàn)在新型單片機(jī)的功耗越來越小,供電電壓從5V降低到了3.2V,甚至1V,工作電流從mA降到μA級(jí),gz2頻率從十幾兆可編程到幾十千赫茲。特別是很多單片機(jī)都設(shè)置了多種工作方式,這些工作方式包括等待、暫停、睡眠、空閑、節(jié)電等。C語(yǔ)言開發(fā)環(huán)境,友好的人機(jī)互交環(huán)境多數(shù)單片機(jī)都提供基于C語(yǔ)言開發(fā)平臺(tái),并提供大量的函數(shù)供使用,這使產(chǎn)品的開發(fā)周期、代碼可讀性、可移植性都大為提高。1.3單片機(jī)的應(yīng)用領(lǐng)域目前單片機(jī)滲透到我們生活的各個(gè)領(lǐng)域,幾乎很難找到哪個(gè)領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動(dòng)化過程的實(shí)時(shí)控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動(dòng)洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動(dòng)控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計(jì)算機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇[7]:在智能儀器儀表上的應(yīng)用單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長(zhǎng)度、硬度、元素、壓力等物理量的測(cè)量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精細(xì)的測(cè)量設(shè)備〔功率計(jì),示波器,各種分析儀〕。在工業(yè)控制中的應(yīng)用用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級(jí)控制系統(tǒng)等。在家用電器中的應(yīng)用現(xiàn)在的家用電器根本上都采用了單片機(jī)控制,從電飯煲、洗衣機(jī)、電冰箱、空調(diào)機(jī)、彩電、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無(wú)所不在。在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用現(xiàn)代的單片機(jī)普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)展數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備根本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無(wú)線通信、再到日常工作中隨處可見的移動(dòng),集群移動(dòng)通信,無(wú)線電對(duì)講機(jī)等。單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。在各種大型電器中的模塊化應(yīng)用某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)展模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部構(gòu)造。如音樂集成單片機(jī),看似簡(jiǎn)單的功能,微縮在純電子芯片中〔有別于磁帶機(jī)的原理〕,就需要復(fù)雜的類似于計(jì)算機(jī)的原理。如:音樂信號(hào)以數(shù)字的形式存于存儲(chǔ)器中〔類似于ROM〕,由微控制器讀出,轉(zhuǎn)化為模擬音樂電信號(hào)〔類似于聲卡〕。在大型電路中,這種模塊化應(yīng)用極大地縮小了體積,簡(jiǎn)化了電路,降低了損壞、錯(cuò)誤率,也方便于更換。此外,單片機(jī)在工商,金融,科研、教育,國(guó)防航空航天等領(lǐng)域都有著十分廣泛的用途。第二章MCS-51單片機(jī)簡(jiǎn)介2.1MCS-51單片機(jī)構(gòu)造及引腳說明MCS-51單片機(jī)是美國(guó)INTE公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的構(gòu)造更先進(jìn),功能更強(qiáng),在原來的根基上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,MCS-51系列單片機(jī)主要包括8031、8051和8751等通用產(chǎn)品。2.1.1、MCS-51單片機(jī)構(gòu)造框架圖2.1.1MCS-51單片機(jī)構(gòu)造框架2.1.2、MCS-51的引腳說明MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP構(gòu)造,右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明[3]:如圖2.1.2:圖2.1.2Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開場(chǎng)工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用存放器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開場(chǎng)執(zhí)行程序。然而,初始復(fù)位不改變RAM〔包括工作存放器R0-R7〕的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見以下列圖2.1.3。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不喪失。圖2.1.3·Pin30:ALE/當(dāng)訪問外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲(chǔ)器,ALE會(huì)跳過一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖?!in29:當(dāng)訪問外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行?!in31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī)內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)部無(wú)程序存儲(chǔ)器的8031,EA端必須接地。2.2中央處理器(CPU)的構(gòu)造MCS-51單片機(jī)內(nèi)部有一個(gè)8位的CPU,同時(shí)CPU內(nèi)部包含了運(yùn)算器,控制器及假設(shè)干存放器。如圖[4]:圖2.2MCS-51單片機(jī)CPU內(nèi)部構(gòu)造框圖圖2.2中虛線框內(nèi)的就是CPU的內(nèi)部構(gòu)造,8位的MCS-51單片機(jī)的CPU內(nèi)部有數(shù)術(shù)邏輯單元ALU〔ArithmeticLogicUnit〕、累加器A〔8位〕、存放器B〔8位〕、程序狀態(tài)字PSW〔8位〕、程序計(jì)數(shù)器PC〔有時(shí)也稱為指令指針,即IP,16位〕、地址存放器AR〔16位〕、數(shù)據(jù)存放器DR〔8位〕、指令存放器IR〔8位〕、指令譯碼器ID、控制器等部件組成。運(yùn)算器〔ALU〕的主要功能A〕算術(shù)和邏輯運(yùn)算,可對(duì)半字節(jié)〔一個(gè)字節(jié)是8位,半個(gè)字節(jié)就是4位〕和單字節(jié)數(shù)據(jù)進(jìn)展操作。B〕加、減、乘、除、加1、減1、比擬等算術(shù)運(yùn)算。C〕與、或、異或、求補(bǔ)、循環(huán)等邏輯運(yùn)算。D〕位處理功能〔即布爾處理器〕。由于ALU內(nèi)部沒有存放器,參加運(yùn)算的操作數(shù),必須放在累加器A中。累加器A也用于存放運(yùn)算結(jié)果。程序計(jì)數(shù)器PCPC的作用是用來存放將要執(zhí)行的指令地址,共16位,可對(duì)64KROM直接尋址,PC低8位經(jīng)P0口輸出,高8位經(jīng)P2口輸出。也就是說,程序執(zhí)行到什么地方,程序計(jì)數(shù)器PC就指到哪里,它始終是跟躥著程序的執(zhí)行。我們知道,用戶程序是存放在內(nèi)部的ROM中的,我們要執(zhí)行程序就要從ROM中一個(gè)個(gè)字節(jié)的讀出來,然后到CPU中去執(zhí)行,那么ROM具體執(zhí)行到哪一條呢這就需要我們的程序計(jì)數(shù)器PC來指示。程序計(jì)數(shù)器PC具有自動(dòng)加1的功能,即從存儲(chǔ)器中讀出一個(gè)字節(jié)的指令碼后,PC自動(dòng)加1〔指向下一個(gè)存儲(chǔ)單元〕。指令存放器IR指令存放器的作用就是用來存放即將執(zhí)行的指令代碼。下面先簡(jiǎn)單的介紹下CPU執(zhí)行指令的過程,首先由程序存儲(chǔ)器〔ROM〕中讀取指令代碼送入到指令存放器,經(jīng)譯碼器譯碼后再由定時(shí)與控制電路發(fā)出相應(yīng)的控制信號(hào),從而完成指令的功能。指令譯碼器ID用于對(duì)送入指令存放器中的指令進(jìn)展譯碼,所謂譯碼就是把指令轉(zhuǎn)變成執(zhí)行此指令所需要的電信號(hào)。當(dāng)指令送入譯碼器后,由譯碼器對(duì)該指令進(jìn)展譯碼,根據(jù)譯碼器輸出的信號(hào),CPU控制電路定時(shí)地產(chǎn)生執(zhí)行該指令所需的各種控制信號(hào),使單片機(jī)正確的執(zhí)行程序所需要的各種操作。地址存放器AR〔16位〕AR的作用是用來存放將要尋址的外部存儲(chǔ)器單元的地址信息,指令碼所在存儲(chǔ)單元的地址編碼,由程序計(jì)數(shù)器PC產(chǎn)生,而指令中操作數(shù)所在的存儲(chǔ)單元地址碼,由指令的操作數(shù)給定。從上圖中我們可以看到,地址存放器AR通過地址總線AB與外部存儲(chǔ)器相連。數(shù)據(jù)存放器DR用于存放寫入外部存儲(chǔ)器或I/O端口的數(shù)據(jù)信息??梢姡瑪?shù)據(jù)存放器對(duì)輸出數(shù)據(jù)具有鎖存功能。數(shù)據(jù)存放器與外部數(shù)據(jù)總線DB直接相連。程序狀態(tài)字PSW用于記錄運(yùn)算過程中的狀態(tài),如是否溢出、進(jìn)位等。時(shí)序部件由時(shí)鐘電路和脈沖分配器組成,用于產(chǎn)生微操作控制部件所需的定時(shí)脈沖信號(hào)。2.3AT89C51單片機(jī)的存儲(chǔ)器單片機(jī)的構(gòu)造有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的形式,即哈佛(Harvard)構(gòu)造,另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的構(gòu)造,即普林斯頓(Princeton)構(gòu)造。INTEL的MCS-51系列單片機(jī)采用的是哈佛構(gòu)造的形式。2.3.1、程序存儲(chǔ)空間程序存儲(chǔ)空間可以被映射為內(nèi)部程序存儲(chǔ)器或者外部程序存儲(chǔ)器。AT89C51單片機(jī)內(nèi)部具有的4KB程序存儲(chǔ)器被映射到程序存儲(chǔ)空間的0000H~0FFFH區(qū)間,如圖1.2所示。這局部程序存儲(chǔ)空間也可以被映射為外部程序存儲(chǔ)器,它具體被映射為哪一種程序存儲(chǔ)器取決于引腳〔引腳31〕所接的電平。當(dāng)引腳為高電平,內(nèi)部程序存儲(chǔ)器被映射到這局部程序存儲(chǔ)空間;當(dāng)引腳為低電平,外部程序存儲(chǔ)器被映射到這局部程序存儲(chǔ)空間。高于0FFFH的程序存儲(chǔ)空間只能被映射為外部程序存儲(chǔ)器。2.3.2、數(shù)據(jù)存儲(chǔ)空間AT89C51的內(nèi)部數(shù)據(jù)存儲(chǔ)器有256字節(jié),它們被分為兩局部:高128字節(jié)和低128字節(jié)。低128字節(jié)的內(nèi)部數(shù)據(jù)存儲(chǔ)器是真正的RAM區(qū),可以被用來寫入或讀出數(shù)據(jù)。這一局部存儲(chǔ)容量不是很大,但有很大的作用。它可以進(jìn)一步被分為3局部,如圖2.3.1所示。圖2.3.1內(nèi)部數(shù)據(jù)存儲(chǔ)器低128字節(jié)在內(nèi)部數(shù)據(jù)存儲(chǔ)器低128字節(jié)中,地址從00H~1FH的最低32個(gè)字節(jié)組成4組工作存放器,每組有8個(gè)工作存放器。每組中的8個(gè)工作存放器都被命名為從R0到R7。在一個(gè)具體時(shí)刻,CPU只能使用其中的一組工作存放器。當(dāng)前正在使用的工作存放器組由位于高128字節(jié)的程序狀態(tài)字存放器〔PSW〕中第3位〔RS0〕和第4位〔RS1〕的數(shù)據(jù)決定。程序狀態(tài)字存放器中的數(shù)據(jù)可以通過編程來改變,這種功能為保護(hù)工作存放器的內(nèi)容提供了很大的方便。如果用戶程序中不需要全部使用4組工作存放器,那么剩下的工作存放器所對(duì)應(yīng)的內(nèi)部數(shù)據(jù)存儲(chǔ)器也可以作為通用數(shù)據(jù)存儲(chǔ)器使用。工作存放器在內(nèi)部數(shù)據(jù)存儲(chǔ)器中的地址映射如表1.1所示[5]。表1.1工作存放器地址映射表0組〔RS1=0,RS0=0〕1組〔RS1=0,RS0=1〕2組〔RS1=1,RS0=0〕3組〔RS1=1,RS0=1〕地址存放器地址存放器地址存放器地址存放器00HR008HR010HR018HR001HR109HR111HR119HR102HR20AHR212HR21AHR203HR30BHR313HR31BHR304HR40CHR414HR41CHR405HR50DHR515HR51DHR506HR60EHR616HR61EHR607HR70FHR717HR71FHR7在工作存放器區(qū)上面,內(nèi)部數(shù)據(jù)存儲(chǔ)器的地址從20H~2FH的16個(gè)字節(jié)范圍內(nèi),既可以通過字節(jié)尋址的方式進(jìn)入,也可以通過位尋址的方式進(jìn)入,位地址范圍從00H到7FH。字節(jié)地址與位地址的對(duì)應(yīng)關(guān)系如表1.2所示。表1.2字節(jié)地址與位地址的關(guān)系位地址字節(jié)地址D7D6D5D4D3D2D1D02FH7F7E7D7C7B7A79782EH77767574737271702DH6F6E6D6C6B6A69682CH67666564636261602BH5F5E5D5C5B5A59582AH575655545352515029H4F4E4D4C4B4A494828H474645444342414027H3F3E3D3C3B3A393826H373635343332313025H2F2E2D2C2B2A292824H272625242322212023H1F1E1D1C1B1A191822H171615141312111021H0F0E0D0C0B0A090820H0706050403020100內(nèi)部數(shù)據(jù)存儲(chǔ)器地址從30H~7FH局部?jī)H可以用作通用數(shù)據(jù)存儲(chǔ)器。內(nèi)部數(shù)據(jù)存儲(chǔ)器的高128字節(jié)被稱為特殊功能存放器〔SFR〕區(qū)。特殊功能存放器被用作CPU和在片外圍器件之間的接口,它們之間的聯(lián)系方框圖如圖2.3.2所示。圖2.3.2特殊功能存放器〔SFR〕工作框圖CPU通過向相應(yīng)的特殊功能存儲(chǔ)器寫入數(shù)據(jù)實(shí)現(xiàn)控制對(duì)應(yīng)的在片外圍器件的工作,從相應(yīng)的特殊功能存儲(chǔ)器讀出數(shù)據(jù)實(shí)現(xiàn)讀取對(duì)應(yīng)的在片外圍器件的工作結(jié)果。表1.3AT89C51F8HFFHF0HBF7HE8HEFHE0HACCE7HD8HDFHD0HPSWD7HC8HCFHC0HC7HB8HIPBFHB0HP3B7HA8HIEAFHA0HP2AUXR1WDERSTA7H98HSCONSBUF9FH90HP197H88HTCONTMODTL0TL1TH0TH1AUXR8FH80HP0SPDP0LDP0HDP1LDP1HPCON87H在表1.3中,對(duì)于沒有定義的存儲(chǔ)單元用戶不能使用。如果向這些存儲(chǔ)單元寫入數(shù)據(jù)將產(chǎn)生不確定的效果,從它們讀取數(shù)據(jù)將得到一個(gè)隨機(jī)數(shù)。對(duì)于字節(jié)地址低位為8H或者FH的特殊功能存儲(chǔ)器,既可以進(jìn)展字節(jié)操作,也可以進(jìn)展位操作。例如前面提到的用來確定當(dāng)前工作存放器組的程序狀態(tài)字存放器〔PSW〕,它的地址為D0H,因此對(duì)它可以進(jìn)展字節(jié)操作,也可以進(jìn)展位操作。采用位操作可以直接控制程序狀態(tài)字存放器中的第3位〔RS0〕或第4位〔RS1〕數(shù)據(jù)而不影響其他位的數(shù)據(jù)。低位地址不為8H或FH的特殊功能存儲(chǔ)器只可以進(jìn)展字節(jié)操作,當(dāng)需要修改這些特殊功能存儲(chǔ)器中的某些位時(shí),對(duì)其他的位應(yīng)注意保護(hù)。片外數(shù)據(jù)存儲(chǔ)空間可以被映射為數(shù)據(jù)存儲(chǔ)器、擴(kuò)展的輸入/輸出接口、模擬/數(shù)字轉(zhuǎn)換器和數(shù)字/模擬轉(zhuǎn)換器等。這些外圍器件統(tǒng)一編址,所有外圍器件的地址都占用數(shù)據(jù)存儲(chǔ)空間的地址資源,因此CPU與片外外圍器件進(jìn)展數(shù)據(jù)交換時(shí)可以使用與訪問外部數(shù)據(jù)存儲(chǔ)器一樣的指令。CPU通過向相應(yīng)的外部數(shù)據(jù)存儲(chǔ)器地址單元寫入數(shù)據(jù)實(shí)現(xiàn)控制對(duì)應(yīng)的片外外圍器件的工作,從相應(yīng)的外部數(shù)據(jù)存儲(chǔ)器地址單元讀出數(shù)據(jù)實(shí)現(xiàn)讀取對(duì)應(yīng)的片外外圍器件的工作結(jié)果。第三章LED數(shù)碼管及74LS373簡(jiǎn)介數(shù)碼管是一種半導(dǎo)體發(fā)光器件,其根本單元是發(fā)光二極管。3.1數(shù)碼管的分類數(shù)碼管按段數(shù)分為七段數(shù)碼管和八段數(shù)碼管,八段數(shù)碼管比七段數(shù)碼管多一個(gè)發(fā)光二極管單元〔多一個(gè)小數(shù)點(diǎn)顯示〕;按能顯示多少個(gè)“8〞可分為1位、2位、4位等等數(shù)碼管;按發(fā)光二極管單元連接方式分為共陽(yáng)極數(shù)碼管和共陰極數(shù)碼管。共陽(yáng)極數(shù)碼管是指將所有發(fā)光二極管的陽(yáng)極接到一起形成公共陽(yáng)極(COM)的數(shù)碼管。共陽(yáng)極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到+5V,當(dāng)某一字段發(fā)光二極管的陰極為低電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陰極為高電平時(shí),相應(yīng)字段就不亮。。共陰極數(shù)碼管是指將所有發(fā)光二極管的陰極接到一起形成公共陰極(COM)的數(shù)碼管。共陰極數(shù)碼管在應(yīng)用時(shí)應(yīng)將公共極COM接到地線GND上,當(dāng)某一字段發(fā)光二極管的陽(yáng)極為高電平時(shí),相應(yīng)字段就點(diǎn)亮。當(dāng)某一字段的陽(yáng)極為低電平時(shí),相應(yīng)字段就不亮。3.2數(shù)碼管的驅(qū)動(dòng)方式數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)字,因此根據(jù)數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。3.2.1靜態(tài)顯示驅(qū)動(dòng)靜態(tài)驅(qū)動(dòng)也稱直流驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)是指每個(gè)數(shù)碼管的每一個(gè)段碼都由一個(gè)單片機(jī)的I/O端口進(jìn)展驅(qū)動(dòng),或者使用如BCD碼二-十進(jìn)制譯碼器譯碼進(jìn)展驅(qū)動(dòng)。靜態(tài)驅(qū)動(dòng)的優(yōu)點(diǎn)是編程簡(jiǎn)單,顯示亮度高,缺點(diǎn)是占用I/O端口多,如驅(qū)動(dòng)5個(gè)數(shù)碼管靜態(tài)顯示則需要5×8=40根I/O端口來驅(qū)動(dòng),要知道一個(gè)89S51單片機(jī)可用的I/O端口才32個(gè)呢:〕,實(shí)際應(yīng)用時(shí)必須增加譯碼驅(qū)動(dòng)器進(jìn)展驅(qū)動(dòng),增加了硬件電路的復(fù)雜性。3.2.2動(dòng)態(tài)顯示驅(qū)動(dòng)數(shù)碼管動(dòng)態(tài)顯示接口是單片機(jī)中應(yīng)用最為廣泛的一種顯示方式之一,動(dòng)態(tài)驅(qū)動(dòng)是將所有數(shù)碼管的8個(gè)顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個(gè)數(shù)碼管的公共極COM增加位選通控制電各自獨(dú)立的I/O線控制,當(dāng)單片機(jī)輸出字形碼時(shí),所有數(shù)碼管都接收到一樣的字形碼,但終究是那個(gè)數(shù)碼管會(huì)顯示出字形,取決于單片機(jī)對(duì)位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制翻開,該位就顯示出字形,沒有選通的數(shù)碼管就不會(huì)亮。通過分時(shí)輪流控制各個(gè)數(shù)碼管的COM端,就使各個(gè)數(shù)碼管輪流受控顯示,這就是動(dòng)態(tài)驅(qū)動(dòng)。在輪流顯示過程中,每位數(shù)碼管的點(diǎn)亮?xí)r間為1~2ms,由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應(yīng),盡管實(shí)際上各位數(shù)碼管并非同時(shí)點(diǎn)亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O端口,而且功耗更低。3.3數(shù)碼管應(yīng)用數(shù)碼管是一類顯示屏通過對(duì)其不同的管腳輸入相對(duì)的電流會(huì)使其發(fā)亮從而顯示出數(shù)字。可以顯示、時(shí)間、日期、溫度等所有可以用數(shù)字代替的參數(shù)。由于它的價(jià)格廉價(jià)使用簡(jiǎn)單,所以在電器特別是家電領(lǐng)域應(yīng)用極為廣泛,如:空調(diào)、熱水器、冰箱等等。絕大多數(shù)熱水器用的都是數(shù)碼管其他家電也用液晶屏與熒光屏。3.4數(shù)碼管使用的電流與電壓電流:靜態(tài)時(shí),推薦使用10-15mA;動(dòng)態(tài)時(shí),16/1動(dòng)態(tài)掃描時(shí),平均電流為4-5mA,峰值電流50-60mA。電壓:中選擇紅色時(shí),使用1.9V;中選擇綠色時(shí),使用2.1V。3.574LS373簡(jiǎn)介74LS373是一種帶三態(tài)門的8D鎖存器,其管腳示意圖如下示:其中:1D-8D為8個(gè)輸入端。1Q-8Q為8個(gè)輸出端。LE為數(shù)據(jù)打入端:當(dāng)LE為“1”狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0打入鎖存器。OE為輸出允許端:當(dāng)OE=0時(shí),三態(tài)門翻開;當(dāng)OE=1時(shí),三態(tài)門關(guān)閉,輸出高阻。第四章電子鐘功能介紹4.1系統(tǒng)功能介紹1.采用六位數(shù)碼管顯示小時(shí)、分鐘、秒,并且可以任意設(shè)定時(shí)間。2.可以查看并且設(shè)定日期,日期采用年、月、日的顯示方式。3.可以查看并設(shè)定鬧鐘,鬧鐘的顯示方式采用與時(shí)間一樣的顯示方式。4.可以查看并設(shè)定星期,數(shù)碼管的最后一位顯示星期,用數(shù)字8表示星期日。5.系統(tǒng)設(shè)定詳細(xì)說明:系統(tǒng)的初始狀態(tài)為顯示時(shí)鐘狀態(tài),此時(shí)顯示小時(shí)、分鐘、秒。初始狀態(tài)下,按S0鍵進(jìn)入時(shí)間調(diào)整程序,按S1鍵查看鬧鐘,按S2鍵查看日期,按S3鍵查看星期。進(jìn)入時(shí)間調(diào)整狀態(tài)后,首先調(diào)整分鐘,此時(shí)分鐘閃爍顯示,按S1鍵加一,按S2鍵減一。按S0鍵開場(chǎng)調(diào)整小時(shí),此時(shí)小時(shí)閃爍顯示,按S1鍵加一,按S2鍵減一,再按S0鍵后系統(tǒng)返回到顯示時(shí)間狀態(tài)。在調(diào)整時(shí)間狀態(tài)下按下S3鍵進(jìn)入調(diào)整鬧鐘狀態(tài),此時(shí)顯示原先的鬧鐘時(shí)間,并且鬧鐘分鐘閃爍顯示,此時(shí)按S1鍵加一,按S2鍵減一;調(diào)整后按S0鍵轉(zhuǎn)換到鬧鐘小時(shí)調(diào)整單元,此時(shí)按S1鍵加一,按S2鍵減一。鬧鐘調(diào)整完畢后按0鍵回到調(diào)整時(shí)間狀態(tài),按S3鍵轉(zhuǎn)到調(diào)整日期狀態(tài)。在調(diào)整日期狀態(tài)下,日單元閃爍顯示,此時(shí)按S1鍵加一,按S2鍵減一;按下S0鍵進(jìn)入調(diào)整月,此時(shí)按S1鍵加一,按S2鍵減一;按下S0鍵進(jìn)入調(diào)整年,此時(shí)按S1鍵加一,按S2鍵減一。此時(shí)按下S0鍵返回到調(diào)整時(shí)間狀態(tài),按下S3鍵進(jìn)入調(diào)整星期狀態(tài)。在調(diào)整星期狀態(tài)下,星期閃爍顯示,此時(shí)按S1鍵加一,按S2鍵減一。按下S0鍵返回到調(diào)整時(shí)間狀態(tài)。此時(shí)分鐘閃爍顯示,按S0鍵開場(chǎng)調(diào)整小時(shí),此時(shí)小時(shí)閃爍顯示,再按S0鍵后系統(tǒng)返回到顯示時(shí)間狀態(tài)。4.2軟件設(shè)計(jì)流程程序流程如以下列圖所示:圖4.2.1主程序流程圖圖4.2.2計(jì)時(shí)中斷服務(wù)程序流程圖4.3電子鐘程序清單見附錄第五章電子鐘軟件實(shí)現(xiàn)仿真5.1單片機(jī)模擬調(diào)試軟件Keil5.1.1、Keil單片機(jī)模擬仿真調(diào)試軟件的安裝和啟動(dòng)Keil單片機(jī)模擬調(diào)試軟件是目前獲得廣泛應(yīng)用的一種開發(fā)MCS51系列兼容單片機(jī)的軟件。該軟件可以從Keil公司中國(guó)代理處購(gòu)置,也可以從Keil公司的網(wǎng)站〔://keil〕上下載它的免費(fèi)評(píng)估〔Eval〕版本。下載獲得的Keil單片機(jī)模擬調(diào)試軟件是一個(gè)壓縮包,解壓后執(zhí)行其中的Setup.exe程序就可以安裝這個(gè)軟件。軟件的安裝過程與一般的Windows應(yīng)用軟件類似,只要按照安裝提示操作即可,這里不作詳細(xì)介紹,僅需要注意的是,安裝方式要選擇EvalVision安裝。Keil單片機(jī)模擬調(diào)試軟件安裝完成以后,計(jì)算機(jī)桌面上將產(chǎn)生一個(gè)標(biāo)注有“KeilμVision2”的圖標(biāo),雙擊這個(gè)圖標(biāo)就可以進(jìn)入Keil單片機(jī)模擬調(diào)試軟件的集成開發(fā)環(huán)境[10]圖5.1Keil單片機(jī)模擬調(diào)試軟件的集成開發(fā)環(huán)境5.1.2、工程(Project)的建設(shè)Keil單片機(jī)模擬調(diào)試軟件對(duì)MCS51單片機(jī)應(yīng)用系統(tǒng)的軟件開發(fā)過程采用工程〔Project〕管理。工程保存著程序編輯的信息和程序調(diào)試的環(huán)境。在開場(chǎng)編寫程序之前首先應(yīng)該建設(shè)一個(gè)工程。新建一個(gè)工程之前通常還需要建設(shè)一個(gè)文件夾,后面產(chǎn)生的工程文件和源程序文件等都將存儲(chǔ)在這個(gè)文件夾之中。在如圖5.1所示的集成開發(fā)環(huán)境的窗口中選擇Project→NewProject命令將翻開建設(shè)新工程的對(duì)話框,如圖5.2所示。圖5.2建設(shè)新工程的對(duì)話框在“保存在〞下拉列表框中選擇新建工程將要存儲(chǔ)的文件夾名,在“文件名〞文本框中輸入工程的名稱,注意對(duì)于工程不要添加擴(kuò)展名,單擊“保存〞按鈕即可完成一個(gè)工程的創(chuàng)立。單擊“保存〞按鈕在完成一個(gè)工程創(chuàng)立的同時(shí)也翻開了單片機(jī)芯片型號(hào)選擇對(duì)話框。如圖5.3所示的對(duì)話框已經(jīng)完成了芯片型號(hào)的選擇。圖5.3單片機(jī)芯片型號(hào)選擇對(duì)話框Keil單片機(jī)模擬調(diào)試軟件支持許多公司生產(chǎn)的MCS51單片機(jī)兼容產(chǎn)品。如前所述,本書應(yīng)用電路中采用Atmel公司的AT89C51在圖5.3所示的對(duì)話框中的Database列表框中首先選擇生產(chǎn)芯片的公司名稱Atmel,雙擊這個(gè)公司名稱即可翻開Atmel公司目前生產(chǎn)的所有芯片型號(hào)。接著在列出的產(chǎn)品清單中選擇將使用的AT89C51芯片,如圖5.3所示。最后單擊“完成芯片的選擇后又回到如圖5.1所示的集成開發(fā)環(huán)境的窗口,但是這時(shí)該窗口中的工程管理窗口不再是空白,在它的文件選項(xiàng)卡中出現(xiàn)目錄列表Target1和它的子目錄SourceGroup1。集成開發(fā)環(huán)境中的菜單Project內(nèi)還包含OpenProject和CloseProject等選項(xiàng)。OpenProject選項(xiàng)用來以后再次進(jìn)入已經(jīng)建設(shè)的工程,選擇Project→OpenProject命令將翻開選擇工程的對(duì)話框,該對(duì)話框與圖5.2類似。在“查找范圍〞下拉列表框中選擇欲翻開的工程所在的文件夾,列表框中將出現(xiàn)該文件夾中的所有工程,選擇將要翻開的工程,單擊“翻開〞按鈕即可翻開一個(gè)工程。選擇Project→CloseProject命令將關(guān)閉當(dāng)前的工程。5.1.3、源文件的輸入Keil單片機(jī)模擬調(diào)試軟件內(nèi)集成了一個(gè)文本編輯器,用該文本編輯器可以編輯源程序。在如圖5.1所示的集成開發(fā)環(huán)境中選擇File→New命令、單擊新建工具按鈕或者按快捷鍵Ctrl+N將翻開一個(gè)新的文本編輯窗口,如圖5.1.4所示。在圖5.4中已經(jīng)完成了匯編語(yǔ)言源文件的輸入,并且完成了源程序向當(dāng)前工程的添加。圖5.4Keil單片機(jī)模擬調(diào)試軟件的集成開發(fā)環(huán)境完成匯編語(yǔ)言源文件的輸入后,在集成開發(fā)環(huán)境中選擇File→SaveAs命令可以完成文件的第一次存儲(chǔ)。注意,匯編語(yǔ)言源文件的擴(kuò)展名應(yīng)該是ASM,它應(yīng)該與工程文件存儲(chǔ)在同一文件夾內(nèi)。在完成文件的第一次存儲(chǔ)后,當(dāng)對(duì)匯編語(yǔ)言源文件又進(jìn)展了修改,再次存儲(chǔ)文件時(shí)則應(yīng)該選擇File→Save命令、單擊保存工具按鈕或者按快捷鍵Ctrl+S實(shí)現(xiàn)文件的保存。接著需要把匯編語(yǔ)言源文件參加工程之中。選擇圖5.4中的工程管理器窗口的子目錄SourceGroup1,再單擊鼠標(biāo)右鍵翻開快捷菜單。在快捷菜單中選擇AddFiletoGroup“SourceGroup1”,參加文件對(duì)話框被翻開。在這個(gè)對(duì)話框的“查找范圍〞下拉列表框中選擇存儲(chǔ)匯編語(yǔ)言源文件的文件夾,在“文件類型〞下拉列表框中選擇AsmSourcefile〔*.a*;*.src〕,這時(shí)存儲(chǔ)的匯編語(yǔ)言源文件將顯示出來。雙擊要參加的文件名,或者選擇要參加的文件名再單擊Add按鈕即可完成把匯編語(yǔ)言源文件參加工程。文件參加以后,參加文件對(duì)話框并不消失,更多的文件也可以利用它參加工程。如果不需要參加其他文件,單擊Close按鈕可以關(guān)閉參加文件對(duì)話框。這時(shí)工程管理窗口的文件選項(xiàng)卡中子目錄SourceGroup1需要注意的是,當(dāng)把匯編語(yǔ)言源文件參加工程但還沒有關(guān)閉參加文件對(duì)話框時(shí),有可能被誤認(rèn)為文件沒有成功地參加工程而再次進(jìn)展參加操作,系統(tǒng)將顯示所需的文件已經(jīng)參加的提示。在這種情況下,單擊提示框中的“確定〞按鈕,再單擊Close按鈕可以關(guān)閉參加文件對(duì)話框。5.2Proteus軟件簡(jiǎn)介5.2.1、Proteus介紹如今基于單片機(jī)的嵌入式系統(tǒng)已廣泛應(yīng)用在國(guó)防、教育、工業(yè)等領(lǐng)域。其核心在于其微處理器。因此單片機(jī)的開發(fā)越來越受到重視。但是在傳統(tǒng)的嵌入式系統(tǒng)學(xué)習(xí)中,嵌入式開發(fā)平臺(tái)是必不可少的。購(gòu)置開發(fā)平臺(tái)是一種花費(fèi),而且對(duì)于初學(xué)者來說,原理圖設(shè)計(jì)完成之后,需要自己反復(fù)搭電路或?qū)掖沃芇CB板,這大大增加了開發(fā)本錢。Proteus是一款優(yōu)秀的單片機(jī)仿真與開發(fā)軟件,他可以以軟件的方式模擬整個(gè)系統(tǒng)的運(yùn)行,這樣大大節(jié)省了開發(fā)周期和開發(fā)本錢。Proteus是英國(guó)Labcenter公司開發(fā)的電路分析與實(shí)物仿真軟件。它運(yùn)行于Windows操作系統(tǒng)上,可以仿真、分析(SPICE)各種模擬器件和集成電路,該軟件的特點(diǎn)是[6]:實(shí)現(xiàn)了單片機(jī)仿真和SPICE電路仿真相結(jié)合具有模擬電路仿真、數(shù)字電路仿真、單片機(jī)及其外圍電路組成的系統(tǒng)的仿真、RS232動(dòng)態(tài)仿真、I2C調(diào)試器、SPI調(diào)試器、鍵盤和LCD系統(tǒng)仿真的功能;有各種虛擬儀器,如示波器、邏輯分析儀、信號(hào)發(fā)生器等。支持主流單片機(jī)系統(tǒng)的仿真目前支持的單片機(jī)類型有:ARM7(LPC21xx)、8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多種外圍芯片。提供軟件調(diào)試功能在硬件仿真系統(tǒng)中具有全速、單步、設(shè)置斷點(diǎn)等調(diào)試功能,同時(shí)可以觀察各個(gè)變量、存放器等的當(dāng)前狀態(tài),因此在該軟件仿真系統(tǒng)中,也必須具有這些功能;同時(shí)支持第三方的軟件編譯和調(diào)試環(huán)境,如KeilC51uVision2、MPLAB等軟件。具有強(qiáng)大的原理圖繪制功能總之,該軟件是一款集單片機(jī)和SPICE分析于一身的仿真軟件,功能極其強(qiáng)大。5.2.2、Proteus仿真環(huán)境介紹圖5.5Proteus軟件的集成開發(fā)環(huán)境5.3電子時(shí)鐘仿真5.3.1選擇仿真元件本次設(shè)計(jì)中用到的元器件,下表列出:5.3.2繪出仿真圖5.4整機(jī)仿真及調(diào)試整機(jī)仿真圖如以下列圖所示:在數(shù)字電子時(shí)鐘單片機(jī)程序初步編完之后,利用單片機(jī)硬件仿真軟件進(jìn)展仿真和調(diào)試,同時(shí)對(duì)程序進(jìn)展適當(dāng)?shù)男薷?。該設(shè)計(jì)在仿真及調(diào)試過程中應(yīng)注意以下幾點(diǎn):1.單片機(jī)時(shí)間基準(zhǔn)振蕩電路中振蕩晶體頻率的選擇必須要和程序中的時(shí)間基準(zhǔn)相一致。2.由于單片機(jī)處理數(shù)據(jù)過程中要響應(yīng)中斷等原因,而中斷服務(wù)程序所花費(fèi)的時(shí)間必須在中斷返回后在計(jì)時(shí)單元中扣除掉,否則準(zhǔn)確度會(huì)變差。3.在仿真調(diào)試中調(diào)試數(shù)碼管的發(fā)光時(shí)間時(shí),需要反復(fù)修改程序中的給定的時(shí)間,直到整體上的顯示效果較好,不會(huì)有閃爍的現(xiàn)象產(chǎn)生。附錄電子時(shí)鐘程序清單SHIAEQU30HSHIBEQU31HFENAEQU32HFENBEQU33HMIAOAEQU34HMIAOBEQU35H;顯示代碼存儲(chǔ)單元;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SHIANEQU40HSHIBNEQU41HFENANEQU42HFENBNEQU43HMIAOANEQU44HMIAOBNEQU45H;顯示數(shù)據(jù)存儲(chǔ)單元;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;JIAN0EQUP0.0JIAN1EQUP0.1JIAN2EQUP0.2JIAN3EQUP0.3;鍵盤定義;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SHIALEQU46HSHIBLEQU47HFENALEQU48HFENBLEQU49H;鬧鐘存儲(chǔ)單元;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;NIANAEQU4AHNIANBEQU4BHYUEAEQU4CHYUEBEQU4DHRIAEQU4EHRIBEQU4FH;日歷存儲(chǔ)單元;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;XINGQIEQU56H;星期存儲(chǔ)單元;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG0000HLJMPMAINORG000BHLJMPTIMER0;秒計(jì)時(shí)中斷服務(wù)程序ORG001BHLJMPTIMER1;調(diào)時(shí)閃爍中斷服務(wù)程序ORG0035H;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;主程序MAIN:MOV20H,#00HMOVR0,#40HMOVR1,#32MAIN1:MOV@R0,#00HINCR0DJNZR1,MAIN1;40H--5FH存儲(chǔ)單元清零MOVSHIAL,#2 MOVSHIBL,#3 MOVNIANA,#0 MOVNIANB,#1 MOVYUEA,#0 MOVYUEB,#1 MOVRIA,#0 MOVRIB,#1 MOVXINGQI,#1 MOVTMOD,#11H MOVTL0,#01H MOVTH0,#4CH MOVTL1,#01H MOVTH1,#4CH MOV36H,#00H SETBEA SETBET0 SETBTR0 MOVR4,#14HLOOP: LCALLCHANGELCALLDISPLAYJNBJIAN0,TIAO0;按下0鍵進(jìn)入調(diào)時(shí)程序JNBJIAN1,NAOSEE;按下1鍵進(jìn)入查看鬧鐘程序JNBJIAN2,RILISEE;按下2鍵進(jìn)入查看日歷程序JNBJIAN3,WEEKDAY;按下3鍵進(jìn)入查看星期程序LCALLNAOZHONGLJMPLOOPTIAO0:LJMPTIAOWEEKDAY:JNBJIAN3,WEEKDAY1LJMPWEEKDAY2WEEKDAY1:LCALLDISPLAYLJMPWEEKDAYRILISEE:JNBJIAN2,RILISEE1LJMPRILISEE2RILISEE1:LCALLDISPLAYLJMPRILISEENAOSEE:JNBJIAN1,NAOSEE1LJMPNAOSEE2NAOSEE1:LCALLDISPLAYLJMPNAOSEE;鬧鐘查看程序NAOSEE2:MOVDPTR,#ZIXINGMAMOVA,SHIAL MOVCA,@A+DPTR MOVSHIA,A MOVA,SHIBL MOVCA,@A+DPTR MOVSHIB,A MOVA,FENAL MOVCA,@A+DPTR MOVFENA,A MOVA,FENBL MOVCA,@A+DPTR MOVFENB,A MOVA,#0 MOVCA,@A+DPTR MOVMIAOA,A MOVMIAOB,AMOVR5,#200 MOVR1,#4LOOP1:LCALLDISPLAYDJNZR5,LOOP1 MOVR5,#200 DJNZR1,LOOP1LJMPLOOP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;鬧鐘程序,按0鍵解除鬧鐘NAOZHONG:MOVA,SHIALCJNEA,SHIAN,ZHONGOUTMOVA,SHIBLCJNEA,SHIBN,ZHONGOUTMOVA,FENALCJNEA,FENAN,ZHONGOUTMOVA,FENBLCJNEA,FENBN,ZHONGOUT ZHONG:CLRP2.7LCALLCHANGELCALLDISPLAYCJNEA,FENBN,ZHONGOUTJNBJIAN0,ZHONG2LJMPZHONGZHONG2:LCALLCHANGELCALLDISPLAY CJNEA,FENBN,ZHONGOUT LJMPZHONG2ZHONGOUT:RET;日歷查看程序RILISEE2:MOVDPTR,#ZIXINGMAMOVA,NIANA MOVCA,@A+DPTR MOVSHIA,A MOVA,NIANB MOVCA,@A+DPTR MOVSHIB,A MOVA,YUEA MOVCA,@A+DPTR MOVFENA,A MOVA,YUEB MOVCA,@A+DPTR MOVFENB,A MOVA,RIA MOVCA,@A+DPTR MOVMIAOA,A MOVA,RIB MOVCA,@A+DPTR MOVMIAOB,AMOVR5,#200 MOVR1,#4LOOP2:LCALLDISPLAY DJNZR5,LOOP2 MOVR5,#200 DJNZR1,LOOP2 LJMPLOOP;星期查看程序WEEKDAY2:MOVDPTR,#ZIXINGMAMOVA,#0 MOVCA,@A+DPTR MOVMIAOA,A MOVFENA,A MOVFENB,A MOVSHIA,A MOVSHIB,A MOVA,XINGQI MOVCA,@A+DPTR MOVMIAOB,A MOVR1,#4 MOVR5,#200LOOP3:LCALLDISPLAY DJNZR5,LOOP3 MOVR5,#200 DJNZR1,LOOP3 LJMPLOOP;秒計(jì)時(shí)中斷服務(wù)程序TIMER0:PUSHACCPUSHPSW CLRET0 CLRTR0 MOVA,#14 ADDA,TL0 MOVTL0,A MOVA,#4CH ADDA,TH0 MOVTH0,A SETBTR0 DJNZR4,OUTT0ADDSS:MOVR4,#14HMOVR0,#MIAOAN LCALLADD1 MOVA,R3 CLRC CJNEA,#60H,ADDMMADDMM:JCOUTT0LCALLCLR0 MOVR0,#FENAN LCALLADD1 MOVA,R3 CLRC CJNEA,#60H,ADDHHADDHH:JCOUTT0LCALLCLR0 MOVR0,#SHIAN LCALLADD1 MOVA,R3 CLRC CJNEA,#24H,HOURHOUR:JCOUTT0LCALLCLR0LCALLDAYOUTT0:POPPSWPOPACC SETBET0RETI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DAY:MOVR0,#RIALCALLADD1 INCXINGQI MOVA,XINGQI CJNEA,#8,DAY1 MOVXINGQI,#01HDAY1: MOVA,R3 CLRC CJNEA,#32H,DAYOUTMOVRIA,#0 MOVRIB,#1 MOVR0,#YUEA LCALLADD1 MOVA,R3 CLRC CJNEA,#13H,DAYOUTMOVYUEA,#0 MOVYUEB,#1 MOVR0,#NIANA LCALLADD1 MOVA,R3 CJNEA,#24H,DAYOUT MOVNIANA,#0 MOVNIANB,#0DAYOUT:RET;調(diào)時(shí)閃爍中斷服務(wù)程序TIMER1:PUSHACCPUSHPSWMOVTL1,#01HMOVTH1,#4CH;裝定時(shí)初值DJNZR2,TIM1OUT;0.3秒未到退出中斷MOVR2,#6;0.3秒到重裝0.3秒定時(shí)值CPL02H;對(duì)閃爍標(biāo)志取反JB02H,FLASH1;02H為1時(shí)顯示單元熄滅MOVSHIAN,50HMOVSHIBN,51HMOVFENAN,52HMOVFENBN,53HMOVMIAOAN,54HMOVMIAOBN,55HTIM1OUT:POPPSW;POPACCRETIFLASH1:JB01H,FLASH2;小時(shí)閃爍標(biāo)志JB03H,FLASH3;秒閃爍標(biāo)志 JB04H,FLASH4 JNB00H,TIM1OUTMOVFENAN,#10;MOVFENBN,#10MOVSHIAN,50HMOVSHIBN,51HMOVMIAOAN,54HMOVMIAOBN,55HLJMPTIM1OUTFLASH2:MOVSHIAN,#10MOVSHIBN,#10MOVFENAN,52HMOVFENBN,53HMOVMIAOAN,54HMOVMIAOBN,55HLJMPTIM1OUTFLASH3:MOVMIAOAN,#10;秒閃爍MOVMIAOBN,#10MOVSHIAN,50HMOVSHIBN,51HMOVFENAN,52HMOVFENBN,53HLJMPTIM1OUTFLASH4:MOVMIAOBN,#10MOVMIAOAN,54HMOVSHIAN,50HMOVSHIBN,51HMOVFENAN,52HMOVFENBN,53H LJMPTIM1OUT;調(diào)時(shí)程序,TIAO:CLRET0CLRTR0MOV50H,SHIANMOV51H,SHIBNMOV52H,FENANMOV53H,FENBN MOV54H,MIAOAN MOV55H,MIAOBNMOVR2,#6SETBET1SETBTR1TIAO1:JNBJIAN0,TIAO11;按下0鍵開場(chǎng)調(diào)整分鐘SETB00H;;;;;;;;;;;;;;;;;;;;;;;;;;;TURNFEN:LCALLCHANGE;調(diào)整分鐘程序LCALLDISPLAYJNBJIAN0,TIAOSHI;按0鍵則轉(zhuǎn)調(diào)整小時(shí)程序 JNBJIAN3,ZHUAN;按3鍵則轉(zhuǎn)到散轉(zhuǎn)程序 JNBJIAN1,FENJIA0;按1鍵則分鐘加一 JNBJIAN2,FENJIAN0;按2鍵則分鐘減一LJMPTURNFEN;;;;;;;;;;;;;;;;;;;;;;;;;;;TIAO11:LCALLDISPLAYLJMPTIAO1TIAOSHI:JNBJIAN0,TIAOSHI1CLR00H SETB01HLJMPTURNSHITIAOSHI1:LCALLDISPLAYLJMPTIAOSHIFENJIA0:JNBJIAN1,FENJIA1LCALLFENJIA LJMPTURNFENFENJIA1:LCALLDISPLAYLJMPFENJIA0FENJIAN0:JNBJIAN2,FENJIAN1LCALLFENJIAN LJMPTURNFENFENJIAN1:LCALLDISPLAYLJMPFENJIAN0;散轉(zhuǎn)程序,根據(jù)按鍵3的次數(shù)來跳轉(zhuǎn)到鬧鐘,日歷,星期設(shè)置程序。ZHUAN:JNBJIAN3,TIAO12CLRET1 CLRTR1LJMPNAOTIAO12:LCALLDISPLAYLJMPZHUAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;TURNSHI:LCALLCHANGE;調(diào)整小時(shí)程序LCALLDISPLAY JNBJIAN0,TOUT;按下0鍵則退出調(diào)時(shí) JNBJIAN1,SHIJIA0;按1鍵小時(shí)加一 JNBJIAN2,SHIJIAN0;按2鍵小時(shí)減一 JNBJIAN3,ZHUAN;按3鍵則跳轉(zhuǎn) LJMPTURNSHI;;;;;;;;;;;;;;;;;;;;;;;;;;;;TOUT:JNBJIAN0,TOUT1LJMPTIAOOUTTOUT1:LCALLDISPLAYLJMPTOUTSHIJIA0:JNBJIAN1,SHIJIA1LCALLSHIJIA LJMPTURNSHISHIJIA1:LCALLDISPLAYLJMPSHIJIA0SHIJIAN0:JNBJIAN2,SHIJIAN1LCALLSHIJIAN LJMPTURNSHISHIJIAN1:LCALLDISPLAYLJMPSHIJIAN0;;;;;;;;;;;;;;;;;;;;;;;;;;;;時(shí)間調(diào)整退出程序TIAOOUT:CLR00HCLR01H CLR02H CLR03H CLR04H MOVSHIAN,50H MOVSHIBN,51H MOVFENAN,52H MOVFENBN,53H CLRET1 CLRTR1 SETBET0 SETBTR0 LJMPLOOP;調(diào)時(shí)完畢返回到主程序;鬧鐘調(diào)整程序NAO:SETB00H;分鐘閃爍標(biāo)志置1CLR01H;小時(shí)閃爍標(biāo)志清零CLR03H;秒閃爍標(biāo)志清零 MOV60H,50H MOV61H,51H MOV62H,52H MOV63H,53H MOV64H,54H MOV65H,55H MOV50H,SHIAL MOV51H,SHIBL MOV52H,FENAL MOV53H,FENBL SETBET1 SETBTR1;;;;;;;;;;;;;;;;鬧鐘分鐘調(diào)整程序NAOFEN:LCALLCHANGELCALLDISPLAYJNBJIAN0,NAOSHI0JNBJIAN1,NFENJIA0JNBJIAN2,NFENJIAN0JNBJIAN3,NZHUANLJMPNAOFENNAOSHI0:JNBJIAN0,NAOSHI1CLR00HSETB01HCLR03HLJMPNAOSHINAOSHI1:LCALLDISPLAYLJMPNAOSHI0NFENJIA0:JNBJIAN1,NFENJIA1LCALLFENJIA LJMPNAOFENNFENJIA1:LCALLDISPLAYLJMPNFENJIA0NFENJIAN0:JNBJIAN2,NFENJIAN1LCALLFENJIAN LJMPNAOFENNFENJIAN1:LCALLDISPLAYLJMPNFENJIAN0NZHUAN:JNBJIAN3,NZHUAN1MOVSHIAL,50H MOVSHIBL,51H MOVFENAL,52H MOVFENBL,53H MOVSHIAN,60H MOVSHIBN,61H MOVFENAN,62H MOVFENBN,63H MOVMIAOAN,64H MOVMIAOBN,65HLJMPRIQINZHUAN1:LCALLDISPLAYLJMPNZHUAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;鬧鐘小時(shí)調(diào)整程序NAOSHI:LCALLCHANGELCALLDISPLAYJNBJIAN0,NOUT0JNBJIAN1,NSHIJIA0JNBJIAN2,NSHIJIAN0JNBJIAN3,NZHUANLJMPNAOSHINOUT0:JNBJIAN0,NOUT1CLR00H CLR01H CLR03H MOVSHIAL,50H MOVSHIBL,51H MOVFENAL,52H MOVFENBL,53H MOVSHIAN,60H MOVSHIBN,61H MOVFENAN,62H MOVFENBN,63H MOVMIAOAN,64H MOVMIAOBN,65HLJMPTIAONOUT1:LCALLDISPLAYLJMPNOUT0NSHIJIA0:JNBJIAN1,NSHIJIA1LCALLSHIJIA LJMPNAOSHINSHIJIA1:LCALLDISPLAYLJMPNSHIJIA0NSHIJIAN0:JNBJIAN2,NSHIJIAN1LCALLSHIJIAN LJMPNAOSHINSHIJIAN1:LCALLDISPLAYLJMPNSHIJIAN0;;;;;;;;;;;;;;;;;;;;;;;日期調(diào)整程序RIQI:SETB03HCLR00H CLR01H MOV50H,NIANA MOV51H,NIANB MOV52H,YUEA MOV53H,YUEB MOV54H,RIA MOV55H,RIB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;調(diào)整日TURNRI:LCALLCHANGELCALLDISPLAY JNBJIAN0,TURNYUE0 JNBJIAN1,RIJIA0 JNBJIAN2,RIJIAN0 JNBJIAN3,XZHUAN LJMPTURNRITURNYUE0:JNBJIAN0,TURNYUE01CLR03H SETB00HLJMPTURNYUETURNYUE01:LCALLDISPLAYLJMPTURNYUE0RIJIA0:JNBJIAN1,RIJIA01LJMPRIJIARIJIA01:LCALLDISPLAYLJMPRIJIA0RIJIAN0:JNBJIAN2,RIJIAN01LJMPRIJIANRIJIAN01:LCALLDISPLAYLJMPRIJIAN0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;跳轉(zhuǎn)到調(diào)整星期XZHUAN:JNBJIAN3,XZHUAN1MOVNIANA,50H MOVNIANB,51H MOV

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論