版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(jì)(論文)</b></p><p><b> 目 錄</b></p><p><b> 引言2</b></p><p><b> 1.緒論4</b></p><p> 1.1 本設(shè)計(jì)的背景4</p&
2、gt;<p> 1.2 本設(shè)計(jì)的內(nèi)容4</p><p> 1.3 本設(shè)計(jì)的目的和意義4</p><p> 2.系統(tǒng)控制方案的確定4</p><p> 2.1 系統(tǒng)設(shè)計(jì)的基本步驟5</p><p> 2.2 系統(tǒng)控制方案5</p><p> 2.3 系統(tǒng)控制流程圖6</
3、p><p> 3.系統(tǒng)硬件設(shè)計(jì)7</p><p> 3.1 微控制器(單片機(jī))的選型7</p><p> 3.2 時(shí)鐘芯片的選型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è)計(jì)12</p><p> 4.1 單片機(jī)C語言的概述12</p><p> 4.2 系統(tǒng)工作過程分析12</p><p> 4.3 控制系統(tǒng)程序
5、設(shè)計(jì)13</p><p><b> 5.結(jié)論15</b></p><p><b> 致謝16</b></p><p><b> 參考文獻(xiàn)16</b></p><p><b> 附圖17</b></p><p>&l
6、t;b> 引言</b></p><p> 單片機(jī)是指一個(gè)集成在一塊芯片上的完整計(jì)算機(jī)系統(tǒng)。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個(gè)完整計(jì)算機(jī)所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會(huì)具有外存。同時(shí)集成諸如通訊接口、定時(shí)器,實(shí)時(shí)時(shí)鐘等外圍設(shè)備。而現(xiàn)在最強(qiáng)大的單片機(jī)系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡(luò)、復(fù)雜的輸入輸出系統(tǒng)集成在一塊芯片上。。它是一種在線式實(shí)時(shí)控制計(jì)
7、算機(jī),有較強(qiáng)的抗干擾能力,成本較低。</p><p> 單片機(jī)廣泛應(yīng)用于儀器儀表、家用電器、醫(yī)用設(shè)備、航空航天、專用設(shè)備的智能化管理及過程控制等領(lǐng)域,大致可分如下幾個(gè)范疇:</p><p> 1.在智能儀器儀表上的應(yīng)用</p><p> 單片機(jī)具有體積小、功耗低、控制功能強(qiáng)、擴(kuò)展靈活、微型化和使用方便等優(yōu)點(diǎn),廣泛應(yīng)用于儀器儀表中,結(jié)合不同類型的傳感器,可實(shí)現(xiàn)諸
8、如電壓、功率、頻率、濕度、溫度、流量、速度、厚度、角度、長度、硬度、元素、壓力等物理量的測量。采用單片機(jī)控制使得儀器儀表數(shù)字化、智能化、微型化,且功能比起采用電子或數(shù)字電路更加強(qiáng)大。例如精密的測量設(shè)備(功率表,示波器,各種分析儀)。</p><p> 2.在工業(yè)控制中的應(yīng)用</p><p> 用單片機(jī)可以構(gòu)成形式多樣的控制系統(tǒng)、數(shù)據(jù)采集系統(tǒng)。例如工廠流水線的智能化管理,電梯智能化控制、
9、各種報(bào)警系統(tǒng),與計(jì)算機(jī)聯(lián)網(wǎng)構(gòu)成二級控制系統(tǒng)等。</p><p> 3.在家用電器中的應(yīng)用</p><p> 可以這樣說,現(xiàn)在的家用電器基本上都采用了單片機(jī)控制,從電飯褒、洗衣機(jī)、電冰箱、空調(diào)機(jī)、其他音響視頻器材、再到電子秤量設(shè)備,五花八門,無所不在。</p><p> 4.在計(jì)算機(jī)網(wǎng)絡(luò)和通信領(lǐng)域中的應(yīng)用</p><p> 現(xiàn)代的單片機(jī)
10、普遍具備通信接口,可以很方便地與計(jì)算機(jī)進(jìn)行數(shù)據(jù)通信,為在計(jì)算機(jī)網(wǎng)絡(luò)和通信設(shè)備間的應(yīng)用提供了極好的物質(zhì)條件,現(xiàn)在的通信設(shè)備基本上都實(shí)現(xiàn)了單片機(jī)智能控制,從手機(jī),電話機(jī)、小型程控交換機(jī)、樓宇自動(dòng)通信呼叫系統(tǒng)、列車無線通信、再到日常工作中隨處可見的移動(dòng)電話,集群移動(dòng)通信,無線電對講機(jī)等。</p><p> 5.單片機(jī)在醫(yī)用設(shè)備領(lǐng)域中的應(yīng)用</p><p> 單片機(jī)在醫(yī)用設(shè)備中的用途亦相當(dāng)廣泛
11、,例如醫(yī)用呼吸機(jī),各種分析儀,監(jiān)護(hù)儀,超聲診斷設(shè)備及病床呼叫系統(tǒng)等等。</p><p> 6.在各種大型電器中的模塊化應(yīng)用</p><p> 某些專用單片機(jī)設(shè)計(jì)用于實(shí)現(xiàn)特定功能,從而在各種電路中進(jìn)行模塊化應(yīng)用,而不要求使用人員了解其內(nèi)部結(jié)構(gòu)。如音樂集成單片機(jī),看似簡單的功能,微縮在純電子芯片中(有別于磁帶機(jī)的原理),就需要復(fù)雜的類似于計(jì)算機(jī)的原理。</p><p&g
12、t; 此外,單片機(jī)在工商,金融,科研、教育,國防航空航天等領(lǐng)域都有著十分廣泛的用途。</p><p><b> 1.緒論</b></p><p> 1.1 本設(shè)計(jì)的背景</p><p> 現(xiàn)階段國內(nèi)外對于時(shí)鐘的研究主要表現(xiàn)在:個(gè)性、便捷等功能上。時(shí)鐘產(chǎn)品多以這幾類為主:指針式時(shí)鐘、數(shù)碼管顯示時(shí)鐘、點(diǎn)陣時(shí)鐘,液晶顯示時(shí)鐘。由于現(xiàn)在的時(shí)鐘多
13、采用電子線路,因此在時(shí)間的精確度上有很大的提高,并且隨著微電子技術(shù)的迅猛發(fā)展,無論是時(shí)鐘的外型還是內(nèi)部線路都有很大的改進(jìn)。比如現(xiàn)在的時(shí)鐘很多都非常有個(gè)性,如:概念時(shí)鐘,時(shí)鐘的外觀做的卡通化,所以它們很受年輕人的喜歡。</p><p> 有一種新型時(shí)鐘能產(chǎn)生多點(diǎn)信號,它是在時(shí)鐘上加裝集成電路為基礎(chǔ)的中央控制電路再分別與鍵盤控制器,語音錄放器和液晶顯示器聯(lián)接組裝而成,是一種全新穎的多段提醒點(diǎn)智能鬧鐘,使用者可以多次
14、設(shè)定響鬧時(shí)間,并提前錄好該時(shí)間要做的事,到指定時(shí)間就會(huì)分別按時(shí)用語音提醒并在液晶顯示器上作出指示。</p><p> 還有一種新型時(shí)鐘它的作用是“在最佳被喚醒的時(shí)候”叫醒,也就是最淺睡眠狀態(tài)下叫醒。與鬧鐘配套的有個(gè)類似護(hù)腕的傳感器,使用者只需將其佩戴在手腕處便能監(jiān)測使用者的身體活動(dòng)狀態(tài),還可以通過測試使用者在睡眠時(shí)有多少次翻身來判定熟睡程度,最后傳感器將信息通過無線方式發(fā)送給鬧鐘,由鬧鐘來計(jì)算出叫醒使用者的最佳
15、時(shí)間。</p><p> 鑒于現(xiàn)在的時(shí)鐘趨向個(gè)性,方便、多功能的特點(diǎn),本設(shè)計(jì)將集技術(shù)和創(chuàng)新于一體,賦予數(shù)字時(shí)鐘的一個(gè)全新的概念。</p><p> 1.2 本設(shè)計(jì)的內(nèi)容</p><p> 運(yùn)用SM311無線模塊組建一個(gè)無線網(wǎng)絡(luò)與各個(gè)時(shí)鐘終端進(jìn)行通訊。</p><p> 應(yīng)用時(shí)鐘芯片、溫濕度芯片,采集其數(shù)據(jù)通過時(shí)鐘顯示器進(jìn)行顯示。&l
16、t;/p><p> 應(yīng)用語音芯片來進(jìn)行語音報(bào)時(shí),增加項(xiàng)目的趣味性。</p><p> 通過紅外可以對各個(gè)時(shí)鐘終端分別進(jìn)行時(shí)間、鬧鐘的設(shè)定,并可實(shí)時(shí)修改時(shí)間、鬧鐘時(shí)間等參數(shù)設(shè)置。</p><p> 1.3 本設(shè)計(jì)的目的和意義</p><p> 時(shí)鐘是顯示時(shí)間一種器件。它的應(yīng)用遍及我們周圍的每一個(gè)角落,應(yīng)用非常廣泛?,F(xiàn)階段家庭廣泛應(yīng)用的時(shí)鐘大
17、多只具有時(shí)間顯示功能,無法顯示日歷、無法定時(shí)、也不具有溫濕度顯示等功能。由于數(shù)字時(shí)鐘采用石英晶體起振,各晶振間由于存在誤差而導(dǎo)致了時(shí)間差的累積,所以即使同樣的數(shù)字時(shí)鐘,經(jīng)過一段時(shí)間后顯示的時(shí)間也不相同。</p><p> 由于現(xiàn)在大多數(shù)時(shí)鐘存在著這么多的缺點(diǎn),所以本設(shè)計(jì)就比較有意義,本設(shè)計(jì)的重點(diǎn)是無線網(wǎng)絡(luò)在數(shù)字時(shí)鐘中的具體應(yīng)用。通過時(shí)鐘間的無線通訊可以對家庭或辦公室所在的任一個(gè)時(shí)鐘進(jìn)行時(shí)間、日期、溫度等傳輸并校
18、正。</p><p> 2.系統(tǒng)控制方案的確定</p><p> 2.1 系統(tǒng)設(shè)計(jì)的基本結(jié)構(gòu)</p><p> 本設(shè)計(jì)主要由顯示模塊、時(shí)鐘模塊、溫濕度檢測模塊、無線通訊模塊、紅外控制模塊、語音模塊、鬧鈴模塊。</p><p> 總體框架圖如圖2.1所示:</p><p> 圖2.1 總體框架圖</p&
19、gt;<p> 2.2 系統(tǒng)控制方案</p><p> 無線網(wǎng)絡(luò)時(shí)鐘系統(tǒng)的控制要求如下:</p><p> ?。?)初始時(shí)間、鬧鐘時(shí)間的輸入:</p><p> 在打開電源,系統(tǒng)初始化開始后,就要對系統(tǒng)進(jìn)行一些基本參數(shù)的設(shè)定。如初始時(shí)間(即現(xiàn)在的時(shí)間)、鬧鐘的時(shí)間。</p><p> ?。?)采集溫濕度數(shù)據(jù)并處理:<
20、;/p><p> 在設(shè)定好參數(shù)后,系統(tǒng)會(huì)定時(shí)采集溫濕度的數(shù)據(jù),并對數(shù)據(jù)進(jìn)行處理,轉(zhuǎn)化成溫濕度數(shù)值,放入指定的地址中。為后面的顯示做好準(zhǔn)備。</p><p> ?。?)通過無線模塊傳輸數(shù)據(jù):</p><p> 控制器(單片機(jī))會(huì)定時(shí)通過無線模塊把時(shí)間數(shù)據(jù),溫濕度數(shù)據(jù)傳送給其它時(shí)鐘。</p><p><b> (4)在線修改時(shí)間<
21、;/b></p><p> 因?yàn)槿魏螘r(shí)鐘通過一段時(shí)間的運(yùn)行后肯定會(huì)出現(xiàn)誤差,所以該系統(tǒng)有在線修改時(shí)間程序。可通過紅外遙控對時(shí)間和鬧鐘時(shí)間進(jìn)行在線修改。</p><p><b> (5)語音報(bào)時(shí)</b></p><p> 為了使時(shí)鐘更人性化,該系統(tǒng)還設(shè)計(jì)了語音報(bào)時(shí)程序。用戶可以通過紅外遙控器,對現(xiàn)在的時(shí)間進(jìn)行報(bào)時(shí)。</p>
22、<p><b> ?。?)鬧鈴</b></p><p> 通過初始設(shè)定或在線設(shè)定好鬧鐘時(shí)間后,當(dāng)?shù)竭_(dá)該時(shí)間,蜂鳴器會(huì)出現(xiàn)鬧鈴響聲。</p><p> 2.3 系統(tǒng)控制流程圖</p><p><b> 3.系統(tǒng)硬件設(shè)計(jì)</b></p><p> 3.1 微控制器(單片機(jī))的選型
23、</p><p> 全世界的單片機(jī)品種繁多,有ATMEL公司的AVR單片機(jī)、Motorola單片機(jī)、MicroChip單片機(jī)、MDT20XX系列單片機(jī)、EM78系列OTP型單片機(jī)、Scenix單片機(jī)、EPSON單片機(jī)、東芝單片機(jī)、8051單片機(jī)、LG公司生產(chǎn)的GMS90系列單片機(jī)、華邦單片機(jī)、Zilog單片機(jī)、NS單片機(jī)等等。</p><p> 我選用的是由宏晶科技生產(chǎn)的STC12C5
24、410AD單片機(jī)。因?yàn)樵搯纹瑱C(jī)較以往的單片機(jī)提高了工作效率,使系統(tǒng)的可靠性、抗干擾能力得到了顯著改善,而且進(jìn)一步小型化和便攜化。其內(nèi)部集成的Flash幾乎擁有現(xiàn)代追求個(gè)性化的用戶所需要的掉電后數(shù)據(jù)不丟失、快速的數(shù)據(jù)存取時(shí)間、電可擦除、容量大、在線可編程、足夠多的擦寫次數(shù)、價(jià)格低廉和高可靠性等所有優(yōu)點(diǎn)。圖3.1為該單片機(jī)的管腳引腳圖。</p><p> 圖3.1 STC12C5410AD引腳圖</p>
25、<p> STC12C5410AD單片機(jī)具有以下特點(diǎn):</p><p> (1) Flash存儲(chǔ)器</p><p> STC12C5410AD Flash存儲(chǔ)器為10KB。 Flash存儲(chǔ)器主要用作程序存儲(chǔ),可經(jīng)計(jì)算機(jī)串口接口下載程序;程序運(yùn)行時(shí)能對其中的1段或多段進(jìn)行擦、寫操作,因此兼有數(shù)據(jù)存儲(chǔ)器功能。Flash存儲(chǔ)器的掉電保護(hù)功能可用十程序數(shù)據(jù)保存,可以按字或字節(jié)讀
26、寫,最小擦除單位為1段,經(jīng)過擦除的位為“1",寫入位為“0"。</p><p> (2)脈寬調(diào)節(jié)模式(PWM)</p><p> 所有PCA模塊都可用作PMW輸出。輸出頻率取決于PCA定時(shí)器的時(shí)鐘源。由十所有模塊共用僅有的PCA定時(shí)器,所有它們的輸出頻率相同。各個(gè)模塊的輸出占空比是獨(dú)立變化的,與使用的捕獲寄存器{EPCnL,CCAPnL}有關(guān)。當(dāng)CL SFR的值小十
27、{EPCnL, CCAPnL}時(shí),輸出為低,當(dāng)PCA CL SFR的值等于或大于{EPCnL, CCAPnL}時(shí),輸出為高。當(dāng)CL的值由FF變?yōu)?0溢出時(shí),{EPCnH, CCAPnH}的內(nèi)容裝載到{EPCnL,CCAPnL}中。這樣就可實(shí)現(xiàn)無干擾地更新PWM。要使能PWM模式,模塊CCAPMn寄存器的PWMn不II ECOMn位必須置位。</p><p> (3) I/O口工作類型設(shè)置</p>
28、<p> STC12C5410AD帶有24個(gè)I/O引腳,它的I/O與傳統(tǒng)的I/O不同,每個(gè)I/O口均可由軟件設(shè)置成4種工作類型之一,使得功能口和通用I/O口復(fù)用。4種類型分別為:準(zhǔn)雙向口(標(biāo)準(zhǔn)8051輸出模式)、推挽輸出、僅為輸入(高阻)和開漏輸出功能。在對同一個(gè)I/O口進(jìn)行操作前要選擇其要實(shí)現(xiàn)的功能,這樣大大地增強(qiáng)了端口的功能和靈活性。其中一些I/O口還可以與STC12C5410AD中的特殊模塊相結(jié)合完成更為復(fù)雜的工作
29、。如與捕獲比較模塊相結(jié)合可以實(shí)現(xiàn)串行通信,與A/D模塊結(jié)合實(shí)現(xiàn)A/D轉(zhuǎn)換等。此外,STC12C5410AD的I/O端口電氣特性也十分突出,幾乎所有的I/O口都有20mA的驅(qū)動(dòng)能力,對于一般的液晶顯示屏、蜂鳴器可以直接驅(qū)動(dòng)而無需輔助電路。許多端口內(nèi)部都集成了上拉電阻,可以方便地與外圍器件相接。</p><p> (4) A/D模數(shù)轉(zhuǎn)換寄存器</p><p> STC12C5410AD單片
30、機(jī)的A。轉(zhuǎn)換口在P1口(P1.7~P1.0),有8路10位高速A/D轉(zhuǎn)換器,STC12C5410AD系列是10位精度的A/D,速度均可達(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口可以靈活的運(yùn)用,節(jié)省了軟件及
31、時(shí)間。</p><p> (5)有配套的仿真開發(fā)工具</p><p> STC12C5410AD的Flash存儲(chǔ)器給用戶的開發(fā)帶來方便。用戶可以將芯片焊接在線路板上后進(jìn)行下載程序、調(diào)試程序和修改程序。同時(shí),STC12C5410AD的片內(nèi)已集成了程序斷點(diǎn)控制等邏輯功能。因此,它的開發(fā)工具較為簡單,只需1套PC環(huán)境下的調(diào)試軟件和1個(gè)連接十并口的仿真器。仿真器與STC12C5410AD經(jīng)串口
32、連接。因此,用戶只要在設(shè)計(jì)應(yīng)用系統(tǒng)時(shí)為調(diào)試需要預(yù)留好STC12C5410AD的串口接口的引出插座,即可實(shí)現(xiàn)系統(tǒng)的程序下載調(diào)試、系統(tǒng)現(xiàn)場編程硬件仿真或軟件升級功能,而且無需外加編程電壓。</p><p> 3.2 時(shí)鐘芯片的選型</p><p> 我采用的是DALLAS 公司推出的DS1302。該芯片是涓流充電時(shí)鐘芯片,內(nèi)含有一個(gè)實(shí)時(shí)時(shí)鐘/日歷和31 字節(jié)靜態(tài)RAM ,通過簡單的串行接
33、口與單片機(jī)進(jìn)行通信。實(shí)時(shí)時(shí)鐘/日歷電路提供秒、分、時(shí)、日、日期、月、年的信息。每月的天數(shù)和閏年的天數(shù)可自動(dòng)調(diào)整,時(shí)鐘操作可通過AM/PM 指示決定采用24 或12 小時(shí)格式。DS1302 與單片機(jī)之間能簡單地采用同步串行的方式進(jìn)行通信,僅需用到三個(gè)口線:(1)RES( 復(fù)位);(2)I/O 數(shù)據(jù)線;(3)SCLK。</p><p> 串行時(shí)鐘時(shí)鐘/RAM 的讀/寫數(shù)據(jù)以一個(gè)字節(jié)或多達(dá)31 個(gè)字節(jié)的字符組方式通信
34、。DS1302 工作時(shí)功耗很低,保持?jǐn)?shù)據(jù)和時(shí)鐘信息時(shí)功率小于1mW。DS1302 是由DS1202 改進(jìn)而來,增加了以下的特性:雙電源管腳用于主電源和備份電源供應(yīng),Vcc1 為可編程涓流充電電源,附加七個(gè)字節(jié)存儲(chǔ)器。它廣泛應(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總線接口的單片全校準(zhǔn)數(shù)字式相對濕度和溫度傳感器。該傳感器采用獨(dú)特的CMOSens TM技術(shù),具有數(shù)字式輸出、免調(diào)試、免標(biāo)定、免外圍電路及全互換的特點(diǎn)。傳統(tǒng)的模擬式濕度傳感器一般都要設(shè)計(jì)信號調(diào)理電路并需要經(jīng)過復(fù)雜的校準(zhǔn)和標(biāo)定過程,因此測量精度難
36、以保證,且在線性度、重復(fù)性、互換性、一致性等方面往往不盡人意。SHT11是基于CMOSensTM技術(shù)的新型溫濕度傳感器。該傳感器將CMOS芯片技術(shù)與傳感器技術(shù)結(jié)合起來,從而發(fā)揮出它們強(qiáng)大的優(yōu)勢互補(bǔ)作用。如圖3.4為它的實(shí)物圖。</p><p> 該芯片能將溫度感測、濕度感測、信號變換、A/D轉(zhuǎn)換和加熱器等功能集成到一個(gè)芯片上,其內(nèi)部結(jié)構(gòu)如圖3.5所示。該芯片包括一個(gè)電容性聚合體濕度敏感元件和一個(gè)用能隙材料制成的
37、溫度敏感元件。這兩個(gè)敏感元件分別將濕度和溫度轉(zhuǎn)換成電信號,該電信號首先進(jìn)入微弱信號放大器進(jìn)行放大;然后進(jìn)入一個(gè)14位的A/D轉(zhuǎn)換器;最后經(jīng)過二線串行數(shù)字接口輸出數(shù)字信號。SHT11在出廠前,都會(huì)在恒濕或恒溫環(huán)境巾進(jìn)行校準(zhǔn),校準(zhǔn)系數(shù)存儲(chǔ)在校準(zhǔn)寄存器中;在測量過程中,校準(zhǔn)系數(shù)會(huì)自動(dòng)校準(zhǔn)來自傳感器的信號。此外,SHT11內(nèi)部還集成了一個(gè)加熱元件,加熱元件接通后可以將SHT11的溫度升高5℃左右,同時(shí)功耗也會(huì)有所增加。此功能主要為了比較加熱前后
38、的溫度和濕度值,可以綜合驗(yàn)證兩個(gè)傳感器元件的性能。在高濕(>95%RH)環(huán)境中,加熱傳感器可預(yù)防傳感器結(jié)露,同時(shí)縮短響應(yīng)時(shí)間,提高精度。加熱后SHT11溫度升高、相對濕度降低,較加熱前,測量值會(huì)略有差異。圖3。6為它的原理圖。</p><p> 圖3.4 SHT11實(shí)物圖</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位單片機(jī),也內(nèi)置多種高糾錯(cuò)信道編碼通信技術(shù),用戶使用時(shí),無需任何編碼,具有更高的抗干擾性強(qiáng),通信穩(wěn)定的特點(diǎn)。圖3.7為它的實(shí)物圖。</p>
40、<p> 采用高效前向糾錯(cuò)信道編碼技術(shù),提高了數(shù)據(jù)抗突發(fā)干擾和隨機(jī)干擾能力;采用透明的數(shù)據(jù)傳輸,提供透明的數(shù)據(jù)接口,能適應(yīng)任何標(biāo)準(zhǔn)或非標(biāo)準(zhǔn)的用戶協(xié)議;自動(dòng)過濾掉空中產(chǎn)生的噪音號及假數(shù)據(jù),使用方便,采用 雙串口,同時(shí)提供TTL/RS-232/RS-485共3種接口方式,大的數(shù)據(jù)緩沖區(qū),接口波特率為1200~115200Bit/s,格式為8N1/8E1用戶可自定義,可1次傳輸無限長度的數(shù)據(jù),用戶可靈活編程設(shè)置??蓮V泛用于各種場合
41、的短距離無線通信領(lǐng)域。</p><p> 圖3.7 SM31無線模塊實(shí)物圖</p><p> 3.5 語音芯片的選型</p><p> ISD2560是ISD系列單片語音錄放集成電路的一種。這是一種永久記憶型語音錄放電路,錄音時(shí)間為60s,可重復(fù)錄放10萬次。該芯片采用多電平直接模擬量存儲(chǔ)專利技術(shù),每個(gè)采樣值可直接存儲(chǔ)在片內(nèi)單個(gè)EEPROM單元中,因此能夠非
42、常真實(shí)、自然地再現(xiàn)語音、音樂、音調(diào)和效果聲,從而避免了一般固體錄音電路因量化和壓縮造成的量化噪聲和“金屬聲”。該器件的采樣頻率為8.0kHz,同一系列的產(chǎn)品采樣頻率越低錄放時(shí)間越長,但通頻帶和音質(zhì)會(huì)有所降低。原理圖如圖3.8。此外,ISD2560還省去了A/D和D/A轉(zhuǎn)換器。其集成度較高,內(nèi)部包括前置放大器、內(nèi)部時(shí)鐘、定時(shí)器、采樣時(shí)鐘、濾波器、自動(dòng)增益控制、邏輯控制、模擬收發(fā)器、解碼器和480k字節(jié)的EEPROM。SD2560內(nèi)部EEP
43、ROM存儲(chǔ)單元均勻分為600行,有600個(gè)地址單元,每個(gè)地址單元指向其中一行,每一個(gè)地址單元的地址分辨率為100ms。此外,ISD2560還具備微控制器所需的控制接口。通過操縱地址和控制線可完成不同的任務(wù),以實(shí)現(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)部含有國標(biāo)一級、二級簡體中文字庫的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個(gè)16*16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示8×4行16×1
45、6點(diǎn)陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。實(shí)物圖如圖3.9,圖3.10為它的原理圖。</p><p> 圖3.9 128X64實(shí)物圖</p><p> 圖3.10 128X64原理圖</p><p
46、> 3.7 紅外遙控器的選型</p><p> 紅外控制模塊是由紅外發(fā)射器與紅外接收器組成。紅外控制模塊在設(shè)計(jì)中所起的作用是輸入和在線修改時(shí)間、鬧鐘的數(shù)據(jù)??稍诰€開啟觀看鬧鐘時(shí)間,可開啟和關(guān)閉時(shí)鐘報(bào)時(shí)功能,可關(guān)閉鬧鐘等功能。實(shí)物圖如圖3.12。</p><p> 圖 3.12 紅外遙控器實(shí)物圖</p><p> 紅外遙控器使用方便,功能多.目前已廣泛
47、應(yīng)用在電視機(jī)、VCD、DVD、空調(diào)等各種家用電器中,且價(jià)格便宜,市場上非常容易買到。而且紅外遙控器發(fā)出的是紅外線不受陽光的干擾,所以選擇紅外遙控器。</p><p><b> 4.系統(tǒng)軟件設(shè)計(jì)</b></p><p> 4.1 單片機(jī)C語言的概述</p><p> c語言是很好用的結(jié)構(gòu)化語言,80年代后,c語言開始在單片機(jī)上運(yùn)用。過去長
48、期困擾人們的所謂“高級語言產(chǎn)生代碼太長,運(yùn)行速度太慢,運(yùn)行效率不高,所以不適合單片機(jī)使用。</p><p> 所以單片機(jī)c語言集成開發(fā)環(huán)境成功的解決了這個(gè)難題,使得單片機(jī)c語言的效率大大的提高,而且在關(guān)鍵部位還能嵌入?yún)R編語言代碼,從而挖掘程序的最高潛力。目前,8051上的C語言的代碼長度,已經(jīng)做到了匯編水平的1.2~1.5倍。4K字節(jié)以上的程度,C語言的優(yōu)勢更能得到發(fā)揮。至于運(yùn)行速度的問題,只要有好的仿真器,找
49、出關(guān)鍵的代碼,再進(jìn)一步做一下人工優(yōu)化,就可很容易達(dá)到美滿。單片機(jī)c語言是高效的單片機(jī)開發(fā)語言。</p><p> 4.2 系統(tǒng)工作過程分析</p><p><b> 1.初始化</b></p><p> 2.進(jìn)入初始化參數(shù)設(shè)定界面,輸入初始時(shí)間、鬧鐘時(shí)間。</p><p> 3.設(shè)定參數(shù)后,按開始鍵進(jìn)入時(shí)鐘界面
50、(系統(tǒng)開始全面運(yùn)行)。</p><p> 4.控制器(單片機(jī))定時(shí)向溫濕度模塊讀取數(shù)據(jù),并進(jìn)行數(shù)據(jù)處理。</p><p> 5.控制器(單片機(jī))定時(shí)到時(shí)鐘芯片(IS1302)讀取時(shí)間。</p><p> 6.在得到溫濕度、時(shí)間數(shù)據(jù)之后,控制器(單片機(jī))把時(shí)間,溫濕度顯示在液晶顯示屏上。</p><p> 7.控制器(單片機(jī))定時(shí)把溫濕
51、度數(shù)據(jù),時(shí)間數(shù)據(jù)通過無線模塊傳送給其它時(shí)鐘。</p><p> 8.控制器(單片機(jī))檢查鬧鈴標(biāo)志位。如果是執(zhí)行鬧鈴程序,如果否跳過該程序。</p><p> 9.在外部中斷中,當(dāng)檢測到要語音報(bào)時(shí),系統(tǒng)進(jìn)入語音報(bào)時(shí)程序。執(zhí)行報(bào)時(shí)功能。</p><p> 10.在外部中斷中,當(dāng)檢測到要修改時(shí)間或修改鬧鐘時(shí)間時(shí),系統(tǒng)進(jìn)入修改界面,而且系統(tǒng)的時(shí)間程序仍在運(yùn)行,如果沒修
52、改數(shù)據(jù)或是修改數(shù)據(jù)沒保存,當(dāng)跳出修改界面后,時(shí)間將不會(huì)該變。</p><p> 4.3控制系統(tǒng)程序設(shè)計(jì)</p><p><b> 1. 顯示</b></p><p> 128×64液晶顯示屏,具有四行顯示功能,而且內(nèi)部含有國標(biāo)一級,二級簡體中文字庫的點(diǎn)陣圖形液晶顯示模;所以可以同時(shí)顯示時(shí)間、日期、溫度、濕度等內(nèi)容。在顯示方式上是
53、采用動(dòng)態(tài)的顯示方式,所以能實(shí)時(shí)顯示傳感器中的數(shù)據(jù)。</p><p> 2. SHT11溫濕度傳感器</p><p> SHT11是利用溫濕度傳感器分別產(chǎn)生相對溫度或濕度的信號,然后經(jīng)過放大,分別送至A/D轉(zhuǎn)換器進(jìn)行模/數(shù)轉(zhuǎn)換、校準(zhǔn)和糾錯(cuò),最后通過二線串行接口將相對濕度數(shù)據(jù)送至主控制器進(jìn)行處理。所以在程序開始時(shí),微處理器先用一組"啟動(dòng)傳輸"時(shí)序表示數(shù)據(jù)傳輸?shù)膯?dòng),當(dāng)S
54、CK時(shí)鐘為高電平時(shí),DATA翻轉(zhuǎn)為低電平;緊接著SCK變?yōu)榈碗娖?,隨后又變?yōu)楦唠娖剑辉赟CK時(shí)鐘為高電平時(shí),DATA再次翻轉(zhuǎn)為高電平。</p><p> 主機(jī)發(fā)出啟動(dòng)命令,隨后發(fā)出一個(gè)后續(xù)8位命令碼,該命令碼包含3個(gè)地址位(芯片設(shè)定地址為000)和5個(gè)命令位;發(fā)送完該命令碼,將DATA總線設(shè)為輸入狀態(tài)等待SHT11的響應(yīng);SHT11接收到上述地址和命令碼后,在第8個(gè)時(shí)鐘下降沿,將DATA下拉為低電平作為從機(jī)的A
55、CK;在第9個(gè)時(shí)鐘下降沿之后,從機(jī)釋放DATA(恢復(fù)高電平)總線;釋放總線后,從機(jī)開始測量當(dāng)前溫度或濕度,測量結(jié)束后,再次將DATA總線拉為低電平;主機(jī)檢測到DATA總線被拉低后,得知溫度或濕度測量已經(jīng)結(jié)束,給出SCK時(shí)鐘信號;從機(jī)在第8個(gè)時(shí)鐘下降沿,先輸出高字節(jié)數(shù)據(jù);在第9個(gè)時(shí)鐘下降沿,主機(jī)將DATA總線拉低作為ACK信號。然后釋放總線DATA;在隨后8個(gè)SCK周期下降沿,從機(jī)發(fā)出低字節(jié)數(shù)據(jù);接下來的SCK下降沿,主機(jī)再次將DATA總
56、線拉低作為接收數(shù)據(jù)的ACK信號;最后8個(gè)SCK下降沿從機(jī)發(fā)出CRC校驗(yàn)數(shù)據(jù),主機(jī)不予應(yīng)答(NACK)則表示測量結(jié)束。</p><p><b> 3. 語音</b></p><p> 語音模塊采用的是ISD2560語音芯片。ISD2560雖然提供了地址輸入線,但它的內(nèi)部信息段的地址卻無法讀出。本系統(tǒng)采用單片機(jī)來控制,不需讀出信息地址,而直接設(shè)置信息段起始地址。其實(shí)現(xiàn)
57、方式有兩種:一是由于ISD2560的地址分辨率為100 ms,所以可用單片機(jī)內(nèi)部定時(shí)器定時(shí)100 ms,然后再利用一計(jì)數(shù)器對單片機(jī)定時(shí)次數(shù)進(jìn)行計(jì)數(shù),則計(jì)數(shù)器的計(jì)數(shù)值為語音段所占用的地址單元。該方式能充分利用ISD2560內(nèi)部的E2PROM,在字段較多時(shí)可利用該方法。二是語音字段如果較少,則可根據(jù)每一字段的內(nèi)容多少,直接分配地址單元。一般按每1s說3個(gè)字計(jì)算,60 s可說180個(gè)字,再根據(jù)ISD2560的地址分辨率為100 ms,即可計(jì)算
58、出語音段所需的時(shí)間。本文采用第二種方式。</p><p> 放音時(shí),根據(jù)需播放的語音內(nèi)容,找到相應(yīng)的語音段起始地址,并通過口線送出。再將P/R端設(shè)為高電平,PD端設(shè)為低電平,并讓/CE端產(chǎn)生一負(fù)脈沖啟動(dòng)放音,這時(shí)單片機(jī)只需等待軟計(jì)時(shí)器結(jié)束,即報(bào)完這段語音所需的時(shí)間。軟計(jì)時(shí)器結(jié)束后,如果還要放音就馬上重新輸入初始地址,在重新啟動(dòng)軟計(jì)時(shí)器。如果要結(jié)束就直接輸入ISD2560的信息結(jié)束信號,即EOM的地址。 信號為一
59、負(fù)脈沖,在負(fù)脈沖的上升沿,該段語音才播放結(jié)束,所以單片機(jī)必須要檢測到/EOM的上升沿才能播放第二段,否則播放的語音就不連續(xù),而且會(huì)產(chǎn)生啪啪聲,這一點(diǎn)在編制軟件時(shí)一定要注意。</p><p><b> 4. 鬧鈴</b></p><p> 當(dāng)時(shí)間走到預(yù)定的鬧鐘時(shí)間時(shí),蜂鳴器要發(fā)出鬧鈴聲。單片機(jī)只需要把現(xiàn)在的時(shí)間跟鬧鐘設(shè)定的時(shí)間作比較,如果一樣就發(fā)出鬧鈴聲。為了能關(guān)閉
60、鬧鈴,只需在發(fā)出鬧鈴聲的條件上再加一個(gè)條件就行。而為了更人性化有兩種方法來關(guān)閉,一種是直接關(guān)閉,即把改變鬧鈴的條件;另一種是暫時(shí)關(guān)閉,在過5分種后會(huì)繼續(xù)鬧鈴。這就需要改變原始鬧鐘設(shè)定的時(shí)間,即選擇這種關(guān)閉后,程序要在原來設(shè)定的時(shí)間上再加上5分鐘,這樣5分鐘后才會(huì)繼續(xù)發(fā)出鬧鈴聲。</p><p><b> 5.紅外控制</b></p><p> 在本系統(tǒng)中紅外控制采
61、用的是中斷控制方式。控制器(單片機(jī))的外中斷接紅外接收器,當(dāng)有紅外接收到,會(huì)馬上轉(zhuǎn)到中斷程序,對紅外信息進(jìn)行解碼并執(zhí)行相應(yīng)的指令。這樣就能實(shí)時(shí)控制整個(gè)系統(tǒng)。所以當(dāng)要進(jìn)行語音報(bào)時(shí)時(shí),只要按下語音報(bào)時(shí)鍵,系統(tǒng)會(huì)馬上作出處理。就能馬上執(zhí)行語音程序了。</p><p><b> 5.結(jié)論</b></p><p> 本系統(tǒng)主要以單片機(jī)為核心,利用單片機(jī)的強(qiáng)大的控制功能,實(shí)現(xiàn)
62、了無線網(wǎng)絡(luò)的時(shí)鐘設(shè)計(jì),正真實(shí)現(xiàn)了通過時(shí)鐘間的無線通訊讓家庭或辦公場所的任一個(gè)時(shí)鐘進(jìn)行時(shí)間、日期、溫濕度等校正,還可進(jìn)行鬧鐘設(shè)定、語音定時(shí)、報(bào)警等功能。</p><p> 通過本設(shè)計(jì),我學(xué)習(xí)到了很多東西,在工作的細(xì)心上也得到了提高。并且,更了解了有關(guān)單片機(jī)的功能。我選擇這個(gè)設(shè)計(jì),也是為了彌補(bǔ)以前學(xué)習(xí)上的不足。這次設(shè)計(jì),使我了解到老師的用心良苦,并且從老師那學(xué)到了很多寶貴的東西。</p><p&
63、gt;<b> 致謝</b></p><p> 本論文是在湖州職業(yè)技術(shù)學(xué)院左希慶老師的指導(dǎo)下完成的。在做論文的過程中左希慶老師嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度和一絲不茍的工作精神給了我深刻的啟發(fā),也給了我很大的觸動(dòng)。另外,左希慶老師經(jīng)常給我講解不懂的地方,教我怎么入手,使我能盡快的完成論文。還要感謝系里其它的老師的指導(dǎo),給了我很大的幫助。在此,對老師在工作和生活中給予的指導(dǎo)和關(guān)心致以最真誠的謝意。<
64、/p><p> 同時(shí)在這里還要感謝自動(dòng)化系給予我們的關(guān)心和幫助,感謝機(jī)房老師給予我們上機(jī)實(shí)驗(yàn)方便。</p><p> 感謝系里其它的一些同學(xué)在設(shè)計(jì)中提供大量的支持和幫助。</p><p> 我們即將畢業(yè),在此,再一次向三年中在學(xué)習(xí)和生活中給予過我?guī)椭睦蠋熀屯瑢W(xué)致謝。</p><p><b> 參考文獻(xiàn)</b><
65、;/p><p> [1] 陳立定、吳玉香、蘇開才. 電氣控制與可編程控制器[M].廣州:華南理工大學(xué)出版社.2001</p><p> [2] 劉載文、李毫升、鐘亞林. 電梯控制技術(shù)[M].北京:電子工業(yè)出版社.1996</p><p> [3] 秦健. 可編程控制器和變頻器載改造在用電梯自動(dòng)控制系統(tǒng)中的應(yīng)用[M]. 應(yīng)用技術(shù)出版社.2006</p>
66、<p> [4] 唐勇奇. 電梯變頻器調(diào)速PLC控制的設(shè)計(jì)與實(shí)現(xiàn)[M]. 電機(jī)電器技術(shù)出版社.2000</p><p> [5] 王平、崔納新. PLC在電梯控制中的應(yīng)用[J]. 微計(jì)算機(jī)信息.1999.(2)</p><p> [6] 孫忠獻(xiàn). 電機(jī)技術(shù)與應(yīng)用[M]. 福建:福建科學(xué)技術(shù)出版社.2004.3</p><p> [7] 李景學(xué)、金
67、廣業(yè). 可編程控制器應(yīng)用系統(tǒng)設(shè)計(jì)方法[M]. 北京:電子工業(yè)出版社.1995</p><p> [8] 徐惠鋼、郭文華. 基于PLC的電梯高精度位置控制的實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息.2007,23(5):61-63</p><p> [9] 金晴川. 電梯與自動(dòng)扶梯的技術(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 //溫濕度時(shí)鐘口</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í)鐘脈沖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; //紅外解碼判斷標(biāo)志位,為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,點(diǎn),分,*/</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 同步時(shí)鐘輸入端 </p><p> sbit RW_SID=P1^0; //data input/output串行數(shù)據(jù)輸入、輸出端 </p><p> sbit T_
79、IO=P2^5; /* 實(shí)時(shí)時(shí)鐘的數(shù)據(jù)線*/</p><p> sbit T_CLK=P2^6; /* 實(shí)時(shí)時(shí)鐘的時(shí)鐘線引腳*/</p><p> sbit T_RST=P2^7; /* 實(shí)時(shí)時(shí)鐘的復(fù)位線引腳*/</p><p> unsigned char timer_5ms=0,timer_1s=0;
80、 /* +1 in T0_INT() 供秒計(jì)時(shí)用 */</p><p> bit fig_1s; /* 1 =1秒時(shí)間到 標(biāo)志 */</p><p> unsigned char delay1_s=0; /* 軟秒計(jì)器1(延時(shí)器) */</p><p> unsigned char delay
81、2_s=0; /* 軟秒計(jì)器2(延時(shí)器) */</p><p> unsigned char delay3_s=0; /* 軟秒計(jì)器3(延時(shí)器) */</p><p> unsigned char delay4_s=0; /* 軟秒計(jì)器4(延時(shí)器) */</p><p> unsigned int delay2500_
82、s=0; /* 軟秒計(jì)器5(延時(shí)器) */</p><p> unsigned int delay3000_s=0; /* 軟秒計(jì)器6(延時(shí)器) */</p><p> unsigned int delay6500_s=0; /* 軟秒計(jì)器7(延時(shí)器) */</p><p> unsigned char i_p=0,p
83、fw=0; /* 軟秒計(jì)器1(延時(shí)器) */</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}; //時(shí)間寄存器暫放</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}; // 秒 分 時(shí) 日 月 星期 年</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、--延時(shí)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> /*---------------------------延時(shí)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> /*--------------------------延時(shí)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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 無線傳感網(wǎng)絡(luò)中時(shí)鐘同步的研究畢業(yè)論文
- 基于cpld的數(shù)字時(shí)鐘設(shè)計(jì)【畢業(yè)論文】
- 基于fpga數(shù)字時(shí)鐘設(shè)計(jì)-畢業(yè)論文
- 無線數(shù)字子母鐘的設(shè)計(jì)--時(shí)鐘部分畢業(yè)論文
- 數(shù)字時(shí)鐘的設(shè)計(jì)畢業(yè)論文
- 數(shù)字時(shí)鐘設(shè)計(jì)(畢業(yè)論文)
- 數(shù)字時(shí)鐘設(shè)計(jì)(畢業(yè)論文)
- 畢業(yè)論文基于單片機(jī)的時(shí)鐘設(shè)計(jì)
- 數(shù)字時(shí)鐘設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)設(shè)計(jì)的數(shù)字時(shí)鐘畢業(yè)論文
- 基于gps模塊的時(shí)鐘設(shè)計(jì)與開發(fā)【畢業(yè)論文】
- 基于arm的無線傳感器網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文--電子時(shí)鐘設(shè)計(jì)
- 畢業(yè)論文-----電子時(shí)鐘設(shè)計(jì)
- 電子時(shí)鐘設(shè)計(jì)畢業(yè)論文
- 電子時(shí)鐘設(shè)計(jì)畢業(yè)論文
- 畢業(yè)論文----基于單片機(jī)的時(shí)鐘電路的設(shè)計(jì)
- 畢業(yè)論文——數(shù)字時(shí)鐘
- 旋轉(zhuǎn)時(shí)鐘畢業(yè)論文
- 數(shù)字時(shí)鐘畢業(yè)論文
評論
0/150
提交評論