基于單片機(jī)的萬(wàn)年歷實(shí)習(xí)報(bào)告.doc
《基于單片機(jī)的萬(wàn)年歷實(shí)習(xí)報(bào)告.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的萬(wàn)年歷實(shí)習(xí)報(bào)告.doc(34頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
桂 林 理 工 大 學(xué) 信 息 科 學(xué) 與 工 程 學(xué) 院 “ 電 子 系 統(tǒng) 設(shè) 計(jì) 創(chuàng) 新 與 實(shí) 踐 ” 課程設(shè)計(jì)(實(shí)習(xí))報(bào)告 題 目: 具有溫濕度測(cè)量功能的萬(wàn)年歷設(shè)計(jì) 專業(yè)(方向): 電子信息工程 班 級(jí): 電信二班 指導(dǎo)老師 : 蔣存波 2016年3月27日 目 次 1. 緒論----------------------------------------------- 1 2. 總體設(shè)計(jì)方案--------------------------------------- 2 2.1 技術(shù)方案比較------------------------------------- 2 2.2總體技術(shù)方案------------------------------------- 3 3. 硬件系統(tǒng)設(shè)計(jì)---------------------------------------- 4 3.1 硬件總體原理框圖--------------------------------- 4 3.2關(guān)鍵元件介紹-------------------------------------- 4 3.2.1 LCD602顯示屏-------------------------------- 4 3.2.3 DS1302時(shí)鐘芯片------------------------------ 7 3.2.2 SHT10溫濕度感應(yīng)器--------------------------- 9 3.3 硬件設(shè)計(jì)------------------------------------------ 10 3.3.1 復(fù)位電路設(shè)計(jì)-------------------------------- 10 3.3.2 晶振電路設(shè)計(jì)-------------------------------- 10 3.3.3 時(shí)鐘芯片電路設(shè)計(jì)---------------------------- 10 3.3.4 溫濕度感應(yīng)器模塊電路設(shè)計(jì)-------------------- 11 3.3.5 按鍵模塊電路設(shè)計(jì)---------------------------- 11 3.3.6 LCD1602顯示模塊電路設(shè)計(jì)--------------------- 11 3.3.7 電量檢測(cè)報(bào)警電路設(shè)計(jì)------------------------- 12 3.3.8 蜂鳴器報(bào)警電路設(shè)計(jì)-------------------------- 12 3.3.6 總體電路原理圖------------------------------- 12 4. 軟件系統(tǒng)設(shè)計(jì)------------------------------------------ 13 4.1 軟件功能設(shè)計(jì)-------------------------------------- 13 4.2 程序設(shè)計(jì)總體方案---------------------------------- 13 4.2.1 總體設(shè)計(jì)思路--------------------------------- 13 4.2.2 程序流程框圖--------------------------------- 13 4.3 程序的實(shí)現(xiàn)-------------------------------------- 14 5. 裝置樣機(jī)的制作與調(diào)試--------------------------------- 22 6. 實(shí)驗(yàn)測(cè)試--------------------------------------------- 23 7. 總結(jié)-------------------------------------------------- 24 參考文獻(xiàn)------------------------------------------------- 25 1. 緒論 二十一世紀(jì)的今天,最具代表性的計(jì)時(shí)產(chǎn)品就是電子萬(wàn)年歷,它是近代世界鐘表業(yè)界的第三次革命。第一次是擺和擺輪游絲的發(fā)明,相對(duì)穩(wěn)定的機(jī)械振蕩頻率源使鐘表的走時(shí)差從分級(jí)縮小到秒級(jí),代表性的產(chǎn)品就是帶有擺或擺輪游絲的機(jī)械鐘或表。第二次革命是石英晶體振蕩器的應(yīng)用,發(fā)明了走時(shí)精度更高的石英電子鐘表,使鐘表的走時(shí)月差從分級(jí)縮小到秒級(jí)。第三次革命就是單片機(jī)數(shù)碼計(jì)時(shí)技術(shù)的應(yīng)用(電子萬(wàn)年歷),使計(jì)時(shí)產(chǎn)品的走時(shí) 日差從分級(jí)縮小到1/600萬(wàn)秒,從原有傳統(tǒng)指針計(jì)時(shí)的方式發(fā)展為人們?nèi)粘8鼮槭煜さ囊构鈹?shù)字顯示方式,直觀明了,并增加了全自動(dòng)日期、星期、溫度以及其 他日常附屬信息的顯示功能,它更符合消費(fèi)者的生活需求!因此,電子萬(wàn)年歷的出現(xiàn)帶來(lái)了鐘表計(jì)時(shí)業(yè)界跨躍性的進(jìn)步。 如今電子萬(wàn)年歷飛 入了尋常百姓家,而且以不斷智能的方式增加著,大多數(shù)都添加了溫度和濕度檢測(cè)顯示功能,通過(guò)利用單片機(jī)的控制還可以設(shè)計(jì)出各種各樣的顯示或報(bào)警功能等。掛式、臺(tái)式以及帶裝飾畫面等豐富的電子萬(wàn)年歷數(shù)不勝數(shù),不但滿足了精準(zhǔn)的計(jì)時(shí)需求,還將計(jì)時(shí)帶上了科技時(shí)尚的味道。單片機(jī)技術(shù)所應(yīng)用的功 能控制芯片可進(jìn)行多種功能的設(shè)置,如鬧鐘、報(bào)時(shí)、日歷查詢、語(yǔ)音等;并改善了很多原有石英鐘不能解決的問(wèn)題,例如:數(shù)字夜光顯示、數(shù)據(jù)存儲(chǔ)以及全自動(dòng)溫度 檢測(cè)等功能;這給傳統(tǒng)計(jì)時(shí)消費(fèi)帶來(lái)了新的動(dòng)力,越來(lái)越多的消費(fèi)者選擇了電子萬(wàn)年歷。 1.1 題目 具有溫濕度測(cè)量功能的萬(wàn)年歷設(shè)計(jì) 1.2 研究目標(biāo)與意義 (1)總體目標(biāo) 1)實(shí)現(xiàn)萬(wàn)年歷功能; 2) 具有鬧鐘功能,能設(shè)定三個(gè)鬧鐘時(shí)間,每個(gè)時(shí)間都可以設(shè)定一周的那一 天報(bào)警; 3)具有溫度和濕度測(cè)量功能; 4)利用LCD顯示:年、月、日、星期、時(shí)間、溫度、濕度; 5)具有年、月、日、星期、時(shí)間、鬧鐘等設(shè)定功能,盡量方便且使用最少 的按鍵完成功能; 6)具有電池電量檢測(cè)、低電量報(bào)警功能; 7)電池供電; (2)研究意義 設(shè)計(jì)電子萬(wàn)年歷不僅能在生活中得到實(shí)用,而且還可以增加自己的動(dòng)手能力和實(shí)踐能力,往里面增加不少功能還可以學(xué)到很多東西,不斷地提高自己的知識(shí)面,不斷地將實(shí)際理論知識(shí)應(yīng)用到生活中,真正地做到理論與實(shí)踐相結(jié)合,更具有實(shí)習(xí)設(shè)計(jì)研究意義。 1.3 相關(guān)技術(shù)的現(xiàn)狀 萬(wàn)年歷是采用獨(dú)立芯片控制內(nèi)部數(shù)據(jù)運(yùn)行,以LED夜光數(shù)碼或LCD顯示日期、時(shí)間、星期、節(jié)氣倒計(jì),以及溫度等日常信息,糅合了多項(xiàng)先進(jìn)電子技術(shù)及現(xiàn)代經(jīng)典工藝打造的現(xiàn)代 數(shù)碼計(jì)時(shí)產(chǎn)品。其內(nèi)部電子板硬件與軟件,硬件與硬件之間的兼容性,表現(xiàn)為L(zhǎng)ED數(shù)碼的驅(qū)動(dòng)是靜態(tài)或動(dòng)態(tài),顯示為是否出現(xiàn)閃動(dòng),斷筆等情況;具有防震,防 火,防暴等情況;產(chǎn)品有多種系列,多種規(guī)格,產(chǎn)品的材料也分有玻璃,塑料,鋁合金等。電子萬(wàn)年歷技術(shù)已經(jīng)進(jìn)入了優(yōu)化人-家庭-環(huán)境的整體關(guān)系的階段,它向 著超微型、超高效以及集成電路的微型化方向發(fā)展。目前,市場(chǎng)上出售的數(shù)字萬(wàn)年歷品種很多, 其中大部分是基于單片機(jī)技術(shù)設(shè)計(jì)的電子系統(tǒng)。它們一般由輸入脈沖電路、單片機(jī)、晶振和復(fù)位電路、外路存儲(chǔ)器電路和LED顯示電路組成。當(dāng)今,數(shù)字萬(wàn)年歷主要用于計(jì)時(shí)、自動(dòng)報(bào)時(shí),定時(shí),日期查詢以及自動(dòng)控制等方面。由于單片機(jī)技術(shù)以及數(shù)字集成電路技術(shù)的發(fā)展,如今的數(shù)字萬(wàn)年歷系統(tǒng)具有體積小、計(jì)時(shí)準(zhǔn)確、耗電省、維護(hù)方便、性能穩(wěn)定、走時(shí)準(zhǔn)確、攜帶方便等優(yōu)點(diǎn)。另外,現(xiàn)在市場(chǎng)上已有現(xiàn)成的數(shù)字萬(wàn)年歷集成電路芯片出售而且價(jià)格便宜,使用也很方便。 2. 總體技術(shù)方案 2.1 技術(shù)方案比較 2.1.1 單片機(jī)芯片 方案一 MSP430系列單片機(jī)是是美國(guó)德州儀器(TI)1996年開始推向市場(chǎng)的一種16位超低功耗、具有精簡(jiǎn)指令集(RISC)的混合信號(hào)處理器,是一個(gè)16位的單片機(jī),具有豐富的尋址方式(7 種源操作數(shù)尋址、4 種目的操作數(shù)尋址)、簡(jiǎn)潔的 27 條內(nèi)核指令以及大量的模擬指令;大量的寄存器以及片內(nèi)數(shù)據(jù)存儲(chǔ)器都可參加多種運(yùn)算;還有高效的查表處理指令。這些特點(diǎn)保證了可編制出高效率的源程序。適用于一些低功耗、集成度高的設(shè)計(jì)適用。 方案二 89C52系列單片機(jī)是INTEL公司MCS-51系列單片機(jī)中基本的產(chǎn)品,它采用ATMEL公司可靠的CMOS工藝技術(shù)制造的高性能8位單片機(jī),屬于標(biāo)準(zhǔn)的MCS-51的HCMOS產(chǎn)品。它結(jié)合了CMOS的高速和高密度技術(shù)及CMOS的低功耗特征,它基于標(biāo)準(zhǔn)的MCS-51單片機(jī)體系結(jié)構(gòu)和指令系統(tǒng),屬于89C51增強(qiáng)型單片機(jī)版本,集成了時(shí)鐘輸出和向上或向下計(jì)數(shù)器等更多的功能,適合于類似馬達(dá)控制等應(yīng)用場(chǎng)合。89C52內(nèi)置8位中央處理單元、512字節(jié)內(nèi)部數(shù)據(jù)存儲(chǔ)器RAM、8k片內(nèi)程序存儲(chǔ)器(ROM)32個(gè)雙向輸入/輸出(I/O)口、3個(gè)16位定時(shí)/計(jì)數(shù)器和5個(gè)兩級(jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)時(shí)鐘振蕩電路。此外,89C52還可工作于低功耗模式,可通過(guò)兩種軟件選擇空閑和掉電模式。在空閑模式下凍結(jié)CPU而RAM定時(shí)器、串行口和中斷系統(tǒng)維持其功能。掉電模式下,保存RAM數(shù)據(jù),時(shí)鐘振蕩停止,同時(shí)停止芯片內(nèi)其它功能。89C52有PDIP(40pin)和PLCC(44pin)兩種封裝形式。對(duì)于一些基本日常生活實(shí)用功能比較方便。 所以這里我選擇了方案二89C51系列單片機(jī)。 2.1.2 時(shí)鐘芯片 方案一 直接采用單片機(jī)內(nèi)部定時(shí)計(jì)數(shù)器提供秒信號(hào),利用軟件程序?qū)崿F(xiàn)年、月、日、星期、時(shí)、分、秒計(jì)數(shù)。采用此種方案雖然減少芯片的使用,節(jié)約成本,但是,實(shí)現(xiàn)的時(shí)間誤差較大。所以不采用此方案。 方案二 DS1302是由美國(guó)DALLAS公司推出的具有涓細(xì)電流充電能力的低功耗實(shí)時(shí)時(shí)鐘芯片,它可以對(duì)年、月、日、周、時(shí)、分、秒進(jìn)行計(jì)時(shí),且具有閏年補(bǔ)償?shù)榷喾N功能,精確度比較高。 所以采用方案二DS1302S時(shí)鐘芯片 2.1.3 顯示模塊 方案一 LED的發(fā)光顏色和發(fā)光效率與制作LED的材料和工藝有關(guān) ,燈球剛開始全是藍(lán)光的,后面再加上熒光粉,根據(jù)用戶的不同需要,調(diào)節(jié)出不同的光色,廣泛使用的有紅、綠、藍(lán)、黃四種。由于LED工作電壓低(僅 1.2~4.0V),能主動(dòng)發(fā)光且有一定亮度 ,亮度又能用電壓(或電流)調(diào)節(jié),本身又耐沖擊、抗振動(dòng)、壽命長(zhǎng)(10 萬(wàn)小時(shí)),所以在大型的顯示設(shè)備中,尚無(wú)其他的顯示方式與LED顯示方式匹敵。 方案二 液晶顯示屏(LCD)用于數(shù)字型鐘表和許多便攜式計(jì)算機(jī)的一種顯示器類型。LCD顯示使用了兩片極化材料,在它們之間是液體水晶溶液。電流通過(guò)該液體時(shí)會(huì) 使水晶重新排列,以使光線無(wú)法透過(guò)它們。因此,每個(gè)水晶就像百葉窗,既能允許光線穿過(guò)又能擋住光線。液晶顯示器(LCD)目前科技信息產(chǎn)品都朝著輕、薄、 短、小的目標(biāo)發(fā)展,在計(jì)算機(jī)周邊中擁有悠久歷史的顯示器產(chǎn)品當(dāng)然也不例外。在便于攜帶與搬運(yùn)為前題之下,傳統(tǒng)的顯示方式如CRT映像管顯示器及LED顯示 板等等,皆受制于體積過(guò)大或耗電量甚巨等因素,無(wú)法達(dá)成使用者的實(shí)際需求。而液晶顯示技術(shù)的發(fā)展正好切合目前信息產(chǎn)品的潮流,無(wú)論是直角顯示、低耗電量、 體積小、還是零輻射等優(yōu)點(diǎn),都能讓使用者享受最佳的視覺(jué)環(huán)境。 由上比較我們選擇了方案二LCD液晶顯示屏。 2.1.4 溫濕度感應(yīng)器 方案一 使用熱敏電阻作為傳感器,用熱敏電阻與一個(gè)相應(yīng)阻值電阻相串聯(lián)分壓,利用熱敏電阻阻值隨溫度變化而變化的特性,采集這兩個(gè)電阻變化的分壓值,并進(jìn)行A/D轉(zhuǎn)換。。此設(shè)計(jì)方案需用A/D轉(zhuǎn)換電路,增加硬件成本而且熱敏電阻的感溫特性曲線并不是嚴(yán)格線性的,會(huì)產(chǎn)生較大的測(cè)量誤差。 方案二 采用SHT10作為溫度和濕度的檢測(cè),該儀器具有測(cè)量精度較高、硬件電路簡(jiǎn)單、并能很好的進(jìn)行顯示,可測(cè)試不同環(huán)境溫濕度的特點(diǎn)。另外和控制電路相連,可以進(jìn)行加濕電路和除濕電路的控制,使溫度和濕度參數(shù)在預(yù)先設(shè)定的范圍內(nèi),不需要人的直接參與。 所以我們選用了方案二采用SHT10溫濕度傳感器。 2.2 總體技術(shù)方案 綜上比較陳述,這次的具有溫濕度的萬(wàn)年歷設(shè)計(jì)我們使用STC89C52RC芯片作為MCU,SHT10溫濕度感應(yīng)器芯片作為溫度和濕度的測(cè)量;DS1302用來(lái)提供時(shí)鐘、日期;LCD1602作為顯示屏顯示溫濕度時(shí)鐘鬧鐘;使用NE555定時(shí)器的電量檢測(cè)報(bào)警電路作為電量不足報(bào)警功能。 3. 硬件系統(tǒng)設(shè)計(jì) 3.1 硬件總體原理框圖 以STC89C52RC單片機(jī)為核心,起著控制作用。系統(tǒng)包括LCD1602液晶顯示電路、復(fù)位電路、時(shí)鐘電路、溫濕度采集電路、按鍵調(diào)整子函數(shù)、按鍵提示音電路、時(shí)鐘芯片電路。設(shè)計(jì)思路分為九個(gè)模塊:復(fù)位電路、晶振電路模塊、STC89C52RC、LCD1602液晶顯示電路、溫濕度采集電路、按鍵調(diào)整及設(shè)置子函數(shù)、按鍵提示音及鬧鐘電路、電量檢測(cè)報(bào)警電路和時(shí)鐘芯片電路這九個(gè)模塊。 復(fù)位電路 液晶顯示電路 STC89C52單片機(jī) 溫濕度電路 晶振電路 提示鬧鐘電路 時(shí)鐘芯片電路 按鍵電路 電量檢測(cè)電路 3.1.1 硬件總體原理框圖 工作原理說(shuō)明:復(fù)位電路能夠使單片機(jī)重新開始從頭執(zhí)行工作;晶振電路由12.0MHZ為單片機(jī)及其他模塊運(yùn)行提供工作頻率,保證程序的正常運(yùn)行;單片機(jī)從DS1302時(shí)鐘芯片讀取年月日、時(shí)分秒、星期的值送給LCD1602顯示,以及從SHT10溫濕度感應(yīng)器芯片讀取溫度和濕度的值并送給LCD1602顯示,其中讀取到時(shí)鐘芯片的值可以通過(guò)按鍵模塊設(shè)置調(diào)整時(shí)間、日期和周;通過(guò)按鍵還可以設(shè)置多個(gè)鬧鐘時(shí)間,當(dāng)你設(shè)置的鬧鐘時(shí)間跟時(shí)鐘芯片讀取的值一致的時(shí)候就會(huì)觸發(fā)提示鬧鐘電路使蜂鳴器響。最后用電量檢測(cè)電路檢測(cè)電量,如果電量過(guò)低就會(huì)觸發(fā)蜂鳴器報(bào)警。 3.2 關(guān)鍵元件介紹 3.2.1 LCD1602液晶顯示屏 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無(wú)差別,兩者尺寸差別如下圖3.2.1所示: 圖3.2.1:LCD1602 1602LCD主要技術(shù)參數(shù): 顯示容量:162個(gè)字符 芯片工作電壓:4.5—5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.954.35(WH)mm (1)功能引腳說(shuō)明: 1602LCD采用標(biāo)準(zhǔn)的14腳(無(wú)背光)或16腳(帶背光)接口,各引腳接口說(shuō)明如表3.2.2所示: 編號(hào) 符號(hào) 引腳說(shuō)明 編號(hào) 符號(hào) 引腳說(shuō)明 1 VSS 電源地 9 D2 數(shù)據(jù) 2 VDD 電源正極 10 D3 數(shù)據(jù) 3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù) 4 RS 數(shù)據(jù)/命令選擇 12 D5 數(shù)據(jù) 5 R/W 讀/寫選擇 13 D6 數(shù)據(jù) 6 E 使能信號(hào) 14 D7 數(shù)據(jù) 7 D0 數(shù)據(jù) 15 BLA 背光源正極 8 D1 數(shù)據(jù) 16 BLK 背光源負(fù)極 表3.2.2:引腳接口說(shuō)明表 第1腳:VSS為地電源。 第2腳:VDD接5V正電源。 第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì)比度最高,對(duì)比度過(guò)高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整對(duì)比度。 第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。 第5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng)RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。 第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。 第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。 第15腳:背光源正極。 第16腳:背光源負(fù)極。 (2) 1602LCD的指令說(shuō)明及時(shí)序 1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表3.2.3所示: 序號(hào) 指令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 1 清顯示 0 0 0 0 0 0 0 0 0 1 2 光標(biāo)返回 0 0 0 0 0 0 0 0 1 * 3 置輸入模式 0 0 0 0 0 0 0 1 I/D S 4 顯示開/關(guān)控制 0 0 0 0 0 0 1 D C B 5 光標(biāo)或字符移位 0 0 0 0 0 1 S/C R/L * * 6 置功能 0 0 0 0 1 DL N F * * 7 置字符發(fā)生存貯器地址 0 0 0 1 字符發(fā)生存貯器地址 8 置數(shù)據(jù)存貯器地址 0 0 1 顯示數(shù)據(jù)存貯器地址 9 讀忙標(biāo)志或地址 0 1 BF 計(jì)數(shù)器地址 10 寫數(shù)到CGRAM或DDRAM) 1 0 要寫的數(shù)據(jù)內(nèi)容 11 從CGRAM或DDRAM讀數(shù) 1 1 讀出的數(shù)據(jù)內(nèi)容 表3.2.3:控制命令表 (3)讀寫操作時(shí)序如圖3.2.4和3.2.5所示: 圖3.2.4 圖3.2.5 3.2.2 DS1302時(shí)鐘芯片 DS1302 是美國(guó) 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è)置備用電源充電方式,提供了對(duì)后背電源進(jìn)行涓細(xì)電流充電的能力。其引腳圖如下: (1) 引腳的功能說(shuō)明:Vcc1 :主電源;Vcc2 :備份電源。當(dāng) Vcc2>Vcc1+0.2V 時(shí),由 Vcc2向 向DS1302 供電Vcc2< Vcc1 時(shí),由 Vcc1向 向 DS1302 供電。SCLK :串行時(shí)鐘,輸入,控制數(shù)據(jù)的輸入與輸出; I/O :三線接口時(shí)的雙向數(shù)據(jù)線;CE :輸入信號(hào),在讀、寫數(shù)據(jù)期間,必須為高。該引腳有兩個(gè)功能:第一,CE 開始控制字訪問(wèn)移位寄存器的控制邏輯;其次,CE提供結(jié)束單字節(jié)或多字節(jié)數(shù)據(jù)傳輸?shù)姆椒ā? (2) (2)寄存器說(shuō)明:DS1302有日歷、時(shí)間的寄存器共有12 個(gè),其中有7 個(gè)寄存器(讀時(shí)81h ~8Dh ,寫時(shí)80h ~8Ch ),存放的數(shù)據(jù)格式為 BCD 碼形式, 小時(shí)寄存器(85h 、84h )的位7 用于定義 DS1302 是運(yùn)行于12 小時(shí)模式還是24 小時(shí)模式。當(dāng)為高時(shí),選擇12 小時(shí)模式。在12 小時(shí)模式時(shí),位5是,當(dāng)為1時(shí),表示 PM 。在24 小時(shí)模式時(shí),位5 是第二個(gè)10 小時(shí)位。秒寄存器(81h 、80h )的位7 定義為時(shí)鐘暫停標(biāo)志(CH )。當(dāng)該位置為1 時(shí),時(shí)鐘振蕩器停止,DS1302 處于低功耗狀態(tài);當(dāng)該位置為0 時(shí),時(shí)鐘開始運(yùn)行??刂萍拇嫫鳎?Fh 、8Eh )的位 位7位 是寫保護(hù)位( WP ),其它7 位均置為0。在任何的對(duì)時(shí)鐘和 RAM的寫操作之前,WP 位必須為0 。當(dāng)WP位為1 時(shí),寫保護(hù)位防止對(duì)任一寄存器的寫操作。其讀寫時(shí)序操作3.2.6如下: 3.2.6讀寫時(shí)序操作 3.2.3 SHT10溫濕度傳感器 SHHT10傳感器將傳感元件和信號(hào)處理電路集成在一塊微型電路板上,輸出完全標(biāo)定的數(shù)字信號(hào);傳感器采用專利的 CMOSens 技術(shù),確保產(chǎn)品具有極高可靠性與卓越的長(zhǎng)期穩(wěn)定性。傳感器包括一個(gè)電容性聚合體測(cè)濕敏感元件、一個(gè)用能隙材料制成的測(cè)溫元件,并在同一芯片上,與14 位的 A/D 轉(zhuǎn)換器以及串行接口電路實(shí)現(xiàn)無(wú)縫連接。因此,該產(chǎn)品具有品質(zhì)卓越、響應(yīng)迅速、抗干擾能力強(qiáng)、性價(jià)比高等優(yōu)點(diǎn)。期引腳圖如下: (1) 引腳說(shuō)明:引腳1:接地(GND);引腳2:串行數(shù)據(jù)雙向(DATA);引腳3:串行時(shí)鐘輸入口(SCK);引腳4:電源(VDD);引腳NC:必須為空 (2) 溫濕度測(cè)量:發(fā)布一組測(cè)量命令(‘00000101’表示相對(duì)濕度RH,‘00000011’表示溫度T)后,控制器要等待測(cè)量結(jié)束。這個(gè)過(guò)程需要大約20/80/320ms,分別對(duì)應(yīng)8/12/14bit 測(cè)量。確切的時(shí)間隨內(nèi)部晶振速度,最多可能有-30%的變化。SHT1x 通過(guò)下拉DATA 至低電平并進(jìn)入空閑模式,表示測(cè)量的結(jié)束??刂破髟谠俅斡|發(fā)SCK 時(shí)鐘前,必須等待這個(gè)“數(shù)據(jù)備妥”信號(hào)來(lái)讀出數(shù)據(jù)。檢測(cè)數(shù)據(jù)可以先被存儲(chǔ),這樣控制器可以繼續(xù)執(zhí)行其它任務(wù)在需要時(shí)再讀出數(shù)據(jù)。接著傳輸2個(gè)字節(jié)的測(cè)量數(shù)據(jù)和1 個(gè)字節(jié)的CRC 奇偶校驗(yàn)(可選擇讀?。?。uC 需要通過(guò)下拉DATA 為低電平,以確認(rèn)每個(gè)字節(jié)。所有的數(shù)據(jù)從MSB 開,右值有效(例如:對(duì)于12bit 數(shù)據(jù),從第5個(gè)SCK 時(shí)鐘起算作MSB;而對(duì)于8bit 數(shù)據(jù),首字節(jié)則無(wú)意始義)。在收到 CRC 的確認(rèn)位之后,表明通訊結(jié)束 。如果不使用 CRC-8 校驗(yàn),控制器可以在測(cè)量值LSB 后,通過(guò)保持ACK高電平終止通訊。在測(cè)量和通訊完成后,SHT10自動(dòng)轉(zhuǎn)入休眠模式。 3.3 硬件設(shè)計(jì) 3.3.1 時(shí)鐘芯片電路設(shè)計(jì) 3.3.1 時(shí)鐘芯片電路設(shè)計(jì) 3.3.2 復(fù)位電路設(shè)計(jì) 3..3.2 復(fù)位電路設(shè)計(jì) 3.3.3 晶振電路設(shè)計(jì) 3.3.3 晶振電路設(shè)計(jì) 3.3.4 SHT10溫濕度感應(yīng)器電路設(shè)計(jì) 3.3.4 SHT10溫濕度感應(yīng)器電路設(shè)計(jì) 3.3.5 LCD顯示模塊電路設(shè)計(jì) 3.3.5 LCD顯示模塊電路設(shè)計(jì) 3.3.6 按鍵模塊電路設(shè)計(jì) 3.3.6 按鍵模塊電路設(shè)計(jì) 3.3.7 蜂鳴器報(bào)警電路設(shè)計(jì) 3.3.7 蜂鳴器報(bào)警電路設(shè)計(jì) 3.3.8 電量檢測(cè)電路設(shè)計(jì) 3.3.8 電量檢測(cè)電路設(shè)計(jì) 3.3.9 總體電路原理圖 3.3.9 總體電路原理圖 4. 軟件系統(tǒng)設(shè)計(jì) 4.1 軟件功能介紹 軟件具有對(duì)SHT10溫濕度傳感器芯片進(jìn)行讀寫和溫濕度補(bǔ)償功能,對(duì)LCD1602液晶顯示器進(jìn)行讀寫操作控制LCD顯示功能,對(duì)DS1302時(shí)鐘芯片的年、月、日、周、時(shí) 、分、秒等寄存器進(jìn)行讀寫操作,將讀到的數(shù)值送往LCD顯示,并且能通過(guò)按鍵設(shè)置其值等功能;具有蜂鳴器驅(qū)動(dòng)功能。 4.2 程序設(shè)計(jì)總體方案 4.2.1 總體設(shè)計(jì)思路 先定義好用到的管腳,然后分別對(duì)LCD模塊顯示程序初始化、LCD讀寫操作程序初始化,DS1302模塊讀寫程序初始化,SHT10模塊讀寫程序初始化,讀取SHT10溫濕度的值送往LCD顯示,讀取DS1302的時(shí)鐘日期送往LCD顯示, 接著開啟按鍵掃描子程序等待著按鍵的輸入讀取對(duì)時(shí)間日期和鬧鐘的設(shè)置調(diào)整,將設(shè)置好的鬧鐘子程序與DS1302所讀取的時(shí)間進(jìn)行比較,如是一致則調(diào)用蜂鳴器子程序進(jìn)行報(bào)警。 4.2.2 程序流程框圖 開始 初始化 Y 是否按鍵k1 讀寫時(shí)間日期 N 讀寫溫濕度 N 是否按鍵k2 Y Y N 進(jìn)入時(shí)間日期調(diào)整 是否k2有效 進(jìn)入鬧鐘設(shè)置 N 是否按鍵k3 N N 是否按鍵k3 是否按鍵k4 Y Y Y 多個(gè)鬧鐘設(shè)置 相應(yīng)位加1 相應(yīng)位減1 N N 是否與時(shí)間 是否按鍵 相等 k4 Y Y 返回 LCD顯示 蜂鳴器觸發(fā) 相應(yīng)位加1 返回 4.3 程序的實(shí)現(xiàn) 我們使用的是C語(yǔ)言編程并利用Keil軟件編譯連接生成Hex文件后(如圖4.3.1)利用STC燒錄軟件(如圖4.3.2)將Hex代碼下載到單片機(jī)里面; 圖4.3.1 Keil軟件編譯c程序 圖4.3.2 燒錄軟件 以下為部分程序分析: 4.3.1 檢查L(zhǎng)CD1602忙位子函數(shù) void LCD1602_busy() // 檢查L(zhǎng)CD1602忙位子函數(shù) { uchar i=0; RS=0; RW=1; E=1; P0=0xff; i=0; while(((P0&0x80)==0x80)&&i<150) i++; E=0; } 4.3.2 LCD1602寫指令子函數(shù) void write_com(uchar com) // LCD1602寫指令子函數(shù) { LCD1602_busy(); RS=0; RW=0; P0=com; E=1; E=0; } 4.3.3 LCD1602寫數(shù)據(jù)子函數(shù) void write_date(uchar date) // LCD1602寫數(shù)據(jù)子函數(shù) { LCD1602_busy(); RS=1; RW=0; P0=date; E=1; E=0; } 4.3.4 LCD1602初始化子函數(shù) void LCD1602_init() //LCD1602初始化設(shè)置 { uchar i; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(i=0;i<16;i++) { write_date(table1[i]); delay(500); } write_com(0xc0); for(i=0;i<16;i++) { write_date(table2[i]); delay(500); } a=35; b=10; c=65; d=40; } 4.3.5 SHT10寫字節(jié)子函數(shù) char s_write_byte(uchar value) { uchar i,error=0; for(i=0x80;i>0;i>>=1) //高位為1,循環(huán)右移 { if(i&value) DATA=1; //和要發(fā)送的數(shù)相與,結(jié)果為發(fā)送的位 else DATA=0; SCK=1; _nop_(); _nop_(); _nop_();//延時(shí)3us SCK=0; } DATA=1; //釋放數(shù)據(jù)線 SCK=1; error=DATA; //檢查應(yīng)答信號(hào),確認(rèn)通訊正常 _nop_(); _nop_(); _nop_(); SCK=0; DATA=1; return error; //error=1 通訊錯(cuò)誤 } 4.3.6 SHT10讀字節(jié)子函數(shù) char s_read_byte(uchar ack) { uchar i,val=0; DATA=1; //釋放數(shù)據(jù)線 for(i=0x80;i>0;i>>=1) //高位為1,循環(huán)右移 { SCK=1; if(DATA) val=(val|i); //讀一位數(shù)據(jù)線的值 SCK=0; } DATA=!ack; //如果是校驗(yàn),讀取完后結(jié)束通訊; SCK=1; _nop_(); _nop_(); _nop_();//延時(shí)3us SCK=0; _nop_(); _nop_(); _nop_(); DATA=1; //釋放數(shù)據(jù)線 return val; } 4.3.7 SHT10溫濕度檢測(cè)子函數(shù) char s_measure(uchar *p_value,uchar *p_checksum,uchar mode) { unsigned error=0; uint i; s_transstart(); //啟動(dòng)傳輸 switch(mode) //選擇發(fā)送命令 { case TEMP: error+=s_write_byte(0x03); break; //測(cè)量溫度 case HUMI: error+=s_write_byte(0x05); break; //測(cè)量濕度 default: break; } for(i=0;i<65535;i++) if(DATA==0) break; //等待測(cè)量結(jié)束 if(DATA) error+=1; // 如果長(zhǎng)時(shí)間數(shù)據(jù)線沒(méi)有拉低,說(shuō)明測(cè)量錯(cuò)誤 *(p_value)=s_read_byte(1); //讀第一個(gè)字節(jié),高字節(jié) (MSB) *(p_value+1)=s_read_byte(1); //讀第二個(gè)字節(jié),低字節(jié) (LSB) *p_checksum=s_read_byte(0); //read CRC校驗(yàn)碼 return error; // error=1 通訊錯(cuò)誤 } 4.3.8 DS1302 時(shí)鐘芯片相關(guān)子函數(shù) void inputbyte(uchar add) //往DS1302時(shí)鐘芯片寫入一字節(jié)子函數(shù) { uint i; ACC=add; for(i=8;i>0;i--)//8個(gè)SCLK周期后,接下來(lái)的8個(gè)SCLK周期的上升沿?cái)?shù)據(jù)字節(jié) 被輸入 { IO=ACC0; SCLK=1; SCLK=0; ACC=ACC>>1; } } //DS1302時(shí)鐘芯片輸出一字節(jié)子函數(shù) uchar outputbyte() { uint i; for(i=8;i>0;i--)//8個(gè)SCLK周期后,接下來(lái)的8個(gè)SCLK周期的下降沿?cái)?shù)據(jù)字節(jié) 被輸出 { ACC=ACC>>1; ACC7=IO; SCLK=1; SCLK=0; } return ACC; } //往DS1302時(shí)鐘芯片寫入數(shù)據(jù)子函數(shù) void write_ds(uchar add,uchar ucda) { RST=0; SCLK=0; RST=1; inputbyte(add); inputbyte(ucda); SCLK=1; RST=0; } //從DS1302時(shí)鐘芯片讀出數(shù)據(jù)子函數(shù) uchar read_ds(uchar add) { uchar ucda; RST=0; SCLK=0; RST=1; inputbyte(add); ucda=outputbyte(); SCLK=1; RST=0; return(ucda); } //設(shè)置DS1302時(shí)鐘芯片子函數(shù) void write_setds(uchar addr,uchar date) { write_ds(0x8e,0x00); write_ds(addr,date); write_ds(0x8e,0x80); } 5. 裝置樣機(jī)的制作與調(diào)試 先利用Altium Designer軟件畫好原理圖(圖5.1),然后生成PCB圖(圖5.2); 圖5.1:原理圖 圖5.2:PCB圖 然后接著將PCB打印在墨紙上,利用熱熨斗或者其他工具將圖印刷在銅板,然后就是打孔、腐蝕電路板,接著就能得到以上電路圖的效果了,剩下的就是放元器件接著就是焊接電路板(圖5.3),調(diào)試電路(圖5.4)。 圖5.3:焊接電路板 圖5.4:調(diào)試電路圖 6. 實(shí)驗(yàn)測(cè)試 6.1 實(shí)驗(yàn)測(cè)試目的 總體目的:滿足基本的顯示萬(wàn)年歷功能要求并且具有鬧鐘功能、溫濕度測(cè)量顯示功能、低電量報(bào)警功能、按鍵設(shè)置功能等,每一塊功能都能正常運(yùn)行,顯示時(shí)間和溫濕度誤差要足夠小,運(yùn)行比較精確等。 6.2 溫濕度和時(shí)間日期測(cè)試 6.2.1溫濕度測(cè)試方法與步驟 (1)測(cè)試方法 溫濕度的測(cè)試主要是通過(guò)單片機(jī)控制溫濕度芯片的運(yùn)行工作,讀取它的溫濕度并且通過(guò)溫濕度補(bǔ)償調(diào)整來(lái)降低誤差,精度達(dá)到小數(shù)點(diǎn)后一位,將讀到的溫濕度用LCD顯示出來(lái);所以,我們測(cè)試溫濕度的時(shí)候就是將它拿到幾個(gè)不同的環(huán)境,如室外和室內(nèi)分別測(cè)量溫濕度。 (2) 測(cè)量數(shù)據(jù) 分別在不同的地方環(huán)境測(cè)試LCD顯示的數(shù)據(jù)略有變化 (3) 數(shù)據(jù)分析 不同環(huán)境測(cè)量溫濕度有不同變化且通過(guò)天氣預(yù)報(bào)查看當(dāng)?shù)氐臏貪穸扰c自己LCD顯示的溫濕度的值相差無(wú)幾,在其預(yù)報(bào)的范圍之內(nèi);這就說(shuō)明了我們的溫濕度測(cè)試還算比較準(zhǔn)確,雖然有時(shí)顯示跳動(dòng)得不是很明顯,但在其誤差范圍內(nèi)還是可行的。 6.2.2 時(shí)間日期測(cè)試方法和步驟 (1) 測(cè)試方法 時(shí)間日期的測(cè)試方法主要是通過(guò)單片機(jī)控制DS1302時(shí)鐘芯片進(jìn)行讀寫工作,讀取它的時(shí)間日期的值并通過(guò)LCD顯示出來(lái),還通過(guò)按鍵方法來(lái)設(shè)置它的時(shí)間日期以及鬧鐘的值,所以我們先通過(guò)按鍵設(shè)置顯示時(shí)間日期的值以及鬧鐘的值通過(guò)對(duì)比實(shí)際時(shí)間運(yùn)行和設(shè)置的鬧鐘響與不響來(lái)判斷其功能測(cè)試是否成功。 (2) 測(cè)試數(shù)據(jù) 將LCD上顯示的時(shí)間實(shí)際的時(shí)鐘運(yùn)行對(duì)比,發(fā)現(xiàn)兩者運(yùn)行一致,分秒運(yùn)行相同,當(dāng)運(yùn)行到的時(shí)間與自己所設(shè)置的鬧鐘的時(shí)分值相等時(shí),蜂鳴器響,過(guò)了一分鐘后時(shí)分值不一致,蜂鳴器不行。 (3) 數(shù)據(jù)分析 通過(guò)以上的顯示數(shù)據(jù)對(duì)比可知,雖然用眼睛對(duì)比分析時(shí)間的正確性還存在一些人為因素誤差,但是在其誤差范圍內(nèi)還是允許的,通過(guò)對(duì)比鬧鐘的響與不響可以證明了鬧鐘模塊的正確性。 6.3 測(cè)試結(jié)果 通過(guò)了上面的測(cè)試基本滿足了顯示萬(wàn)年歷功能要求并且具有鬧鐘功能、溫濕度測(cè)量顯示功能、低電量報(bào)警功能、按鍵設(shè)置功能等,每一塊功能都能正常運(yùn)行,顯示時(shí)間和溫濕度誤差比較小,運(yùn)行比較精確。 7. 總結(jié) 通過(guò)了這次具有溫濕度測(cè)量功能的萬(wàn)年歷設(shè)計(jì),使我懂得了很多,其中最為深刻的是在設(shè)計(jì)程序的時(shí)候要緊緊的利用好你所連接的接口,并且通過(guò)其引腳來(lái)控制單片機(jī)輸出的是高電平還是低電平,進(jìn)而控制各個(gè)模塊的協(xié)調(diào)工作,這一點(diǎn)是非常重要的思想對(duì)于我來(lái)說(shuō),這是我個(gè)人認(rèn)為的想法,雖然不是很正規(guī),這僅是我的個(gè)人總結(jié);總的來(lái)說(shuō)這次實(shí)習(xí)給了我很多思考的空間去思考;同時(shí)還要感謝老師在我遇到困難時(shí)給了我們及時(shí)的解答,使我們更為深刻地明白了設(shè)計(jì)的思想和思路,懂得了很多在課堂內(nèi)得不到的知識(shí),通過(guò)動(dòng)手實(shí)踐證實(shí)了經(jīng)驗(yàn)的重要性,做到理論與實(shí)踐相結(jié)合才是唯一真理。 在設(shè)計(jì)過(guò)程中,我通過(guò)查閱大量有關(guān)資料,與同學(xué)交流經(jīng)驗(yàn)和自學(xué),并向老師請(qǐng)教等方式,使自己學(xué)到了不少知識(shí),也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個(gè)設(shè)計(jì)中我懂得了許多東西,也培養(yǎng)了我獨(dú)立工作的能力,樹立了對(duì)自己工作能力的信心,相信會(huì)對(duì)今后的學(xué)習(xí)工作生活有非常重要的影響。而且大大提高了動(dòng)手的能力,使我充分體會(huì)到了在創(chuàng)造過(guò)程中探索的艱難和成功時(shí)的喜悅。雖然這個(gè)設(shè)計(jì)做的也不太好,但是在設(shè)計(jì)過(guò)程中所學(xué)到的東西是這次實(shí)習(xí)的最大收獲和財(cái)富,使我終身受益。 參考文獻(xiàn) [1] 高頻電子線路(第五版) 張肅文 主編 [2] 數(shù)字電子技術(shù)簡(jiǎn)明教程(第三版) 余孟嘗 主編 [3] 電路(第五版) 邱關(guān)源 原著 [4] 模擬電子技術(shù)基礎(chǔ)簡(jiǎn)明教程(第三版) 楊素行 主編 [5] 新概念51單片機(jī)c語(yǔ)言教程 郭天詳 編著- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 單片機(jī) 萬(wàn)年歷 實(shí)習(xí) 報(bào)告
鏈接地址:http://www.820124.com/p-6497336.html