找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 13925|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于單片機的智能定時插座設(shè)計-精品論文下載

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:303522 發(fā)表于 2018-4-8 11:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關(guān)于智能家居的設(shè)計使用
題    目: 基于單片機的智能定時插座設(shè)計
系               部:         電子科學(xué)系              
專    業(yè):                           
姓    名:                           
學(xué)    號:                          
指導(dǎo)教師:                           

摘要
隨著家用電器的越來越普及和人們生活節(jié)奏的加快,人們對電器的依賴性進一步提高,對電器的定時需求也進一步增大。定時開關(guān)插座可用于電飯煲、飲水機、電視機、電腦、電動車電池的充電、定時開關(guān)電熱毯等需要定時供電的場合。定時開關(guān)插座的使用能夠做到節(jié)能、安全、方便等。
本文介紹了一種基于AT89S52單片機的定時開關(guān)插座設(shè)計方案。該系統(tǒng)是通過AT89S52,實現(xiàn)時鐘的24小時制或者100小時制的時鐘走時,并通過LCD1602顯示出來。繼電器的通、斷通過單片機控制,通過控制繼電器的通斷可以達到控制插座通斷的目的。
本文首先介紹定時開關(guān)插座設(shè)計要實現(xiàn)的功能,接著闡述系統(tǒng)電路的設(shè)計及原理說明,包括設(shè)計方案選擇、關(guān)鍵元器件介紹、電路設(shè)計說明(包括DS1302的電路、IR1308、18b20、鍵盤、單片機控制電路、液晶1602顯示、繼電器工作電路)軟件設(shè)計流程以及系統(tǒng)的測試。最后總結(jié)了定時開關(guān)插座設(shè)計完成的任務(wù),分析系統(tǒng)的不足并提出了系統(tǒng)的應(yīng)用展望。
關(guān)鍵詞:定時開關(guān) 繼電器 AT89S52單片機 液晶LCD1602 智能。
目錄
引言
1  設(shè)計要求及構(gòu)思
1.1 設(shè)計要求
1.2 設(shè)計構(gòu)思
2  設(shè)計方案分析確定
2.1 系統(tǒng)框圖
2.2 開關(guān)的選擇
2.3 顯示方式選擇
2.4 時鐘的實現(xiàn)及單片機的選擇
2.5 按鍵控制部分的實現(xiàn)
3  主要元器件原理及其應(yīng)用
3.1繼電器介紹
3.1.1繼電器的繼電特性
3.1.2 繼電器工作原理及特性
3.1.3 繼電器主要產(chǎn)品技術(shù)參數(shù)
3.1.4 繼電器的選用
3.2 單片機AT89S52介紹
3.3 時鐘DS1302介紹
3.5 DS18B20介紹
3.4 液晶LCD1602介紹
4  系統(tǒng)硬件電路設(shè)計
4.1單片機最小系統(tǒng)及液晶顯示
4.2 繼電器驅(qū)動電路
4.3鍵盤電路
5  系統(tǒng)軟件程序設(shè)計
6.1 硬件的制作
6.2 調(diào)試方案
6.3 硬件電路調(diào)試
6.3.1 獨立元件的檢測
6.3.2 電源電路的調(diào)試
6.3.3 單片機最小系統(tǒng)的調(diào)試
6.3.4 顯示模塊的調(diào)試
6.3.5 鍵盤模塊的調(diào)試
6.3.6 繼電器電路的調(diào)試
6.4 軟件調(diào)試
6.5 整體系統(tǒng)調(diào)試
7  結(jié)論
謝    辭
參考文獻
附 錄1
附 錄2
附 錄3

引言
現(xiàn)如今,往往由于某些特殊原因給我們的生活或工作帶來一些困擾和遺憾。比如:家中的水塔忘記抽水而造成生活的一時不便;學(xué)校的起床廣播因值班人員睡過頭而推遲廣播;家中的魚缸因太久沒有供氧造成魚兒缺氧死亡;許多球迷或者新聞愛好者因為錯過了開機時間而與精彩球賽或者新聞擦肩而過;夏天里風(fēng)扇的定時時間過短(一般為1個小時),不便于晚上分段定時使用等等。而上面的這些問題都可以通過定時開關(guān)插座的定時功能得到解決。
隨著電器產(chǎn)品待機能耗的迅速增長,家庭和社會付出了太多的代價,中國節(jié)能認證中心對家庭待機能耗做過的調(diào)查顯示,待機能耗占到家庭電力消耗的10%左右,僅以電視機為例,平均每臺電視機的待機能耗是8.07W,按每天待機2小時大約耗電0.016度。定時開關(guān)插座能夠?qū)崿F(xiàn)定時給電器供電,在工作時間之外把電器的電源切斷,這樣就能解決電器的待機損耗,達到節(jié)約用電的目的。
定時開關(guān)插座是一款能在特定時間段內(nèi)控制電器通、斷電的開關(guān)插座。能實現(xiàn)24小時制和100小時制兩種時鐘走時模式,在24小時制時鐘模式,可以實現(xiàn)二組360天內(nèi)的任意定時,定時時間范圍最小為1分鐘。本文闡述了定時開關(guān)插座的硬件電路設(shè)計、軟件算法設(shè)計, 給出了自動開關(guān)插座的設(shè)計和定型方案,它可以對家中一些需要在特定時間對電器進行自動斷、通電控制,而不需要拔掉插頭,減少電器的待機損耗,解決生活中的一些煩惱。
1  設(shè)計要求及構(gòu)思1.1 設(shè)計要求
本次設(shè)計要求實現(xiàn)一個具有定時、按鍵設(shè)置及控制、定時時間顯示等功能的定時開關(guān)插座,具體要求及指標(biāo)如下:
(1)可以設(shè)定二組360定時時間值。
(2)設(shè)定的定時時間調(diào)整范圍為:360天內(nèi)任何時間
(3)具有五個操作按鍵。
(4)具有日期、星期、時鐘、溫度顯示。
(5)具有7個LED顯示不同的狀態(tài)。
(6)可以通紅外遙控控制。

1.2 設(shè)計構(gòu)思
根據(jù)題目和設(shè)計功能要求,系統(tǒng)的實施方案可以分為以下幾個步驟:首先,通過模式(模式0為24小時制,模式1為100小時制)選定時鐘的走時方式,作為定時時間的判斷標(biāo)準。然后通過按鍵設(shè)置定時時間分別存儲在定時開始數(shù)組begin和結(jié)束數(shù)組end,通過數(shù)組的值與時鐘的值進行比較,時間在定時數(shù)組時間范圍內(nèi)則繼電器接通,否則斷開。用一個紅色發(fā)光二極管的亮、滅來指示繼電器的通、斷的狀態(tài)。定時智能插座的顯示則用LCD來實現(xiàn)。電源部分用220V轉(zhuǎn)換為直流5V給定時開關(guān)系統(tǒng)供電。用5個鍵盤實現(xiàn)時鐘、定時的設(shè)置及開始/停止等按鍵設(shè)置功能。
2  設(shè)計方案分析確定2.1 系統(tǒng)框圖


2.2 開關(guān)的選擇
現(xiàn)代自動控制設(shè)備中,都存在一個電子電路——電氣電路的互相連接的問題,一方面要是電子電路的控制信號能夠控制電氣電路的執(zhí)行元件(電動機、電燈、熱水器等),另一方面又要為電子線路的電器電路提供良好的電隔離,以保護電子電路和人身的安全。電子繼電器和光耦合器便能起到這一橋梁的作用。下面簡要介紹各個方案的特點。
方案一:采用繼電器作為控制220V通、斷的開關(guān)。固態(tài)繼電器(SSR)與機電繼電器相比,是一種沒有機械運動,不含運動零件的繼電器,但它具有與機電繼電器本質(zhì)上相同的功能。SSR是一種全部由固態(tài)電子元件組成的無觸點開關(guān)元件,他利用電子元器件的點,磁和光特性來完成輸入與輸出的可靠隔離,利用大功率三極管,功率場效應(yīng)管,單項可控硅和雙向可控硅等器件的開關(guān)特性,來達到無觸點,無火花地接通和斷開被控電路。選用SRD-05VCD-SL-C繼電器最大電路可達到10A,即繼電器的正常工作范圍為0到2200瓦,可以給大部分家用電器供電。
2.3 顯示方式選擇
在模擬電子和數(shù)字電子中,常用顯示數(shù)據(jù)的有數(shù)碼管和液晶顯示器。
方案一:采用LED數(shù)碼管顯示。雖然功耗低,控制簡單,但卻只能顯示數(shù)字和一些簡單的字符,而且顯示信息少,需要較多位的數(shù)碼管,占用了較多的單片機I/O口,沒有較好的人機界面。
2.4 時鐘的實現(xiàn)及單片機的選擇
時鐘的實現(xiàn)可已通過使用時鐘芯片或者單片機的定時器實現(xiàn)。下面簡要介紹幾種方案的特點。單片機僅用于控制繼電器、鍵盤,實現(xiàn)時鐘和定時,用51結(jié)構(gòu)的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列(20引腳)或STC的所有單片機都可以實現(xiàn)。根據(jù)在學(xué)校比較流行的學(xué)習(xí)單片機是AT89SXX系列,而且AT89S52單片機便宜,購買方便,故單片機選用AT89S52單片機。
方案一:時鐘通過使用時鐘芯片來實現(xiàn),控制部分通過使用單片機來實現(xiàn)。時鐘芯片種類非常多,有內(nèi)置晶振及充電電池的,也有外置晶振的,現(xiàn)在流行的時鐘芯片有DS1302、 DS1307、PCF8485、SB2068等。使用時鐘芯片可以得到準確的時鐘走時,可用簡單的程序?qū)崿F(xiàn)定時開關(guān)插座的定時功能。
方案二:時鐘通過單片機的內(nèi)部定時器來實現(xiàn)時鐘。單片機的內(nèi)部定時器可實現(xiàn)較為精確的時鐘走時,定時50毫秒的誤差率極小,可達到定時開關(guān)插座的使用要求。使用單片機內(nèi)部定時器可簡化硬件電路,可以節(jié)省開支,但是編程的難度有所提高。
本次設(shè)計的時鐘走時用DS1302達到定時開關(guān)插座的使用要求,時鐘芯片可以使時間更準確,單片機掉電DS1302時鐘芯片的時間也會準確,所以選用方案一。
2.5 按鍵控制部分的實現(xiàn)
時鐘時間和定時時間的設(shè)置功能可以通過按鍵來實現(xiàn)。按鍵的實現(xiàn)可以通過以下兩種方案實現(xiàn):
使用矩陣鍵盤實現(xiàn)。矩陣鍵盤可以用較少的I/O口實現(xiàn)多個按鍵功能,能節(jié)省更多的I/O口,利于系統(tǒng)擴展功能。
根據(jù)本定時開關(guān)插座的設(shè)置要求,要用到5個按鍵。通過兩個方案的對比,方案二的實施辦法更符合要求。
3  主要元器件原理及其應(yīng)用
本次設(shè)計中主要器件有繼電器、51系列單片機AT89S52、LCD1602、5V穩(wěn)壓芯片7805,在介紹系統(tǒng)的硬件設(shè)計之前,下面先簡要介紹一下這些關(guān)鍵器件的原理及應(yīng)用。
3.1繼電器介紹
繼電器是一種電子控制器件,它具有控制系統(tǒng)(又稱輸入回路)和被控制系統(tǒng)(又稱輸出回路),通常應(yīng)用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關(guān)”。故在電路中起著自動調(diào)節(jié)、安全保護、轉(zhuǎn)換電路等作用。
3.1.1繼電器的繼電特性
繼電器的輸入信號x從0連續(xù)增加達到銜鐵開始吸合時的動作值xx,繼電器的輸出信號立刻繼續(xù)增大,輸出信號y將不再起變化。當(dāng)輸入量x從某一大于xx值下降到xf,繼電器開始釋放,常開觸點斷開。我們把繼電器的這種特性叫做繼電特性,也叫繼電器的輸入-輸出特性。
釋放值xf與動作值xx的比值叫做反饋系數(shù),即Kf=xf/xx。
觸點上輸出的控制功率Pc與線圈吸收的最小功率P0之比叫做繼電器的控制系數(shù),即Kc=Pc/P0。
3.1.2 繼電器工作原理及特性
(1)電磁繼電器的工作原理和特性
電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產(chǎn)生電磁效應(yīng),銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當(dāng)線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導(dǎo)通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區(qū)分:繼電器線圈未通電時處于斷開狀態(tài)的靜觸點,稱為“常開觸點”;處于接通狀態(tài)的靜觸點稱為“常閉觸點”。
(2)熱敏干簧繼電器的工作原理和特性
熱敏干簧繼電器是一種利用熱敏磁性材料檢測和控制溫度的新型熱敏開關(guān)。它由感溫磁環(huán)、恒磁環(huán)、干簧管、導(dǎo)熱安裝片、塑料襯底及其他一些附件組成。熱敏干簧繼電器不用線圈勵磁,而由恒磁環(huán)產(chǎn)生的磁力驅(qū)動開關(guān)動作。恒磁環(huán)能否向干簧管提供磁力是由感溫磁環(huán)的溫控特性決定的。
(3)固態(tài)繼電器(SSR)的工作原理和特性
固態(tài)繼電器是一種兩個接線端為輸入端,另外兩個接線端為輸出端的四端器件,中間采用隔離器件實現(xiàn)輸入輸出的電隔離。
固態(tài)繼電器按負載電源類型可分為交流型和直流型。按開關(guān)型式可分為常開型和常閉型。按隔離型式可分為混合型、變壓器隔離型和光電隔離型,其中以光電隔離型最多。
(4)磁簧繼電器
磁簧繼電器是以線圈產(chǎn)生磁場將磁簧管發(fā)生動作的繼電器,為一種線圈傳感裝置。因此磁簧繼電器具有尺寸小、輕量、反應(yīng)速度快、短跳動時間等特性。
當(dāng)整塊鐵磁金屬或者其它導(dǎo)磁物質(zhì)與之靠近的時候發(fā)生動作,開通或者閉合電路。由永久磁鐵和干簧管組成。永久磁鐵、干簧管固定在一個不導(dǎo)磁也不帶有磁性的支架上。以永久磁鐵的南北極的連線為軸線,這個軸線應(yīng)該與干簧管的軸線重合或者基本重合。由遠及近的調(diào)整永久磁鐵與干簧管之間的距離,當(dāng)干簧管剛好發(fā)生動作(對于常開的干簧管,變?yōu)殚]合;對于常閉的干簧管,變?yōu)閿嚅_)時,將磁鐵的位置固定下來。這時,當(dāng)有整塊導(dǎo)磁材料,例如鐵板同時靠近磁鐵和干簧管時,干簧管會再次發(fā)生動作,恢復(fù)到?jīng)]有磁場作用時的狀態(tài);當(dāng)該鐵板離開時,干簧管即發(fā)生相反方向的動作。磁簧繼電器結(jié)構(gòu)堅固,觸點為密封狀態(tài),耐用性高,可以作為機械設(shè)備的位置限制開關(guān),也可以用以探測鐵制門、窗等是否在指定位置。
(5)光繼電器
光繼電器為AC/DC并用的半導(dǎo)體繼電器,是發(fā)光器件和受光器件一體化的器件。輸入側(cè)和輸出側(cè)電氣性絕緣,但信號可以通過光信號傳輸。
其特點為壽命為半永久性、微小電流驅(qū)動信號、高阻抗絕緣耐壓、超小型、光傳輸、無接點等。主要應(yīng)用于量測設(shè)備、通信設(shè)備、保全設(shè)備、醫(yī)療設(shè)備等。
3.1.3 繼電器主要產(chǎn)品技術(shù)參數(shù)
(1)額定工作電壓
額定工作電壓是指繼電器正常工作時線圈所需要的電壓,也就是控制電路的控制電壓,根據(jù)繼電器的型號不同,可以是交流電壓,也可以是直流電壓。
(2)直流電阻
直流電阻是指繼電器中線圈的直流電阻,可以通過萬能表測量。
(3)吸合電流
吸合電流是指繼電器能夠產(chǎn)生吸合動作的最小電流。在正常使用時,給定的電流必須略大于吸合電流,這樣繼電器才能穩(wěn)定地工作。而對于線圈所加的工作電壓,一般不要超過額定工作電壓的1.5倍,否則會產(chǎn)生較大的電流而把線圈燒毀。
(4)釋放電流
釋放電流是指繼電器產(chǎn)生釋放動作的最大電流。當(dāng)繼電器吸合狀態(tài)的電流減小到一定程度時,繼電器就會恢復(fù)到未通電的釋放狀態(tài)。這時的電流遠遠小于吸合電流。
(5)觸點切換電壓和電流
觸點切換電壓和電流是指繼電器允許加載的電壓和電流。它決定了繼電器能控制電壓和電流的大小,使用時不能超過此值,否則很容易損壞繼電器的觸點。
3.1.4 繼電器的選用
(1)先了解必要的條件
①控制電路的電源電壓,能提供的最大電流;
②被控制電路中的電壓和電流;
③被控電路需要幾組、什么形式的觸點。選用繼電器時,一般控制電路的電源電壓可作為選用的依據(jù)?刂齐娐窇(yīng)能給繼電器提供足夠的工作電流,否則繼電器吸合是不穩(wěn)定的。
(2)查閱有關(guān)資料確定使用條件后,可查找相關(guān)資料,找出需要的繼電器的型號和規(guī)格號。若手頭已有繼電器,可依據(jù)資料核對是否可以利用。最后考慮尺寸是否合適。
(3)注意器具的容積。若是用于一般用電器,除考慮機箱容積外,小型繼電器主要考慮電路板安裝布局。對于小型電器,如玩具、遙控裝置則應(yīng)選用超小型繼電器產(chǎn)品。
通過上面的性能了解和比較,及考慮的器件的性價比,本設(shè)計選擇電磁繼電器。
3.2 單片機AT89S52介紹
AT89S52單片機片內(nèi)集成256字節(jié)程序運行空間、8K字節(jié)Flash存儲空間,支持最大64K外部存儲擴展。根據(jù)不同的運行速度和功耗的要求,時鐘頻率可以設(shè)置在0~33M之間。片內(nèi)資源有4組I/O控制端口、3個定時器、8個中斷、軟件設(shè)置低能耗模式、看門狗和斷電保護。可以在4V到5.5V寬電壓范圍內(nèi)正常工作。不斷發(fā)展的半導(dǎo)體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數(shù)字芯片就可以制成下載線。根據(jù)不同場合的要求,這款單片機提供了多種封裝,本次設(shè)計根據(jù)最小系統(tǒng)有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝,如圖3.1所示。下面對定時開關(guān)系統(tǒng)中使用到的管腳進行簡單說明。
圖3.1 DIP-40封裝89S52引腳圖
P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅(qū)動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當(dāng)訪問外部程序和數(shù)據(jù)存儲器時,P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻。
P1口:P1口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P1 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。
P2口:P2口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動4個TTL 邏輯電平。對P2 端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。
P3 口:P3口是一個具有內(nèi)部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅(qū)動4個TTL邏輯電平。對P3端口寫“1”時,內(nèi)部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。
RST——復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將是單片機復(fù)位。
3.3 時鐘DS1302介紹
DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發(fā)方式一次傳送多個字節(jié)的時鐘信號或RAM數(shù)據(jù)。DS1302內(nèi)部有一個31×8的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。  
3.3.1 引腳功能及結(jié)構(gòu)   
     DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關(guān)閉的情況下,也能保持時鐘的連續(xù)運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當(dāng)Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當(dāng)Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復(fù)位/片選線,通過把RST輸入驅(qū)動置高電平來啟動所有的數(shù)據(jù)傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節(jié)或多字節(jié)數(shù)據(jù)的傳送手段。當(dāng)RST為高電平時,所有的數(shù)據(jù)傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數(shù)據(jù)輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。 下圖為DS1302的引腳功能圖:

DS1302封裝圖
3.3.2 DS1302的控制字節(jié)
     DS1302 的控制字如圖2所示?刂谱止(jié)的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數(shù)據(jù)寫入DS1302中,位6如果為0,則表示存取日歷時鐘數(shù)據(jù),為1表示存取RAM數(shù)據(jù);位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節(jié)總是從最低位開始輸出。

3.3.3 數(shù)據(jù)輸入輸出(I/O)  
     在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數(shù)據(jù)被寫入DS1302,數(shù)據(jù)輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數(shù)據(jù),讀出數(shù)據(jù)時從低位0位到高位7。
3.3.4 DS1302的寄存器   
     DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關(guān),存放的數(shù)據(jù)位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。   
     此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發(fā)寄存器及與RAM相關(guān)的寄存器等。時鐘突發(fā)寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內(nèi)容。 DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;另一類為突發(fā)方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節(jié),命令控制字為FEH(寫)、FFH(讀)。  
3.3.5 DS1302實時顯示時間的硬件

     DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖3示出DS1302與89C2051的連接圖,其中,時鐘的顯示用LCD。
3.3.6 DS1302與CPU的連接   
     實際上,在調(diào)試程序時可以不加電容器,只加一個32.768kHz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時顯示實時溫度。只要占用CPU一個口線即可。 LCD還可以換成LED,還可以使用北京衛(wèi)信杰科技發(fā)展有限公司生產(chǎn)的10位多功能8段液晶顯示模塊LCM101,內(nèi)含看門狗(WDT)/時鐘發(fā)生器及兩種頻率的蜂鳴器驅(qū)動電路,并有內(nèi)置顯示RAM,可顯示任意字段筆劃,具有3-4線串行接口,可與任何單片機、IC接口。功耗低,顯示狀態(tài)時電流為2μA (典型值),省電模式時小于1μA,工作電壓為2.4V~3.3V,顯示清晰。
3.3.7 調(diào)試中問題說明
   DS1302 與微處理器進行數(shù)據(jù)交換時,首先由微處理器向電路發(fā)送命令字節(jié),命令字節(jié)最高位Write Protect(D7)必須為邏輯0,如果D7=1,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數(shù)據(jù),D6=1,指定RAM數(shù)據(jù);D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。     在DS1302的時鐘日歷或RAM進行數(shù)據(jù)傳送時,DS1302必須首先發(fā)送命令字節(jié)。若進行單字節(jié)傳送,8位命令字節(jié)傳送結(jié)束之后,在下2個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),或在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。   
DS1302與RAM相關(guān)的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態(tài)為一個8位的字節(jié),其命令控制字為C0H~FDH,其中奇數(shù)為讀操作,偶數(shù)為寫操作;再一類為突發(fā)方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節(jié)。     要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池?梢杂美鲜诫娔X主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調(diào)整時間。
3.4 紅外接收頭IR1308介紹
IR1308是用于紅外遙控接收的小型一體化接收頭,集成紅外線的接收、放大、解調(diào),不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,而體積各普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數(shù)據(jù)傳輸,中心頻率38.0kHz。接收器對外只有3個引腳:OUT、GDN、VCC與單片機接口非常方便,其中1腳接電源(+VCC),2腳GND是地線(0),3腳脈沖信號輸出。
IR1308紅外接收頭
IR1308接收原理:紅外線接收頭把遙控器發(fā)送的數(shù)據(jù)(已調(diào)信號)轉(zhuǎn)換成一定格式的控制指令脈沖(調(diào)制信號、基帶信號),也就是完成紅外線的接收、放大、調(diào)制,還原成發(fā)發(fā)射格式(高、低電位剛好相反)的脈沖信號。最后通過解碼反脈沖信號轉(zhuǎn)換成數(shù)據(jù),從而實現(xiàn)數(shù)據(jù)的傳輸。
發(fā)射調(diào)制信號與接收頭輸出的脈沖信號比較圖
接收解碼的關(guān)鍵是如何識別“0”和“1”,從上面位的定義我們發(fā)現(xiàn)“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為“0.56ms”,“1”為1.68ms,所以必須根據(jù)高電平的寬度區(qū)別“0”和“1”。如果從0.56ms低電平過后開始延時,0.56ms以后,若讀到的電平為低,說明該位為“0”,反之則為“1”,為了可靠起見,延時必須比0.56ms長一些,但不能超過1.12ms,否則如果該位為“0”,讀到的已是下一位的高電平,因此取(1.12ms+0.56ms)/2=0.84ms最為可靠,一般取0.84ms左右均可。也可以利用兩個下降沿的時間長短判定“0”和“1“。
3.5 DS18B20介紹
DS18B20數(shù)字溫度計是DALLAS公司生產(chǎn)的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統(tǒng),具有線路簡單,在一根通信線,可以掛很多這樣的數(shù)字溫度計,十分方便。
3.5.1 DS18B20的特點:
DS18B20 單線數(shù)字溫度傳感器,即“一線器件”,其具有獨特的優(yōu)點:
( 1 )采用單總線的接口方式 與微處理器連接時僅需要一條口線即可實現(xiàn)微處理器與 DS18B20 的雙向通訊。單總線具有經(jīng)濟性好,抗干擾能力強,適合于惡劣環(huán)境的現(xiàn)場溫度測量,使用方便等優(yōu)點,使用戶可輕松地組建傳感器網(wǎng)絡(luò),為測量系統(tǒng)的構(gòu)建引入全新概念。
( 2 )測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范圍內(nèi),精度為 ± 0.5°C 。
( 3 )在使用中不需要任何外圍元件。
( 4 )持多點組網(wǎng)功能 多個 DS18B20 可以并聯(lián)在惟一的單線上,實現(xiàn)多點測溫。
( 5 )供電方式靈活 DS18B20 可以通過內(nèi)部寄生電路從數(shù)據(jù)線上獲取電源。因此,當(dāng)數(shù)據(jù)線上的時序滿足一定的要求時,可以不接外部電源,從而使系統(tǒng)結(jié)構(gòu)更趨簡單,可靠性更高。
( 6 )測量參數(shù)可配置 DS18B20 的測量分辨率可通過程序設(shè)定 9~12 位。
( 7 ) 負壓特性電源極性接反時,溫度計不會因發(fā)熱而燒毀,但不能正常工作。
( 8 )掉電保護功能 DS18B20 內(nèi)部含有 EEPROM ,在系統(tǒng)掉電以后,它仍可保存分辨率及報警溫度的設(shè)定值。
DS18B20 具有體積更小、適用電壓更寬、更經(jīng)濟、可選更小的封裝方式,更寬的電壓適用范圍,適合于構(gòu)建自己的經(jīng)濟的測溫系統(tǒng),因此也就被設(shè)計者們所青睞。
3.5.2 DS18B20管腳排列:
1. GND為電源地;
2. DQ為數(shù)字信號輸入/輸出端;
3. VDD為外接供電電源輸入端(在寄生電源接線方式時接地)
3.5.3 DS18B20內(nèi)部構(gòu)成:
高速暫存存儲器由9個字節(jié)組成,當(dāng)溫度轉(zhuǎn)換命令發(fā)布后,經(jīng)轉(zhuǎn)換所得的溫度值以二字節(jié)補碼形式存放在高速暫存存儲器的第0和第1個字節(jié)。單片機可通過單線接口讀到該數(shù)據(jù),讀取時低位在前,高位在后,對應(yīng)的溫度計算:當(dāng)符號位S=0時,直接將二進制位轉(zhuǎn)換為十進制;當(dāng)S=1時,先將補碼變?yōu)樵a,再計算十進制值。
溫度的低八位數(shù)據(jù) 0
溫度的高八位數(shù)據(jù) 1
高溫閥值 2
低溫閥值 3
保留 4
保留 5
計數(shù)剩余值 6
每度計數(shù)值 7
CRC 校驗 8
DS18B20中的溫度傳感器完成對溫度的測量,用16位二進制形式提供,形式表達,其中S為符號位。
例如:
+125℃的數(shù)字輸出07D0H
(正溫度直接把16進制數(shù)轉(zhuǎn)成10進制即得到溫度值 )
-55℃的數(shù)字輸出為 FC90H。
(負溫度把得到的16進制數(shù)取反后加1 再轉(zhuǎn)成10進制數(shù))
3.5.4 DS18B20的工作時序:
初始化時序
主機首先發(fā)出一個480-960微秒的低電平脈沖,然后釋放總線變?yōu)楦唠娖,并在隨后的480微秒時間內(nèi)對總線進行檢測,如果有低電平出現(xiàn)說明總線上有器件已做出應(yīng)答。若無低電平出現(xiàn)一直都是高電平說明總線上無器件應(yīng)答。
做為從器件的DS18B20在一上電后就一直在檢測總線上是否有480-960微秒的低電平出現(xiàn),如果有,在總線轉(zhuǎn)為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應(yīng)存在脈沖,告訴主機本器件已做好準備。若沒有檢測到就一直在檢測等待。
寫操作
寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機先把總線拉低1微秒表示寫周期開始。隨后若主機想寫0,則繼續(xù)拉低電平最少60微秒直至寫周期結(jié)束,然后釋放總線為高電平。若主機想寫1,在一開始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結(jié)束。而做為從機的DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對總線采樣,在采樣期內(nèi)總線為高電平則為1,若采樣期內(nèi)總線為低電平則為0。
讀操作
對于讀數(shù)據(jù)操作時序也分為讀0時序和讀1時序兩個過程。讀時隙是從主機把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數(shù)據(jù)傳輸?shù)絾慰偩上。DS18B20在檢測到總線被拉低1微秒后,便開始送出數(shù)據(jù),若是要送出0就把總線拉為低電平直到讀周期結(jié)束。若要送出1則釋放總線為高電平。主機在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內(nèi)的15微秒時間內(nèi)完成對總線進行采樣檢測,采樣期內(nèi)總線為低電平則確認為0。采樣期內(nèi)總線為高電平則確認為1。完成一個讀時序過程,至少需要60us才能完成
3.4 液晶LCD1602介紹
1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。
1602LCD是指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。


字符型液晶顯示器實物圖
3.4.1 1602LCD的基本參數(shù)及引腳功能
1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應(yīng)用中并無差別,兩者尺寸差別如下圖:

1602LCD尺寸圖
3.4.2 1602LCD主要技術(shù)參數(shù)
顯示容量:16×2個字符
芯片工作電壓:4.5—5.5V
工作電流:2.0mA(5.0V)
模塊最佳工作電壓:5.0V
字符尺寸:2.95×4.35(W×H)mm
引腳功能說明
1602LCD采用標(biāo)準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表所示:
編號
符號
引腳說明
編號
符號
引腳說明
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
使能信號
14
D7
數(shù)據(jù)
7
D0
數(shù)據(jù)
15
BLA
背光源正極
8
D1
數(shù)據(jù)
16
BLK
背光源負極

引腳接口說明表
第1腳:VSS為地電源。
第2腳:VDD接5V正電源。
第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度。               第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。              第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù)。
第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。
第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
第15腳:背光源正極。
第16腳:背光源負極。
3.3.3 1602LCD的指令說明及時序
1602液晶模塊內(nèi)部的控制器共有11條控制指令,如表所示:
序號
指令
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
計數(shù)器地址
10
寫數(shù)到CGRAM或DDRAM)
1
0
要寫的數(shù)據(jù)內(nèi)容
11
從CGRAM或DDRAM讀數(shù)
1
1
讀出的數(shù)據(jù)內(nèi)容

控制命令表
1602液晶模塊的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。(說明:1為高電平、0為低電平)
指令1:清顯示,指令碼01H,光標(biāo)復(fù)位到地址00H位置。
指令2:光標(biāo)復(fù)位,光標(biāo)返回到地址00H。
指令3:光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。
指令4:顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。
指令5:光標(biāo)或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標(biāo)。                指令6:功能設(shè)置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。
指令7:字符發(fā)生器RAM地址設(shè)置。
指令8:DDRAM地址設(shè)置。
指令9:讀忙信號和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
指令10:寫數(shù)據(jù)。
指令11:讀數(shù)據(jù)。
與HD44780相兼容的芯片時序表如下:
讀狀態(tài)
輸入
RS=L,R/W=H,E=H
輸出
D0—D7=狀態(tài)字
寫指令
輸入
RS=L,R/W=L,D0—D7=指令碼,E=高脈沖
輸出
讀數(shù)據(jù)
輸入
RS=H,R/W=H,E=H
輸出
D0—D7=數(shù)據(jù)
寫數(shù)據(jù)
輸入
RS=H,R/W=L,D0—D7=數(shù)據(jù),E=高脈沖
輸出

基本操作時序表
讀寫操作時序如下圖:

讀操作時序

寫操作時序
3.3.4  1602LCD的RAM地址映射及標(biāo)準字庫表

液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,下圖是1602的內(nèi)部顯示地址。
1602LCD內(nèi)部顯示地址
例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。
在對液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時光標(biāo)是自動右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態(tài)。
1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160個不同的點陣字符圖形,如圖10-58所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A”

字符代碼與圖形對應(yīng)圖
3.3.5 1602LCD的一般初始化(復(fù)位)過程
延時15mS
寫指令38H(不檢測忙信號) 延時5mS
寫指令38H(不檢測忙信號) 延時5mS
寫指令38H(不檢測忙信號) 以后每次寫指令、讀/寫數(shù)據(jù)操作均需要檢測忙信號
寫指令38H:顯示模式設(shè)置
寫指令08H:顯示關(guān)閉
寫指令01H:顯示清屏
寫指令06H:顯示光標(biāo)移動設(shè)置
寫指令0CH:顯示開及光標(biāo)設(shè)置
4  系統(tǒng)硬件電路設(shè)計
整個系統(tǒng)的硬件設(shè)計可以分為四個模塊:單片機最小系統(tǒng)及液晶顯示、繼電器工作電路、鍵盤電路。單片機AT89S52、繼電器、鍵盤、LCD12232及其他外圍電路。單片機最小系統(tǒng)部分是整個系統(tǒng)的智能控制部分,也是整個系統(tǒng)的核心部分。單片機在實現(xiàn)時鐘的同時,也負責(zé)鍵盤檢測,驅(qū)動液晶顯示,實現(xiàn)定時功能,并負責(zé)控制繼電器的通、斷,紅色指示燈的亮、滅指示繼電器的通、斷狀態(tài)。液晶在單片機的控制下顯示時鐘、定時組別及定時時間的信息。繼電器在單片機的控制下實現(xiàn)通、斷,從而達到控制插座通、斷電的目的。
4.1單片機最小系統(tǒng)及液晶顯示
單片機控制電路是整個系統(tǒng)的核心,完成數(shù)據(jù)處理和控制任務(wù)。電路原理圖如圖4.3所示。
本次設(shè)計采用的單片機的型號為AT89S52。單片機晶振為作用是為系統(tǒng)提供基本的時鐘信號。通常一個系統(tǒng)共用一個晶振,便于各部分保持同步。有些通訊系統(tǒng)的基頻和射頻使用不同的晶振,而通過電子調(diào)整頻率的方法保持同步。
C1、C2叫負載電容。一般單片機的晶振工作于并聯(lián)諧振狀態(tài),也可以理解為諧振電容的一部分。它是根據(jù)晶振廠家提供的晶振要求的負載電容選值的,換句話說,晶振的頻率就是在它提供的負載電容下測得的,能最大限度的保證頻率值的誤差。也能保證溫漂等誤差。兩個電容的取值都是相同的,或者說相差不大,如果相差太大,容易造成諧振的不平衡,容易造成停振或者干脆不起振。P2是單片機的下載口,用于對單片機燒入程序。按鍵S及其外圍電路是實現(xiàn)單片機的硬件復(fù)位功能。
P5的管腳與液晶12232的管腳相對應(yīng)(即作為液晶的底座)。LCD12232可以顯示4行,所要顯示的信息有:第一個行顯示時鐘的時(兩位)、分(兩位)、秒(兩位),時、分、秒之間用“:”隔開。在時鐘前面顯示大寫字母“T:0”,其中數(shù)字式從0到5可變的,顯示的是當(dāng)前定時的組別。第二行顯示的是字母“begin:”,冒號后面顯示的是當(dāng)前定時開始的時(兩位)、分(兩位),時、分之間用“:”隔開。第三行顯示的是字母“stop:”,冒號后面顯示的是當(dāng)前定時結(jié)束的時(兩位)、分(兩位),時、分之間用“:”隔開。第四行僅顯示運行模式信息“mod:0”,數(shù)字部分可在0和1變化。
圖4.3 單片機最小系統(tǒng)及液晶顯示
                                                                     
4.2 繼電器驅(qū)動電路
繼電器的驅(qū)動電路如圖4.4所示。這是典型的繼電器驅(qū)動電路。單片機是一個弱電器件,一般情況下它們大多工作在5V甚至更低。。驅(qū)動電流在mA級以下。而要把它用于一些大功率場合,比如繼電器驅(qū)動,顯然是不行的。所以就要有一個環(huán)節(jié)來銜接,這個環(huán)節(jié)就是所謂的“功率驅(qū)動”。繼電器驅(qū)動就是一個典型的、簡單的功率驅(qū)動環(huán)節(jié)。
圖中三極管8550有兩個作用:一個是起放大作用,一個是起開關(guān)作用(嚴格來講開關(guān)作用是放大作用的極限情況)。P1處連接的是單片機的P2.7口。P2.7口給出低電平時,三極管處于導(dǎo)通狀態(tài),并起放大作用,這樣,繼電器就能得到足夠的驅(qū)動電流來正常工作。當(dāng)P2.7口給出高電平時,三極管不工作,繼電器因沒電流通過而不工作。二極管4148起到保護作用。發(fā)光二極管用于指示繼電器是處于導(dǎo)通狀態(tài)(燈亮)還是處于斷開狀態(tài)(燈滅)。
圖4.4 繼電器驅(qū)動電路
4.3鍵盤電路
鍵盤電路如圖4.5所示。使用矩陣鍵盤能用較少的I/O口實現(xiàn)較多的按鍵功能。下面為按鍵實現(xiàn)舉例:假設(shè)按下的是B/S鍵進行如下檢測(4*4鍵盤)
先在P2口輸出 P2  00011111
低四位行會有變化
unsigned char key()
{
              static unsigned int key_count=0;
              inputkey = P2;
              inputkey |= 0X07;
              inputkey=~inputkey;
              if(inputkey)
              {
                            key_count++;
                            if(key_count>2)
                            {
                                          key_count = 0x00;
                                          inputkey = P2;            
                                          inputkey |= 0X07;
                                          inputkey=~inputkey;
                                          if(inputkey)
                                          {
                                                        inputkey=(inputkey>>4)+(inputkey<<4);
                                                        return(inputkey);            
                                          }
                            }
              }
              return(0);
}
通過此方法,就可以計算出其他的鍵值,從而實現(xiàn)按鍵功能。
下面介紹個個按鍵實現(xiàn)的功能:
定時復(fù)位按鍵:用于實現(xiàn)定時時間歸零和繼電器復(fù)位。
加值鍵:用于實現(xiàn)日期、星期、時間和定時時間的加值。
選擇鍵:用于實現(xiàn)當(dāng)前設(shè)置右移一位。
減值鍵:用于實現(xiàn)日期、星期、時間和定時時間的減值。
功能鍵:用于實現(xiàn)進入修改日期、星期和時間,設(shè)定定時時間。
圖4.5鍵盤電路
4.4 DS1302 時鐘電路
4.5 DS18B20溫度傳感器電路
4.6IR1302紅外接外頭電路
4.7 硬件總電路圖
5  系統(tǒng)軟件程序設(shè)計
在本次設(shè)計中,主程序主要是在單片機的控制下,對鍵盤的輸入信息進行存儲分析,驅(qū)動液晶顯示出相關(guān)信息,并通過對比分析定時時間與時鐘,控制繼電器的通、斷,從而達到控制插座的通、斷電。在這個過程中,單片機首先進行初始化,包括設(shè)置單片機各個端口的方向,各個變量的初始化,液晶顯示初始化、繼電器斷開以及單片機振蕩頻率的校準等。單片機每分鐘對定時時間和時鐘進行一次比較,當(dāng)設(shè)定時間到,斷電器接通,反之?dāng)嚯娨恢碧幱跀嚅_狀態(tài)。其具體的源程序見附錄2。整個系統(tǒng)軟件設(shè)計的流程圖如圖5.1所示。

主程序軟件流程圖
5.2時鐘DS1302程序設(shè)計
時鐘程序軟件流程
5.3 IR1308程序設(shè)計

紅外接收解碼流程圖

5.4 DS18B20溫度傳器程序設(shè)計

6  系統(tǒng)軟硬件的制作與調(diào)試
6.1 硬件的制作
電路設(shè)計軟件Protel是目前國內(nèi)最流行的通用CAD軟件,它是將電路原理圖設(shè)計、PCB板圖設(shè)計、電路仿真和PLD設(shè)計等多個實用工具軟件組合后構(gòu)成的CAD工作平臺。
本設(shè)計是首先在Protel軟件上畫好單片機最小系統(tǒng)、液晶與單片機連接電路、繼電器的外圍電路及與單片機的鏈接電路、鍵盤與單片機的連接電路、等的原理圖,然后對原理圖進行仿真,仿真無誤后生成網(wǎng)絡(luò)表后裝載到PCB環(huán)境中生成需要的PCB。其中,單片機控制繼電器部分為了確保其在實際應(yīng)用的準確性,首先在萬用板上焊接好繼電器電路,并接上插座后對其進行驗證,證明使用本電路能正常工作后,然后焊接元器件,完成了定時快關(guān)插座的硬件電路板的制作。
6.2 調(diào)試方案
根據(jù)電路原理圖、把電路板實物做出來后,下一步就是電路板調(diào)試。電路板調(diào)試是最關(guān)鍵的一步,前面所做的電路設(shè)計的成功與否就是在調(diào)試步驟里體現(xiàn)的。本系統(tǒng)的調(diào)試主要分為硬件調(diào)試、軟件調(diào)試和接負載調(diào)試等三大部分。
經(jīng)過初步對定時器的分析設(shè)計后,在制作硬件電路的同時,調(diào)試也在穿插進行。這樣有利于問題的分析和解決,不會造成問題的積累,而且不會因為一個小問題而影響整體電路的檢查,從而可以節(jié)約大量的調(diào)試時間。例如當(dāng)單片機控制模塊硬件部分制作好后,就可以先調(diào)試顯示程序,在LCD1602上顯示一個簡單的數(shù)字0,顯示結(jié)果正確了,說明LCD顯示電路與單片機的連接電路是正確的,單片機能正常工作。軟件編程中,首先完成單元功能模塊的調(diào)試,然后進行系統(tǒng)的調(diào)試,調(diào)試的整體思想和步驟和硬件大同小異。插座接負載調(diào)試是最重要的一部分,雖然軟硬件調(diào)試都通過了,但是插座接負載調(diào)試過程中可能會出現(xiàn)新的問題。
6.3 硬件電路調(diào)試
硬件單元電路制作好后,在上電之前,應(yīng)該先用萬用表對各個獨立元件進行檢查,在排除了虛焊、短路、斷路等問題后再通電進行電路功能的調(diào)試。具體調(diào)試過程如下所述:
6.3.1 獨立元件的檢測
任何組裝好的電子電路,在通電調(diào)試之前,必須認真檢查電路連線是否有誤。檢查的方法是對照電路圖,按一定的順序逐級對應(yīng)檢查,例如:對電路板的電阻阻值進行確定,可以通過讀取電阻上的色環(huán)進行確認。特別是注意電源是否接錯,電源與地是否有短接,集成電路和晶體管的引腳是否接錯,輕輕撥一撥元器件,觀察焊點是否牢固等。用萬用表檢測是不是有短路和斷路現(xiàn)象。
給系統(tǒng)上電后,看下電源(綠色)燈亮不亮。假如不亮,就要檢查電源指示燈發(fā)光二極管的好壞。還要用萬用表測一下單片機等芯片的電壓是不是符合要求。假如不是,就要進行各個芯片的檢查,看一下各個芯片的引腳有沒有焊好,芯片是否損壞。
6.3.2 電源電路的調(diào)試
電源電路作為整個系統(tǒng)的供電電路,其輸出電壓必須在單片機的正常工作電壓范圍(4V到5.5V之間)內(nèi)。在電源通220V交流電之前,一定要檢查電路是否接錯,特別是極性電容是否有接反,防止出現(xiàn)極性電容接反而造成爆電容的現(xiàn)象。在確保器件接法無誤的情況下,接通電源,并用萬用表測量輸出電壓,得到其電壓為5.3V。符合系統(tǒng)的正常工作電壓要求。接上干電池,斷開交流電,由于干電池是經(jīng)過4007二極管后再給系統(tǒng)供電,4007二極管的壓降為0.7V,測量得到新電池狀態(tài)下輸出電壓為5.4V,達到系統(tǒng)正常工作電壓要求。然后再用兩部分電源同時供電,由于干電池部分有4007二極管保護,不會出現(xiàn)干電池在電壓低于5V時會損耗功率的情況,實現(xiàn)了其儲備電源的作用。
6.3.3 單片機最小系統(tǒng)的調(diào)試
單片機AT89S52最小系統(tǒng)的檢測分為硬件調(diào)試及軟件調(diào)試。硬件調(diào)試時用萬用表測量單片機的工作電壓及各個管腳的電壓是否達到正常工作電壓。在此檢測中還要燒入程序?qū)Ω鱾I/O口的輸出進行測試,查看I/O口所輸出的電壓是否與程序所控制值一致。例如:編寫一個調(diào)試程序,使的所有I/O口從P1.0口開始依次賦予低電平,用萬用表測量其輸出電壓,確定是否與程序所付值一致,一致則證明正確;然后又對其依次賦予高電平,確定是否與程序所付值一致,一致則證明正確。兩次測試都正確,證明單片機最小系統(tǒng)是正常工作的。
6.3.4 顯示模塊的調(diào)試
顯示模塊硬件連接相對比較簡單,檢查與調(diào)試過程中也沒有遇到什么困難。這次設(shè)計中,結(jié)果用LCD1602來顯示。在給系統(tǒng)上電后,要觀察LCD的亮度,為了減少功耗,LCD1602的背景燈的接地管腳同過I/O口P2.0的高低電平實現(xiàn)滅亮的要求,這種接法其背光燈會較暗,但是能夠滿足其在白天和夜晚都可以看清楚顯示內(nèi)容的要求。
6.3.5 鍵盤模塊的調(diào)試
鍵盤是用7個按鍵盤實現(xiàn)。在硬件檢測時,首先用萬用表檢測每個按鍵之間的鏈接是否有斷線的情況,若是有斷線,查出后可以使用熔化后的焊錫將線接通。然后再看每個按鍵按下時反饋回單片機的電平是否與預(yù)期的一致,若不一致這要看原理圖是否有錯,在畫PCB時是否有錯,然后再查看線路是否有斷線情況。在檢測鍵盤過程中,因為存在連線不好的情況,其中一個按鍵的功能有時候能實現(xiàn),有時候不能實現(xiàn)。經(jīng)檢查排除后,發(fā)現(xiàn)是與此按鍵相連的一條線被腐蝕是過度了,造成接觸不良,用焊錫加固后解決了此問題。
6.3.6 繼電器電路的調(diào)試
繼電器的外圍電路硬件檢測的工作最為簡單,首先是測出三極管8550在給出工作電平時它的各個管腳的電壓值,然后看看是否工作在放大狀態(tài)。三極管工作在放大狀態(tài),就能給繼電器提供足夠的電流,從而驅(qū)動繼電器工作。
通過對定時開關(guān)插座的硬件制作與調(diào)試,系統(tǒng)的實物圖如附錄3所示。
6.4 軟件調(diào)試
軟件的調(diào)試包括程序本身語法的調(diào)試和在電路板上功能的調(diào)試兩種。在編程過程中,為了得到滿足要求的用戶程序,一般都需要有一個對程序的調(diào)試過程,甚至需要經(jīng)過多次反復(fù)的調(diào)試才能完成。在調(diào)試程序前為了調(diào)試方便,避免程序出錯時將單片機拆來拆去的麻煩,在電路板上做了一個下載口,可以將下載線直接插到電路板上進行調(diào)試,這樣就可以一邊進行調(diào)試,一邊修改程序。程序用Keil C軟件寫好后,先用該軟件的編譯功能編譯一下所寫的程序,檢查程序是有語法錯誤或其他的錯誤。如果有錯誤則根據(jù)提示進行分析將錯誤改過來直至編譯成功為止。當(dāng)完成了語法調(diào)試后,再根據(jù)定時開關(guān)插座設(shè)計的功能要求修改程序完成系統(tǒng)的各個功能。在編寫程序的時候一定要根據(jù)系統(tǒng)實現(xiàn)的功能和連接方式,認真分析,畫出系統(tǒng)主程序、時鐘程序、設(shè)置程序的流程圖,并根據(jù)畫出的流程圖一步一步的去寫出程序。
根據(jù)系統(tǒng)的特點,軟件系統(tǒng)應(yīng)該按模塊進行調(diào)試,當(dāng)各個模塊調(diào)試通過后再將各個模塊整合起來,進行綜合調(diào)試,直到得到預(yù)期結(jié)果。軟件模塊大致可以分為四部分:LCD1602顯示模塊、時鐘模塊、按鍵設(shè)置模塊、繼電器控制模塊。在這四個模塊中,調(diào)試的順序比較固定:首先調(diào)試顯示模塊,因為只有顯示正確后,才能夠顯示按鍵操作結(jié)果及時鐘信息,以便和預(yù)期結(jié)果比較看是否正確。接著調(diào)試時鐘程序,然后調(diào)試按鍵模塊,最后調(diào)試繼電器控制模塊。
與純粹的C語言編程不同的是,單片機編程要考慮到硬件的設(shè)計,所有程序的編寫都是根據(jù)硬件資源進行。開始程序下載到單片機的時候,液晶沒有顯示,在排除了程序語法錯誤和板子虛焊等原因后,還是沒有顯示,經(jīng)過仔細檢查發(fā)現(xiàn),原來是軟件編寫中把單片機和液晶接線的引腳定義錯了,改正后即得到了顯示結(jié)果。在鍵盤掃描時,在編譯過程中沒有錯誤,但是因為其中三個按鍵的鍵值計算錯誤,在按鍵按下時沒有反應(yīng)到液晶顯示上,然后重新計算出正確的鍵值后即得到預(yù)期結(jié)果。
6.5 整體系統(tǒng)調(diào)試
定時開關(guān)插座的硬件模塊和軟件模塊分別調(diào)試通過后,接下來就可以進行系統(tǒng)的整體測試。在剛開始的時候也遇到了一些問題。在定時方面,單組定時都能在規(guī)定的時間內(nèi)開始和結(jié)束,但是當(dāng)多組定時有重疊的部分時,由于考慮不周全,在一組結(jié)束時繼電器會閃一下,這樣會造成插座供電也會閃一下。這種狀況很容易將負載損壞,最起碼會對負載造成傷害。為了解決這個問題,我用了一個中間變量ray來解決定時時間有重疊時的閃爍問題。首先對ray進行歸零,在判定定時開始和結(jié)束時,每組定時開始都對ray的進行加1操作,結(jié)束時對ray進行減1操作,然后通過判斷ray的值來控制繼電器。當(dāng)ray為非0值時,繼電器導(dǎo)通,當(dāng)ray為0值時繼電器斷開。這樣,就能避免再有定時疊加時組別之間交接時出繼電器閃爍的問題。
對定時開關(guān)插座進行負載調(diào)試時,負載所接的是額定功率為40W的風(fēng)扇,并在一天24小時中的每一個小時對6定時進行測試。首先是每組定時時間范圍為1分鐘,定時組別之間的時間間隔也為一分鐘。在設(shè)定時間內(nèi),都能準確的對插座上的風(fēng)扇進行通電和斷電的操作。然后對每組定時時間范圍分別設(shè)為10分鐘,定時開關(guān)插座也能實現(xiàn)對風(fēng)扇在定時時間范圍內(nèi)供電,其他時間則停止(供電)的操作。接著分別對6組定時分別進行各種時間范圍的測試,其中包括定時組別的定時時間又交集的情況。例如,要在定時組別1中定時,要求在每天的13時插座斷電、14時插座供電,則可在開始時間數(shù)組begin中輸入13:00,在結(jié)束時間數(shù)組end中輸入14:00。在定時組別的定時時間有交集時,定時開關(guān)插座在兩組時間的開始和結(jié)束的轉(zhuǎn)換過程中插座供電不會出現(xiàn)跳變,從而不會對電器(風(fēng)扇)產(chǎn)生影響,達到了設(shè)計時要求如果兩個或兩個以上的定時時間交集時繼電器不會出現(xiàn)快速通、斷的情況,即不會出現(xiàn)插座供電跳變的情況。
繼電器正常工作允許通過的最大電流是10A,額定工作電壓為220V,即允許通過的功率為2200W。但是負載的功率過大會影響到系統(tǒng)的運行。通過測試,系統(tǒng)能承受的最大功率為1500W。當(dāng)插座的負載在超過1500W(由于缺少設(shè)備,所以是用40W的風(fēng)扇、550W的熱水器、1500W和1800W的熱得快進行測試的)時,繼電器在跳變時會造成單片機重啟,影響了系統(tǒng)的正常工作。
7  結(jié)論
本次畢業(yè)設(shè)計是一個基于單片機AT89S52的定時開關(guān)插座,包括方案選擇、軟硬件設(shè)計、單片機最小系統(tǒng)、繼電器驅(qū)動電路和鍵盤電路調(diào)試、硬件測試結(jié)果及解決在電路調(diào)試時遇到的問題。在此期間主要完成的工作包括以下幾個方面:
(1)設(shè)計初期收集繼電器、單片機等相關(guān)資料,對定時開關(guān)插座的實現(xiàn)原理有比較清晰的了解。
(2)確定系統(tǒng)框圖,對電源模塊、單片機最小系統(tǒng)模塊、鍵盤電路模塊和繼電器及其驅(qū)動電路模塊等的實施方案進行比較,確定最終的定時開關(guān)插座的設(shè)計方案。
(3)根據(jù)定時開關(guān)插座的原理圖制作出硬件電路板,并對系統(tǒng)進行空載調(diào)試和接負載調(diào)試。
(4)根據(jù)系統(tǒng)要實現(xiàn)的定時和時鐘走時等功能編寫出軟件程序,并進行定時功能的調(diào)試及數(shù)據(jù)采集分析。
(5)軟硬件調(diào)試通過后進行整體調(diào)試,并查找定時開關(guān)插座系統(tǒng)存在的缺陷,進行定時功能的完善。
(6)最終系統(tǒng)定時組別可以達到二組,定時時間范圍根據(jù)模式的不同可以分為24小時內(nèi)任意時間(最小定時范圍為一分鐘)和100小時沒任意時間(最小定時范圍為一分鐘)兩種定時方式。
本次設(shè)計完成了一款定時開關(guān)插座系統(tǒng)。該系統(tǒng)采用51單片機AT89S52編程控制繼電器的通、斷來實現(xiàn)控制插座的通、斷電,而繼電器的通、斷由定時組別確定。在定時范圍內(nèi)繼電器導(dǎo)通,否則斷開。并用LCD12232顯示出時鐘及定時時間等信息。
當(dāng)時鐘走到定時開始時間時,繼電器接通,插座給負載供電;時鐘走到定時結(jié)束時間時,繼電器斷開,插座停止給負載供電?偟膩碚f,本次設(shè)計還是比較成功的,各項指標(biāo)都符合設(shè)計要求。由于畢業(yè)設(shè)計經(jīng)費有限及有的元器件比較難購買到,故定時開關(guān)插座系統(tǒng)存在一定的缺陷,可以做進一步的完善:例如可以用一個按鍵實現(xiàn)多個功能,這樣子按鍵數(shù)目就會大大減少,減小系統(tǒng)的體積。電源部分可以用高頻磁芯代替變壓器,這樣設(shè)計出來的電源重量及體積會更小,能使電源模塊更加小巧玲瓏,從而減小整個系統(tǒng)的重量及體積,便于使用等等。
本次設(shè)計的定時開關(guān)插座自動化程度較高,符合定時開關(guān)插座的發(fā)展方向。系統(tǒng)適用于日常家庭電器供電,如:給電風(fēng)扇定時供電,給水塔定時抽水等等,具有較高的實用價值。系統(tǒng)中的定時組數(shù)經(jīng)簡單改造后能增加組數(shù),繼電器改用能承受更大的電流的繼電器或者光耦合器,能使定時開關(guān)的應(yīng)用更廣,具有一定的應(yīng)用前景。
   
本畢業(yè)設(shè)計是在薛老師悉心的關(guān)懷與指導(dǎo)下完成,在此對老師獻上最衷心地感謝。李老師從畢業(yè)設(shè)計一開始就對我們嚴格要求,每周的周一都會和我們開見面會,詢問我們的畢設(shè)進度并了解我們遇到的困難,積極協(xié)助我們解決設(shè)計過程中的各種難題,并要求我們每天記錄在畢業(yè)設(shè)計中所作的工作進度及遇到的問題,讓我們?nèi)グl(fā)現(xiàn)問題,解決問題。在我遇到難已解決的問題心中急躁時,薛老師總是及時的給予鼓勵,使我能夠有勇敢的克服困難,把畢設(shè)繼續(xù)進行下去。薛老師對學(xué)生的高度關(guān)注和對工作高度負責(zé)的精神值得我們尊敬,也是我今后走向工作崗位的榜樣。通過本次畢業(yè)設(shè)計,我不僅是對我們所學(xué)知識的一個匯總,同時也是考驗我們學(xué)習(xí)能力和動手能力的一個平臺;讓我們能學(xué)到更多的相關(guān)知識,更重要的是學(xué)到了面對困難的不放棄、不氣餒的態(tài)度,不驕不躁的辦事風(fēng)格,奮發(fā)向上的精神,這些在我今后的生活和學(xué)習(xí)中都是一筆寶貴的財富。
最后,我要再次感謝在畢業(yè)設(shè)計過程中對我提供過制作電路板等工具的同學(xué)和老師,以及在畢業(yè)設(shè)計中對我進行過知道的所有老師和同學(xué)。
參考文獻
[1]  王港元.電子技能基礎(chǔ)基礎(chǔ)[M].成都:四川大學(xué)出版社,2001.                        
[2]  白駒珩,雷曉平.單片計算機及其應(yīng)用[M].北京:高等教育出版社,2004.
[3]  范風(fēng)強,蘭娟麗.單片機語言C51應(yīng)用實戰(zhàn)集錦[M].北京:電子工業(yè)出版社,2005.
[4]  沈紅衛(wèi).基于單片機的只能系統(tǒng)設(shè)計與實現(xiàn)[M].北京:電子工業(yè)出版社,2005.
[5]  馬忠梅,張凱.單片機的C語言應(yīng)用程序設(shè)計[M]. 北京:航空航天大學(xué)出版社,2003.
[6]  汪德彪,郭杰.MCS-51單片機原理及接口技術(shù)[M].北京:電子工業(yè)出版社,2003.
[7]  張曉光.用PIC單片機制作的電源定時插座[J]. 電子制作2010年05期.
[8]  雷道仲,李書成,羅政球 .基于單片機定時開關(guān)的設(shè)計[J].科技廣場,2009.
[9]  羅冬,趙海剛等.基于單片機的紅外遙控定時開關(guān)裝置的設(shè)計[J].機電工程技術(shù) 2010年第39卷第03期.
[10]  譚浩強.C語言程序設(shè)計[M].北京:清華大學(xué)出版社,2005.
[11]  康華光,陳大欽.電子技術(shù)基礎(chǔ)模電部分[M].北京:高等教育出版社,2006.
[12]  戴佳,戴衛(wèi)恒,劉博文.51單片機實例精講[M].北京:電子工業(yè)出版社,2008.
[13]  李瀚蓀.電路分析基礎(chǔ)[M].北京:高等教育出版社,2006.
[14]  劉昌華,易逵.8051單片機C語言應(yīng)用程序設(shè)計與實踐[M].北京:國防工業(yè)出版社,2007.
1
單片機AT89S52最小系統(tǒng)及液晶12232接入電路原理圖
Header20是液晶12232的插座,其中管腳編號與液晶管腳編號一致。
鍵盤電路原理圖
繼電器驅(qū)動電路


完整的Word格式文檔51黑下載地址:
智能定時插座畢業(yè)論文.doc (4.69 MB, 下載次數(shù): 58)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:150219 發(fā)表于 2018-4-17 23:07 | 只看該作者
感謝fenxiang
回復(fù)

使用道具 舉報

板凳
ID:243748 發(fā)表于 2018-6-16 17:38 來自手機 | 只看該作者
有程序一起分享下嗎
回復(fù)

使用道具 舉報

地板
ID:386381 發(fā)表于 2018-10-3 04:13 來自手機 | 只看該作者
有頭沒有尾,只有思路,沒有程序望梅止渴的感覺。
回復(fù)

使用道具 舉報

5#
ID:155956 發(fā)表于 2019-3-25 17:16 | 只看該作者
感謝分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表