STC89C52 單片機(jī)來設(shè)計(jì)的數(shù)字鐘 單片機(jī)課程設(shè)計(jì)_第1頁
STC89C52 單片機(jī)來設(shè)計(jì)的數(shù)字鐘 單片機(jī)課程設(shè)計(jì)_第2頁
STC89C52 單片機(jī)來設(shè)計(jì)的數(shù)字鐘 單片機(jī)課程設(shè)計(jì)_第3頁
STC89C52 單片機(jī)來設(shè)計(jì)的數(shù)字鐘 單片機(jī)課程設(shè)計(jì)_第4頁
STC89C52 單片機(jī)來設(shè)計(jì)的數(shù)字鐘 單片機(jī)課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

摘要單片機(jī)在日常生活中得到了廣泛的應(yīng)用,作為一個(gè)微控制器,它具有體積小,功能強(qiáng),處理速度快,與C語言很好的結(jié)合,方便開發(fā)的諸多優(yōu)點(diǎn),C51單片機(jī)已經(jīng)成為了一個(gè)經(jīng)典。數(shù)碼管顯示在日常生活中也尤為重要,特別是它的顯示效果,在某些場(chǎng)合下,其它顯示器件是無法勝任的,而且他價(jià)格低廉。串口通信,在計(jì)算機(jī)通信中有著很重要的地位,使用它,上位機(jī)與下位機(jī)的通信非常方便,ISD1420芯片,作為一個(gè)經(jīng)典的語音芯片,它的使用非常方便,控制簡單,一個(gè)最小的錄放系統(tǒng)僅由一個(gè)麥克風(fēng)、一個(gè)喇叭、兩個(gè)按鈕、一個(gè)電源、少數(shù)電阻電容組成。JAVA語言是比擬流行的編程語言,其簡單,高效使之得到了廣闊編程人員的認(rèn)可。數(shù)字鐘在日常的生活中尤為重要,作為時(shí)間的估量,他必須精確。本次課程設(shè)計(jì)就以,STC89C52單片機(jī),6個(gè)八段數(shù)碼管,ISD1420語音芯片,喇叭,串口通信,JAVA語言實(shí)現(xiàn)一個(gè)帶有上位機(jī)調(diào)時(shí),數(shù)碼管顯示,整點(diǎn)報(bào)時(shí)的數(shù)字鐘系統(tǒng)。關(guān)鍵字:整點(diǎn)報(bào)時(shí)、串口通信、數(shù)碼管顯示、數(shù)字鐘。AbstractMicrocomputerinthedailylifeawiderangeofapplications,asamicrocontroller,ithassmall,thefunctionisstrong,fastprocessingspeed,andClanguageisverygoodunion,fordevelopmentofmanyotheradvantages,C51hasbecomeaclassic.Digitalpipedisplayindailylifeisalsoveryimportant,especiallyitsdisplayeffect,insomecases,otherdisplaydeviceisnotcompetentfor,andheatlowprices.Serialcommunication,incomputercommunicationhasaveryimportantposition,useit,PCandamachineunderthecommunicationisveryconvenient,andISD1420chips,asaclassicvoicechip,itisveryeasytouse,simplecontroloneoftheleastofsystemliketheonlybyamicrophone,ahorn,twobutton,apowersupply,afewresistanceofcapacitance.JAVAlanguageismorepopularprogramminglanguage,itssimple,efficienttogetthegeneralprogrammingstaffrecognition.Adigitalclockindailylifeisespeciallyimportant,asameasureoftime,hemustbeprecise.Thiscourseisdesignedto,STC89C52microcontroller,sixforthedigitaltube,ISD1420voicechip,horn,serialcommunication,JAVAlanguageimplementationwithaPCtone,digitalpipedisplayshowsthetimeonthehour,adigitalclocksystem.Keyword:onthehourtime,theserialcommunication,digitalpipedisplay,digitalclock.

目錄I. 摘要 1II. Abstract 11. 設(shè)計(jì)要求及方案確定 3A. 設(shè)計(jì)要求 3B. 方案確定 32. 硬件電路設(shè)計(jì)及描述 3A. 器件的型號(hào)和參數(shù) 31. 單片機(jī)的選擇 32. STC89C52的詳細(xì)資料 33. 時(shí)鐘的實(shí)現(xiàn) 34. LED數(shù)碼管顯示模塊 35. 串口通信 36. 整點(diǎn)報(bào)時(shí) 3B. 硬件整體電路圖 33. 軟件設(shè)計(jì) 3A. 主程序 3B. 定時(shí)器T0中斷效勞程序 3C. 串口修改模塊 3D. 整點(diǎn)報(bào)時(shí)模塊 3E. 顯示模塊 3F. 上位機(jī)模塊 3G. 單片機(jī)程序源碼 34. 小結(jié) 35. 參考文獻(xiàn) 3設(shè)計(jì)要求及方案確定設(shè)計(jì)要求利用單片機(jī)設(shè)計(jì)制作具有以下功能的數(shù)字鐘:自動(dòng)計(jì)時(shí),由6位LED顯示器顯示時(shí)、分和秒具備調(diào)整功能,可以直接由PC機(jī)通過串口調(diào)整數(shù)字鐘的時(shí)間;具備整點(diǎn)報(bào)時(shí)功能,報(bào)出當(dāng)前的時(shí)間。方案確定數(shù)字鐘電路由單片機(jī)、串口通信、時(shí)鐘顯示模塊及語音報(bào)時(shí)模塊組成。單片機(jī)選用STC89C52即可;串口通信使用MAX232芯片,以及一個(gè)串行口,接通單片機(jī)的串行輸入輸出口;時(shí)鐘顯示模塊,由6個(gè)LED數(shù)碼管,兩個(gè)74HC573芯片組成,分時(shí)復(fù)用單片機(jī)的P1口;語音報(bào)時(shí)模塊,使用ISD1420語音芯片,喇叭,以及單片機(jī)的P0口作為地址,P2口的局部引腳作為控制位;內(nèi)部定時(shí)器T0作為數(shù)字鐘的信號(hào)產(chǎn)生源。硬件電路設(shè)計(jì)及描述器件的型號(hào)和參數(shù)單片機(jī)的選擇單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的根本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。單片機(jī)經(jīng)過1、2、3、3代的開展,正朝著多功能、高性能、低電壓、低功耗、低價(jià)格、大存儲(chǔ)容量、強(qiáng)I/O功能及較好的結(jié)構(gòu)兼容性方向開展。其開展趨勢(shì)不外乎以下幾個(gè)方面:多功能單片機(jī)中盡可能地把所需要的存儲(chǔ)器和I/O口都集成在一塊芯片上,使得單片機(jī)可以實(shí)現(xiàn)更多的功能。比方A/D、PWM、PCA〔可編程計(jì)數(shù)器陣列〕、WDT〔監(jiān)視定時(shí)器看家狗〕、高速I/O口及計(jì)數(shù)器的捕獲/比擬邏輯等。有的單片機(jī)針對(duì)某一個(gè)應(yīng)用領(lǐng)域,集成了相關(guān)的控制設(shè)備,以減少應(yīng)用系統(tǒng)的芯片數(shù)量。例如,有的芯片以51內(nèi)核為核心,集成了USB控制器、SMARTCARD接口、MP3解碼器、CAN或者I*I*C總線控制器等,LED、LCD或VFD顯示驅(qū)動(dòng)器也開始集成在8位單片機(jī)中。高效率和高性能為了提高執(zhí)行速度和執(zhí)行效率,單片機(jī)開始使用RISC、流水線和DSP的設(shè)計(jì)技術(shù),使單片機(jī)的性能有了明顯的提高,表現(xiàn)為:單片機(jī)的時(shí)鐘頻率得到提高;同樣頻率的單片機(jī)運(yùn)行效率也有了很大的提升;由于集成度的提高,單片機(jī)的尋址能力、片內(nèi)ROM〔FLASH〕和RAM的容量都突破了以往的數(shù)量和限制。由于系統(tǒng)資源和系統(tǒng)復(fù)雜程度的增加,開始使用高級(jí)語言〔如C語言〕來開發(fā)單片機(jī)的程序。使用高級(jí)語言可以降低開發(fā)難度,縮短開發(fā)周期,增強(qiáng)軟件的可讀性和可移植性,便于改良和擴(kuò)充功能。低電壓和低功耗單片機(jī)的嵌入式應(yīng)用決定了低電壓和低功耗的特性十分重要。由于CMOS等工藝的大量采用,很多單片機(jī)可以在更低的電壓下工作〔1.2V或0.9V〕,功耗已經(jīng)降低到uA級(jí)。這些特性使得單片機(jī)系統(tǒng)可以在更小電源的支持下工作更長的時(shí)間。低價(jià)格 單片機(jī)應(yīng)用面廣,使用數(shù)量大,帶來的直接好處就是本錢的降低。目前世界各大公司為了提高競(jìng)爭(zhēng)力,在提高單片機(jī)性能的同時(shí),十分注意降低其產(chǎn)品的價(jià)格。下面大致介紹一下單片機(jī)的主要應(yīng)用領(lǐng)域和特點(diǎn):家用電器領(lǐng)域用單片機(jī)控制系統(tǒng)取代傳統(tǒng)的模擬和數(shù)字控制電路,使家用電器〔如洗衣機(jī)、空調(diào)、冰箱、微波爐、和電視機(jī)等〕功能更完善,更加智能化和易于使用。辦公自動(dòng)化領(lǐng)域單片機(jī)作為嵌入式系統(tǒng)廣泛應(yīng)用于現(xiàn)代辦公設(shè)備,如計(jì)算機(jī)的鍵盤、磁盤驅(qū)動(dòng)、打印機(jī)、復(fù)印機(jī)、機(jī)和機(jī)等。商業(yè)應(yīng)用領(lǐng)域商業(yè)應(yīng)用系統(tǒng)局部與家用和辦公應(yīng)用系統(tǒng)相似,但更加注重設(shè)備的穩(wěn)定性、可靠性和平安性。商用系統(tǒng)中廣泛使用的電子計(jì)量儀器、收款機(jī)、條形碼閱讀器、平安監(jiān)測(cè)系統(tǒng)、空氣調(diào)節(jié)系統(tǒng)和冷凍保鮮系統(tǒng)等,都采用了單片機(jī)構(gòu)成的專用系統(tǒng)。與通用計(jì)算機(jī)相比,這些系統(tǒng)由于比擬封閉,可以更有效地防止病毒和電磁干擾等,可靠性更高。工業(yè)自動(dòng)化在工業(yè)控制和機(jī)電一體化控制系統(tǒng)中,除了采用工控計(jì)算機(jī)外,很多都是以單片機(jī)為核心的單片機(jī)和多機(jī)系統(tǒng)。智能儀表與集成智能傳感器目前在各種電氣測(cè)量儀表中普遍采用了單片機(jī)應(yīng)用系統(tǒng)來代替?zhèn)鹘y(tǒng)的測(cè)量系統(tǒng),使得測(cè)量系統(tǒng)具有存儲(chǔ)、數(shù)據(jù)處理、查詢及聯(lián)網(wǎng)等智能功能。將單片機(jī)和傳感器相結(jié)合,可以構(gòu)成新一代的智能傳感器。它將傳感器變換后的物理量作進(jìn)一步的變化和處理,使其成為數(shù)字信號(hào),可以遠(yuǎn)距離傳輸并與計(jì)算機(jī)接口。現(xiàn)代交通與航空航天領(lǐng)域通常應(yīng)用于電子綜合顯示系統(tǒng)、動(dòng)力監(jiān)控系統(tǒng)、自動(dòng)駕駛系統(tǒng)、通信系統(tǒng)以及運(yùn)行監(jiān)視系統(tǒng)等。這些領(lǐng)域?qū)w積、功耗、穩(wěn)定性和實(shí)時(shí)性的要求往往比商用系統(tǒng)還要高,因此采用單片機(jī)系統(tǒng)更加重要。目前,我國生產(chǎn)很多型號(hào)的單片機(jī),在此,我們采用型號(hào)為STC89C52的單片機(jī)STC89C52是一個(gè)低功耗高性能單片機(jī),40個(gè)引腳,32個(gè)外部雙向輸入/輸出〔I/O〕端口,同時(shí)內(nèi)含2個(gè)外中斷口,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,AT89C52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和Flash存儲(chǔ)器結(jié)合在一起,特別是可反復(fù)擦寫的Flash存儲(chǔ)器可有效地降低開發(fā)本錢STC89C52的詳細(xì)資料STC89C52引腳圖:STC89C52單片機(jī)的P口特點(diǎn):P0口:是一個(gè)8位漏極開路輸出型雙向I/O端口。作為輸出端口時(shí),每位能以吸收電流的方式驅(qū)動(dòng)8個(gè)TTL輸入,對(duì)端口寫1時(shí),又可作高阻抗輸入端用。在訪問外部程序或數(shù)據(jù)存儲(chǔ)器時(shí),它是時(shí)分多路轉(zhuǎn)換的地址〔低8位〕/數(shù)據(jù)總線,在訪問期間將激活內(nèi)部的上拉電阻。P1口:P1口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O端口。P1口的輸出緩沖器可驅(qū)動(dòng)〔吸收或輸出電流方式〕4個(gè)TTL輸入。對(duì)端口寫1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。P2口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。

P2口:P2口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O端口。P2口的輸出緩沖器可驅(qū)動(dòng)〔吸收或輸出電流方式〕4個(gè)TTL輸入。對(duì)端口寫1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。P2口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。在訪問外部程序存儲(chǔ)器時(shí)和16位外部地址的外部數(shù)據(jù)存儲(chǔ)器〔如執(zhí)行MOVX@DPTR〕時(shí),P2口送出高8位地址。在訪問8位地址的外部數(shù)據(jù)存儲(chǔ)器〔如執(zhí)行MOVX@RI〕時(shí),P2口引腳上的內(nèi)容〔就是專用存放器(SFR)區(qū)中的P2存放器的內(nèi)容〕,在整個(gè)訪問期間不會(huì)改變。P3口:P3口是一個(gè)帶有內(nèi)部上拉電阻的8位雙向I/O端口。P3口的輸出緩沖器可驅(qū)動(dòng)〔吸收或輸出電流方式〕4個(gè)TTL輸入。對(duì)端口寫1時(shí),通過內(nèi)部的上拉電阻把端口拉到高電位,這時(shí)可作輸入口。P3口作輸入口使用時(shí),因?yàn)閮?nèi)部有上拉電阻,那些被外部信號(hào)拉低的引腳會(huì)輸出一個(gè)電流。內(nèi)部單元:1、算術(shù)/邏輯部件ALU:用以完成+、-、*、/的算術(shù)運(yùn)算及布爾代數(shù)的邏輯運(yùn)算,并通過運(yùn)算結(jié)果影響程序狀態(tài)存放器PSW的某些位,從而為判斷、轉(zhuǎn)移、十進(jìn)制修正和出錯(cuò)等提供依據(jù)。2、累加器A:在算術(shù)/邏輯運(yùn)算中存放一個(gè)操作數(shù)或結(jié)果,在與外部存儲(chǔ)器和I/O接口打交道時(shí),進(jìn)行數(shù)據(jù)傳送都要經(jīng)過A來完成。3、存放器B:在*、/運(yùn)算中要使用存放器B。乘法時(shí),B用來存放乘數(shù)以及積的高字節(jié);除法時(shí),B用來存放除數(shù)及余數(shù)。不作乘除時(shí),B可作通用存放器使用。4、程序狀態(tài)標(biāo)志存放器PSW:用來存放當(dāng)前指令執(zhí)行后操作結(jié)果的某些特征,以便為下一條指令的執(zhí)行提供依據(jù)。Cy:進(jìn)位標(biāo)志。有進(jìn)位或借位,那么Cy=1,否那么Cy=0;在布爾運(yùn)算時(shí),Cy〔簡稱C〕作為布爾處理器。

AC:輔助進(jìn)位標(biāo)志位。

F0:用戶標(biāo)志位:用戶可用軟件對(duì)F0置位“1〞或清“0〞,以決定程序的流向。

OV:溢出標(biāo)志位:當(dāng)運(yùn)算結(jié)果溢出時(shí),OV為“1〞,否那么為“0〞。

D.1:未定義。

P:奇偶校驗(yàn)位:當(dāng)累加器A中的“1〞的個(gè)數(shù)為奇數(shù)時(shí),P置“1〞,否那么P置“0〞。

RS1、RS0:工作存放區(qū)選擇位:指令的執(zhí)行提供依據(jù)。STC89C52一共有5個(gè)中斷優(yōu)先級(jí),分別是外部中斷0、定時(shí)器0、外部中斷1、定時(shí)器1、串口中斷。時(shí)鐘的實(shí)現(xiàn)由于本系統(tǒng)要使用到串口通信,故定時(shí)器1不能被其他功能占用;時(shí)鐘使用定時(shí)器0來時(shí)實(shí)現(xiàn),定時(shí)器0最大只能定時(shí)65ms;所以我們使定時(shí)器0工作在方式1,每隔50ms產(chǎn)生一個(gè)中斷,每20次采樣一次,始終就實(shí)現(xiàn)了。LED數(shù)碼管顯示模塊LED數(shù)碼管顯示電路圖:LED數(shù)碼管簡介數(shù)碼管簡介:LED數(shù)碼管實(shí)際上是由七個(gè)發(fā)光管組成8字形構(gòu)成的,加上小數(shù)點(diǎn)就是8個(gè)。這些段分別由字母a、b、c、d、e、f、g、dp來表示。當(dāng)數(shù)碼管特定的段加上電壓后,這些特定的段就會(huì)發(fā)亮,以形成我們眼睛看到的字樣了。如:顯示一個(gè)“2〞字,那么應(yīng)當(dāng)是a亮b亮g亮e亮d亮f不亮c不亮dp不亮。LED數(shù)碼管有一般亮和超亮等不同之分,也有0.5寸、1寸等不同的尺寸。小尺寸數(shù)碼管的顯示筆畫常用一個(gè)發(fā)光二極管組成,而大尺寸的數(shù)碼管由二個(gè)或多個(gè)發(fā)光二極管組成,一般情況下,單個(gè)發(fā)光二極管的管壓降為1.8V左右,電流不超過30mA。發(fā)光二極管的陽極連接到一起連接到電源正極的稱為共陽數(shù)碼管,發(fā)光二極管的陰極連接到一起連接到電源負(fù)極的稱為共陰數(shù)碼管。常用LED數(shù)碼管顯示的數(shù)字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。2)數(shù)碼管工作原理:LED數(shù)碼管要正常顯示,就要用驅(qū)動(dòng)電路來驅(qū)動(dòng)數(shù)碼管的各個(gè)段碼,從而顯示出我們要的數(shù)位,因此根據(jù)LED數(shù)碼管的驅(qū)動(dòng)方式的不同,可以分為靜態(tài)式和動(dòng)態(tài)式兩類。A、靜態(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)是編程簡單,顯示亮度高,缺點(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ù)雜性。B、動(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è)LED數(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)定的顯示資料,不會(huì)有閃爍感,動(dòng)態(tài)顯示的效果和靜態(tài)顯示是一樣的,能夠節(jié)省大量的I/O埠,而且功耗更低。3)本次課程設(shè)計(jì)用的是LED數(shù)碼管的動(dòng)態(tài)顯示。74HC573簡介引腳圖:功能:74HC573是8數(shù)據(jù)鎖存器。主要用于數(shù)碼管、按鍵等等的控制1.真值表DnLEOEOnHHLHLHLLXLLQoXXHZ這個(gè)就是真值表,表示這個(gè)芯片在輸入和其它的情況下的輸出情況。2.高阻態(tài)就是輸出既不是高電平,也不是低電平,而是高阻抗的狀態(tài);在這種狀態(tài)下,可以多個(gè)芯片并聯(lián)輸出;但是,這些芯片中只能有一個(gè)處于非高阻態(tài)狀態(tài),否那么會(huì)將芯片燒毀;高阻態(tài)的概念在RS232和RS422通訊中還可以用到。3.數(shù)據(jù)鎖存 當(dāng)輸入的數(shù)據(jù)消失時(shí),在芯片的輸出端,數(shù)據(jù)仍然保持;4.數(shù)據(jù)緩沖加強(qiáng)驅(qū)動(dòng)能力LED數(shù)碼管顯示原理本次課程設(shè)計(jì)中,LED動(dòng)態(tài)顯示模塊,使用兩片74HC573鎖存器,其中一片用來進(jìn)行片選,決定哪一個(gè)數(shù)碼管顯示,另外一片用來決定顯示什么,而這兩片鎖存器,又共用P1口,用不同的片選信號(hào)來決定哪一片有用,減少了端口的使用。串口通信電路圖MAX232簡介引腳圖:引腳介紹第一局部是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)+12v和-12v兩個(gè)電源,提供應(yīng)RS-232串口電平的需要。第二局部是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳〔R1IN〕、12腳〔R1OUT〕、11腳〔T1IN〕、14腳〔T1OUT〕為第一數(shù)據(jù)通道。8腳〔R2IN〕、9腳〔R2OUT〕、10腳〔T2IN〕、7腳〔T2OUT〕為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DB9插頭;DB9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。第三局部是供電。15腳GND、16腳VCC〔+5v〕。主要特點(diǎn):1、符合所有的RS-232C技術(shù)標(biāo)準(zhǔn)2、只需要單一+5V電源供電3、片載電荷泵具有升壓、電壓極性反轉(zhuǎn)能力,能夠產(chǎn)生+10V和-10V電壓V+、V-4、功耗低,典型供電電流5mA5、內(nèi)部集成2個(gè)RS-232C驅(qū)動(dòng)器6、內(nèi)部集成兩個(gè)RS-232C接收器7、高集成度,片外最低只需4個(gè)電容即可工作。串口通信的原理STC89C52中當(dāng)接收區(qū)SBUF滿的時(shí)候,RI置1,觸發(fā)串口中斷,這時(shí)候可以將SBUF中的數(shù)據(jù)取出,同時(shí)將RI清0。上位機(jī)發(fā)送數(shù)據(jù),每次發(fā)送三個(gè)八位的數(shù)據(jù),分別為時(shí)、分、秒,下位機(jī)循環(huán)接受三個(gè)數(shù)據(jù),依次寫入到時(shí)、分、秒。整點(diǎn)報(bào)時(shí)電路圖:ISD1420簡介ISD1420為美國ISD公司出品的優(yōu)質(zhì)單片語音錄放電路,由振蕩器、語音存儲(chǔ)單元、前置放大器、自動(dòng)增益控制電路、抗干擾濾波器、輸出放大器組成。一個(gè)最小的錄放系統(tǒng)僅由一個(gè)麥克風(fēng)、一個(gè)喇叭、兩個(gè)按鈕、一個(gè)電源、少數(shù)電阻電容組成。錄音內(nèi)容存入永久存儲(chǔ)單元,提供零功率信息存儲(chǔ),這個(gè)獨(dú)一無二的方法是借助于美國ISD公司的專利--直接模擬存儲(chǔ)技術(shù)(DASTTM)實(shí)現(xiàn)的。利用它,語音和音頻信號(hào)被直接存儲(chǔ),以其原本的模擬形式進(jìn)入EEPROM存儲(chǔ)器.直接模擬存儲(chǔ)允許使用一種單片固體電路方法完成其原本語音的再現(xiàn).僅語音質(zhì)量優(yōu)勝,而且斷電語音保護(hù).引腳圖各管腳功能如下:名稱管腳功能名稱管腳功能A0~A51~6地址AnaOut21模擬輸出A6、A79、10地址(MSB)AnaIn20模擬輸入VCCD28數(shù)字電路電源AGC19自動(dòng)增益控制VCCA16模擬電路電源Mic17麥克風(fēng)輸入VSSD12數(shù)字地MicRef18麥克風(fēng)參考輸入VSSA13模擬地PLAYE24放音,邊沿觸發(fā)SP+、-14、15喇叭輸出+、-REC27錄音XCLK26外接定時(shí)器〔可選〕RECLED25發(fā)光二極管接口NC11空腳PLAYL23放音,電平觸發(fā)使用方法:ISD1420地址輸入端具有雙重功能,根據(jù)地址中的A6、A7的電平狀態(tài)決定A0~A7的功能。如果A6、A7有一個(gè)低電平,A0~A7輸入全解釋為地址位,作為起始地址用,此時(shí)地址線僅作為輸入端,在操作過程中不能輸出內(nèi)部地址信息。根據(jù)PLAYE、PLAYL或REC的下降沿信號(hào),地址輸入被鎖定。如果A6、A7同為高電平時(shí),它們即為模式位。地址輸入端A0~A7有效值范圍為00000000~10011111,這說明最多可被劃分為160個(gè)存貯單元,可錄放多達(dá)160段語音信息。由A0~A7決定每段語音的起始地址,而起始地址又直接反映了錄放的起始時(shí)間。其關(guān)系見公式:TQ=0.125s×〔128A7+64A6+32A5+16A4+8A3+4A2+2A1+0〕語音報(bào)時(shí)原理:先將0、1、2、3、4、5、6、7、8、9、10、20、點(diǎn)、現(xiàn)在是、錄入不同的地址,當(dāng)整點(diǎn)的時(shí)候,在將時(shí)分解成兩位,分別對(duì)應(yīng)地址,然后讀出來。硬件整體電路圖

軟件設(shè)計(jì)主程序?qū)崿F(xiàn)初始化、LED顯示與整點(diǎn)報(bào)時(shí),程序流程圖如圖3.1所示。圖3.1定時(shí)器T0中斷效勞程序時(shí)鐘電路的設(shè)計(jì)功能是利用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷定時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。利用定時(shí)器T0中斷效勞程序?qū)崿F(xiàn)計(jì)時(shí)功能,同時(shí)刷新計(jì)時(shí)緩沖區(qū)。定時(shí)器T0每隔500ms益處中斷一次〔設(shè)系統(tǒng)使11.0592MHZ晶振,定時(shí)T0工作方式1〕的定時(shí)器處值TL0=19456%256;TH0=19456/256,每循環(huán)中斷20次那么延時(shí)時(shí)間為1s,重復(fù)60次為1min,分計(jì)時(shí)60次為1小時(shí),小時(shí)計(jì)時(shí)24次那么時(shí)間重新回到00:00:00。程序流程圖如圖3.2所示圖3,2串口修改模塊由上位機(jī)發(fā)送要設(shè)置的時(shí)間〔時(shí)、分、秒〕,下位機(jī)接受三次,然后分別賦給H、M、S,從而實(shí)現(xiàn)了時(shí)間的設(shè)置。程序流程圖如圖3.3所示。圖3.3

整點(diǎn)報(bào)時(shí)模塊該模塊就是將輸進(jìn)來的數(shù)讀出來程序流程圖如圖3.4所示圖3.4顯示模塊是用數(shù)碼管的動(dòng)態(tài)掃描方式將時(shí)的個(gè)位十位,分的個(gè)位十位,秒的位十位非別顯示在數(shù)碼管上。程序流程圖如圖3.5所示圖3.5上位機(jī)模塊java界面程序流程圖如圖3,6所示圖3,6程序源碼Little.javaimportjava.io.IOException;importjava.io.InputStream;importjava.io.OutputStream;importjavaxmmPortIdentifier;importjavaxm.NoSuchPortException;importjavaxm.PortInUseException;importjavaxm.SerialPort;importjavaxm.UnsupportedCommOperationException;importjavax.swing.JOptionPane;publicclassLittleextendsThread{ CommPortIdentifierserialPortId; SerialPortport; OutputStreamout; InputStreamin; bytedatas[]={50,59,13};//秒、分、時(shí) bytedatar[]=newbyte[3]; @Override publicvoidrun() { try{ serialPortId=CommPortIdentifier.getPortIdentifier("COM3"); }catch(NoSuchPortExceptione){} try{ port=(SerialPort)serialPortId.open("ReadComm",30); }catch(PortInUseExceptione){}//翻開COM3串口,其中30是翻開串口的超時(shí)時(shí)間 try{ port.setSerialPortParams(4800,8,1,0); }catch(UnsupportedCommOperationExceptione){}//設(shè)置COM3的波特率,數(shù)據(jù)位,停止位,校驗(yàn)方式 //從串口中得到輸入輸出流了 try{ out=port.getOutputStream(); }catch(IOExceptione){ e.printStackTrace(); } try{ //寫入秒 out.write(datas,0,1); out.flush(); //寫入分 out.write(datas,1,1); out.flush(); //寫入時(shí) out.write(datas,2,1); out.flush(); } catch(IOExceptione){ e.printStackTrace(); } try{ out.close(); port.close(); }catch(IOExceptione){ e.printStackTrace(); } } publicbooleansetH(Integerh) { if(Value()>23||Value()<0) { JOptionPane.showMessageDialog(null,"時(shí)--設(shè)置不正確!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); returnfalse; } datas[2]=(byte)Value(); returntrue; } publicbooleansetM(Integerm) { if(Value()>59||Value()<0) { JOptionPane.showMessageDialog(null,"分--設(shè)置不正確!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); returnfalse; } datas[1]=(byte)Value(); returntrue; } publicbooleansetS(Integers) { if(Value()>59||Value()<0) { JOptionPane.showMessageDialog(null,"秒--設(shè)置不正確!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); returnfalse; } datas[0]=(byte)Value(); returntrue; }}GUI.javaimportjava.awt.Font;importjava.awt.TextField;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.event.WindowAdapter;importjava.awt.event.WindowEvent;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;publicclassGUIextendsJFrameimplementsActionListener{ privatestaticfinallongserialVersionUID=1L; privateJButtonbuttons; privateJButtonbuttonc; privateJLabellabel1; privateJLabellabel2; privateJLabellabel3; privateTextFieldtxtH; privateTextFieldtxtM; privateTextFieldtxtS; privatevoidinit() { buttons=newJButton("修改"); buttons.addActionListener(this); buttonc=newJButton("取消"); buttonc.addActionListener(this); label1=newJLabel("請(qǐng)輸入時(shí)間:"); label1.setFont(newFont("楷體",1,20)); label2=newJLabel(":"); label2.setFont(newFont("楷體",2,30)); label3=newJLabel(":"); label3.setFont(newFont("楷體",2,30)); txtH=newTextField("00",2); txtH.setFont(newFont("楷體",1,20)); txtM=newTextField("00",2); txtM.setFont(newFont("楷體",1,20)); txtS=newTextField("00",2); txtS.setFont(newFont("楷體",1,20)); } publicGUI(){ super("數(shù)字鐘"); init(); setSize(340,300); setResizable(false); setLayout(null); addWindowListener(newWindowAdapter() { @Override publicvoidwindowClosing(WindowEventarg0){ System.exit(0); } }); label1.setBounds(20,10,230,40); txtH.setBounds(70,70,30,30); label2.setBounds(100,68,40,30); txtM.setBounds(140,70,30,30); label3.setBounds(170,68,40,30); txtS.setBounds(210,70,30,30); buttonc.setBounds(50,160,100,40); buttons.setBounds(170,160,100,40); add(label1); add(txtH); add(label2); add(txtM); add(label3); add(txtS); add(buttonc); add(buttons); } publicvoidactionPerformed(ActionEventarg0) { if(arg0.getSource()==buttonc) { System.exit(0); } if(arg0.getSource()==buttons) { Littlel=newLittle(); if(l.setH(Integer.parseInt(txtH.getText()))) { if(l.setM(Integer.parseInt(txtM.getText()))) { if(l.setS(Integer.parseInt(txtS.getText()))) l.start(); } } } } publicstaticvoidmain(String[]args) { (newGUI()).setVisible(true); }}單片機(jī)程序源碼#include"reg52.h"#defineucharunsignedchar#defineuintunsignedintuchardanyuan[]={0,8,16,24,32,40,48,56,64,72,80,88,96,104,112,120,128};sbitlu=P2^0;sbitplay=P2^1;sbitwr=P2^5;sbitWELA=P2^7;sbitDULA=P2^6;ucharcodetab1[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharcodetab2[6]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};ucharchuan[3]={0x3f,0x4f,0x07};ucharnum=1;//定時(shí)器為50ms;用num控制為1s;ucharH=21;//時(shí)ucharM=59;//分ucharS=57;//秒uchari=0;ucharflag=0;voidinit();voiddelay(inta);voiddisplay(ucharh,ucharm,uchars);voiddelays(uintx);voiddelayas(uintx);voidfangyin(ucharc);voidmain(){ init(); while(1) { display(H,M,S); if(S==0&&M==0) { if(flag==1) { flag=0; fangyin(danyuan[13]); delayas(130); if(H/10==0) { fangyin(danyuan[H%10]); delayas(100); } else { fangyin(danyuan[H/10+9]); delayas(100); if(H%10!=0) { fangyin(danyuan[H%10]); delayas(100); } } fangyin(danyuan[12]); } } else { flag=1; } }}//初始化函數(shù)voidinit(){ EA=1; ES=1; ET0=1; ET1=0; TMOD=0x21;//定時(shí)器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論