關于智能家居的設計使用
題 目: 基于單片機的智能定時插座設計
系 部: 電子科學系
專 業:
姓 名:
學 號:
指導教師:
摘要 隨著家用電器的越來越普及和人們生活節奏的加快,人們對電器的依賴性進一步提高,對電器的定時需求也進一步增大。定時開關插座可用于電飯煲、飲水機、電視機、電腦、電動車電池的充電、定時開關電熱毯等需要定時供電的場合。定時開關插座的使用能夠做到節能、安全、方便等。 本文介紹了一種基于AT89S52單片機的定時開關插座設計方案。該系統是通過AT89S52,實現時鐘的24小時制或者100小時制的時鐘走時,并通過LCD1602顯示出來。繼電器的通、斷通過單片機控制,通過控制繼電器的通斷可以達到控制插座通斷的目的。 本文首先介紹定時開關插座設計要實現的功能,接著闡述系統電路的設計及原理說明,包括設計方案選擇、關鍵元器件介紹、電路設計說明(包括DS1302的電路、IR1308、18b20、鍵盤、單片機控制電路、液晶1602顯示、繼電器工作電路)軟件設計流程以及系統的測試。最后總結了定時開關插座設計完成的任務,分析系統的不足并提出了系統的應用展望。 關鍵詞:定時開關 繼電器 AT89S52單片機 液晶LCD1602 智能。 目錄 引言 1 設計要求及構思 1.1 設計要求 1.2 設計構思 2 設計方案分析確定 2.1 系統框圖 2.2 開關的選擇 2.3 顯示方式選擇 2.4 時鐘的實現及單片機的選擇 2.5 按鍵控制部分的實現 3 主要元器件原理及其應用 3.1繼電器介紹 3.1.1繼電器的繼電特性 3.1.2 繼電器工作原理及特性 3.1.3 繼電器主要產品技術參數 3.1.4 繼電器的選用 3.2 單片機AT89S52介紹 3.3 時鐘DS1302介紹 3.5 DS18B20介紹 3.4 液晶LCD1602介紹 4 系統硬件電路設計 4.1單片機最小系統及液晶顯示 4.2 繼電器驅動電路 4.3鍵盤電路 5 系統軟件程序設計 6.1 硬件的制作 6.2 調試方案 6.3 硬件電路調試 6.3.1 獨立元件的檢測 6.3.2 電源電路的調試 6.3.3 單片機最小系統的調試 6.3.4 顯示模塊的調試 6.3.5 鍵盤模塊的調試 6.3.6 繼電器電路的調試 6.4 軟件調試 6.5 整體系統調試 7 結論 謝 辭 參考文獻 附 錄1 附 錄2 附 錄3
引言現如今,往往由于某些特殊原因給我們的生活或工作帶來一些困擾和遺憾。比如:家中的水塔忘記抽水而造成生活的一時不便;學校的起床廣播因值班人員睡過頭而推遲廣播;家中的魚缸因太久沒有供氧造成魚兒缺氧死亡;許多球迷或者新聞愛好者因為錯過了開機時間而與精彩球賽或者新聞擦肩而過;夏天里風扇的定時時間過短(一般為1個小時),不便于晚上分段定時使用等等。而上面的這些問題都可以通過定時開關插座的定時功能得到解決。 隨著電器產品待機能耗的迅速增長,家庭和社會付出了太多的代價,中國節能認證中心對家庭待機能耗做過的調查顯示,待機能耗占到家庭電力消耗的10%左右,僅以電視機為例,平均每臺電視機的待機能耗是8.07W,按每天待機2小時大約耗電0.016度。定時開關插座能夠實現定時給電器供電,在工作時間之外把電器的電源切斷,這樣就能解決電器的待機損耗,達到節約用電的目的。 定時開關插座是一款能在特定時間段內控制電器通、斷電的開關插座。能實現24小時制和100小時制兩種時鐘走時模式,在24小時制時鐘模式,可以實現二組360天內的任意定時,定時時間范圍最小為1分鐘。本文闡述了定時開關插座的硬件電路設計、軟件算法設計, 給出了自動開關插座的設計和定型方案,它可以對家中一些需要在特定時間對電器進行自動斷、通電控制,而不需要拔掉插頭,減少電器的待機損耗,解決生活中的一些煩惱。 1 設計要求及構思1.1 設計要求本次設計要求實現一個具有定時、按鍵設置及控制、定時時間顯示等功能的定時開關插座,具體要求及指標如下: (1)可以設定二組360定時時間值。 (2)設定的定時時間調整范圍為:360天內任何時間 (3)具有五個操作按鍵。 (4)具有日期、星期、時鐘、溫度顯示。 (5)具有7個LED顯示不同的狀態。 (6)可以通紅外遙控控制。
1.2 設計構思根據題目和設計功能要求,系統的實施方案可以分為以下幾個步驟:首先,通過模式(模式0為24小時制,模式1為100小時制)選定時鐘的走時方式,作為定時時間的判斷標準。然后通過按鍵設置定時時間分別存儲在定時開始數組begin和結束數組end,通過數組的值與時鐘的值進行比較,時間在定時數組時間范圍內則繼電器接通,否則斷開。用一個紅色發光二極管的亮、滅來指示繼電器的通、斷的狀態。定時智能插座的顯示則用LCD來實現。電源部分用220V轉換為直流5V給定時開關系統供電。用5個鍵盤實現時鐘、定時的設置及開始/停止等按鍵設置功能。 2 設計方案分析確定2.1 系統框圖
2.2 開關的選擇現代自動控制設備中,都存在一個電子電路——電氣電路的互相連接的問題,一方面要是電子電路的控制信號能夠控制電氣電路的執行元件(電動機、電燈、熱水器等),另一方面又要為電子線路的電器電路提供良好的電隔離,以保護電子電路和人身的安全。電子繼電器和光耦合器便能起到這一橋梁的作用。下面簡要介紹各個方案的特點。 方案一:采用繼電器作為控制220V通、斷的開關。固態繼電器(SSR)與機電繼電器相比,是一種沒有機械運動,不含運動零件的繼電器,但它具有與機電繼電器本質上相同的功能。SSR是一種全部由固態電子元件組成的無觸點開關元件,他利用電子元器件的點,磁和光特性來完成輸入與輸出的可靠隔離,利用大功率三極管,功率場效應管,單項可控硅和雙向可控硅等器件的開關特性,來達到無觸點,無火花地接通和斷開被控電路。選用SRD-05VCD-SL-C繼電器最大電路可達到10A,即繼電器的正常工作范圍為0到2200瓦,可以給大部分家用電器供電。 2.3 顯示方式選擇在模擬電子和數字電子中,常用顯示數據的有數碼管和液晶顯示器。 方案一:采用LED數碼管顯示。雖然功耗低,控制簡單,但卻只能顯示數字和一些簡單的字符,而且顯示信息少,需要較多位的數碼管,占用了較多的單片機I/O口,沒有較好的人機界面。 2.4 時鐘的實現及單片機的選擇時鐘的實現可已通過使用時鐘芯片或者單片機的定時器實現。下面簡要介紹幾種方案的特點。單片機僅用于控制繼電器、鍵盤,實現時鐘和定時,用51結構的有Atmel的AT89CXX系列、AT89SXX系列、AT89C20系列(20引腳)或STC的所有單片機都可以實現。根據在學校比較流行的學習單片機是AT89SXX系列,而且AT89S52單片機便宜,購買方便,故單片機選用AT89S52單片機。 方案一:時鐘通過使用時鐘芯片來實現,控制部分通過使用單片機來實現。時鐘芯片種類非常多,有內置晶振及充電電池的,也有外置晶振的,現在流行的時鐘芯片有DS1302、 DS1307、PCF8485、SB2068等。使用時鐘芯片可以得到準確的時鐘走時,可用簡單的程序實現定時開關插座的定時功能。 方案二:時鐘通過單片機的內部定時器來實現時鐘。單片機的內部定時器可實現較為精確的時鐘走時,定時50毫秒的誤差率極小,可達到定時開關插座的使用要求。使用單片機內部定時器可簡化硬件電路,可以節省開支,但是編程的難度有所提高。 本次設計的時鐘走時用DS1302達到定時開關插座的使用要求,時鐘芯片可以使時間更準確,單片機掉電DS1302時鐘芯片的時間也會準確,所以選用方案一。 2.5 按鍵控制部分的實現時鐘時間和定時時間的設置功能可以通過按鍵來實現。按鍵的實現可以通過以下兩種方案實現: 使用矩陣鍵盤實現。矩陣鍵盤可以用較少的I/O口實現多個按鍵功能,能節省更多的I/O口,利于系統擴展功能。 根據本定時開關插座的設置要求,要用到5個按鍵。通過兩個方案的對比,方案二的實施辦法更符合要求。 3 主要元器件原理及其應用本次設計中主要器件有繼電器、51系列單片機AT89S52、LCD1602、5V穩壓芯片7805,在介紹系統的硬件設計之前,下面先簡要介紹一下這些關鍵器件的原理及應用。 3.1繼電器介紹繼電器是一種電子控制器件,它具有控制系統(又稱輸入回路)和被控制系統(又稱輸出回路),通常應用于自動控制電路中,它實際上是用較小的電流去控制較大電流的一種“自動開關”。故在電路中起著自動調節、安全保護、轉換電路等作用。 3.1.1繼電器的繼電特性繼電器的輸入信號x從0連續增加達到銜鐵開始吸合時的動作值xx,繼電器的輸出信號立刻繼續增大,輸出信號y將不再起變化。當輸入量x從某一大于xx值下降到xf,繼電器開始釋放,常開觸點斷開。我們把繼電器的這種特性叫做繼電特性,也叫繼電器的輸入-輸出特性。 釋放值xf與動作值xx的比值叫做反饋系數,即Kf=xf/xx。 觸點上輸出的控制功率Pc與線圈吸收的最小功率P0之比叫做繼電器的控制系數,即Kc=Pc/P0。 3.1.2 繼電器工作原理及特性(1)電磁繼電器的工作原理和特性 電磁式繼電器一般由鐵芯、線圈、銜鐵、觸點簧片等組成的。只要在線圈兩端加上一定的電壓,線圈中就會流過一定的電流,從而產生電磁效應,銜鐵就會在電磁力吸引的作用下克服返回彈簧的拉力吸向鐵芯,從而帶動銜鐵的動觸點與靜觸點(常開觸點)吸合。當線圈斷電后,電磁的吸力也隨之消失,銜鐵就會在彈簧的反作用力返回原來的位置,使動觸點與原來的靜觸點(常閉觸點)釋放。這樣吸合、釋放,從而達到了在電路中的導通、切斷的目的。對于繼電器的“常開、常閉”觸點,可以這樣來區分:繼電器線圈未通電時處于斷開狀態的靜觸點,稱為“常開觸點”;處于接通狀態的靜觸點稱為“常閉觸點”。 (2)熱敏干簧繼電器的工作原理和特性 熱敏干簧繼電器是一種利用熱敏磁性材料檢測和控制溫度的新型熱敏開關。它由感溫磁環、恒磁環、干簧管、導熱安裝片、塑料襯底及其他一些附件組成。熱敏干簧繼電器不用線圈勵磁,而由恒磁環產生的磁力驅動開關動作。恒磁環能否向干簧管提供磁力是由感溫磁環的溫控特性決定的。 (3)固態繼電器(SSR)的工作原理和特性 固態繼電器是一種兩個接線端為輸入端,另外兩個接線端為輸出端的四端器件,中間采用隔離器件實現輸入輸出的電隔離。 固態繼電器按負載電源類型可分為交流型和直流型。按開關型式可分為常開型和常閉型。按隔離型式可分為混合型、變壓器隔離型和光電隔離型,其中以光電隔離型最多。 (4)磁簧繼電器 磁簧繼電器是以線圈產生磁場將磁簧管發生動作的繼電器,為一種線圈傳感裝置。因此磁簧繼電器具有尺寸小、輕量、反應速度快、短跳動時間等特性。 當整塊鐵磁金屬或者其它導磁物質與之靠近的時候發生動作,開通或者閉合電路。由永久磁鐵和干簧管組成。永久磁鐵、干簧管固定在一個不導磁也不帶有磁性的支架上。以永久磁鐵的南北極的連線為軸線,這個軸線應該與干簧管的軸線重合或者基本重合。由遠及近的調整永久磁鐵與干簧管之間的距離,當干簧管剛好發生動作(對于常開的干簧管,變為閉合;對于常閉的干簧管,變為斷開)時,將磁鐵的位置固定下來。這時,當有整塊導磁材料,例如鐵板同時靠近磁鐵和干簧管時,干簧管會再次發生動作,恢復到沒有磁場作用時的狀態;當該鐵板離開時,干簧管即發生相反方向的動作。磁簧繼電器結構堅固,觸點為密封狀態,耐用性高,可以作為機械設備的位置限制開關,也可以用以探測鐵制門、窗等是否在指定位置。 (5)光繼電器 光繼電器為AC/DC并用的半導體繼電器,是發光器件和受光器件一體化的器件。輸入側和輸出側電氣性絕緣,但信號可以通過光信號傳輸。 其特點為壽命為半永久性、微小電流驅動信號、高阻抗絕緣耐壓、超小型、光傳輸、無接點等。主要應用于量測設備、通信設備、保全設備、醫療設備等。 3.1.3 繼電器主要產品技術參數(1)額定工作電壓 額定工作電壓是指繼電器正常工作時線圈所需要的電壓,也就是控制電路的控制電壓,根據繼電器的型號不同,可以是交流電壓,也可以是直流電壓。 (2)直流電阻 直流電阻是指繼電器中線圈的直流電阻,可以通過萬能表測量。 (3)吸合電流 吸合電流是指繼電器能夠產生吸合動作的最小電流。在正常使用時,給定的電流必須略大于吸合電流,這樣繼電器才能穩定地工作。而對于線圈所加的工作電壓,一般不要超過額定工作電壓的1.5倍,否則會產生較大的電流而把線圈燒毀。 (4)釋放電流 釋放電流是指繼電器產生釋放動作的最大電流。當繼電器吸合狀態的電流減小到一定程度時,繼電器就會恢復到未通電的釋放狀態。這時的電流遠遠小于吸合電流。 (5)觸點切換電壓和電流 觸點切換電壓和電流是指繼電器允許加載的電壓和電流。它決定了繼電器能控制電壓和電流的大小,使用時不能超過此值,否則很容易損壞繼電器的觸點。 3.1.4 繼電器的選用(1)先了解必要的條件 ①控制電路的電源電壓,能提供的最大電流; ②被控制電路中的電壓和電流; ③被控電路需要幾組、什么形式的觸點。選用繼電器時,一般控制電路的電源電壓可作為選用的依據。控制電路應能給繼電器提供足夠的工作電流,否則繼電器吸合是不穩定的。 (2)查閱有關資料確定使用條件后,可查找相關資料,找出需要的繼電器的型號和規格號。若手頭已有繼電器,可依據資料核對是否可以利用。最后考慮尺寸是否合適。 (3)注意器具的容積。若是用于一般用電器,除考慮機箱容積外,小型繼電器主要考慮電路板安裝布局。對于小型電器,如玩具、遙控裝置則應選用超小型繼電器產品。 通過上面的性能了解和比較,及考慮的器件的性價比,本設計選擇電磁繼電器。 3.2 單片機AT89S52介紹AT89S52單片機片內集成256字節程序運行空間、8K字節Flash存儲空間,支持最大64K外部存儲擴展。根據不同的運行速度和功耗的要求,時鐘頻率可以設置在0~33M之間。片內資源有4組I/O控制端口、3個定時器、8個中斷、軟件設置低能耗模式、看門狗和斷電保護。可以在4V到5.5V寬電壓范圍內正常工作。不斷發展的半導體工藝也讓該單片機的功耗不斷降低。同時,該單片機支持計算機并口下載,簡單的數字芯片就可以制成下載線。根據不同場合的要求,這款單片機提供了多種封裝,本次設計根據最小系統有時需要更換單片機的具體情況,使用雙列直插DIP-40的封裝,如圖3.1所示。下面對定時開關系統中使用到的管腳進行簡單說明。 圖3.1 DIP-40封裝89S52引腳圖 P0口:P0口是一個8位漏極開路的雙向I/O口。作為輸出口,每位能驅動8個TTL邏輯電平。對P0端口寫“1”時,引腳用作高阻抗輸入。當訪問外部程序和數據存儲器時,P0口也被作為低8位地址/數據復用。在這種模式下,P0不具有內部上拉電阻。 P1口:P1口是一個具有內部上拉電阻的8位雙向I/O口,P1輸出緩沖器能驅動4個TTL邏輯電平。對P1 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 P2口:P2口是一個具有內部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅動4個TTL 邏輯電平。對P2 端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 P3 口:P3口是一個具有內部上拉電阻的8位雙向I/O口,P3輸出緩沖器能驅動4個TTL邏輯電平。對P3端口寫“1”時,內部上拉電阻把端口拉高,此時可以作為輸入口使用。作為輸入使用時,被外部拉低的引腳由于內部電阻的原因,將輸出電流(IIL)。 RST——復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期以上高電平將是單片機復位。 3.3 時鐘DS1302介紹DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實時時鐘電路,它可以對年、月、日、周日、時、分、秒進行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。采用三線接口與CPU進行同步通信,并可采用突發方式一次傳送多個字節的時鐘信號或RAM數據。DS1302內部有一個31×8的用于臨時性存放數據的RAM寄存器。DS1302是DS1202的升級產品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力。 3.3.1 引腳功能及結構 DS1302的引腳排列,其中Vcc1為后備電源,VCC2為主電源。在主電源關閉的情況下,也能保持時鐘的連續運行。DS1302由Vcc1或Vcc2兩者中的較大者供電。當Vcc2大于Vcc1+0.2V時,Vcc2給DS1302供電。當Vcc2小于Vcc1時,DS1302由Vcc1供電。X1和X2是振蕩源,外接32.768kHz晶振。RST是復位/片選線,通過把RST輸入驅動置高電平來啟動所有的數據傳送。RST輸入有兩種功能:首先,RST接通控制邏輯,允許地址/命令序列送入移位寄存器;其次,RST提供終止單字節或多字節數據的傳送手段。當RST為高電平時,所有的數據傳送被初始化,允許對DS1302進行操作。如果在傳送過程中RST置為低電平,則會終止此次數據傳送,I/O引腳變為高阻態。上電運行時,在Vcc>2.0V之前,RST必須保持低電平。只有在SCLK為低電平時,才能將RST置為高電平。I/O為串行數據輸入輸出端(雙向),后面有詳細說明。SCLK為時鐘輸入端。 下圖為DS1302的引腳功能圖: 
DS1302封裝圖3.3.2 DS1302的控制字節 DS1302 的控制字如圖2所示。控制字節的最高有效位(位7)必須是邏輯1,如果它為0,則不能把數據寫入DS1302中,位6如果為0,則表示存取日歷時鐘數據,為1表示存取RAM數據;位5至位1指示操作單元的地址;最低有效位(位0)如為0表示要進行寫操作,為1表示進行讀操作,控制字節總是從最低位開始輸出。 
3.3.3 數據輸入輸出(I/O) 在控制指令字輸入后的下一個SCLK時鐘的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字后的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。 3.3.4 DS1302的寄存器 DS1302有12個寄存器,其中有7個寄存器與日歷、時鐘相關,存放的數據位為BCD碼形式,其日歷、時間寄存器及其控制字見表1。 此外,DS1302 還有年份寄存器、控制寄存器、充電寄存器、時鐘突發寄存器及與RAM相關的寄存器等。時鐘突發寄存器可一次性順序讀寫除充電寄存器外的所有寄存器內容。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;另一類為突發方式下的RAM寄存器,此方式下可一次性讀寫所有的RAM的31個字節,命令控制字為FEH(寫)、FFH(讀)。 3.3.5 DS1302實時顯示時間的硬件 DS1302與CPU的連接需要三條線,即SCLK(7)、I/O(6)、RST(5)。圖3示出DS1302與89C2051的連接圖,其中,時鐘的顯示用LCD。 3.3.6 DS1302與CPU的連接 實際上,在調試程序時可以不加電容器,只加一個32.768kHz 的晶振即可。只是選擇晶振時,不同的晶振,誤差也較大。另外,還可以在上面的電路中加入DS18B20,同時顯示實時溫度。只要占用CPU一個口線即可。 LCD還可以換成LED,還可以使用北京衛信杰科技發展有限公司生產的10位多功能8段液晶顯示模塊LCM101,內含看門狗(WDT)/時鐘發生器及兩種頻率的蜂鳴器驅動電路,并有內置顯示RAM,可顯示任意字段筆劃,具有3-4線串行接口,可與任何單片機、IC接口。功耗低,顯示狀態時電流為2μA (典型值),省電模式時小于1μA,工作電壓為2.4V~3.3V,顯示清晰。 3.3.7 調試中問題說明 DS1302 與微處理器進行數據交換時,首先由微處理器向電路發送命令字節,命令字節最高位Write Protect(D7)必須為邏輯0,如果D7=1,則禁止寫DS1302,即寫保護;D6=0,指定時鐘數據,D6=1,指定RAM數據;D5~D1指定輸入或輸出的特定寄存器;最低位LSB(D0)為邏輯0,指定寫操作(輸入), D0=1,指定讀操作(輸出)。 在DS1302的時鐘日歷或RAM進行數據傳送時,DS1302必須首先發送命令字節。若進行單字節傳送,8位命令字節傳送結束之后,在下2個SCLK周期的上升沿輸入數據字節,或在下8個SCLK周期的下降沿輸出數據字節。 DS1302與RAM相關的寄存器分為兩類:一類是單個RAM單元,共31個,每個單元組態為一個8位的字節,其命令控制字為C0H~FDH,其中奇數為讀操作,偶數為寫操作;再一類為突發方式下的RAM寄存器,在此方式下可一次性讀、寫所有的RAM的31個字節。 要特別說明的是備用電源B1,可以用電池或者超級電容器(0.1F以上)。雖然DS1302在主電源掉電后的耗電很小,但是,如果要長時間保證時鐘正常,最好選用小型充電電池。可以用老式電腦主板上的3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容器代替。100 μF就可以保證1小時的正常走時。DS1302在第一次加電后,必須進行初始化操作。初始化后就可以按正常方法調整時間。 3.4 紅外接收頭IR1308介紹 IR1308是用于紅外遙控接收的小型一體化接收頭,集成紅外線的接收、放大、解調,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號兼容的所有工作,而體積各普通的塑封三極管大小一樣,它適合于各種紅外線遙控和紅外線數據傳輸,中心頻率38.0kHz。接收器對外只有3個引腳:OUT、GDN、VCC與單片機接口非常方便,其中1腳接電源(+VCC),2腳GND是地線(0),3腳脈沖信號輸出。 IR1308紅外接收頭 IR1308接收原理:紅外線接收頭把遙控器發送的數據(已調信號)轉換成一定格式的控制指令脈沖(調制信號、基帶信號),也就是完成紅外線的接收、放大、調制,還原成發發射格式(高、低電位剛好相反)的脈沖信號。最后通過解碼反脈沖信號轉換成數據,從而實現數據的傳輸。 發射調制信號與接收頭輸出的脈沖信號比較圖接收解碼的關鍵是如何識別“0”和“1”,從上面位的定義我們發現“0”、“1”均以0.56ms的低電平開始,不同的是高電平的寬度不同,“0”為“0.56ms”,“1”為1.68ms,所以必須根據高電平的寬度區別“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數字溫度計是DALLAS公司生產的1-Wire,即單總線器件,具有線路簡單,體積小的特點。因此用它來組成一個測溫系統,具有線路簡單,在一根通信線,可以掛很多這樣的數字溫度計,十分方便。 3.5.1 DS18B20的特點: DS18B20 單線數字溫度傳感器,即“一線器件”,其具有獨特的優點: ( 1 )采用單總線的接口方式 與微處理器連接時僅需要一條口線即可實現微處理器與 DS18B20 的雙向通訊。單總線具有經濟性好,抗干擾能力強,適合于惡劣環境的現場溫度測量,使用方便等優點,使用戶可輕松地組建傳感器網絡,為測量系統的構建引入全新概念。 ( 2 )測量溫度范圍寬,測量精度高 DS18B20 的測量范圍為 -55 ℃ ~+ 125 ℃ ; 在 -10~+ 85°C范圍內,精度為 ± 0.5°C 。 ( 3 )在使用中不需要任何外圍元件。 ( 4 )持多點組網功能 多個 DS18B20 可以并聯在惟一的單線上,實現多點測溫。 ( 5 )供電方式靈活 DS18B20 可以通過內部寄生電路從數據線上獲取電源。因此,當數據線上的時序滿足一定的要求時,可以不接外部電源,從而使系統結構更趨簡單,可靠性更高。 ( 6 )測量參數可配置 DS18B20 的測量分辨率可通過程序設定 9~12 位。 ( 7 ) 負壓特性電源極性接反時,溫度計不會因發熱而燒毀,但不能正常工作。 ( 8 )掉電保護功能 DS18B20 內部含有 EEPROM ,在系統掉電以后,它仍可保存分辨率及報警溫度的設定值。 DS18B20 具有體積更小、適用電壓更寬、更經濟、可選更小的封裝方式,更寬的電壓適用范圍,適合于構建自己的經濟的測溫系統,因此也就被設計者們所青睞。 3.5.2 DS18B20管腳排列: 1. GND為電源地; 2. DQ為數字信號輸入/輸出端; 3. VDD為外接供電電源輸入端(在寄生電源接線方式時接地) 3.5.3 DS18B20內部構成: 高速暫存存儲器由9個字節組成,當溫度轉換命令發布后,經轉換所得的溫度值以二字節補碼形式存放在高速暫存存儲器的第0和第1個字節。單片機可通過單線接口讀到該數據,讀取時低位在前,高位在后,對應的溫度計算:當符號位S=0時,直接將二進制位轉換為十進制;當S=1時,先將補碼變為原碼,再計算十進制值。 溫度的低八位數據 0 溫度的高八位數據 1 高溫閥值 2 低溫閥值 3 保留 4 保留 5 計數剩余值 6 每度計數值 7 CRC 校驗 8 DS18B20中的溫度傳感器完成對溫度的測量,用16位二進制形式提供,形式表達,其中S為符號位。 例如: +125℃的數字輸出07D0H (正溫度直接把16進制數轉成10進制即得到溫度值 ) -55℃的數字輸出為 FC90H。 (負溫度把得到的16進制數取反后加1 再轉成10進制數) 3.5.4 DS18B20的工作時序: 初始化時序 主機首先發出一個480-960微秒的低電平脈沖,然后釋放總線變為高電平,并在隨后的480微秒時間內對總線進行檢測,如果有低電平出現說明總線上有器件已做出應答。若無低電平出現一直都是高電平說明總線上無器件應答。 做為從器件的DS18B20在一上電后就一直在檢測總線上是否有480-960微秒的低電平出現,如果有,在總線轉為高電平后等待15-60微秒后將總線電平拉低60-240微秒做出響應存在脈沖,告訴主機本器件已做好準備。若沒有檢測到就一直在檢測等待。 寫操作 寫周期最少為60微秒,最長不超過120微秒。寫周期一開始做為主機先把總線拉低1微秒表示寫周期開始。隨后若主機想寫0,則繼續拉低電平最少60微秒直至寫周期結束,然后釋放總線為高電平。若主機想寫1,在一開始拉低總線電平1微秒后就釋放總線為高電平,一直到寫周期結束。而做為從機的DS18B20則在檢測到總線被拉底后等待15微秒然后從15us到45us開始對總線采樣,在采樣期內總線為高電平則為1,若采樣期內總線為低電平則為0。 讀操作 對于讀數據操作時序也分為讀0時序和讀1時序兩個過程。讀時隙是從主機把單總線拉低之后,在1微秒之后就得釋放單總線為高電平,以讓DS18B20把數據傳輸到單總線上。DS18B20在檢測到總線被拉低1微秒后,便開始送出數據,若是要送出0就把總線拉為低電平直到讀周期結束。若要送出1則釋放總線為高電平。主機在一開始拉低總線1微秒后釋放總線,然后在包括前面的拉低總線電平1微秒在內的15微秒時間內完成對總線進行采樣檢測,采樣期內總線為低電平則確認為0。采樣期內總線為高電平則確認為1。完成一個讀時序過程,至少需要60us才能完成 3.4 液晶LCD1602介紹1602液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數字、符號等的點陣型液晶模塊。它由若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都可以顯示一個字符,每位之間有一個點距的間隔,每行之間也有間隔,起到了字符間距和行間距的作用,正因為如此所以它不能很好地顯示圖形(用自定義CGRAM,顯示效果也不好)。 1602LCD是指顯示的內容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數字)。 
字符型液晶顯示器實物圖3.4.1 1602LCD的基本參數及引腳功能 1602LCD分為帶背光和不帶背光兩種,基控制器大部分為HD44780,帶背光的比不帶背光的厚,是否帶背光在應用中并無差別,兩者尺寸差別如下圖: 
1602LCD尺寸圖3.4.2 1602LCD主要技術參數 顯示容量:16×2個字符 芯片工作電壓:4.5—5.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.95×4.35(W×H)mm 引腳功能說明 1602LCD采用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如表所示:
引腳接口說明表 第1腳:VSS為地電源。 第2腳:VDD接5V正電源。 第3腳:VL為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產生“鬼影”,使用時可以通過一個10K的電位器調整對比度。 第4腳:RS為寄存器選擇,高電平時選擇數據寄存器、低電平時選擇指令寄存器。 第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R/W為低電平時可以寫入數據。 第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執行命令。 第7~14腳:D0~D7為8位雙向數據線。 第15腳:背光源正極。 第16腳:背光源負極。 3.3.3 1602LCD的指令說明及時序 1602液晶模塊內部的控制器共有11條控制指令,如表所示:
控制命令表 1602液晶模塊的讀寫操作、屏幕和光標的操作都是通過指令編程來實現的。(說明:1為高電平、0為低電平) 指令1:清顯示,指令碼01H,光標復位到地址00H位置。 指令2:光標復位,光標返回到地址00H。 指令3:光標和顯示模式設置 I/D:光標移動方向,高電平右移,低電平左移 S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。 指令4:顯示開關控制。 D:控制整體顯示的開與關,高電平表示開顯示,低電平表示關顯示 C:控制光標的開與關,高電平表示有光標,低電平表示無光標 B:控制光標是否閃爍,高電平閃爍,低電平不閃爍。 指令5:光標或顯示移位 S/C:高電平時移動顯示的文字,低電平時移動光標。 指令6:功能設置命令 DL:高電平時為4位總線,低電平時為8位總線 N:低電平時為單行顯示,高電平時雙行顯示 F: 低電平時顯示5x7的點陣字符,高電平時顯示5x10的點陣字符。 指令7:字符發生器RAM地址設置。 指令8:DDRAM地址設置。 指令9:讀忙信號和光標地址 BF:為忙標志位,高電平表示忙,此時模塊不能接收命令或者數據,如果為低電平表示不忙。 指令10:寫數據。 指令11:讀數據。 與HD44780相兼容的芯片時序表如下: | | | | | | | RS=L,R/W=L,D0—D7=指令碼,E=高脈沖 | | | | | | | | | | RS=H,R/W=L,D0—D7=數據,E=高脈沖 | | |
基本操作時序表 讀寫操作時序如下圖: 讀操作時序 寫操作時序 3.3.4 1602LCD的RAM地址映射及標準字庫表 
液晶顯示模塊是一個慢顯示器件,所以在執行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,下圖是1602的內部顯示地址。1602LCD內部顯示地址 例如第二行第一個字符的地址是40H,那么是否直接寫入40H就可以將光標定位在第二行第一個字符的位置呢?這樣不行,因為寫入顯示地址時要求最高位D7恒定為高電平1所以實際寫入的數據應該是01000000B(40H)+10000000B(80H)=11000000B(C0H)。 在對液晶模塊的初始化中要先設置其顯示模式,在液晶模塊顯示字符時光標是自動右移的,無需人工干預。每次輸入指令前都要判斷液晶模塊是否處于忙的狀態。 1602液晶模塊內部的字符發生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,如圖10-58所示,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,比如大寫的英文字母“A”的代碼是01000001B(41H),顯示時模塊把地址41H中的點陣字符圖形顯示出來,我們就能看到字母“A” 
字符代碼與圖形對應圖 3.3.5 1602LCD的一般初始化(復位)過程 延時15mS 寫指令38H(不檢測忙信號) 延時5mS 寫指令38H(不檢測忙信號) 延時5mS 寫指令38H(不檢測忙信號) 以后每次寫指令、讀/寫數據操作均需要檢測忙信號 寫指令38H:顯示模式設置 寫指令08H:顯示關閉 寫指令01H:顯示清屏 寫指令06H:顯示光標移動設置 寫指令0CH:顯示開及光標設置 4 系統硬件電路設計整個系統的硬件設計可以分為四個模塊:單片機最小系統及液晶顯示、繼電器工作電路、鍵盤電路。單片機AT89S52、繼電器、鍵盤、LCD12232及其他外圍電路。單片機最小系統部分是整個系統的智能控制部分,也是整個系統的核心部分。單片機在實現時鐘的同時,也負責鍵盤檢測,驅動液晶顯示,實現定時功能,并負責控制繼電器的通、斷,紅色指示燈的亮、滅指示繼電器的通、斷狀態。液晶在單片機的控制下顯示時鐘、定時組別及定時時間的信息。繼電器在單片機的控制下實現通、斷,從而達到控制插座通、斷電的目的。 4.1單片機最小系統及液晶顯示單片機控制電路是整個系統的核心,完成數據處理和控制任務。電路原理圖如圖4.3所示。 本次設計采用的單片機的型號為AT89S52。單片機晶振為作用是為系統提供基本的時鐘信號。通常一個系統共用一個晶振,便于各部分保持同步。有些通訊系統的基頻和射頻使用不同的晶振,而通過電子調整頻率的方法保持同步。 C1、C2叫負載電容。一般單片機的晶振工作于并聯諧振狀態,也可以理解為諧振電容的一部分。它是根據晶振廠家提供的晶振要求的負載電容選值的,換句話說,晶振的頻率就是在它提供的負載電容下測得的,能最大限度的保證頻率值的誤差。也能保證溫漂等誤差。兩個電容的取值都是相同的,或者說相差不大,如果相差太大,容易造成諧振的不平衡,容易造成停振或者干脆不起振。P2是單片機的下載口,用于對單片機燒入程序。按鍵S及其外圍電路是實現單片機的硬件復位功能。 P5的管腳與液晶12232的管腳相對應(即作為液晶的底座)。LCD12232可以顯示4行,所要顯示的信息有:第一個行顯示時鐘的時(兩位)、分(兩位)、秒(兩位),時、分、秒之間用“:”隔開。在時鐘前面顯示大寫字母“T:0”,其中數字式從0到5可變的,顯示的是當前定時的組別。第二行顯示的是字母“begin:”,冒號后面顯示的是當前定時開始的時(兩位)、分(兩位),時、分之間用“:”隔開。第三行顯示的是字母“stop:”,冒號后面顯示的是當前定時結束的時(兩位)、分(兩位),時、分之間用“:”隔開。第四行僅顯示運行模式信息“mod:0”,數字部分可在0和1變化。 圖4.3 單片機最小系統及液晶顯示 4.2 繼電器驅動電路繼電器的驅動電路如圖4.4所示。這是典型的繼電器驅動電路。單片機是一個弱電器件,一般情況下它們大多工作在5V甚至更低。。驅動電流在mA級以下。而要把它用于一些大功率場合,比如繼電器驅動,顯然是不行的。所以就要有一個環節來銜接,這個環節就是所謂的“功率驅動”。繼電器驅動就是一個典型的、簡單的功率驅動環節。 圖中三極管8550有兩個作用:一個是起放大作用,一個是起開關作用(嚴格來講開關作用是放大作用的極限情況)。P1處連接的是單片機的P2.7口。P2.7口給出低電平時,三極管處于導通狀態,并起放大作用,這樣,繼電器就能得到足夠的驅動電流來正常工作。當P2.7口給出高電平時,三極管不工作,繼電器因沒電流通過而不工作。二極管4148起到保護作用。發光二極管用于指示繼電器是處于導通狀態(燈亮)還是處于斷開狀態(燈滅)。 圖4.4 繼電器驅動電路 4.3鍵盤電路鍵盤電路如圖4.5所示。使用矩陣鍵盤能用較少的I/O口實現較多的按鍵功能。下面為按鍵實現舉例:假設按下的是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); } 通過此方法,就可以計算出其他的鍵值,從而實現按鍵功能。 下面介紹個個按鍵實現的功能: 定時復位按鍵:用于實現定時時間歸零和繼電器復位。 加值鍵:用于實現日期、星期、時間和定時時間的加值。 選擇鍵:用于實現當前設置右移一位。 減值鍵:用于實現日期、星期、時間和定時時間的減值。 功能鍵:用于實現進入修改日期、星期和時間,設定定時時間。 圖4.5鍵盤電路 4.4 DS1302 時鐘電路 4.5 DS18B20溫度傳感器電路 4.6IR1302紅外接外頭電路 4.7 硬件總電路圖 5 系統軟件程序設計在本次設計中,主程序主要是在單片機的控制下,對鍵盤的輸入信息進行存儲分析,驅動液晶顯示出相關信息,并通過對比分析定時時間與時鐘,控制繼電器的通、斷,從而達到控制插座的通、斷電。在這個過程中,單片機首先進行初始化,包括設置單片機各個端口的方向,各個變量的初始化,液晶顯示初始化、繼電器斷開以及單片機振蕩頻率的校準等。單片機每分鐘對定時時間和時鐘進行一次比較,當設定時間到,斷電器接通,反之斷電一直處于斷開狀態。其具體的源程序見附錄2。整個系統軟件設計的流程圖如圖5.1所示。 5.2時鐘DS1302程序設計 時鐘程序軟件流程 5.3 IR1308程序設計 
紅外接收解碼流程圖
5.4 DS18B20溫度傳器程序設計
6 系統軟硬件的制作與調試 6.1 硬件的制作電路設計軟件Protel是目前國內最流行的通用CAD軟件,它是將電路原理圖設計、PCB板圖設計、電路仿真和PLD設計等多個實用工具軟件組合后構成的CAD工作平臺。 本設計是首先在Protel軟件上畫好單片機最小系統、液晶與單片機連接電路、繼電器的外圍電路及與單片機的鏈接電路、鍵盤與單片機的連接電路、等的原理圖,然后對原理圖進行仿真,仿真無誤后生成網絡表后裝載到PCB環境中生成需要的PCB。其中,單片機控制繼電器部分為了確保其在實際應用的準確性,首先在萬用板上焊接好繼電器電路,并接上插座后對其進行驗證,證明使用本電路能正常工作后,然后焊接元器件,完成了定時快關插座的硬件電路板的制作。 6.2 調試方案根據電路原理圖、把電路板實物做出來后,下一步就是電路板調試。電路板調試是最關鍵的一步,前面所做的電路設計的成功與否就是在調試步驟里體現的。本系統的調試主要分為硬件調試、軟件調試和接負載調試等三大部分。 經過初步對定時器的分析設計后,在制作硬件電路的同時,調試也在穿插進行。這樣有利于問題的分析和解決,不會造成問題的積累,而且不會因為一個小問題而影響整體電路的檢查,從而可以節約大量的調試時間。例如當單片機控制模塊硬件部分制作好后,就可以先調試顯示程序,在LCD1602上顯示一個簡單的數字0,顯示結果正確了,說明LCD顯示電路與單片機的連接電路是正確的,單片機能正常工作。軟件編程中,首先完成單元功能模塊的調試,然后進行系統的調試,調試的整體思想和步驟和硬件大同小異。插座接負載調試是最重要的一部分,雖然軟硬件調試都通過了,但是插座接負載調試過程中可能會出現新的問題。 6.3 硬件電路調試硬件單元電路制作好后,在上電之前,應該先用萬用表對各個獨立元件進行檢查,在排除了虛焊、短路、斷路等問題后再通電進行電路功能的調試。具體調試過程如下所述: 6.3.1 獨立元件的檢測任何組裝好的電子電路,在通電調試之前,必須認真檢查電路連線是否有誤。檢查的方法是對照電路圖,按一定的順序逐級對應檢查,例如:對電路板的電阻阻值進行確定,可以通過讀取電阻上的色環進行確認。特別是注意電源是否接錯,電源與地是否有短接,集成電路和晶體管的引腳是否接錯,輕輕撥一撥元器件,觀察焊點是否牢固等。用萬用表檢測是不是有短路和斷路現象。 給系統上電后,看下電源(綠色)燈亮不亮。假如不亮,就要檢查電源指示燈發光二極管的好壞。還要用萬用表測一下單片機等芯片的電壓是不是符合要求。假如不是,就要進行各個芯片的檢查,看一下各個芯片的引腳有沒有焊好,芯片是否損壞。 6.3.2 電源電路的調試電源電路作為整個系統的供電電路,其輸出電壓必須在單片機的正常工作電壓范圍(4V到5.5V之間)內。在電源通220V交流電之前,一定要檢查電路是否接錯,特別是極性電容是否有接反,防止出現極性電容接反而造成爆電容的現象。在確保器件接法無誤的情況下,接通電源,并用萬用表測量輸出電壓,得到其電壓為5.3V。符合系統的正常工作電壓要求。接上干電池,斷開交流電,由于干電池是經過4007二極管后再給系統供電,4007二極管的壓降為0.7V,測量得到新電池狀態下輸出電壓為5.4V,達到系統正常工作電壓要求。然后再用兩部分電源同時供電,由于干電池部分有4007二極管保護,不會出現干電池在電壓低于5V時會損耗功率的情況,實現了其儲備電源的作用。 6.3.3 單片機最小系統的調試單片機AT89S52最小系統的檢測分為硬件調試及軟件調試。硬件調試時用萬用表測量單片機的工作電壓及各個管腳的電壓是否達到正常工作電壓。在此檢測中還要燒入程序對各個I/O口的輸出進行測試,查看I/O口所輸出的電壓是否與程序所控制值一致。例如:編寫一個調試程序,使的所有I/O口從P1.0口開始依次賦予低電平,用萬用表測量其輸出電壓,確定是否與程序所付值一致,一致則證明正確;然后又對其依次賦予高電平,確定是否與程序所付值一致,一致則證明正確。兩次測試都正確,證明單片機最小系統是正常工作的。 6.3.4 顯示模塊的調試顯示模塊硬件連接相對比較簡單,檢查與調試過程中也沒有遇到什么困難。這次設計中,結果用LCD1602來顯示。在給系統上電后,要觀察LCD的亮度,為了減少功耗,LCD1602的背景燈的接地管腳同過I/O口P2.0的高低電平實現滅亮的要求,這種接法其背光燈會較暗,但是能夠滿足其在白天和夜晚都可以看清楚顯示內容的要求。 6.3.5 鍵盤模塊的調試鍵盤是用7個按鍵盤實現。在硬件檢測時,首先用萬用表檢測每個按鍵之間的鏈接是否有斷線的情況,若是有斷線,查出后可以使用熔化后的焊錫將線接通。然后再看每個按鍵按下時反饋回單片機的電平是否與預期的一致,若不一致這要看原理圖是否有錯,在畫PCB時是否有錯,然后再查看線路是否有斷線情況。在檢測鍵盤過程中,因為存在連線不好的情況,其中一個按鍵的功能有時候能實現,有時候不能實現。經檢查排除后,發現是與此按鍵相連的一條線被腐蝕是過度了,造成接觸不良,用焊錫加固后解決了此問題。 6.3.6 繼電器電路的調試繼電器的外圍電路硬件檢測的工作最為簡單,首先是測出三極管8550在給出工作電平時它的各個管腳的電壓值,然后看看是否工作在放大狀態。三極管工作在放大狀態,就能給繼電器提供足夠的電流,從而驅動繼電器工作。 通過對定時開關插座的硬件制作與調試,系統的實物圖如附錄3所示。 6.4 軟件調試軟件的調試包括程序本身語法的調試和在電路板上功能的調試兩種。在編程過程中,為了得到滿足要求的用戶程序,一般都需要有一個對程序的調試過程,甚至需要經過多次反復的調試才能完成。在調試程序前為了調試方便,避免程序出錯時將單片機拆來拆去的麻煩,在電路板上做了一個下載口,可以將下載線直接插到電路板上進行調試,這樣就可以一邊進行調試,一邊修改程序。程序用Keil C軟件寫好后,先用該軟件的編譯功能編譯一下所寫的程序,檢查程序是有語法錯誤或其他的錯誤。如果有錯誤則根據提示進行分析將錯誤改過來直至編譯成功為止。當完成了語法調試后,再根據定時開關插座設計的功能要求修改程序完成系統的各個功能。在編寫程序的時候一定要根據系統實現的功能和連接方式,認真分析,畫出系統主程序、時鐘程序、設置程序的流程圖,并根據畫出的流程圖一步一步的去寫出程序。 根據系統的特點,軟件系統應該按模塊進行調試,當各個模塊調試通過后再將各個模塊整合起來,進行綜合調試,直到得到預期結果。軟件模塊大致可以分為四部分:LCD1602顯示模塊、時鐘模塊、按鍵設置模塊、繼電器控制模塊。在這四個模塊中,調試的順序比較固定:首先調試顯示模塊,因為只有顯示正確后,才能夠顯示按鍵操作結果及時鐘信息,以便和預期結果比較看是否正確。接著調試時鐘程序,然后調試按鍵模塊,最后調試繼電器控制模塊。 與純粹的C語言編程不同的是,單片機編程要考慮到硬件的設計,所有程序的編寫都是根據硬件資源進行。開始程序下載到單片機的時候,液晶沒有顯示,在排除了程序語法錯誤和板子虛焊等原因后,還是沒有顯示,經過仔細檢查發現,原來是軟件編寫中把單片機和液晶接線的引腳定義錯了,改正后即得到了顯示結果。在鍵盤掃描時,在編譯過程中沒有錯誤,但是因為其中三個按鍵的鍵值計算錯誤,在按鍵按下時沒有反應到液晶顯示上,然后重新計算出正確的鍵值后即得到預期結果。 6.5 整體系統調試定時開關插座的硬件模塊和軟件模塊分別調試通過后,接下來就可以進行系統的整體測試。在剛開始的時候也遇到了一些問題。在定時方面,單組定時都能在規定的時間內開始和結束,但是當多組定時有重疊的部分時,由于考慮不周全,在一組結束時繼電器會閃一下,這樣會造成插座供電也會閃一下。這種狀況很容易將負載損壞,最起碼會對負載造成傷害。為了解決這個問題,我用了一個中間變量ray來解決定時時間有重疊時的閃爍問題。首先對ray進行歸零,在判定定時開始和結束時,每組定時開始都對ray的進行加1操作,結束時對ray進行減1操作,然后通過判斷ray的值來控制繼電器。當ray為非0值時,繼電器導通,當ray為0值時繼電器斷開。這樣,就能避免再有定時疊加時組別之間交接時出繼電器閃爍的問題。 對定時開關插座進行負載調試時,負載所接的是額定功率為40W的風扇,并在一天24小時中的每一個小時對6定時進行測試。首先是每組定時時間范圍為1分鐘,定時組別之間的時間間隔也為一分鐘。在設定時間內,都能準確的對插座上的風扇進行通電和斷電的操作。然后對每組定時時間范圍分別設為10分鐘,定時開關插座也能實現對風扇在定時時間范圍內供電,其他時間則停止(供電)的操作。接著分別對6組定時分別進行各種時間范圍的測試,其中包括定時組別的定時時間又交集的情況。例如,要在定時組別1中定時,要求在每天的13時插座斷電、14時插座供電,則可在開始時間數組begin中輸入13:00,在結束時間數組end中輸入14:00。在定時組別的定時時間有交集時,定時開關插座在兩組時間的開始和結束的轉換過程中插座供電不會出現跳變,從而不會對電器(風扇)產生影響,達到了設計時要求如果兩個或兩個以上的定時時間交集時繼電器不會出現快速通、斷的情況,即不會出現插座供電跳變的情況。 繼電器正常工作允許通過的最大電流是10A,額定工作電壓為220V,即允許通過的功率為2200W。但是負載的功率過大會影響到系統的運行。通過測試,系統能承受的最大功率為1500W。當插座的負載在超過1500W(由于缺少設備,所以是用40W的風扇、550W的熱水器、1500W和1800W的熱得快進行測試的)時,繼電器在跳變時會造成單片機重啟,影響了系統的正常工作。 7 結論本次畢業設計是一個基于單片機AT89S52的定時開關插座,包括方案選擇、軟硬件設計、單片機最小系統、繼電器驅動電路和鍵盤電路調試、硬件測試結果及解決在電路調試時遇到的問題。在此期間主要完成的工作包括以下幾個方面: (1)設計初期收集繼電器、單片機等相關資料,對定時開關插座的實現原理有比較清晰的了解。 (2)確定系統框圖,對電源模塊、單片機最小系統模塊、鍵盤電路模塊和繼電器及其驅動電路模塊等的實施方案進行比較,確定最終的定時開關插座的設計方案。 (3)根據定時開關插座的原理圖制作出硬件電路板,并對系統進行空載調試和接負載調試。 (4)根據系統要實現的定時和時鐘走時等功能編寫出軟件程序,并進行定時功能的調試及數據采集分析。 (5)軟硬件調試通過后進行整體調試,并查找定時開關插座系統存在的缺陷,進行定時功能的完善。 (6)最終系統定時組別可以達到二組,定時時間范圍根據模式的不同可以分為24小時內任意時間(最小定時范圍為一分鐘)和100小時沒任意時間(最小定時范圍為一分鐘)兩種定時方式。 本次設計完成了一款定時開關插座系統。該系統采用51單片機AT89S52編程控制繼電器的通、斷來實現控制插座的通、斷電,而繼電器的通、斷由定時組別確定。在定時范圍內繼電器導通,否則斷開。并用LCD12232顯示出時鐘及定時時間等信息。 當時鐘走到定時開始時間時,繼電器接通,插座給負載供電;時鐘走到定時結束時間時,繼電器斷開,插座停止給負載供電。總的來說,本次設計還是比較成功的,各項指標都符合設計要求。由于畢業設計經費有限及有的元器件比較難購買到,故定時開關插座系統存在一定的缺陷,可以做進一步的完善:例如可以用一個按鍵實現多個功能,這樣子按鍵數目就會大大減少,減小系統的體積。電源部分可以用高頻磁芯代替變壓器,這樣設計出來的電源重量及體積會更小,能使電源模塊更加小巧玲瓏,從而減小整個系統的重量及體積,便于使用等等。 本次設計的定時開關插座自動化程度較高,符合定時開關插座的發展方向。系統適用于日常家庭電器供電,如:給電風扇定時供電,給水塔定時抽水等等,具有較高的實用價值。系統中的定時組數經簡單改造后能增加組數,繼電器改用能承受更大的電流的繼電器或者光耦合器,能使定時開關的應用更廣,具有一定的應用前景。 謝 辭 本畢業設計是在薛老師悉心的關懷與指導下完成,在此對老師獻上最衷心地感謝。李老師從畢業設計一開始就對我們嚴格要求,每周的周一都會和我們開見面會,詢問我們的畢設進度并了解我們遇到的困難,積極協助我們解決設計過程中的各種難題,并要求我們每天記錄在畢業設計中所作的工作進度及遇到的問題,讓我們去發現問題,解決問題。在我遇到難已解決的問題心中急躁時,薛老師總是及時的給予鼓勵,使我能夠有勇敢的克服困難,把畢設繼續進行下去。薛老師對學生的高度關注和對工作高度負責的精神值得我們尊敬,也是我今后走向工作崗位的榜樣。通過本次畢業設計,我不僅是對我們所學知識的一個匯總,同時也是考驗我們學習能力和動手能力的一個平臺;讓我們能學到更多的相關知識,更重要的是學到了面對困難的不放棄、不氣餒的態度,不驕不躁的辦事風格,奮發向上的精神,這些在我今后的生活和學習中都是一筆寶貴的財富。 最后,我要再次感謝在畢業設計過程中對我提供過制作電路板等工具的同學和老師,以及在畢業設計中對我進行過知道的所有老師和同學。 參考文獻[1] 王港元.電子技能基礎基礎[M].成都:四川大學出版社,2001. [2] 白駒珩,雷曉平.單片計算機及其應用[M].北京:高等教育出版社,2004. [3] 范風強,蘭娟麗.單片機語言C51應用實戰集錦[M].北京:電子工業出版社,2005. [4] 沈紅衛.基于單片機的只能系統設計與實現[M].北京:電子工業出版社,2005. [5] 馬忠梅,張凱.單片機的C語言應用程序設計[M]. 北京:航空航天大學出版社,2003. [6] 汪德彪,郭杰.MCS-51單片機原理及接口技術[M].北京:電子工業出版社,2003. [7] 張曉光.用PIC單片機制作的電源定時插座[J]. 電子制作2010年05期. [8] 雷道仲,李書成,羅政球 .基于單片機定時開關的設計[J].科技廣場,2009. [9] 羅冬,趙海剛等.基于單片機的紅外遙控定時開關裝置的設計[J].機電工程技術 2010年第39卷第03期. [10] 譚浩強.C語言程序設計[M].北京:清華大學出版社,2005. [11] 康華光,陳大欽.電子技術基礎模電部分[M].北京:高等教育出版社,2006. [12] 戴佳,戴衛恒,劉博文.51單片機實例精講[M].北京:電子工業出版社,2008. [13] 李瀚蓀.電路分析基礎[M].北京:高等教育出版社,2006. [14] 劉昌華,易逵.8051單片機C語言應用程序設計與實踐[M].北京:國防工業出版社,2007. 附 錄1單片機AT89S52最小系統及液晶12232接入電路原理圖 Header20是液晶12232的插座,其中管腳編號與液晶管腳編號一致。 鍵盤電路原理圖 繼電器驅動電路
完整的Word格式文檔51黑下載地址:
智能定時插座畢業論文.doc
(4.69 MB, 下載次數: 58)
2018-4-8 11:29 上傳
點擊文件名下載附件
|