




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(jì)題 目: 基于單片機(jī)的自動(dòng)打鈴系統(tǒng)設(shè)計(jì) 28摘 要: 本設(shè)計(jì)是一種基于stc89c52單片機(jī)控制的自動(dòng)打鈴系統(tǒng)設(shè)計(jì)。它具有多項(xiàng)顯示和控制功能:能用lcd實(shí)時(shí)顯示當(dāng)前年、月、日、星期、時(shí)間;可對時(shí)間進(jìn)行調(diào)整;具有鬧鈴及整點(diǎn)報(bào)時(shí)功能;可顯示萬年歷等功能。并且它以單片機(jī)的 c51 語言進(jìn)行軟件設(shè)計(jì),增加了程序的可讀性和可移植性,便于擴(kuò)展和更改。 本文通過對一個(gè)基于單片機(jī)的能實(shí)現(xiàn)萬年歷功能電子時(shí)鐘的設(shè)計(jì),從而達(dá)到學(xué)習(xí)、了解單片機(jī)相關(guān)指令在各方面的應(yīng)用。系統(tǒng)由主控制器stc89c52、時(shí)鐘電路ds1302、顯示電路、按鍵電路、和復(fù)位電路等部分構(gòu)成,能實(shí)現(xiàn)時(shí)鐘日歷顯示的功能,能進(jìn)行時(shí)、分、秒的顯示
2、并且裝有自動(dòng)打鈴系統(tǒng)。關(guān)鍵詞: 單片機(jī) 萬年歷 時(shí)鐘電路ds1302 c52 abstractthe design is a single-chip microcomputer 51 based on the number of automatic ring a bell system. it has a number of display and control functions: real-time use lcd displays the current year, month, day, week, time; may be time to adjust; with alarm as
3、 well as the whole point timekeeping function; calendar function displays. and the c51 it single-chip software design language, an increase of procedures to improve the readability and portability, ease of expansion and change.based on a microcontroller based on the will to achieve calendar of a mul
4、ti-functional electronic clock designthereby achieve studying and understanding the relevant directives scm in all aspects of the application. by main control stc89c52、clock circuit ds1302、display circuit、keystroke circuit and restore circuit componented to achieve clock calendar display function ca
5、n be carried out hours seconds of the show and real-time of the show and real-time temperature display and equipped with automatic ring a bell system.keywords: single-chip clock circuit calendar ds1302 c51 language 目錄引言11 設(shè)計(jì)簡介及方案論述21.1 作息時(shí)間控制鐘概述21.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容21.2.1 設(shè)計(jì)任務(wù)21.2.2 主要內(nèi)容22 系統(tǒng)硬件電路設(shè)計(jì)32.1 遙控
6、部分32.2 stc89c52單片機(jī)性能介紹42.2.1 時(shí)鐘電路52.2.2 復(fù)位及復(fù)位電路62.2.3 stc89c52具體介紹如下72.2.4 stc89c52主要功能82.2.5 單片機(jī)引腳圖92.3 ds1302性能介紹92.3.1 ds1302引腳排列92.3.2 ds1302的控制字節(jié)102.3.3 數(shù)據(jù)輸入輸出(i/o)102.3.4 ds1302的寄存器112.4 1602 液晶模塊112.4.1 1602字符液晶112.4.2 1602簡介112.4.3 1602接線圖122.5蜂鳴器模塊和電源模塊123 系統(tǒng)軟件設(shè)計(jì)133.1 系統(tǒng)軟件設(shè)計(jì)的主要內(nèi)容133.2主程序流程設(shè)
7、計(jì)144 畢業(yè)設(shè)計(jì)結(jié)論分析15參考文獻(xiàn)16附錄117附錄218引言多功能數(shù)字萬年歷已成為人們?nèi)粘I钪斜夭豢缮俚奈锲罚瑥V泛用于個(gè)人家庭以及車站、碼頭、醫(yī)院、辦公室等公共場所,給人們的生活、學(xué)習(xí)、工作、娛樂帶來極大的方便。隨著技術(shù)的發(fā)展,人們已不再滿足于鐘表原先簡單的報(bào)時(shí)功能,希望出現(xiàn)一些別的功能,諸如日歷的顯示、鬧鐘的應(yīng)用等,以帶來更大的方便,而所有這些,又都是以數(shù)字化的電子時(shí)鐘為基礎(chǔ)的。因此,研究實(shí)用電子時(shí)鐘及其發(fā)展應(yīng)用,有著非?,F(xiàn)實(shí)的意義,具有很大的實(shí)用價(jià)值。由于數(shù)字集成電路技術(shù)的發(fā)展和采用了先進(jìn)的石英技術(shù),使電子鐘具有走時(shí)準(zhǔn)確、性能穩(wěn)定、攜帶方便等優(yōu)點(diǎn)它還用于計(jì)時(shí)、自動(dòng)報(bào)時(shí)及自動(dòng)控制等各
8、個(gè)領(lǐng)域。雖然現(xiàn)在市場上已有現(xiàn)成的電子鐘集成電路芯片出售,價(jià)格便宜,使用靈活,如可以隨意設(shè)置時(shí)、分、秒的輸出,改變顯示數(shù)字的大小等,并且由于集成電路技術(shù)的發(fā)展,特別是mos集成電路技術(shù)的發(fā)展,使電子鐘具有體積小、攜帶方便,但是這里介紹的實(shí)用電子鐘可以滿足使用者的一些特殊要求,輸出方式靈活、功耗低、x時(shí)準(zhǔn)確、性能穩(wěn)定、維護(hù)方便等優(yōu)點(diǎn)。多功能數(shù)字萬年歷是一個(gè)時(shí)間控制系統(tǒng),既能作為一般的時(shí)間顯示器,同時(shí)可以根據(jù)需要擴(kuò)展其功能。近年來,隨著電子技術(shù)和微機(jī)計(jì)算機(jī)的迅速發(fā)展,單片機(jī)的檔次不斷提高,其應(yīng)用領(lǐng)域也在不斷的擴(kuò)大,已在工業(yè)控制、尖端科學(xué)、智能儀器儀表、日用家電、汽車電子系統(tǒng)、辦公自動(dòng)化設(shè)備、個(gè)人信息
9、終端及通信產(chǎn)品中得到了廣泛的應(yīng)用,成為現(xiàn)代電子系統(tǒng)中最重要的智能化的核心部件。單片機(jī)具有體積小、功能強(qiáng)、成本低、應(yīng)用面廣等優(yōu)點(diǎn),可以說,智能控制與自動(dòng)控制的核心就是單片機(jī)。目前,一個(gè)學(xué)習(xí)與應(yīng)用單片機(jī)的高潮正在工廠、學(xué)校及企事業(yè)單位大規(guī)模地興起。學(xué)習(xí)單片機(jī)的最有效的方法就是理論與實(shí)踐并重,本文是基于stc89c52單片機(jī)設(shè)計(jì)的一個(gè)多功能萬年歷并且裝有自動(dòng)打鈴系統(tǒng)。1 設(shè)計(jì)簡介及方案論述1.1 作息時(shí)間控制鐘概述本設(shè)計(jì)是一個(gè)具有報(bào)時(shí)功能的作息時(shí)間控制鐘。它是基于stc89c52單片機(jī)控制ds1302時(shí)鐘芯片來計(jì)時(shí)的,進(jìn)行年歷計(jì)算,并用的蜂鳴器驅(qū)動(dòng)模塊將它報(bào)出來;在進(jìn)行時(shí)間計(jì)算,分每加一時(shí),都與規(guī)定
10、的作息時(shí)間比較,如果相等則進(jìn)行相應(yīng)的控制或動(dòng)作。本設(shè)計(jì)時(shí)鐘顯示由tc1602液晶顯示,外形美觀、大方,顯示醒目、直觀,遙控芯片為pt2262/pt2272,可用遙控來對數(shù)字鐘進(jìn)行調(diào)整,四個(gè)按鍵用于報(bào)時(shí)及校正時(shí)間?,F(xiàn)代機(jī)關(guān)企業(yè),特別是學(xué)校要求對時(shí)間加以控制,要按時(shí)打鈴及播放廣播,以保證學(xué)習(xí)與工作的正常運(yùn)行。本設(shè)計(jì)實(shí)現(xiàn)了這些功能,給學(xué)校及其他機(jī)關(guān)企業(yè)帶來方便,整體性好,人性化強(qiáng)、可靠性高,實(shí)現(xiàn)了對時(shí)間控制的智能化。1.2 本設(shè)計(jì)任務(wù)和主要內(nèi)容1.2.1 設(shè)計(jì)任務(wù)用可編程器件為主體,設(shè)計(jì)并制作一臺自動(dòng)打鈴系統(tǒng)。要求完成的作品必須固化軟件,測試檢查時(shí)上電即可工作,不允再用計(jì)算機(jī)下載。實(shí)現(xiàn)能夠顯示當(dāng)前的
11、時(shí)間,同時(shí)能夠在規(guī)定的時(shí)間點(diǎn)控制打鈴裝置打出預(yù)期的鈴聲。另外增設(shè)無線控制,通過遙控分配以實(shí)現(xiàn)對時(shí)間的調(diào)整,包括對時(shí)鐘、分鐘的增加和減少,秒鐘的清零及設(shè)定打鈴時(shí)間。1.2.2 主要內(nèi)容1、基本計(jì)時(shí)和顯示功能(用12小時(shí)制顯示)。包括上下午標(biāo)志,時(shí)、分的數(shù)字顯示,秒信號指示。2、能設(shè)置當(dāng)前時(shí)間(含上、下午,時(shí),分)3、能實(shí)現(xiàn)基本打鈴功能2 系統(tǒng)硬件電路設(shè)計(jì)2.1 遙控部分pt2262/2272是臺灣普城公司生產(chǎn)的一種cmos工藝制造的低功耗低價(jià)位通用編解碼電路,pt2262/2272最多可有12位三態(tài)地址端管腳(懸空,接高電平,接低電平),任意組合可提供531441地址碼,pt2262最多可有6位
12、(d0-d5)數(shù)據(jù)端管腳,設(shè)定的地址碼和數(shù)據(jù)碼從17腳串行輸出,可用于無線遙控發(fā)射電路。編碼芯片pt2262發(fā)出的編碼信號由:地址碼、數(shù)據(jù)碼、同步碼組成一個(gè)完整的碼字,解碼芯片pt2272接收到信號后,其地址碼經(jīng)過比較核對后,vt才輸出高電平。當(dāng)發(fā)射機(jī)沒有按鍵按下時(shí),pt2262不接通電源,其17腳為低電平,所以315mhz的高頻發(fā)射電路不工作,當(dāng)有按鍵按下時(shí),pt2262得電工作,其第17腳輸出經(jīng)調(diào)制的串行數(shù)據(jù)信號,當(dāng)17腳為高電平期間315mhz的高頻發(fā)射電路起振并發(fā)射等幅高頻信號,當(dāng)17腳為低平期間315mhz的高頻發(fā)射電路停止振蕩,所以高頻發(fā)射電路完全收控于pt2262的17腳輸出的數(shù)
13、字信號,從而對高頻電路完成幅度鍵控(ask調(diào)制)相當(dāng)于調(diào)制度為100的調(diào)幅。 圖2-1 pt2262引腳圖 圖2-2 pt2262無線接收電路圖2-3 pt2272引腳圖圖2-4 pt2272無線接收電路2.2 stc89c52單片機(jī)性能介紹stc89c52是一種帶8k字節(jié)閃爍可編程可檫除只讀存儲器(fperom-flash programable and erasable read only memory )的低電壓,高性能comos8的微處理器,俗稱單片機(jī)。該器件采用atmel搞密度非易失存儲器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的mcs-51指令集和
14、輸出管腳相兼容。單片機(jī)總控制電路如下圖2-5所示。圖2-5 單片機(jī)總控制電路2.2.1 時(shí)鐘電路stc89c52內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反相放大器,引腳rxd和txd分別是此放大器的輸入端和輸出端。時(shí)鐘可以由內(nèi)部方式產(chǎn)生或外部方式產(chǎn)生。內(nèi)部方式的時(shí)鐘電路如圖2-6(a) 所示,在rxd和txd引腳上外接定時(shí)元件,內(nèi)部振蕩器就產(chǎn)生自激振蕩。定時(shí)元件通常采用石英晶體和電容組成的并聯(lián)諧振回路。晶體振蕩頻率可以在1.212mhz之間選擇,電容值在530pf之間選擇,電容值的大小可對頻率起微調(diào)的作用。外部方式的時(shí)鐘電路如圖2-6(b)所示,rxd接地,txd接外部振蕩器。對外部振蕩信號無特殊要求
15、,只要求保證脈沖寬度,一般采用頻率低于12mhz的方波信號。片內(nèi)時(shí)鐘發(fā)生器把振蕩頻率兩分頻,產(chǎn)生一個(gè)兩相時(shí)鐘p1和p2,供單片機(jī)使用。(a)內(nèi)部方式時(shí)鐘電路 (b)外部方式時(shí)鐘電路圖2-6時(shí)鐘電路2.2.2 復(fù)位及復(fù)位電路(1)復(fù)位操作復(fù)位是單片機(jī)的初始化操作。其主要功能是把pc初始化為0000h,使單片機(jī)從0000h單元開始執(zhí)行程序。除了進(jìn)入系統(tǒng)的正常初始化之外,當(dāng)由于程序運(yùn)行出錯(cuò)或操作錯(cuò)誤使系統(tǒng)處于死鎖狀態(tài)時(shí),為擺脫困境,也需按復(fù)位鍵重新啟動(dòng)。除pc之外,復(fù)位操作還對其他一些寄存器有影響,它們的復(fù)位狀態(tài)如表1所示。表1 一些寄存器的復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)寄存器復(fù)位狀態(tài)pc0000htcon
16、00hacc00htl000hpsw00hth000hsp07htl100hdptr0000hth100hp0-p3ffhscon00hipxx000000bsbuf不定ie0x000000bpcon0xxx0000btmod00h(2)復(fù)位信號及其產(chǎn)生rst引腳是復(fù)位信號的輸入端。復(fù)位信號是高電平有效,其有效時(shí)間應(yīng)持續(xù)24個(gè)振蕩周期(即二個(gè)機(jī)器周期)以上。若使用頗率為6mhz的晶振,則復(fù)位信號持續(xù)時(shí)間應(yīng)超過4us才能完成復(fù)位操作。產(chǎn)生復(fù)位信號電路如圖2-7所示。 圖2-7 復(fù)位信號的電路邏輯圖整個(gè)復(fù)位電路包括芯片內(nèi)、外兩部分。外部電路產(chǎn)生的復(fù)位信號(rst)送至施密特觸發(fā)器,再由片內(nèi)復(fù)位電路
17、在每個(gè)機(jī)器周期的s5p2時(shí)刻對施密特觸發(fā)器的輸出進(jìn)行采樣,然后才得到內(nèi)部復(fù)位操作所需要的信號。復(fù)位操作有上電自動(dòng)復(fù)位相按鍵手動(dòng)復(fù)位兩種方式。上電自動(dòng)復(fù)位是通過外部復(fù)位電路的電容充電來實(shí)現(xiàn)的,只要電源vcc的上升時(shí)間不超過1ms,就可以實(shí)現(xiàn)自動(dòng)上電復(fù)位,即接通電源就成了系統(tǒng)的復(fù)位初始化。按鍵手動(dòng)復(fù)位有電平方式和脈沖方式兩種。其中,按鍵電平復(fù)位是通過使復(fù)位端經(jīng)電阻與vcc電源接通而實(shí)現(xiàn)的,其電路如圖2-8(b)所示;而按鍵脈沖復(fù)位則是利用rc微分電路產(chǎn)生的正脈沖來實(shí)現(xiàn)的,其電路如圖2-8(c)所示:(a)上電復(fù)位 (b)按鍵電平復(fù)位 (c)按鍵脈沖復(fù)位圖2-8復(fù)位電路上述電路圖中的電阻、電容參數(shù)適
18、用于6mhz晶振,能保證復(fù)位信號高電平持續(xù)時(shí)間大于2個(gè)機(jī)器周期。本系統(tǒng)的復(fù)位電路采用圖2-8(b)上電復(fù)位方式。2.2.3 stc89c52具體介紹如下 主電源引腳(2根)vcc(pin40):電源輸入,接5v電源gnd(pin20):接地線外接晶振引腳(2根)xtal1(pin19):片內(nèi)振蕩電路的輸入端xtal2(pin20):片內(nèi)振蕩電路的輸出端控制引腳(4根)rst/vpp(pin9):復(fù)位引腳,引腳上出現(xiàn)2個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。ale/prog(pin30):地址鎖存允許信號psen(pin29):外部存儲器讀選通信號ea/vpp(pin31):程序存儲器的內(nèi)外部選通,接
19、低電平從外部程序存儲器讀指令,如果接高電平則從內(nèi)部程序存儲器讀指令。可編程輸入/輸出引腳(32根)stc89c52單片機(jī)有4組8位的可編程i/o口,分別位p0、p1、p2、p3口,每個(gè)口有8位(8根引腳),共32根。po口(pin39pin32):8位雙向i/o口線,名稱為p0.0p0.7p1口(pin1pin8):8位準(zhǔn)雙向i/o口線,名稱為p1.0p1.7 p2口(pin21pin28):8位準(zhǔn)雙向i/o口線,名稱為p2.0p2.7 p3口(pin10pin17):8位準(zhǔn)雙向i/o口線,名稱為p3.0p3.72.2.4 stc89c52主要功能表2 stc89c52主要功能主要功能特性兼容
20、mcs51指令系統(tǒng)8k可反復(fù)擦寫flash rom32個(gè)雙向i/o口256x8bit內(nèi)部ram3個(gè)16位可編程定時(shí)/計(jì)數(shù)器中斷時(shí)鐘頻率0-24mhz2個(gè)串行中斷可編程uart串行通道2個(gè)外部中斷源共6個(gè)中斷源2個(gè)讀寫中斷口線3級加密位低功耗空閑和掉電模式軟件設(shè)置睡眠和喚醒功能2.2.5 單片機(jī)引腳圖圖2-9 單片機(jī)引腳圖2.3 ds1302性能介紹2.3.1 ds1302引腳排列圖2-10 ds1302引腳圖1)vcc1:后備電源,vcc2:主電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。ds1302由vcc1或vcc2兩者中的較大者供電。當(dāng)vcc2大于vcc10.2v時(shí),vcc2給ds
21、1302供電。當(dāng)vcc2小于vcc1時(shí),ds1302由vcc1供電。2)x1、x2:振蕩源,外接32.768khz晶振。3)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.0v之前,rst必須保持低電平。只有在sclk為低電平時(shí),才能將rst置為高電平。4)i/
22、o為串行數(shù)據(jù)輸入輸出端(雙向)。5)sclk為時(shí)鐘輸入端。 2.3.2 ds1302的控制字節(jié) 圖2-11 ds1302的控制字節(jié)控制字節(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é)總是從最低位開始輸出。 2.3.3 數(shù)據(jù)輸入輸出(i/o) 在控制指令字輸入后的下一個(gè)sclk時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入ds1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后
23、的下一個(gè)sclk脈沖的下降沿讀出ds1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。 2.3.4 ds1302的寄存器ds1302有12個(gè)寄存器,其中有7個(gè)寄存器與日歷、時(shí)鐘相關(guān),存放的數(shù)據(jù)位為bcd碼形式,其日歷、時(shí)間寄存器及其控制字見數(shù)據(jù)手冊。此外,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ù)為寫操作;另一類為突發(fā)方式下的ram
24、寄存器,此方式下可一次性讀寫所有的ram的31個(gè)字節(jié),命令控制字為feh(寫)、ffh(讀)。ds1302應(yīng)用電路如2-12所示。 圖2-12 ds1302應(yīng)用電路 2.4 1602 液晶模塊2.4.1 1602字符液晶 圖2-12 1602字符液晶2.4.2 1602簡介工業(yè)字符型液晶,能夠同時(shí)顯示16x02即32個(gè)字符。(16列2行) 注:為了表示的方便 ,后文皆以1表示高電平,0表示低電平。 由于本系統(tǒng)信息顯示量大,所以我們選用lcd1602中文模塊的液晶顯示器。該模塊具有2.75.5v的寬工作電壓范圍,且具有睡眠、正常及低功耗工作模式,可滿足系統(tǒng)各種
25、工作電壓及便攜式儀器低功耗的要求。液晶模塊顯示負(fù)電壓,也由模塊提供,從而簡化了系統(tǒng)電源設(shè)計(jì)。因此在本設(shè)計(jì)中是很好的選擇。2.4.3 1602接線圖圖2-13 1602 接線圖2.5蜂鳴器模塊和電源模塊系統(tǒng)蜂鳴器的工作原理如下:當(dāng)單片機(jī)端口輸出高電平時(shí),三極管b極處于高電平,三極管不導(dǎo)通,蜂鳴器不響。當(dāng)單片機(jī)端口輸出低電平時(shí),三極管b極處于低電平,三極管導(dǎo)通,蜂鳴器鳴響。在本系統(tǒng)中如果要運(yùn)用到實(shí)際中的話本來是要把單片機(jī)端口p1.4口接上繼電器再控制220v電源的電鈴的,但由于各種原因,在這次設(shè)計(jì)中我是用蜂鳴器來顯示出打鈴的效果的,蜂鳴器與單片機(jī)的連接圖如圖2-14所示。 圖2-14 蜂鳴器與單片
26、機(jī)連接圖3 系統(tǒng)軟件設(shè)計(jì)3.1 系統(tǒng)軟件設(shè)計(jì)的主要內(nèi)容系統(tǒng)軟件設(shè)計(jì)由四個(gè)模塊編程組成,如圖3-1所示。中央處理單元stc89c52無線接收模塊打鈴電路時(shí)鐘模塊ds1302復(fù)位電路無線發(fā)送模塊時(shí)間顯示模塊lcd1602圖3-1 軟件模塊3.2主程序流程設(shè)計(jì)初始化打鈴時(shí)間比較打鈴判斷執(zhí)行顯示按鍵檢測獲取鍵值按鍵處理是否正常走時(shí)?有鍵按下嗎?開始圖3-2 主程序流程圖如圖所示主程序開始初始化后,通過無線遙控可以設(shè)定當(dāng)前的時(shí)間和日期,在液晶上顯示,然后通過無線遙控可以設(shè)定打鈴的時(shí)間,如果設(shè)定打鈴時(shí)間和液晶顯示的時(shí)間一致,開始打鈴。主程序清單見附錄。4 畢業(yè)設(shè)計(jì)結(jié)論分析經(jīng)過了兩個(gè)多月的學(xué)習(xí)和工作,我終于
27、完成了基于單片機(jī)時(shí)鐘自動(dòng)打鈴系統(tǒng)課程設(shè)計(jì)。從開始接到論文要求到時(shí)鐘的實(shí)現(xiàn),再到打鈴系統(tǒng)設(shè)計(jì)的完成,每走一步對我來說都是新的嘗試與挑戰(zhàn),這也是我在大學(xué)期間獨(dú)立完成的最大的項(xiàng)目。在這段時(shí)間里,我學(xué)到了很多知識也有很多感受,我開始了獨(dú)立的學(xué)習(xí)和試驗(yàn),查看相關(guān)的資料和書籍,讓自己頭腦中模糊的概念逐漸清晰,使自己非常稚嫩作品一步步完善起來,每一次改進(jìn)都是我學(xué)習(xí)的收獲,每一次試驗(yàn)的成功都會(huì)讓我興奮好一段時(shí)間。 當(dāng)看著自己的程序,自己成天相伴的系統(tǒng)能夠健康的運(yùn)行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最終都會(huì)化為甜美的甘泉。這次論文的經(jīng)歷也會(huì)使我終身受益,我感受到做論文是要用心去做的一件事情,是真正的自
28、己學(xué)習(xí)的過程和研究的過程,沒有學(xué)習(xí)就不可能有研究的能力,沒有自己的研究,就不會(huì)有所突破。通過本次畢業(yè)設(shè)計(jì),我在劉老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識,極大地提高了實(shí)踐能力,單片機(jī)領(lǐng)域這對我今后進(jìn)一步學(xué)習(xí)計(jì)算機(jī)方面的知識有極大的幫助。在此,忠心感劉老師以及許多同學(xué)的指導(dǎo)和支持。參考文獻(xiàn)1 蔡振江.單片機(jī)原理與應(yīng)用m.北京:電子工業(yè)出版社,2007.22 譚浩強(qiáng). c語言程序設(shè)計(jì)(第二版)m. 北京:清華大學(xué)出版社,1991.3 陳小忠,黃寧. 單片機(jī)接口技術(shù)實(shí)用子程序m. 北京:北京人民郵電出版社,2005.4閻石 . 數(shù)字電子基礎(chǔ). 北京: 高等教育出版社,2007年 5李群芳,
29、肖看. 單片機(jī)原理、接口及應(yīng)用嵌入式系統(tǒng)技術(shù)基礎(chǔ). 北京:清華大學(xué)出版社,19916 何立民.單片機(jī)應(yīng)用技術(shù)大全m.北京:北京航空航天大學(xué)出版社,1994.7 張毅剛.單片機(jī)原理及接口技術(shù)m.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,1990.8 李華.mcs-51系列單片機(jī)實(shí)用接口技術(shù)m.北京:北京航空航天大學(xué)出版社.2003.9 張立科.單片機(jī)通信技術(shù)與工程實(shí)踐m.北京:人民郵電出版社,2005.10 張凱.mcs-51單片機(jī)綜合系統(tǒng)及其設(shè)計(jì)開發(fā)m.北京:科學(xué)出版社,1996.11 朱宇光.單片機(jī)應(yīng)用新技術(shù)教程m.北京:電子工業(yè)出版社,2000.12 樓然苗,李光飛.51系列單片機(jī)設(shè)計(jì)實(shí)例m.北京:北
30、京航空航天大學(xué)出版社,2003.13 徐向明.altium designer 快速入門.北京:北京航空航天大學(xué)出版社,200814 claus kühnel, klaus zahnert. basic stamp .newnes, 200015 harprit singh sandhu .running small motors with pic microcontrollers.mcgraw hill professional, 2009附錄1附錄2#include<reg51.h>#include<intrins.h>#define uchar unsig
31、ned char #define uint unsigned int#define lcdio p2sbit rs=p35; sbit rd=p34;sbit acc0=acc0; /移位時(shí)的第0位sbit acc7=acc7; /移位時(shí)用的第7位uchar second,minute,hour,day,month,year,week,count=0; uchar readvalue,num,time; uchar codetable=" 2011-01-01 mon"uchar code table1=" 00:00:00 "uchar code ta
32、ble2= "thufrisatsunmontuewes" sbit io=p22 sbit rst=p21; sbit sclk=p20; sbit menu=p10; /菜單sbit add=p11; /加一sbit dec=p12; /減一sbit set daling=p13;sbit daling=p14; /打鈴void delay(uint z)uint x,y;for(x=z;x>0;x-)for(y=110;y>0;y-);void delay1(uint z)for(;z>0;z-);void write_com(uchar com)r
33、s=0;rd=0;lcden=0;p2=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)rs=1;rd=0;lcden=0;p2=date;delay(5);lcden=1;delay(5);lcden=0;void init()uchar num;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);delay(5);write_com(0x80);for(num=0;num<15;n
34、um+)write_date(tablenum);delay(5);write_com(0x80+0x40);for(num=0;num<10;num+)write_date(table1num);delay(5); void write1302(uchar dat) uchar i; sclk=0; /拉低sclk,為脈沖上升沿寫入數(shù)據(jù)做好準(zhǔn)備 delay1(2); /稍微等待,使硬件做好準(zhǔn)備 for(i=0;i<8;i+) /連續(xù)寫8個(gè)二進(jìn)制位數(shù)據(jù) data=dat&0x01; /取出dat的第0位數(shù)據(jù)寫入1302 delay(2); /稍微等待,使硬件做好準(zhǔn)備 scl
35、k=1; /上升沿寫入數(shù)據(jù) delay1(2); /稍微等待,使硬件做好準(zhǔn)備 sclk=0; /重新拉低sclk,形成脈沖 dat>>=1; /將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫入下一個(gè)數(shù)據(jù)位 void writeset1302(uchar cmd,uchar dat) rst=0; /禁止數(shù)據(jù)傳遞 sclk=0; /確保寫數(shù)居前sclk被拉低 rst=1; /啟動(dòng)數(shù)據(jù)傳輸 delay1(2); /稍微等待,使硬件做好準(zhǔn)備 write1302(cmd); /寫入命令字 write1302(dat); /寫數(shù)據(jù) sclk=1; /將時(shí)鐘電平置于已知狀態(tài) rst=0; /禁止數(shù)據(jù)傳遞
36、uchar read1302(void) uchar i,dat; delay(2); /稍微等待,使硬件做好準(zhǔn)備 for(i=0;i<8;i+) /連續(xù)讀8個(gè)二進(jìn)制位數(shù)據(jù) dat>>=1; /將dat的各數(shù)據(jù)位右移1位,因?yàn)橄茸x出的是字節(jié)的最低位 if(data=1) /如果讀出的數(shù)據(jù)是1 dat|=0x80; /將1取出,寫在dat的最高位 sclk=1; /將sclk置于高電平,為下降沿讀出 delay1(2); /稍微等待 sclk=0; /拉低sclk,形成脈沖下降沿 delay1(2); /稍微等待 return dat; /將讀出的數(shù)據(jù)返回 uchar read
37、set1302(uchar cmd) uchar dat; rst=0; /拉低rst sclk=0; /確保寫數(shù)居前sclk被拉低 rst=1; /啟動(dòng)數(shù)據(jù)傳輸 write1302(cmd); /寫入命令字 dat=read1302(); /讀出數(shù)據(jù) sclk=1; /將時(shí)鐘電平置于已知狀態(tài) rst=0; /禁止數(shù)據(jù)傳遞 return dat; /將讀出的數(shù)據(jù)返回void init_ds1302(void) writeset1302(0x8e,0x00); /根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令 writeset1302(0x80,(0/10)<<4|(0%10); /根據(jù)寫秒
38、寄存器命令字,寫入秒的初始值 writeset1302(0x82,(45/10)<<4|(45%10); /根據(jù)寫分寄存器命令字,寫入分的初始值 writeset1302(0x84,(15/10)<<4|(15%10); /根據(jù)寫小時(shí)寄存器命令字,寫入小時(shí)的初始值 writeset1302(0x86,(29/10)<<4|(29%10); /根據(jù)寫日寄存器命令字,寫入日的初始值 writeset1302(0x88,(11/10)<<4|(11%10); /根據(jù)寫月寄存器命令字,寫入月的初始值 writeset1302(0x8c,(10/10)&l
39、t;<4|(10%10); /nian writeset1302(0x8a,(4/10)<<4|(4%10);void displaysecond(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0xc8); write_date(0x30+i); write_date(0x30+j); void displayminute(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0xc5); write_date(0x30+i); write_date(0x30+j); void display
40、hour(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0xc2); write_date(0x30+i); write_date(0x30+j); void displayday(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x89); write_date(0x30+i); write_date(0x30+j); void displaymonth(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x86); write_date(0x30+i); wr
41、ite_date(0x30+j); void displayyear(uchar x) uchar i,j; i=x/10; j=x%10; write_com(0x83); write_date(0x30+i); write_date(0x30+j); void displayweek(uchar x) uchar i; x=x*3; write_com(0x8c); for(i=0;i<3;i+) write_date(table2x);x+; void read_date(void) readvalue = readset1302(0x81); second=(readvalue&
42、amp;0x70)>>4)*10 + (readvalue&0x0f); readvalue = readset1302(0x83); minute=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue = readset1302(0x85); hour=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue = readset1302(0x87); day=(readvalue&0x70)>>
43、4)*10 + (readvalue&0x0f); readvalue = readset1302(0x89); month=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue = readset1302(0x8d); year=(readvalue&0x70)>>4)*10 + (readvalue&0x0f); readvalue=readset1302(0x8b); /讀星期 week=readvalue&0x07; displaysecond(second);
44、 displayminute(minute); displayhour(hour); displayday(day); displaymonth(month); displayyear(year); displayweek(week); void turn_val(char newval,uchar flag,uchar newaddr,uchar s1num) newval=readset1302(newaddr); /讀取當(dāng)前時(shí)間 newval=(newval&0x70)>>4)*10+(newval&0x0f); /將bcd碼轉(zhuǎn)換成十進(jìn)制 if(flag) /
45、判斷是加一還是減一 newval+; switch(s1num) case 1: if(newval>99) newval=0; displayyear(newval); break; case 2: if(newval>12) newval=1; displaymonth(newval); break; case 3: if(newval>31) newval=1; displayday(newval); break; case 4: if(newval>6) newval=0; displayweek(newval); break; case 5: if(newva
46、l>23) newval=0; displayhour(newval); break; case 6: if(newval>59) newval=0; displayminute(newval); break; case 7: if(newval>59) newval=0; displaysecond(newval); break; default:break; else newval-;switch(s1num) case 1: if(newval=0) newval=99; displayyear(newval); break; case 2: if(newval=0) newval=12; displaymonth(newval); break; case 3: if(newval=0) newval=31; displayday(newval); break; case 4: if(newval<0) newval=6; displayweek(newval); break; case 5: if(newval<0) newval=23;
溫馨提示
- 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)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 再生鋼鐵購銷合同范例
- 農(nóng)作物向日葵銷售合同范例
- 企業(yè)就餐合同樣本
- 個(gè)人購買電梯合同范例
- 2025企業(yè)短期工勞動(dòng)合同【短期工合同范本】
- 2025關(guān)于按揭房屋買賣合同范本
- pp管運(yùn)輸合同范例
- 會(huì)展購銷合同范例
- 2025版?zhèn)€人房屋租賃合同模板
- 企業(yè)收購中介合同范例
- Q∕SY 13123-2017 物資倉儲技術(shù)規(guī)范
- 合肥市不動(dòng)產(chǎn)登記申請審批表-版本
- 防洪度汛檢查表
- 手術(shù)通知單模板
- 招商合同范本4篇-合同范本
- 《西方音樂史》課件伯遼茲
- 關(guān)于互聯(lián)網(wǎng)金融對商業(yè)銀行風(fēng)險(xiǎn)影響的實(shí)證研究會(huì)計(jì)學(xué)專業(yè)
- 十八項(xiàng)電網(wǎng)重大反事故措施
- 液壓缸常見故障類型及維修或排除方法
- 河北工業(yè)大學(xué)本科生體育課程考核管理辦法-河北工業(yè)大學(xué)本科生院
- 數(shù)控車床四刀位免抬刀塔裝調(diào)工藝卡
評論
0/150
提交評論