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