版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..1緒論需要該設(shè)計(jì)的實(shí)物請(qǐng)__QQ:702176842時(shí)間在我們的生活中有著不可取代的作用,它可以為我們清晰地記錄下制作從開(kāi)始到結(jié)束所需要的時(shí)間。時(shí)間對(duì)人們來(lái)說(shuō)總是寶貴的,工作的忙碌性和繁雜性容易使人忘記當(dāng)前時(shí)間,忘記了要做的事情。當(dāng)事情不重要的時(shí)候,這種遺忘無(wú)傷大雅,但是,一旦事情重要,一時(shí)的耽誤可能釀成大禍。例如,許多火災(zāi)都是由于人們遺忘而發(fā)生的,而時(shí)間的重要性在醫(yī)院、冶金、化工、食品、機(jī)械、石油等工業(yè)中,更是舉足重輕,而現(xiàn)在鐘表的數(shù)字化給人們的生活帶來(lái)了極大地方便。成為人們必不可少的必需品,廣泛用于個(gè)人家庭以及車站、碼頭、劇場(chǎng)、辦公室等公共場(chǎng)所,給人們的生活、學(xué)習(xí)、工作、娛樂(lè)帶來(lái)極大的方便。1.1課題背景及意義如今我們只需看一下鐘就能說(shuō)出時(shí)間,我們把這看成是很自然的事。但在過(guò)去長(zhǎng)達(dá)幾千年的時(shí)間里,根本就沒(méi)有任何測(cè)定時(shí)間的精確方法。人們通過(guò)太陽(yáng)在天空中的位置,或者通過(guò)像沙漏這樣的裝置來(lái)判斷時(shí)間,在沙漏中,是通過(guò)沙子從一個(gè)雙頭玻璃容器中漏落下來(lái)來(lái)指示時(shí)間的。改變上述情況的人是一位叫做一行的中國(guó)杰出天文學(xué)家,他生活于公元8世紀(jì)。他與另外一位中國(guó)發(fā)明家梁令瓚一起設(shè)計(jì)了"擒縱器"裝置,即所有機(jī)械鐘中心部位的那套齒輪嵌齒結(jié)構(gòu)。機(jī)械鐘在中世紀(jì)時(shí)來(lái)到歐洲。到14世紀(jì)時(shí),歐洲建造了既大又不靈巧的機(jī)械鐘,它們用鐘錘驅(qū)動(dòng),其精確度每天大約誤差在1小時(shí)以內(nèi)。這樣的鐘在人們眼中通常沒(méi)什么信任度。它們連著一個(gè)報(bào)時(shí)的鈴,但既然它們這樣不精確,在機(jī)械裝置中也就談不上顯示分與秒了。15世紀(jì)時(shí)開(kāi)發(fā)出了由彈簧驅(qū)動(dòng)的鐘,接著在17世紀(jì)時(shí)制造出了帶有鐘擺的更精確的鐘。而到中世紀(jì)時(shí),鐘表制造者造出了可展示太陽(yáng)運(yùn)動(dòng)和月亮、行星的相位,以及能顯示時(shí)間的鐘。擬人機(jī)構(gòu)不時(shí)地打鈴,以聲音報(bào)出每小時(shí)和每刻鐘。而在現(xiàn)在這一個(gè)知識(shí)爆炸的新時(shí)代,新產(chǎn)品、新技術(shù)層出不窮,電子技術(shù)的發(fā)展更是日新月異??梢院敛豢鋸埖卣f(shuō),電子技術(shù)的應(yīng)用無(wú)處不在,電子技術(shù)正在不斷地改變我們的生活,改變著我們的世界。在這快速發(fā)展的年代,時(shí)間對(duì)人們來(lái)說(shuō)是越來(lái)越寶貴,在快節(jié)奏的生活時(shí),人們往往忘記了時(shí)間,一旦遇到重要的事情而忘記了時(shí)間,這將會(huì)帶來(lái)很大的損失。因此我們需要一個(gè)定時(shí)系統(tǒng)來(lái)提醒這些忙碌的人,而數(shù)字化的鐘表得出現(xiàn),給人們帶來(lái)了極大的方便。數(shù)字時(shí)鐘具有性能穩(wěn)定、精確度高、成本低、易于產(chǎn)品化,以及方便、實(shí)用等特點(diǎn)。適用于家庭、公司、機(jī)關(guān)等眾多場(chǎng)所。為人們的日常生活、出行安排提供了方便,成為人們?nèi)粘I钪胁豢扇鄙俚囊徊糠?。近些?隨著科技的發(fā)展和社會(huì)的進(jìn)步,人們對(duì)數(shù)字鐘的要求也越來(lái)越高,傳統(tǒng)的時(shí)鐘已不能滿足人們的需求。多功能數(shù)字鐘不管在性能還是在樣式上都發(fā)生了質(zhì)的變化,有電子時(shí)鐘、數(shù)字鬧鐘等等。單片機(jī)在多功能高精度時(shí)鐘中的應(yīng)用已是非常普遍的,人們對(duì)高精度鐘的功能及工作順序都非常熟悉,但是卻很少知道它的內(nèi)部結(jié)構(gòu)以及工作原理。由單片機(jī)作為數(shù)字鐘的核心控制器,可以通過(guò)它的時(shí)鐘信號(hào)進(jìn)行計(jì)時(shí)實(shí)現(xiàn)計(jì)時(shí)功能,將其時(shí)間數(shù)據(jù)經(jīng)單片機(jī)輸出,利用顯示器顯示出來(lái)。通過(guò)鍵盤可以進(jìn)行定時(shí)、校時(shí)功能。輸出設(shè)備顯示器可以用液晶顯示技術(shù)和數(shù)碼管顯示技術(shù)。1.2本畢業(yè)設(shè)計(jì)課題任務(wù)的主要內(nèi)容和主要要求本次設(shè)計(jì)的題目是基于DS12C887的高精度時(shí)鐘的設(shè)計(jì),可以正常的顯示年、月、日、時(shí)、分、秒。本系統(tǒng)利用單片機(jī)實(shí)現(xiàn)具有計(jì)時(shí)、校時(shí)等功能的數(shù)字時(shí)鐘,是以單片機(jī)AT89S52為核心元件,同時(shí)采用1602液晶顯示屏動(dòng)態(tài)顯示"時(shí)","分","秒"的現(xiàn)代計(jì)時(shí)裝置。與傳統(tǒng)機(jī)械表相比,它具有走時(shí)精確,顯示直觀等特點(diǎn)。另外具有校時(shí)功能,利用單片機(jī)實(shí)現(xiàn)的數(shù)字時(shí)鐘具有編程靈活,便于功能的擴(kuò)充等優(yōu)點(diǎn)。本次設(shè)計(jì)可分為兩部分:硬件部分、軟件部分。硬件部分包括:AT89S52單片機(jī)、DS12C887時(shí)鐘芯片、1602LCD液晶顯示器。主要由AT89S52單片機(jī)、實(shí)時(shí)時(shí)鐘芯片電路、液晶顯示輸出電路、鍵盤輸入電路組成等幾大部分組成。具體說(shuō)來(lái),系統(tǒng)智能控制部分由單片機(jī)及其相關(guān)的外圍電路組成,外圍電路包括復(fù)位電路、晶振電路、鍵盤設(shè)計(jì)、電源電路。利用單片機(jī)將復(fù)位電路、動(dòng)態(tài)顯示電路、電源電路等正確的連接在一起,并通過(guò)單片機(jī)的編程來(lái)實(shí)現(xiàn)本次設(shè)計(jì)任務(wù)中的要求。軟件部分包括了主程序模塊,DS12C887模塊,LCD1602模塊,鍵盤控制模塊[1]。本設(shè)計(jì)的基本要求是:具有年、月、日、星期、時(shí)、分、秒等功能,同時(shí)具備年、月、日、星期、時(shí)、分、秒校準(zhǔn)功能。具體的用單片機(jī)實(shí)現(xiàn)具有計(jì)時(shí)、校時(shí)等功能的數(shù)字時(shí)鐘,是以單片機(jī)AT89S52為核心元件,結(jié)合DS12C887時(shí)鐘芯片,采用1602液晶顯示屏作為動(dòng)態(tài)顯示年、月、日、星期、時(shí)、分、秒等的現(xiàn)代計(jì)時(shí)[2]。1.3本文章節(jié)安排第一章緒論,介紹了本課題的背景及要實(shí)現(xiàn)的目標(biāo);第二章方案論證,具體包括常見(jiàn)的時(shí)鐘方案以及本設(shè)計(jì)選用的方案;第三章硬件部分,DS12C887的高精確時(shí)鐘的硬件設(shè)計(jì),硬件模塊包括AT89S52控制模塊,DS12C887時(shí)鐘模塊,1602顯示模塊,鍵盤及外圍電路,外圍電路即晶振和復(fù)位電路[3]第四章軟件部分,本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序﹑DS12C887子程序、LCD1602子程序、鍵盤子程序構(gòu)成;第五章系統(tǒng)調(diào)試部分,包括軟件介紹和調(diào)試中存在的問(wèn)題和解決辦法以及顯示結(jié)果。2方案論證時(shí)鐘電路有各種各樣的,在不同的要求和條件下有著各自的優(yōu)勢(shì),本設(shè)計(jì)的題目是高精度時(shí)鐘的設(shè)計(jì),根據(jù)設(shè)計(jì)要求時(shí)鐘顯示正常的年、月、日、星期、時(shí)、分、秒。要想實(shí)現(xiàn)上述功能,所以設(shè)計(jì)要從電路設(shè)計(jì)的性價(jià)比、顯示時(shí)間的精確以及穩(wěn)定性為前提。本設(shè)計(jì)是要將硬件系統(tǒng)和軟件系統(tǒng)有機(jī)的結(jié)合在一起,方可實(shí)現(xiàn)我們?cè)O(shè)計(jì)任務(wù)中的各項(xiàng)要求。2.1常見(jiàn)的時(shí)鐘設(shè)計(jì)基于FPGA時(shí)鐘電路設(shè)計(jì)FPGA是英文FieldProgrammableGateArray的縮寫(xiě),即現(xiàn)場(chǎng)可編程門陣列,它是在PAL、GAL、EPLD等可編程器件的基礎(chǔ)上進(jìn)一步發(fā)展的產(chǎn)物。它是作為專用集成電路〔ASIC領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點(diǎn)。FPGA采用了邏輯單元陣列LCA〔LogicCellArray這樣一個(gè)新概念,內(nèi)部包括可配置邏輯模塊CLB〔ConfigurableLogicBlock、輸出輸入模塊IOB〔InputOutputBlock和內(nèi)部連線〔Interconnect三個(gè)部分。FPGA的基本特點(diǎn)主要:〔1采用FPGA設(shè)計(jì)ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。〔2FPGA可做其它全定制或半定制ASIC電路的中試樣片?!?FPGA內(nèi)部有豐富的觸發(fā)器和I/O引腳?!?FPGA是ASIC電路中設(shè)計(jì)周期最短、開(kāi)發(fā)費(fèi)用最低、風(fēng)險(xiǎn)最小的器件之一。并且FPGA采用高速CMOS工藝、功耗低,可以與CMOS、TTL電平兼容??梢哉f(shuō),FPGA芯片是小批量系統(tǒng)提高系統(tǒng)集成度、可靠性的最佳選擇之一。隨著FPGA集成度的不斷提升,單片F(xiàn)PGA已經(jīng)可以完成百萬(wàn)門級(jí)的集成電路設(shè)計(jì)。因此,很多ASIC設(shè)計(jì)可以利用FPGA完成流片前的功能驗(yàn)證。甚至直接使用FPGA進(jìn)行商業(yè)生產(chǎn)。但是,FPGA的特殊結(jié)構(gòu)決定了基于FPGA的設(shè)計(jì)不能直接照搬在ASIC設(shè)計(jì)當(dāng)中的某些經(jīng)驗(yàn),時(shí)鐘設(shè)計(jì)便是其中較突出的一條。由于FPGA的生產(chǎn)工藝,在出廠之前,FPGA內(nèi)部元件之間的連線已經(jīng)完全固定。同時(shí),FPGA具有連線延時(shí)相對(duì)門延時(shí)較大的特點(diǎn),造成FPGA并不能通過(guò)動(dòng)態(tài)搭建時(shí)鐘緩沖器樹(shù)的方法解決時(shí)鐘偏差問(wèn)題。實(shí)際上,時(shí)鐘結(jié)構(gòu)已經(jīng)被預(yù)先固化在芯片當(dāng)中。經(jīng)過(guò)綜合工具的自動(dòng)指定。時(shí)鐘結(jié)構(gòu)如圖2.1所示。圖2.1時(shí)鐘結(jié)構(gòu)FPGA通過(guò)其特定的時(shí)鐘網(wǎng)絡(luò),使得時(shí)鐘信號(hào)從BUFGMUX到每個(gè)CLB的時(shí)鐘端沒(méi)有時(shí)鐘偏差。但是,此結(jié)構(gòu)的間接后果是為每個(gè)CLB的時(shí)鐘端添加了一個(gè)相同的時(shí)鐘線延時(shí),即從BUFGMUX通過(guò)時(shí)鐘網(wǎng)絡(luò)到達(dá)GRM的時(shí)間,在正常情況下,這個(gè)時(shí)間為6ns~7ns。因?yàn)閮蓚€(gè)都可以實(shí)現(xiàn)同樣的功能,而FPGA芯片的價(jià)格遠(yuǎn)比單片機(jī)高。出于利潤(rùn),會(huì)選擇開(kāi)發(fā)成本少的產(chǎn)品。基于石英晶體振蕩器設(shè)計(jì)隨著科學(xué)技術(shù)的不斷發(fā)展,人們對(duì)時(shí)間計(jì)量的精度要求越來(lái)越高。高精度的計(jì)時(shí)工具大多數(shù)都是用了石英晶體振蕩器,由于電子石晶表、石英鐘都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)校,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種鐘具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。系統(tǒng)的工作原理:振蕩器產(chǎn)生穩(wěn)定的分頻脈沖信號(hào),作為數(shù)字鐘的時(shí)間基準(zhǔn),然后經(jīng)過(guò)分頻器輸出標(biāo)準(zhǔn)秒脈沖。秒技術(shù)器滿60分向分計(jì)數(shù)器進(jìn)位,分技術(shù)器滿60分向時(shí)計(jì)數(shù)器進(jìn)位,小時(shí)計(jì)數(shù)器按照"24翻1"規(guī)律技術(shù)。計(jì)數(shù)器的輸出分別由譯碼器送顯示器顯示。計(jì)時(shí)出現(xiàn)誤差時(shí),可以用校時(shí)電路校時(shí)、校分[4]。數(shù)字電子鐘邏輯圖如圖2.2顯示,它由石英晶體振蕩器、分頻器、計(jì)數(shù)器、譯碼器、譯碼顯示器和校時(shí)電路組成〔如顯示23時(shí)50分59秒。595023595023譯碼器譯碼器譯碼器譯碼器譯碼器譯碼器分計(jì)數(shù)器秒計(jì)數(shù)器分計(jì)數(shù)器秒計(jì)數(shù)器時(shí)計(jì)數(shù)器時(shí)計(jì)數(shù)器校時(shí)電路校時(shí)電路晶體振蕩器分頻器晶體振蕩器分頻器圖2.2數(shù)字電子鐘邏輯圖本電路主要由石英晶體振蕩器、分頻器、計(jì)數(shù)器、譯碼器、LED顯示器和校時(shí)電路組成,采用了COMS系統(tǒng)〔雙列直插式中小規(guī)模集成芯片。總體方案由主體電路和擴(kuò)展電路兩大部分組成,其中主體電路完成數(shù)字鐘的基本功能,擴(kuò)展電路完成數(shù)字鐘展功能,進(jìn)行了各單元的設(shè)計(jì),總體調(diào)試。2.2本設(shè)計(jì)采用的方案對(duì)此次作品的方案選定:采用AT89S52作為主控制系統(tǒng),LCD1602液晶模塊作為顯示,時(shí)鐘芯片DS12C887提供時(shí)鐘。硬件系統(tǒng)主要有單片機(jī)AT89S52、DS12C887、1602LCD等。采用AT89S52單片機(jī)作為系統(tǒng)的控制核心,一是對(duì)通過(guò)I/O口組成的鍵盤進(jìn)行定期掃描,并執(zhí)行相應(yīng)的鍵處理;二是定時(shí)讀取時(shí)鐘芯片數(shù)據(jù),使之在各位LCD中顯示。時(shí)鐘功能采用單片集成的時(shí)鐘芯片DS12C887來(lái)實(shí)現(xiàn),它是保證時(shí)鐘準(zhǔn)確的重要器件。在運(yùn)行時(shí),按下相應(yīng)的鍵,可以對(duì)顯示的數(shù)據(jù)進(jìn)行相應(yīng)的校正處理,以顯示正確的時(shí)間。根據(jù)按鍵電路可實(shí)現(xiàn)年、月、日、時(shí)、分、秒的調(diào)整,S1鍵是功能鍵,切換需要選擇調(diào)整的位,S2、S3鍵分別對(duì)時(shí)間進(jìn)行加或減的操作,S4是復(fù)位鍵,進(jìn)行復(fù)位操作,S5是鬧鐘鍵。設(shè)計(jì)的整體框圖如圖2.3所示。圖2.3設(shè)計(jì)的整體框圖〔1單片機(jī)控制模塊單片機(jī)來(lái)承擔(dān)單片機(jī)在系統(tǒng)中對(duì)其他模塊進(jìn)行控制,是整個(gè)系統(tǒng)的核心部件,主要是對(duì)其他模塊進(jìn)行控制和數(shù)據(jù)交換?!?時(shí)鐘模塊的設(shè)計(jì)時(shí)鐘模塊主要是用于對(duì)時(shí)、分、秒、年、月、日和星期的計(jì)時(shí)。該模塊采用的芯片為DS12C887時(shí)鐘芯片。〔3顯示模塊顯示模塊主要由1602LCD顯示器完成,顯示器主要是為人機(jī)交互提供即時(shí)的信息,能讓人們與機(jī)器進(jìn)行很好的交流?!?鍵盤模塊本系統(tǒng)的按鍵主要是用于對(duì)時(shí)鐘的校對(duì),現(xiàn)對(duì)按鍵的功能簡(jiǎn)述如下:S1鍵是功能鍵,切換需要選擇調(diào)整的位,S2、S3鍵分別對(duì)時(shí)間進(jìn)行加或減的操作,S4是復(fù)位鍵,進(jìn)行復(fù)位操作,S5是鬧鐘鍵。3硬件電路設(shè)計(jì)根據(jù)上述,采用AT89S52單片機(jī)作為系統(tǒng)的控制核心。一是對(duì)通過(guò)I/O口組成的鍵盤進(jìn)行定期掃描,并執(zhí)行相應(yīng)鍵處理;二是定時(shí)讀取時(shí)鐘芯片數(shù)據(jù),使之在各位LCD中顯示。時(shí)鐘功能采用集成的時(shí)鐘芯片DS12C887來(lái)實(shí)現(xiàn),它是保證時(shí)鐘準(zhǔn)確的重要器件。在運(yùn)行時(shí),按下相應(yīng)的鍵,可以對(duì)顯示的數(shù)據(jù)進(jìn)行相應(yīng)的校正處理,以顯示正確的時(shí)間[5]3.1單片機(jī)控制電路單片機(jī)控制系統(tǒng)包括AT89S52單片機(jī)以及它的外圍電路〔晶振電路和復(fù)位電路。單片機(jī)系統(tǒng)發(fā)展隨著計(jì)算機(jī)技術(shù)的發(fā)展,單片機(jī)技術(shù)已成為計(jì)算機(jī)技術(shù)中的一個(gè)獨(dú)立的分支,單片機(jī)的應(yīng)用領(lǐng)域也越來(lái)越廣泛,特別是在工業(yè)控制和儀器儀表智能化中扮演著極其重要的角色。從應(yīng)用領(lǐng)域看,單片機(jī)主要用于控制,所以也稱它為微控制器。目前計(jì)算機(jī)硬件技術(shù)向巨型化、微型化和單片化發(fā)展。自1975年美國(guó)德克薩斯儀器公司第一塊單片機(jī)芯片TMS-1000問(wèn)世以來(lái),在短短的20余年間,單片機(jī)技術(shù)已發(fā)展成為計(jì)算機(jī)技術(shù)中一個(gè)非常有活力的分支,它有自己的技術(shù)特征、規(guī)范、發(fā)展道路和應(yīng)用環(huán)境。按單片機(jī)的生產(chǎn)技術(shù)和應(yīng)用對(duì)象,單片機(jī)先后經(jīng)歷了4位機(jī)、8位機(jī)、16位機(jī)、32位機(jī)幾個(gè)有代表性的發(fā)展階段[6]。AT89S52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80CAT89S52的主要性能有:〔1與MCS-51單片機(jī)產(chǎn)品兼容;〔28K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器;〔31000次擦寫(xiě)周期;〔4全靜態(tài)操作:0Hz~33Hz;〔5三級(jí)加密程序存儲(chǔ)器;〔6八個(gè)中斷源;〔7全雙工UART串行通道;〔8低功耗空閑和掉電模式、掉電后中斷可喚醒;〔9看門狗定時(shí)器;〔10雙數(shù)據(jù)指針;〔11掉電標(biāo)識(shí)符。8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(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é)電模式??臻e模式下,CPU停止工作,允許RAM、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。掉電保護(hù)方式下,RAM內(nèi)容被保存,振蕩器被凍結(jié),單片機(jī)一切工作停止,直到下一個(gè)中斷或硬件復(fù)位為止[7]。AT89S52的引腳如圖3.1所示。圖3.1AT89S52引腳的引腳圖AT89S52的各個(gè)引腳的說(shuō)明如下:VCC:電源電壓GND:接地P0口:P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)"1”當(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”此外,P1.0和P1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入〔P1.0/T2和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入〔P1.1/T2EX,具體如表3.1所示[8]。在flash編程和校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。表3.1引腳號(hào)第二功能引腳第二功能P1.0T2〔定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入,時(shí)鐘輸出P1.1T2EX〔定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制P1.5MOSI〔在系統(tǒng)編程用P1.6MISO〔在系統(tǒng)編程用P1.7SCK〔在系統(tǒng)編程用P2口:P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。對(duì)P2端口寫(xiě)"1”在訪問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器〔例如執(zhí)行MOVXDPTR,A時(shí),P2口送出高八位地址。在這種應(yīng)用中,P2口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址〔如MOVXR1,A訪問(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”P3口亦作為AT89S52特殊功能〔第二功能使用,如表3.2所示。表3.2AT89S52特殊功能〔第二功能表第二功能功能P3.0RXD〔串行輸入口P3.1TXD〔串行輸出口P3.2〔外部中斷0P3.3〔外部中斷1P3.4T0〔定時(shí)/計(jì)數(shù)器0P3.5T1〔定時(shí)/計(jì)數(shù)器1P3.6〔外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通P3.7〔外部數(shù)據(jù)存儲(chǔ)器讀選通此外,P3口還接收一些用于Flash閃存編程和程序校驗(yàn)的控制信號(hào)。RST——復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。ALE/PROG——當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE〔地址鎖存允許輸出脈沖用于鎖存地址的低8位字節(jié)。一般情況下,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。XTAL1:振蕩器反相放大器的輸出端及時(shí)鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端及時(shí)鐘發(fā)生器的輸入端。對(duì)Flash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖〔PROG。如有必要,可通過(guò)對(duì)特殊功能寄存器〔SFR區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令才能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無(wú)效。PSEN——程序儲(chǔ)存允許〔PSEN輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S52由外部程序存儲(chǔ)器取指令〔或數(shù)據(jù)時(shí),每個(gè)機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,將跳過(guò)兩次PSEN信號(hào)。EA/VPP——外部訪問(wèn)允許,欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器〔地址為0000H~FFFFH,EA端必須保持低電平〔接地。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平〔接VCC端,CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器的指令。Flash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。AT89S52單片機(jī)的連接圖圖3.2為AT89S52的鏈接圖,包括復(fù)位電路、晶振電路、電源電路、時(shí)鐘芯片DS12C887、1602LCD與單片機(jī)的連接。圖3.2AT89S52的連接圖〔1復(fù)位電路單片機(jī)復(fù)位有上電復(fù)位和按鍵手動(dòng)復(fù)位兩種。上電自動(dòng)復(fù)位電路中上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的。只要VCC的上升時(shí)間不超過(guò)1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位。按鍵手動(dòng)復(fù)位又分為按鍵電平復(fù)位和按鍵脈沖復(fù)位兩種:按鍵電平復(fù)位相當(dāng)于復(fù)位端通過(guò)電阻與VCC電源接通;按鍵脈沖復(fù)位就是利用RC微分電路產(chǎn)生正脈沖。單片機(jī)復(fù)位的條件是當(dāng)單片機(jī)振蕩器工作時(shí),RST引腳上出現(xiàn)持續(xù)兩個(gè)機(jī)器周期的高電平,從而實(shí)現(xiàn)復(fù)位操作,使單片機(jī)回復(fù)到初始狀態(tài)。上電時(shí),考慮到振蕩器有一定的起振時(shí)間,RST引腳上高電平必須持續(xù)10ms以上才能保證有效復(fù)位。AT89S52的復(fù)位是由外部的復(fù)位電路來(lái)實(shí)現(xiàn)的。復(fù)位引腳RST通過(guò)一個(gè)斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的S5P2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。當(dāng)時(shí)鐘頻率用12MHz時(shí)C取22uF,R取1KΩ?!?晶振電路晶振是晶體振蕩器的簡(jiǎn)稱。它用一種能把電能和機(jī)械能相互轉(zhuǎn)化的晶體在共振的狀態(tài)下工作,以提供穩(wěn)定,精確的單頻振蕩。在通常工作條件下,普通的晶振頻率絕對(duì)精度可達(dá)百萬(wàn)分之五十。高級(jí)的精度更高。有些晶振還可以由外加電壓在一定范圍內(nèi)調(diào)整頻率,稱為壓控振蕩器〔VCO。晶振的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)系統(tǒng)共用一個(gè)晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過(guò)電子調(diào)整頻率的方法保持同步。晶振電路中接在晶振旁的兩個(gè)電容,叫負(fù)載電容。一般單片機(jī)的晶振工作于并聯(lián)諧振狀態(tài),也可以理解為諧振電容的一部分。它是根據(jù)晶振廠家提供的晶振要求負(fù)載電容選值的,換句話說(shuō),晶振的頻率就是在它提供的負(fù)載電容下測(cè)得的,能最大限度的保證頻率值的誤差。也能保證溫漂等誤差。兩個(gè)電容的取值都是相同的,或者說(shuō)相差不大,如果相差太大,容易造成諧振的不平衡,容易造成停振或者干脆不起振。本設(shè)計(jì)采用最常用的內(nèi)部時(shí)鐘方式,即利用芯片內(nèi)部的振蕩電路,在XTAL1、XTAL2引腳上外接定時(shí)元件,內(nèi)部的振蕩電路便產(chǎn)生自激振蕩。組成的并聯(lián)諧振回路。振蕩晶體可在1.2MHz到12MHz之間選擇。電容值無(wú)嚴(yán)格要求,但電容取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小、振蕩電路起振速度有少許影響,CX1、CX2可在30pF時(shí)振蕩器有較高的頻率穩(wěn)定性。所以本設(shè)計(jì)中,振蕩晶體選擇12MHz,電容選擇30pF。3.2DS12C887時(shí)鐘電路DS12C887實(shí)時(shí)時(shí)鐘芯片功能豐富,可以用來(lái)直接代替IBMPC上的時(shí)鐘日歷芯片DS12887,同時(shí),它的管腳也和MC146818B、DS12887相兼容。本次設(shè)計(jì)采用實(shí)時(shí)時(shí)鐘芯片是DS12C887,這種實(shí)時(shí)時(shí)鐘芯片具備年、月、日、星期、時(shí)、分、秒計(jì)時(shí)功能和多點(diǎn)定時(shí)功能,計(jì)時(shí)數(shù)據(jù)的更新每秒自動(dòng)進(jìn)行一次,不需程序干預(yù)。器件介紹DS12C887是美國(guó)Dallas半導(dǎo)體公司推出的并行接口實(shí)時(shí)時(shí)鐘\日歷芯片,采用CMOS技術(shù)制成,具有內(nèi)部晶振和時(shí)鐘芯片備份鋰電池,同時(shí)它與計(jì)算機(jī)常用的時(shí)鐘芯片MC146818和DS12887管腳兼容,可直接替換。采用DS12C887芯片設(shè)計(jì)的時(shí)鐘電路無(wú)需任何外圍電路和器件,并且有良好的微機(jī)接口[9]。DS12C887芯片內(nèi)有微功耗,外圍接口簡(jiǎn)單,精度高,工作穩(wěn)定可靠等優(yōu)點(diǎn),廣泛各種需要較高精度的實(shí)時(shí)時(shí)鐘系統(tǒng)中。由于DS12C887能夠自動(dòng)產(chǎn)生世紀(jì)、年、月、日、星期、時(shí)、分、秒等時(shí)間信息,其內(nèi)部又增加了世紀(jì)寄存器,從而利用硬件電路解決子"千年"問(wèn)題;DS12C887中自帶有鋰電池,外部掉電時(shí),其內(nèi)部時(shí)間信息還能夠保持10年之久;對(duì)于一天內(nèi)的時(shí)間記錄,有12小時(shí)制和24小時(shí)制兩種模式。在12小時(shí)制模式中,用AM和PM區(qū)分上午和下午;時(shí)間的表示方法也有兩種,一種用二進(jìn)制數(shù)表示,一種是用BCD碼表示;DS12C887中帶有128字節(jié)RAM,其中有11字節(jié)RAM用來(lái)存儲(chǔ)時(shí)間信息,4字節(jié)RAM用來(lái)存儲(chǔ)DS12C887的控制信息,稱為控制寄存器,113字節(jié)通用RAM使用戶使用;此外用戶還可對(duì)DS12C顯示范圍:年份可走99年,如2001~2099;日、月正常顯示,能識(shí)別閏年閏月;時(shí)間采用24小時(shí)制。顯示格式:日期按照年、月、日排列,如2005年12月20日顯示為:05-12-20;時(shí)間按時(shí)、分、秒排列,如12點(diǎn)30分55秒顯示為12-30-55。顯示位數(shù):6位七段LED數(shù)碼管工作正常和節(jié)電顯示。時(shí)鐘誤差:24小時(shí)誤差3~5秒。DS12C887主要功能介紹:〔1內(nèi)含一個(gè)鋰電池,斷電后運(yùn)行十年以上不丟失數(shù)據(jù);〔2計(jì)秒、分、時(shí)、天、星期、日、月、年、并有閏年補(bǔ)償功能;〔3二進(jìn)制數(shù)碼或BCD碼表示時(shí)間,日歷和定鬧;〔412小時(shí)或24小時(shí)制,12小時(shí)時(shí)鐘模式帶有PM和AM指示,有夏令時(shí)功能;〔5Motorola和Intel總線時(shí)序選擇;〔6有128個(gè)字節(jié)RAM單元與軟件接口,其中14個(gè)字節(jié)作為時(shí)鐘和控制寄存器,114字節(jié)為通用RAM,所有RAM單元數(shù)據(jù)都具有掉電保護(hù)功能;〔7可編程方波信號(hào)輸出;〔8中斷信號(hào)輸出〔IRQ和總線兼容、定鬧中斷、周期性中斷、時(shí)鐘更新周期、結(jié)束中斷可分別由軟件屏蔽,也可分別進(jìn)行測(cè)試;DS12C887寄存器的功能和作用:DS12C887內(nèi)部RAM和專用寄存器地址功能,地址00H~03H單元取值范圍是00H~3BH〔10進(jìn)制0~59;04H~05H單元按12小時(shí)制取值范圍是上午〔AM01H~0CH〔1~12,下午〔PM81H~8CH〔81~92按24小時(shí)制取值范圍使00H~17H〔1~23;06H單元取值范圍使00H~07H〔0~7;07H單元取值范圍01H~1FH〔1~31;08H單元取值范圍是01H~0CH〔1~12;09H單元取值范圍是00H~63H〔0~99。DS12C887的RAM和各專用寄存器的訪問(wèn)如下實(shí)現(xiàn),若片選地址DS=#0DDXXH,則芯片內(nèi)部RAM和寄存器和地址為#0DD00H~#ODD7FH。應(yīng)指出的是,盡管DS12C887的專用時(shí)標(biāo)年寄存器只有一個(gè),但通過(guò)軟件編程可利用其內(nèi)部的不掉電的RAM區(qū)的一個(gè)字節(jié)實(shí)現(xiàn)年度的高兩位顯示。寄存器A:寄存器A各位不受復(fù)位影響,UIP位為只讀位,其它各位可讀寫(xiě),寄存器的控制字的格式?!?UIP—更新周期標(biāo)志位。該位為"1"時(shí),表示芯片正處于或?qū)㈤_(kāi)始更新周期,此時(shí)程序不準(zhǔn)讀寫(xiě)師表寄存器;該位為"0"時(shí),表示至少在244us后開(kāi)始更新周期,此時(shí)程序可讀芯片內(nèi)時(shí)標(biāo)寄存器。該位是只讀位?!?DV0、DV1、DV2—這三位用來(lái)開(kāi)/關(guān)晶體振蕩器和復(fù)位分頻器。當(dāng)芯片接觸復(fù)位狀態(tài),并將010寫(xiě)入DV0、DV1、DV2后,另一個(gè)更新周期將在500ms后開(kāi)始。因此,在程序初始化時(shí)可用這三各精確地使芯片在設(shè)定的時(shí)間開(kāi)始工作。這與MC146818不同的使DS12C887固定使用32768Hz的內(nèi)部晶體。所以當(dāng)[DV0DV1DV2]=[010]時(shí),晶體振蕩器開(kāi)啟且保持時(shí)鐘運(yùn)行。當(dāng)[DV0DV1DV2]=[01x]時(shí),晶體振蕩器開(kāi)啟,但分頻保持復(fù)位狀態(tài)?!?RS3、RS2、RS1、RS0—周期中斷可編程方波輸出速率選擇位。這四個(gè)速率選擇位用來(lái)選擇15級(jí)分頻器的13種分頻之一,或禁止分頻器輸出。按照所選擇的頻率產(chǎn)生方波輸出〔SWQ引腳和/或一個(gè)周期性中斷。寄存器B:〔1SET—SET=0,芯片更新正常顯示;SET=1,芯片更新被禁止。SET位可讀/寫(xiě),并不受復(fù)位信號(hào)的影響。〔2PIE—PIE=0,禁止周期中斷輸出到IRQ;PIE=1,允許周期中斷輸出到IRQ?!?AIE—AIE=0,禁止鬧鐘中斷輸出到IRQ;AIE=1,允許鬧鐘中斷輸出到IRQ?!?UIE—UIE=0,禁止更新結(jié)束中斷輸出到IRQ;UIE=1,允許更新結(jié)束中斷輸出到IRQ。此時(shí)在復(fù)位或設(shè)置SET位為高時(shí)清0?!?SQWE—SQWE=0,SQW引腳為低電平;SQWE=1,SQW輸出設(shè)定頻率的方波?!?DM—DM=0,設(shè)置寄存器存儲(chǔ)數(shù)據(jù)格式為BCD碼格式:DM=1,設(shè)置寄存器存儲(chǔ)數(shù)據(jù)格式二進(jìn)制數(shù)碼式,此位不受復(fù)位信號(hào)影響?!?24/12—為1,24小時(shí)制;為0,12小時(shí)制。〔8DSE—夏令時(shí)允許標(biāo)志。寄存器C:IRQF—中斷請(qǐng)求標(biāo)志。當(dāng)以下4重情況中一種或幾種發(fā)生時(shí),IRQF置高:PF=PIE=1AF=AIE=1UF=UIE=1IRQF=PF×PIE+AF×AIE+UF×UIEIRQF一旦為高,IRQ腳輸出低電平。所有標(biāo)志位在讀寄存器C或復(fù)位后清0。PF—周期中斷標(biāo)志AF—鬧鐘中斷標(biāo)志UF—更新中斷標(biāo)志寄存器D:VRT—VRT=0,表示內(nèi)置電池能量耗盡,此時(shí)RAM中數(shù)據(jù)的正確性就不能保證了。DS12C887的中斷和更新周期:DS12C887處于正常工作狀態(tài)時(shí),每秒鐘將產(chǎn)生一個(gè)更新周期,芯片處于更新周期的標(biāo)志是寄存器A中的CPU位為1。在更新周期內(nèi),芯片內(nèi)部時(shí)標(biāo)寄存器數(shù)據(jù)處于更新階段,故在該周期內(nèi),微處理器不能讀芯片時(shí)標(biāo)寄存器中的內(nèi)容,同時(shí)秒時(shí)標(biāo)寄存器內(nèi)容加1,并檢查其他時(shí)標(biāo)寄存器內(nèi)容是否有溢出。如果有溢出則相應(yīng)進(jìn)位日、月、年。另外一個(gè)功能是檢查三個(gè)時(shí)、分、秒報(bào)警時(shí)標(biāo)寄存器的內(nèi)容是否與對(duì)應(yīng)時(shí)標(biāo)寄存器的內(nèi)容相符,如果相符則寄存器C中的AF位置1。如果報(bào)警時(shí)標(biāo)寄存器的內(nèi)容為COH到FFH之間的數(shù)據(jù),則為不關(guān)閉狀態(tài)。為了采樣時(shí)標(biāo)寄存器中的數(shù)據(jù),DS12C887提供了兩種避開(kāi)更新周期內(nèi)訪問(wèn)時(shí)標(biāo)寄存器的方案:第一種是利用更新周期結(jié)束發(fā)出的中斷。它可以編程允許在每次更新周期結(jié)束后發(fā)生中斷申請(qǐng),提醒CPU將有998ms左右的時(shí)間去獲取有效的數(shù)據(jù),在中斷之后的998ms時(shí)間內(nèi),程序可先將時(shí)標(biāo)數(shù)據(jù)讀支芯片內(nèi)部的不掉電靜態(tài)RAM中。因?yàn)樾酒瑑?nèi)部的靜態(tài)RAM和狀態(tài)寄存器是可隨時(shí)讀寫(xiě)的,在離開(kāi)中斷服務(wù)子程序前應(yīng)清除寄存器C中的IRQF位。另一種是:利用寄存器A中的UIP位來(lái)指示芯片是否處于更新周期。在UIP位從低變高244us后,芯片將進(jìn)行更新周期,所以檢測(cè)到UIP位為低電平時(shí),則利用224us的間隔時(shí)間去讀取時(shí)標(biāo)信息。如檢測(cè)到UIP位為1,則可暫緩讀數(shù)據(jù),等到UIP變成低電平再去讀數(shù)據(jù)。DS12C887的初始化方法:DS12C887采用連續(xù)工作制,一般無(wú)須每次都初始化,即使是系統(tǒng)復(fù)位時(shí)也如此。但初始化時(shí),首先應(yīng)禁止芯片內(nèi)部的更新周期操作,所以先將DS12C887狀態(tài)寄存器B中的SET位置1,然后初始化00H~09H時(shí)標(biāo)參數(shù)寄存器和狀態(tài)寄存器A,此后再通過(guò)讀狀態(tài)寄存器C、清除寄存器C中的周期中斷標(biāo)志位PE、報(bào)警中斷標(biāo)志位AF、更新周期結(jié)束中斷標(biāo)志位UF。通過(guò)讀寄存器D中的VRT位,讀狀態(tài)寄存器后VRT位將自動(dòng)置1,最后將狀態(tài)寄存器B中的SET位置0,芯片開(kāi)始計(jì)時(shí)工作。DS12C887管腳如圖3.3所示。圖3.3DS12C887管腳圖〔11管腳為MOT<總線操作時(shí)序選擇端>,它有兩種總線工作模式,即MOTORLA和INTEL模式。當(dāng)MOT管腳接到VCC時(shí),選擇MOTORLA時(shí)序;當(dāng)接到GFND時(shí)。選擇INTEL時(shí)序?!?2、3、16、20、21、22<N.C.>管腳為電壓在正常范圍內(nèi)時(shí)數(shù)據(jù)可讀寫(xiě);當(dāng)VCC低于4.25V,讀寫(xiě)被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)VCC下降到3V以下時(shí),RAM和計(jì)數(shù)器被切換到內(nèi)部鋰電池?!?4、11管腳為AD0~AD7<雙向地址數(shù)據(jù)復(fù)用線>,該總線采用時(shí)分復(fù)用技術(shù),在總線周期的前半部分,出現(xiàn)在AD0~AD7上的是地址信息,可用以選通DS12C887內(nèi)的RAM,總線周期的后半部分出現(xiàn)在AD0~AD7上的是數(shù)據(jù)信息??偩€接口即MOTOROLA微機(jī)系列和INTEL微機(jī)系列接口?!?12、24管腳為GND、VCC,系統(tǒng)電源接入端。其中VCC接+5V輸入,GND接地,當(dāng)VCC輸入+5V時(shí),用戶可以訪問(wèn)DS12C887內(nèi)的RAM的數(shù)據(jù),并可對(duì)其進(jìn)行讀/寫(xiě)操作,此時(shí)用戶不能正確獲取芯片內(nèi)的時(shí)間信息;當(dāng)VCC得輸入小于+3V時(shí),DS12C887會(huì)自動(dòng)切換到內(nèi)部自帶的鋰電池上,以保證內(nèi)部的電路正常工作。〔513管腳為CS〔片選輸入:在訪問(wèn)DS12C887的總線周期內(nèi),片選信號(hào)必須保持為低電平?!?14管腳為AS<地址選通輸入>:在進(jìn)行讀/寫(xiě)操作時(shí),AS的上升沿將AD0~AD7上出現(xiàn)的信息鎖存到DS12C887上,而下一個(gè)下降沿清楚AD0~AD7上的地址信息,不論CS是否有效,DS12C887都將執(zhí)行該操作?!?15管腳為R/W<讀/寫(xiě)輸入>:R/W管腳也有兩種操作模式。選MOTOROLA時(shí)序時(shí),R/W是一電平信號(hào),指示當(dāng)前周期是讀或?qū)懼芷?;DSO為高電平時(shí),R/W高電平指示讀周期,R/W低電平指示寫(xiě)周期;選INTEL時(shí)序,R/W信號(hào)是一低電平信號(hào),稱為WR。在此模式下,R/W管腳與通用RAM的寫(xiě)允許信號(hào)〔WE的含義相同?!?17管腳為DS<數(shù)據(jù)選通或讀輸入>:DSRD客腳有兩種操作模式,取決于MOT管腳放的電平,當(dāng)使用MOTOROLA時(shí)序時(shí),DS時(shí)正脈沖,出現(xiàn)在總線周期的后段稱為數(shù)據(jù)選通;在讀周期DS指示DS12C887驅(qū)動(dòng)雙向總的時(shí)刻,在寫(xiě)周期DS的后沿使DS12C887鎖存寫(xiě)數(shù)據(jù)。選擇INTEL時(shí)序時(shí)DS稱作〔RD,RD與典型存儲(chǔ)器的允許信號(hào)〔OE的定義相同?!?18管腳為RESET〔復(fù)位輸出:當(dāng)該腳保持低電平時(shí)間大于200ms,保證DS12C887有效復(fù)位?!?019管腳為IRQ〔中斷申請(qǐng)輸入:低電平有效,用作處理器的的中斷申請(qǐng)輸入。只要引起中斷的的狀態(tài)位置位,并且相應(yīng)中斷使能位也置為,IRQ將一直保持低電平,處理器程序通常讀取C寄存器來(lái)來(lái)清除IRQ引腳輸入,RESET引腳也會(huì)清除未處理的中斷。沒(méi)有中斷發(fā)生時(shí),IRQ為高阻狀態(tài),可將多個(gè)中斷器件接到一條IRQ總線上,只要它們均為漏極開(kāi)路輸入即可。IRQ引腳為漏極開(kāi)路輸出,需要使用一個(gè)外接上拉電路與VCC相連?!?123管腳為SQW<方波信號(hào)同>:SQW管腳能從實(shí)時(shí)時(shí)鐘內(nèi)部15級(jí)分頻器的13個(gè)抽頭中選擇一個(gè)作為輸出信號(hào),其輸出頻率可通過(guò)對(duì)寄存器A編程改變。DS12C887內(nèi)部由振蕩電路、分頻電路、周期中斷/方波選擇電路,14字節(jié)時(shí)鐘和控制單元,114字節(jié)用戶非易失RAM,十進(jìn)制/二進(jìn)制累加器,總線接口電路,電源開(kāi)關(guān)寫(xiě)保護(hù)單元和內(nèi)部鋰電池等部分組成。VCC為直流電源+5V電壓,當(dāng)5V電壓在正常范圍內(nèi)時(shí),數(shù)據(jù)可讀寫(xiě),當(dāng)VCC低于4.25V,讀寫(xiě)被禁止,計(jì)時(shí)功能仍繼續(xù);當(dāng)VCC下降到3V以下時(shí),RAM和計(jì)時(shí)器供電被切換到內(nèi)部鋰電池。DS12C887與單片機(jī)的連接DS12C887是一款純數(shù)字式的芯片,只要它與電片機(jī)的I/O口直接相連就可以操作。操作DS12C887時(shí)鐘芯片共需要13條信號(hào)線,分別是并行數(shù)據(jù)地址復(fù)用線AD0~AD7、CS、AS、R/W、DS和IRQ。然后將RESET引腳固定接高電平,再將DS12C887芯片的VCC和GND引腳與實(shí)驗(yàn)板相連即可。連接信號(hào)時(shí)需要考慮不要和原來(lái)實(shí)驗(yàn)板上的其他資源造成操作沖突,DS12C887芯片的數(shù)據(jù)地址復(fù)用線可以和單片機(jī)的P2口相連。DS、AS、R/W和CS分別連接單片機(jī)的P1.4~P1.7口。IRQ是DS12C887的中斷申請(qǐng)端,該引腳只能與單片機(jī)的外部中斷引腳相連,這樣當(dāng)DS12C887芯片向單片機(jī)申請(qǐng)中斷時(shí),單片機(jī)不會(huì)遺漏地檢測(cè)出所有的中斷,這里將其與單片機(jī)的P3.3口相連。DS12C887與單片機(jī)的連接如圖3.4所示[10]。圖3.4DS12C887與單片機(jī)的連接3.31602液晶顯示屏液晶顯示器簡(jiǎn)稱為L(zhǎng)CD顯示器,它是利用液晶經(jīng)過(guò)處理后能改變光線的傳輸方向的特征實(shí)現(xiàn)顯示信息的。液晶顯示器具有體積小、重量輕、功耗極低、顯示內(nèi)容豐富等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中得到日益廣泛的應(yīng)用。液晶顯示器按其功能可分為三類:筆端式液晶顯示器、字符點(diǎn)陣式液晶顯示器和圖形點(diǎn)陣式液晶顯示器。前兩種可以顯示數(shù)字、字符和符號(hào)等,而圖形點(diǎn)陣式液晶顯示器還可以顯示漢字和任意圖形,達(dá)到圖形并茂的效果[11]。1602字符型LCD引腳接口介紹1602字符型LCD引腳說(shuō)明如圖3.5所示。圖3.51602字符型LCD顯示器正反面1602字符型LCD引腳說(shuō)明:第1腳:VSS為電源地,接GND。第2腳:VDD接5V正電源。第3腳:VO為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生"鬼影",使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。第5腳:RW為讀寫(xiě)信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫(xiě)操作。當(dāng)RS和RW共同為低電平時(shí)可以寫(xiě)入指令或者顯示地址,當(dāng)RS為低電平RW為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平RW為低電平時(shí)可以寫(xiě)入數(shù)據(jù)。第6腳:EN端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。第15腳:BLA背光電源正極<+5V>輸入引腳。第16腳:BLK背光電源負(fù)極,接GND。引腳說(shuō)明如表3.3所示。表3.31602字符型LCD引腳編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1VSS電源地9D2數(shù)據(jù)口2VDD電源正極10D3數(shù)據(jù)口3VO液晶顯示器對(duì)比度調(diào)整端11D4數(shù)據(jù)口4RS數(shù)據(jù)/命令選擇端<H/L>12D5數(shù)據(jù)口5R/W讀/寫(xiě)選擇端<H/L>13D6數(shù)據(jù)口6E使能信號(hào)14D7數(shù)據(jù)口7D0數(shù)據(jù)口15BLA背光源正極8D1數(shù)據(jù)口16BLK背光源負(fù)極1602字符型LCD與單片機(jī)的連接接口說(shuō)明如下:〔1液晶1、2端為電源;15、16端為背光電源;15腳串接一個(gè)100電阻用于限流?!?液晶3端為液晶對(duì)比度調(diào)節(jié)端,通過(guò)一個(gè)10K電位器接地來(lái)調(diào)節(jié)液晶顯示對(duì)比度。首次使用時(shí),在液晶的上電狀態(tài)下,調(diào)節(jié)至液晶上面一行顯示出黑色小格為止。〔3液晶4端為向液晶控制器寫(xiě)數(shù)據(jù)/寫(xiě)命令選擇端,接單片機(jī)的P3.5口。〔4液晶5端為讀/寫(xiě)選擇端只向其寫(xiě)入命令和顯示數(shù)據(jù)?!?液晶6端為使能信號(hào),是操作時(shí)必須的信號(hào),接單片機(jī)的P3.4口。1602字符型LCD與單片機(jī)的連接圖如圖3.6所示。圖3.61602字符型LCD與單片機(jī)的連接1602字符型LCD簡(jiǎn)介本設(shè)計(jì)采用1602字符型LCD,可顯示兩行,每行16個(gè)字符,不能顯示漢字,內(nèi)置含128個(gè)字符的ASCII字符集字庫(kù),只有并行接口,無(wú)串行接口。這種1602字符型LCD通常有14條引腳線或16條引腳線的LCD,多出來(lái)的2條線是背光電源線。字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LCD,目前常用16×1,16×2,20×2和40×2行等的模塊。1602字符型LCD的主要技術(shù)參數(shù)為:〔1顯示容量:16×2個(gè)字符;〔2芯片工作電壓:4.5~5.5V;〔3工作電流2mA<5.0V>不包括背光電流;〔4模塊最佳工作電壓:5V;〔5字符尺寸:2.95×4.35<W×H>mm;〔6帶有英文和日文字庫(kù),使用方便;1602字符型LCD的基本操作時(shí)序:讀狀態(tài)輸入:RS=L,R/W=H,E=H輸出:D0~D7=狀態(tài)字讀數(shù)據(jù)輸入:RS=H,R/W=H,E=H輸出:無(wú)寫(xiě)指令輸入:RS=L,R/W=L,D0~D7=指令碼,E=高脈沖輸出:D0~D7=數(shù)據(jù)寫(xiě)指令輸入:RS=H,R/W=L,D0~D7=數(shù)據(jù),E=高脈沖輸出:無(wú)1602字符型LCD的RAM地址映射圖:液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符。LCD16字×2行000102030405060708090A0B0C0D0E0F…27404142434445464748494A4B4C4D4E4F…67圖3.71602內(nèi)部RAM地址映射圖當(dāng)向圖中的00~0F、40~4F地址中任一處寫(xiě)入顯示數(shù)據(jù)時(shí),液晶都可立即顯示出來(lái),當(dāng)寫(xiě)入到10~27或50~67地址處時(shí),必須通過(guò)移屏指令將它們移入可顯示區(qū)域方可顯示正常。1602字符型LCD的狀態(tài)字說(shuō)明如表3.4所示。表3.4狀態(tài)字說(shuō)明STA7D7STA6D6STA5D5STA4D4STA3D3STA2D2STA1D1STA0D0STA0~STA6當(dāng)前地址指針的數(shù)值STA7讀/寫(xiě)操作使能1—禁止;1—允許原則上沒(méi)次對(duì)控制器進(jìn)行讀/寫(xiě)操作之前,都必須進(jìn)行讀/寫(xiě)檢測(cè),確保STA7為0。實(shí)際上由于單片機(jī)的操作速度慢于液晶控制器的反應(yīng)速度,因此可以不進(jìn)行讀/寫(xiě)檢測(cè),或只進(jìn)行簡(jiǎn)短延時(shí)即可。1602字符型LCD的數(shù)據(jù)指針設(shè)置:控制器內(nèi)部設(shè)有一個(gè)數(shù)據(jù)地址指針,用戶可以通過(guò)它們?cè)L問(wèn)內(nèi)部的全部80B的RAM。數(shù)據(jù)指針設(shè)置如表3.5所示。表3.5數(shù)據(jù)指針設(shè)置指令碼功能80H+地址碼〔0H~27H,40H~67H設(shè)置數(shù)據(jù)地址指針1602字符型LCD的其他設(shè)置如表3.6所示。表3.6其他設(shè)置指令碼功能01H顯示清屏:1.數(shù)據(jù)指針清02.所有顯示清002H顯示回車:數(shù)據(jù)指針清01602字符型LCD的初始化設(shè)置:〔1顯示模式設(shè)置顯示模式設(shè)置如表3.7所示。表3.7初始化設(shè)置的顯示模式設(shè)置指令碼功能00111000設(shè)置16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù)接口〔2顯示開(kāi)/關(guān)以及光標(biāo)設(shè)置顯示開(kāi)/關(guān)以及光標(biāo)設(shè)置如表3.8所示。表3.8初始化設(shè)置的顯示開(kāi)/關(guān)以及光標(biāo)設(shè)置指令碼功能00001DCBD=1開(kāi)顯示;D=0關(guān)顯示C=1顯示光標(biāo);C=0不顯示光標(biāo)B=1光標(biāo)閃爍;B=0光標(biāo)不顯示0000001NSN=1當(dāng)讀或?qū)懸粋€(gè)字符后地址指針加1,且光標(biāo)加1N=0當(dāng)讀或?qū)懸粋€(gè)字符后地址指針減1,且光標(biāo)減1S=1當(dāng)寫(xiě)一個(gè)字符時(shí),整屏顯示右移N=1或左移N=0,已得到光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果S=0當(dāng)寫(xiě)一個(gè)字符時(shí),整屏顯示不移動(dòng)00010000光標(biāo)左移00010100光標(biāo)右移00011000整屏左移,同時(shí)光標(biāo)跟隨移動(dòng)00011100整屏右移,同時(shí)光標(biāo)跟隨移動(dòng)1602字符型LCD的寫(xiě)操作時(shí)序:〔1通過(guò)RS確定是寫(xiě)數(shù)據(jù)還是寫(xiě)命令。寫(xiě)命令包括使液晶的光標(biāo)顯示/不顯示、光標(biāo)閃爍/不閃爍、需/不需要移屏、在液晶的什么位置顯示等等。寫(xiě)數(shù)據(jù)時(shí)指要顯示什么內(nèi)容。〔2讀/寫(xiě)控制端設(shè)置為寫(xiě)模式,即低電平?!?將數(shù)據(jù)或命令送達(dá)數(shù)據(jù)線上。〔4給E一個(gè)高脈沖將數(shù)據(jù)送入液晶控制器,完成寫(xiě)操作。讀操作時(shí)序、寫(xiě)操作時(shí)序分別如圖3.8、3.9所示。圖3.8讀操作時(shí)序圖3.9寫(xiě)操作時(shí)序3.4電源電路線性電源一般用在小電流或都是壓降小的地方。線性電源就像一個(gè)電阻和負(fù)阻串聯(lián)一樣,線性電源的功耗與負(fù)載功耗是正比關(guān)系,負(fù)載功率越高,電源的功耗也就越高,并且,線性電源兩端的壓差越大,損耗越高。優(yōu)點(diǎn)是可調(diào)范圍大。開(kāi)關(guān)電源是采用開(kāi)關(guān)形式,解決了線性電源的功耗大的缺點(diǎn),但是可調(diào)范圍窄。穩(wěn)壓塊的電源選擇很重要,輸入電壓的范圍,不能大也不能小。大了,如+35V就會(huì)燒管子,因?yàn)?8XX里面也是晶體管做的,有耐壓要求;小了,如7805輸入6V輸出不了5V,因?yàn)槔锩娴碾娐氛9ぷ餍枰欢ǖ膲航?。輸出電流主要是不能太大。里面的晶體管也就最大輸出1A,負(fù)載過(guò)大,要求的電流超過(guò)了這個(gè)最大值肯定不行。另外就是功耗的計(jì)算。簡(jiǎn)單算來(lái),功耗計(jì)算=〔輸入電壓-輸出電壓×輸出電流。功耗也不能超過(guò)指標(biāo)的要求,大了要加散熱器的,并且要留余量的。如果非得要簡(jiǎn)單點(diǎn)的電路不用DC—DC的話,就選個(gè)耐壓高的三極管做個(gè)線性電源的了;其實(shí),使用小功率的DC—DC模塊挺方便的,封裝也有很小的,發(fā)熱小,輸入電壓范圍寬。電源電路如圖3.10所示。圖3.10電源電路4軟件設(shè)計(jì)在進(jìn)行微機(jī)控制系統(tǒng)設(shè)計(jì)時(shí),除了系統(tǒng)硬件設(shè)計(jì)外,大量的工作就是如何根據(jù)每個(gè)生產(chǎn)對(duì)象的實(shí)際需要設(shè)計(jì)應(yīng)用程序。因此,軟件設(shè)計(jì)在微機(jī)控制系統(tǒng)設(shè)計(jì)中占重要地位。在單片機(jī)控制系統(tǒng)中,大體上可分為數(shù)據(jù)處理、過(guò)程控制兩個(gè)基本類型。數(shù)據(jù)處理包括:數(shù)據(jù)的采集、數(shù)字濾波等。過(guò)程控制程序主要是使單片機(jī)按一定的方法進(jìn)行計(jì)算,然后再輸出,以便控制實(shí)現(xiàn)想要的結(jié)果。為了完成上述任務(wù),在進(jìn)行軟件設(shè)計(jì)時(shí),通常把整個(gè)過(guò)程分成若干個(gè)部分,每一部分叫做一個(gè)模塊。所謂"模塊",實(shí)質(zhì)上就是所完成一定功能,相對(duì)獨(dú)立的程序段,這種程序設(shè)計(jì)方法叫模塊程序設(shè)計(jì)法[12]。模塊程序設(shè)計(jì)法的主要優(yōu)點(diǎn)是:?jiǎn)蝹€(gè)模塊比起一個(gè)完整的程序易編寫(xiě)及調(diào)試;模塊可以共存,一個(gè)模塊可以被多個(gè)任務(wù)在不同條件下調(diào)用;模塊程序允許設(shè)計(jì)者分割任務(wù)和利用已有程序,為設(shè)計(jì)者提供方便。本系統(tǒng)軟件采用模塊化結(jié)構(gòu),由主程序﹑DS12C887子程序、LCD1602子程序程序構(gòu)成[12]。4.1主程序說(shuō)明及流程圖在這個(gè)設(shè)計(jì)中,AT89S52主要功能是存儲(chǔ)程序、根據(jù)程序的內(nèi)容對(duì)各個(gè)端口進(jìn)行判斷并做出相應(yīng)的處理;DS12C887主要的功能是控制年、月、日、時(shí)、分、秒的顯示效果;LCD1602主要的功能是將所要顯示的顯示出來(lái)。主程序主要實(shí)現(xiàn)了從DS12C887各時(shí)間單元中讀出數(shù)據(jù)并送到LCD1602中顯示的功能,同時(shí)檢測(cè)有沒(méi)有按鍵按下,如果有鍵被按下,則執(zhí)行按鍵處理子程序。首先進(jìn)行DS12C887時(shí)鐘芯片和LCD1602的初始化函數(shù),然后進(jìn)行按鍵掃描,不斷地檢測(cè)按鍵是否按下,讀取DS12C887時(shí)鐘芯片的數(shù)據(jù),并且送到液晶顯示器顯示;當(dāng)數(shù)據(jù)發(fā)生變化時(shí)候,重新進(jìn)行掃描寫(xiě)入。主程序流程圖如圖4.1所示。圖4.1主程序流程圖4.2DS12C887說(shuō)明及流程圖進(jìn)入主程序后,DS12C887首先進(jìn)行初始化設(shè)置,若串行口有數(shù)據(jù),最后則調(diào)用函數(shù)從日歷時(shí)鐘芯片獲取日歷時(shí)鐘信息,調(diào)用顯示函數(shù)顯示日歷時(shí)鐘信息顯示出來(lái),重復(fù)進(jìn)行。這部分包括DS12C887某個(gè)單元寫(xiě)、讀DS12C887某個(gè)單元的內(nèi)容和DS12C887設(shè)定時(shí)間。DS12C887的流程圖如圖4.2所示。開(kāi)始開(kāi)始DS12C887初始化調(diào)用函數(shù)獲取時(shí)鐘信息送數(shù)據(jù)顯示圖4.2DS12C887的流程圖4.31602說(shuō)明及流程圖顯示主要是通過(guò)從芯片中讀入程序,分別對(duì)秒、分、時(shí)、日、月、年進(jìn)行顯示,并且通過(guò)鍵盤的操作,對(duì)時(shí)間進(jìn)行加減操作,使時(shí)間更新顯示。進(jìn)入主函數(shù)后,執(zhí)行完1602LCD的初始化函數(shù),然后用write_com<0x80>指令,命令先將數(shù)據(jù)指針定位在第一行第一個(gè)字處,然后寫(xiě)入第一行要顯示的數(shù)據(jù),在每個(gè)字之間簡(jiǎn)短的延時(shí);在第二行重新定位數(shù)據(jù)指針write_com<0x80+0x40>,將數(shù)據(jù)指針定位在第二行,然后再將第二行所要顯示的數(shù)據(jù)寫(xiě)入,繼而顯示。1602LCD的寫(xiě)命令操作和讀數(shù)據(jù)操作分別用兩個(gè)獨(dú)立的函數(shù)來(lái)完成,函數(shù)內(nèi)部唯一的區(qū)別就是液晶數(shù)據(jù)命令選擇端的電平[13]。寫(xiě)命令函數(shù)解釋如下:voidwrite_com<ucharcom>//向液晶寫(xiě)入命令{rs=0;//選擇寫(xiě)命令模式lcden=0;//使能端置零P0=com;//將要寫(xiě)的命令送到數(shù)據(jù)總線上delay<3>;//延時(shí),以待數(shù)據(jù)穩(wěn)定lcden=1;//給使能端一個(gè)高脈沖delay<3>;//延時(shí)lcden=0;//將使能端置零,以完成高脈沖}讀數(shù)據(jù)函數(shù)操作如下:voidwrite_date<uchardate>//向液晶寫(xiě)入數(shù)據(jù){rs=1;//選擇寫(xiě)數(shù)據(jù)模式lcden=0;//使能端置零P0=date;//將要寫(xiě)的數(shù)據(jù)送到數(shù)據(jù)總線上delay<3>;//延時(shí),以待數(shù)據(jù)穩(wěn)定lcden=1;//給使能端一個(gè)高脈沖delay<3>;//延時(shí)lcden=0;//將使能端置零,以完成高脈沖}1602LCD的初始化如下:write_com<0x38>;//1602液晶初始化write_com<0x0c>;//開(kāi)光標(biāo)閃爍:0x0f,關(guān)光標(biāo)閃爍:0x0cwrite_com<0x06>;//寫(xiě)一個(gè)字符后,地址指針自動(dòng)加1write_com<0x01>;//顯示清0,數(shù)據(jù)指針清01602LCD的流程圖如圖4.3所示。開(kāi)始開(kāi)始1602初始化1602初始化讀取數(shù)據(jù)第一行顯示讀取數(shù)據(jù)第一行顯示讀取數(shù)據(jù)第二行顯示讀取數(shù)據(jù)第二行顯示結(jié)束結(jié)束圖4.31602LCD的流程圖4.4鍵盤說(shuō)明及流程圖當(dāng)功能鍵按下時(shí),秒位置閃爍。每次按下功能鍵按下時(shí),分別在分、時(shí)、星期、日、月、年處閃爍。當(dāng)功能鍵再次按下時(shí),加一或減一鍵有效并在相應(yīng)位置加一或減一。如選定秒位,按下增大鍵,調(diào)整顯示位秒的增加,當(dāng)秒增加至滿60后,自動(dòng)清零,同時(shí)調(diào)節(jié)一次送至下一位顯示,顯示位置重新回到調(diào)節(jié)處;當(dāng)按下減小鍵時(shí),調(diào)整顯示位秒的減小,當(dāng)秒減至0后,自動(dòng)跳轉(zhuǎn)為59,同時(shí)調(diào)節(jié)一次送至下一位顯示,顯示位置重新回到調(diào)節(jié)處;年月日時(shí)分的調(diào)節(jié)原理相同。鍵盤加一減一流程圖如圖4.4所示。開(kāi)始光標(biāo)定位秒單元寫(xiě)入秒Miao=59=Miao=0=Miao=-1?=Miao=60?=Miao-1=Miao+1=減小鍵S3按下增大鍵S2按下Y功能鍵S1按下?開(kāi)始光標(biāo)定位秒單元寫(xiě)入秒Miao=59=Miao=0=Miao=-1?=Miao=60?=Miao-1=Miao+1=減小鍵S3按下增大鍵S2按下Y功能鍵S1按下?圖4.4鍵盤加一減一流程圖5系統(tǒng)調(diào)試系統(tǒng)調(diào)試共分為兩大部分:一個(gè)是軟件仿真,另一個(gè)是硬件仿真。其中軟件仿真通過(guò)KeiluVision2實(shí)現(xiàn);硬件部分先在Protel99se上設(shè)計(jì)出硬件電路圖,畫(huà)出PCB圖;然后再制作出實(shí)物。5.1Protel99se軟件介紹5.1.1Protel99se的系統(tǒng)組成按照系統(tǒng)功能來(lái)劃分,Protel99se主要包含以下倆大部分和6個(gè)功能模塊[14]。電路工程設(shè)計(jì)部分:〔1電路原理設(shè)計(jì)部分〔AdvancedSchematic99:電路原理圖設(shè)計(jì)部分包括電路圖編輯器〔簡(jiǎn)稱SCH編輯器、電路圖零件庫(kù)編輯器〔簡(jiǎn)稱Schlib編輯器和各種文本編輯器。本系統(tǒng)的主要功能是:繪制、修改和編輯電路原理圖;更新和修改電路圖零件庫(kù);查看和編輯有關(guān)電路圖和零件庫(kù)的各種報(bào)表。
〔2印刷電路板設(shè)計(jì)系統(tǒng)〔AdvancedPCB99:印刷電路板設(shè)計(jì)系統(tǒng)包括印刷電路板編輯器〔簡(jiǎn)稱PCB編輯器、零件封裝編輯器〔簡(jiǎn)稱PCBLib編輯器和電路板組件管理器。本系統(tǒng)的主要功能是:繪制、修改和編輯電路板;更新和修改零件封裝;管理電路板組件。
〔3自動(dòng)布線系統(tǒng)〔AdvancedRoute99:本系統(tǒng)包含一個(gè)基于形狀〔Shape-based的無(wú)柵格自動(dòng)布線器,用于印刷電路板的自動(dòng)布線,以實(shí)現(xiàn)PCB設(shè)計(jì)的自動(dòng)化。電路仿真與PLD部分:〔1電路模擬仿真系統(tǒng)〔AdvancedSIM99:電路模擬仿真系統(tǒng)包含一個(gè)數(shù)字/模擬信號(hào)仿真器,可提供連續(xù)的數(shù)字信號(hào)和模擬信號(hào),以便對(duì)電路原理圖進(jìn)行信號(hào)模擬仿真,從而驗(yàn)證其正確性和可行性。〔2可編程邏輯設(shè)計(jì)系統(tǒng)〔AdvancedPLD99:可編程邏輯設(shè)計(jì)系統(tǒng)包含一個(gè)有語(yǔ)法功能的文本編輯器和一個(gè)波形編輯器〔Waveform。本系統(tǒng)的主要功能是;對(duì)邏輯電路進(jìn)行分析、綜合;觀察信號(hào)的波形。利用PLD系統(tǒng)可以最大限度的精簡(jiǎn)邏輯部件,使數(shù)字電路設(shè)計(jì)達(dá)到最簡(jiǎn)化。〔3高級(jí)信號(hào)完整性分析系統(tǒng)〔AdvancedIntegrity99:信號(hào)完整性分析系統(tǒng)提供了一個(gè)精確的信號(hào)完整性模擬器,可用來(lái)分析PCB設(shè)計(jì)、檢查電路設(shè)計(jì)參數(shù)、實(shí)驗(yàn)超調(diào)量、阻抗和信號(hào)諧波要求等[15]。5.1.2Protel99se的功能特性〔1開(kāi)放式集成化的設(shè)計(jì)管理體系。〔2超強(qiáng)功能的、修改與編輯功能?!?強(qiáng)大的設(shè)計(jì)自動(dòng)化功能。5.2系統(tǒng)調(diào)試過(guò)程中出現(xiàn)的問(wèn)題及解決方法〔1在硬件方面,由于焊接技術(shù)不到位,致使有些管腳出現(xiàn)虛焊現(xiàn)象,后來(lái)通過(guò)數(shù)字萬(wàn)用表對(duì)所有管腳進(jìn)行了檢查,使得這一錯(cuò)誤得到解決。〔2軟件方面,由于對(duì)C語(yǔ)言程序的認(rèn)知不深入,在編寫(xiě)程序時(shí),出現(xiàn)了有些管腳未對(duì)應(yīng)而出現(xiàn)時(shí)間亂的現(xiàn)象;同時(shí)在程序中還對(duì)1602進(jìn)行顯示程序時(shí)候由于初始化時(shí)間未足夠,導(dǎo)致1602不能正常顯示。5.3調(diào)試結(jié)果顯示調(diào)試結(jié)果如圖5.1所示。圖5.1調(diào)試結(jié)果時(shí)間顯示結(jié)束語(yǔ)本系統(tǒng)是以單片機(jī)AT89S52芯片為核心部件,實(shí)現(xiàn)了時(shí)鐘的功能。此次在軟件上是花費(fèi)時(shí)間最多的,由于C語(yǔ)言是大二時(shí)候在??茖W(xué)習(xí)的,很多的知識(shí)早已經(jīng)遺忘并且在原來(lái)的學(xué)習(xí)中,這部分知道掌握的并不是特別好,很多的內(nèi)容理解都是翻看原來(lái)的教科書(shū)再結(jié)合自己圖書(shū)館的書(shū)的基礎(chǔ)上理解來(lái)的,平時(shí)我們上網(wǎng)找資料,上圖書(shū)館,盡可能的了解有關(guān)于C語(yǔ)言這方面的知識(shí)。通過(guò)這次課程設(shè)計(jì),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問(wèn)題全面系統(tǒng)的鍛煉。使我初步了解了C語(yǔ)言的原理,并且在硬件方面,對(duì)原來(lái)所學(xué)的單片機(jī)上的很多內(nèi)容進(jìn)行了溫故。1.經(jīng)過(guò)這次畢業(yè)設(shè)計(jì),它讓我接觸更多平時(shí)沒(méi)有接觸過(guò)的科學(xué)儀器設(shè)備、元器件以及獲得相關(guān)的儀器調(diào)試經(jīng)驗(yàn),同時(shí)我也發(fā)現(xiàn)自己在這方面很多不足之處。體會(huì)到理論知識(shí)對(duì)實(shí)踐有很大的指導(dǎo)作用,它讓我知道,只有在正確的理論指引下,才能設(shè)計(jì)出合乎實(shí)際需要的硬件電路。2.學(xué)會(huì)了高效率的查閱資料、運(yùn)用工具書(shū)、利用網(wǎng)絡(luò)查找資料。我發(fā)現(xiàn),在我們所使用的書(shū)籍上有一些知識(shí)在實(shí)際應(yīng)用中其實(shí)并不是十分理想,各種參數(shù)都需要自己去調(diào)偶而還會(huì)遇到錯(cuò)誤的資料現(xiàn)象,這就要求我們應(yīng)更加注重實(shí)踐環(huán)節(jié)。3.可以這樣說(shuō)畢業(yè)設(shè)計(jì)是對(duì)大學(xué)四年所學(xué)知識(shí)的一次運(yùn)用和檢閱,同時(shí)對(duì)自學(xué)能力提出很高的要求,所以平時(shí)的學(xué)習(xí)離開(kāi)思考,就是嚴(yán)重的錯(cuò)誤,我們學(xué)習(xí)不應(yīng)該有偏科現(xiàn)象,各方面的知識(shí)都應(yīng)該要接觸,這樣做才能為畢業(yè)設(shè)計(jì)打下基石。致謝畢業(yè)設(shè)計(jì)是對(duì)我大學(xué)四年所學(xué)知識(shí)的一次檢驗(yàn),它不單單是一次畢業(yè)設(shè)計(jì),更是一次重要的學(xué)習(xí)過(guò)程。畢業(yè)設(shè)計(jì)很可能是我們?nèi)松?dāng)中最后一次課程作業(yè)了,因此需要認(rèn)真對(duì)待畢業(yè)設(shè)計(jì)中的每一個(gè)字,每一個(gè)細(xì)節(jié)。在本次畢業(yè)設(shè)計(jì)中,我得到了指導(dǎo)老師徐老師的細(xì)心指導(dǎo)。老師嚴(yán)謹(jǐn)?shù)淖黠L(fēng),高尚的品德和精深的學(xué)識(shí)令人欽佩,讓我獲益匪淺。他自始至終關(guān)心和督促畢業(yè)設(shè)計(jì),幫助解決畢業(yè)設(shè)計(jì)中遇到的許多問(wèn)題并傳授分析問(wèn)題和解決問(wèn)題的方法,并指出了研究上的正確道路。在此感謝徐老師的指導(dǎo)和幫助,并致以最誠(chéng)摯的謝意!同時(shí)在寫(xiě)論文的時(shí)候,他提出了許多寶貴的意見(jiàn)。感謝我的父母對(duì)我的養(yǎng)育之恩及所有家人無(wú)私的支持與鼓勵(lì),是他們給了我強(qiáng)大的精神動(dòng)力與物質(zhì)后盾,使我能夠全力以赴地完成學(xué)業(yè)。謹(jǐn)以此機(jī)會(huì)向所有給予我關(guān)心、支持和幫助的人們表示衷心的感謝,并向?qū)忛啽疚牡睦蠋煴硎菊\(chéng)摯的謝意。參考文獻(xiàn)[1]陳有卿,謝剛.新穎電子模塊應(yīng)用手冊(cè)[M].北京:機(jī)械工業(yè)出版社,2003.[2]林國(guó)清.國(guó)外電子元器件[J].電子學(xué)報(bào),2003,12〔8.[3]何立民.單片機(jī)系統(tǒng)設(shè)計(jì)[M].北京:航空航天大學(xué)出版社,1990.[4]沙占友等.單片機(jī)外圍電路設(shè)計(jì)[M].北京:電子工業(yè)出版社,2003.[5]王遠(yuǎn).模擬電子技術(shù)[M].北京:機(jī)械工業(yè)出版社,2000.[6]李廣弟.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué)出版社,2001.[7]周明德等.嵌入式對(duì)話[J].周立功單片機(jī)發(fā)展,2002,〔5.[8]赫建國(guó).單片機(jī)在電子電路設(shè)計(jì)中的應(yīng)用[M].北京:清華大學(xué)出版社,2006.[9]馮博琴.微型計(jì)算機(jī)原理與接口技術(shù)[M].北京:清華大學(xué)出版社,2002.[10]謝自美.電子線路設(shè)計(jì)實(shí)驗(yàn)測(cè)試[M].北京:華中科技大學(xué)出版社,2006.[11]周淑閣.模擬電子技術(shù)[M].XX:東南大學(xué)出版社,2008.[12]譚漢強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,1999.[13]郭天祥.51單片機(jī)C語(yǔ)言教程[M].北京:電子工業(yè)出版社,2000.[14]張玉蓮.電子CAD<Protel99SE>實(shí)訓(xùn)指導(dǎo)書(shū)[M].XX:XX電子科技大學(xué)出版社,2007.[15]劉華東.電子CAD技術(shù)—Protel電路設(shè)計(jì)[M].北京:清華大學(xué)出版社,2007.附錄A原理圖附錄B程序清單#include<reg52.h>#include<define.h>voiddelay<uintz>//延時(shí)函數(shù){ uintx,y; for<x=z;x>0;x--> for<y=110;y>0;y-->;}voiddi<>//蜂鳴器報(bào)警聲音{ beep=0; delay<100>; beep=1;}voidwrite_com<ucharcom>{//寫(xiě)液晶命令函數(shù) rs=0; lcden=0; P0=com; delay<3>; lcden=1; delay<3>; lcden=0; }voidwrite_date<uchardate>{//寫(xiě)液晶數(shù)據(jù)函數(shù)rs=1; lcden=0; P0=date; delay<3>; lcden=1; delay<3>; lcden=0; }voidinit<>{//初始化函數(shù) ucharnum; EA=1;//打開(kāi)總中斷 EX1=1;//開(kāi)外部中斷1 IT1=1;//設(shè)置負(fù)跳變沿觸發(fā)中斷 flag1=0;//變量初始化 t0_num=0; s1num=0; week=1;lcden=0; //rd=0;/*以下幾行在首次設(shè)置DS12C887時(shí)使用,以后不必再寫(xiě)入 write_ds<0x0A,0x20>;//打開(kāi)振蕩器 write_ds<0x0B,0x26>;//設(shè)置24小時(shí)模式,數(shù)據(jù)二進(jìn)制格式 //開(kāi)啟鬧鈴中斷 set_time<>;//設(shè)置上電默認(rèn)時(shí)間-----------------------------------------------------*/ write_com<0x38>;//1602液晶初始化 write_com<0x0c>; write_com<0x06>; write_com<0x01>; write_com<0x80>; for<num=0;num<15;num++>//寫(xiě)入液晶固定部分顯示 { write_date<table[num]>; delay<1>; }write_com<0x80+0x40>; for<num=0;num<11;num++>{ write_date<table1[num]>; delay<1>; }}voidwrite_sfm<ucharadd,chardate>{//1602液晶刷新時(shí)分秒函數(shù)4為時(shí),7為分,10為秒 charshi,ge; shi=date/10; ge=date%10; write_com<0x80+0x40+add>; write_date<0x30+shi>; write_date<0x30+ge>;}voidwrite_nyr<ucharadd,chardate>{//1602液晶刷新年月日函數(shù)3為年,6為分,9為秒 charshi,ge; shi=date/10; ge=date%10; write_com<0x80+add>; write_date<0x30+shi>; write_date<0x30+ge>;}voidwrite_week<charwe>{//寫(xiě)液晶星期顯示函數(shù) write_com<0x80+12>; switch<we> { case1: write_date<'M'>;delay<5>; write_date<'O'>;delay<5>; write_date<'N'>; break; case2: write_date<'T'>;delay<5>; write_date<'U'>;delay<5>; write_date<'E'>; break; case3: write_date<'W'>;delay<5>; write_date<'E'>;delay<5>; write_date<'D'>; break; case4: write_date<'T'>;delay<5>; write_date<'H'>;delay<5>; write_date<'U'>; break; case5: write_date<'F'>;delay<5>; write_date<'R'>;delay<5>; write_date<'I'>; break; case6: write_date<'S'>;delay<5>; write_date<'A'>;delay<5>; write_date<'T'>; break; case7: write_date<'S'>;delay<5>; write_date<'U'>;delay<5>; write_date<'N'>; break; }}voidkeyscan<>{ if<flag_ri==1> {//這里用來(lái)取消鬧鐘報(bào)警,任一鍵取消報(bào)警 if<<s1==0>||<s2==0>||<s3==0>||<s4==0>> { delay<5>; if<<s1==0>||<s2==0>||<s3==0>||<s4==0>> { while<!<s1&&s2&&s3&&s4>>;di<>; flag_ri=0;//清除報(bào)警標(biāo)志 } } } if<s1==0>//檢測(cè)S1 { delay<5>; if<s1==0> { s1num++;//記錄按下次數(shù) if<flag1==1> if<s1num==4> s1num=1; flag=1; while<!s1>;di<>; switch<s1num> {//光標(biāo)閃爍點(diǎn)定位 case1:write_com<0x80+0x40+10>; write_com<0x0f>; break; case2:write_com<0x80+0x40+7>; break; case3:write_com<0x80+0x40+4>; break; case4:write_com<0x80+12>; break; case5:write_com<0x80+9>; break; case6:write_com<0x80+6>; break; case7:write_com<0x80+3>; break; case8:s1num=0; write_com<0x0c>; flag=0; write_ds<0,miao>; write_ds<2,fen>; write_ds<4,shi>; write_ds<6,week>; write_ds<7,day>; write_ds<8,month>; write_ds<9,year>; break; } } } if<s1num!=0>//只有當(dāng)S1按下后,才檢測(cè)S2和S3 { if<s2==0> { delay<1>; if<s2==0> { while<!s2>;di<>; switch<s1num> {//根據(jù)功能鍵次數(shù)調(diào)節(jié)相應(yīng)數(shù)值 case1: miao++; if<miao==60> miao=0; write_sfm<10,miao>; write_com<0x80+0x40+10>; break; case2: fen++; if<fen==60> fen=0; write_sfm<7,fen>; write_com<0x80+0x40+7>; break; case3: shi++; if<shi==24> shi=0; write_sfm<4,shi>; write_com<0x80+0x40+4>; break; case4: week++; if<week==8> week=1; write_week<week>; write_com<0x80+12>; break; case5: day++; if<day==32> day=1; write_nyr<9,day>; write_com<0x80+9>; break; case6: month++; if<month==13> month=1; write_nyr<6,month>; write_com<0x80+6>;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026春招:徐工集團(tuán)筆試題及答案
- 2026年橋梁工程造價(jià)預(yù)算的制定與控制
- 貸款顧問(wèn)培訓(xùn)課件
- 貨運(yùn)安全宣傳教育培訓(xùn)課件
- 護(hù)理教學(xué)新方法研究
- 互聯(lián)網(wǎng)醫(yī)療平臺(tái)發(fā)展趨勢(shì)
- 護(hù)理人員職業(yè)發(fā)展規(guī)劃與培訓(xùn)實(shí)踐
- 護(hù)理專業(yè)英語(yǔ)閱讀與翻譯能力提升
- 2026年河北旅游職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試參考題庫(kù)有答案解析
- 醫(yī)療機(jī)構(gòu)品牌戰(zhàn)略規(guī)劃
- 廣東省深圳市福田區(qū)五校2024-2025學(xué)年九年級(jí)上學(xué)期期末(一模)化學(xué)試題(含答案)
- 承包商安全考核實(shí)施細(xì)則
- 2026年湖南財(cái)經(jīng)工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)及答案詳解1套
- 西南名校聯(lián)盟2026屆“3+3+3”高考備考診斷性聯(lián)考(一)英語(yǔ)試卷
- 干旱災(zāi)害課件
- PCOS卵泡微環(huán)境的干細(xì)胞重塑策略
- 《馬原》期末復(fù)習(xí)資料
- 保乳術(shù)后放療劑量分割方案優(yōu)化
- 雨課堂學(xué)堂在線學(xué)堂云高等藥理學(xué) 中國(guó)藥科單元測(cè)試考核答案
- 2026-2031中國(guó)戶外用品行業(yè)現(xiàn)狀分析及前景預(yù)測(cè)報(bào)告
- 矛盾糾紛調(diào)解課件
評(píng)論
0/150
提交評(píng)論