畢業(yè)設(shè)計(jì)論文基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)論文基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)論文基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)論文基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)論文基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、畢業(yè)設(shè)計(jì)(論文)基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)基于單片機(jī)數(shù)字時(shí)鐘的設(shè)計(jì)摘要:本文介紹了多功能數(shù)字時(shí)鐘的系統(tǒng)設(shè)計(jì)。系統(tǒng)具有時(shí)間設(shè)置及顯示、鬧鐘等功能。系統(tǒng)以 at89s52為核心,主要進(jìn)行基于at89s52低功耗mcu的字符型數(shù)字時(shí)鐘及其系統(tǒng)的研究。系統(tǒng)帶有液晶顯示器,配合按鍵提供友好的用戶界面,操作簡(jiǎn)單,該數(shù)字時(shí)鐘能長(zhǎng)期、連續(xù)、可靠、穩(wěn)定的工作;同時(shí)還具有體積小、功耗低等特點(diǎn),便于攜帶,使用方便。系統(tǒng)軟件設(shè)計(jì)包括單片機(jī)編程。單片機(jī)軟件編程主要實(shí)現(xiàn)按鍵、液晶顯示、時(shí)鐘、計(jì)時(shí)、鬧鐘等模塊功能。關(guān)鍵詞:數(shù)字時(shí)鐘;單片機(jī);液晶顯示器digital clock based on single-chip mic

2、rocomputers designabstract: this article introduced the multi-purpose digital clock system design. the system has function and so on time establishment and demon stration, alarm clock,. the system take at89s52 as a core, mainly carries on based on at89s52 the low power loss mcu character numeral clo

3、ck and its the system research. the system has the liquid-crystal display, coordinates the pressed key to provide the friendly user contact surface, the operation simple, this digital clock can long-term, be continual, reliably, the stable work; simultaneously also has the volume slightly, the power

4、 loss is low and so on the characteristic, is advantageous for carries, easy too perate. system software design including monolithic integrated circuit programming. the monolithic integrated circuit software programming mainly realizes module function and so on the pressed key, liquid crystal displa

5、y, clock, time, alarm clock.key words: digital clock;single-chip microcomputer; lcd目 錄1 引言11.1課程設(shè)計(jì)要求11.2 課程設(shè)計(jì)目的22 單片機(jī)發(fā)展歷史32.1三大階段32.2 單片機(jī)的發(fā)展趨勢(shì)33 單片機(jī)的應(yīng)用63.1單片機(jī)的應(yīng)用分類64 數(shù)字時(shí)鐘的構(gòu)成84.1 數(shù)字時(shí)鐘的構(gòu)成84.2 方案選擇與相關(guān)技術(shù)84.3 at89s5284.3.1 引腳結(jié)構(gòu)及各端口介紹94.3.2 中斷114.3.3 單片機(jī)存儲(chǔ)器結(jié)構(gòu)134.3.4 單片機(jī)復(fù)位電路與時(shí)鐘電路134.3.5 看門狗定時(shí)器144.4 ds1302的

6、原理及應(yīng)用154.4.1 ds1302的結(jié)構(gòu)及工作原理154.4.2 引腳功能及結(jié)構(gòu)164.4.3 ds1302的控制字節(jié)174.4.4 數(shù)據(jù)輸入輸出(i/o)174.4.5 ds1302的寄存器184.5 lcd模塊的原理及應(yīng)用194.5.1 lcd結(jié)構(gòu)及工作原理195 電路設(shè)計(jì)215.1 系統(tǒng)硬件設(shè)計(jì)215.1.1 結(jié)構(gòu)框圖215.1.2 工作原理225.1.3 中斷方式應(yīng)注意的問題225.1.4 定時(shí)準(zhǔn)確性的討論235.1.5 軟件消抖235.2 編程思路245.2.1 數(shù)字鐘的操作24總結(jié)26參考文獻(xiàn)27附錄28致謝331 引言20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子

7、產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。 目前,單片機(jī)正朝著高性能和多品種方向發(fā)展的趨勢(shì)將進(jìn)一步向cmos化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面是單片機(jī)的主要發(fā)展趨勢(shì)。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。數(shù)字時(shí)鐘在單片機(jī)模塊里比較常見,數(shù)字時(shí)鐘是一種用0數(shù)

8、字電路技術(shù)實(shí)現(xiàn)時(shí)、分、秒計(jì)時(shí)的裝置,與機(jī)械式時(shí)鐘相比具有更高的準(zhǔn)確性和直觀性,且無機(jī)械裝置,具有更長(zhǎng)的使用壽命,因此得到了廣泛的使用。數(shù)字時(shí)鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí),分,秒.數(shù)字顯示的計(jì)時(shí)裝置,廣泛用于個(gè)人家庭,車站, 碼頭辦公室等公共場(chǎng)所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵?由于數(shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字時(shí)鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表, 鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、按時(shí)自動(dòng)打鈴、時(shí)間程序自動(dòng)控制、定時(shí)廣播、自動(dòng)開起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表

9、數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字時(shí)鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。1.1課程設(shè)計(jì)要求(1)掌握at89c51實(shí)驗(yàn)開發(fā)系統(tǒng)中的實(shí)驗(yàn)?zāi)K原理,畫出電路原理圖;(2)綜合運(yùn)用實(shí)驗(yàn)?zāi)K,用89s52開發(fā)設(shè)計(jì)具有一定功能的單片機(jī)控制系統(tǒng),進(jìn)行軟、硬件設(shè)計(jì)及調(diào)試。(3)寫出完整的設(shè)計(jì)任務(wù)書:課題的名稱、系統(tǒng)的功能、硬件原理圖、軟件框圖、程序清單、參考資料。(4)時(shí)間包括年,月,日,星期,時(shí),分,秒的顯示。(5)為了保證計(jì)時(shí)的穩(wěn)定及準(zhǔn)確須由晶體振蕩器提供表針時(shí)間基準(zhǔn)信號(hào)。1.2 課程設(shè)計(jì)目的(1)鞏固、加深和擴(kuò)大單片機(jī)應(yīng)用的知識(shí)面,提高綜合及靈活運(yùn)用所學(xué)知識(shí)解決工業(yè)控制的能力。(2)培養(yǎng)針對(duì)課題需要,選擇

10、和查閱有關(guān)手冊(cè)、圖表及文獻(xiàn)資料的自學(xué)能力,提高組成系統(tǒng)、編程、調(diào)試的動(dòng)手能力。(3)過對(duì)課題設(shè)計(jì)方案的分析、選擇、比較、熟悉單片機(jī)用系統(tǒng)開發(fā)、研制的過程,軟硬件設(shè)計(jì)的方法、內(nèi)容及步驟。2 單片機(jī)發(fā)展歷史 2.1三大階段單片機(jī)誕生于20世紀(jì)70年代末,經(jīng)歷了scm、mcu、soc三大階段。 (1)scm即單片微型計(jì)算機(jī)(single chip microcomputer)階段,主要是尋求最佳的單片形態(tài)嵌入式系統(tǒng)的最佳體系結(jié)構(gòu)?!皠?chuàng)新模式”獲得成功,奠定了scm與通用計(jì)算機(jī)完全不同的發(fā)展道路。在開創(chuàng)嵌入式系統(tǒng)獨(dú)立發(fā)展道路上,intel公司功不可沒。  (2)mcu即微

11、控制器(micro controller unit)階段,主要的技術(shù)發(fā)展方向是:不斷擴(kuò)展?jié)M足嵌入式應(yīng)用時(shí),對(duì)象系統(tǒng)要求的各種外圍電路與接口電路,突顯其對(duì)象的智能化控制能力。它所涉及的領(lǐng)域都與對(duì)象系統(tǒng)相關(guān),因此,發(fā)展mcu的重任不可避免地落在電氣、電子技術(shù)廠家。從這一角度來看,intel逐漸淡出mcu的發(fā)展也有其客觀因素。在發(fā)展mcu方面,最著名的廠家當(dāng)數(shù)philips公司。philips公司以其在嵌入式應(yīng)用方面的巨大優(yōu)勢(shì),將mcs-51從單片微型計(jì)算機(jī)迅速發(fā)展到微控制器。因此,當(dāng)我們回顧嵌入式系統(tǒng)發(fā)展道路時(shí),不要忘記intel和philips的歷史功績(jī)。  (3)

12、單片機(jī)是嵌入式系統(tǒng)的獨(dú)立發(fā)展之路,向mcu階段發(fā)展的重要因素,就是尋求應(yīng)用系統(tǒng)在芯片上的最大化解決;因此,專用單片機(jī)的發(fā)展自然形成了soc化趨勢(shì)。隨著微電子技術(shù)、ic設(shè)計(jì)、eda工具的發(fā)展,基于soc的單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)會(huì)有較大的發(fā)展。因此,對(duì)單片機(jī)的理解可以從單片微型計(jì)算機(jī)、單片微控制器延伸到單片應(yīng)用系統(tǒng)。  單片機(jī)作為微型計(jì)算機(jī)的一個(gè)重要分支,應(yīng)用面很廣,發(fā)展很快。自單片機(jī)誕生至今,已發(fā)展為上百種系列的近千個(gè)機(jī)種。2.2 單片機(jī)的發(fā)展趨勢(shì)目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著cmos化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展。下面

13、是單片機(jī)的主要發(fā)展趨勢(shì)。  cmos化 近年,由于chmos技術(shù)的進(jìn)步,大大地促進(jìn)了單片機(jī)的cmos化。cmos芯片除了低功耗特性之外,還具有功耗的可控性,使單片機(jī)可以工作在功耗精細(xì)管理狀態(tài)。這也是今后以80c51取代8051為標(biāo)準(zhǔn)mcu芯片的原因。因?yàn)閱纹瑱C(jī)芯片多數(shù)是采用cmos(金屬柵氧化物)半導(dǎo)體工藝生產(chǎn)。cmos電路的特點(diǎn)是低功耗、高密度、低速度、低價(jià)格。采用雙極型半導(dǎo)體工藝的ttl電路速度快,但功耗和芯片面積較大。隨著技術(shù)和工藝水平的提高,又出現(xiàn)了hmos(高密度、高速度mos)和chmos工藝。chmos和hmos工藝的結(jié)合。目前生產(chǎn)的chmos電路已達(dá)到lst

14、tl的速度,傳輸延遲時(shí)間小于2ns,它的綜合優(yōu)勢(shì)已在于ttl電路。因而,在單片機(jī)領(lǐng)域cmos正在逐漸取代ttl電路。  低功耗化 單片機(jī)的功耗已從ma級(jí),甚至1ua以下;使用電壓在36v之間,完全適應(yīng)電池工作。低功耗化的效應(yīng)不僅是功耗低,而且?guī)砹水a(chǎn)品的高可靠性、高抗干擾能力以及產(chǎn)品的便攜化。  低電壓化 幾乎所有的單片機(jī)都有wait、stop等省電運(yùn)行方式。允許使用的電壓范圍越來越寬,一般在36v范圍內(nèi)工作。低電壓供電的單片機(jī)電源下限已可達(dá)12v。目前0.8v供電的單片機(jī)已經(jīng)問世。  低噪聲與高可靠性 為提高單片機(jī)的抗電磁干擾能力,

15、使產(chǎn)品能適應(yīng)惡劣的工作環(huán)境,滿足電磁兼容性方面更高標(biāo)準(zhǔn)的要求,各單片廠家在單片機(jī)內(nèi)部電路中都采用了新的技術(shù)措施。  大容量化:以往單片機(jī)內(nèi)的rom為1kb4kb,ram為64128b。但在需要復(fù)雜控制的場(chǎng)合,該存儲(chǔ)容量是不夠的,必須進(jìn)行外接擴(kuò)充。為了適應(yīng)這種領(lǐng)域的要求,須運(yùn)用新的工藝,使片內(nèi)存儲(chǔ)器大容量化。目前,單片機(jī)內(nèi)rom最大可達(dá)64kb,ram最大為2kb。  高性能化:主要是指進(jìn)一步改進(jìn)cpu的性能,加快指令運(yùn)算的速度和提高系統(tǒng)控制的可靠性。采用精簡(jiǎn)指令集(risc)結(jié)構(gòu)和流水線技術(shù),可以大幅度提高運(yùn)行速度?,F(xiàn)指令速度最高者已達(dá)100mips(million

16、0;instruction per seconds,即兆指令每秒),并加強(qiáng)了位處理功能、中斷和定時(shí)控制功能。這類單片機(jī)的運(yùn)算速度比標(biāo)準(zhǔn)的單片機(jī)高出10倍以上。由于這類單片機(jī)有極高的指令速度,就可以用軟件模擬其i/o功能,由此引入了虛擬外設(shè)的新概念。  小容量、低價(jià)格化 與上述相反,以4位、8位機(jī)為中心的小容量、低價(jià)格化也是發(fā)展動(dòng)向之一。這類單片機(jī)的用途是把以往用數(shù)字邏輯集成電路組成的控制電路單片化,可廣泛用于家電產(chǎn)品。 外圍電路內(nèi)裝化,這也是單片機(jī)發(fā)展的主要方向。隨著集成度的不斷提高,有可能把眾多的各種處圍功能器件集成在片內(nèi)。除了一般必須具有的

17、cpu、rom、ram、定時(shí)器/計(jì)數(shù)器等以外,片內(nèi)集成的部件還有模/數(shù)轉(zhuǎn)換器、dma控制器、聲音發(fā)生器、監(jiān)視定時(shí)器、液晶顯示驅(qū)動(dòng)器、彩色電視機(jī)和錄像機(jī)用的鎖相電路等。串行擴(kuò)展技術(shù) 在很長(zhǎng)一段時(shí)間里,通用型單片機(jī)通過三總線結(jié)構(gòu)擴(kuò)展外圍器件成為單片機(jī)應(yīng)用的主流結(jié)構(gòu)。隨著低價(jià)位otp(one time programble)及各種類型片內(nèi)程序存儲(chǔ)器的發(fā)展,加之處圍接口不斷進(jìn)入片內(nèi),推動(dòng)了單片機(jī)“單片”應(yīng)用結(jié)構(gòu)的發(fā)展。特別是 i c、spi等串行總線的引入,可以使單片機(jī)的引腳設(shè)計(jì)得更少,單片機(jī)系統(tǒng)結(jié)構(gòu)更加簡(jiǎn)化及規(guī)范化。  隨著半導(dǎo)體集成工藝的

18、不斷發(fā)展,單片機(jī)的集成度將更高、體積將更小、功能將更強(qiáng)。在單片機(jī)家族中,80c51系列是其中的佼佼者,加之intel公司將其mcs 51系列中的80c51內(nèi)核使用權(quán)以專利互換或出售形式轉(zhuǎn)讓給全世界許多著名ic制造廠商,如philips、 nec、atmel、amd、華邦等,這些公司都在保持與80c51單片機(jī)兼容的基礎(chǔ)上改善了80c51的許多特性。這樣,80c51就變成有眾多制造廠商支持的、發(fā)展出上百品種的大家族,現(xiàn)統(tǒng)稱為80c51系列。80c51單片機(jī)已成為單片機(jī)發(fā)展的主流。專家認(rèn)為,雖然世界上的mcu品種繁多,功能各異,開發(fā)裝置也互不兼容,但是客觀發(fā)展表明,80c51可能

19、最終形成事實(shí)上的標(biāo)準(zhǔn)mcu芯片。3 單片機(jī)的應(yīng)用 3.1單片機(jī)的應(yīng)用分類由于單片機(jī)具有顯著的優(yōu)點(diǎn),它已成為科技領(lǐng)域的有力工具,人類生活的得力助手。它的應(yīng)用遍及各個(gè)領(lǐng)域,主要表現(xiàn)在以下幾個(gè)方面:(1) 單片機(jī)在智能儀表中的應(yīng)用 單片機(jī)廣泛地用于各種儀器儀表,使儀器儀表智能化,并可以提高測(cè)量的自動(dòng)化程度和精度,簡(jiǎn)化儀器儀表的硬件結(jié)構(gòu),提高其性能價(jià)格比。  (2)單片機(jī)在機(jī)電一體化中的應(yīng)用 機(jī)電一體化是械工業(yè)發(fā)展的方向。機(jī)電一體化產(chǎn)品是指集成機(jī)械技術(shù)、微電子技術(shù)、計(jì)算機(jī)技術(shù)于一體,具有智能化特征的機(jī)電產(chǎn)品,例如微機(jī)控制的車床、鉆床等。單片機(jī)作為產(chǎn)品中

20、的控制器,能充分發(fā)揮它的體積小、可靠性高、功能強(qiáng)等優(yōu)點(diǎn),可大大提高機(jī)器的自動(dòng)化、智能化程度。  (3) 單片機(jī)在實(shí)時(shí)控制中的應(yīng)用 單片機(jī)廣泛地用于各種實(shí)時(shí)控制系統(tǒng)中。例如,在工業(yè)測(cè)控、航空航天、尖端武器、機(jī)器人等各種實(shí)時(shí)控制系統(tǒng)中,都可以用單片機(jī)作為控制器。單片機(jī)的實(shí)時(shí)數(shù)據(jù)處理能力和控制功能,可使系統(tǒng)保持在最佳工作狀態(tài),提高系統(tǒng)的工作效率和產(chǎn)品質(zhì)量。  (4) 單片機(jī)在分布式多機(jī)系統(tǒng)中的應(yīng)用 在比較復(fù)雜的系統(tǒng)中,常采用分布式多機(jī)系統(tǒng)。多機(jī)系統(tǒng)一般由若干臺(tái)功能各異的單片機(jī)組成,各自完成特定的任務(wù),它們通過串行通信相互聯(lián)系、協(xié)調(diào)工作。單片

21、機(jī)在這種系統(tǒng)中往往作為一個(gè)終端機(jī),安裝在系統(tǒng)的某些節(jié)點(diǎn)上,對(duì)現(xiàn)場(chǎng)信息進(jìn)行實(shí)時(shí)的測(cè)量和控制。單片機(jī)的高可靠性和強(qiáng)抗干擾能力,使它可以置于惡劣環(huán)境的前端工作。  (5) 單片機(jī)在人類生活中的應(yīng)用 自從單片機(jī)誕生以后,它就步入了人類生活,如洗衣機(jī)、電冰箱、電子玩具、收錄機(jī)等家用電器配上單片機(jī)后,提高了智能化程度,增加了功能,倍受人們喜愛。單片機(jī)將使人類生活更加方便、舒適、豐富多彩。 綜合所述,單片機(jī)已成為計(jì)算機(jī)發(fā)展和應(yīng)用的一個(gè)重要方面。另一方面,單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部

22、分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。4 數(shù)字時(shí)鐘的構(gòu)成4.1 數(shù)字時(shí)鐘的構(gòu)成數(shù)字時(shí)鐘實(shí)際上是一個(gè)對(duì)標(biāo)準(zhǔn)頻率(1hz)進(jìn)行計(jì)數(shù)的計(jì)數(shù)電路.由于計(jì)數(shù)的起始時(shí)間不可能與標(biāo)準(zhǔn)時(shí)間一致,故需要在電路上加一個(gè)校時(shí)電路,同時(shí)標(biāo)準(zhǔn)的1mhz時(shí)間信號(hào)必須做到準(zhǔn)確穩(wěn)定.通常使用石英晶體振蕩器電路構(gòu)成數(shù)字時(shí)鐘. 晶體振蕩器電路 晶體振蕩器電路給數(shù)字時(shí)鐘提供一個(gè)頻率穩(wěn)定準(zhǔn)確的12mhz的方波信號(hào),可保證數(shù)字時(shí)鐘的走時(shí)準(zhǔn)確及穩(wěn)定.不管是指針式的電子鐘還是數(shù)字顯示的電子鐘都使用了晶體振蕩器電路.時(shí)間計(jì)數(shù)器電路 時(shí)間計(jì)數(shù)電路由秒個(gè)位和秒十位計(jì)數(shù)

23、器,分個(gè)位和分十位計(jì)數(shù)器電路構(gòu)成,秒個(gè)位和秒十位計(jì)數(shù)器,分個(gè)位和分十位計(jì)數(shù)器為60進(jìn)制計(jì)數(shù)器.4.2 方案選擇單片機(jī)模塊方案:方案一:基本門電路搭肩,用基本門電路來實(shí)現(xiàn)數(shù)字時(shí)鐘,電路結(jié)構(gòu)復(fù)雜,鼓掌系數(shù)大,不易調(diào)試。方案二:?jiǎn)纹瑱C(jī)編程,用單片機(jī)設(shè)計(jì)電路,由于使用軟硬件結(jié)合的方式,所以電路結(jié)構(gòu)簡(jiǎn)單,調(diào)試也相對(duì)方便。與第一種方案比較優(yōu)點(diǎn)的是非常明顯的。我們選擇了第二種方案。4.3 at89s52t89s52是一種低功耗、高性能cmos8位微控制器,具有8k 在系統(tǒng)可編程flash 存儲(chǔ)器。使用atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完全兼容。片上flash允許程

24、序存儲(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 口線,看門狗定時(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ī)一切工作

25、停止,直到下一個(gè)中斷或硬件復(fù)位為止。4.3.1引腳結(jié)構(gòu)及各端口介紹vcc : 電源 gnd: 地p0口:p0口是一個(gè)8位漏極開路的雙向i/o口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)ttl邏輯電平。對(duì)p0端口寫“1”時(shí),引腳用作高阻抗輸入。圖1 at89s52引腳結(jié)構(gòu)圖當(dāng)訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),p0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,p0具有內(nèi)部上拉電阻。在flash編程時(shí),p0口也用來接收指令字節(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端口寫“1”時(shí),內(nèi)部上拉電阻把端

26、口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。此外,p1.0和p1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和定時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex)。在flash編程和校驗(yàn)時(shí),p1口接收低8位地址字節(jié)。此外,p1.0和p1.2分別作定時(shí)器/計(jì)數(shù)器2的外部計(jì)數(shù)輸入(p1.0/t2)和時(shí)器/計(jì)數(shù)器2的觸發(fā)輸入(p1.1/t2ex)。在flash編程和校驗(yàn)時(shí),p1口接收低8位地址字節(jié)。p2口:p2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向i/o口,p2輸出緩沖器能驅(qū)動(dòng)4個(gè)ttl 邏輯電平。對(duì)p2端口寫“1”時(shí),內(nèi)部上拉電阻

27、把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。在訪問外部程序存儲(chǔ)器或用16位地址讀取部數(shù)據(jù)存表1 p1口第二功能引腳號(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)編程用)儲(chǔ)器(例如執(zhí)行movx dptr)時(shí),p2口送出高八位地址。在這種應(yīng)用中,p2 口使用很強(qiáng)的內(nèi)部上拉發(fā)送1。在使用8位地址(如movx ri)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),p2口輸出p2鎖存器的內(nèi)容

28、。在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端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(iil)。p3口亦作為at89s52特殊功能(第二功能)使用。在flash編程和校驗(yàn)時(shí),p3口也接收一些控制信號(hào)。rst: 復(fù)位輸入。晶振工作時(shí),rst腳持續(xù)2 個(gè)機(jī)器周期高電平將使單片機(jī)復(fù)位??撮T狗計(jì)時(shí)完成后,rst 腳輸出96個(gè)晶振周期的高電平。特殊寄存器auxr(地址8eh)上的disrto

29、位可以使此功能無效。disrto默認(rèn)狀態(tài)下,復(fù)位高電平有效。ale/prog:地址鎖存控制信號(hào)(ale)是訪問外部程序存儲(chǔ)器時(shí),鎖存低8 位地址的輸出脈沖。在flash編程時(shí),此引腳(prog)也用作編程輸入脈沖。在一般情況下,ale 以晶振六分之一的固定頻率輸出脈沖,可用來作為外部定時(shí)器或時(shí)鐘使用。然而,特別強(qiáng)調(diào),在每次訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),ale脈沖將會(huì)跳過。如果需要,通過將地址為8eh的sfr的第0位置 “1”,ale操作將無效。這一位置 “1”,ale 僅在執(zhí)行movx 或movc指令時(shí)有效。否則,ale 將被微弱拉高。這個(gè)ale 使能標(biāo)志位(地址為8eh的sfr的第0位)的設(shè)置對(duì)微控

30、制器處于外部執(zhí)行模式下無效。psen:外部程序存儲(chǔ)器選通信號(hào)(psen)是外部程序存儲(chǔ)器選通信號(hào)。當(dāng)at89s52從外部程序存儲(chǔ)器執(zhí)行外部代碼時(shí),psen在每個(gè)機(jī)器周期被激活兩次,而在訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),psen將不被激活。ea/vpp:訪問外部程序存儲(chǔ)器控制信號(hào)。為使能從0000h 到ffffh的外部程序存儲(chǔ)器讀取指令,ea必須接gnd。為了執(zhí)行內(nèi)部程序指令,ea應(yīng)該接vcc。在flash編程期間,ea也接收12伏vpp電壓。xtal1:振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。xtal2:振蕩器反相放大器的輸出端4.3.2 中斷at89s52 有6個(gè)中斷源:兩個(gè)外部中斷(int0 和i

31、nt1),三個(gè)定時(shí)中斷(定時(shí)器0、1、2)和一個(gè)串行中斷。這些中斷如表2所示每個(gè)中斷源都可以通過置位或清除特殊寄存器ie 中的相關(guān)中斷允許控制位分別使得中斷源有效或無效。ie還包括一個(gè)中斷允許總控制位ea,它能一次禁止所有中斷。如表4所示,ie.6位是不可用的。對(duì)于at89s52,ie.5位也是不能用的。用戶軟件不應(yīng)給這些位寫1。它們?yōu)閍t89系列新產(chǎn)品預(yù)留。表2 p3口第二功能引腳號(hào)第二功能p3.0rxd(串行輸入)p3.1txd(串行輸出)p3.2int0(外部中斷0)p3.3int1 (外部中斷1)p3.4t0(定時(shí)器0外部輸入)p3.5t1(定時(shí)器1外部輸入)p3.6wr(外部數(shù)據(jù)存儲(chǔ)

32、器寫選通)p3.7rd(外部數(shù)據(jù)存儲(chǔ)器寫選通)定時(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è)周期被電路捕捉下來。然而,定時(shí)器2的標(biāo)志位tf2 在計(jì)數(shù)溢出的那個(gè)周期的s2p2被置位,在同一個(gè)周期被電路捕捉下來。表3 中斷允許控制寄存器(ie)(msb)(lsb)ea-et2eset1ex1et0ex0注:中斷允許控制位=1,允許中斷中斷允許控制位=0

33、,禁止中斷表4中斷允許控制寄存器的詳細(xì)說明符號(hào)位地址功能eaie.7中斷總允許控制位.ea=1.各中斷由各自的控制位設(shè)定-ie.6預(yù)留et2ie.5定時(shí)器2中斷允許控制位esie.4串行口中斷允許控制位et1ie.3定時(shí)器1中斷允許控制位ex1ie.2外部中斷1允許控制位et0ie.1定時(shí)器0中斷允許控制位ex0ie.0外部中斷0允許控制位圖2 中斷源4.3.3 單片機(jī)存儲(chǔ)器結(jié)構(gòu)mcs-51器件有單獨(dú)的程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。外部程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器都可以64k尋址。程序存儲(chǔ)器:如果ea引腳接地,程序讀取只從外部存儲(chǔ)器開始。對(duì)于89s52,如果ea接vcc,程序讀寫先從內(nèi)部存儲(chǔ)器(地址為00

34、00h1fffh)開始,接著從外部尋址,尋址地址為:2000hffffh。數(shù)據(jù)存儲(chǔ)器:at89s52 有256 字節(jié)片內(nèi)數(shù)據(jù)存儲(chǔ)器。高128字節(jié)與特殊功能寄存器重疊。也就是說高128字節(jié)與特殊功能寄存器有相同的地址,而物理上是分開的。當(dāng)一條指令訪問高于7fh的地址時(shí),尋址方式?jīng)Q定cpu訪問高128字節(jié)ram還是特殊功能寄存器空間。直接尋址方式訪問特殊功能寄存器(sfr)。例如,直接尋址指令mov 0a0h, #data訪問0a0h(p2口)存儲(chǔ)單元,使用間接尋址方式訪問高128字節(jié)ram。例如,下面的間接尋址方式中,r0內(nèi)容為0a0h,訪問的是地址0a0h的寄存器,而不是p2口(它的地址也是0

35、a0h)。mov r0, #data堆棧操作也是簡(jiǎn)介尋址方式。因此,高128字節(jié)數(shù)據(jù)ram也可用于堆??臻g。4.3.4單片機(jī)復(fù)位電路與時(shí)鐘電路復(fù)位是單片機(jī)的初始化操作,只要給reset引腳加上兩個(gè)機(jī)器周期以上的高電平信號(hào),就可使at89s52單片機(jī)復(fù)位。復(fù)位的主要功能是把程序計(jì)數(shù)器(pc)初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行程序,同時(shí)復(fù)位操作還對(duì)一些寄存器有影響。at89s52的復(fù)位是由外部的復(fù)位電路來實(shí)現(xiàn)的,復(fù)位電路分為上電復(fù)位和按鍵復(fù)位兩種方式。其電路圖3所示.圖3 復(fù)位電路單片機(jī)的時(shí)鐘頻率直接影響單片機(jī)的速度,時(shí)鐘電路的質(zhì)量也直接影響單片機(jī)系統(tǒng)的穩(wěn)定性。常見的時(shí)鐘電路有兩

36、種方式,一種是內(nèi)部時(shí)鐘方式,另一種是外部時(shí)鐘方式。本系統(tǒng)選用內(nèi)部時(shí)鐘方式,at89s52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,該高增益反相放大器的輸入端為芯片引腳xtal1,輸出端為引腳xtal2。這兩個(gè)引腳跨接石英晶體振蕩器和微調(diào)電容,就構(gòu)成一個(gè)穩(wěn)定的自激振蕩器, at89s52時(shí)鐘電路如圖4所示。電路中的電容的取值通常在20pf30pf之間,對(duì)外接電容的值沒有嚴(yán)格的要求,但電容的大小會(huì)影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。由于單片機(jī)要進(jìn)行串行通信,為了獲得準(zhǔn)確的波特率,選擇晶振的頻率為12mhz。圖4 時(shí)鐘電路4.3.5 看門狗定時(shí)器wdt是一種需要軟件控制的復(fù)位方式。

37、wdt 由13位計(jì)數(shù)器和特殊功能寄存器中的看門狗定時(shí)器復(fù)位存儲(chǔ)器(wdtrst)構(gòu)成。wdt 在默認(rèn)情況下無法工作;為了激活wdt,戶用必須往wdtrst 寄存器(地址:0a6h)中依次寫入01eh 和0e1h。當(dāng)wdt激活后,晶振工作,wdt在每個(gè)機(jī)器周期都會(huì)增加。wdt計(jì)時(shí)周期依賴于外部時(shí)鐘頻率。除了復(fù)位(硬件復(fù)位或wdt溢出復(fù)位),沒有辦法停止wdt工作。當(dāng)wdt溢出,它將驅(qū)動(dòng)rsr引腳一個(gè)高個(gè)電平輸出。為了激活wdt,用戶必須向wdtrst寄存器(地址為0a6h的sfr)依次寫入01eh和0e1h。當(dāng)wdt激活后,用戶必須向wdtrst寫入01eh和0e1h喂狗來避wdt溢出。當(dāng)計(jì)數(shù)達(dá)

38、到8191(1fffh)時(shí),13 位計(jì)數(shù)器將會(huì)溢出,這將會(huì)復(fù)位器件。晶振正常工作、wdt激活后,每一個(gè)機(jī)器周期wdt 都會(huì)增加。為了復(fù)位wdt,用戶必須向wdtrst 寫入01eh 和0e1h(wdtrst 是只讀寄存器)。wdt 計(jì)數(shù)器不能讀或?qū)?。?dāng)wdt 計(jì)數(shù)器溢出時(shí),將給rst 引腳產(chǎn)生一個(gè)復(fù)位脈沖輸出,這個(gè)復(fù)位脈沖持續(xù)96個(gè)晶振周期(tosc),其中tosc=1/fosc。為了很好地使用wdt,應(yīng)該在一定時(shí)間內(nèi)周期性寫入那部分代碼,以避免wdt復(fù)位。在掉電模式下,晶振停止工作,這意味這wdt也停止了工作。在這種方式下,用戶不必喂狗。有兩種方式可以離開掉電模式:硬件復(fù)位或通過一個(gè)激活的外

39、部中斷。通過硬件復(fù)位退出掉電模式后,用戶就應(yīng)該給wdt 喂狗,就如同通at89s52 復(fù)位一樣。通過中斷退出掉電模式的情形有很大的不同。中斷應(yīng)持續(xù)拉低很長(zhǎng)一段時(shí)間,使得晶振穩(wěn)定。當(dāng)中斷拉高后,執(zhí)行中斷服務(wù)程序。為了防止wdt在中斷保持低電平的時(shí)候復(fù)位器件,wdt 直到中斷拉低后才開始工作。這就意味著wdt 應(yīng)該在中斷服務(wù)程序中復(fù)位。為了確保在離開掉電模式最初的幾個(gè)狀態(tài)wdt不被溢出,最好在進(jìn)入掉電模式前就復(fù)位wdt。在進(jìn)入待機(jī)模式前,特殊寄存器auxr的wdidle位用來決定wdt是否繼續(xù)計(jì)數(shù)。默認(rèn)狀態(tài)下,在待機(jī)模式下,wdidle0,wdt繼續(xù)計(jì)數(shù)。為了防止wdt在待機(jī)模式下復(fù)位at89s5

40、2,用戶應(yīng)該建立一個(gè)定時(shí)器,定時(shí)離開待機(jī)模式,喂狗,再重新進(jìn)入待機(jī)模式。4.4 ds1302的原理及應(yīng)用4.4.1 ds1302的結(jié)構(gòu)及工作原理 ds1302 是美國dallas公司推出的一種高性能、低功耗、帶ram的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5v5.5v。采用三線接口與cpu進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)或ram數(shù)據(jù)。ds1302內(nèi)部有一個(gè)31×8的用于臨時(shí)性存放數(shù)據(jù)的ram寄存器。ds1302是ds1202的升級(jí)產(chǎn)品,與ds1202兼容,但增加了主電源/后背電源雙電源引腳,同時(shí)提供了對(duì)后背

41、電源進(jìn)行涓細(xì)電流充電的能力4.4.2 引腳功能及結(jié)構(gòu) 圖4為ds1302的引腳排列,其中vcc2為后備電源,vcc1為主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc1大于vcc20.2v時(shí),vcc1給ds1302供電。當(dāng)vcc1小于vcc2時(shí),ds1302由vcc2供電。x1和x2是振蕩源,外接32.768khz晶振。rst是復(fù)位/片選線,通過把rst輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。rst輸入有兩種功能:首先,rst接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,rst提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)rst

42、為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對(duì)ds1302進(jìn)行操作。如果在傳送過程中rst置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,i/o引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在vcc2.5v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。i/o為串行數(shù)據(jù)輸入輸出端(雙向), ds1302的引腳及內(nèi)部結(jié)構(gòu)如圖4所示,引腳功能如表5所示圖4 ds1302管腳圖及內(nèi)部結(jié)構(gòu)圖表5 ds1302引腳功能表引腳號(hào)引腳名稱功 能1vcc2主電源2.3x1.x2振蕩源,外接32768hz晶振4gnd地線5tst復(fù)位/片選線6i/o串行數(shù)據(jù)輸入/輸出端(雙向)7sclk串行數(shù)據(jù)輸入端8voc1后備電源

43、4.4.3 ds1302的控制字節(jié) ds1302 的控制字如表6所示??刂谱止?jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入ds1302中,位6如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取ram數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作,控制字節(jié)總是從最低位開始輸出表6 ds1302的控制字節(jié)1ram a4a3a2a1a0ram 4.4.4 數(shù)據(jù)輸入輸出(i/o) 在控制指令字輸入后的下一個(gè)sclk時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)sclk脈沖的下降沿讀

44、出ds1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。圖5數(shù)據(jù)讀寫時(shí)序4.4.5 ds1302的寄存器 ds1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時(shí)間寄存器及其控制字見圖6。 圖6 日歷.時(shí)間寄存器及其控制字此外,ds1302 還有年份寄存器、控制寄存器、充電寄存器、時(shí)鐘突發(fā)寄存器及與ram相關(guān)的寄存器等。時(shí)鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 ds1302與ram相關(guān)的寄存器分為兩類:一類是單個(gè)ram單元,共31個(gè),每個(gè)單元組態(tài)為一個(gè)8位的字節(jié),其命令控制字為c0hfdh,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突

45、發(fā)方式下的ram寄存器,此方式下可一次性讀寫所有的ram的31個(gè)字節(jié),命令控制字為feh(寫)、ffh(讀)。ds1302與單片機(jī)的連接僅需要三條線,即sclk、i/o、rst。ds1302與單片機(jī)連接的電路原理圖如圖7所示。vcc2在單電源與電池供電的系統(tǒng)中提供低電源并提供低功率的電池備份。vcc1在雙電源系統(tǒng)中提供主電源,在這種運(yùn)用方式下vcc2連接到備份電源,以便在沒有主電源的情況下能保存時(shí)間信息以及數(shù)據(jù)。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng) vcc2大于vcc1+0.2v時(shí),vcc2給ds1302供電。當(dāng) vcc2小于 vcc1時(shí),ds1302由vcc1供電。圖7 d

46、s1302與單片機(jī)連接圖4.5 lcd模塊的原理及應(yīng)用4.5.1 lcd結(jié)構(gòu)及工作原理1602b可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線d0-d7,和rs、r/w、en三個(gè)控制端口,工作電壓為5v,并且?guī)в凶址麑?duì)比度調(diào)節(jié)和背光。該模塊也可以只用d4-d7作為四位數(shù)據(jù)分兩次傳送。這樣的話可以節(jié)省mcu的i/o口資源。1602b引腳說明:表7 lcd液晶顯示器各引腳功能及結(jié)構(gòu)編號(hào)符號(hào)引腳說明編號(hào)符號(hào)引腳說明1vss電源地9d2雙向數(shù)據(jù)口2vdd電源正極10d3雙向數(shù)據(jù)口3vl對(duì)比度調(diào)節(jié)11d4雙向數(shù)據(jù)口4rs數(shù)據(jù)/命令選擇12d5雙向數(shù)據(jù)口5r/w讀/寫選擇13d6雙向數(shù)據(jù)口6e模塊使能端14d7雙

47、向數(shù)據(jù)口7d0雙向數(shù)據(jù)口15blk背光源地8d1雙向數(shù)據(jù)口16bla背光源正極注意事項(xiàng):從該模塊的正面看,引腳排列從右向左為:15腳、16腳,然后才是114腳(線路板上已經(jīng)標(biāo)明)。vdd:電源正極,4.55.5v,通常使用5v電壓;vl:lcd對(duì)比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為05v。接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,但對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)10k的電位器來調(diào)整對(duì)比度,或者直接串接一個(gè)電阻到地;rs:mcu寫入數(shù)據(jù)或者指令選擇端。mcu要寫入指令時(shí),使rs為低電平;mcu要寫入數(shù)據(jù)時(shí),使rs為高電平;r/w:讀寫控制端。r/w為高電平時(shí),讀取數(shù)據(jù);r/w為低電平時(shí),寫

48、入數(shù)據(jù);e:lcd模塊使能信號(hào)控制端。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。d0d7:8位數(shù)據(jù)總線,三態(tài)雙向。如果mcu的i/o口資源緊張的話,該模塊也可以只使用4位數(shù)據(jù)線d4d7接口傳送數(shù)據(jù)。本充電器就是采用4位數(shù)據(jù)傳送方式;bla: led背光正極。需要背光時(shí),bla串接一個(gè)限流電阻接vdd,blk接地,實(shí)測(cè)該模塊的背光電流為50ma左右;blk: led背光地端。圖8 lcd與單片機(jī)連接圖5 電路設(shè)計(jì)5.1 系統(tǒng)硬件設(shè)計(jì)5.1.1 結(jié)構(gòu)框圖我的數(shù)字鐘設(shè)計(jì)包括以下幾部分:時(shí)鐘模塊,鍵盤輸入模塊,顯示模塊,計(jì)時(shí)模塊,鬧鐘模塊。為了方便使用,我們把數(shù)據(jù)采集單獨(dú)使用一個(gè)單片機(jī)系統(tǒng),而把時(shí)鐘鬧鐘系統(tǒng)由ds

49、1302與單片機(jī)設(shè)計(jì)完成。然后把鍵盤輸入、顯示、計(jì)時(shí)、鬧鐘等數(shù)據(jù)通過串行通信傳輸給主單片機(jī)進(jìn)行顯示。其總體框圖如圖9所示 單片機(jī)at89s52時(shí)鐘電路ds1302按鍵顯示電路lcd1602報(bào)音電路 圖 9 結(jié)構(gòu)框圖該系統(tǒng)采用了at89s52單片機(jī)系統(tǒng)來控制系統(tǒng)的工作,采用時(shí)鐘芯片,這樣就可以根據(jù)自己和場(chǎng)合的需要實(shí)時(shí)顯示時(shí)鐘、日歷等,如果選用液晶顯示電路,還可以進(jìn)行文字顯示,用于溫馨提示,消息或新聞的發(fā)布等。本處只用蜂鳴器實(shí)現(xiàn)報(bào)音的提示功能。該系統(tǒng)由于采用了單片機(jī)的軟件編程實(shí)現(xiàn)控制各模塊電路的工作,并且可以通過鍵盤進(jìn)行參數(shù)的設(shè)置,實(shí)現(xiàn)了自動(dòng)控制,使得該系統(tǒng)變得更加完整,功能更多,同時(shí)可以進(jìn)行擴(kuò)展

50、。5.1.2 工作原理圖10 設(shè)計(jì)圖該系統(tǒng)由at89s52單片機(jī)最小系統(tǒng)電路為主要結(jié)構(gòu),利用其i/o口進(jìn)行數(shù)據(jù)的采集和控制。該電路的工作原理是:首先在保證時(shí)鐘芯片ds1302正常工作的情況下,再通過單片機(jī)at89s52給這個(gè)時(shí)鐘芯片發(fā)送各種指令,使它運(yùn)行或者校正時(shí)間,從ds1302內(nèi)部時(shí)鐘寄存器里讀出時(shí)間信息,并把它顯示出來。單片機(jī)數(shù)字鐘要求的基本功能是計(jì)時(shí)和校時(shí),另外還可以增加鬧鐘、報(bào)警等功能。此時(shí)單片機(jī)馬上讀取當(dāng)前時(shí)間,并與之前單片機(jī)設(shè)定的時(shí)間段進(jìn)行比較,如果發(fā)現(xiàn)當(dāng)前時(shí)間落在所設(shè)時(shí)間段范圍內(nèi),則向報(bào)警電路發(fā)出控制信號(hào),把相應(yīng)時(shí)間段的內(nèi)容送到報(bào)音電路,然后由報(bào)音電路通過放大電路放大后驅(qū)動(dòng)揚(yáng)聲

51、器,發(fā)出相應(yīng)的聲音;若發(fā)現(xiàn)當(dāng)前時(shí)間沒有落在所設(shè)時(shí)間段范圍內(nèi),則不響應(yīng)該次送進(jìn)來的中斷信號(hào),即后面的全部工作將不再進(jìn)行下去,而是等待下一個(gè)中斷信號(hào)的過來。5.1.3中斷方式應(yīng)注意的問題采用中斷的方式,最好將定時(shí)器中斷的優(yōu)先級(jí)設(shè)置為最高級(jí),關(guān)于程序數(shù)據(jù)的穩(wěn)定性應(yīng)注意兩個(gè)問題:一,在低優(yōu)先級(jí)中斷響應(yīng)時(shí),應(yīng)在入棧保護(hù)數(shù)據(jù)時(shí)禁止高優(yōu)先級(jí)的中斷響應(yīng)。二,在入棧保護(hù)有關(guān)數(shù)據(jù)后,對(duì)中斷程序執(zhí)行有影響的狀態(tài)位,寄存器,必須恢復(fù)為復(fù)位狀態(tài)的值。例如,在以下程序中,由于用到了十進(jìn)制調(diào)整,所以在中斷進(jìn)入時(shí),將psw中的ac,cy位清零,否則,十進(jìn)制調(diào)整出錯(cuò)。5.1.4 定時(shí)準(zhǔn)確性的討論程序中定時(shí)器,一直處于運(yùn)行狀態(tài),

52、也就是說定時(shí)器是理想運(yùn)作的,其中斷程序每隔0.1秒執(zhí)行一次,在理想狀態(tài)下,定時(shí)器定時(shí)是沒有系統(tǒng)誤差的,但由于定時(shí)器中斷溢出后,定時(shí)器從0開始計(jì)數(shù),直到被重新置數(shù),才開始正確定時(shí),這樣中斷溢出到中斷響應(yīng)到定時(shí)器被重新置數(shù),其間消耗的時(shí)間就造成了定時(shí)器定時(shí)的誤差。如果在前述定時(shí)器不關(guān)的情況下,在中斷程序的一開始就給定時(shí)器置數(shù),此時(shí)誤差最小,誤差大約為:每0.1秒,誤差712個(gè)機(jī)器周期。當(dāng)然這是在定時(shí)器定時(shí)剛好為0.1秒時(shí)的情況,由以上分析,如果數(shù)字鐘設(shè)計(jì)為查詢的方式或是在中斷的方式下將定時(shí)器中斷設(shè)置為最高級(jí),我們?cè)诙〞r(shí)值設(shè)置時(shí),可以適當(dāng)?shù)目鄢?個(gè)機(jī)器周期的時(shí)間值。但如果在中斷的情況下,沒有將定時(shí)器

53、中斷設(shè)置為最高級(jí),那就要視中斷程序的大小,在定時(shí)值設(shè)置時(shí),扣除相應(yīng)的時(shí)間值。5.1.5 軟件消抖消抖可以采用硬件(施密特觸發(fā)器)的方式,也可以采用軟件的方式。在此只討論軟件方式。軟件消抖有定時(shí)器定時(shí),和利用延時(shí)子程序兩種方式。一,定時(shí)器定時(shí)消抖可以不影響顯示模塊掃描速度,其實(shí)現(xiàn)方法是:設(shè)置標(biāo)志位,在定時(shí)器中斷中將其置位,然后在程序中查詢。將其中斷優(yōu)先級(jí)設(shè)置為低于時(shí)鐘定時(shí)中斷,那么它就可以完全不影響時(shí)鐘定時(shí)。二,在采用延時(shí)子程序時(shí),如果顯示模塊的掃描速度本來就不是很快,此時(shí)可能會(huì)影響到顯示的效果,一般情況下,每秒的掃描次數(shù)不應(yīng)小于50次,否則,數(shù)碼的顯示會(huì)出現(xiàn)閃爍的情況。因此,延時(shí)子程序的延時(shí)時(shí)

54、間應(yīng)該小于20毫秒,如果采用定時(shí)器定時(shí)的方式,延時(shí)時(shí)間不影響時(shí)鐘。如果,設(shè)計(jì)時(shí)采用的是中斷的方式來完成有關(guān)操作,同樣可以采用軟件的方式來消抖,其處理思想是:中斷不能連續(xù)執(zhí)行,兩次之間有一定的時(shí)間間隔。5.2 編程思路5.2.1 數(shù)字鐘的操作采用主從兩個(gè)單片機(jī)系統(tǒng),從系統(tǒng)對(duì)各個(gè)參數(shù)進(jìn)行測(cè)量計(jì)算,然后以串行通信傳送到上位機(jī),然后進(jìn)入下一輪檢測(cè)。當(dāng)主系統(tǒng)需要顯示這些參數(shù)時(shí),允許接收數(shù)據(jù),然后進(jìn)行處理顯示。主系統(tǒng)當(dāng)中,初始化結(jié)束之后,讀ds1302內(nèi)部時(shí)間數(shù)據(jù)并顯示,然后進(jìn)行按鍵判斷,對(duì)按鍵請(qǐng)求進(jìn)行處理,結(jié)束之后,程序回到讀 ds1302時(shí)間數(shù)據(jù)處形成循環(huán)。共三個(gè)鍵,低電平有效p1.0口表示功能移位鍵

55、,按鍵選擇要調(diào)整的年,月,日,星期,小時(shí),分鐘,背光燈,鬧鐘。 p1.1口表示數(shù)字“+“鍵,按一下則對(duì)應(yīng)的數(shù)字加1。p1.2口表示數(shù)字“-”鍵,按一下則對(duì)應(yīng)的數(shù)字減1。模式選擇狀態(tài)0:model=0,數(shù)字鐘正常時(shí)鐘顯示狀態(tài)。狀態(tài)1:model=1,進(jìn)入時(shí),分,秒的調(diào)整。狀態(tài)2:model=2,進(jìn)入年,月,日,星期的調(diào)整。狀態(tài)3: model=3, 進(jìn)入鬧鐘的設(shè)置。狀態(tài)4:model=4,進(jìn)入背光燈的設(shè)置。狀態(tài)5:model=5,時(shí)間清零。狀態(tài)6:model=6,退出系統(tǒng)設(shè)置。在模式一中,可用key1和key2分別對(duì)時(shí),分,秒的數(shù)字進(jìn)行加減設(shè)置,利用模式健更改設(shè)置對(duì)象,且設(shè)置對(duì)象將處于閃爍狀態(tài),完后可退出。在模式二中,可用key1和key2分別對(duì)年,月,日,星期的數(shù)字進(jìn)行加減設(shè)置,利用模式健更改設(shè)置對(duì)象,且設(shè)置對(duì)象將處于閃爍狀態(tài),完后可退出。在模式三中,可對(duì)鬧鐘的開關(guān)進(jìn)行設(shè)置,當(dāng)啟動(dòng)鬧鐘定時(shí)時(shí)進(jìn)入時(shí)間選擇模式,再次對(duì)所設(shè)定的時(shí),分,秒進(jìn)行設(shè)置。在模式四中,對(duì)背光燈的亮度進(jìn)行調(diào)節(jié),強(qiáng)弱共有十級(jí)。在模式五中,

溫馨提示

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