版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 本科畢業(yè)論文(設(shè)計(jì))題 目基于51單片機(jī)的數(shù)字電子鐘設(shè)計(jì)院(系) 電子工程與電氣自動化學(xué)院 專 業(yè) 電氣工程及其自動化 學(xué)生姓名 學(xué) 號 10028116 指導(dǎo)教師 職 稱 碩士 講師 論文字?jǐn)?shù) 9682 完成日期:2014年5月20日巢湖學(xué)院本科畢業(yè)論文(設(shè)計(jì))誠信承諾書本人鄭重聲明:所呈交的本科畢業(yè)論文(設(shè)計(jì)),是本人在導(dǎo)師的指導(dǎo)下,獨(dú)立進(jìn)行研究工作所取得的成果。除文中已經(jīng)注明引用的內(nèi)容外,本論文不含任何其他個人或集體已經(jīng)發(fā)表或撰寫過的作品成果。對本文的研究做出重要貢獻(xiàn)的個人和集體,均已在文中以明確方式標(biāo)明。本人完全意識到本聲明的法律結(jié)果由本人承擔(dān)。本人簽名: 日期: 巢湖學(xué)院本科畢業(yè)論
2、文 (設(shè)計(jì))使用授權(quán)說明本人完全了解巢湖學(xué)院有關(guān)收集、保留和使用畢業(yè)論文 (設(shè)計(jì))的規(guī)定,即:本科生在校期間進(jìn)行畢業(yè)論文(設(shè)計(jì))工作的知識產(chǎn)權(quán)單位屬巢湖學(xué)院。學(xué)校根據(jù)需要,有權(quán)保留并向國家有關(guān)部門或機(jī)構(gòu)送交論文的復(fù)印件和電子版,允許畢業(yè)論文 (設(shè)計(jì))被查閱和借閱;學(xué)校可以將畢業(yè)論文(設(shè)計(jì))的全部或部分內(nèi)容編入有關(guān)數(shù)據(jù)庫進(jìn)行檢索,可以采用影印、縮印或掃描等復(fù)制手段保存、匯編畢業(yè),并且本人電子文檔和紙質(zhì)論文的內(nèi)容相一致。保密的畢業(yè)論文(設(shè)計(jì))在解密后遵守此規(guī)定。本人簽名: 日期: 導(dǎo)師簽名: 日期: 基于51單片機(jī)的數(shù)字電子鐘設(shè)計(jì)摘 要隨著時代的發(fā)展,生活節(jié)奏的加快,人們的時間觀念愈來愈強(qiáng),同時伴
3、隨著自動化、智能化及微電子技術(shù)的發(fā)展,人們用于計(jì)時的工具也在不斷的更新,單片機(jī)等技術(shù)的出現(xiàn)使得數(shù)字電子鐘有了新的發(fā)展方向。基于此本設(shè)計(jì)以單片機(jī)stc89c52為控制核心,采用美國dallas公司生產(chǎn)的實(shí)時時鐘芯片ds12c887和液晶芯片lcd1602,該設(shè)計(jì)具有電路設(shè)計(jì)簡單,結(jié)構(gòu)合理,能夠精確顯示時間、星期、日期等優(yōu)點(diǎn),并且能夠?qū)崟r更新顯示。本設(shè)計(jì)同時具有鬧鈴設(shè)置功能以及到時報警功能,按鍵操作簡單方便。更重要的是時鐘芯片ds12c887具有誤差小,內(nèi)部自帶鋰電池使得斷電時時間不停,再次上電后時間仍然能夠準(zhǔn)確顯示在液晶上的特點(diǎn)。關(guān)鍵詞:單片機(jī);電子鐘;ds12c887;lcd1602desig
4、n of digital electronic clock based on 51 mcuabstractwith the development of the times and the accelerated pace of life, peoples sense of time has become stronger and stronger. and with the development of automated, intelligent and microelectronic technology, the tool for timing has been constantly
5、updated; the emergence of single-chip technology makes digital electronic clock a new direction. based on this design microcontroller stc89c52 as the control core, and produced by the united states dallas ds12c887 real-time clock chip and lcd chip lcd1602, this design has a simple circuit design, re
6、asonable structure, able to accurately display the time, day, date, etc., and can real-timely update the display. this design also has an alarm function as well as to set alarm function, and simple button operation. more importantly, the clock chip ds12c887 has a small error, making the internal lit
7、hium battery power when the time comes stop, so that once again time after power is still able to accurately display the characteristics of the liquid crystal.key words: mcu, electronic clock, ds12c887, lcd1602目 錄1. 緒論11.1 電子時鐘的選題意義11.2 電子時鐘的國內(nèi)外研究現(xiàn)狀12. 系統(tǒng)的硬件電路設(shè)計(jì)32.1 單片機(jī)最小系統(tǒng)模塊32.1.1 stc89c52芯片介紹32.1.
8、2 復(fù)位電路42.1.3 晶振電路52.2 時鐘電路模塊52.2.1 ds12c887實(shí)時時鐘芯片概述52.2.2 硬件電路設(shè)計(jì)102.3 蜂鳴器聲響模塊112.4 按鍵模塊112.5 lcd1602顯示模塊112.5.1 1602液晶概述112.5.2 1602液晶電路153. 系統(tǒng)的軟件設(shè)計(jì)163.1 軟件編譯器及燒寫工具163.2 軟件總體設(shè)計(jì)思路173.2.1 蜂鳴器聲響模塊183.2.2 lcd1602模塊183.2.3 ds12c887時鐘電路模塊193.2.4 按鍵模塊194. 系統(tǒng)調(diào)試結(jié)果215. 總結(jié)25參考文獻(xiàn)26附錄271. 緒論1.1 電子時鐘的選題意義隨著數(shù)字集成電路
9、的發(fā)展,數(shù)字化已深入到各行各業(yè)。數(shù)字電子鐘是以數(shù)字電路實(shí)現(xiàn)對年、月、日、星期、時、分、秒數(shù)字顯示的電子鐘,廣泛應(yīng)用于私人及公共場所。比如:汽車站、火車站、辦公室等場合,給人們的生活、學(xué)習(xí)、工作及娛樂帶來了極大的方面,已成為人們?nèi)粘I钪胁豢苫蛉钡奈锲?。如今的電子鐘精度已遠(yuǎn)遠(yuǎn)超過老式鐘表,并且其報時功能也得到加強(qiáng)。例如定時報警系統(tǒng)、定時程序啟動控制、定時動力通斷設(shè)備等等這些都是以數(shù)字化為基礎(chǔ)的。而且在許多監(jiān)控系統(tǒng)及電子設(shè)備中,往往會進(jìn)行一些與時間相關(guān)的控制與操作,同時需要記錄下實(shí)時的時間信息并保存下來。例如,在某些數(shù)據(jù)采集時,對于一些重要的信息不僅要記錄下其內(nèi)容,還要記錄下發(fā)生該事件時的準(zhǔn)確時間
10、;又比如,在建筑視頻安防監(jiān)控系統(tǒng)中,除了要顯示實(shí)時畫面外,還要準(zhǔn)確記錄下實(shí)時的時間信息,其中包括年、月、日、時、分、秒等。傳統(tǒng)的計(jì)時時鐘已不能滿足上述要求,為了達(dá)到上述目的,就需要實(shí)時時鐘的參與配合。基于stc89c52單片機(jī)為核心的電子鐘就可以滿足上述要求,為了避免偶然的掉電或晶振的誤差造成時間的混亂以及完全用程序設(shè)計(jì)從而占用大量的系統(tǒng)資源而影響系統(tǒng)其他功能的運(yùn)行,外加一塊獨(dú)立運(yùn)行的實(shí)時時鐘芯片ds12c887,同時配合相應(yīng)的程序就可以實(shí)現(xiàn)上述目的。因此,研究數(shù)字電子鐘以及擴(kuò)大其作用,有著非?,F(xiàn)實(shí)重要的意義。1.2 電子時鐘的國內(nèi)外研究現(xiàn)狀從古代利用流體力學(xué)計(jì)時的刻漏和后來出現(xiàn)的沙漏以及采用
11、機(jī)械傳動結(jié)構(gòu)計(jì)時的渾天儀,水運(yùn)儀還有應(yīng)用天文原理計(jì)時的日晷到今天的數(shù)字電子鐘,經(jīng)歷了漫長的歲月。機(jī)械表機(jī)芯復(fù)雜,走時誤差較大,石英表機(jī)芯采用集成電路,機(jī)械結(jié)構(gòu)比機(jī)械表簡單許多也精準(zhǔn)很多。但是隨著生活節(jié)奏的加快,人們對時間的精準(zhǔn)度要求越來越高。在目前的國內(nèi)外市場中,數(shù)字電子鐘的產(chǎn)品隨處可見,但是他們大多存在一個致命缺點(diǎn)分兩種:一種是價格低廉的精度低,體積大;一種是體積小精度高卻價格昂貴?;趩纹瑱C(jī)的電子時鐘系統(tǒng)的設(shè)計(jì)意在解決上述缺點(diǎn)折合為一個適中的產(chǎn)品,實(shí)現(xiàn)高精度、體積小、價格適中、易操作的產(chǎn)品,使得數(shù)字電子鐘的發(fā)展日益滿足使用者的需求。數(shù)字電子鐘的設(shè)計(jì)方法有很多種,可以利用單片機(jī)編程配以簡單外
12、設(shè)來實(shí)現(xiàn)電子鐘,也可以采用中小規(guī)模的集成電路設(shè)計(jì)電子鐘,還可以利用專門的時鐘芯片配以顯示電路及外圍電路來實(shí)現(xiàn)電子鐘。其中以單片機(jī)為核心控制器,利用專門的實(shí)時時鐘芯片計(jì)時,將時間數(shù)據(jù)經(jīng)單片機(jī)輸出,由顯示器顯示出來,利用鍵盤定時、校時,顯示電路可利用液晶顯示技術(shù)或者數(shù)碼管顯示技術(shù)。在工業(yè)控制、智能控制及日常生活中,經(jīng)常會碰到對時間進(jìn)行監(jiān)控的需求。這就為數(shù)字電子鐘提供了市場需求,隨著科學(xué)技術(shù)的發(fā)展,也為數(shù)字電子鐘的研發(fā)提供了前景。本設(shè)計(jì)就提供了基于51單片機(jī)的數(shù)字電子鐘的設(shè)計(jì)方法與實(shí)現(xiàn)過程。2. 系統(tǒng)的硬件電路設(shè)計(jì)2.1 單片機(jī)最小系統(tǒng)模塊2.1.1 stc89c52芯片介紹stc89c52是stc
13、公司生產(chǎn)的一種高性能、低功耗的cmos 8位微控制器,具有 8k 系統(tǒng)可編程flash存儲器,指令代碼完全兼容傳統(tǒng)的mcs-51單片機(jī),俗稱單片機(jī)。主要特性如下表2-1所示:表2-1 stc89c52芯片特性工作電壓:5.5v3.3v(5v單片機(jī))/3.8v2.0v(3v單片機(jī))增加型8051單片機(jī),6時鐘/機(jī)器周期,12時鐘/機(jī)器周期可以任意選擇;工作頻率范圍:040mhz,相當(dāng)于普通8051的080mhz,實(shí)際工作頻率可達(dá)48mhz;具有看門狗功能,內(nèi)帶2k字節(jié)的e2pram存儲空間通用i/o口(32個),復(fù)位后p0/p1/p2/p3是準(zhǔn)雙向口/弱上拉,p0口是漏極開路輸出,作為i/o口使
14、用時,需要加上拉電阻,作為總線擴(kuò)展用時,不需要加上拉電阻;3個16位定時器/計(jì)數(shù)器;pdip封裝;用戶應(yīng)用程序空間為8k字節(jié);片上集成512字節(jié)ramisp(系統(tǒng)可編程)/iap(應(yīng)用可編程),不需要專用的編程器、仿真器,可通過串口(rxd/p3.0,txd/p3.1)經(jīng)由max232電平轉(zhuǎn)換電路下載用戶程序到單片機(jī)外部中斷有4路,下降沿觸發(fā)或低電平觸發(fā)電路;-40+85(工業(yè)級)/075(商業(yè)級)溫度下工作其引腳圖如圖2-1所示:圖2-1 stc89c52rc芯片引腳引腳大致介紹:1.電源及時鐘引腳(4個)l vcc:電源接入引腳。l vss:接地引腳。l xtal1:晶體振蕩器接入的一個引
15、腳。l xtal2:晶體振蕩器接入的另一個引腳。2.控制線引腳(4個)l rst/vpd:復(fù)位信號輸入引腳/備用電源輸入引腳。l ale/prog:地址鎖存允許信號輸出引腳/編程脈沖輸入引腳。l ea/vpp:內(nèi)外存儲器選擇引腳/片內(nèi)eprom(或flashrom)編程電壓輸入引腳。l psen:外部程序存儲器選通信號輸出引腳。3.并行i/o引腳(32個,分成4個8位口)l p0.0p0.7:一般i/o口引腳或數(shù)據(jù)/低位地址總線復(fù)用引腳。l p1.0p1.7:一般i/o口引腳。l p2.0p2.7:一般i/o口引腳或高位地址總線引腳。l p3.0p3.7:一般i/o口引腳或第二功能引腳。2.1
16、.2 復(fù)位電路當(dāng)單片機(jī)rst引腳加高電平復(fù)位信號(保持2個以上機(jī)器周期)時,單片機(jī)內(nèi)部就執(zhí)行復(fù)位操作。復(fù)位信號變低電平時,單片機(jī)開始執(zhí)行程序。實(shí)際應(yīng)用中,復(fù)位操作有兩種形式:一種是上電復(fù)位,另一種是上電與按鍵均有效的復(fù)位。其原理是上電的瞬間復(fù)位引腳(rst)獲得高電平,在電容c1充放電的同時,復(fù)位引腳(rst)的高電平會慢慢下降。復(fù)位引腳(rst)的高電平只要能維持足夠的時間(24個晶蕩周期),單片機(jī)就可以實(shí)現(xiàn)復(fù)位操作。而按鍵與上電均有效的復(fù)位電路可以在單片機(jī)執(zhí)行任務(wù)期間,通過按鍵實(shí)現(xiàn)復(fù)位操作。相比較選擇按鍵與上電均有效的復(fù)位電路會更有優(yōu)勢1。電路原理圖如圖2-2所示:圖2-2 復(fù)位電路2.1
17、.3 晶振電路晶振電路是單片機(jī)最小系統(tǒng)的重要環(huán)節(jié)之一。晶振取11.0592mhz(這樣可以準(zhǔn)確的得到9600波特率和19200波特率),電容取22pf(一般采用1533pf)。電路如圖2-3所示:圖2-3 晶振電路2.2 時鐘電路模塊2.2.1 ds12c887實(shí)時時鐘芯片概述ds12c887是美國dallas公司設(shè)計(jì)生產(chǎn)的實(shí)時時鐘芯片。ds12c887時鐘芯片能夠自動產(chǎn)生世紀(jì)、年、月、日、星期、時、分、秒等時間信息,其內(nèi)部自帶鋰電池和晶振,在外部掉電時,其內(nèi)部時間信息仍能保持10年之久。ds12c887時鐘芯片中帶有128b ram,其中11b ram用來存儲時間信息;4b ram用來存儲d
18、s12c887的控制信息,成為控制寄存器;13b通用ram供用戶使用。對于一天內(nèi)有12和24小時制兩種模式的時間記錄,而在12小時制的模式中,通過am和pm來區(qū)分上下午;芯片內(nèi)部時間的存儲模式有兩種:二進(jìn)制數(shù)表示和bcd碼表示。此外,用戶還可以通過對ds12c887芯片進(jìn)行編程來實(shí)現(xiàn)多種方波的輸出,并且可以對其內(nèi)部的三路中斷通過軟件進(jìn)行屏蔽。ds12c887可以通過一個多路復(fù)用的支持intel和motorola模式的單字節(jié)接口訪問。1.ds12c887時鐘芯片引腳功能ds12c887芯片引腳和實(shí)物圖如圖2-4、2-5所示。圖2-4 ds12c887芯片引腳圖2-5 時鐘芯片實(shí)物圖各引腳功能說明
19、如下:1(mot):總線模式選擇端。有兩種總線工作方式,即motorola和intel模式。當(dāng)接gnd或者懸空時,選用intel模式;接vcc時,選用motorola模式。2,3,16,20,21,22(nc):懸空端。411(ad0ad7):復(fù)用地址數(shù)據(jù)總線??偩€周期的前半部分ad0ad7上的是地址信息,總線周期的后半部分ad0ad7上的是數(shù)據(jù)信息。12(gnd),24(vcc):芯片電源接入端。其中vcc接+5v輸入,gnd接地。當(dāng)vcc輸入為+5v時,用戶可以訪問ds12c887內(nèi)ram中的數(shù)據(jù),并可對其進(jìn)行讀/寫操作;當(dāng)vcc的輸入小于+4.25v時,禁止用戶對內(nèi)部ram進(jìn)行讀/寫操作
20、,此時用戶不能正確獲取芯片內(nèi)的時間信息;當(dāng)vcc的輸入低于+3v時,芯片會自動將電源切換到內(nèi)部自帶的鋰電池上,以保證內(nèi)部電路正常運(yùn)行。13(cs):芯片選擇端,低電平有效。14(as):地址選通輸入端。在進(jìn)行讀/寫操作時,as的上升沿將ad0ad7上出現(xiàn)的地址信息鎖存到ds12c887上,而下一個下降沿清除ad0ad7上的地址信息,不論cs是否有效,ds12c887都將執(zhí)行該操作。15(r/w):讀/寫輸入端。該引腳有兩種工作方式,當(dāng)mot接vcc時,r/w)工作在motorola模式。此時該引腳的作用是區(qū)分讀操作還是寫操作,高電平時為讀操作,低電平時為寫操作;當(dāng)mot接gnd時,該引腳工作在
21、intel模式,此時該引腳作為寫允許輸入,此信號的上升沿鎖存數(shù)據(jù)。17(ds):數(shù)據(jù)選擇或者讀輸入腳。有兩種工作方式,當(dāng)mot接vcc時,選用motorola模式。當(dāng)mot接gnd或懸空時,選用intel工作模式,此時該引腳為讀允許輸入引腳。18(reset):芯片復(fù)位引腳。低電平有效,通常將該引腳接vcc即可。19(iqr):中斷請求輸出。低電平有效,用作處理器的中斷申請輸入。只要引起中斷的狀態(tài)、中斷使能位置位,irq將持續(xù)保持低電平,通過處理器程序讀取c寄存器來清除irq引腳輸出,同時復(fù)位引腳也會清除未處理的中斷。在中斷未發(fā)生時,irq為高阻態(tài),這時可以將多個中斷器件連接到一條irq總線上
22、。irq引腳為漏極開路輸出,需要外接一個上拉電阻與vcc相連。23(sqw):方波輸出引腳。當(dāng)供電電壓vcc大于4.25v時,sqw引腳可輸出方波,此時,用戶可以通過對控制寄存器編程來得到13鐘方波信號的輸出。2. ds12c887時鐘芯片內(nèi)部功能ds12c887的存儲器分配如圖2-6所示,其中00h-09h為鬧鐘信息與時間信息寄存器,0ah-0dh為4個控制寄存器。圖2-6存儲器分配圖(1)狀態(tài)控制寄存器a(除d7位外可讀寫)表2-2 寄存器a地址d7d6d5d4d3d2d1d00ahuipdv2dv1dv0rs3rs2rs1rs0uip:更新位。當(dāng)uip=1時,即將開始更新;當(dāng)uip=0時
23、,至少在244us內(nèi)芯片不會更新。uip位為只讀位且不受復(fù)位信號的影響。通過寄存器b中set位設(shè)置為1來禁止更新,并且將uip位清零。dv2,dv1,dv0:晶體振蕩器和復(fù)位分頻器的開與關(guān)。當(dāng)dv0=0,dv1=1,dv2=0時,晶體振蕩器開啟且保持時鐘運(yùn)行。當(dāng)dv0=1,dv1=1,dv2=x時,開啟晶體振蕩器,分頻保持復(fù)位狀態(tài)。這三位的其他組合方式均使振蕩器關(guān)閉。因此,首次使用時必須設(shè)置這三位的狀態(tài)。rs3,rs2,rs1,rs0:速率選擇位。這4個速率選擇位的不同取值可產(chǎn)生從122.07us到500ms之間不同周期的方波輸出及周期中斷。(2)狀態(tài)控制寄存器b(可讀寫)表2-3 寄存器b地
24、址d7d6d5d4d3d2d1d00bhsetpieaieuiesqwedm12/24dseset=0,芯片更新正常進(jìn)行;set=1,芯片更新被禁止。pie:中斷周期允許位。pie=1,允許;pie=0,禁止。aie:鬧鈴中斷允許位。aie=1,允許;aie=0,禁止。uie:更新結(jié)束中斷允許位。uie=1,允許;uie=0,禁止。sqwe=1,sqw輸出設(shè)定頻率的方波;sqwe=0,sqw引腳為低電平。dm:寄存器存儲數(shù)據(jù)格式選擇位。dm=0,bcd碼;dm=1,二進(jìn)制數(shù)格式,此位不受復(fù)位信號影響。12/24:為1,24小時制;為0,12小時制。dse:夏令時允許標(biāo)志位。在四月的第一個周日的
25、15959 am,時鐘調(diào)到30000 am;在十月的最后一個周日的15959 am,時鐘調(diào)到10000 am。(3)狀態(tài)控制寄存器c(只讀)表2-4 寄存器c地址d7d6d5d4d3d2d1d00chirqfpfafuf0000irqf:中斷請求標(biāo)志。當(dāng)pf=pie=1,af=aie=1,uf=uie=1,irqf=pfpie+afaie+ufuie有一種或幾種發(fā)生時,irqf置高irq腳輸出為低電平;為低時,無中斷請求發(fā)生。所有標(biāo)志位在讀寄存器c或復(fù)位后清0。其中pf:周期中斷標(biāo)志;af:鬧鐘中斷標(biāo)志;uf:更新中斷標(biāo)志。(4)狀態(tài)控制寄存器c(只讀)表2-5 寄存器c地址d7d6d5d4d
26、3d2d1d00dhvrt0000000vrt:vrt=0,表示芯片內(nèi)的鋰電池能量耗盡,此時ram中的數(shù)據(jù)的正確性就無法保證了;vrt=1,信息有效。3.ds12c887時序圖分析鑒于本設(shè)計(jì)mot引腳接gnd,總線選用intel模式,故此系統(tǒng)只分析intel模式。intel模式總線寫時序圖如圖2-7所示,讀時序圖如圖2-8所示:圖2-7 intel模式總線寫時序圖圖2-8 intel模式總線讀時序圖2.2.2 硬件電路設(shè)計(jì)根據(jù)芯片的特性和引腳功能來設(shè)計(jì)外圍電路。ds12c887時鐘芯片電路如圖2-9所示: 圖2-9時鐘電路引腳1這里接地(或懸空)來選取intel模式,411引腳接單片機(jī)的p1口
27、,18引腳接vcc,19引腳外接一個上拉電阻然后接到單片機(jī)p3.3口,其他的引腳各自接到相應(yīng)端口。 2.3 蜂鳴器聲響模塊此模塊在鬧鐘設(shè)定時間到時發(fā)出聲響。本模塊通過pnp三極管為蜂鳴器放大電流,基極通過33歐的電阻與單片機(jī)16(p3.6)引腳相連。其電路圖如圖2-10所示:圖2-10 蜂鳴器聲響電路2.4 按鍵模塊按鍵模塊的作用是調(diào)節(jié)時間及設(shè)置鬧鐘時間。電路圖如圖2-11所示:圖2-11 按鍵電路2.5 lcd1602顯示模塊2.5.1 1602液晶概述本設(shè)計(jì)使用的1602液晶為5v驅(qū)動,帶背光,可顯示兩行,每行16個字符,不能顯示漢字,內(nèi)置128個字符的ascii字符集庫。1602液晶的引
28、腳及實(shí)物圖如圖2-12、2-13所示:圖2-12 lcd1602引腳圖2-13 lcd1602實(shí)物圖1. 引腳說明1602液晶引腳說明如表2-6所示:表2-6 液晶引腳說明編號符號引腳功能說明編號符號引腳功能說明1vss電源地9d2數(shù)據(jù)接口32vcc電源正極10d3數(shù)據(jù)接口43vo液晶顯示對比度調(diào)節(jié)端11d4數(shù)據(jù)接口54rs數(shù)據(jù)/命令選擇端12d5數(shù)據(jù)接口65r/w讀寫選擇端13d6數(shù)據(jù)接口76e使能端14d7數(shù)據(jù)接口87d0數(shù)據(jù)接口115bla背光電源正極8d1數(shù)據(jù)接口216blk背光電源負(fù)極2.基本操作時序及時序圖基本操作時序:讀狀態(tài):輸入,rs=l,r/w=h,e=h;輸出,d0d7=狀
29、態(tài)字。讀數(shù)據(jù):輸入,rs=h,r/w=h,e=h;輸出,無。寫指令:輸入,rs=l,r/w=l,d0d7=指令碼,e=高脈沖;輸出,d0d7=數(shù)據(jù)。寫數(shù)據(jù):輸入,rs=h,r/w=l, d0d7=數(shù)據(jù),e=高脈沖;輸出,無。根據(jù)分析時序圖(圖2-14)可知操作1602液晶的流程如下:(1)通過rs來確定是寫數(shù)據(jù)還是寫命令。寫命令包括使液晶的光標(biāo)顯示還是不顯示、光標(biāo)閃爍或者不閃爍、需不需要移屏,在液晶何處位置顯示等等;寫數(shù)據(jù)是指顯示什么內(nèi)容。(2)讀/寫控制端設(shè)置為寫模式,即低電平。(3)要將數(shù)據(jù)或命令送到數(shù)據(jù)線上。(4)給使能端(e)一個高脈沖將數(shù)據(jù)送入液晶控制器,完成寫操作。時序圖如下:如圖
30、2-14 1602液晶寫操作時序圖3.狀態(tài)字說明表2-7 狀態(tài)字說明sta7d7sta6d6sta5d5sta4d4sta3d3sta2d2sta1d1sta0d0sta0sta6當(dāng)前地址指針的數(shù)值sta7讀/寫操作使能1禁止;0允許理論上每次對控制器進(jìn)行讀/寫操作之前,都必須進(jìn)行讀/寫檢測,確保sta7為0。實(shí)際上,由于液晶控制器的反應(yīng)速度快于單片機(jī)的操作速度,因此可以不進(jìn)行讀/寫檢測,或許可以只進(jìn)行簡短延時也行。4.ram地址映射圖控制器的內(nèi)部帶有80b的ram緩沖區(qū),對應(yīng)關(guān)系如圖2-15所示:圖2-15 1602內(nèi)部ram地址映射圖當(dāng)向圖中的000f、404f地址中的任一處寫入顯示數(shù)據(jù)時
31、,液晶都會立即顯示出來,當(dāng)寫入到1027或5067地址時,必須要通過移屏指令將它們移入可顯示區(qū)域方可正常顯示。5.數(shù)據(jù)指針設(shè)置表2-8 數(shù)據(jù)指針設(shè)置指令碼功能80h+地址碼(027h,4067h)設(shè)置數(shù)據(jù)地址指針控制器內(nèi)部設(shè)有一個數(shù)據(jù)地址指針,我們可以通過它們訪問內(nèi)部的全部80b的ram。6.其他設(shè)置表2-9 其他設(shè)置指令碼功能01h顯示清屏:1.數(shù)據(jù)指針清0 2.所有顯示清002h顯示回車:數(shù)據(jù)指針清07.初始化設(shè)置(1)顯示模式設(shè)置表2-10 顯示模式設(shè)置指令碼功能00111000設(shè)置162顯示,57點(diǎn)陣,8位數(shù)據(jù)口(2)顯示開/關(guān)及光標(biāo)設(shè)置表2-11 顯示開/關(guān)及光標(biāo)設(shè)置指令碼功能000
32、01dcbd=1,開顯示;d=0,關(guān)顯示c=1,光標(biāo)顯示;c=0,光標(biāo)不顯示b=1,光標(biāo)閃爍;b=0,不顯示光標(biāo)000001nsn=1,讀或?qū)懸粋€字符后地址指針加1且光標(biāo)加1;n=0,讀或?qū)懸粋€字符后地址指針減1且光標(biāo)減1s=1,寫一個字符時,顯示整體左移(n=1)或右移(n=0),來得到光標(biāo)不移動而屏幕移動的效果;s=0,寫一個字符時,顯示整體不移動00010000光標(biāo)左移00010100光標(biāo)右移00011000顯示整體左移,同時光標(biāo)跟隨移動00011100顯示整體右移,同時光標(biāo)跟隨移動2.5.2 1602液晶電路為防止上電時燒壞背光燈,在15腳(bla)串接一個10歐姆的電阻來限流;液晶3
33、(vo)腳為對比度調(diào)節(jié)端,串接一個10k的電位器來調(diào)節(jié)對比度;液晶4(rs)腳為向液晶控制器寫數(shù)據(jù)/寫命令選擇端,接單片機(jī)p3.5口;液晶5(r/w)腳為讀/寫選擇端,由于只向液晶寫入命令和顯示數(shù)據(jù),不從液晶讀取數(shù)據(jù),所以此腳始終選擇為寫狀態(tài),即接地;液晶6(e)腳為使能端,是操作液晶時必須的,接單片機(jī)p3.4口;1(vss)、2(vcc)腳是電源端;15(bla)、16(blk)腳是背光電源端。具體電路圖如圖2-15所示:圖2-15 1602液晶電路3. 系統(tǒng)的軟件設(shè)計(jì)3.1 軟件編譯器及燒寫工具本設(shè)計(jì)采用c語言編程。程序的編寫和編譯在keil uvisio4軟件上完成。編譯及燒寫的步驟如下
34、:1.程序編寫與編譯打開keil uvisio4軟件,新建工程保存,選取芯片類型ok,新建文件保存,添加文件到工程,在文件里完成程序的編寫,保存并編譯,在無錯誤的情況下,配置一些系統(tǒng)的設(shè)置,再編譯一次,生成可以下載到stc89c52芯片上的以.hex為后綴名的二進(jìn)制文件。界面如圖3-1所示:圖3-1 keil uvisio4編譯界面2.程序的燒寫編譯完成后的二進(jìn)制文件,通過專用的stc-isp軟件同時借助于開發(fā)板燒寫到單片機(jī)里,對程序進(jìn)行測試。如圖3-2所示:圖3-2 燒寫工具界面3.2 軟件總體設(shè)計(jì)思路主程序流程圖如圖3-3所示:圖3-3 主程序流程圖首先,程序啟動后對單片機(jī)內(nèi)部資源初始化,
35、然后對ds12c887時鐘芯片初始化,寫入控制字,讀取芯片內(nèi)相應(yīng)寄存器的時間數(shù)據(jù)并對lcd1602初始化,完成時間日期的顯示。接著進(jìn)入循環(huán)程序不停的執(zhí)行以下任務(wù):按鍵掃描,有按鍵按下時執(zhí)行相應(yīng)操作,沒有按鍵按下就檢查鬧鐘標(biāo)志位有沒有中斷觸發(fā),有就執(zhí)行鬧鈴程序(ds12c887的irq管腳在鬧鈴出發(fā)時產(chǎn)生低電平,觸發(fā)外部中斷1,蜂鳴器發(fā)聲),沒有就進(jìn)行ds12c887時鐘芯片的數(shù)據(jù)讀取,向lcd1602發(fā)送數(shù)據(jù)并顯示。3.2.1 蜂鳴器聲響模塊ds12c887的irq管腳在鬧鈴發(fā)聲時產(chǎn)生低電平,觸發(fā)外部中斷1,蜂鳴器發(fā)聲。流程圖如圖3-4所示:圖3-4 蜂鳴器模塊流程圖3.2.2 lcd1602
36、模塊先向lcd1602寫入控制字com,根據(jù)lcd1602時序圖進(jìn)行操作,rs為寄存器選擇;再向lcd1602寫入數(shù)據(jù)date,根據(jù)lcd1602時序圖進(jìn)行操作,最后初始化。流程圖如圖3-5所示: 圖3-5 液晶顯示模塊流程圖3.2.3 ds12c887時鐘電路模塊先向ds12c887寫入數(shù)據(jù),然后再讀ds12c887芯片數(shù)據(jù),接著設(shè)置初始化時間,最后對芯片進(jìn)行初始化。流程圖如圖3-6所示:圖3-6 時鐘模塊流程圖3.2.4 按鍵模塊此模塊有三個彈性小按鍵。s1鍵是功能選擇鍵,s2鍵是“加”鍵,s3鍵是“減”鍵。s1鍵按下的次數(shù)不同,執(zhí)行的功能也不同流程圖如圖3-7所示:圖3-7 按鍵模塊流程
37、圖4. 系統(tǒng)調(diào)試結(jié)果在protel99se軟件上設(shè)計(jì)原理圖,經(jīng)電氣檢查無錯誤后,就在電路板上焊接整個電路。下載好二進(jìn)制文件到單片機(jī)里,通電后,lcd1602顯示有亂碼。仔細(xì)檢查焊點(diǎn)和接線,確定無問題后,通電問題依然存在。于是我懷疑是不是有虛焊或者某處焊接出錯了,經(jīng)檢查沒有問題,最后我認(rèn)為可能是程序存在些問題,幾經(jīng)修改,做了一下仿真,效果正常。仿真如圖4-1所示:圖4-1 系統(tǒng)仿真將.hex文件下載到單片機(jī)里,連接好硬件,通電后系統(tǒng)正常。如圖5-2所示:圖4-2 實(shí)物圖調(diào)試流程: s1鍵按1下調(diào)秒,如圖4-3:圖4-3 調(diào)秒界面s1鍵按2下調(diào)分,如圖4-4所示:圖4-4 調(diào)分界面s1鍵按3次調(diào)時
38、,如圖4-5所示:圖4-5 調(diào)時界面s1鍵按4次調(diào)星期,如圖4-6所示:圖4-6 調(diào)星期界面s1鍵按5次調(diào)日,如圖4-7所示:圖4-7 調(diào)日界面s1鍵按6次調(diào)月,如圖4-8所示:圖4-8 調(diào)月界面s1鍵按7次調(diào)年,如圖4-9所示:圖4-9 調(diào)年界面s1鍵按8次進(jìn)入鬧鐘調(diào)試,如圖4-10所示:圖4-10 鬧鐘調(diào)試界面在上一步操作的基礎(chǔ)上按1次s2鍵鬧鐘調(diào)試開,如圖4-11所示:圖4-11 鬧鐘開界面在上一步的基礎(chǔ)上接著按s1鍵就可以設(shè)置鬧鐘時間,如圖4-12所示:圖4-12 設(shè)置鬧鐘界面在進(jìn)入鬧鐘設(shè)置設(shè)置時按下s3鍵則鬧鐘關(guān),如圖4-13所示:圖4-13 鬧鐘關(guān)界面在設(shè)置時間狀態(tài)下,按s2(s3
39、)鍵進(jìn)行加(減)設(shè)置。當(dāng)設(shè)定的時間到時,蜂鳴器就會發(fā)出聲響,按s3鍵蜂鳴器就會停止發(fā)聲。5. 總結(jié)本設(shè)計(jì)主要由單片機(jī)最小系統(tǒng)模塊、時鐘電路模塊、液晶顯示模塊、按鍵模塊和蜂鳴器聲響模塊;軟件則是通過c語言編程來實(shí)現(xiàn)。本次的設(shè)計(jì)制作,涉及到以前學(xué)過的很多學(xué)科知識的綜合應(yīng)用。在整個設(shè)計(jì)的過程中,對自己的能力有了一個深刻的認(rèn)知。在某些細(xì)節(jié)方面以及新的知識點(diǎn)有了新的認(rèn)識。如在軟件設(shè)計(jì)過程中,對ds12c887芯片的編程問題上,就試過了好幾種方法,經(jīng)過對芯片的充分學(xué)習(xí)和研究,加之反復(fù)編程和調(diào)試,最終成功了,也體會到了勝利的歡快感覺。硬件制作過程中,對于器件的選擇,線路的安排也花費(fèi)了一些時間,造成了一些跳線
40、??梢?,在焊接電路以前就應(yīng)該將整體的布局安排好??傊?,通過此次設(shè)計(jì),讓我認(rèn)識了自己,清楚了自己哪些地方的不足,同時也學(xué)到一些新的知識。參考文獻(xiàn)1 李全利.單片機(jī)原理及接口技術(shù)m.北京:高等教育出版社,2012:19-202 郭天祥.51單片機(jī)c語言教程m.北京:電子工業(yè)出版社,2009:324-3293 王毓銀.數(shù)字電路邏輯設(shè)計(jì)m.2版.北京:高等教育出版社,2010.4 王云濤,王楠.淺談多功能數(shù)字鐘的設(shè)計(jì)j.山東電力高等??茖W(xué)報.2005.4:71-725 張開碧,王浩,曾勇斌.基于stc89c52單片機(jī)的多功能數(shù)字鐘的設(shè)計(jì)j.科技信息.2010.35:76 朱華光.lcd1602編程中一
41、些問題怎樣解決j.電腦編程技巧與維護(hù).2010.15:90-917 趙月飛,郭會平,胡仁喜.protel 99 sem北京:機(jī)械工業(yè)出版社,2009.12:310-3258 袁鵬,陳淑芳.實(shí)時時鐘芯片ds12c887與51單片機(jī)的接口技術(shù)j. 科技信息. 2011(29)9 劉維紅,譚永超.基于stc89c52單片機(jī)的電子時鐘研究j.機(jī)電產(chǎn)品開發(fā)與創(chuàng)新. 2012(05)10 周向紅,范偉.ds12c887實(shí)時時鐘芯片及應(yīng)用研究j.企業(yè)技術(shù)開發(fā). 2006.2:6-8附錄附錄a:系統(tǒng)原理圖附錄:b 程序源代碼/*單 位:巢湖學(xué)院作 者:于楠*/#include#include/*帶返回值的延時
42、子函數(shù)*/void delay(uint z)uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);/*蜂鳴器發(fā)聲控制函數(shù)(鬧鐘響鈴),beep=0發(fā)聲*/void fmq()beep=0;delay(100);beep=1;delay(100);/*向lcd寫入控制字com,根據(jù)lcd1602時序圖進(jìn)行操作,rs為寄存器選擇*/void write_com(uchar com)rs=0;/數(shù)據(jù)/命令選擇端(命令低電平有效)lcden=0;/使能端p0=com;/將要寫的命令送至數(shù)據(jù)總線上delay(5);/稍作延遲以待數(shù)據(jù)穩(wěn)定lcden=1;/使能端給以高脈沖,因?yàn)?/p>
43、初始化函數(shù)中已將en置為0delay(5);lcden=0;/將使能端置0以完成高脈沖/*向lcd寫入數(shù)據(jù)date,根據(jù)lcd1602時序圖進(jìn)行操作*/void write_date(uchar date) rs=1;lcden=0;p0=date;delay(5);lcden=1;delay(5);lcden=0;/*lcd1602初始化*/void lcd1602_init()write_com(0x38);/初始化1602液晶 設(shè)置16x2顯示,5x7點(diǎn)陣,8位數(shù)據(jù)口write_com(0x0c);/初始化lcd1602 設(shè)置開顯示,不顯示光標(biāo) write_com(0x06);/寫一個字
44、符后地址指針自動加1write_com(0x01);/顯示清0,數(shù)據(jù)指針清0/*向ds12c887寫入數(shù)據(jù)子函數(shù)*/void write_ds(uchar add,uchar date)dscs=0;/芯片片選端 低電平有效dsas=1;/地址選通輸入端 上升沿鎖存地址dsds=1;dsrw=1;/intel模式 上升沿鎖存數(shù)據(jù)p2=add;/先寫地址dsas=0;dsrw=0;p2=date;/再寫數(shù)據(jù)dsrw=1;dsas=1;dscs=1;/*讀ds12c887芯片數(shù)據(jù),add為寄存器地址*/uchar read_ds(uchar add) uchar ds_date;dsas=1;/地
45、址選通輸入端 上升沿鎖存地址dsds=1;dsrw=1;/intel模式 上升沿鎖存數(shù)據(jù)dscs=0;p2=add;/先寫地址dsas=0;dsds=0;p2=0xff;ds_date=p2;/再讀數(shù)據(jù)dsds=1;dsas=1;dscs=1;return ds_date;/*首次上電初始化時間函數(shù)(首次操作12c887時給予寄存器初始化)*/*void set_time()write_ds(0,34);write_ds(1,0);write_ds(2,9);write_ds(3,0);write_ds(4,13);write_ds(5,8);write_ds(6,1);write_ds(7,
46、10);write_ds(8,5);write_ds(9,14); */*ds12c887芯片初始化*/void ds12c887_init()/write_ds(0x0a,0x20);/向控制寄存器a發(fā)送初始化控制字,啟動振蕩器/write_ds(0x0b,0x26);/向控制寄存器b發(fā)送初始化控制字,設(shè)定工作模式二進(jìn)制,24小時制/set_time();/設(shè)置上電靜默時間/*初始化函數(shù)*/void init() uchar num;ea=1;/開總中斷ex1=1;/允許外部中斷1it1=1;/低電平觸發(fā)beep=1;flag1=0;lcden=0;ds12c887_init();/時鐘芯片
47、初始化read_ds(0x0c);/讀芯片時間數(shù)據(jù)lcd1602_init();/液晶初始化write_com(0x80);/在第一行顯示數(shù)據(jù)for(num=0;num15;num+)/寫入液晶固定顯示的位置write_date(tablenum);delay(5);write_com(0x80+0x40);/在第二行顯示數(shù)據(jù)for(num=0;num12;num+)/寫入液晶固定顯示的位置write_date(table1num);delay(5);/*向lcd1602寫入時分秒數(shù)據(jù)*/void write_sfm(uchar add,uchar date)/4為時,7為分,10為秒ucha
48、r shi,ge;/shi:待發(fā)數(shù)據(jù)十位;ge:待發(fā)數(shù)據(jù)個位shi=date/10;ge=date%10;write_com(0x80+0x40+add);/設(shè)置顯示位置write_date(0x30+shi);/送去液晶顯示十位write_date(0x30+ge);/送去液晶顯示個位/*向lcd1602寫入年月日數(shù)據(jù)*/void write_nyr(uchar add,uchar date)/3為年,6為月,9為日uchar shi,ge;/shi:待發(fā)數(shù)據(jù)十位;ge:待發(fā)數(shù)據(jù)個位shi=date/10;ge=date%10;write_com(0x80+add);write_date(0
49、x30+shi);write_date(0x30+ge);/*向lcd1602寫入星期數(shù)據(jù)*/void write_xingqi(uchar add,uchar date)write_com(0x80+add);date=(date-1)*3;/如星期一讀表123個字母顯示,星期二讀456字母等等write_date(table2date);write_date(table2+date);write_date(table2+date);/*鍵盤掃描子程序*/void keyscan()if(flag1=1)if(s2=0)/加鍵delay(5);if(s2=0)while(!s2);fmq();flag1=0;if(s3=0)/減鍵delay(5);if(s3=0)while(!s3);fmq();flag1=0;if(s1=0)/功能選擇鍵,統(tǒng)計(jì)按下次數(shù)在s1num中delay(5);if(s1=0)s1num+;flag=1;flag1=0;while(!s1); fmq();if(s1num=1)tr0=0;write_com(0x80+0x40+11);write_com(0x0f);if(s1num=2)/以下if語句是使光標(biāo)在對應(yīng)位置閃爍write_com(0x80+0x40+8);if(s1num=3)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版模具材料供應(yīng)與設(shè)備租賃合作協(xié)議2篇
- 美甲店二零二五年度供應(yīng)鏈管理及采購合同4篇
- 小學(xué)高年級學(xué)生的自主學(xué)習(xí)能力在語文教學(xué)中的培養(yǎng)策略
- 智慧辦公啟迪思維提升工作效率的新方法
- 2025版事業(yè)單位管理崗位聘用合同范本3篇
- 2025年新型停車場運(yùn)營管理服務(wù)出租協(xié)議4篇
- 2025年度跨境電商進(jìn)口米面糧油品牌代理合同4篇
- 2025年度民用爆破工程爆破作業(yè)人員資質(zhì)認(rèn)證合同4篇
- 2025版信托資金借貸合同稅收優(yōu)惠條款范本3篇
- 娃娃機(jī)社交媒體營銷合同(二零二五)2篇
- 南通市2025屆高三第一次調(diào)研測試(一模)地理試卷(含答案 )
- 重癥患者家屬溝通管理制度
- 法規(guī)解讀丨2024新版《突發(fā)事件應(yīng)對法》及其應(yīng)用案例
- 銷售提成對賭協(xié)議書范本 3篇
- 勞務(wù)派遣招標(biāo)文件范本
- 信息安全意識培訓(xùn)課件
- Python試題庫(附參考答案)
- 碳排放管理員 (碳排放核查員) 理論知識考核要素細(xì)目表三級
- 2024年河北省中考數(shù)學(xué)試題(含答案解析)
- 小學(xué)二年級數(shù)學(xué)口算練習(xí)題1000道
- 納布啡在產(chǎn)科及分娩鎮(zhèn)痛的應(yīng)用
評論
0/150
提交評論