




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上目 錄一、摘要··············································
2、3;··························2二、設(shè)計(jì)任務(wù).······················
3、183;·············································4三、總體方案設(shè)計(jì)與論證··
4、183;·················································
5、183;······4 1、液晶顯示模塊·········································
6、3;···················4 2、實(shí)時(shí)時(shí)間計(jì)算模塊····························
7、3;····························5 3、實(shí)時(shí)環(huán)境溫度采集模塊···················
8、183;·································54、報(bào)警模塊···············&
9、#183;··············································65、設(shè)置模塊··
10、··················································
11、··········6四、總體方案組成框圖······································&
12、#183;···················7五、系統(tǒng)硬件設(shè)計(jì)····························
13、3;································81、LCD顯示模塊················
14、··········································82、實(shí)時(shí)時(shí)間計(jì)算模塊······&
15、#183;···············································123、實(shí)時(shí)環(huán)境溫度檢測(cè)模
16、塊·················································164、報(bào)
17、警模塊·················································
18、83;···········215、設(shè)置模塊·····································&
19、#183;·······················22六、系統(tǒng)軟件設(shè)計(jì)························
20、83;···································23七、系統(tǒng)硬件電路設(shè)計(jì)············
21、83;···········································24八、系統(tǒng)硬件PROTEUS仿真原理圖···&
22、#183;········································25九、系統(tǒng)硬件仿真運(yùn)行情況圖······
23、3;···········································261、顯示歡迎界面·····
24、··················································
25、··262、顯示實(shí)時(shí)時(shí)間··············································
26、183;···········263、顯示當(dāng)前溫度····································
27、3;·····················274、時(shí)間設(shè)置···························
28、183;··································275、最高報(bào)警溫度設(shè)置·············
29、183;········································286、鬧鐘時(shí)間設(shè)置·······
30、3;·················································
31、3;287、超溫················································
32、3;·················298、鬧鐘時(shí)間到·······························&
33、#183;····························29附錄一:實(shí)物圖···················
34、3;··········································30附錄二:PCB圖······
35、··················································
36、······32附錄三:源程序代碼··········································&
37、#183;················33附錄四:參考文獻(xiàn)·······························
38、83;····························62摘 要單片機(jī)就是微控制器,是面向應(yīng)用對(duì)象設(shè)計(jì)、突出控制功能的芯片。單片機(jī)接上晶振、復(fù)位電路和相應(yīng)的接口電路,裝載軟件后就可以構(gòu)成單片機(jī)應(yīng)用系統(tǒng)。將它嵌入到形形色色的應(yīng)用系統(tǒng)中,就構(gòu)成了眾多產(chǎn)品、設(shè)備的智能化核心。本設(shè)計(jì)就是應(yīng)用單片機(jī)強(qiáng)大的控制功能制作而成
39、的電子萬(wàn)年歷,該電子萬(wàn)年歷包括三大功能:實(shí)時(shí)顯示年、月、日、時(shí)、分、秒;實(shí)時(shí)監(jiān)測(cè)環(huán)境溫度(可根據(jù)需要啟動(dòng)高溫報(bào)警功能);電子鬧鐘。M bn本設(shè)計(jì)采用的是AT89S52單片機(jī),該單片機(jī)采用的MCU51內(nèi)核,因此具有很好的兼容性,內(nèi)部帶有8KB的ROM,能夠存儲(chǔ)大量的程序,最突出特點(diǎn)是具有ISP在系統(tǒng)燒寫功能,使得燒寫程序更加方便。計(jì)時(shí)芯片采用DALLAS公司的涓細(xì)充電時(shí)鐘芯片DS1302,該芯片通過(guò)簡(jiǎn)單的串行通信與單片機(jī)進(jìn)行通信,時(shí)鐘/日歷電路能夠?qū)崟r(shí)提供年、月、日、時(shí)分、秒信息,采用雙電源供電,當(dāng)外部電源掉電時(shí)能夠利用后備電池準(zhǔn)確計(jì)時(shí)。溫度檢測(cè)采用DALLAS公司的數(shù)字化溫度傳感器,該芯片采用
40、的是獨(dú)特的“一線總線”的方式與單片機(jī)進(jìn)行通信,一線總線獨(dú)特而且經(jīng)濟(jì)的特點(diǎn),是用戶可以輕松的組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新的概念。實(shí)時(shí)溫度采用一線總線的方式傳輸大大的提高了信號(hào)的抗干擾性,分辨率可通過(guò)軟件設(shè)置,其小巧的體積為各種環(huán)境下測(cè)量溫度提供了方便。顯示器件采用通用型1602液晶,可顯示32個(gè)字符,如果使用數(shù)碼管來(lái)做顯示器件需消耗大量的系統(tǒng)資源,因此采用低功耗的1602液晶,該液晶顯示方便,功能強(qiáng)大,完全能滿足數(shù)字萬(wàn)年歷的顯示要求。 通過(guò)此次設(shè)計(jì)能夠更加牢固的掌握單片機(jī)的應(yīng)用技術(shù),增強(qiáng)動(dòng)手能力、硬件設(shè)計(jì)能力以及軟件設(shè)計(jì)能力。設(shè)計(jì)任務(wù)1、設(shè)計(jì)任務(wù):利用單片機(jī)、時(shí)鐘芯片DS1302、溫
41、度傳感器DS18B20、1602液晶等實(shí)現(xiàn)日期、時(shí)間、溫度的顯示即一個(gè)簡(jiǎn)單的萬(wàn)年歷。2、設(shè)計(jì)要求(1)通過(guò)DS1302能夠準(zhǔn)確的計(jì)時(shí),時(shí)間可調(diào)并在液晶上顯示出來(lái)。(2)通過(guò)DS18B20能夠?qū)崟r(shí)、準(zhǔn)確的檢測(cè)當(dāng)前環(huán)境溫度。(3)利用單片機(jī)自身功能實(shí)現(xiàn)鬧鐘??傮w方案論證與設(shè)計(jì)本系統(tǒng)以AT89S52單片機(jī)為控制核心,通過(guò)與DS1302和DS18B20通信獲取實(shí)時(shí)時(shí)間和實(shí)時(shí)環(huán)境溫度,并將得到的數(shù)據(jù)通過(guò)1602液晶顯示出來(lái),同時(shí)通過(guò)相應(yīng)的按鍵調(diào)整相應(yīng)的值。因此本設(shè)計(jì)可分為一下模塊:顯示模塊、實(shí)時(shí)時(shí)間計(jì)算模塊、實(shí)時(shí)環(huán)境溫度采集模塊、報(bào)警模塊、設(shè)置模塊(時(shí)間設(shè)置模塊、最高溫度設(shè)置模塊、鬧鐘設(shè)置模塊)。下面對(duì)
42、各個(gè)模塊逐一進(jìn)行論證分析:1、 液晶顯示模塊方案(1):數(shù)碼管是利用發(fā)光二極管的特性組合而成數(shù)字顯示器件,通過(guò)控制相應(yīng)的二極管的狀態(tài)顯示相應(yīng)的數(shù)字。要使數(shù)碼管正常顯示就得有驅(qū)動(dòng)電路驅(qū)動(dòng)相應(yīng)的段碼,數(shù)碼管的現(xiàn)實(shí)方式可分為靜態(tài)顯示和動(dòng)態(tài)顯示,靜態(tài)顯示方式只適合顯示單個(gè)的數(shù)字,因此本設(shè)計(jì)應(yīng)采用動(dòng)態(tài)顯示方式。由于動(dòng)態(tài)顯示方式利用的是人眼視覺(jué)暫留的特性,掃描的時(shí)間應(yīng)不大于20毫秒,占用系統(tǒng)資源大,而且顯示的個(gè)數(shù)和字型有限,在本設(shè)計(jì)中不易采用。方案(2):1602液晶也叫1602字符型液晶 它是一種專門用來(lái)顯示字母、數(shù)字、符號(hào)等的點(diǎn)陣型液晶模塊 它有若干個(gè)5X7或者5X11等點(diǎn)陣字符位組成,每個(gè)點(diǎn)陣字符位
43、都可以顯示一個(gè)字符。每位之間有一個(gè)點(diǎn)距的間隔,每行之間也有也有間隔,起到了字符間距和行間距的作用。1602的驅(qū)動(dòng)電路帶有11條指令,可以很方便的控制液晶的現(xiàn)實(shí)效果如:清屏、左移右移、光標(biāo)顯示。而且1602顯示的字符在下一條指令為到來(lái)之前不會(huì)改變,也就是能夠維持顯示的字符,1602液晶占用的系統(tǒng)資源也少。綜合比較上述兩種方案,應(yīng)采用1602液晶組成本設(shè)計(jì)的顯示模塊。2、 實(shí)時(shí)時(shí)間計(jì)算模塊方案(1):AT89S52單片機(jī)內(nèi)部帶有定時(shí)/計(jì)數(shù)功能,此定時(shí)功能是通過(guò)對(duì)外部晶振的脈沖進(jìn)行計(jì)數(shù),從而達(dá)到計(jì)時(shí)功能,只要使用11.0592的晶振就能實(shí)現(xiàn)零誤差的計(jì)時(shí),因此可以利用此功能實(shí)現(xiàn)計(jì)時(shí),但因?yàn)橹挥袉我坏挠?jì)
44、時(shí)功能要實(shí)現(xiàn)“萬(wàn)年歷”的功能需要較復(fù)雜的程序,而且如果單片機(jī)掉電無(wú)法繼續(xù)進(jìn)行計(jì)時(shí),所以使用不便。方案(2):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.55.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充電的能力。利用單片機(jī)強(qiáng)大的控制功能就可實(shí)現(xiàn)實(shí)時(shí)計(jì)時(shí)的功能,而且消耗的系統(tǒng)資源少,程序簡(jiǎn)單
45、。綜合上述兩種方案,宜采用方案(2)實(shí)現(xiàn)實(shí)時(shí)計(jì)時(shí)功能。3、實(shí)時(shí)環(huán)境溫度采集模塊方案(1):熱敏電阻是開發(fā)早、種類多、發(fā)展較成熟的敏感元器件熱敏電阻由半導(dǎo)體陶瓷材料組成,利用的原理是溫度引起電阻變化通過(guò)一定的電路可以將周圍環(huán)境的溫度變化轉(zhuǎn)化成電壓的變化,通過(guò)AD轉(zhuǎn)化器件將信號(hào)傳輸給單片機(jī)進(jìn)行分析,從而測(cè)出當(dāng)前環(huán)境溫度,但誤差大,不穩(wěn)定,對(duì)環(huán)境要求較高。方案(2):DS18B20是美國(guó)DALLAS公司生產(chǎn)的數(shù)字溫度傳感器,采用單總線的接口方式與微處理器連接時(shí)僅需要一條口線即可實(shí)現(xiàn)微處理器與DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),
46、使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。測(cè)量溫度范圍寬,測(cè)量精度高 ,在使用中不需要任何外圍元件,支持多點(diǎn)組網(wǎng)功能 多個(gè) DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫,供電方式靈活 DS18B20 可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。因此非常適合本系統(tǒng)使用。綜上比較上述兩種方案,宜采用方案(2)構(gòu)成本設(shè)計(jì)的實(shí)時(shí)溫度采集模塊。4、報(bào)警模塊此模塊采用無(wú)源蜂鳴器實(shí)現(xiàn),只要編寫相應(yīng)的程序即可實(shí)現(xiàn)發(fā)出不同頻率的聲音。5、設(shè)置模塊因設(shè)置模塊只需編寫相應(yīng)的程序外加相應(yīng)的按鍵即可實(shí)現(xiàn),
47、實(shí)現(xiàn)方法較簡(jiǎn)單,在此不再論述??傮w方案組成框圖報(bào)警模塊(蜂鳴器)顯示模塊(1602液晶)AT89S52時(shí)間計(jì)算模塊DS1302實(shí)時(shí)溫度采集模塊(DS18B20)設(shè)置模塊(獨(dú)立按鍵)系統(tǒng)硬件設(shè)計(jì)1、LCD顯示模塊設(shè)計(jì)(1)1602液晶功耗較小可直接與單片機(jī)接口相接,電源直接與電源電路相接,使用單片機(jī)的P0口和P1口與1602進(jìn)行通信。(2)1602相應(yīng)功能特性介紹n +5V電壓,對(duì)比度可調(diào)n 內(nèi)含復(fù)位電路n 提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能n 有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAMn 內(nèi)建有160個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROMn 8個(gè)可由用戶自定義的5X7
48、的字符發(fā)生器CGRAM(3)1602引腳介紹(4)1602液晶11條指令介紹1.清屏指令 功能:<1> 清除液晶顯示器,即將DDRAM的內(nèi)容全部填入“空白”的字符碼20H; <2> 光標(biāo)歸位,即將光標(biāo)撤回液晶顯示屏的左上方; <3>將地址計(jì)數(shù)器(AC)的值設(shè)為0;2.光標(biāo)歸位指令 功能:<1> 把光標(biāo)撤回到顯示器的左上方; <2> 把地址計(jì)數(shù)器(AC)的值設(shè)置為0; <3> 保持DDRAM的內(nèi)容不變 ;3.輸入模式設(shè)置指令 功能:設(shè)定每次寫入1位數(shù)據(jù)后光標(biāo)的移位方向,并且設(shè)定每次寫入的一個(gè)字符是否移動(dòng)。參數(shù)設(shè)定的情況如下所
49、示: 位名 設(shè)置 I/D 0=寫入新數(shù)據(jù)后光標(biāo)左移 1=寫入新數(shù)據(jù)后光標(biāo)右移 S
50、0; 0=寫入新數(shù)據(jù)后顯示屏不移動(dòng) 1=寫入新數(shù)據(jù)后顯示屏整體右移1個(gè)字 4.顯示開關(guān)控制指令功能:控制顯示器開/關(guān)、光標(biāo)顯示/關(guān)閉以及光標(biāo)是否閃爍。參數(shù)設(shè)定的情況如下: 位名 設(shè)置 D 0=顯示功能關(guān)
51、0; 1=顯示功能開 C 0=無(wú)光標(biāo) 1=有光標(biāo) B
52、; 0=光標(biāo)不閃爍 1=光標(biāo)閃爍 5.設(shè)定顯示屏或光標(biāo)移動(dòng)方向指令功能:使光標(biāo)移位或使整個(gè)顯示屏幕移位。參數(shù)設(shè)定的情況如下: S/C &
53、#160; R/L 設(shè)定情況 0 0 光標(biāo)左移1格,且AC值減1 0
54、; 1 光標(biāo)右移1格,且AC值加1 1 0
55、0; 顯示器上字符全部左移一格,但光標(biāo)不動(dòng) 1 1 顯示器上字符全部右移一格,但光標(biāo)不動(dòng) 6.功能設(shè)定指令 (非常重要的指令)功能:設(shè)定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)及字型。參數(shù)設(shè)定的情況如下: 位名 &
56、#160; 設(shè)置 DL 0=數(shù)據(jù)總線為4位 1=數(shù)據(jù)總線為8位 N
57、0; 0=顯示1行 1=顯示2行 F
58、 0=5×7點(diǎn)陣/每字符 1=5×10點(diǎn)陣/每字符 7.設(shè)定CGRAM地址指令 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM的地址。 8.設(shè)定DDRAM地址指令 功能:設(shè)定下一個(gè)要存入數(shù)據(jù)的CGRAM的地址。 9.讀取忙信號(hào)或AC地址指令 功能:<1> 讀取忙碌信號(hào)BF的內(nèi)容,BF=1表示液晶顯示器忙,暫時(shí)無(wú)法接收單片機(jī)送來(lái)的數(shù)據(jù)或指令; 當(dāng)BF=0時(shí),液晶顯示器可以接收單片機(jī)送來(lái)的數(shù)據(jù)或指令; <2> 讀取地址計(jì)數(shù)器(AC)的內(nèi)容。 10.數(shù)據(jù)寫入DDRAM或CG
59、RAM指令 功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對(duì)應(yīng)的字符; <2> 將用戶自己設(shè)計(jì)的圖形存入CGRAM。 11.從CGRAM或DDRAM讀出數(shù)據(jù)的指令 功能:讀取DDRAM或CGRAM中的內(nèi)容。 基本操作時(shí)序: 讀狀態(tài) 輸入:RS=L,RW=H,E=H 輸出:DB0DB7=狀態(tài)字 寫指令
60、 輸入:RS=L,RW=L,E=下降沿脈沖,DB0DB7=指令碼 輸出:無(wú) 讀數(shù)據(jù) 輸入:RS=H,RW=H,E=H 輸出:DB0DB7=數(shù)據(jù) 寫數(shù)據(jù) 輸入:RS=H,RW=L,E=下降沿脈沖,DB0DB7=數(shù)據(jù) 輸出:無(wú) (5)、1602液
61、晶與單片機(jī)接口電路2、時(shí)間計(jì)算模塊設(shè)計(jì)DS1302通過(guò)三根口線實(shí)現(xiàn)與單片機(jī)的通信,因DS1302功耗很小,即使電源掉電后通過(guò)3V的紐扣電池仍能維持DS1302精確走時(shí)。(1) DS1302特性介紹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.55.5V。采用雙電源供電(主電源和備用電源),可設(shè)置備用電源充電方式,提供了對(duì)后備電源進(jìn)行涓細(xì)電流充
62、電的能力。(2) DS1302引腳介紹 各引腳的功能為:8 、Vcc1:備用電池端;1、Vcc2:5V電源。當(dāng)Vcc2>Vcc1+0.2V時(shí),由Vcc2向DS1302供電,當(dāng)Vcc2< Vcc1時(shí),由Vcc1向DS1302供電。7、 SCLK:串行時(shí)鐘,輸入; 6、I/O:數(shù)據(jù)輸入輸出口;5、CE/RST:復(fù)位腳2 3、X1、X2 是外接晶振腳 (32.768KHZ的晶振)4、地(GND)(4)DS1302有關(guān)日歷、時(shí)間的寄存器 寄存器的說(shuō)明如下:1、秒寄存器(81h、80h)的位7定義為時(shí)鐘暫停標(biāo)志(CH)。當(dāng)初始上電時(shí)該位置為1,時(shí)鐘振蕩器停止,DS1302處于低功
63、耗狀態(tài);只有將秒寄存器的該位置改寫為0時(shí),時(shí)鐘才能開始運(yùn)行。2、小時(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í)位3、控制寄存器(8Fh、8Eh)的位7是寫保護(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)行其它寄存器的寫操作。 (5)DS1302控
64、制字介紹控制字的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入到DS1302中。位6:如果為0,則表示存取日歷時(shí)鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1(A4A0):指示操作單元的地址;位0(最低有效位):如為0,表示要進(jìn)行寫操作,為1表示進(jìn)行讀操作。讀數(shù)據(jù):讀數(shù)據(jù)時(shí)在緊跟8位的控制字指令后的下一個(gè)SCLK脈沖的下降沿,讀出DS1302的數(shù)據(jù),讀出的數(shù)據(jù)是從最低位到最高位。寫數(shù)據(jù):控制字總是從最低位開始輸出。在控制字指令輸入后的下一個(gè)SCLK時(shí)鐘的上升沿時(shí),數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入也是從最低位(0位)開始。位0(最低有效位):為1表示進(jìn)行讀操作。 如為0,表示要進(jìn)行寫操
65、作,控制字后 SCLK 下降沿 讀數(shù)據(jù) SCLK上升沿寫數(shù)據(jù)(6)DS1302單字節(jié)讀寫時(shí)序介紹DS1302的數(shù)據(jù)讀寫是通過(guò)I/O串行進(jìn)行的。當(dāng)進(jìn)行一次讀寫操作時(shí)最少得讀寫兩個(gè)字節(jié),第一個(gè)字節(jié)是控制字節(jié),就是一個(gè)命令,告訴DS1302是讀還是寫操作,是對(duì)RAM還是對(duì)CLOK寄存器操作,以及操作的址。第二個(gè)字節(jié)就是要讀或?qū)懙臄?shù)據(jù)了。我們先看單字節(jié)寫:在進(jìn)行操作之前先得將CE(也可說(shuō)是RST)置高電平,然后單片機(jī)將控制字的位0放到I/O上,當(dāng)I/O的數(shù)據(jù)穩(wěn)定后,將SCLK置高電平,DS1302檢測(cè)到SCLK的上升沿后就將I/O上的數(shù)據(jù)讀取,然后單片機(jī)將SCLK置為低電平,再將控制字的位1放到I/O
66、上,如此反復(fù),將一個(gè)字節(jié)控制字的8個(gè)位傳給DS1302。接下來(lái)就是傳一個(gè)字節(jié)的數(shù)據(jù)給DS1302,當(dāng)傳完數(shù)據(jù)后,單片機(jī)將CE置為低電平,操作結(jié)束。單字節(jié)讀操作的一開始寫控制字的過(guò)程和上面的單字節(jié)寫操作是一樣,但是單字節(jié)讀操作在寫控制字的最后一個(gè)位,SCLK還在高電平時(shí),DS1302就將數(shù)據(jù)放到I/O上,單片機(jī)將SCLK置為低電平后數(shù)據(jù)鎖存,單機(jī)機(jī)就可以讀取I/O上的數(shù)據(jù)。如此反復(fù),將一個(gè)字節(jié)的數(shù)據(jù)讀入單片機(jī)。讀與寫操作的不同就在于,寫操作是在SCLK低電平時(shí)單片機(jī)將數(shù)據(jù)放到IO上,當(dāng)SCLK上升沿時(shí),DS1302讀取。而讀操作是在SCLK高電平時(shí)DS1302放數(shù)據(jù)到IO上,將SCLK置為低電平
67、后,單片機(jī)就可從IO上讀取數(shù)據(jù)。(7)DS1302操作指令介紹操作說(shuō)明:1 首先要通過(guò)8EH將寫保護(hù)去掉,將日期,時(shí)間的初值寫時(shí)各個(gè)寄存器。2 然后就可以對(duì)80H、82H、84H、86H、88H、8AH、8CH進(jìn)行初值的寫入。同時(shí)也通過(guò)秒寄存器將位7的CH值改成0,這樣DS1302就開始走時(shí)運(yùn)了。3 將寫保護(hù)寄存器再寫為80H,防止誤改寫寄存器的值。4 不斷讀取80H8CH的值,將它們格式化后顯示到1602LCD液晶上(8)DS1302與單片機(jī)接口電路3、實(shí)時(shí)環(huán)境溫度檢測(cè)模塊DS18B20通過(guò)單總線實(shí)現(xiàn)與單片機(jī)的通信,每個(gè)DS18B20都有一個(gè)唯一的序列號(hào),可以方便的實(shí)現(xiàn)組網(wǎng)檢測(cè)。(1)單總線
68、介紹n 單總線即只有一根數(shù)據(jù)線,系統(tǒng)中的數(shù)據(jù)交換,控制都由這根線完成。n 單總線通常要求外接一個(gè)約為 4.7K10K 的上拉電阻,這樣,當(dāng)總線閑置時(shí)其狀態(tài)為高電平。(2) DS18B20特性介紹n DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,其具有獨(dú)特的優(yōu)點(diǎn):n ( 1 )采用單總線的接口方式 與微處理器連接時(shí) 僅需要一條口線即可實(shí)現(xiàn)微處理器與 DS18B20 的雙向通訊。 單總線具有經(jīng)濟(jì)性好,抗干擾能力強(qiáng),適合于惡劣環(huán)境的現(xiàn)場(chǎng)溫度測(cè)量,使用方便等優(yōu)點(diǎn),使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測(cè)量系統(tǒng)的構(gòu)建引入全新概念。n 測(cè)量溫度范圍寬,測(cè)量
69、精度高 DS18B20 的測(cè)量范圍為 -55 + 125 ; 在 -10+ 85°C 范圍內(nèi),精度為 ± 0.5°C 。n 在使用中不需要任何外圍元件。n 支持多點(diǎn)組網(wǎng)功能 多個(gè) DS18B20 可以并聯(lián)在惟一的單線上,實(shí)現(xiàn)多點(diǎn)測(cè)溫。n 供電方式靈活 DS18B20 可以通過(guò)內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時(shí)序滿足一定的要求時(shí),可以不接外部電源,從而 使系統(tǒng)結(jié)構(gòu)更趨簡(jiǎn)單,可靠性更高。n 測(cè)量參數(shù)可配置 DS18B20 的測(cè)量分辨率可通過(guò)程序設(shè)定 912 位。n 負(fù)壓特性 電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而燒毀,但不能正常工作。n 掉電保護(hù)功能 D
70、S18B20 內(nèi)部含有 EEPROM ,在系統(tǒng)掉電以后,它仍可保存分辨率及報(bào)警溫度的設(shè)定值。n DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟(jì)、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟(jì)的測(cè)溫系統(tǒng),因此也就被設(shè)計(jì)者們所青睞。(3) DS18B20管腳介紹 DS18B20的管腳排列1 . GND為電源 地;2. DQ為數(shù)字信號(hào)輸入輸出端;3. VDD為外接供電電源輸入端,在寄生電源接線方式時(shí)接地; (4) DS18B20內(nèi)部結(jié)構(gòu)n DS18B20 內(nèi)部結(jié)構(gòu)主要由四部分組成: 64 位光刻 ROM 、溫度傳感器、非揮發(fā)的溫度報(bào)警觸發(fā)器 TH 和 TL 、配置寄存器。n
71、60; 光刻 ROM 中的 64 位序列號(hào)是出廠前被光刻好的,它可以看作是該 DS18B20 的地址序列碼。 64 位光刻 ROM 的排列是:開始 8 位(地址: 28H )是產(chǎn)品類型標(biāo)號(hào),接著的 48 位是該 DS18B20 自身的序列號(hào),并且每個(gè) DS18B20 的序列號(hào)都不相同,因此它可以看作是該 DS18B20 的地址序列碼;最后 8 位則是前面 56 位的循環(huán)冗余校驗(yàn)碼( CRC=X8+X5+X4+1 )。由于每一個(gè) DS18B20 的 ROM 數(shù)據(jù)都各不相同,因此微控制器就可以通過(guò)單總線對(duì)多個(gè) DS18B20 進(jìn)行尋址,從而實(shí)現(xiàn)一根總線上掛接多個(gè)
72、 DS18B20 的目的。DS18B20中的溫度傳感器完成對(duì)溫度的測(cè)量,用16位二進(jìn)制形式提供,形式表達(dá),其中S為符號(hào)位。(5) DS18B20溫度轉(zhuǎn)化示例(6) DS18B20時(shí)序介紹DS18B20的一線工作協(xié)議流程是:初始化ROM操作指令存儲(chǔ)器操作指令數(shù)據(jù)傳輸。其工作時(shí)序包括:l 初始化時(shí)序l 寫時(shí)序l 讀時(shí)序初始化時(shí)序 主機(jī)首先發(fā)出一個(gè)480960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖?,并在隨后的480微秒時(shí)間內(nèi)對(duì)總線進(jìn)行檢測(cè),如果有低電平出現(xiàn)說(shuō)明總線上有器件已做出應(yīng)答。若無(wú)低電平出現(xiàn)一直都是高電平說(shuō)明總線上無(wú)器件應(yīng)答。做為從器件的DS18B20在一上電后就一直在檢測(cè)總線上是否有480
73、960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待1560微秒后將總線電平拉低60240微秒做出響應(yīng)存在脈沖,告訴主機(jī)本器件已做好準(zhǔn)備。若沒(méi)有檢測(cè)到就一直在檢測(cè)等待。 對(duì)DS18B20的寫和讀操作接下來(lái)就是主機(jī)發(fā)出各種操作命令,但各種操作命令都是向DS18B20寫0和寫1組成的命令字節(jié),接收數(shù)據(jù)時(shí)也是從DS18B20讀取0或1的過(guò)程。因此首先要搞清主機(jī)是如何進(jìn)行寫0、寫1、讀0和讀1的。寫周期最少為60微秒,最長(zhǎng)不超過(guò)120微秒。寫周期一開始做為主機(jī)先把總線拉低1微秒表示寫周期開始。隨后若主機(jī)想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束,然后釋放總線為高電平。若主機(jī)想寫1,在一開始拉低
74、總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機(jī)的DS18B20則在檢測(cè)到總線被拉底后等待15微秒然后從15us到45us開始對(duì)總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。對(duì)于讀數(shù)據(jù)操作時(shí)序也分為讀0時(shí)序和讀1時(shí)序兩個(gè)過(guò)程。讀時(shí)序是從主機(jī)把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩€上。DS18B20在檢測(cè)到總線被拉低1微秒后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機(jī)在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時(shí)間內(nèi)
75、完成對(duì)總線進(jìn)行采樣檢測(cè),采樣期內(nèi)總線為低電平則確認(rèn)為0。采樣期內(nèi)總線為高電平則確認(rèn)為1。完成一個(gè)讀時(shí)序過(guò)程,至少需要60us才能完成(7) DS18B20操作步驟()每次讀寫前對(duì) DS18B20 進(jìn)行復(fù)位初始化。復(fù)位要求主 CPU 將數(shù)據(jù)線下拉 500us ,然后釋放, DS18B20 收到信號(hào)后等待 16us60us 左右,然后發(fā)出 60us240us 的存在低脈沖,主 CPU 收到此信號(hào)后表示復(fù)位成功。()發(fā)送一條 ROM 指令()發(fā)送存儲(chǔ)器指令(8) DS18B20與單片機(jī)的接口電路4、報(bào)警模塊報(bào)警模塊采用單片機(jī)輸出一定頻率的方波從而使蜂鳴器發(fā)出聲音蜂鳴器與單片機(jī)的接口電路5、設(shè)置模塊設(shè)
76、置模塊采用四個(gè)按鍵與P14、P15、P16、P17相接組成獨(dú)立按鍵,接口電路如下;系統(tǒng)軟件設(shè)計(jì)軟件設(shè)計(jì)是本設(shè)計(jì)的關(guān)鍵,軟件程序編寫的好壞直接影響著系統(tǒng)運(yùn)行情況的良好。因本程序涉及的模塊較多,所以程序編寫也采用模塊化設(shè)計(jì),C語(yǔ)言具有編寫靈活、移植方便、便于模塊化設(shè)計(jì)的特點(diǎn),所以本系統(tǒng)的軟件采用C51編寫。程序框圖如下:判斷是否有按鍵按下時(shí)間、日期、上限溫度、鬧鐘設(shè)置模塊沒(méi)有按鍵按下 溫度檢測(cè)模塊開機(jī)初始化顯示歡迎界面從DS1302讀取信息1602液晶顯示相關(guān)信息系統(tǒng)硬件電路設(shè)計(jì)本設(shè)計(jì)硬件電路圖如下系統(tǒng)硬件PROTEUS仿真原理圖系統(tǒng)硬件仿真運(yùn)行情況圖顯示歡迎界面顯示實(shí)時(shí)時(shí)間顯示當(dāng)前溫度時(shí)間設(shè)置最
77、高報(bào)警溫度設(shè)置鬧鐘時(shí)間設(shè)置超 溫鬧鐘時(shí)間到附錄一:實(shí)物圖附錄二:PCB圖附錄三:源程序代碼#include<reg52.h>#include<intrins.h>unsigned char code displaywelcome=" Welcome To My Lcd Timer"/歡迎界面unsigned char code displaywish=" Happy Every Day _" /歡迎界面unsigned char code overtemperature="OVERTEMPERATURE!"un
78、signed char code digit="" /數(shù)字代碼unsigned char mode,TH,TL,TN,TD,length,tempswitch,Maxtemp=40,amode,alarmmode,minutes,hours,minutea,seconds,houra=12;sbit SCLK=P10;/DS1302時(shí)鐘輸入sbit DATE=P11;/DS1302數(shù)據(jù)輸入sbit REST=P12;/DS1302復(fù)位端口sbit SET=P14;/DS1302設(shè)置模式選擇位sbit ADD=P15;/增加sbit RED=P16;/減小sbit CANL=
79、P17;void delay1ms(int i)/1毫秒延時(shí) int j,k; while(i-) for(j=76;j>1;j-); for(k=29;k>1;k-); void delaynus(unsigned char n) /延時(shí)若干微秒 unsigned char i; for(i=0;i<n;i+);/*蜂鳴器模塊*/ sbit beep=P36;/位定義,定義P.6位fmp void dely500(void) unsigned char i; for(i=250;i>0;i-) _nop_(); void baojing(unsigned char n
80、) unsigned char x,i; while(n-) for(i=0;i<5;i+) for(x=0;x<200;x+) beep=beep; dely500(); for(i=0;i<3;i+) for(x=0;x<200;x+) beep=beep; dely500(); dely500(); /*DS1302模塊*/ void Write1302(unsigned char date)/向1302寫數(shù)據(jù) unsigned char i;SCLK=0;delaynus(2);for(i=0;i<8;i+)DATE=date&0x01;SCLK=
81、1;delaynus(2);SCLK=0;delaynus(2);date>>=1; void WriteSet1302(unsigned char cmd,unsigned char date) /根據(jù)相應(yīng)的命令輸入相應(yīng)的數(shù)據(jù) REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(5);Write1302(date);SCLK=1;REST=0; unsigned char Read1302(void)/讀取1302數(shù)據(jù) unsigned char i,date;delaynus(2);for(i=0;i<8;i+)date>>
82、;=1;if(DATE=1)date|=0x80;SCLK=1;delaynus(2);SCLK=0;delaynus(2);return date; unsigned char ReadSet1302(unsigned char cmd)/根據(jù)命令讀取1302相應(yīng)的值unsigned char date;REST=0;SCLK=0;REST=1;Write1302(cmd);delaynus(2);date=Read1302();SCLK=1;REST=0;return date;void IntDS1302(void) /DS1302初始化 unsigned char flag; flag
83、= ReadSet1302(0x81);if(flag&0x80) /判斷時(shí)鐘芯片是否關(guān)閉 WriteSet1302(0x8E,0x00); /根據(jù)寫狀態(tài)寄存器命令字,寫入不保護(hù)指令 WriteSet1302(0x80,(0/10)<<4|(0%10); /根據(jù)寫秒寄存器命令字,寫入秒的初始值WriteSet1302(0x82,(0/10)<<4|(0%10); /根據(jù)寫分寄存器命令字,寫入分的初始值WriteSet1302(0x84,(0/10)<<4|(0%10); /根據(jù)寫小時(shí)寄存器命令字,寫入小時(shí)的初始值WriteSet1302(0x86,(
84、0/10)<<4|(0%10); /根據(jù)寫日寄存器命令字,寫入日的初始值WriteSet1302(0x88,(0/10)<<4|(0%10); /根據(jù)寫月寄存器命令字,寫入月的初始值WriteSet1302(0x8c,(10/10)<<4|(10%10); /根據(jù)寫年寄存器命令字,寫入年的初始值WriteSet1302(0x90,0xa5); /打開充電功能 選擇2K電阻充電方式WriteSet1302(0x8E,0x80); /根據(jù)寫狀態(tài)寄存器命令字,寫入保護(hù)指令 /*液晶顯示模塊*/sbit RS=P25;sbit RW=P26;sbit E=P27;s
85、bit BF=P07; /*液晶忙檢測(cè)*/bit BusyTest(void)bit result;RS=0;RW=1;E=1;_nop_();_nop_();_nop_();result=BF;_nop_();_nop_();_nop_();E=0;return result;/*寫指令*/void Write_com(unsigned char command)while(BusyTest()!=0);RS=0;RW=0;E=0;_nop_();_nop_();_nop_();P0=command;_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_n
86、op_();E=0;/*寫地址*/void Write_Address(unsigned char address)Write_com(address|0x80);delay1ms(1); /*寫數(shù)據(jù)*/void Write_Date(unsigned char date)RS=1;RW=0;E=0;_nop_();_nop_();_nop_();P0=date;_nop_();_nop_();_nop_();E=1;_nop_();_nop_();_nop_();E=0;delay1ms(1);/*初始化*/void Lcd_Int(void)Write_com(0x38);delay1ms(1);Write_com(0x38);delay1ms(1);Write_com(0x06);delay1ms(1);Write_com(0x0c);delay1ms(1);Write_com(0x01);void displaymainpart
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 泡綿路軌式平切機(jī)項(xiàng)目可行性研究報(bào)告評(píng)審方案設(shè)計(jì)2025年發(fā)改委立項(xiàng)
- 介入雙語(yǔ)教學(xué)課件
- 教育類課件教學(xué)課件
- 課件教學(xué)設(shè)計(jì)配套
- 【龍巖】2025年福建龍巖上杭縣事業(yè)單位公開招聘工作人員119人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 易錯(cuò)點(diǎn)11權(quán)利與義務(wù)-備戰(zhàn)2021年中考道德與法治一輪復(fù)習(xí)易錯(cuò)題
- 旅游直播活動(dòng)方案
- 昆蟲派對(duì)活動(dòng)方案
- 旗袍展示活動(dòng)方案
- 春季商家營(yíng)銷活動(dòng)方案
- 夜市項(xiàng)目的可行性報(bào)告
- 火力發(fā)電廠項(xiàng)目工程建設(shè)規(guī)范標(biāo)準(zhǔn)強(qiáng)制性條文執(zhí)行表格電氣分冊(cè)
- 2025年海上風(fēng)力發(fā)電場(chǎng)運(yùn)維管理技術(shù)創(chuàng)新與運(yùn)維效率提升報(bào)告
- 內(nèi)蒙古自治區(qū)包頭市東河區(qū)第二中學(xué)2025屆八年級(jí)物理第二學(xué)期期末經(jīng)典試題含解析
- 三農(nóng)課件教學(xué)課件
- ca認(rèn)證電子合同協(xié)議
- 店長(zhǎng)入股合伙合同協(xié)議
- 青海西寧事業(yè)單位考試《行測(cè)》模擬題帶答案2023年
- 靜脈治療理論(2025年版)試題及答案
- 吊籃施工安全技術(shù)交底
- 如何培養(yǎng)護(hù)理科研思維
評(píng)論
0/150
提交評(píng)論