2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩44頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(論文)</b></p><p><b>  目 錄</b></p><p><b>  引言2</b></p><p><b>  1.緒論4</b></p><p>  1.1 本設(shè)計的背景4</p&

2、gt;<p>  1.2 本設(shè)計的內(nèi)容4</p><p>  1.3 本設(shè)計的目的和意義4</p><p>  2.系統(tǒng)控制方案的確定4</p><p>  2.1 系統(tǒng)設(shè)計的基本步驟5</p><p>  2.2 系統(tǒng)控制方案5</p><p>  2.3 系統(tǒng)控制流程圖6</

3、p><p>  3.系統(tǒng)硬件設(shè)計7</p><p>  3.1 微控制器(單片機)的選型7</p><p>  3.2 時鐘芯片的選型8</p><p>  3.3 溫濕度芯片的選型9</p><p>  3.4 無線模塊的選型9</p><p>  3.5 語音芯片的選型9&l

4、t;/p><p>  3.6 顯示的選型11</p><p>  3.7 紅外遙控器的選型11</p><p>  4.系統(tǒng)軟件設(shè)計12</p><p>  4.1 單片機C語言的概述12</p><p>  4.2 系統(tǒng)工作過程分析12</p><p>  4.3 控制系統(tǒng)程序

5、設(shè)計13</p><p><b>  5.結(jié)論15</b></p><p><b>  致謝16</b></p><p><b>  參考文獻16</b></p><p><b>  附圖17</b></p><p>&l

6、t;b>  引言</b></p><p>  單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設(shè)備。而現(xiàn)在最強大的單片機系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。。它是一種在線式實時控制計

7、算機,有較強的抗干擾能力,成本較低。</p><p>  單片機廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個范疇:</p><p>  1.在智能儀器儀表上的應(yīng)用</p><p>  單片機具有體積小、功耗低、控制功能強、擴展靈活、微型化和使用方便等優(yōu)點,廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實現(xiàn)諸

8、如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強大。例如精密的測量設(shè)備(功率表,示波器,各種分析儀)。</p><p>  2.在工業(yè)控制中的應(yīng)用</p><p>  用單片機可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、

9、各種報警系統(tǒng),與計算機聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。</p><p>  3.在家用電器中的應(yīng)用</p><p>  可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機控制,從電飯褒、洗衣機、電冰箱、空調(diào)機、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。</p><p>  4.在計算機網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用</p><p>  現(xiàn)代的單片機

10、普遍具備通信接口,可以很方便地與計算機進行數(shù)據(jù)通信,為在計算機網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實現(xiàn)了單片機智能控制,從手機,電話機、小型程控交換機、樓宇自動通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動電話,集群移動通信,無線電對講機等。</p><p>  5.單片機在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p>  單片機在醫(yī)用設(shè)備中的用途亦相當廣泛

11、,例如醫(yī)用呼吸機,各種分析儀,監(jiān)護儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。</p><p>  6.在各種大型電器中的模塊化應(yīng)用</p><p>  某些專用單片機設(shè)計用于實現(xiàn)特定功能,從而在各種電路中進行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機,看似簡單的功能,微縮在純電子芯片中(有別于磁帶機的原理),就需要復(fù)雜的類似于計算機的原理。</p><p&g

12、t;  此外,單片機在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。</p><p><b>  1.緒論</b></p><p>  1.1 本設(shè)計的背景</p><p>  現(xiàn)階段國內(nèi)外對于時鐘的研究主要表現(xiàn)在:個性、便捷等功能上。時鐘產(chǎn)品多以這幾類為主:指針式時鐘、數(shù)碼管顯示時鐘、點陣時鐘,液晶顯示時鐘。由于現(xiàn)在的時鐘多

13、采用電子線路,因此在時間的精確度上有很大的提高,并且隨著微電子技術(shù)的迅猛發(fā)展,無論是時鐘的外型還是內(nèi)部線路都有很大的改進。比如現(xiàn)在的時鐘很多都非常有個性,如:概念時鐘,時鐘的外觀做的卡通化,所以它們很受年輕人的喜歡。</p><p>  有一種新型時鐘能產(chǎn)生多點信號,它是在時鐘上加裝集成電路為基礎(chǔ)的中央控制電路再分別與鍵盤控制器,語音錄放器和液晶顯示器聯(lián)接組裝而成,是一種全新穎的多段提醒點智能鬧鐘,使用者可以多次

14、設(shè)定響鬧時間,并提前錄好該時間要做的事,到指定時間就會分別按時用語音提醒并在液晶顯示器上作出指示。</p><p>  還有一種新型時鐘它的作用是“在最佳被喚醒的時候”叫醒,也就是最淺睡眠狀態(tài)下叫醒。與鬧鐘配套的有個類似護腕的傳感器,使用者只需將其佩戴在手腕處便能監(jiān)測使用者的身體活動狀態(tài),還可以通過測試使用者在睡眠時有多少次翻身來判定熟睡程度,最后傳感器將信息通過無線方式發(fā)送給鬧鐘,由鬧鐘來計算出叫醒使用者的最佳

15、時間。</p><p>  鑒于現(xiàn)在的時鐘趨向個性,方便、多功能的特點,本設(shè)計將集技術(shù)和創(chuàng)新于一體,賦予數(shù)字時鐘的一個全新的概念。</p><p>  1.2 本設(shè)計的內(nèi)容</p><p>  運用SM311無線模塊組建一個無線網(wǎng)絡(luò)與各個時鐘終端進行通訊。</p><p>  應(yīng)用時鐘芯片、溫濕度芯片,采集其數(shù)據(jù)通過時鐘顯示器進行顯示。&l

16、t;/p><p>  應(yīng)用語音芯片來進行語音報時,增加項目的趣味性。</p><p>  通過紅外可以對各個時鐘終端分別進行時間、鬧鐘的設(shè)定,并可實時修改時間、鬧鐘時間等參數(shù)設(shè)置。</p><p>  1.3 本設(shè)計的目的和意義</p><p>  時鐘是顯示時間一種器件。它的應(yīng)用遍及我們周圍的每一個角落,應(yīng)用非常廣泛。現(xiàn)階段家庭廣泛應(yīng)用的時鐘大

17、多只具有時間顯示功能,無法顯示日歷、無法定時、也不具有溫濕度顯示等功能。由于數(shù)字時鐘采用石英晶體起振,各晶振間由于存在誤差而導(dǎo)致了時間差的累積,所以即使同樣的數(shù)字時鐘,經(jīng)過一段時間后顯示的時間也不相同。</p><p>  由于現(xiàn)在大多數(shù)時鐘存在著這么多的缺點,所以本設(shè)計就比較有意義,本設(shè)計的重點是無線網(wǎng)絡(luò)在數(shù)字時鐘中的具體應(yīng)用。通過時鐘間的無線通訊可以對家庭或辦公室所在的任一個時鐘進行時間、日期、溫度等傳輸并校

18、正。</p><p>  2.系統(tǒng)控制方案的確定</p><p>  2.1 系統(tǒng)設(shè)計的基本結(jié)構(gòu)</p><p>  本設(shè)計主要由顯示模塊、時鐘模塊、溫濕度檢測模塊、無線通訊模塊、紅外控制模塊、語音模塊、鬧鈴模塊。</p><p>  總體框架圖如圖2.1所示:</p><p>  圖2.1 總體框架圖</p&

19、gt;<p>  2.2 系統(tǒng)控制方案</p><p>  無線網(wǎng)絡(luò)時鐘系統(tǒng)的控制要求如下:</p><p>  (1)初始時間、鬧鐘時間的輸入:</p><p>  在打開電源,系統(tǒng)初始化開始后,就要對系統(tǒng)進行一些基本參數(shù)的設(shè)定。如初始時間(即現(xiàn)在的時間)、鬧鐘的時間。</p><p> ?。?)采集溫濕度數(shù)據(jù)并處理:<

20、;/p><p>  在設(shè)定好參數(shù)后,系統(tǒng)會定時采集溫濕度的數(shù)據(jù),并對數(shù)據(jù)進行處理,轉(zhuǎn)化成溫濕度數(shù)值,放入指定的地址中。為后面的顯示做好準備。</p><p>  (3)通過無線模塊傳輸數(shù)據(jù):</p><p>  控制器(單片機)會定時通過無線模塊把時間數(shù)據(jù),溫濕度數(shù)據(jù)傳送給其它時鐘。</p><p><b> ?。?)在線修改時間<

21、;/b></p><p>  因為任何時鐘通過一段時間的運行后肯定會出現(xiàn)誤差,所以該系統(tǒng)有在線修改時間程序??赏ㄟ^紅外遙控對時間和鬧鐘時間進行在線修改。</p><p><b> ?。?)語音報時</b></p><p>  為了使時鐘更人性化,該系統(tǒng)還設(shè)計了語音報時程序。用戶可以通過紅外遙控器,對現(xiàn)在的時間進行報時。</p>

22、<p><b> ?。?)鬧鈴</b></p><p>  通過初始設(shè)定或在線設(shè)定好鬧鐘時間后,當?shù)竭_該時間,蜂鳴器會出現(xiàn)鬧鈴響聲。</p><p>  2.3 系統(tǒng)控制流程圖</p><p><b>  3.系統(tǒng)硬件設(shè)計</b></p><p>  3.1 微控制器(單片機)的選型

23、</p><p>  全世界的單片機品種繁多,有ATMEL公司的AVR單片機、Motorola單片機、MicroChip單片機、MDT20XX系列單片機、EM78系列OTP型單片機、Scenix單片機、EPSON單片機、東芝單片機、8051單片機、LG公司生產(chǎn)的GMS90系列單片機、華邦單片機、Zilog單片機、NS單片機等等。</p><p>  我選用的是由宏晶科技生產(chǎn)的STC12C5

24、410AD單片機。因為該單片機較以往的單片機提高了工作效率,使系統(tǒng)的可靠性、抗干擾能力得到了顯著改善,而且進一步小型化和便攜化。其內(nèi)部集成的Flash幾乎擁有現(xiàn)代追求個性化的用戶所需要的掉電后數(shù)據(jù)不丟失、快速的數(shù)據(jù)存取時間、電可擦除、容量大、在線可編程、足夠多的擦寫次數(shù)、價格低廉和高可靠性等所有優(yōu)點。圖3.1為該單片機的管腳引腳圖。</p><p>  圖3.1 STC12C5410AD引腳圖</p>

25、<p>  STC12C5410AD單片機具有以下特點:</p><p>  (1) Flash存儲器</p><p>  STC12C5410AD Flash存儲器為10KB。 Flash存儲器主要用作程序存儲,可經(jīng)計算機串口接口下載程序;程序運行時能對其中的1段或多段進行擦、寫操作,因此兼有數(shù)據(jù)存儲器功能。Flash存儲器的掉電保護功能可用十程序數(shù)據(jù)保存,可以按字或字節(jié)讀

26、寫,最小擦除單位為1段,經(jīng)過擦除的位為“1",寫入位為“0"。</p><p>  (2)脈寬調(diào)節(jié)模式(PWM)</p><p>  所有PCA模塊都可用作PMW輸出。輸出頻率取決于PCA定時器的時鐘源。由十所有模塊共用僅有的PCA定時器,所有它們的輸出頻率相同。各個模塊的輸出占空比是獨立變化的,與使用的捕獲寄存器{EPCnL,CCAPnL}有關(guān)。當CL SFR的值小十

27、{EPCnL, CCAPnL}時,輸出為低,當PCA CL SFR的值等于或大于{EPCnL, CCAPnL}時,輸出為高。當CL的值由FF變?yōu)?0溢出時,{EPCnH, CCAPnH}的內(nèi)容裝載到{EPCnL,CCAPnL}中。這樣就可實現(xiàn)無干擾地更新PWM。要使能PWM模式,模塊CCAPMn寄存器的PWMn不II ECOMn位必須置位。</p><p>  (3) I/O口工作類型設(shè)置</p>

28、<p>  STC12C5410AD帶有24個I/O引腳,它的I/O與傳統(tǒng)的I/O不同,每個I/O口均可由軟件設(shè)置成4種工作類型之一,使得功能口和通用I/O口復(fù)用。4種類型分別為:準雙向口(標準8051輸出模式)、推挽輸出、僅為輸入(高阻)和開漏輸出功能。在對同一個I/O口進行操作前要選擇其要實現(xiàn)的功能,這樣大大地增強了端口的功能和靈活性。其中一些I/O口還可以與STC12C5410AD中的特殊模塊相結(jié)合完成更為復(fù)雜的工作

29、。如與捕獲比較模塊相結(jié)合可以實現(xiàn)串行通信,與A/D模塊結(jié)合實現(xiàn)A/D轉(zhuǎn)換等。此外,STC12C5410AD的I/O端口電氣特性也十分突出,幾乎所有的I/O口都有20mA的驅(qū)動能力,對于一般的液晶顯示屏、蜂鳴器可以直接驅(qū)動而無需輔助電路。許多端口內(nèi)部都集成了上拉電阻,可以方便地與外圍器件相接。</p><p>  (4) A/D模數(shù)轉(zhuǎn)換寄存器</p><p>  STC12C5410AD單片

30、機的A。轉(zhuǎn)換口在P1口(P1.7~P1.0),有8路10位高速A/D轉(zhuǎn)換器,STC12C5410AD系列是10位精度的A/D,速度均可達到1 OOKHz(10萬次/秒)08路電壓輸入型A/D,可以完成溫度檢測、電池電壓檢測、按鍵掃描、頻譜檢測等功能。上電復(fù)位后P1口是弱上拉型的I/O口,可以通過軟件設(shè)置將8路中的任何一路設(shè)置為A/D轉(zhuǎn)換,不需作為A/D使用的口可繼續(xù)作為I/O口使用。這樣,A/D轉(zhuǎn)換和I/O口可以靈活的運用,節(jié)省了軟件及

31、時間。</p><p>  (5)有配套的仿真開發(fā)工具</p><p>  STC12C5410AD的Flash存儲器給用戶的開發(fā)帶來方便。用戶可以將芯片焊接在線路板上后進行下載程序、調(diào)試程序和修改程序。同時,STC12C5410AD的片內(nèi)已集成了程序斷點控制等邏輯功能。因此,它的開發(fā)工具較為簡單,只需1套PC環(huán)境下的調(diào)試軟件和1個連接十并口的仿真器。仿真器與STC12C5410AD經(jīng)串口

32、連接。因此,用戶只要在設(shè)計應(yīng)用系統(tǒng)時為調(diào)試需要預(yù)留好STC12C5410AD的串口接口的引出插座,即可實現(xiàn)系統(tǒng)的程序下載調(diào)試、系統(tǒng)現(xiàn)場編程硬件仿真或軟件升級功能,而且無需外加編程電壓。</p><p>  3.2 時鐘芯片的選型</p><p>  我采用的是DALLAS 公司推出的DS1302。該芯片是涓流充電時鐘芯片,內(nèi)含有一個實時時鐘/日歷和31 字節(jié)靜態(tài)RAM ,通過簡單的串行接

33、口與單片機進行通信。實時時鐘/日歷電路提供秒、分、時、日、日期、月、年的信息。每月的天數(shù)和閏年的天數(shù)可自動調(diào)整,時鐘操作可通過AM/PM 指示決定采用24 或12 小時格式。DS1302 與單片機之間能簡單地采用同步串行的方式進行通信,僅需用到三個口線:(1)RES( 復(fù)位);(2)I/O 數(shù)據(jù)線;(3)SCLK。</p><p>  串行時鐘時鐘/RAM 的讀/寫數(shù)據(jù)以一個字節(jié)或多達31 個字節(jié)的字符組方式通信

34、。DS1302 工作時功耗很低,保持數(shù)據(jù)和時鐘信息時功率小于1mW。DS1302 是由DS1202 改進而來,增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1 為可編程涓流充電電源,附加七個字節(jié)存儲器。它廣泛應(yīng)用于電話、傳真、便攜式儀器以及電池供電的儀器儀表等產(chǎn)品領(lǐng)域。如圖3.2為它的原理圖。</p><p>  圖3.3 DS1302的原理圖</p><p>  3.3

35、 溫濕度芯片的選型</p><p>  溫濕度模塊采用的是瑞士Sensirion公司的SHT11溫濕度傳感器。</p><p>  該芯片具有I2C總線接口的單片全校準數(shù)字式相對濕度和溫度傳感器。該傳感器采用獨特的CMOSens TM技術(shù),具有數(shù)字式輸出、免調(diào)試、免標定、免外圍電路及全互換的特點。傳統(tǒng)的模擬式濕度傳感器一般都要設(shè)計信號調(diào)理電路并需要經(jīng)過復(fù)雜的校準和標定過程,因此測量精度難

36、以保證,且在線性度、重復(fù)性、互換性、一致性等方面往往不盡人意。SHT11是基于CMOSensTM技術(shù)的新型溫濕度傳感器。該傳感器將CMOS芯片技術(shù)與傳感器技術(shù)結(jié)合起來,從而發(fā)揮出它們強大的優(yōu)勢互補作用。如圖3.4為它的實物圖。</p><p>  該芯片能將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個芯片上,其內(nèi)部結(jié)構(gòu)如圖3.5所示。該芯片包括一個電容性聚合體濕度敏感元件和一個用能隙材料制成的

37、溫度敏感元件。這兩個敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號,該電信號首先進入微弱信號放大器進行放大;然后進入一個14位的A/D轉(zhuǎn)換器;最后經(jīng)過二線串行數(shù)字接口輸出數(shù)字信號。SHT11在出廠前,都會在恒濕或恒溫環(huán)境巾進行校準,校準系數(shù)存儲在校準寄存器中;在測量過程中,校準系數(shù)會自動校準來自傳感器的信號。此外,SHT11內(nèi)部還集成了一個加熱元件,加熱元件接通后可以將SHT11的溫度升高5℃左右,同時功耗也會有所增加。此功能主要為了比較加熱前后

38、的溫度和濕度值,可以綜合驗證兩個傳感器元件的性能。在高濕(>95%RH)環(huán)境中,加熱傳感器可預(yù)防傳感器結(jié)露,同時縮短響應(yīng)時間,提高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會略有差異。圖3。6為它的原理圖。</p><p>  圖3.4 SHT11實物圖</p><p>  圖3.5SHT11內(nèi)部結(jié)構(gòu)圖 圖3.6SHT11原理圖<

39、;/p><p>  3.4 無線模塊的選型</p><p>  無線通訊模塊采用的是SM31無線模塊。SM31型微功率無線數(shù)傳模塊采用Chipcon公司高接收靈敏度無線集成芯片CC1020 RF芯片,Atmel 公司的微功耗,低噪音,高速8位單片機,也內(nèi)置多種高糾錯信道編碼通信技術(shù),用戶使用時,無需任何編碼,具有更高的抗干擾性強,通信穩(wěn)定的特點。圖3.7為它的實物圖。</p>

40、<p>  采用高效前向糾錯信道編碼技術(shù),提高了數(shù)據(jù)抗突發(fā)干擾和隨機干擾能力;采用透明的數(shù)據(jù)傳輸,提供透明的數(shù)據(jù)接口,能適應(yīng)任何標準或非標準的用戶協(xié)議;自動過濾掉空中產(chǎn)生的噪音號及假數(shù)據(jù),使用方便,采用 雙串口,同時提供TTL/RS-232/RS-485共3種接口方式,大的數(shù)據(jù)緩沖區(qū),接口波特率為1200~115200Bit/s,格式為8N1/8E1用戶可自定義,可1次傳輸無限長度的數(shù)據(jù),用戶可靈活編程設(shè)置。可廣泛用于各種場合

41、的短距離無線通信領(lǐng)域。</p><p>  圖3.7 SM31無線模塊實物圖</p><p>  3.5 語音芯片的選型</p><p>  ISD2560是ISD系列單片語音錄放集成電路的一種。這是一種永久記憶型語音錄放電路,錄音時間為60s,可重復(fù)錄放10萬次。該芯片采用多電平直接模擬量存儲專利技術(shù),每個采樣值可直接存儲在片內(nèi)單個EEPROM單元中,因此能夠非

42、常真實、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲,從而避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。該器件的采樣頻率為8.0kHz,同一系列的產(chǎn)品采樣頻率越低錄放時間越長,但通頻帶和音質(zhì)會有所降低。原理圖如圖3.8。此外,ISD2560還省去了A/D和D/A轉(zhuǎn)換器。其集成度較高,內(nèi)部包括前置放大器、內(nèi)部時鐘、定時器、采樣時鐘、濾波器、自動增益控制、邏輯控制、模擬收發(fā)器、解碼器和480k字節(jié)的EEPROM。SD2560內(nèi)部EEP

43、ROM存儲單元均勻分為600行,有600個地址單元,每個地址單元指向其中一行,每一個地址單元的地址分辨率為100ms。此外,ISD2560還具備微控制器所需的控制接口。通過操縱地址和控制線可完成不同的任務(wù),以實現(xiàn)復(fù)雜的信息處理功能,如信息的組合、連接、設(shè)定固定的信息段和信息管理等。ISD2560可不分段,也可按最小段長為單位來任意組合</p><p>  圖3.8 ISD2560原理圖</p>&l

44、t;p>  3.6 顯示的選型</p><p>  128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內(nèi)部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×1

45、6點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。實物圖如圖3.9,圖3.10為它的原理圖。</p><p>  圖3.9 128X64實物圖</p><p>  圖3.10 128X64原理圖</p><p

46、>  3.7 紅外遙控器的選型</p><p>  紅外控制模塊是由紅外發(fā)射器與紅外接收器組成。紅外控制模塊在設(shè)計中所起的作用是輸入和在線修改時間、鬧鐘的數(shù)據(jù)??稍诰€開啟觀看鬧鐘時間,可開啟和關(guān)閉時鐘報時功能,可關(guān)閉鬧鐘等功能。實物圖如圖3.12。</p><p>  圖 3.12 紅外遙控器實物圖</p><p>  紅外遙控器使用方便,功能多.目前已廣泛

47、應(yīng)用在電視機、VCD、DVD、空調(diào)等各種家用電器中,且價格便宜,市場上非常容易買到。而且紅外遙控器發(fā)出的是紅外線不受陽光的干擾,所以選擇紅外遙控器。</p><p><b>  4.系統(tǒng)軟件設(shè)計</b></p><p>  4.1 單片機C語言的概述</p><p>  c語言是很好用的結(jié)構(gòu)化語言,80年代后,c語言開始在單片機上運用。過去長

48、期困擾人們的所謂“高級語言產(chǎn)生代碼太長,運行速度太慢,運行效率不高,所以不適合單片機使用。</p><p>  所以單片機c語言集成開發(fā)環(huán)境成功的解決了這個難題,使得單片機c語言的效率大大的提高,而且在關(guān)鍵部位還能嵌入?yún)R編語言代碼,從而挖掘程序的最高潛力。目前,8051上的C語言的代碼長度,已經(jīng)做到了匯編水平的1.2~1.5倍。4K字節(jié)以上的程度,C語言的優(yōu)勢更能得到發(fā)揮。至于運行速度的問題,只要有好的仿真器,找

49、出關(guān)鍵的代碼,再進一步做一下人工優(yōu)化,就可很容易達到美滿。單片機c語言是高效的單片機開發(fā)語言。</p><p>  4.2 系統(tǒng)工作過程分析</p><p><b>  1.初始化</b></p><p>  2.進入初始化參數(shù)設(shè)定界面,輸入初始時間、鬧鐘時間。</p><p>  3.設(shè)定參數(shù)后,按開始鍵進入時鐘界面

50、(系統(tǒng)開始全面運行)。</p><p>  4.控制器(單片機)定時向溫濕度模塊讀取數(shù)據(jù),并進行數(shù)據(jù)處理。</p><p>  5.控制器(單片機)定時到時鐘芯片(IS1302)讀取時間。</p><p>  6.在得到溫濕度、時間數(shù)據(jù)之后,控制器(單片機)把時間,溫濕度顯示在液晶顯示屏上。</p><p>  7.控制器(單片機)定時把溫濕

51、度數(shù)據(jù),時間數(shù)據(jù)通過無線模塊傳送給其它時鐘。</p><p>  8.控制器(單片機)檢查鬧鈴標志位。如果是執(zhí)行鬧鈴程序,如果否跳過該程序。</p><p>  9.在外部中斷中,當檢測到要語音報時,系統(tǒng)進入語音報時程序。執(zhí)行報時功能。</p><p>  10.在外部中斷中,當檢測到要修改時間或修改鬧鐘時間時,系統(tǒng)進入修改界面,而且系統(tǒng)的時間程序仍在運行,如果沒修

52、改數(shù)據(jù)或是修改數(shù)據(jù)沒保存,當跳出修改界面后,時間將不會該變。</p><p>  4.3控制系統(tǒng)程序設(shè)計</p><p><b>  1. 顯示</b></p><p>  128×64液晶顯示屏,具有四行顯示功能,而且內(nèi)部含有國標一級,二級簡體中文字庫的點陣圖形液晶顯示模;所以可以同時顯示時間、日期、溫度、濕度等內(nèi)容。在顯示方式上是

53、采用動態(tài)的顯示方式,所以能實時顯示傳感器中的數(shù)據(jù)。</p><p>  2. SHT11溫濕度傳感器</p><p>  SHT11是利用溫濕度傳感器分別產(chǎn)生相對溫度或濕度的信號,然后經(jīng)過放大,分別送至A/D轉(zhuǎn)換器進行模/數(shù)轉(zhuǎn)換、校準和糾錯,最后通過二線串行接口將相對濕度數(shù)據(jù)送至主控制器進行處理。所以在程序開始時,微處理器先用一組"啟動傳輸"時序表示數(shù)據(jù)傳輸?shù)膯樱擲

54、CK時鐘為高電平時,DATA翻轉(zhuǎn)為低電平;緊接著SCK變?yōu)榈碗娖剑S后又變?yōu)楦唠娖?;在SCK時鐘為高電平時,DATA再次翻轉(zhuǎn)為高電平。</p><p>  主機發(fā)出啟動命令,隨后發(fā)出一個后續(xù)8位命令碼,該命令碼包含3個地址位(芯片設(shè)定地址為000)和5個命令位;發(fā)送完該命令碼,將DATA總線設(shè)為輸入狀態(tài)等待SHT11的響應(yīng);SHT11接收到上述地址和命令碼后,在第8個時鐘下降沿,將DATA下拉為低電平作為從機的A

55、CK;在第9個時鐘下降沿之后,從機釋放DATA(恢復(fù)高電平)總線;釋放總線后,從機開始測量當前溫度或濕度,測量結(jié)束后,再次將DATA總線拉為低電平;主機檢測到DATA總線被拉低后,得知溫度或濕度測量已經(jīng)結(jié)束,給出SCK時鐘信號;從機在第8個時鐘下降沿,先輸出高字節(jié)數(shù)據(jù);在第9個時鐘下降沿,主機將DATA總線拉低作為ACK信號。然后釋放總線DATA;在隨后8個SCK周期下降沿,從機發(fā)出低字節(jié)數(shù)據(jù);接下來的SCK下降沿,主機再次將DATA總

56、線拉低作為接收數(shù)據(jù)的ACK信號;最后8個SCK下降沿從機發(fā)出CRC校驗數(shù)據(jù),主機不予應(yīng)答(NACK)則表示測量結(jié)束。</p><p><b>  3. 語音</b></p><p>  語音模塊采用的是ISD2560語音芯片。ISD2560雖然提供了地址輸入線,但它的內(nèi)部信息段的地址卻無法讀出。本系統(tǒng)采用單片機來控制,不需讀出信息地址,而直接設(shè)置信息段起始地址。其實現(xiàn)

57、方式有兩種:一是由于ISD2560的地址分辨率為100 ms,所以可用單片機內(nèi)部定時器定時100 ms,然后再利用一計數(shù)器對單片機定時次數(shù)進行計數(shù),則計數(shù)器的計數(shù)值為語音段所占用的地址單元。該方式能充分利用ISD2560內(nèi)部的E2PROM,在字段較多時可利用該方法。二是語音字段如果較少,則可根據(jù)每一字段的內(nèi)容多少,直接分配地址單元。一般按每1s說3個字計算,60 s可說180個字,再根據(jù)ISD2560的地址分辨率為100 ms,即可計算

58、出語音段所需的時間。本文采用第二種方式。</p><p>  放音時,根據(jù)需播放的語音內(nèi)容,找到相應(yīng)的語音段起始地址,并通過口線送出。再將P/R端設(shè)為高電平,PD端設(shè)為低電平,并讓/CE端產(chǎn)生一負脈沖啟動放音,這時單片機只需等待軟計時器結(jié)束,即報完這段語音所需的時間。軟計時器結(jié)束后,如果還要放音就馬上重新輸入初始地址,在重新啟動軟計時器。如果要結(jié)束就直接輸入ISD2560的信息結(jié)束信號,即EOM的地址。 信號為一

59、負脈沖,在負脈沖的上升沿,該段語音才播放結(jié)束,所以單片機必須要檢測到/EOM的上升沿才能播放第二段,否則播放的語音就不連續(xù),而且會產(chǎn)生啪啪聲,這一點在編制軟件時一定要注意。</p><p><b>  4. 鬧鈴</b></p><p>  當時間走到預(yù)定的鬧鐘時間時,蜂鳴器要發(fā)出鬧鈴聲。單片機只需要把現(xiàn)在的時間跟鬧鐘設(shè)定的時間作比較,如果一樣就發(fā)出鬧鈴聲。為了能關(guān)閉

60、鬧鈴,只需在發(fā)出鬧鈴聲的條件上再加一個條件就行。而為了更人性化有兩種方法來關(guān)閉,一種是直接關(guān)閉,即把改變鬧鈴的條件;另一種是暫時關(guān)閉,在過5分種后會繼續(xù)鬧鈴。這就需要改變原始鬧鐘設(shè)定的時間,即選擇這種關(guān)閉后,程序要在原來設(shè)定的時間上再加上5分鐘,這樣5分鐘后才會繼續(xù)發(fā)出鬧鈴聲。</p><p><b>  5.紅外控制</b></p><p>  在本系統(tǒng)中紅外控制采

61、用的是中斷控制方式??刂破鳎▎纹瑱C)的外中斷接紅外接收器,當有紅外接收到,會馬上轉(zhuǎn)到中斷程序,對紅外信息進行解碼并執(zhí)行相應(yīng)的指令。這樣就能實時控制整個系統(tǒng)。所以當要進行語音報時時,只要按下語音報時鍵,系統(tǒng)會馬上作出處理。就能馬上執(zhí)行語音程序了。</p><p><b>  5.結(jié)論</b></p><p>  本系統(tǒng)主要以單片機為核心,利用單片機的強大的控制功能,實現(xiàn)

62、了無線網(wǎng)絡(luò)的時鐘設(shè)計,正真實現(xiàn)了通過時鐘間的無線通訊讓家庭或辦公場所的任一個時鐘進行時間、日期、溫濕度等校正,還可進行鬧鐘設(shè)定、語音定時、報警等功能。</p><p>  通過本設(shè)計,我學(xué)習(xí)到了很多東西,在工作的細心上也得到了提高。并且,更了解了有關(guān)單片機的功能。我選擇這個設(shè)計,也是為了彌補以前學(xué)習(xí)上的不足。這次設(shè)計,使我了解到老師的用心良苦,并且從老師那學(xué)到了很多寶貴的東西。</p><p&

63、gt;<b>  致謝</b></p><p>  本論文是在湖州職業(yè)技術(shù)學(xué)院左希慶老師的指導(dǎo)下完成的。在做論文的過程中左希慶老師嚴謹?shù)闹螌W(xué)態(tài)度和一絲不茍的工作精神給了我深刻的啟發(fā),也給了我很大的觸動。另外,左希慶老師經(jīng)常給我講解不懂的地方,教我怎么入手,使我能盡快的完成論文。還要感謝系里其它的老師的指導(dǎo),給了我很大的幫助。在此,對老師在工作和生活中給予的指導(dǎo)和關(guān)心致以最真誠的謝意。<

64、/p><p>  同時在這里還要感謝自動化系給予我們的關(guān)心和幫助,感謝機房老師給予我們上機實驗方便。</p><p>  感謝系里其它的一些同學(xué)在設(shè)計中提供大量的支持和幫助。</p><p>  我們即將畢業(yè),在此,再一次向三年中在學(xué)習(xí)和生活中給予過我?guī)椭睦蠋熀屯瑢W(xué)致謝。</p><p><b>  參考文獻</b><

65、;/p><p>  [1] 陳立定、吳玉香、蘇開才. 電氣控制與可編程控制器[M].廣州:華南理工大學(xué)出版社.2001</p><p>  [2] 劉載文、李毫升、鐘亞林. 電梯控制技術(shù)[M].北京:電子工業(yè)出版社.1996</p><p>  [3] 秦健. 可編程控制器和變頻器載改造在用電梯自動控制系統(tǒng)中的應(yīng)用[M]. 應(yīng)用技術(shù)出版社.2006</p>

66、<p>  [4] 唐勇奇. 電梯變頻器調(diào)速PLC控制的設(shè)計與實現(xiàn)[M]. 電機電器技術(shù)出版社.2000</p><p>  [5] 王平、崔納新. PLC在電梯控制中的應(yīng)用[J]. 微計算機信息.1999.(2)</p><p>  [6] 孫忠獻. 電機技術(shù)與應(yīng)用[M]. 福建:福建科學(xué)技術(shù)出版社.2004.3</p><p>  [7] 李景學(xué)、金

67、廣業(yè). 可編程控制器應(yīng)用系統(tǒng)設(shè)計方法[M]. 北京:電子工業(yè)出版社.1995</p><p>  [8] 徐惠鋼、郭文華. 基于PLC的電梯高精度位置控制的實現(xiàn)[J]. 微計算機信息.2007,23(5):61-63</p><p>  [9] 金晴川. 電梯與自動扶梯的技術(shù)詞典[M]. 第一版,上海:上海交通大學(xué)出版社.2005</p><p>  [10] 王玉

68、申. 通用變頻器的選擇與使用[M]. 中華紙業(yè)出版社.2001</p><p><b>  附圖</b></p><p>  #include<STC.h> </p><p>  #include<intrins.h></p><p>  #include <math.h>

69、 </p><p>  #include <stdio.h> </p><p>  #define uchar unsigned char</p><p>  #define uint unsigned int </p><p>  typedef union </p><p><b> 

70、 { uint i;</b></p><p><b>  float f;</b></p><p><b>  } value;</b></p><p>  enum {TEMP,HUMI};</p><p>  #define DATA P3_5 //溫濕度數(shù)據(jù)口</p&g

71、t;<p>  #define SCK P3_4 //溫濕度時鐘口</p><p>  #define noACK 0</p><p>  #define ACK 1</p><p>  //adr command r/w</p><p>  #define STATUS_REG_W 0x06 //000

72、 0011 0</p><p>  #define STATUS_REG_R 0x07 //000 0011 1</p><p>  #define MEASURE_TEMP 0x03 //000 0001 1</p><p>  #define MEASURE_HUMI 0x05 //000 0010 1</p

73、><p>  #define RESET 0x1e //000 1111 0</p><p>  /*==========================================*/</p><p>  sbit CLK=P2^0;//移位時鐘脈沖SH</p><p>  sbit R1=P2^1;//輸出鎖存

74、器控制脈沖ST</p><p>  sbit DAT=P2^2;//串行數(shù)據(jù)輸入DS</p><p>  sbit A8=P1^3;</p><p>  sbit A9=P1^4;</p><p>  sbit PR=P1^5;</p><p>  sbit PD=P1^6;</p><p> 

75、 sbit CE=P1^7;</p><p>  sbit IR_RE = P3^2; //紅外解碼判斷標志位,為0則為有效信號,為1則為無效</p><p>  uchar date[4]={0,0,0,0}; //date數(shù)組為存放地址原碼,反碼,數(shù)據(jù)原碼,反碼 </p><p>  uchar hour_date,minute

76、_data,lsxw;</p><p>  bithour_mark_0=0,hour_mark_1=0,hour_mark_2=0,minute_mark_0=0,minute_mark_1=0,minute_mark_2=0;</p><p><b>  uchar i;</b></p><p>  uchar code song[10]

77、={0x05,0x0a,0x15,0x1e,0x29,0x30,0x38,0x40,0x48,0x4f}; /*0,1,2,3,4,5,6,7,8,9,10,點,分,*/</p><p>  uchar data speak_data[8]={0x00,0x58,0x00,0x5e,0x00,0x58,0x00,0x67}; </p><p>  /*===================

78、========================*/</p><p>  sbit E_CLK =P1^1; //clock input 同步時鐘輸入端 </p><p>  sbit RW_SID=P1^0; //data input/output串行數(shù)據(jù)輸入、輸出端 </p><p>  sbit T_

79、IO=P2^5; /* 實時時鐘的數(shù)據(jù)線*/</p><p>  sbit T_CLK=P2^6; /* 實時時鐘的時鐘線引腳*/</p><p>  sbit T_RST=P2^7; /* 實時時鐘的復(fù)位線引腳*/</p><p>  unsigned char timer_5ms=0,timer_1s=0;

80、 /* +1 in T0_INT() 供秒計時用 */</p><p>  bit fig_1s; /* 1 =1秒時間到 標志 */</p><p>  unsigned char delay1_s=0; /* 軟秒計器1(延時器) */</p><p>  unsigned char delay

81、2_s=0; /* 軟秒計器2(延時器) */</p><p>  unsigned char delay3_s=0; /* 軟秒計器3(延時器) */</p><p>  unsigned char delay4_s=0; /* 軟秒計器4(延時器) */</p><p>  unsigned int delay2500_

82、s=0; /* 軟秒計器5(延時器) */</p><p>  unsigned int delay3000_s=0; /* 軟秒計器6(延時器) */</p><p>  unsigned int delay6500_s=0; /* 軟秒計器7(延時器) */</p><p>  unsigned char i_p=0,p

83、fw=0; /* 軟秒計器1(延時器) */</p><p>  bit pfw_1=1,delay2500_s_s=0,delay3000_s_s=0,delay6500_s_s=0,bed_neb=0,nao=0;</p><p>  uint ucCur[7]={0x00,0x00,0x00,0x00,0x00,0x01,0x00}; //時間寄存器暫放</p&g

84、t;<p>  uchar code SEG[10]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39};//0 1 2 3 4 5 6 7 8 9</p><p>  uchar code week[14]={0xbb,0xd2,0xfe,0xb6,0xfd,0xc8,0xc4,0xcb,0xe5,0xce,0xf9,0xc1,0xd5,0xc

85、8}; //一 二 三 四 五 六 七 八</p><p>  uchar data ucCurtime[7]={0x00,0x00,0x00,0x00,0x00,0x01,0x00}; // 秒 分 時 日 月 星期 年</p><p>  uchar data alarm_clock[7]={0x00,0x00,0x00,0x00,0x00,0x01,0x00};//鬧鐘寄存器暫放

86、</p><p>  uchar data hold[8]; //顯示暫存</p><p>  uchar a_1=100,b_1=100,c_1=100,d_1=100,e_1=100,f_1=100,g_1=100,h_1=100,i_1=100;</p><p>  /*------------------------

87、--延時1ms程子程序-----------------------*/</p><p>  delay1000() </p><p><b>  {</b></p><p>  unsigned char i,j;</p><p><b>  i=11;</b></p

88、><p><b>  do{</b></p><p><b>  j=0;</b></p><p><b>  do{j--;}</b></p><p><b>  while(j);</b></p><p><b>  i-

89、-;</b></p><p>  }while(i);</p><p><b>  }</b></p><p>  /*---------------------------延時882us子程序-----------------------*/</p><p>  delay882()</p>

90、<p><b>  {</b></p><p>  uchar i,j;</p><p><b>  i=9;</b></p><p><b>  do{j=250;</b></p><p><b>  do{j--;}</b></p>

91、;<p><b>  while(j);</b></p><p><b>  i--;</b></p><p>  }while(i);</p><p><b>  }</b></p><p>  /*--------------------------延時240

92、0us程子程序-----------------------*/</p><p>  delay2400() </p><p><b>  {</b></p><p>  unsigned char i,j;</p><p><b&g

93、t;  i=26;</b></p><p><b>  do{j=250;</b></p><p><b>  do{j--;}</b></p><p><b>  while(j);</b></p><p><b>  i--;</b><

94、;/p><p>  }while(i);</p><p><b>  }</b></p><p>  /*==========================================*/</p><p>  void delay(uint u)</p><p><b>  {<

95、/b></p><p><b>  uint i,j;</b></p><p>  for(i=0;i<u;i++)</p><p><b>  {</b></p><p>  for(j=0;j<121;j++)</p><p><b>  {;

96、}</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  /*==================SHT11溫濕度檢測======================*/</p><p>  char s_write_byte(u

97、char value)</p><p><b>  { </b></p><p>  uchar i, error=0; </p><p>  for (i=0x80;i>0;i/=2) //shift bit for masking</p><p>  { if (i & val

98、ue) DATA=1; //masking value with i , write to SENSI-BUS</p><p>  else DATA=0; </p><p>  SCK=1; //clk for SENSI-BUS</p><p>  

99、delay(2); //pulswith approx. 5 us </p><p><b>  SCK=0;</b></p><p><b>  delay(2);</b></p><p><b>  }</b></p><p>

100、  DATA=1; //release DATA-line</p><p><b>  delay(2);</b></p><p>  SCK=1; //clk #9 for ack </p><p><b>  dela

101、y(2);</b></p><p>  error=DATA; //check ack (DATA will be pulled down by SHT11)</p><p><b>  delay(2);</b></p><p><b>  SCK=0; </b>&l

102、t;/p><p><b>  delay(1);</b></p><p>  return error; //error=1 in case of no acknowledge</p><p><b>  }</b></p><p>  //-----------

103、-----------------------------------------------------------------------</p><p>  char s_read_byte(unsigned char ack) </p><p><b>  { </b></p><p>  unsigned char i,val=0;&

104、lt;/p><p>  DATA=1; //release DATA-line</p><p>  for (i=0x80;i>0;i/=2) //shift bit for masking</p><p>  { SCK=1; //clk

105、 for SENSI-BUS</p><p>  if (DATA) val=(val | i); //read bit </p><p>  SCK=0; </p><p><b>  }</b></p><p>  DATA=!ack; //

106、in case of "ack==1" pull down DATA-Line</p><p>  SCK=1; //clk #9 for ack</p><p>  delay(2); //pulswith approx. 5 us </p><p

107、><b>  SCK=0;</b></p><p>  delay(2); </p><p>  DATA=1; //release DATA-line</p><p>  return val;</p><p><b>  }<

108、/b></p><p>  //----------------------------------------------------------------------------------</p><p>  void s_transstart(void)</p><p>  //------------------------------------

109、----------------------------------------------</p><p>  // generates a transmission start </p><p>  // _____ ________</p><p>  // DATA: |_______|</p><p

110、>  // ___ ___</p><p>  // SCK : ___| |___| |______</p><p><b>  { </b></p><p><b>  DATA=1; </b></p><p>  SCK=0;

111、 //Initial state</p><p><b>  delay(1);</b></p><p><b>  SCK=1;</b></p><p><b>  delay(1);</b></p><p><b>  DATA=0;</b>

112、;</p><p><b>  delay(1);</b></p><p><b>  SCK=0; </b></p><p><b>  delay(2);</b></p><p><b>  SCK=1;</b></p><p&g

113、t;<b>  delay(1);</b></p><p>  DATA=1; </p><p><b>  delay(1);</b></p><p><b>  SCK=0;</b></p><p>  delay(1); </p><p&

114、gt;<b>  }</b></p><p>  //----------------------------------------------------------------------------------</p><p>  void s_connectionreset(void)</p><p>  //------------

115、----------------------------------------------------------------------</p><p>  // communication reset: DATA-line=1 and at least 9 SCK cycles followed by transstart</p><p>  // ___________

116、__________________________________________ ________</p><p>  // DATA: |_______|</p><p>  // _ _ _ _ _ _ _

117、 _ _ ___ ___</p><p>  // SCK : __| |__| |__| |__| |__| |__| |__| |__| |__| |______| |___| |______</p><p><b>  { </b></p><p>  unsigned char i; </

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論