基于單片機(jī)電子鐘的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
基于單片機(jī)電子鐘的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
基于單片機(jī)電子鐘的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
基于單片機(jī)電子鐘的設(shè)計(jì)與實(shí)現(xiàn)_第4頁
基于單片機(jī)電子鐘的設(shè)計(jì)與實(shí)現(xiàn)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

陳薪羽:帶日歷電子鐘的設(shè)計(jì)華東交通大學(xué)畢業(yè)設(shè)計(jì)PAGE52PAGE51電子鐘的設(shè)計(jì)與實(shí)現(xiàn)—硬件部分摘要單片計(jì)算機(jī)即單片微型計(jì)算機(jī),是一種集成的電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)時(shí)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而完善的計(jì)算機(jī)系統(tǒng)。它體積小,成本低,功能強(qiáng),廣泛應(yīng)用于智能產(chǎn)品和工業(yè)自動(dòng)化上。而51單片機(jī)是各單片機(jī)中最為典型和最有代表性的一種。本次設(shè)計(jì)主要為實(shí)現(xiàn)一款可正常顯示時(shí)鐘/日歷、帶有定時(shí)鬧鈴的電子鐘。電子鐘主要是利用電子技術(shù)將時(shí)鐘電子化、數(shù)字化,擁有時(shí)鐘精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。另外,在生活和工農(nóng)業(yè)生產(chǎn)中,也常常需要電子時(shí)鐘具有多功能性。本設(shè)計(jì)應(yīng)用AT89S52芯片作為核心,LCD液晶顯示,使用DS1302實(shí)時(shí)時(shí)鐘日歷芯片完成時(shí)鐘/日歷的基本功能。這種實(shí)現(xiàn)方法的優(yōu)點(diǎn)是電路簡單,性能可靠,實(shí)時(shí)性好,時(shí)間精度高,操作簡單,編程容易。該電子鐘可以應(yīng)用于一般的生活和工作中,也可通過改裝,提高性能,增加新功能,從而給人們的生活和工作帶來更多的方便。關(guān)鍵詞:電子鐘;時(shí)鐘日歷芯片;AT89S52TheDesignandImplementationofElectronClockTheDesignoftheHardwareAbstractThemonolithiccomputerisamonolithicmicrocomputer,beonekindofintegratedcircuitchip,bethatthewidthdemonstratingdrivecircuit,pulsemodulatesbreadboardingadoptthegrandscaleICtechnologycentralauthorityprocessorCPU,randommemoryRAM,godoftheearthreadmemoryROM,diversifiedI/Omouthsandfunction(possibilitysuchasinterruptionsystem,timer/calculagraphhavingadata-handlingcapacitytobeincluded,multi-pathconverter,A/Dconverterandsooncircuit)integratedarriveatapieceofsiliconsliceupperformationonesmallbutperfectcomputersystem.Itsvolumeissmall,costislow,thefunctionisstrong,applytotheintelligenceproductandtheindustrialautomationbroadlygoahead.But,51monolithicmachinearethateveryrepresentativeandakindofhavingrepresentativenessmostinmonolithicmachine.Designthatbeingtorealizeonebuttodemonstratetheclock/calendarregularlymainly,aswellaselectronicclockhavingnoisybelltheregulartimetime.Theelectronicclockistoelectronize,digitizemainlymakeuseofelectrontechnologywiththeclock,owntheclockisaccurate,volumeissmall,theinterfaceisamicable,expansionthefunctionwaitsforacharacteristicbyforce,thequiltappliestolifeandthejobbroadlymiddle.Requirethattheelectronclockhasmultifunctionalalsoofteninbesides,givingbirthtoachildinlifeandindustryandagriculture.DesignthatthechipapplyingAT89S52iscore,LCDliquidcrystaldisplay,usestheDS1302realtimeclockcalendarchiptoaccomplishfundamentalclock/calendarfunctionoriginally.Thisrealizationmethodmeritisthatthecircuitissimple,thefunctionisreliable,realtimenatureisgood,timeaccuracyishigh,thesimplicity,theprogrammingareeasytohandle.Thatelectronicclockisnotbadapplytoalsomaybringaboutmoregoingtothelavatorybyrefitting,improvingthefunction,lifeandjobincreasingthenewfunction,givingpeople'stherebyinthesamelifeandjob.Keywords:electronicclock;DS1302;AT89S52目錄摘要 1Abstract 2第一章引言 51.1多功能電子時(shí)鐘研究的背景和意義 51.2電子時(shí)鐘的功能 5第二章電子時(shí)鐘設(shè)計(jì)方案分析 72.1FPGA設(shè)計(jì)方案 72.2NE555時(shí)基電路設(shè)計(jì)方案 72.3單片機(jī)設(shè)計(jì)方案 8第三章電子時(shí)鐘硬件設(shè)計(jì) 93.1單片機(jī)特點(diǎn) 93.2元器件選擇 93.2.1微處理器選擇 93.2.2DS1302的片內(nèi)寄存器 133.3電子時(shí)鐘硬件電路設(shè)計(jì) 143.3.1晶振電路設(shè)計(jì) 153.3.2復(fù)位電路設(shè)計(jì) 163.3.3按鍵電路設(shè)計(jì) 173.3.4顯示電路設(shè)計(jì) 183.3.4時(shí)鐘電路設(shè)計(jì) 193.3.5鬧鈴電路設(shè)計(jì) 20第三章電子時(shí)鐘軟件設(shè)計(jì) 224.1主程序設(shè)計(jì) 224.2子程序設(shè)計(jì) 224.2.1實(shí)時(shí)時(shí)鐘日歷子程序設(shè)計(jì) 224.2.2顯示子程序設(shè)計(jì) 234.2.3鍵盤掃描子程序 234.2.4鬧鈴子程序設(shè)計(jì) 23第五章系統(tǒng)調(diào)試 275.1硬件調(diào)試 275.1.1單片機(jī)基礎(chǔ)電路調(diào)試 275.1.2DS1302電路調(diào)試 285.1.3按鍵電路調(diào)試 285.2軟件調(diào)試 285.2.1鍵盤子程序調(diào)試 29結(jié)論 30致謝 31參考文獻(xiàn) 32附錄A程序 33附錄B帶日歷電子鐘元器件一覽表 43附錄C帶日歷電子鐘的硬件電路圖 44附錄D英文翻譯原文部分 45譯文部分—淺談單片機(jī) 48第一章引言時(shí)間是人類生活必不可少的重要元素,如果沒有時(shí)間的概念,社會(huì)將不會(huì)有所發(fā)展和進(jìn)步。從古代的水漏、十二天干地支,到后來的機(jī)械鐘表以及當(dāng)今的石英鐘,都充分顯現(xiàn)出了時(shí)間的重要,同時(shí)也代表著科技的進(jìn)步。致力于計(jì)時(shí)器的研究和充分發(fā)揮時(shí)鐘的作用,將有著重要的意義。1.1多功能電子時(shí)鐘研究的背景和意義20世紀(jì)末,電子技術(shù)獲得了飛速的發(fā)展。在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透到了社會(huì)的各個(gè)領(lǐng)域,有力的推動(dòng)和提高了社會(huì)生產(chǎn)力的發(fā)展與信息化程度,同時(shí)也使現(xiàn)代電子產(chǎn)品性能進(jìn)一步提升,產(chǎn)品更新?lián)Q代的節(jié)奏也越來越快。

時(shí)間對人們來說總是那么寶貴,工作的忙碌性和繁雜容易使人忘記當(dāng)前的時(shí)間。然而遇到重大事情的時(shí)候,一旦忘記時(shí)間,就會(huì)給自己或他人造成很大麻煩。平時(shí)我們要求上班準(zhǔn)時(shí),約會(huì)或召開會(huì)議必然要提及時(shí)間;火車要準(zhǔn)點(diǎn)到達(dá),航班要準(zhǔn)點(diǎn)起飛;工業(yè)生產(chǎn)中,很多環(huán)節(jié)都需要用時(shí)間來確定工序替換時(shí)刻。所以說能隨時(shí)準(zhǔn)確的知道時(shí)間并利用時(shí)間,是我們生活和工作中必不可少的[1]。想知道時(shí)間,手表當(dāng)然是一個(gè)很好的選擇,但是,在忙碌當(dāng)中,我們還需要一個(gè)“助理”及時(shí)的給我們提醒時(shí)間。所以,計(jì)時(shí)器最好能夠擁有一個(gè)定時(shí)系統(tǒng),隨時(shí)提醒容易忘記時(shí)間的人。最早能夠定時(shí)、報(bào)時(shí)的時(shí)鐘屬于機(jī)械式鐘表,但這種時(shí)鐘受到機(jī)械結(jié)構(gòu)、動(dòng)力和體積的限制,在功能、性能以及造價(jià)上都沒辦法與電子時(shí)鐘相比。

電子鐘是采用電子電路實(shí)現(xiàn)對時(shí)、分、秒進(jìn)行數(shù)字顯示的計(jì)時(shí)裝置,廣泛應(yīng)用于個(gè)人家庭,車站,碼頭辦公室等公共場所,成為人們?nèi)粘I钪胁豢缮俚谋匦杵贰S捎跀?shù)字集成電路的發(fā)展和石英晶體振蕩器的廣泛應(yīng)用,使得數(shù)字鐘的精度,遠(yuǎn)遠(yuǎn)超過老式鐘表,鐘表的數(shù)字化給人們生產(chǎn)生活帶來了極大的方便,而且大大地?cái)U(kuò)展了鐘表原先的報(bào)時(shí)功能。諸如定時(shí)自動(dòng)報(bào)警、0按時(shí)自動(dòng)打鈴、定時(shí)廣播、自動(dòng)起閉路燈、定時(shí)開關(guān)烘箱、通斷動(dòng)力設(shè)備、甚至各種定時(shí)電氣的自動(dòng)啟用等,所有這些,都是以鐘表數(shù)字化為基礎(chǔ)的。因此,研究數(shù)字鐘及擴(kuò)大其應(yīng)用,有著非?,F(xiàn)實(shí)的意義。1.2電子時(shí)鐘的功能電子時(shí)鐘主要是利用電子技術(shù)將時(shí)鐘電子化、數(shù)字化,擁有時(shí)間精確、體積小、界面友好、可擴(kuò)展性能強(qiáng)等特點(diǎn),被廣泛應(yīng)用于生活和工作當(dāng)中。當(dāng)今市場上的電子時(shí)鐘品類繁多,外形小巧別致。也有體型較大的,諸如公共場所的大型電子報(bào)時(shí)器等。電子時(shí)鐘首先是數(shù)字化了的時(shí)間顯示或報(bào)時(shí)器,在此基礎(chǔ)上,人們可以根據(jù)不同場合的要求,在時(shí)鐘上加置其他功能,比如定時(shí)鬧鈴,萬年歷,環(huán)境溫度、濕度檢測,環(huán)境空氣質(zhì)量檢測,USB擴(kuò)展口功能等本設(shè)計(jì)電子時(shí)鐘主要功能為:(1)能隨意設(shè)定走時(shí)起始時(shí)間。對電子鐘而言,最基本的功能是具有對時(shí)功能,即隨意設(shè)定起始時(shí)間。(2)能設(shè)定鬧鐘鬧鈴時(shí)間。電子鐘一般都有鬧鈴功能,即預(yù)設(shè)一個(gè)時(shí)間,一旦走時(shí)到該時(shí)間,電子鐘以聲(音樂形式,可選)和光(顯示狀態(tài)的變化)的形式告警提示,音樂可自選。(3)12小時(shí)/24小時(shí)兩種制式可選,以適應(yīng)不同的需要。(4)帶日歷,能正常顯示年月日。第二章電子時(shí)鐘設(shè)計(jì)方案分析電子鬧鐘既可以通過純硬件實(shí)現(xiàn),也可以通過軟硬件結(jié)合實(shí)現(xiàn),根據(jù)電子時(shí)鐘里的核心部件——秒信號(hào)的產(chǎn)生原理,通常有以下三種形式:2.1FPGA設(shè)計(jì)方案現(xiàn)場可編程門陣列(FieldProgrammableGateArray,F(xiàn)PGA),是20世紀(jì)70年代發(fā)展起來的一種可編程邏輯器件,是目前數(shù)字系統(tǒng)設(shè)計(jì)的主要硬件基礎(chǔ)。FPGA在結(jié)構(gòu)上由邏輯功能塊排列為陣列,并由可編程的內(nèi)部連線連接這些功能塊,來實(shí)現(xiàn)一定的邏輯功能??删幊踢壿嬈骷脑O(shè)計(jì)過程是利用EDA開發(fā)軟件和編程工具對器件進(jìn)行開發(fā)的過程。由于EDA技術(shù)擁有系統(tǒng)的模擬和仿真功能,可讀性、可重復(fù)性、可測性非常好,所以利用EDA開發(fā)FPGA是目前比較流行的方式。當(dāng)然,有時(shí)根據(jù)需要,也會(huì)應(yīng)用MAX+plus開發(fā)集成環(huán)境進(jìn)行設(shè)計(jì)。正因?yàn)镕PGA在設(shè)計(jì)過程中方便、快捷,而且FPGA技術(shù)功能強(qiáng)大,能夠應(yīng)用其制作諸如基代碼發(fā)生器、數(shù)字頻率計(jì)、電子琴、電梯控制器、自動(dòng)售貨機(jī)控制系統(tǒng)、多功能波形發(fā)生器、步進(jìn)電機(jī)定位控制系統(tǒng)、電子時(shí)鐘等。應(yīng)用FPGA能夠?qū)r(shí)鐘設(shè)計(jì)為為四種類型:全局時(shí)鐘、門控時(shí)鐘、多級(jí)邏輯時(shí)鐘和波動(dòng)式時(shí)鐘。多時(shí)鐘系統(tǒng)能夠包括上述四種時(shí)鐘類型的任意組合[2][3][4]。2.2NE555時(shí)基電路設(shè)計(jì)方案555定時(shí)器是美國Signetics公司1972年研制的用于取代機(jī)械式定時(shí)器的中規(guī)模集成電路,因輸入端設(shè)計(jì)有三個(gè)5KΩ的電阻而得名。目前,流行的產(chǎn)品主要有4種:BJT兩個(gè):555,556(含有兩個(gè)555);CMOS兩個(gè):7555,7556(含有兩個(gè)7555)。555定時(shí)器是一種數(shù)字與模擬混合型的集成電路,應(yīng)用廣泛。成本較低,外加電阻、電容等元件就可以構(gòu)成多諧振蕩器、單穩(wěn)電路、施密特觸發(fā)器等,常作為定時(shí)器廣泛應(yīng)用于儀器儀表、家用電器、電子測量及自動(dòng)控制等領(lǐng)域[5]。采用NE555時(shí)基電路或其他振蕩電路產(chǎn)生秒脈沖信號(hào),作為秒加法電路的時(shí)鐘信號(hào)或微處理器的外部中斷輸入信號(hào),可構(gòu)成電子鐘。由555構(gòu)成的秒脈沖發(fā)生器電路見圖2.1。輸出的脈沖信號(hào)V0的頻率F為:式(2.1)可通過調(diào)節(jié)式2.1中的3個(gè)參數(shù),使輸出V0的頻率為精確的1Hz。圖2.1基于555的秒脈沖發(fā)生器采用555定時(shí)器設(shè)計(jì)電子時(shí)鐘,成本低,容易實(shí)現(xiàn)。但是受芯片引腳數(shù)量和功能限制,不容易實(shí)現(xiàn)電子時(shí)鐘的多功能性。2.3單片機(jī)設(shè)計(jì)方案圖2.2系統(tǒng)模塊框圖模塊說明:(1)日歷時(shí)鐘模塊。本模塊可采用日歷時(shí)鐘芯片DS1302,DS1302是美國DALLAS公司生產(chǎn)的實(shí)時(shí)日歷時(shí)鐘芯片,具有秒、分、時(shí)、星期、日、月、年計(jì)數(shù)功能,且可潤年調(diào)整。但如果沒有日歷時(shí)鐘芯片的情況下可采用單片機(jī)中斷的方法產(chǎn)生年/月/日/時(shí)/分/秒等信號(hào)。(2)鍵盤模塊。它是整個(gè)系統(tǒng)中最簡單的部分,根據(jù)功能要求,本系統(tǒng)共需四個(gè)按鍵:功能移位鍵、功能加鍵、功能減鍵、定鬧鍵。并采用獨(dú)立式按鍵。(3)顯示模塊??刹捎脭?shù)碼管顯示(LED)或液晶顯示(LCD)。(4)報(bào)時(shí)模塊。采用一個(gè)揚(yáng)聲器來進(jìn)行鬧鐘報(bào)時(shí)功能。(5)電源模塊。考慮到簡便直接用USB接口5V電源供電。綜上,考慮單片機(jī)貨源充足、價(jià)格低廉,可軟硬件結(jié)合使用,能夠較方便的實(shí)現(xiàn)系統(tǒng)的多功能性,故采用單片機(jī)作為本設(shè)計(jì)的硬件基礎(chǔ)。電子時(shí)鐘硬件設(shè)計(jì)3.1單片機(jī)特點(diǎn)單片機(jī)是微型機(jī)的一個(gè)主要分支,它在結(jié)構(gòu)上的最大特點(diǎn)使把CPU、存儲(chǔ)器、定時(shí)器和多種輸入/輸出接口電路集成在一塊超大規(guī)模集成電路芯片上。就其組成和功能而言,一塊單片機(jī)芯片就是一臺(tái)計(jì)算機(jī)。單片機(jī)具有如下特點(diǎn):(1)集成度高、體積小、有很高的可靠性;(2)控制功能強(qiáng);(3)低功耗、低電壓,便于生產(chǎn)便攜式產(chǎn)品;(4)外部總線增加了I2C(5)單片機(jī)的系統(tǒng)擴(kuò)展、系統(tǒng)配置較典型、規(guī)范,容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。所以單片機(jī)的應(yīng)用非常廣泛,在智能儀表、機(jī)電一體化、實(shí)時(shí)控制、分布式多機(jī)系統(tǒng)以及人們的生活中均有用武之地。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思路和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過軟件方法來實(shí)現(xiàn)了。這種用軟件代替硬件的控制技術(shù),是對生產(chǎn)控制技術(shù)的一次革命。利用單片機(jī)的智能性,可方便地實(shí)現(xiàn)具有智能的電子鐘設(shè)計(jì)。單片機(jī)均具有時(shí)鐘振蕩系統(tǒng),利用系統(tǒng)時(shí)鐘借助微處理器的定時(shí)器/計(jì)數(shù)器可實(shí)現(xiàn)電子鐘功能。然而系統(tǒng)時(shí)鐘誤差較大,電子鐘的積累誤差也可能較大,所以可以通過誤差修正軟件加以修正,或者在設(shè)計(jì)中加入高精度時(shí)鐘日歷芯片,以精確時(shí)間。另外很多功能不同的單片機(jī)是兼容的,這就更便于實(shí)現(xiàn)產(chǎn)品的多功能性。3.2元器件選擇3.2.1微處理器選擇目前在單片機(jī)系統(tǒng)中,應(yīng)用比較廣泛的微處理器芯片主要為8XC5X系列單片機(jī)。該系列單片機(jī)均采用標(biāo)準(zhǔn)MCS-51內(nèi)核,硬件資源相互兼容,品類齊全,功能完善,性能穩(wěn)定,體積小,價(jià)格低廉,貨源充足,調(diào)試和編程方便,所以應(yīng)用極為廣泛,有些文獻(xiàn)將8051泛指MCS-51系列單片機(jī),8051是早期的最典型的代表作,由于MCS-51單片機(jī)影響極深遠(yuǎn),許多公司都推出了兼容系列單片機(jī),就是說MCS-51內(nèi)核實(shí)際上已經(jīng)成為一個(gè)8位單片機(jī)的標(biāo)準(zhǔn)。其他的公司的51單片機(jī)產(chǎn)品都是和MCS-51內(nèi)核兼容的產(chǎn)品而以。同樣的一段程序,在各個(gè)單片機(jī)廠家的硬件上運(yùn)行的結(jié)果都是一樣的,如ATMEL的89C51(已經(jīng)停產(chǎn))、89S51,PHILIPS(菲利浦),和WINBOND(華邦)等,我們常說的已經(jīng)停產(chǎn)的89C51指的是ATMEL公司的AT89C51單片機(jī),同時(shí)是在原基礎(chǔ)上增強(qiáng)了許多特性,如時(shí)鐘,更優(yōu)秀的是由Flash(程序存儲(chǔ)器的內(nèi)容至少可以改寫1000次)存儲(chǔ)器取帶了原來的ROM(一次性寫入),AT89C51的性能相對于8051已經(jīng)算是非常優(yōu)越的了。不過在市場化方面,89C51受到了PIC單片機(jī)陣營的挑戰(zhàn),89C51最致命的缺陷在于不支持ISP(在線更新程序)功能,必須加上ISP功能等新功能才能更好延續(xù)MCS-51的傳奇。89S51就是在這樣的背景下取代89C51的,現(xiàn)在,89S51目前已經(jīng)成為了實(shí)際應(yīng)用市場上新的寵兒,作為市場占有率第一的Atmel目前公司已經(jīng)停產(chǎn)AT89C51,將用AT89S51代替。89S51在工藝上進(jìn)行了改進(jìn),89S51采用0.35新工藝,成本降低,而且將功能提升,增加了競爭力。89SXX可以像下兼容89CXX等51系列芯片。同時(shí),Atmel不再接受89CXX的定單,大家在市場上見到的89C51實(shí)際都是Atmel前期生產(chǎn)的巨量庫存而已。如果市場需要,Atmel當(dāng)然也可以再恢復(fù)生產(chǎn)AT89C51。89S51相對于89C51增加的新功能包括:(1)新增加很多功能,性能有了較大提升,價(jià)格只比89C51稍高一些

(2)ISP在線編程功能,這個(gè)功能的優(yōu)勢在于改寫單片機(jī)存儲(chǔ)器內(nèi)的程序不需要把芯片從工作環(huán)境中剝離。是一個(gè)強(qiáng)大易用的功能。

(3)最高工作頻率為33MHz,大家都知道89C51的極限工作頻率是24M,就是說S51具有更高工作頻率,從而具有了更快的計(jì)算速度。

(4)具有雙工UART串行通道。

(5)內(nèi)部集成看門狗計(jì)時(shí)器,不再需要像89C51那樣外接看門狗計(jì)時(shí)器單元電路。

(6)雙數(shù)據(jù)指示器。

(7)電源關(guān)閉標(biāo)識(shí)。

(8)全新的加密算法,這使得對于89S51的解密變?yōu)椴豢赡?,程序的保密性大大加?qiáng),這樣就可以有效的保護(hù)知識(shí)產(chǎn)權(quán)不被侵犯。

(9)兼容性方面:向下完全兼容51全部字系列產(chǎn)品。比如8051、89C51等等早期MCS-51兼容產(chǎn)品。也就是說所有教科書、網(wǎng)絡(luò)教程上的程序(不論教科書上采用的單片機(jī)是8051還是89C51還是MCS-51等等),在89S51上一樣可以照常運(yùn)行,這就是所謂的向下兼容。

比較結(jié)果:就如同INTEL的P3向P4升級(jí)一樣,雖然都可以跑Windows,不過速度是不同的。

從AT89C51升因此,本設(shè)計(jì)中我們選用S系列的單片機(jī),其中比較常用的有AT89s51和AT89s52,這兩款單片機(jī)的區(qū)別如下:(1)AT89S51是一個(gè)低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4kBytesISP(In-systemprogrammable)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISPFlash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì)算機(jī)的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價(jià)比的解決方案。

AT89S51具有如下特點(diǎn):40個(gè)引腳,4kBytesFlash片內(nèi)程序存儲(chǔ)器,128bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。此外,AT89S51設(shè)計(jì)和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時(shí)計(jì)數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時(shí)該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。(2)At89s52是一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8位CPU和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。AT89S52具有以下標(biāo)準(zhǔn)功能:8k字節(jié)Flash,256字節(jié)RAM,32位I/O口線,看門狗定時(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ù)位為止。8位微控制器8K字節(jié)在系統(tǒng)可編程FlashAT89S52。AT89S52具有以下主要性能:與MCS-51單片機(jī)產(chǎn)品兼容、8K字節(jié)在系統(tǒng)可編程Flash存儲(chǔ)器、1000次擦寫周期、全靜態(tài)操作:0Hz~33Hz、三級(jí)加密程序存儲(chǔ)器、32個(gè)可編程I/O口線、三個(gè)16位定時(shí)器/計(jì)數(shù)器八個(gè)中斷源、全雙工UART串行通道、低功耗空閑和掉電模式、掉電后中斷可喚醒、看門狗定時(shí)器、雙數(shù)據(jù)指針、掉電標(biāo)識(shí)符。相比較而言,AT89S52在AT89S51的基礎(chǔ)上做了改進(jìn)與拓展,性能更優(yōu)越,故本設(shè)計(jì)選用單片機(jī)AT89S52。在電子時(shí)鐘設(shè)計(jì)中,常用的實(shí)時(shí)時(shí)鐘芯片有DS12887、DS1216、DS1643、DS1302。每種芯片的主要時(shí)鐘功能基本相同,只是在引腳數(shù)量、備用電池的安裝方式、計(jì)時(shí)精度和擴(kuò)展功能等方面略有不同。DS12887與DS1216芯片都有內(nèi)嵌式鋰電池作為備用電池;X1203引腳少,沒有嵌入式鋰電池,跟DS1302芯片功能相似,只是相比較之下,X1203與AT89S51搭配使用時(shí)占用I/O口較多。DS1643為帶有全功能實(shí)時(shí)時(shí)鐘的8K×8非易失性SRAM,集成了非易失性SRAM、實(shí)時(shí)時(shí)鐘、晶振、電源掉電控制電路和鋰電池電源,BCD碼表示的年、月、日、星期、時(shí)、分、秒,帶閏年補(bǔ)償。同樣,DS1643擁有28只管腳,硬件連接起來占用微處理器I/O口較多,不方便系統(tǒng)功能拓展和維護(hù)。故而從性價(jià)比和貨源上考慮,本設(shè)計(jì)采用實(shí)時(shí)時(shí)鐘日歷芯片DS1302。DS1302是美國DALLAS公司推出的一種高性能、低功耗的實(shí)時(shí)時(shí)鐘日歷芯片,附加31字節(jié)靜態(tài)RAM,采用SPI三線接口與CPU進(jìn)行同步通信,并可采用突發(fā)方式一次傳送多個(gè)字節(jié)的時(shí)鐘信號(hào)和RAM數(shù)據(jù)。實(shí)時(shí)時(shí)鐘可提供秒、分、時(shí)、日、星期、月和年,一個(gè)月小于31天時(shí)可以自動(dòng)調(diào)整,且具有閏年補(bǔ)償功能。工作電壓寬達(dá)2.5~5.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對后備電源進(jìn)行涓細(xì)電流充電的能力。有主電源和備份電源雙引腳,而且備份電源可由大容量電容(>1F)來替代。需要強(qiáng)調(diào)的是,DS1302需要使用32.768KHz的晶振。DS1302引腳圖參照圖3.2。圖3.1DS1302芯片引腳圖其引腳功能參照表3.1。表3.1DS1302引腳功能說明引腳號(hào)名稱功能1VCC1備份電源輸入2X132.768KHz晶振輸入3X232.768KHz晶振輸出4GND地5RST控制移位寄存器/復(fù)位6I/O數(shù)據(jù)輸入/輸出7SCLK串行時(shí)鐘8VCC2主電源輸入在編程過程中要注意DS1302的讀寫時(shí)序。DS1302是SPI總線驅(qū)動(dòng)方式。它不僅要向寄存器寫入控制字,還需要讀取相應(yīng)寄存器的數(shù)據(jù)。要想與DS1302通信,首先要先了解DS1302的控制字。DS1302的控制字如表3.2。表3.2DS1302控制字(即地址及命令字節(jié))BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT01RAMA4A3A2A1A0RD控制字的作用是設(shè)定DS1302的工作方式、傳送字節(jié)數(shù)等。每次數(shù)據(jù)的傳輸都是由控制字開始??刂谱指魑坏暮x和作用如下:(1)BIT7:控制字的最高有效位,必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。BIT6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);(3)BIT5至BIT1(A4~A0):用A4~A0表示,定義片內(nèi)寄存器和RAM的地址。定義如下:當(dāng)BIT6位=0時(shí),定義時(shí)鐘和其他寄存器的地址。A4~A0=0~6,順序?yàn)槊?、分、時(shí)、日、月、星期、年的寄存器。當(dāng)A4~A0=7,為芯片寫保護(hù)寄存器地址。當(dāng)A4~A0=8,為慢速充電參數(shù)選擇寄存器。當(dāng)A4~A0=31,為時(shí)鐘多字節(jié)方式選擇寄存器。當(dāng)BIT6=1時(shí),定義RAM的地址,A4~A0=0~30,對應(yīng)各子地址的RAM,地址31對應(yīng)的是RAM多字節(jié)方式選擇寄存器。BIT0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作??刂谱挚偸菑淖畹臀婚_始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從最低位(0位)開始。同樣,在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)也是從最低位到最高位。圖3.2DS1302數(shù)據(jù)讀寫時(shí)序DS1302的數(shù)據(jù)讀寫方式有兩種,一種是單字節(jié)操作方式,一種是多字節(jié)操作方式。每次僅寫入或讀出一個(gè)字節(jié)數(shù)據(jù)稱為單字節(jié)操作,每次對時(shí)鐘/日歷的8字節(jié)或31字節(jié)RAM進(jìn)行全體寫入或讀出的操作,稱其為多字節(jié)操作方式。當(dāng)以多字節(jié)方式寫時(shí)鐘寄存器時(shí),必須按數(shù)據(jù)傳送的次序依次寫入8個(gè)寄存器。但是,當(dāng)以多字節(jié)方式寫RAM時(shí),不必寫所有31字節(jié)。不管是否寫了全部31字節(jié),所寫的每一個(gè)字節(jié)都將傳送至RAM。為了啟動(dòng)數(shù)據(jù)的傳輸,CE引腳信號(hào)應(yīng)由低變高,當(dāng)把CE驅(qū)動(dòng)至邏輯1的狀態(tài)時(shí),SCLK必須為邏輯0,數(shù)據(jù)在SCLK的上升沿串行輸入。無論是讀周期還是寫周期,也無論送方式是單字節(jié)傳送還是多字節(jié)傳送,都要通過控制字指定40字節(jié)中的哪個(gè)將被訪問。在開始8個(gè)時(shí)鐘周期把命令字(具有地址和控制信息的8位數(shù)據(jù))裝入移位寄存器之后,另外的時(shí)鐘在讀操作時(shí)輸出數(shù)據(jù),在寫操作時(shí)輸入數(shù)據(jù),所有的數(shù)據(jù)在時(shí)鐘的下降沿變化。所有寫入或讀出操作都是先向芯片發(fā)送一個(gè)命令字節(jié)。對于單字節(jié)操作,包括命令字節(jié)在內(nèi),每次為2個(gè)字節(jié),需要16個(gè)時(shí)鐘;對于時(shí)鐘/日歷多字節(jié)模式操作,每次為7個(gè)字節(jié),需要72個(gè)時(shí)鐘;而對于RAM多字節(jié)模式操作,每次則為32字節(jié),需要多達(dá)256個(gè)時(shí)鐘。這里僅給出單字節(jié)讀寫時(shí)序,如圖3.2。多字節(jié)操作方式與其類似,只是后面跟的字節(jié)數(shù)不止一個(gè)。3.2.2DS1302的片內(nèi)寄存器表3.3DS1302有關(guān)日歷、時(shí)間的寄存器讀寄存器寫寄存器BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0范圍81H80HCH10秒秒00-5983H82H10分分00-5985H84H010時(shí)時(shí)1-120-23AM/PM87H86H0010日日1-3189H88H0010月月1-128BH8AH00000周日1-78DH8CH10年年00-998FH8EHWP0000000—通過控制字對DS1302片內(nèi)寄存器進(jìn)行尋址之后,即可就所選中寄存器的各位進(jìn)行操作。片內(nèi)各寄存器及各位的功能定義如表3.3。DS1302有關(guān)日歷、時(shí)間的寄存器共有10個(gè),時(shí)鐘/日歷包含在其中的7個(gè)寫/讀寄存器內(nèi),這7個(gè)寄存器分別是秒、分、小時(shí)、日、月、星期和年。小時(shí)寄存器(85H、84H)的位7用于定義DS1302是運(yùn)行于12小時(shí)模式還是24小時(shí)模式。當(dāng)為12小時(shí)制式時(shí),位5為“0”表示AM;為“1”表示PM。在24小時(shí)制式下,位5是第二個(gè)10小時(shí)位(20~23時(shí))。

秒寄存器(81H、80H)的位7定義為時(shí)鐘暫停標(biāo)志(CH)。當(dāng)該位置為1時(shí),時(shí)鐘振蕩器停止,DS1302處于低功耗狀態(tài);當(dāng)該位置為0時(shí),時(shí)鐘開始運(yùn)行。一般在設(shè)置時(shí)鐘時(shí),可以停止其工作,設(shè)定完之后,再啟動(dòng)其工作??刂萍拇嫫鳎?FH、8EH)的位7是寫保護(hù)位(WP),其它7位均置為0。在任何片內(nèi)時(shí)鐘/日歷寄存器和RAM,在寫操作之前,WP位必須為0,否則將不可寫入。當(dāng)WP位為1時(shí),寫保護(hù)位防止對任一寄存器的寫操作。因此,通過置寫保護(hù)位,可以提高數(shù)據(jù)的安全性。另外,還有慢速充電控制寄存器和RAM寄存器。如表3.4。表3.4充電控制寄存器和RAM寄存器各位定義BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0充電控制寄存器TCSTCSTCSTCSDSDSRSRSRAM寄存器————————慢速充電寄存器控制著DS1302的慢速充電特性。寄存器的BIT4~BIT7(TCS)決定是否具備充電性能:僅在編碼為1010的條件下才具備充電性能,其他編碼組合不允許充電。BIT2和BIT3選擇在VCC2和VCC1之間是一個(gè)還是兩個(gè)二極管串入其中。如果編碼DS是01,選擇一個(gè)二極管;如果編碼是10,選擇兩個(gè)二極管;其他編碼將不允許充電。該寄存器的BIT0和BIT1用于選擇與二極管相串聯(lián)的電阻值。其中編碼RS=01為2KΩ,RS=10為4KΩ,RS=11為8KΩ,而RS=00將不允許進(jìn)行充電。因此,根據(jù)慢速充電寄存器的不同編碼可得到不同的充電電流。其具體計(jì)算如公式3.1:I充電=(V0-VD-VE)/R(3.1)式中:V0——所接入的5.0V工作電壓;VD——二極管壓降,一個(gè)按0.7V計(jì)算;R——慢速充電控制寄存器0和1位編碼決定的電阻值;VE——VCC1腳所接入的電池電壓。RAM寄存器尋址空間一次排列的31字節(jié)靜態(tài)RAM可為用戶使用,備用電源位RAM提供了掉電保護(hù)功能。寄存器和RAM的操作通過命令字節(jié)的BIT6加以區(qū)別。當(dāng)BIT6為“0”時(shí)對RAM區(qū)進(jìn)行尋址;否則將對時(shí)鐘/日歷寄存器尋址。其操作方法與前述相同[9][10][11]。具體驅(qū)動(dòng)程序參見附錄A。3.3電子時(shí)鐘硬件電路設(shè)計(jì)電子鬧鐘至少要包括秒信號(hào)發(fā)生器、時(shí)間顯示電路、按鍵電路、供電電源、鬧鈴指示電路等幾部分。硬件電路系統(tǒng)框圖參照圖3.3。該系統(tǒng)使用AT89S52單片機(jī)作為核心,通過讀取時(shí)鐘日歷芯片DS1302的數(shù)據(jù),完成此電子時(shí)鐘的主要功能——時(shí)鐘/日歷。使用LCD已經(jīng)顯示,分別顯示時(shí)/年,分/月,秒/日。圖3.3帶日歷的電子時(shí)鐘硬件系統(tǒng)框圖鍵盤是為了完成時(shí)鐘/日歷的校對和顯示功能。由于此電子時(shí)鐘要求具有鬧鈴功能,所以設(shè)計(jì)有鬧鈴電路,進(jìn)行聲音響鈴。整個(gè)電路使用+5V電源為整個(gè)電路供電。具體電路圖請參見附錄C。3.3.1晶振電路設(shè)計(jì)單片機(jī)的時(shí)鐘信號(hào)通常用兩種電路形式得到,即內(nèi)部振蕩方式和外部振蕩方式。在引腳XTAL1和XTAL2外接晶體振蕩器(簡稱晶振)或陶瓷諧振器,就構(gòu)成了內(nèi)部振蕩方式。由于單片機(jī)內(nèi)部有一個(gè)高增益反相放大器,當(dāng)外接晶振后,就構(gòu)成了自激振蕩器并產(chǎn)生振蕩時(shí)鐘脈沖,本設(shè)計(jì)即采取的這種方式。圖3.4晶振電路如圖所示,電容器C1,C2是負(fù)載電容,起穩(wěn)定振蕩頻率、快速起振的作用,其電容值一般在5-30pF,本電路選用的是22pf的電容。晶振頻率的典型值為12MH2,采用6MHz的情況也比較多,本電路選用的是12MHz的晶振,其固有頻率為12×10的6次方赫茲,單片機(jī)的時(shí)鐘周期是1/12微秒,機(jī)器周期是1us。用內(nèi)部振蕩方式所得到的時(shí)鐘信號(hào)比較穩(wěn)定,實(shí)用電路中使用比較多。3.3.2復(fù)位電路設(shè)計(jì)復(fù)位是單片機(jī)的初始化操作,以便使CPU和系統(tǒng)中其他部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)單片機(jī)系統(tǒng)在運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),也可按復(fù)位鍵重新啟動(dòng)。復(fù)位后,PC內(nèi)容初始化為0000H,使單片機(jī)從0000H單元開始執(zhí)行程序。單片機(jī)復(fù)位后,除了PC之外,還對片內(nèi)的特殊功能寄存器有影響,它們的復(fù)位狀態(tài)如表3.9所示。單片機(jī)復(fù)位后不影響內(nèi)部RAM的狀態(tài)[17]。89C51單片機(jī)復(fù)位信號(hào)的輸入端是RST引腳,高電平有效。其有效時(shí)間持續(xù)24個(gè)時(shí)鐘周期(2個(gè)機(jī)器周期)以上。RST端的外部復(fù)位電路有兩種操作方式:上電自動(dòng)復(fù)位和按鍵手動(dòng)復(fù)位。上電自動(dòng)復(fù)位是利用電容儲(chǔ)電來實(shí)現(xiàn)的,上電瞬間,RC電路充電,RST端出現(xiàn)正脈沖,隨著充電電流的減少,RST的電位逐漸下降。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。按鍵電平復(fù)位是相當(dāng)于RST端通過電阻接高電平。按鍵脈沖復(fù)位,利用RC微分電路產(chǎn)生正脈沖。出于應(yīng)用方便,本設(shè)計(jì)采用按鍵電平復(fù)位電路。表3.5單片機(jī)寄存器的復(fù)位狀態(tài)表寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)PC0000HTCON00HACC00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP1、P3FFHSCON00HIP××000000BSBUF不定IE0××00000BPCON0×××××××B(NMOS)TMOD00H0×××0000B(CHMOS)按鍵復(fù)位電路連接如下圖所示:圖3.5按鍵復(fù)位電路3.3.3按鍵電路設(shè)計(jì)功能鍵主要由4*4編碼矩陣鍵盤組成,在不同的顯示模式下各個(gè)按鍵的功能是不同的,一個(gè)鍵具有多重功能,本電路模塊因?qū)嵨镒詭?*4編碼矩陣鍵盤電路,故可選取其中幾個(gè)按鍵來完成相應(yīng)功能,根據(jù)需要,本時(shí)鐘需要設(shè)置以下功能鍵:設(shè)置鍵,加1操作鍵,減1操作鍵,退出鍵,鬧鈴開關(guān)鍵,按鍵電路如圖所示。圖3-5所示為4*4編碼矩陣鍵盤與單片機(jī)的連接電路。矩陣鍵盤又稱為行列式鍵盤,它是用4條I/O線作為列線組成的鍵盤。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤中按鍵的個(gè)數(shù)是4*4個(gè)。這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O口的利用率。它是采用逐行掃描按鍵的檢測方法,來確定是否有鍵按下,且判斷鍵值。即CPU通過輸出口把一個(gè)“步進(jìn)的0”逐行加之鍵盤的行線上,然后通過輸入口檢查列線的狀態(tài)由列線和行線狀態(tài)的組合來確定是否有鍵按下,并確定被按鍵所處的行、列位置。圖3-64*4編碼矩陣鍵盤電路3.3.4顯示電路設(shè)計(jì)液晶顯示模塊具有體積小、功耗低、顯示內(nèi)容豐富等特點(diǎn),現(xiàn)在字符型液晶顯示模塊已經(jīng)是單片機(jī)應(yīng)用設(shè)計(jì)中最常用的信息顯示器件了。1602B可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線D0-D7和RS、R\W、EN三個(gè)控制端口,工作電壓為5V,并且?guī)в凶址麑Ρ榷日{(diào)節(jié)和背光。該模塊也可以只用D4-D7作為四位數(shù)據(jù)分兩次傳送,這樣的話可以節(jié)省MCU的I\O資源。各引腳的功能見表3-6。表3-6LCD引腳功能圖從該模塊的正面看,引腳排列從右向左為15腳、16腳,然后才是1-14腳。VDD:電源正極,4.5-5.5V,通常使用5V電壓。VL:LCD對比度調(diào)節(jié)端,電壓調(diào)節(jié)范圍為0-5V。接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高,但對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,因此通常使用一個(gè)10K的電位器來調(diào)整對比度,或者直接串接一個(gè)電阻到地。RS:MCU寫入數(shù)據(jù)或者指令選擇端。MCU要寫入指令時(shí),使RS為低電平;MCU要寫入數(shù)據(jù)時(shí),使RS為高電平。R\W:讀寫控制端。R\W為高電平時(shí),讀取數(shù)據(jù);R\W為低電平是,寫入數(shù)據(jù)。E:LCD模塊使能信號(hào)控制端。寫數(shù)據(jù)時(shí),需要下降沿觸發(fā)模塊。D0-D7:8位數(shù)據(jù)總線,三態(tài)雙向。如果MCU的I\O口資源緊張的話,該模塊也可以只使用四位數(shù)據(jù)線D4-D7接口傳送數(shù)據(jù)。BLA:LCD背光正極。需要背光時(shí),BLA串接一個(gè)限流電阻接VDD,BLK接地,實(shí)測該模塊的背光電流為50mA左右。BLK:LCD背光地?cái)?。它與單片機(jī)的連接如圖3-7所示:圖3.7LCD與單片機(jī)接口LCD硬件部分包括對比度調(diào)節(jié)電路和背光控制電路,測試其功能也很簡單,只要按照相關(guān)命令格式送入數(shù)據(jù),看屏幕上有沒有顯示,然后調(diào)節(jié)對比度調(diào)節(jié)電路中的可變電阻,使顯示對比度達(dá)到最佳,給背光控制端口加上高電平看背光是否會(huì)亮。要驅(qū)動(dòng)LCD顯示屏顯示就必須要有電源驅(qū)動(dòng),否則亮不了,而恰好P0口沒有電源,所以就要外接電源,接上電阻是起到限流的作用;如果接P1、P2、P3端口就不用外接電源和電阻了。3.3.4時(shí)鐘電路設(shè)計(jì)系統(tǒng)時(shí)鐘應(yīng)用了實(shí)時(shí)時(shí)鐘日歷芯片DS1302,實(shí)時(shí)時(shí)鐘電路DS1302是一種具有涓細(xì)電流充電能力的電路,主要特點(diǎn)是采用串行數(shù)據(jù)傳輸,可為掉電保護(hù)電源提供可編程的充電功能,并且可以關(guān)閉充電功能,其連接如圖3.8。該硬件電路設(shè)計(jì)簡單,抗干擾能力強(qiáng)。如圖,Vcc1接3V的電池作后備電源,Vcc2接+5V的主電源,DS1302由Vcc1或Vcc2兩者中的較大者供電,這樣,在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。X1和X2是振蕩源,外接32.768kHz晶振(這是因?yàn)楫?dāng)石英晶體原始頻率為32.768kHz時(shí),經(jīng)過15次二分頻以后出來的頻率就是1Hz,也就是一秒,即可以提供標(biāo)準(zhǔn)的秒脈沖,用于實(shí)時(shí)時(shí)鐘芯片計(jì)時(shí))。DS1302與單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線(1)RST復(fù)位(2)I/O數(shù)據(jù)線(3)SCLK(串行時(shí)鐘),并且分別與單片機(jī)的P1.7、P1.6、P1.5相連。其中RST是復(fù)位/片選線,通過把RST輸入驅(qū)動(dòng)置高電平來啟動(dòng)所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時(shí),所有的數(shù)據(jù)傳送被初始化,允許對DS1302進(jìn)行操作。如果在傳送過程中RST置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在Vcc≥2.5V之前,RST必須保持低電平。只有在SCLK為低電平時(shí),才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向)。在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7,SCLK為時(shí)鐘輸入端。寫操作是在SCLK低電平時(shí)單片機(jī)將數(shù)據(jù)放到IO上,當(dāng)SCLK上升沿時(shí),DS1302讀取。而讀操作是在SCLK高電平時(shí)DS1302放數(shù)據(jù)到IO上,將SCLK置為低電平后,單片機(jī)就可從IO上讀取數(shù)據(jù)。圖3.8系統(tǒng)時(shí)鐘電路3.3.5鬧鈴電路設(shè)計(jì)鬧鈴音樂可以直接采用蜂鳴器鬧鈴,如當(dāng)前時(shí)刻與鬧鈴時(shí)間相同,單片機(jī)向蜂鳴器送出高電平,蜂鳴器發(fā)聲。采用蜂鳴器鬧鈴結(jié)構(gòu)簡單,控制方便,但是發(fā)出的鬧鈴聲音單一。也可以在編程的時(shí)候編寫一段音樂程序,待鬧鈴時(shí)間到時(shí),調(diào)用該音樂程序給揚(yáng)聲器,便響起音樂。不過該方法只能做一些簡單音樂,并且音樂程序會(huì)占用很多單片機(jī)存儲(chǔ)資源。還有一種方法是采用錄音放音芯片1420做鬧鈴,先對錄放音設(shè)備錄入一段音樂,當(dāng)?shù)皆O(shè)定時(shí)間時(shí),單片機(jī)控制錄放音設(shè)備放音。采用錄放音電路,鈴聲可以是預(yù)先設(shè)定的一段自己喜歡的音樂,符合電器設(shè)備人性化的要求。且1420芯片可以分段錄音,還具有語音報(bào)時(shí)功能。另外,也可以購置一塊音樂集成電路,加置在單片機(jī)和蜂鳴器之間,當(dāng)單片機(jī)連接鬧鈴電路的管腳送出高電平時(shí),音樂集成電路會(huì)給蜂鳴器特定脈沖,使蜂鳴器發(fā)聲。此類集成電路體積較小,使用方便,不足的是音樂簡單、單一。鬧鈴的音樂不是本設(shè)計(jì)中的重點(diǎn),故采用最簡單的方法,直接采用HYT-1203型電磁式有源蜂鳴器鬧鈴,采用蜂鳴器鬧鈴結(jié)構(gòu)簡單,控制方便,電路如圖所示。三極管選定的是C9012PNP型三極管(仿真時(shí)用2N5401型三極管代替),其基級(jí)b連接一個(gè)10k歐左右的電阻后再接I/O口(P3.7口)(注意此處電阻是“限流電阻”限制基極電流不過大,防止三極管燒毀),發(fā)射極e連接5v左右電壓(據(jù)蜂鳴器的工作電壓而定),集電極c連接蜂鳴器后接地。單片機(jī)在復(fù)位后的I/O口是高電平,此時(shí)三極管是截止的,編寫程序使選定的I/O為低電平,此時(shí)三極管導(dǎo)通,導(dǎo)通后蜂鳴器與電源正極連通,構(gòu)成一個(gè)工作回路,便可鳴叫。數(shù)據(jù)處理:如圖所示,當(dāng)P3.7口為高電平時(shí),該引腳電壓為5V,使三極管截止;為低電平時(shí),該引腳電壓接近0V,三極管導(dǎo)通,此時(shí)的積極電流Ib為(5-0.7)/10K=0.43mA,發(fā)射極電流基本上和基極電流相等,由于三極管的放大倍數(shù)本來就是不確定的,只有一個(gè)范圍,要實(shí)際使用的時(shí)候要測量,我這個(gè)管子的放大倍數(shù)測量的就是70倍左右,所以集電極電流Ic約為30.1MA,蜂鳴器上的電壓為5-0.7=4.3V,而該蜂鳴器工作電壓為3V,工作電流為30MA,故可以驅(qū)動(dòng)該蜂鳴器鳴叫。蜂鳴器的分貝與放大器的功率,喇叭的頻率有關(guān),功率較大喇叭頻率較寬分貝就大。本設(shè)計(jì)的驅(qū)動(dòng)方式:利用I/O定時(shí)翻轉(zhuǎn)電平產(chǎn)生驅(qū)動(dòng)波形對蜂鳴器進(jìn)行驅(qū)動(dòng),即利用定時(shí)器來做定時(shí),通過定時(shí)翻轉(zhuǎn)電平產(chǎn)生符合蜂鳴器要求的頻率的波形,這個(gè)波形就可以用來驅(qū)動(dòng)蜂鳴器了。本設(shè)計(jì)采用的是500Hz的蜂鳴器的驅(qū)動(dòng),可以知道周期為2000μs,這樣只需要驅(qū)動(dòng)蜂鳴器的I/O口每1000μs翻轉(zhuǎn)一次電平就可以產(chǎn)生一個(gè)頻率為500Hz,占空比為1/2duty的方波,再通過三極管放大來驅(qū)動(dòng)蜂鳴器。如圖3.9。圖3.9鬧鈴電路第三章電子時(shí)鐘軟件設(shè)計(jì)C51單片機(jī)可以應(yīng)用匯編語言和C語言進(jìn)行編程。,匯編語言與機(jī)器指令一一對應(yīng)所以用匯編語言編寫的程序在單片機(jī)里運(yùn)行起來效率較高。C語言程序可讀性高,更便于理解。本設(shè)計(jì)使用C語言編程。4.1主程序設(shè)計(jì)第一次上電,系統(tǒng)先進(jìn)行初始化,LED顯示初始時(shí)間“14:28:00”,并開始走時(shí)。初始日期為2008年5月12日,此刻若按K1鍵,LED顯示“080512”單片機(jī)依次開始調(diào)用鍵盤掃描子程序、DS1302子程序、DS18B20子程序、鬧鈴子程序,經(jīng)過延時(shí),返回程序開頭循環(huán)運(yùn)行。主程序流程圖如圖4.1。圖4.1多功能電子鐘主程序流程圖4.2子程序設(shè)計(jì)4.2.1實(shí)時(shí)時(shí)鐘日歷子程序設(shè)計(jì)該程序主要實(shí)現(xiàn)對DS1302寫保護(hù)、充電,對年、月、日、時(shí)、分、秒等寄存器的讀寫操作。在讀寫操作子程序中都執(zhí)行了關(guān)中斷指令,因?yàn)樵诖型ㄐ艜r(shí)對時(shí)序要求比較高,而且在此是用I/O口軟件模擬串行時(shí)鐘脈沖,所以在通信過程中最好保證傳輸?shù)倪B續(xù)性,不要允許中斷。其流程圖如圖4.2。圖4.2實(shí)時(shí)時(shí)鐘日歷子程序流程圖DS1302每次上電時(shí)自動(dòng)處于暫停狀態(tài),必須把秒寄存器的位7置位0,時(shí)鐘才開始計(jì)時(shí)。如果DS1302一直沒有掉電,則不存在此問題。在進(jìn)行寫操作時(shí),需要先解除寫保護(hù)寄存器的“禁止”狀態(tài)。當(dāng)用多字節(jié)模式進(jìn)行操作時(shí),必須寫夠8字節(jié)[18]。源程序見附錄A。4.2.2顯示子程序設(shè)計(jì)用74LS164驅(qū)動(dòng)LED數(shù)碼管靜態(tài)顯示電路,編程也很容易。只要將需要顯示的數(shù)字編輯成對應(yīng)的BCD碼,逐位送入74LS164的A、B串行輸入端,數(shù)碼管將正常顯示。關(guān)鍵之處是要實(shí)現(xiàn)根據(jù)鍵值顯示不同的數(shù)字。為了方便實(shí)現(xiàn)按鍵顯示,程序中調(diào)用的都是各個(gè)標(biāo)志位,通過判斷標(biāo)志位的“真”、“假”來決定顯示的內(nèi)容。顯示子程序流程圖參見圖4.4。源程序見附錄A。4.2.3鍵盤掃描子程序單片機(jī)對鍵盤掃描的方法有隨機(jī)掃描方式、定時(shí)掃描方式和中斷掃描方式。在隨機(jī)掃描方式中,CPU完成某特定任務(wù)后,即執(zhí)行鍵盤掃描程序,以確定鍵盤有無按鍵輸入,然后根據(jù)按鍵功能轉(zhuǎn)去執(zhí)行相應(yīng)的操作。在執(zhí)行鍵盤按鍵規(guī)定的功能中不理睬鍵盤輸入。定時(shí)掃描方式與隨機(jī)掃描方式基本相同,只是利用CPU內(nèi)的定時(shí)中斷,每隔一定時(shí)間掃描有無按鍵被按下,鍵盤反應(yīng)速度較快,在處理按鍵功能過程中,可以通過鍵盤命令進(jìn)行干預(yù),如取消、暫停等操作。前兩種掃描方式均會(huì)占用CPU大量時(shí)間。不管有沒有鍵入操作,CPU總要在一定的時(shí)間內(nèi)進(jìn)行掃描,這對于單片機(jī)控制系統(tǒng)是很不利的[16]。由于本設(shè)計(jì)中AT89C51單片機(jī)在系統(tǒng)中的主要任務(wù)是接受DS1302和DS18B20的數(shù)據(jù)并送出顯示,完成時(shí)鐘/日歷校對和日期/溫度顯示控制。89C51單片機(jī)完全有能力完成以上工作,所以采用隨機(jī)掃描鍵盤方式,系統(tǒng)也能夠正常運(yùn)行。程序流程如圖4.5。單片機(jī)掃描完鍵盤,得到鍵值,并根據(jù)鍵值轉(zhuǎn)入執(zhí)行對應(yīng)任務(wù),以實(shí)現(xiàn)按鍵功能。如果沒有按鍵按下,則程序掃描到Key=FFH,將鍵值Key清零,返回主程序。源程序見附錄A。4.2.4鬧鈴子程序設(shè)計(jì)鬧鈴子程序最主要的任務(wù)是不斷用時(shí)鐘分(min)與時(shí)(hour)同設(shè)定的鬧鈴分(clk_min)與鬧鈴時(shí)(clk_hour)比較,只要滿足min等于clk_min、hour等于clk_hour,響鈴啟動(dòng)5分鐘,并根據(jù)外部按鍵執(zhí)行相應(yīng)貪睡任務(wù)。該程序流程圖參見圖4.6。源程序見附錄A。圖4.3顯示子程序流程圖圖4.4鍵盤掃描子程序圖4.5鬧鈴子程序流程圖第五章系統(tǒng)調(diào)試調(diào)試工作分硬件調(diào)試和軟件調(diào)試兩部分,調(diào)試方法介紹如下:首先,硬件調(diào)試主要是先搭建硬件平臺(tái),然后利用萬用表等工具對電路檢查,最后應(yīng)用程序進(jìn)行功能調(diào)試。硬件調(diào)試比較費(fèi)時(shí),需要細(xì)心和耐心,也需要熟練掌握電路原理。然后,可以直接應(yīng)用一些編輯或仿真軟件進(jìn)行軟件調(diào)試,比如單片機(jī)C51編輯軟件Keil。該軟件提供了一個(gè)集成開發(fā)環(huán)境uVision,它包括C編輯器、宏編輯器、連接器、庫管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器。通過編譯、運(yùn)行,可以檢查程序錯(cuò)誤。但應(yīng)用此方法,仍需要十分了解所使用元器件的工作方式和管腳連接方式。在軟件調(diào)試過程中要仔細(xì)耐心,即便是多寫或少些一兩個(gè)字符,都無法編譯成功。而有時(shí)往往在Keil中編譯、運(yùn)行無錯(cuò),但燒錄到單片機(jī)中運(yùn)行起來就會(huì)出錯(cuò),很可能是編程時(shí)管腳或時(shí)序編輯得不對。還有一種方式,即應(yīng)用仿真軟件搭建電路的軟件平臺(tái),再導(dǎo)入程序進(jìn)行仿真調(diào)試。如果電路出錯(cuò),可以在計(jì)算機(jī)上方便的修改電路,程序出錯(cuò)可以重新編輯程序,這種方法節(jié)時(shí)、省力,經(jīng)濟(jì)、方便。筆者應(yīng)用的仿真軟件為Proteus。總之,調(diào)試過程是一個(gè)軟硬件相結(jié)合調(diào)試的過程,硬件電路是基礎(chǔ),軟件是檢測硬件電路和實(shí)現(xiàn)其功能的關(guān)鍵[13]。在調(diào)試過程中,首先必須明確調(diào)試順序。例如:本設(shè)計(jì)是在單片機(jī)系統(tǒng)基礎(chǔ)上建立起來的,所以必須先確定單片機(jī)基礎(chǔ)電路能否正常工作。為了正確顯示時(shí)間,接下來還要確定顯示電路能否正常工作。硬件調(diào)試的過程,也是軟件調(diào)試的過程。然后,要準(zhǔn)備好調(diào)試的工具。硬件調(diào)試需要萬用表、示波器等,軟件調(diào)試一般需要諸如Keil等仿真編輯器。筆者根據(jù)自己實(shí)際制作該多功能電子時(shí)鐘的經(jīng)驗(yàn),將調(diào)試過程介紹如下:5.1硬件調(diào)試5.1.1單片機(jī)基礎(chǔ)電路調(diào)試單片機(jī)基礎(chǔ)電路包括電源、單片機(jī)、外部時(shí)鐘震蕩電路、復(fù)位電路和外部接口電路。調(diào)試過程需要注意以下幾點(diǎn):(1)檢查電源是否完好。(2)單片機(jī)電源要連接正確,并且保證AT89C51的31號(hào)引腳接高電平。AT89C51的31號(hào)引腳是外部程序存儲(chǔ)器選擇信號(hào)端,當(dāng)該引腳為高電平時(shí),單片機(jī)會(huì)一直從片內(nèi)程序存儲(chǔ)器內(nèi)取指令。(3)如果使用P0口做I/O口,要接上拉電阻。(4)使用萬用表排查電路中是否存在斷路或者短路情況。筆者在制作外部接口電路時(shí)使用的是排針,焊接時(shí)容易出現(xiàn)管腳之間短路,所以在上電以前必須先排查電路。(5)編輯一個(gè)使一組發(fā)光二極管循環(huán)點(diǎn)亮的程序并燒錄到單片機(jī)內(nèi),上電運(yùn)行,檢查單片機(jī)是否正常工作,復(fù)位電路是否正確。筆者編輯了使一組P1口點(diǎn)亮8個(gè)發(fā)光二極管循環(huán)點(diǎn)亮的程序,程序代碼如下:#include<reg51.h>voiddelay(void)//延時(shí)子程序{Unsignedchari,j,k;//延時(shí)時(shí)間根據(jù)變量i,j,k不同而改變for(i=50;i>0;i--)for(j=50;j>0;j--)for(k=250;k>0;i--);}voidmain(){unsignedintn;unsignedcharcodeledp[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};while(1){P1=0xFFH;//初始化P1口for(n=0;n<8;n++) {P1=ledp[n]; delay();}}}5.1.2DS1302電路調(diào)試該電路包含DS1302芯片、主電源、備用電源、晶振等部分。在與單片機(jī)連接的過程中需要注意以下幾點(diǎn):清楚DS1302與單片機(jī)連接的管腳。本設(shè)計(jì)定義為:DS1302的SCLK連接P1.5,I/O連接P1.6,RST連接P1.7。注意電源正負(fù)極連接。DS1302接32.768KHz的晶振。該晶振體型比較小,在焊接時(shí)要小心,注意不要將晶振引腳弄斷。同時(shí)也要盡量使晶振離DS1302的X1、X2引腳近距離焊接。編寫DS1302的時(shí)鐘/日歷程序,只要求能夠正確顯示時(shí)間。燒錄進(jìn)單片機(jī),檢查電路電源正負(fù)極連接是否正確,檢查P1.0和P1.1引腳接線是否正確。檢查無誤后可以上電檢查。筆者編寫了一段時(shí)鐘/日歷顯示程序,設(shè)置初始時(shí)間為14:28:00,初始日期為2008年5月12日。上電后LED數(shù)碼管顯示“142800”,之后開始走時(shí)。觀察32分鐘之后,數(shù)碼管顯示“150000”,證明DS1302電路正確。源程序見附錄A5.1.3按鍵電路調(diào)試按鍵電路比較簡單,故調(diào)試起來也很容易。如果確保按鍵焊接正確,只需在DS1302的調(diào)試程序上加上一段日歷顯示子程序,并在主程序中寫入:If(P_7==0){dis_calendar;}日歷顯示子程序原理與時(shí)鐘顯示子程序原理相同,源程序見附錄A該程序的功能是:當(dāng)按下K7時(shí),第1~6位LED數(shù)碼管馬上由時(shí)間顯示日期。當(dāng)K7彈出后,數(shù)碼管1~6位有顯示日期轉(zhuǎn)為顯示實(shí)時(shí)時(shí)間[20]。5.2軟件調(diào)試在硬件調(diào)試完畢的基礎(chǔ)上,需要進(jìn)一步完善程序,也就是進(jìn)入軟件調(diào)試階段。在本設(shè)計(jì)中,軟件調(diào)試主要分兩大部分:實(shí)時(shí)時(shí)鐘日歷子程序調(diào)試和按鍵子程序調(diào)試。將這兩部分調(diào)試成功,那么整個(gè)設(shè)計(jì)的軟件部分也就基本完成了。在硬件調(diào)試部分,已經(jīng)將實(shí)時(shí)時(shí)鐘日歷子程序調(diào)試完畢了,只需在主程序中調(diào)用按鍵子程序即可,源程序見附錄A,這里不再贅述。5.2.1鍵盤子程序調(diào)試依據(jù)設(shè)計(jì)要求,鍵盤子程序需要完成對時(shí)間/日歷的校對、日期/溫度的顯示和鬧鈴的開關(guān)。為了便于顯示子程序和鬧鈴子程序的調(diào)用,除了K1、K2鍵以外,其余按鍵都定義功能標(biāo)志位。例如:If(K7==0){alarm_flag=true;}在調(diào)用鬧鈴子程序時(shí),鬧鈴標(biāo)志位為“1”,則開啟鬧鈴,否則關(guān)閉鬧鈴。源程序見附錄A。結(jié)論過去人們應(yīng)用時(shí)鐘僅僅是為了明確當(dāng)前時(shí)間。隨著生產(chǎn)力的發(fā)展,社會(huì)的進(jìn)步,生產(chǎn)生活對時(shí)鐘的需求越來越大,對時(shí)鐘的體型、功能的要求也各有不同。所以多功能電子時(shí)鐘在今后的應(yīng)用也會(huì)越來越廣泛。基于單片機(jī)實(shí)現(xiàn)電子時(shí)鐘,僅僅是眾多方法之一。并且市場上的實(shí)時(shí)時(shí)鐘日歷芯片品類繁多,IC化的傳感器各種各樣,顯示方式也愈趨于人性化。所以多功能電子時(shí)鐘有多種實(shí)現(xiàn)方案,能夠?qū)崿F(xiàn)的功能也很多,筆者已經(jīng)通過仿真和調(diào)試,實(shí)現(xiàn)了時(shí)間日歷顯示和校對、鬧鈴等功能。本文采用51單片機(jī)C語言進(jìn)行編程,當(dāng)然也可以應(yīng)用匯編語言編程。由于筆者能力有限,提供的程序還可以進(jìn)一步優(yōu)化,并且還可以根據(jù)需求為電子時(shí)鐘增設(shè)新功能。致謝在論文完成之際,我要特別感謝我的指導(dǎo)老師徐征老師的熱情關(guān)懷和悉心指導(dǎo)。在我撰寫論文的過程中,徐征老師傾注了大量的心血和汗水,無論是在論文的選題、構(gòu)思和資料的收集方面,還是在論文的研究方法以及成文定稿方面,我都得到了徐征老師悉心細(xì)致的教誨和無私的幫助,特別是她廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠地感謝和深深的謝意。

在論文的寫作過程中,也得到了許多同學(xué)的支持和幫助,給予了我很多寶貴的意見最后,向在百忙中抽出時(shí)間對本文進(jìn)行評審并提出寶貴意見的各位老師表示衷心地感謝!參考文獻(xiàn)【1】向繼文等.基于AT89C51的電子鐘系統(tǒng)設(shè)計(jì)[J],機(jī)電產(chǎn)片開發(fā)與創(chuàng)新,2007年第2期【2】黃智偉,王彥.FPGA系統(tǒng)設(shè)計(jì)與實(shí)踐[M],北京:電子工業(yè)出版社,2005.1【3】劉皖等.FPGA設(shè)計(jì)與應(yīng)用[M],北京:清華大學(xué)出版社,2006,6【4】姜煜等.基于FPGA芯片設(shè)計(jì)多功能數(shù)字鐘的研究[J],應(yīng)用科技,2001年12月第28卷12期【5】馮育長.單片機(jī)系統(tǒng)設(shè)計(jì)與實(shí)例分析[M],西安:西安電子科技大學(xué)出版社,2007.5【6】李及,趙利民.MCS-51系列單片機(jī)原理與應(yīng)用[M].長春:吉林科學(xué)技術(shù)社,1995.【7】何力民.單片機(jī)應(yīng)用技術(shù)選編5[M],北京:北京航空航天大學(xué)出版社1997.10【8】潘永雄.新編單片機(jī)原理與應(yīng)用[M],西安:西安電子科技大學(xué)出版社,2003.2.【9】萬勝前.基于KeilC51軟件的電子鐘設(shè)計(jì)與制作[J],鄂州大學(xué)學(xué)報(bào),2007年第2期【10】蔣敏.單片微機(jī)萬年歷設(shè)計(jì)[J],職大學(xué)報(bào),2000年第2期【11】彭小軍.用單片機(jī)實(shí)現(xiàn)電子時(shí)鐘[J].新余高專學(xué)報(bào),2004年4月第9卷第2期【12】逢玉臺(tái)等.集成溫度傳感器AD590及其應(yīng)用[J],國外電子元器件,2002年第7期【13】戴佳,戴衛(wèi)恒.51單片機(jī)C語言應(yīng)用程序設(shè)計(jì)實(shí)例精講[M],北京:電子工業(yè)出版社,2006.4【14】付家才.單片機(jī)控制工程實(shí)踐技術(shù)[M],北京:化學(xué)工業(yè)出版社,2004.3.【15】劉軍等.單片機(jī)原理與接口技術(shù)[M],上海:華東理工大學(xué)出版社,2006.2.【16】何書森等.用電子線路設(shè)計(jì)速成[M],福州:福建科學(xué)技術(shù)出版社,2005.10.【17】李曉靜等.液晶顯示控制器與單片機(jī)的接口及編程[J],電子技術(shù),2004年第6期【18】張迎新.單片微型計(jì)算機(jī)原理、應(yīng)用及接口技術(shù)(第二版)[M],北京:國防工業(yè)出版社,2005.9【19】潘新民,王艷芳.微型計(jì)算機(jī)控制技術(shù)[M],北京:電子工業(yè)出版社,2004.【20】沈紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[M],北京:電子工業(yè)出版社,2005.1.附錄A程序程序A.1主程序//主程序的功能是對子程序進(jìn)行調(diào)用,并設(shè)定顯示延時(shí)時(shí)間#include"reg51.h"http://頭文件;#include"typedef.h"#include"lcd.h"#include"key.h"#include"alarm_clock.h"#include"ds1302.h"sbitDAT=P1^0;//74LS164的A、B腳接單片機(jī)P1.0;sbitCLK=P1^1;//74LS164的CLOCK腳接單片機(jī)P1.1;sbitCalendar=P2^7;//定義日歷顯示按鍵K7接單片機(jī)P2.7;sbitWDZ=P2^6;//定義溫度顯示按鍵K6接單片機(jī)P2.6;sbitFUN=P2^5;//定義功能選擇鍵K5接單片機(jī)P2.5;sbitUP=P2^4;//定義加1鍵K4接單片機(jī)P2.4;sbitDOWN=P2^3;//定義減1鍵K3接單片機(jī)P2.3;sbitEnte_Snooze=P2^2;//定義確認(rèn)/貪睡鍵K2接單片機(jī)P2.2;sbitAlarm=P2^1;//定義鬧鈴開關(guān)鍵K1接單片機(jī)P2.1;sbitbeeper= P2^0;//定義鬧鈴接口P2.0;#defineuintunsignedint#defineucharunsignedchar#definetrue1//定義true=1;#definefalse0//定義false=0;#defineFUNCTION0xDF//定義FUN鍵值為DFH;#defineUP0xEF//定義UP鍵值為EFH;#defineDOWN0xF7 //定義DOWN鍵值為F7H;#defineALARM0xFB//定義ALARM鍵值為FBH;#defineEnte_Snooze0xFB//定義E/S鍵值為BFH;voidkey_task(void);voidprocess(ucharcurrent_key);externbitflash_flag;//定義全局變量(標(biāo)志位);externucharfunction_count;externbitalarm_flag;externbitkey_enable;voiddis();voidsendbyte();void reset_3w();void wbyte_3w(uchar);uchar rbyte_3w();void write_byte(ucharClock_Add,ucharClock_Data);ucharread_byte(uchar);voidwrite_clock_burst();voidds1302_init();voidds1302_task();voidlcd_disp_time1();voiddis_WD();voidds18b20();voidalarm_clock(void);voiddelay(unsignedinttime)//10

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論