基于-單片機(jī)萬年率設(shè)計(jì)_第1頁
基于-單片機(jī)萬年率設(shè)計(jì)_第2頁
基于-單片機(jī)萬年率設(shè)計(jì)_第3頁
基于-單片機(jī)萬年率設(shè)計(jì)_第4頁
基于-單片機(jī)萬年率設(shè)計(jì)_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、PAGE -PAGE 35. z.工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)綜合實(shí)踐課題名稱:基于單片機(jī)的萬年率的設(shè)計(jì)作 者: 強(qiáng) 學(xué) 號:20213361 分 院:電子與信息工程專 業(yè):電子與信息工程技術(shù)物聯(lián)網(wǎng)方向指導(dǎo)教師: 胡蓉 專業(yè)技術(shù)職務(wù): 教授 2021 年 3 月 -. z目 錄摘要TOC o 1-3 h u HYPERLINK l _Toc16252 1. 緒論 PAGEREF _Toc16252 1 HYPERLINK l _Toc24436 1.1 設(shè)計(jì)目的 PAGEREF _Toc24436 1 HYPERLINK l _Toc7390 1.2 開展現(xiàn)狀 PAGEREF _Toc7390 1 H

2、YPERLINK l _Toc24348 1.3 解決問題 PAGEREF _Toc24348 2 HYPERLINK l _Toc29092 2. 硬件系統(tǒng)設(shè)計(jì) PAGEREF _Toc29092 3 HYPERLINK l _Toc5177 2.1本設(shè)計(jì)所需的元器件 PAGEREF _Toc5177 3 HYPERLINK l _Toc11296 2.2 STC89C52RC單片機(jī) PAGEREF _Toc11296 4 HYPERLINK l _Toc31463 2.2.1單片機(jī)主要特性 PAGEREF _Toc31463 4 HYPERLINK l _Toc19151 2.2.2單片機(jī)

3、引腳說明 PAGEREF _Toc19151 5 HYPERLINK l _Toc26452 2.3 MA*232電平轉(zhuǎn)換芯片 PAGEREF _Toc26452 7 HYPERLINK l _Toc27195 2.4 DS1302時鐘芯片 PAGEREF _Toc27195 8 HYPERLINK l _Toc8337 2.5 DS18B20溫度傳感器 PAGEREF _Toc8337 10 HYPERLINK l _Toc10016 2.6 12864液晶PAGEREF _Toc10016 11 HYPERLINK l _Toc8876 2.7 獨(dú)立按鍵 PAGEREF _Toc8876

4、12 HYPERLINK l _Toc7820 3. 軟件設(shè)計(jì) PAGEREF _Toc7820 13 HYPERLINK l _Toc19153 3.1陽歷與陰歷轉(zhuǎn)換 PAGEREF _Toc19153 14 HYPERLINK l _Toc25606 3.2 DS1302時鐘芯片程序設(shè)計(jì) PAGEREF _Toc25606 14 HYPERLINK l _Toc1353 3.3 DS18B20程序設(shè)計(jì) PAGEREF _Toc1353 21 HYPERLINK l _Toc17934 3.4 12864液晶顯示程序設(shè)計(jì) PAGEREF _Toc17934 22 HYPERLINK l _T

5、oc5256 4. 調(diào)試 PAGEREF _Toc5256 26 HYPERLINK l _Toc15212 總結(jié) PAGEREF _Toc15212 30 HYPERLINK l _Toc438 參考文獻(xiàn) PAGEREF _Toc438 31 HYPERLINK l _Toc26666 答 PAGEREF _Toc26666 32 HYPERLINK l _Toc2631 附錄一 PAGEREF _Toc2631 33 HYPERLINK l _Toc24368 附錄二 PAGEREF _Toc24368 34-. z摘要:隨著電子技術(shù)的開展,萬年歷目前已經(jīng)不再局限于以紙質(zhì)的形式出現(xiàn)。以電腦

6、軟件或者電子產(chǎn)品形式出現(xiàn)的萬年歷被稱為電子萬年歷。與傳統(tǒng)紙質(zhì)的萬年歷相比,電子萬年歷得到了越來越廣泛的應(yīng)用。采用電子萬年歷來顯示時間已經(jīng)成為了一種時尚。本文提出了一種基于單片機(jī)的電子萬年歷的設(shè)計(jì),以STC89C51作為主控制核心,與液晶LCD1602、時鐘芯片DS1302、溫度傳感器DS18B20、獨(dú)立式按鍵等模塊組成硬件系統(tǒng),能實(shí)現(xiàn)時間、溫度的顯示,以及時間的調(diào)整。關(guān)鍵詞:STC89C51,萬年歷,DS1302,DS13B20緒論1.1 設(shè)計(jì)目的古人依靠日冕,漏刻記錄時間。從古至今,人們的日常生活和工作都離不開對時間的準(zhǔn)確把握。而隨著科技的開展,電子萬年歷成為了日漸流行的日常計(jì)時工具。目前市

7、場上的萬年歷功能強(qiáng)大,簡單直觀,給人們帶來很大的方便。對于萬年歷設(shè)計(jì)有很多實(shí)現(xiàn)的方法,自己動手設(shè)計(jì)與制作可以對硬件的構(gòu)造和功能有更深的認(rèn)識,并與軟件結(jié)合,以到達(dá)理論與實(shí)踐更好的結(jié)合,進(jìn)一步提高綜合運(yùn)用所學(xué)知識進(jìn)展設(shè)計(jì)的能力。這是對自己大學(xué)三年的學(xué)習(xí)的檢驗(yàn),具有重要的意義。1.2 開展現(xiàn)狀據(jù)了解,目前市場上的電子萬年歷并不是采用51單片機(jī)作為主控制器的,基于單片機(jī)的萬年歷一般是學(xué)生和單片機(jī)愛好者在進(jìn)展設(shè)計(jì),談不上占有市場。也許就是這樣,研究單片機(jī)萬年歷的人不在少數(shù),并且都在努力。努力不是單方面的,單片機(jī)的功能也應(yīng)該要提高,STC89C52單片機(jī)就是這樣的例子,其功能雖然沒有大幅度提高,但使用起來

8、更方便了。我相信,在不久的將來肯定會有功能更強(qiáng)大本錢更低的單片機(jī)出現(xiàn),給我們的設(shè)計(jì)帶來更多的便利。1.3 解決問題本課題主要通過單片機(jī)的功能和應(yīng)用,利用編程軟件和仿真軟件進(jìn)展設(shè)計(jì),并制作實(shí)物。設(shè)計(jì)要到達(dá)預(yù)期的效果要解決以下問題:(1)認(rèn)真設(shè)計(jì)好萬年歷的邏輯原理圖;(2) 熟練使用C語言,運(yùn)用編程軟件進(jìn)展軟件設(shè)計(jì); (3) 在Proteus仿真平臺上,對程序進(jìn)展編譯仿真; (4) 認(rèn)真仔細(xì)地對萬年歷進(jìn)展組裝焊接; (5) 在確認(rèn)沒有問題的硬件實(shí)物上進(jìn)展程序下載調(diào)試,以到達(dá)預(yù)期的效果要求;2. 硬件系統(tǒng)設(shè)計(jì)本設(shè)計(jì)將最小系統(tǒng)與所有用到的模塊元件集合在一塊萬能板上,最小系統(tǒng)和其它模塊均由自己動手焊接。

9、首先是在萬能板上布局,以到達(dá)合理的規(guī)劃,保證設(shè)計(jì)的美觀性。然后為了保證設(shè)計(jì)的質(zhì)量,我將各元件的電源口與GND接地口再一次規(guī)劃,用焊錫分別將電源線和GND接地線固定在了特定的位置,以降低線路的復(fù)雜度,讓人一目了然。最后各模塊元件與單片機(jī)之間均用電線直接由引腳處連接萬能板的焊點(diǎn)處。為了保護(hù)各模塊元件,本設(shè)計(jì)使用到的一些重要元件都使用的IC插槽或排母進(jìn)展焊接,連線見實(shí)物圖4.1。本設(shè)計(jì)的系統(tǒng)框架如圖2.1所示:12864液晶模塊單片機(jī)STC89C52RCDS1302時鐘芯片模塊獨(dú)立按鍵模塊塊DS18B20溫度傳感器模塊 內(nèi)部時鐘、復(fù)位模塊圖2.1萬年歷的系統(tǒng)框架圖2.1本設(shè)計(jì)所需的元器件單片機(jī):ST

10、C89C52RC;電平轉(zhuǎn)換芯片:MA*232;時鐘芯片:DS1302;溫度傳感器:DS18B20;液晶:QC12864B漢字圖形點(diǎn)陣液晶;按鈕開關(guān);2.2 STC89C52RC單片機(jī)本設(shè)計(jì)采用STC89C52RC單片機(jī)6,8K字節(jié)可編程閃爍存儲器。STC89系列單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品,它們在指令系統(tǒng)、硬件構(gòu)造和片資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容。STC89系列是以8051為基核開發(fā)出的CMOS工藝單片機(jī),DIP封裝系列與8051為pin-to-pin引腳對引腳兼容。STC89系列單片機(jī)高速,低功耗,其程序?qū)懭霑r可通過串口采用STC-ISP.不占用用戶資源,學(xué)習(xí)單片機(jī)時較好的

11、選擇。2.2.1單片機(jī)主要特性(1) CPU:由運(yùn)算和控制邏輯組成,同時還包括中斷系統(tǒng)和局部外部特殊功能存放器。中央處理器(CPU)是整個單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。(2) RAM:用于存放要讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)。8051部有128個8位用戶數(shù)據(jù)存儲單元和128個專用存放器單元,它們是統(tǒng)一編址的,專用存放器只能用于存放控制指令數(shù)據(jù),用戶只能,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或

12、用戶定義的字型表。(3) ROM:8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。(4) I/O口:四組8位并行I/O口(P0、 P1、P2和P3),既可用作輸入,也可用作輸出。(5) T/C定時/計(jì)數(shù)器:兩個16位的可編程定時/計(jì)數(shù)器,既可以工作在定時模式,也可以工作在計(jì)數(shù)模式。(6) 5個中斷源的中斷控制系統(tǒng):8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計(jì)數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。(7) 全雙工串行口:一個全雙工UART通用異步接收發(fā)送器的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;(8) 片

13、振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率取決于單片機(jī)型號及性能。2.2.2單片機(jī)引腳說明圖2.2 STC89C52RC封裝引腳圖STC89C52RC的引腳封裝和8051的引腳封裝是一樣的,均采用40Pin封裝的雙列直插DIP構(gòu)造。下列圖是它們的引腳配置,40個引腳中,Pin40為正電源,Pin20為地線;外置石英振蕩器的時鐘線Pin18和Pin19兩根;4組8位共32個I/O口P0、P1、P2和P3,中斷口線與P3口線復(fù)用。本設(shè)計(jì)只是實(shí)現(xiàn)簡單的讀寫功能,不需要用到I/O口的第二功能。這里就不對單片機(jī)的引腳作出太詳細(xì)的介紹,簡單介紹一些專用引腳,其它引腳用到時再介紹。單片機(jī)

14、引腳封裝如圖2.2所示。(1) Pin9:RST復(fù)位信號復(fù)用腳,當(dāng)STC89C52RC通電,時鐘電路開場工作,在RST引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用存放器被清0。RST由高電平下降為低電平后,系統(tǒng)即從0000H地址開場執(zhí)行程序。然而,初始復(fù)位不改變RAM包括工作存放器R0-R7的狀態(tài),STC89C52RC的初始態(tài)。STC89C52RC的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位按鍵電平復(fù)位和按鍵脈沖復(fù)位。此外,RST還是一個復(fù)引腳,Vcc掉電期間,此引腳可接上備用電源,以保證

15、單片機(jī)部RAM的數(shù)據(jù)不喪失。本設(shè)計(jì)采用的是手動復(fù)位電路:按鍵電平復(fù)位。復(fù)位電路如圖2.3所示。圖2.3 按鍵電平復(fù)位電路(2) Pin18、19:*TAL1和*TAL2時鐘產(chǎn)生電路引腳,這里使用的石英晶體振蕩頻率為11.0592MHz。時鐘振蕩電路如圖2.4所示。圖2.4 時鐘振蕩電路(3) Pin29:當(dāng)外部程序存儲器時,此引腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。(4) Pin30:ALE/當(dāng)外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而部程序存儲器時,ALE端將有一個1/6時鐘頻率的正

16、脈沖信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸出。它還有一個特點(diǎn)是,當(dāng)外部程序存儲器時,ALE會跳過一個脈沖。(5) Pin31:/VPP程序存儲器的外部選通線,對于STC89C52RC來說,置有8kB的程序存儲器,當(dāng)為高電平并且程序地址小于8kB時,讀取部程序存儲器指令數(shù)據(jù),而超過8kB地址則讀取外部指令數(shù)據(jù)。如為低電平,則不管地址大小,一律讀取外部程序存儲器指令。當(dāng)使用到外部程序存儲器時,要使用到一些特定功能的引腳,本設(shè)計(jì)中沒有使用外部存儲器。2.3 MA*232電平轉(zhuǎn)換芯片當(dāng)我們用STC-ISP.這個軟件給STC89C52RC下載程序時,采用的是計(jì)算機(jī)串口RS-2

17、32電平:高 -12V 低+12V通信,所以計(jì)算機(jī)與單片機(jī)之間進(jìn)展通信時需要電平轉(zhuǎn)換芯片MA*232。MA*232含有兩個RS-232發(fā)送驅(qū)動器和接收驅(qū)動器,其中發(fā)送器的輸入為TTL/CMOS電平,輸出為RS-232電平。MA*232接收器的輸入為RS-232電平,輸出為TTL/CMOS電平。不使用的輸入輸出端可以懸空。MA*232的工作溫度圍為0至70。MA*232的Pin14T1OUT引腳與串行口的2引腳連接,Pin13R1IN引腳與串行口的3引腳連接。Pin12R1OUT引腳和Pin11T1IN引腳分別與單片機(jī)的P3.0 /R*D串行輸入口、P3.1 /T*D串行輸出口)連接。這樣單片機(jī)

18、所需要的程序就可以從計(jì)算機(jī)下載了。計(jì)算機(jī)與單片機(jī)通信如圖2.5所示。圖2.5 計(jì)算機(jī)與單片機(jī)通信連接圖2.4 DS1302時鐘芯片市場上可以選擇的時鐘芯片很多,功能也不盡一樣,價格各異。DS13028 是美國DALLAS 公司推出的一種串行接口實(shí)時時鐘芯片。芯片部具有可編程日歷時鐘和31個字節(jié)的靜態(tài)RAM,它可以對年、月、日、星期、時、分、秒進(jìn)展計(jì)時,日歷時鐘可自動進(jìn)展閏年補(bǔ)償,及時準(zhǔn)確,接口簡單,使用方便,工作電壓圍寬,功耗低,芯片自身還具有對備份電池進(jìn)展涓流充電功能,可以有效地延長備份電池的使用壽命。DS1302引腳封裝如圖2.6所示。圖2.6 DS1302封裝引腳圖DS1302時鐘芯片的

19、引腳功能如下:(1) Pin1:Vcc2為主電源。(2) Pin8:Vcc1為后備電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。(3) Pin2、3:*1、*2是振蕩源,外接32.768kHz晶振。(4) Pin5:是復(fù)位/片選線,通過把輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。輸入有兩種功能:首先,接通控制邏輯,允許地址/命令序列送入移位存放器;其次,提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)為高電平時,所有的數(shù)據(jù)傳送被初始化

20、,允許對DS1302進(jìn)展操作。如果在傳送過程中置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時,在v cc2.0V之前,必須保持低電平。只有在SCLK為低電平時,才能將置為高電平。(5) Pin6:I/O為串行數(shù)據(jù)輸入輸出端(雙向),在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開場。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。(6) Pin7:SCLK為時鐘輸入端。DS1302與單片機(jī)連接圖如圖2.7所示,具體的讀寫操作在第3局部軟件設(shè)計(jì)中介紹。 2.7(a)

21、 DS1302 2.7(b) 單片機(jī)圖2.7 單片機(jī)與DS1302的連接引腳圖2.5 DS18B20溫度傳感器溫度是一個根本的物理量,自然界中的一切過程與溫度密切相關(guān)。設(shè)計(jì)里參加DS18B20溫度傳感器可以使萬年歷的功能更齊全,可以隨時了解溫度的變化。DS18B20的封裝引腳如圖2.8和單片機(jī)與DS18B20的連接如圖2.9。DS18B20溫度傳感器的I/ODQ引腳連接的是單片機(jī)的P3.3引腳。圖2.8 DS18B20封裝引腳圖 圖2.9 單片機(jī)與DS18B20的連接圖DS18B20溫度傳感器是美國DALLS公司推出的DS1820的替代產(chǎn)品,其主要特性如下。(1) 適應(yīng)電壓圍更寬,電壓圍:3.

22、05.5V,v cc為外接供電電源輸入端,在寄生電源方式下可由數(shù)據(jù)線供電,GND為電源地。(2) 獨(dú)特的單線接口方式,DS18B20在與單片機(jī)連接時僅需要一個引腳DQ即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (3) DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路。(4) 溫圍:55125,在-10+85時精度為0.5。(5) 可編程的分辨率為912位,對應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測溫。(6) 負(fù)壓特性:電源極性接反時,芯片不會因發(fā)熱而燒毀, 但不能正常工作。2.6 12864液晶在本設(shè)計(jì)中,

23、要顯示陽歷、陰歷、星期、時間、生肖、溫度及節(jié)日提醒,因此對顯示器的要求較高。在這里我采用QC12864B漢字圖形點(diǎn)陣液晶10作為顯示模塊,它可顯示漢字及圖形,置 8192 個中文漢字16*16 點(diǎn)陣、128 個字符8*16 點(diǎn)陣。可同時顯示漢字個數(shù)為4*8=32個,同時顯示字符的個數(shù)為4*16=64個。它與單片機(jī)連接如圖2.10所示。圖2.10 12864液晶引腳電路圖在進(jìn)展進(jìn)展這個模塊的設(shè)計(jì)時,考慮到12864液晶的顯示方向,而單片機(jī)的P2引腳剛好與其它的引腳排列順序相反可看圖2.2,所以本設(shè)計(jì)中單片機(jī)與液晶進(jìn)展數(shù)據(jù)傳輸時,用單片機(jī)的P2引腳與液晶的8位雙向三態(tài)數(shù)據(jù)線DB0-DB7進(jìn)展連接,

24、這樣大大簡化了線路的復(fù)雜度。2.7 獨(dú)立按鍵本設(shè)計(jì)采用的4個獨(dú)立按鍵,分別是:設(shè)置、確認(rèn)、加、減。判斷設(shè)置鍵是否按下及第幾次按下可以分別對日期、時間、星期選定,然后按加、減即可進(jìn)展設(shè)置,確認(rèn)鍵按下后,新數(shù)據(jù)即寫入時鐘芯片。例如,設(shè)置鍵按1下,即可以對年份進(jìn)展設(shè)置,按4下,即是可以對小時進(jìn)展設(shè)置。其電路設(shè)計(jì)如圖2.11所示。圖2.11 時間設(shè)置電路3. 軟件設(shè)計(jì)本設(shè)計(jì)利用軟件進(jìn)展程序的編寫。C語言是一種編譯型程序設(shè)計(jì)語言,它兼顧了許多種高級語言的特點(diǎn),并且具備匯編語言的功能,C 語言可以像匯編語言一樣對位、字節(jié)和地址進(jìn)展操作。目前,使用C語言進(jìn)展程序設(shè)計(jì)已經(jīng)成為軟件開發(fā)的一個主流。C語言程序本身

25、不依賴于機(jī)器硬件系統(tǒng),根本上不作修改就可將程序從不同的單片機(jī)中移植過來。用C語言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強(qiáng)程序的可讀性,便于改良、擴(kuò)大和移植。而針對8051的C語言日趨成熟,成為了專業(yè)化的實(shí)用高級語言。雖然匯編語言效率高,對硬件的可操控性更強(qiáng),體積小,但是不易維護(hù),可移植性差。本設(shè)計(jì)程序?qū)崿F(xiàn)了陽歷日期、陰歷日期、時間、星期、溫度、節(jié)日提醒等功能。圖3.1是主程序流程圖。開場LCD、DS1302、DS18B20及相關(guān)變量初始化調(diào)液晶顯示程序設(shè)置鍵是否按下 NY調(diào)用設(shè)置子程序刷新圖3.1 主程序流程圖3.1陽歷與陰歷轉(zhuǎn)換陽歷與陰歷的轉(zhuǎn)換,這局部程序是參考杜陽教師的程序,程序中總共有19

26、91901-2099年的陽歷對應(yīng)陰歷數(shù)據(jù)。陽歷對應(yīng)的陰歷數(shù)據(jù)每年占用單片機(jī)三字節(jié)格式:第一字節(jié)BIT7-4位表示閏月月份,為0,則無閏月;BIT3-0位對應(yīng)陰歷第1-4月的大小。第二字節(jié)BIT7-0位對應(yīng)陰歷第5-12月大小。第三字節(jié)BIT7位表示陰歷第13月大小月分對應(yīng)的位為1,表示農(nóng)歷月大30天為0表示小29天;第三字節(jié)BIT6-5位表示春節(jié)的陽歷月份,BIT4-0位表示春節(jié)公歷日期。例:陽歷2021年對應(yīng)陰歷2021年數(shù)據(jù)為:0*0B,0*4A,0*43。0*0B和0*4A的二進(jìn)制數(shù)表示為:00001011,01001010,這兩個字節(jié)表示陰歷2021年沒有閏月,也就是沒有第十三個月。一

27、,三,四,六,九,十一月都是月大30天,其它都是月小29天。0*43的二進(jìn)制數(shù)表示為:01000011,這里的BIT6-5位為102位可表示4個月,表示陰歷2021年的春節(jié)在陽歷2021年的2月份。BIT4-0位為0001100000-11111,5位最大數(shù)為31,表示3日。整個字節(jié)就表示陰歷2021年的春節(jié)在陽歷2021年的2月3日。3.2 DS1302時鐘芯片程序設(shè)計(jì)在本設(shè)計(jì)中,要實(shí)現(xiàn)萬年歷的功能,DS1302時鐘芯片是少不得的,雖然只用單片機(jī)也可以實(shí)現(xiàn),但是將會造成時間誤差較大,不好調(diào)節(jié)。用DS1302時鐘芯片不僅可以大大的防止那樣的問題,還可以減小程序的編寫量。這個模塊是本設(shè)計(jì)中是很重

28、要的模塊。如圖3.2是DS1302時鐘芯片工作的流程圖。開場相關(guān)變量初始化DS1302去保護(hù)復(fù)位端產(chǎn)生一個高電平復(fù)位端產(chǎn)生一個高電平寫DS1302地址寫DS1302地址延時一段時間延時一段時間向該地址寫數(shù)據(jù)將該地址數(shù)據(jù)讀出地址增加地址增加數(shù)據(jù)寫完否數(shù)據(jù)讀完否 NNYY顯示數(shù)據(jù)圖3.2 DS1302時鐘芯片工作流程圖通過流程圖我們對DS1302時鐘芯片是如何工作的有了個大概的了解,現(xiàn)在進(jìn)一步了解DS1302時鐘芯片關(guān)于日歷、時間的存儲器,先看表3.1。表3.1 讀寫存放器地址讀存放器寫存放器bit7 bit6bit5bit4bit3bit2bit1bit0 圍81H80HCH10秒秒005983

29、H82H10分分005985H84H 1/0 010時時112/ 023AM/PM87H86H0010日日13189H88H00010月月1128BH8AH00000星期178DH8CH10年年0998FH8EH WP 0000000由表可以看出存放秒到年的7個存放器的地址是固定且有規(guī)律的。寫存放器都是偶數(shù)80H8Ch,讀存放器都是奇數(shù)81H8Ch,存放的數(shù)據(jù)格式為BCD碼形式。秒存放器寫80H、讀81H的bit7位定義為時鐘暫停標(biāo)志CH當(dāng)該位置為1時,時鐘振蕩器停頓,DS1302時鐘芯片處于低功耗狀態(tài),為0時,時鐘開場運(yùn)行。時存放器寫84H、讀85H的bit7位為1時,DS1302時鐘芯片運(yùn)

30、行于12小時模式,bit7位為0時,DS1302時鐘芯片運(yùn)行于24小時模式本設(shè)計(jì)是24小時模式。當(dāng)運(yùn)行于12小時模式時,bit5位為0時,表示AM,bit5位為1時,表示PM。當(dāng)運(yùn)行于24小時模式時,bit5位和bit4位一起表示24小時的10位??刂拼娣牌鲗?EH、讀8FH的bit7位是寫保護(hù)位WP,其它7位均置0,在任何的對時鐘和RAM的寫操作之前,WP位必須為0。當(dāng)WP位為1時,寫保護(hù)位防止對任一存放器的寫操作。也就是說在電路上電的初始態(tài)WP為1,這時不能改寫表中任何一個時間存放器,只有將WP改寫為0,才能進(jìn)展存放器的寫操作。3.4 12864液晶顯示程序設(shè)計(jì)下面先看一下12864液晶并

31、行連接的讀寫時序:LCD的寫時序:RS引腳有H高L低兩種狀態(tài),RS=H時,單片機(jī)將進(jìn)展寫數(shù)據(jù)操作;RS=L時,單片機(jī)將進(jìn)展寫指令操作。R/W引腳要與RS的狀態(tài)結(jié)合,具體操作看表3.2,R/W在這里不管RS是上下都是進(jìn)展寫操作。E引腳為使能信號,E=HL時,配合R/W進(jìn)展寫數(shù)據(jù)或指令;E=H時,配合R/W進(jìn)展讀數(shù)據(jù)或讀指令。程序操作時注意延時,延時的大小很重要。LCD的讀時序:讀時序與寫時序差不多,區(qū)別是R/W在讀操作時是拉高的,與寫操作相反,其它都一樣。同樣要注意延時。12864液晶與單片機(jī)通信時,可以采用串行數(shù)據(jù)通信和并行數(shù)據(jù)通信,我這里將液晶的DB0DB7引腳對應(yīng)的接上單片機(jī)的P2.0P2

32、.7引腳,因此采用的是并行數(shù)據(jù)通信。局部根本指令介紹見表3.2。表3.2 局部根本指令介紹RSR/WDB7DB6DB5DB4DB3DB2DB1DB0去除顯示LLLLLLLLLH顯示狀態(tài)LLLLLLHDCB寫RAMHLD7D6D5D4D3D2D1D0讀RAMHHD7D6D5D4D3D2D1D0讀忙狀態(tài)LHBFAC6AC5AC4AC3AC2AC1AC0表中的RS=H表示DB0-DB7為顯示數(shù)據(jù),RS=L表示DB0-DB7為顯示指令數(shù)據(jù)。R/W=H且E使能信號=H表示數(shù)據(jù)被讀到DB0-DB7,RW=L且E=HL表示DB0-DB7的數(shù)據(jù)被寫到RAM。DB0-DB7表示數(shù)據(jù)口。H表示高電平,L表示低電平

33、。(1) 去除顯示功能:去除顯示屏幕,把DDRAM位地址計(jì)數(shù)器調(diào)整為00H。(2) 顯示狀態(tài)功能:D=1表示整體顯示開ON,C=1表示游標(biāo)開,B=1表示游標(biāo)位置開。(3) 寫RAM寫資料到RAM功能:寫資料到部的RAM。DDRAM/CGRAM/TRAM/GDRAM。(4) 讀RAM讀出RAM的值功能:從部RAM讀取資料DDRAM/CGRAM/TRAM/GDRAM。(5) 讀忙狀態(tài)讀取忙碌狀態(tài)和位址功能:讀取忙碌狀態(tài)BF可以確認(rèn)部動作是否完成,同時可以讀出位址計(jì)數(shù)器AC的值。字符顯示RAM在液晶模塊中的地址為80H9FH,字符顯示的RAM的地址與32個字符顯示區(qū)域有著一一對應(yīng)的關(guān)系,其對應(yīng)關(guān)系如

34、下表3.3所示。表3.3 RAM地址與顯示區(qū)域?qū)?yīng)關(guān)系80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH總結(jié):本設(shè)計(jì)在進(jìn)展Proteus軟件仿真時,沒有成功,因?yàn)镻roteus軟件的元件庫里沒有帶中文字庫的液晶,要想成功仿真,需要對程序進(jìn)展大圍的修改,最終決定放棄Proteus軟件仿真,直接采用硬件進(jìn)展調(diào)試。硬件的線路設(shè)計(jì)和元件組裝都花了較長的時間,雖然以前也焊接過一些東西,但不能說那就是有經(jīng)歷。以前焊接的東西都是有現(xiàn)成的電路板,只是把元件對應(yīng)的組裝起來

35、就根本沒問題了。在本設(shè)計(jì)中,并沒有現(xiàn)成的電路板,而是用萬能板自己搭線組裝。在整個硬件焊接到一半時,才發(fā)現(xiàn)將液晶屏的引腳弄反了,只能進(jìn)展修改。在進(jìn)展程序調(diào)試時,一些大問題比擬容易找出并改正,而一些小的問題就比擬麻煩,因此一定要注意細(xì)小的問題。本設(shè)計(jì)總體最終實(shí)現(xiàn)了陽歷及陰歷的日期顯示、時間、星期、溫度的顯示,獨(dú)立按鍵調(diào)節(jié)時間、日期、星期等功能。本設(shè)計(jì)整個過程還算順利,沒出現(xiàn)太大的問題,缺乏的地方是沒有整點(diǎn)報(bào)時和鬧鈴的功能。參考文獻(xiàn)1郁正.單片機(jī)原理及應(yīng)用.:大學(xué),2003.9.2王懷平,王仁波,胡開明.Proteus仿真設(shè)計(jì)基于單片機(jī)AT89C51的電子萬年歷J.科技廣場,2021,10:197-

36、198.3永雄,沙河.電子線路CAD實(shí)用教程第三版.:電子科技大學(xué),2007.72021.8重印.4譚浩強(qiáng).C程序設(shè)計(jì)第三版.:清華大學(xué),20052007重印.5日晶體管技術(shù)編輯部編,洋等譯,宗光華校.電子技術(shù):原理制作實(shí)驗(yàn).:科學(xué),2005.6全利,肖興達(dá).單片機(jī)原理及應(yīng)用教程第二版.:機(jī)械工業(yè),2007.7.7雷伏容,小林,浩.51單片機(jī)常用模塊設(shè)計(jì)查詢手冊.:清華大學(xué),2021.01.8肖炎根,舒望.基于實(shí)時時鐘芯片的電子萬年歷的設(shè)計(jì)J.電子技術(shù),2007,Z3:91-94.9暢生,宣宗強(qiáng),雷振亞等.傳感器簡明手冊及應(yīng)用電路溫度傳感器分冊上冊.:電子科技大學(xué),2005.11.10宏,家田

37、.液晶顯示器件應(yīng)用技術(shù).:機(jī)械工業(yè),2004.2.11德全.可調(diào)家用萬年歷的單片機(jī)原理J.師學(xué)院報(bào),2021,03:95-98.12志海、連鑫.單片微型計(jì)算機(jī)原理及應(yīng)用.機(jī)械工業(yè),2007.1.13育才、雷思孝.單片機(jī)系統(tǒng)設(shè)計(jì)及工程應(yīng)用.電子科技大學(xué),2005.5.14珍、付植桐.單片機(jī)原理與應(yīng)用技術(shù).清華大學(xué)大學(xué),2004.2. 15紅衛(wèi).基于單片機(jī)的智能系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn).電子工業(yè),2005.9.答 在這里我要首先感我的指導(dǎo)教師胡蓉教師,本設(shè)計(jì)在王教師的悉心指導(dǎo)下完成的。從選題到設(shè)計(jì)完成王教師都是嚴(yán)格要求,幫助我解決各種難題。王教師對學(xué)術(shù)的嚴(yán)謹(jǐn)和精益求精的工作作風(fēng)給我留下了深刻的印象,受益匪淺

38、。其次我要感在大學(xué)時間里教我專業(yè)課和幫助過我的所有教師,沒有教師們教的專業(yè)知識,我想完成這設(shè)計(jì)是不可能的。對于單片機(jī)的應(yīng)用,開場時對于一些細(xì)節(jié)性的東西只是一些模糊概念.通過此次設(shè)計(jì),加深了理解,并通過查閱大量資料,對于一些概念仔細(xì)閱讀與理解,同時也對過去學(xué)過的知識進(jìn)展了重新穩(wěn)固.并通過了解單片機(jī)與采集系統(tǒng)的開展前景,對于未來信息技術(shù)的開展有了大致的了解.同時在在制作此設(shè)計(jì)時還需了解一些其他從未接觸過的概念,通過不斷的努力和認(rèn)真的研讀,更加鍛煉了自我的自學(xué)能力,對自己的學(xué)習(xí)能力有了進(jìn)一步提高.但同時同過設(shè)計(jì),也發(fā)現(xiàn)了自身的缺乏,如對過去學(xué)過的知識遺忘過快,而且不能有效的把所有學(xué)過的知識融合在一起

39、,對于過去所學(xué)的知識理解的不夠透徹.今后仍需加深學(xué)習(xí).加強(qiáng)自己的綜合學(xué)習(xí)能力.感12電信班的同學(xué)三年來對我學(xué)習(xí)、生活的關(guān)心和幫助。最后,向我的父親、母親、致,感他們對我的理解與支持。附錄一萬年歷硬件電路原理圖:附錄二*include*includelcd1602.h*includeds1302.h*includeds18b20.h*define uint unsigned int*define uchar unsigned charuint b6;/年、月、日、時、分、秒uchar code row1=2021-01-01;uchar code row2=00:00:00;uchar year

40、112=31,28,31,30,31,30,31,31,30,31,30,31;/平年uchar year212=31,29,31,30,31,30,31,31,30,31,30,31;/潤年uchar j6=0*85,0*88,0*8b,0*84+0*40,0*87+0*40,0*8a+0*40;/LCD地址uchar i,k,jj=0,w,clock=0,bigclock=0,c=0,num;/i循環(huán)數(shù),k溫度緩存,jj地址位uint temp;sbit b1=P30;/設(shè)置sbit b2=P31;/上調(diào)sbit b3=P32;/下調(diào)sbit b4=P33;/轉(zhuǎn)換sbit b5=P34;/

41、鬧鐘sbit speaker=P35;lcdscan()for(i=0;i6;i+) lcdwrite(ji);lcdshuju(a11-i*2+0*30);lcdwrite(ji+0*01);lcdshuju(a10-i*2+0*30);void key()if(b1=0) dsaddshuju(0*80,(a14)+a0+0*80);while(b1=0)for(i=0;iyear2b1-1)b2=1;else if(b2year1b1-1)b2=1;if(b1=13)b1=1;if(b0=100)b0=0;if(b3=0)delay(3);bjj-;if(b5=-1)b5=59;if(b

42、4=-1)b4=59;if(b3=-1)b3=23;if(b0%4=0&b0%100!=0) | b0%400=0)if(b2=0)b2=year2b1-1;else if(b2=0)b2=year1b1-1;if(b1=0)b1=12;if(b0=-1)b0=99;for(i=0;i6;i+) a11-i*2+clock=bi/10;a10-i*2+clock=bi%10;lcdwrite(jjj);lcdshuju(0);lcdwrite(jjj+1);lcdshuju(0);delay(200);lcdwrite(jjj);lcdshuju(a11-2*jj+clock+0*30);lc

43、dwrite(jjj+1);lcdshuju(a10-2*jj+clock+0*30);delay(200);if(b1=1) dsaddshuju(0*80,(a14)+a0);dson();if(b5=0)clock=12;void main()speaker=0;lcdrw=0;dson();lcdon();lcdwrite(0*83);for(i=0;i10;i+)lcdshuju(row1i);delay(1);lcdwrite(0*84+0*40);for(i=0;i8;i+)lcdshuju(row2i);delay(1);dsrst=0;dssclk=0;while(1)for

44、(i=0;i4)&0*0f;dsrst=1;dswrite(0*8d);k=dsread();dsrst=0;a10=k&0*0f;a11=(k4)&0*0f;delay(100);lcdscan();key();if(b5=0)for(i=0;i12;i+)if(ai+12=ai)num+;if(num=12)bigclock=1;else num=0;lcdwrite(0*8e);lcdshuju(&);else lcdwrite(0*8e);lcdshuju(0*00);if(bigclock=1) speaker=1;c+;if(c=100)bigclock=0;speaker=0;t

45、emp=readtemperature();/temp是uint型的。不然會出現(xiàn)溫度到25后回00的現(xiàn)象??赡苁怯捎谑M(jìn)制與十進(jìn)制的差異。lcdwrite(0*8d+0*40);lcdshuju(temp/100+0*30);lcdwrite(0*8e+0*40);lcdshuju(temp/10%10+0*30);子程序:LCM1602頭文件:*include*define uint unsigned int*define uchar unsigned charsbit lcdrs=P00;sbit lcdrw=P01;sbit lcden=P02;void delay(uint z) uint *,y; for(*=z;*0;*-) for(y=110;y0;y-);/1毫秒左右延時/lcdwrite() LCD寫指令void lcdwrite(uchar write)lcdrs=0;P1=write;delay(1);lcden=1;delay(1);lcden=0;/lcdshuju() LCD寫數(shù)據(jù)void lcdshuju(uchar shuju)lcdrs=1;P1=shuju;delay(1);lcden=1;delay(1);lcden=0;/lcd

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論