版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、PAGE -PAGE 35. z.工業(yè)職業(yè)技術(shù)學(xué)院畢業(yè)綜合實(shí)踐課題名稱:基于單片機(jī)的萬(wàn)年率的設(shè)計(jì)作 者: 強(qiáng) 學(xué) 號(hào):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 解決問(wèn)題 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、引腳說(shuō)明 PAGEREF _Toc19151 5 HYPERLINK l _Toc26452 2.3 MA*232電平轉(zhuǎn)換芯片 PAGEREF _Toc26452 7 HYPERLINK l _Toc27195 2.4 DS1302時(shí)鐘芯片 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陽(yáng)歷與陰歷轉(zhuǎn)換 PAGEREF _Toc19153 14 HYPERLINK l _Toc25606 3.2 DS1302時(shí)鐘芯片程序設(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ù)的開展,萬(wàn)年歷目前已經(jīng)不再局限于以紙質(zhì)的形式出現(xiàn)。以電腦
6、軟件或者電子產(chǎn)品形式出現(xiàn)的萬(wàn)年歷被稱為電子萬(wàn)年歷。與傳統(tǒng)紙質(zhì)的萬(wàn)年歷相比,電子萬(wàn)年歷得到了越來(lái)越廣泛的應(yīng)用。采用電子萬(wàn)年歷來(lái)顯示時(shí)間已經(jīng)成為了一種時(shí)尚。本文提出了一種基于單片機(jī)的電子萬(wàn)年歷的設(shè)計(jì),以STC89C51作為主控制核心,與液晶LCD1602、時(shí)鐘芯片DS1302、溫度傳感器DS18B20、獨(dú)立式按鍵等模塊組成硬件系統(tǒng),能實(shí)現(xiàn)時(shí)間、溫度的顯示,以及時(shí)間的調(diào)整。關(guān)鍵詞:STC89C51,萬(wàn)年歷,DS1302,DS13B20緒論1.1 設(shè)計(jì)目的古人依靠日冕,漏刻記錄時(shí)間。從古至今,人們的日常生活和工作都離不開對(duì)時(shí)間的準(zhǔn)確把握。而隨著科技的開展,電子萬(wàn)年歷成為了日漸流行的日常計(jì)時(shí)工具。目前市
7、場(chǎng)上的萬(wàn)年歷功能強(qiáng)大,簡(jiǎn)單直觀,給人們帶來(lái)很大的方便。對(duì)于萬(wàn)年歷設(shè)計(jì)有很多實(shí)現(xiàn)的方法,自己動(dòng)手設(shè)計(jì)與制作可以對(duì)硬件的構(gòu)造和功能有更深的認(rèn)識(shí),并與軟件結(jié)合,以到達(dá)理論與實(shí)踐更好的結(jié)合,進(jìn)一步提高綜合運(yùn)用所學(xué)知識(shí)進(jìn)展設(shè)計(jì)的能力。這是對(duì)自己大學(xué)三年的學(xué)習(xí)的檢驗(yàn),具有重要的意義。1.2 開展現(xiàn)狀據(jù)了解,目前市場(chǎng)上的電子萬(wàn)年歷并不是采用51單片機(jī)作為主控制器的,基于單片機(jī)的萬(wàn)年歷一般是學(xué)生和單片機(jī)愛(ài)好者在進(jìn)展設(shè)計(jì),談不上占有市場(chǎng)。也許就是這樣,研究單片機(jī)萬(wàn)年歷的人不在少數(shù),并且都在努力。努力不是單方面的,單片機(jī)的功能也應(yīng)該要提高,STC89C52單片機(jī)就是這樣的例子,其功能雖然沒(méi)有大幅度提高,但使用起來(lái)
8、更方便了。我相信,在不久的將來(lái)肯定會(huì)有功能更強(qiáng)大本錢更低的單片機(jī)出現(xiàn),給我們的設(shè)計(jì)帶來(lái)更多的便利。1.3 解決問(wèn)題本課題主要通過(guò)單片機(jī)的功能和應(yīng)用,利用編程軟件和仿真軟件進(jìn)展設(shè)計(jì),并制作實(shí)物。設(shè)計(jì)要到達(dá)預(yù)期的效果要解決以下問(wèn)題:(1)認(rèn)真設(shè)計(jì)好萬(wàn)年歷的邏輯原理圖;(2) 熟練使用C語(yǔ)言,運(yùn)用編程軟件進(jìn)展軟件設(shè)計(jì); (3) 在Proteus仿真平臺(tái)上,對(duì)程序進(jìn)展編譯仿真; (4) 認(rèn)真仔細(xì)地對(duì)萬(wàn)年歷進(jìn)展組裝焊接; (5) 在確認(rèn)沒(méi)有問(wèn)題的硬件實(shí)物上進(jìn)展程序下載調(diào)試,以到達(dá)預(yù)期的效果要求;2. 硬件系統(tǒng)設(shè)計(jì)本設(shè)計(jì)將最小系統(tǒng)與所有用到的模塊元件集合在一塊萬(wàn)能板上,最小系統(tǒng)和其它模塊均由自己動(dòng)手焊接。
9、首先是在萬(wàn)能板上布局,以到達(dá)合理的規(guī)劃,保證設(shè)計(jì)的美觀性。然后為了保證設(shè)計(jì)的質(zhì)量,我將各元件的電源口與GND接地口再一次規(guī)劃,用焊錫分別將電源線和GND接地線固定在了特定的位置,以降低線路的復(fù)雜度,讓人一目了然。最后各模塊元件與單片機(jī)之間均用電線直接由引腳處連接萬(wàn)能板的焊點(diǎn)處。為了保護(hù)各模塊元件,本設(shè)計(jì)使用到的一些重要元件都使用的IC插槽或排母進(jìn)展焊接,連線見實(shí)物圖4.1。本設(shè)計(jì)的系統(tǒng)框架如圖2.1所示:12864液晶模塊單片機(jī)STC89C52RCDS1302時(shí)鐘芯片模塊獨(dú)立按鍵模塊塊DS18B20溫度傳感器模塊 內(nèi)部時(shí)鐘、復(fù)位模塊圖2.1萬(wàn)年歷的系統(tǒng)框架圖2.1本設(shè)計(jì)所需的元器件單片機(jī):ST
10、C89C52RC;電平轉(zhuǎn)換芯片:MA*232;時(shí)鐘芯片:DS1302;溫度傳感器:DS18B20;液晶:QC12864B漢字圖形點(diǎn)陣液晶;按鈕開關(guān);2.2 STC89C52RC單片機(jī)本設(shè)計(jì)采用STC89C52RC單片機(jī)6,8K字節(jié)可編程閃爍存儲(chǔ)器。STC89系列單片機(jī)是MCS-51系列單片機(jī)的派生產(chǎn)品,它們?cè)谥噶钕到y(tǒng)、硬件構(gòu)造和片資源上與標(biāo)準(zhǔn)8052單片機(jī)完全兼容。STC89系列是以8051為基核開發(fā)出的CMOS工藝單片機(jī),DIP封裝系列與8051為pin-to-pin引腳對(duì)引腳兼容。STC89系列單片機(jī)高速,低功耗,其程序?qū)懭霑r(shí)可通過(guò)串口采用STC-ISP.不占用用戶資源,學(xué)習(xí)單片機(jī)時(shí)較好的
11、選擇。2.2.1單片機(jī)主要特性(1) CPU:由運(yùn)算和控制邏輯組成,同時(shí)還包括中斷系統(tǒng)和局部外部特殊功能存放器。中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。(2) RAM:用于存放要讀寫的數(shù)據(jù),如運(yùn)算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù)。8051部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用存放器單元,它們是統(tǒng)一編址的,專用存放器只能用于存放控制指令數(shù)據(jù),用戶只能,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或
12、用戶定義的字型表。(3) ROM:8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。(4) I/O口:四組8位并行I/O口(P0、 P1、P2和P3),既可用作輸入,也可用作輸出。(5) T/C定時(shí)/計(jì)數(shù)器:兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,既可以工作在定時(shí)模式,也可以工作在計(jì)數(shù)模式。(6) 5個(gè)中斷源的中斷控制系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。(7) 全雙工串行口:一個(gè)全雙工UART通用異步接收發(fā)送器的串行I/O口,用于實(shí)現(xiàn)單片機(jī)之間或單片機(jī)與微機(jī)之間的串行通信;(8) 片
13、振蕩器和時(shí)鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率取決于單片機(jī)型號(hào)及性能。2.2.2單片機(jī)引腳說(shuō)明圖2.2 STC89C52RC封裝引腳圖STC89C52RC的引腳封裝和8051的引腳封裝是一樣的,均采用40Pin封裝的雙列直插DIP構(gòu)造。下列圖是它們的引腳配置,40個(gè)引腳中,Pin40為正電源,Pin20為地線;外置石英振蕩器的時(shí)鐘線Pin18和Pin19兩根;4組8位共32個(gè)I/O口P0、P1、P2和P3,中斷口線與P3口線復(fù)用。本設(shè)計(jì)只是實(shí)現(xiàn)簡(jiǎn)單的讀寫功能,不需要用到I/O口的第二功能。這里就不對(duì)單片機(jī)的引腳作出太詳細(xì)的介紹,簡(jiǎn)單介紹一些專用引腳,其它引腳用到時(shí)再介紹。單片機(jī)
14、引腳封裝如圖2.2所示。(1) Pin9:RST復(fù)位信號(hào)復(fù)用腳,當(dāng)STC89C52RC通電,時(shí)鐘電路開場(chǎng)工作,在RST引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用存放器被清0。RST由高電平下降為低電平后,系統(tǒng)即從0000H地址開場(chǎng)執(zhí)行程序。然而,初始復(fù)位不改變RAM包括工作存放器R0-R7的狀態(tài),STC89C52RC的初始態(tài)。STC89C52RC的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位按鍵電平復(fù)位和按鍵脈沖復(fù)位。此外,RST還是一個(gè)復(fù)引腳,Vcc掉電期間,此引腳可接上備用電源,以保證
15、單片機(jī)部RAM的數(shù)據(jù)不喪失。本設(shè)計(jì)采用的是手動(dòng)復(fù)位電路:按鍵電平復(fù)位。復(fù)位電路如圖2.3所示。圖2.3 按鍵電平復(fù)位電路(2) Pin18、19:*TAL1和*TAL2時(shí)鐘產(chǎn)生電路引腳,這里使用的石英晶體振蕩頻率為11.0592MHz。時(shí)鐘振蕩電路如圖2.4所示。圖2.4 時(shí)鐘振蕩電路(3) Pin29:當(dāng)外部程序存儲(chǔ)器時(shí),此引腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。(4) Pin30:ALE/當(dāng)外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正
16、脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。它還有一個(gè)特點(diǎn)是,當(dāng)外部程序存儲(chǔ)器時(shí),ALE會(huì)跳過(guò)一個(gè)脈沖。(5) Pin31:/VPP程序存儲(chǔ)器的外部選通線,對(duì)于STC89C52RC來(lái)說(shuō),置有8kB的程序存儲(chǔ)器,當(dāng)為高電平并且程序地址小于8kB時(shí),讀取部程序存儲(chǔ)器指令數(shù)據(jù),而超過(guò)8kB地址則讀取外部指令數(shù)據(jù)。如為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。當(dāng)使用到外部程序存儲(chǔ)器時(shí),要使用到一些特定功能的引腳,本設(shè)計(jì)中沒(méi)有使用外部存儲(chǔ)器。2.3 MA*232電平轉(zhuǎn)換芯片當(dāng)我們用STC-ISP.這個(gè)軟件給STC89C52RC下載程序時(shí),采用的是計(jì)算機(jī)串口RS-2
17、32電平:高 -12V 低+12V通信,所以計(jì)算機(jī)與單片機(jī)之間進(jìn)展通信時(shí)需要電平轉(zhuǎn)換芯片MA*232。MA*232含有兩個(gè)RS-232發(fā)送驅(qū)動(dòng)器和接收驅(qū)動(dòng)器,其中發(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時(shí)鐘芯片市場(chǎng)上可以選擇的時(shí)鐘芯片很多,功能也不盡一樣,價(jià)格各異。DS13028 是美國(guó)DALLAS 公司推出的一種串行接口實(shí)時(shí)時(shí)鐘芯片。芯片部具有可編程日歷時(shí)鐘和31個(gè)字節(jié)的靜態(tài)RAM,它可以對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)展計(jì)時(shí),日歷時(shí)鐘可自動(dòng)進(jìn)展閏年補(bǔ)償,及時(shí)準(zhǔn)確,接口簡(jiǎn)單,使用方便,工作電壓圍寬,功耗低,芯片自身還具有對(duì)備份電池進(jìn)展涓流充電功能,可以有效地延長(zhǎng)備份電池的使用壽命。DS1302引腳封裝如圖2.6所示。圖2.6 DS1302封裝引腳圖DS1302時(shí)鐘芯片的
19、引腳功能如下:(1) Pin1:Vcc2為主電源。(2) Pin8:Vcc1為后備電源。在主電源關(guān)閉的情況下,也能保持時(shí)鐘的連續(xù)運(yùn)行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc10.2V時(shí),Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時(shí),DS1302由Vcc1供電。(3) Pin2、3:*1、*2是振蕩源,外接32.768kHz晶振。(4) Pin5:是復(fù)位/片選線,通過(guò)把輸入驅(qū)動(dòng)置高電平來(lái)啟動(dòng)所有的數(shù)據(jù)傳送。輸入有兩種功能:首先,接通控制邏輯,允許地址/命令序列送入移位存放器;其次,提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)為高電平時(shí),所有的數(shù)據(jù)傳送被初始化
20、,允許對(duì)DS1302進(jìn)展操作。如果在傳送過(guò)程中置為低電平,則會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運(yùn)行時(shí),在v cc2.0V之前,必須保持低電平。只有在SCLK為低電平時(shí),才能將置為高電平。(5) Pin6:I/O為串行數(shù)據(jù)輸入輸出端(雙向),在控制指令字輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開場(chǎng)。同樣,在緊跟8位的控制指令字后的下一個(gè)SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時(shí)從低位0位到高位7。(6) Pin7:SCLK為時(shí)鐘輸入端。DS1302與單片機(jī)連接圖如圖2.7所示,具體的讀寫操作在第3局部軟件設(shè)計(jì)中介紹。 2.7(a)
21、 DS1302 2.7(b) 單片機(jī)圖2.7 單片機(jī)與DS1302的連接引腳圖2.5 DS18B20溫度傳感器溫度是一個(gè)根本的物理量,自然界中的一切過(guò)程與溫度密切相關(guān)。設(shè)計(jì)里參加DS18B20溫度傳感器可以使萬(wàn)年歷的功能更齊全,可以隨時(shí)了解溫度的變化。DS18B20的封裝引腳如圖2.8和單片機(jī)與DS18B20的連接如圖2.9。DS18B20溫度傳感器的I/ODQ引腳連接的是單片機(jī)的P3.3引腳。圖2.8 DS18B20封裝引腳圖 圖2.9 單片機(jī)與DS18B20的連接圖DS18B20溫度傳感器是美國(guó)DALLS公司推出的DS1820的替代產(chǎn)品,其主要特性如下。(1) 適應(yīng)電壓圍更寬,電壓圍:3.
22、05.5V,v cc為外接供電電源輸入端,在寄生電源方式下可由數(shù)據(jù)線供電,GND為電源地。(2) 獨(dú)特的單線接口方式,DS18B20在與單片機(jī)連接時(shí)僅需要一個(gè)引腳DQ即可實(shí)現(xiàn)微處理器與DS18B20的雙向通訊。 (3) DS18B20在使用中不需要任何外圍元件,全部 傳感元件及轉(zhuǎn)換電路集成在形如一只三極管的集成電路。(4) 溫圍:55125,在-10+85時(shí)精度為0.5。(5) 可編程的分辨率為912位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.0625,可實(shí)現(xiàn)高精度測(cè)溫。(6) 負(fù)壓特性:電源極性接反時(shí),芯片不會(huì)因發(fā)熱而燒毀, 但不能正常工作。2.6 12864液晶在本設(shè)計(jì)中,
23、要顯示陽(yáng)歷、陰歷、星期、時(shí)間、生肖、溫度及節(jié)日提醒,因此對(duì)顯示器的要求較高。在這里我采用QC12864B漢字圖形點(diǎn)陣液晶10作為顯示模塊,它可顯示漢字及圖形,置 8192 個(gè)中文漢字16*16 點(diǎn)陣、128 個(gè)字符8*16 點(diǎn)陣。可同時(shí)顯示漢字個(gè)數(shù)為4*8=32個(gè),同時(shí)顯示字符的個(gè)數(shù)為4*16=64個(gè)。它與單片機(jī)連接如圖2.10所示。圖2.10 12864液晶引腳電路圖在進(jìn)展進(jìn)展這個(gè)模塊的設(shè)計(jì)時(shí),考慮到12864液晶的顯示方向,而單片機(jī)的P2引腳剛好與其它的引腳排列順序相反可看圖2.2,所以本設(shè)計(jì)中單片機(jī)與液晶進(jìn)展數(shù)據(jù)傳輸時(shí),用單片機(jī)的P2引腳與液晶的8位雙向三態(tài)數(shù)據(jù)線DB0-DB7進(jìn)展連接,
24、這樣大大簡(jiǎn)化了線路的復(fù)雜度。2.7 獨(dú)立按鍵本設(shè)計(jì)采用的4個(gè)獨(dú)立按鍵,分別是:設(shè)置、確認(rèn)、加、減。判斷設(shè)置鍵是否按下及第幾次按下可以分別對(duì)日期、時(shí)間、星期選定,然后按加、減即可進(jìn)展設(shè)置,確認(rèn)鍵按下后,新數(shù)據(jù)即寫入時(shí)鐘芯片。例如,設(shè)置鍵按1下,即可以對(duì)年份進(jìn)展設(shè)置,按4下,即是可以對(duì)小時(shí)進(jìn)展設(shè)置。其電路設(shè)計(jì)如圖2.11所示。圖2.11 時(shí)間設(shè)置電路3. 軟件設(shè)計(jì)本設(shè)計(jì)利用軟件進(jìn)展程序的編寫。C語(yǔ)言是一種編譯型程序設(shè)計(jì)語(yǔ)言,它兼顧了許多種高級(jí)語(yǔ)言的特點(diǎn),并且具備匯編語(yǔ)言的功能,C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)展操作。目前,使用C語(yǔ)言進(jìn)展程序設(shè)計(jì)已經(jīng)成為軟件開發(fā)的一個(gè)主流。C語(yǔ)言程序本身
25、不依賴于機(jī)器硬件系統(tǒng),根本上不作修改就可將程序從不同的單片機(jī)中移植過(guò)來(lái)。用C語(yǔ)言開發(fā)系統(tǒng)可以大大縮短開發(fā)周期,明顯增強(qiáng)程序的可讀性,便于改良、擴(kuò)大和移植。而針對(duì)8051的C語(yǔ)言日趨成熟,成為了專業(yè)化的實(shí)用高級(jí)語(yǔ)言。雖然匯編語(yǔ)言效率高,對(duì)硬件的可操控性更強(qiáng),體積小,但是不易維護(hù),可移植性差。本設(shè)計(jì)程序?qū)崿F(xiàn)了陽(yáng)歷日期、陰歷日期、時(shí)間、星期、溫度、節(jié)日提醒等功能。圖3.1是主程序流程圖。開場(chǎng)LCD、DS1302、DS18B20及相關(guān)變量初始化調(diào)液晶顯示程序設(shè)置鍵是否按下 NY調(diào)用設(shè)置子程序刷新圖3.1 主程序流程圖3.1陽(yáng)歷與陰歷轉(zhuǎn)換陽(yáng)歷與陰歷的轉(zhuǎn)換,這局部程序是參考杜陽(yáng)教師的程序,程序中總共有19
26、91901-2099年的陽(yáng)歷對(duì)應(yīng)陰歷數(shù)據(jù)。陽(yáng)歷對(duì)應(yīng)的陰歷數(shù)據(jù)每年占用單片機(jī)三字節(jié)格式:第一字節(jié)BIT7-4位表示閏月月份,為0,則無(wú)閏月;BIT3-0位對(duì)應(yīng)陰歷第1-4月的大小。第二字節(jié)BIT7-0位對(duì)應(yīng)陰歷第5-12月大小。第三字節(jié)BIT7位表示陰歷第13月大小月分對(duì)應(yīng)的位為1,表示農(nóng)歷月大30天為0表示小29天;第三字節(jié)BIT6-5位表示春節(jié)的陽(yáng)歷月份,BIT4-0位表示春節(jié)公歷日期。例:陽(yáng)歷2021年對(duì)應(yīng)陰歷2021年數(shù)據(jù)為:0*0B,0*4A,0*43。0*0B和0*4A的二進(jìn)制數(shù)表示為:00001011,01001010,這兩個(gè)字節(jié)表示陰歷2021年沒(méi)有閏月,也就是沒(méi)有第十三個(gè)月。一
27、,三,四,六,九,十一月都是月大30天,其它都是月小29天。0*43的二進(jìn)制數(shù)表示為:01000011,這里的BIT6-5位為102位可表示4個(gè)月,表示陰歷2021年的春節(jié)在陽(yáng)歷2021年的2月份。BIT4-0位為0001100000-11111,5位最大數(shù)為31,表示3日。整個(gè)字節(jié)就表示陰歷2021年的春節(jié)在陽(yáng)歷2021年的2月3日。3.2 DS1302時(shí)鐘芯片程序設(shè)計(jì)在本設(shè)計(jì)中,要實(shí)現(xiàn)萬(wàn)年歷的功能,DS1302時(shí)鐘芯片是少不得的,雖然只用單片機(jī)也可以實(shí)現(xiàn),但是將會(huì)造成時(shí)間誤差較大,不好調(diào)節(jié)。用DS1302時(shí)鐘芯片不僅可以大大的防止那樣的問(wèn)題,還可以減小程序的編寫量。這個(gè)模塊是本設(shè)計(jì)中是很重
28、要的模塊。如圖3.2是DS1302時(shí)鐘芯片工作的流程圖。開場(chǎng)相關(guān)變量初始化DS1302去保護(hù)復(fù)位端產(chǎn)生一個(gè)高電平復(fù)位端產(chǎn)生一個(gè)高電平寫DS1302地址寫DS1302地址延時(shí)一段時(shí)間延時(shí)一段時(shí)間向該地址寫數(shù)據(jù)將該地址數(shù)據(jù)讀出地址增加地址增加數(shù)據(jù)寫完否數(shù)據(jù)讀完否 NNYY顯示數(shù)據(jù)圖3.2 DS1302時(shí)鐘芯片工作流程圖通過(guò)流程圖我們對(duì)DS1302時(shí)鐘芯片是如何工作的有了個(gè)大概的了解,現(xiàn)在進(jìn)一步了解DS1302時(shí)鐘芯片關(guān)于日歷、時(shí)間的存儲(chǔ)器,先看表3.1。表3.1 讀寫存放器地址讀存放器寫存放器bit7 bit6bit5bit4bit3bit2bit1bit0 圍81H80HCH10秒秒005983
29、H82H10分分005985H84H 1/0 010時(shí)時(shí)112/ 023AM/PM87H86H0010日日13189H88H00010月月1128BH8AH00000星期178DH8CH10年年0998FH8EH WP 0000000由表可以看出存放秒到年的7個(gè)存放器的地址是固定且有規(guī)律的。寫存放器都是偶數(shù)80H8Ch,讀存放器都是奇數(shù)81H8Ch,存放的數(shù)據(jù)格式為BCD碼形式。秒存放器寫80H、讀81H的bit7位定義為時(shí)鐘暫停標(biāo)志CH當(dāng)該位置為1時(shí),時(shí)鐘振蕩器停頓,DS1302時(shí)鐘芯片處于低功耗狀態(tài),為0時(shí),時(shí)鐘開場(chǎng)運(yùn)行。時(shí)存放器寫84H、讀85H的bit7位為1時(shí),DS1302時(shí)鐘芯片運(yùn)
30、行于12小時(shí)模式,bit7位為0時(shí),DS1302時(shí)鐘芯片運(yùn)行于24小時(shí)模式本設(shè)計(jì)是24小時(shí)模式。當(dāng)運(yùn)行于12小時(shí)模式時(shí),bit5位為0時(shí),表示AM,bit5位為1時(shí),表示PM。當(dāng)運(yùn)行于24小時(shí)模式時(shí),bit5位和bit4位一起表示24小時(shí)的10位??刂拼娣牌鲗?EH、讀8FH的bit7位是寫保護(hù)位WP,其它7位均置0,在任何的對(duì)時(shí)鐘和RAM的寫操作之前,WP位必須為0。當(dāng)WP位為1時(shí),寫保護(hù)位防止對(duì)任一存放器的寫操作。也就是說(shuō)在電路上電的初始態(tài)WP為1,這時(shí)不能改寫表中任何一個(gè)時(shí)間存放器,只有將WP改寫為0,才能進(jìn)展存放器的寫操作。3.4 12864液晶顯示程序設(shè)計(jì)下面先看一下12864液晶并
31、行連接的讀寫時(shí)序:LCD的寫時(shí)序:RS引腳有H高L低兩種狀態(tài),RS=H時(shí),單片機(jī)將進(jìn)展寫數(shù)據(jù)操作;RS=L時(shí),單片機(jī)將進(jìn)展寫指令操作。R/W引腳要與RS的狀態(tài)結(jié)合,具體操作看表3.2,R/W在這里不管RS是上下都是進(jìn)展寫操作。E引腳為使能信號(hào),E=HL時(shí),配合R/W進(jìn)展寫數(shù)據(jù)或指令;E=H時(shí),配合R/W進(jìn)展讀數(shù)據(jù)或讀指令。程序操作時(shí)注意延時(shí),延時(shí)的大小很重要。LCD的讀時(shí)序:讀時(shí)序與寫時(shí)序差不多,區(qū)別是R/W在讀操作時(shí)是拉高的,與寫操作相反,其它都一樣。同樣要注意延時(shí)。12864液晶與單片機(jī)通信時(shí),可以采用串行數(shù)據(jù)通信和并行數(shù)據(jù)通信,我這里將液晶的DB0DB7引腳對(duì)應(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ào)=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)部動(dòng)作是否完成,同時(shí)可以讀出位址計(jì)數(shù)器AC的值。字符顯示RAM在液晶模塊中的地址為80H9FH,字符顯示的RAM的地址與32個(gè)字符顯示區(qū)域有著一一對(duì)應(yīng)的關(guān)系,其對(duì)應(yīng)關(guān)系如
34、下表3.3所示。表3.3 RAM地址與顯示區(qū)域?qū)?yīng)關(guān)系80H81H82H83H84H85H86H87H90H91H92H93H94H95H96H97H88H89H8AH8BH8CH8DH8EH8FH98H99H9AH9BH9CH9DH9EH9FH總結(jié):本設(shè)計(jì)在進(jìn)展Proteus軟件仿真時(shí),沒(méi)有成功,因?yàn)镻roteus軟件的元件庫(kù)里沒(méi)有帶中文字庫(kù)的液晶,要想成功仿真,需要對(duì)程序進(jìn)展大圍的修改,最終決定放棄Proteus軟件仿真,直接采用硬件進(jìn)展調(diào)試。硬件的線路設(shè)計(jì)和元件組裝都花了較長(zhǎng)的時(shí)間,雖然以前也焊接過(guò)一些東西,但不能說(shuō)那就是有經(jīng)歷。以前焊接的東西都是有現(xiàn)成的電路板,只是把元件對(duì)應(yīng)的組裝起來(lái)
35、就根本沒(méi)問(wèn)題了。在本設(shè)計(jì)中,并沒(méi)有現(xiàn)成的電路板,而是用萬(wàn)能板自己搭線組裝。在整個(gè)硬件焊接到一半時(shí),才發(fā)現(xiàn)將液晶屏的引腳弄反了,只能進(jìn)展修改。在進(jìn)展程序調(diào)試時(shí),一些大問(wèn)題比擬容易找出并改正,而一些小的問(wèn)題就比擬麻煩,因此一定要注意細(xì)小的問(wèn)題。本設(shè)計(jì)總體最終實(shí)現(xiàn)了陽(yáng)歷及陰歷的日期顯示、時(shí)間、星期、溫度的顯示,獨(dú)立按鍵調(diào)節(jié)時(shí)間、日期、星期等功能。本設(shè)計(jì)整個(gè)過(guò)程還算順利,沒(méi)出現(xiàn)太大的問(wèn)題,缺乏的地方是沒(méi)有整點(diǎn)報(bào)時(shí)和鬧鈴的功能。參考文獻(xiàn)1郁正.單片機(jī)原理及應(yīng)用.:大學(xué),2003.9.2王懷平,王仁波,胡開明.Proteus仿真設(shè)計(jì)基于單片機(jī)AT89C51的電子萬(wàn)年歷J.科技廣場(chǎng),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ì)查詢手冊(cè).:清華大學(xué),2021.01.8肖炎根,舒望.基于實(shí)時(shí)時(shí)鐘芯片的電子萬(wàn)年歷的設(shè)計(jì)J.電子技術(shù),2007,Z3:91-94.9暢生,宣宗強(qiáng),雷振亞等.傳感器簡(jiǎn)明手冊(cè)及應(yīng)用電路溫度傳感器分冊(cè)上冊(cè).:電子科技大學(xué),2005.11.10宏,家田
37、.液晶顯示器件應(yīng)用技術(shù).:機(jī)械工業(yè),2004.2.11德全.可調(diào)家用萬(wàn)年歷的單片機(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)格要求,幫助我解決各種難題。王教師對(duì)學(xué)術(shù)的嚴(yán)謹(jǐn)和精益求精的工作作風(fēng)給我留下了深刻的印象,受益匪淺
38、。其次我要感在大學(xué)時(shí)間里教我專業(yè)課和幫助過(guò)我的所有教師,沒(méi)有教師們教的專業(yè)知識(shí),我想完成這設(shè)計(jì)是不可能的。對(duì)于單片機(jī)的應(yīng)用,開場(chǎng)時(shí)對(duì)于一些細(xì)節(jié)性的東西只是一些模糊概念.通過(guò)此次設(shè)計(jì),加深了理解,并通過(guò)查閱大量資料,對(duì)于一些概念仔細(xì)閱讀與理解,同時(shí)也對(duì)過(guò)去學(xué)過(guò)的知識(shí)進(jìn)展了重新穩(wěn)固.并通過(guò)了解單片機(jī)與采集系統(tǒng)的開展前景,對(duì)于未來(lái)信息技術(shù)的開展有了大致的了解.同時(shí)在在制作此設(shè)計(jì)時(shí)還需了解一些其他從未接觸過(guò)的概念,通過(guò)不斷的努力和認(rèn)真的研讀,更加鍛煉了自我的自學(xué)能力,對(duì)自己的學(xué)習(xí)能力有了進(jìn)一步提高.但同時(shí)同過(guò)設(shè)計(jì),也發(fā)現(xiàn)了自身的缺乏,如對(duì)過(guò)去學(xué)過(guò)的知識(shí)遺忘過(guò)快,而且不能有效的把所有學(xué)過(guò)的知識(shí)融合在一起
39、,對(duì)于過(guò)去所學(xué)的知識(shí)理解的不夠透徹.今后仍需加深學(xué)習(xí).加強(qiáng)自己的綜合學(xué)習(xí)能力.感12電信班的同學(xué)三年來(lái)對(duì)我學(xué)習(xí)、生活的關(guān)心和幫助。最后,向我的父親、母親、致,感他們對(duì)我的理解與支持。附錄一萬(wàn)年歷硬件電路原理圖:附錄二*include*includelcd1602.h*includeds1302.h*includeds18b20.h*define uint unsigned int*define uchar unsigned charuint b6;/年、月、日、時(shí)、分、秒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;/潤(rùn)年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型的。不然會(huì)出現(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毫秒左右延時(shí)/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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度酒店客房裝修升級(jí)改造服務(wù)合同
- 2025年度綠色建筑節(jié)能產(chǎn)品采購(gòu)合同4篇
- 2025年度個(gè)人與企業(yè)間房屋抵押借款合同
- 2025年個(gè)人房產(chǎn)評(píng)估與鑒定服務(wù)合同規(guī)范2篇
- 2025年度個(gè)人擔(dān)保貸款合同標(biāo)準(zhǔn)文本
- 2025版農(nóng)業(yè)資源整合與利用租賃合同標(biāo)準(zhǔn)2篇
- 2025年度出差安全風(fēng)險(xiǎn)評(píng)估及應(yīng)急預(yù)案編制合同2篇
- 2025年度個(gè)人汽車租賃與車輛租賃月卡服務(wù)合同2篇
- 二零二五年度企業(yè)法定代表人代持合同范本4篇
- 2025版年度影視制作與發(fā)行合同4篇
- 2024-2025學(xué)年北京石景山區(qū)九年級(jí)初三(上)期末語(yǔ)文試卷(含答案)
- 第一章 整式的乘除 單元測(cè)試(含答案) 2024-2025學(xué)年北師大版數(shù)學(xué)七年級(jí)下冊(cè)
- 春節(jié)聯(lián)歡晚會(huì)節(jié)目單課件模板
- 中國(guó)高血壓防治指南(2024年修訂版)
- 糖尿病眼病患者血糖管理
- 抖音音樂(lè)推廣代運(yùn)營(yíng)合同樣本
- 教育促進(jìn)會(huì)會(huì)長(zhǎng)總結(jié)發(fā)言稿
- NUDD新獨(dú)難異 失效模式預(yù)防檢查表
- 商標(biāo)基礎(chǔ)知識(shí)課件
- 內(nèi)蒙古匯能煤電集團(tuán)有限公司長(zhǎng)灘露天煤礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 排水干管通球試驗(yàn)記錄表
評(píng)論
0/150
提交評(píng)論