摘 要:文章提出一種基于8位8051內(nèi)核單片機(jī)的智能插座設(shè)計(jì)方案,以單片機(jī)STC89C51RC作為智能插座系統(tǒng)的主控芯片,將LCD1602作為人機(jī)交互介質(zhì),實(shí)時(shí)顯示當(dāng)前時(shí)間和目標(biāo)時(shí)間,從而通過(guò)單片機(jī)對(duì)電磁繼電器的控制實(shí)現(xiàn)了以弱電控制強(qiáng)電,自動(dòng)導(dǎo)通或斷開(kāi)電路的目的。
關(guān)鍵詞:智能插座;STC89C51RC;單片機(jī);LCD1602
引言
隨著物聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,智能家居正在逐漸步入尋常百姓的日常家庭生活之中。智能家居系統(tǒng)在兼具傳統(tǒng)普通家居的一些功能的同時(shí)也在逐步地讓人們享受著作為智能家居所給生活帶來(lái)的安全性、舒適性以及便利性,特別是自身所具有的節(jié)能環(huán)保的一些獨(dú)特優(yōu)勢(shì)。智能插座是智能家居構(gòu)成系統(tǒng)中最基本同時(shí)也是必不可缺少的設(shè)備之一,它具有自主提前定時(shí),自動(dòng)通斷電從而實(shí)現(xiàn)節(jié)能省電的特點(diǎn),用戶(hù)可以根據(jù)家庭實(shí)際需要隨意提前設(shè)定智能插座的通電時(shí)間或斷電時(shí)間從而滿(mǎn)足自己的生活需要。在本設(shè)計(jì)中選取基于8位8051內(nèi)核的STC89C51RC單片機(jī)作為主控芯片,以L(fǎng)CD1602作為人機(jī)交互的可視介質(zhì),實(shí)現(xiàn)了單組定時(shí)功能,并且可通過(guò)對(duì)繼電器的控制達(dá)到自動(dòng)導(dǎo)通或斷開(kāi)電路的目的。
1 系統(tǒng)硬件設(shè)計(jì)
系統(tǒng)硬件電路共分為單片機(jī)最小系統(tǒng)模塊、LCD1602顯示模塊、按鍵輸入模塊和繼電器控制模塊四個(gè)部分。其中,單片機(jī)最小系統(tǒng)是整個(gè)系統(tǒng)的核心控制單元,負(fù)責(zé)協(xié)調(diào)和控制外圍數(shù)字電路或模擬器件;LCD1602顯示模塊用來(lái)實(shí)時(shí)顯示當(dāng)前時(shí)間和目標(biāo)時(shí)間;按鍵輸入模塊用來(lái)設(shè)定當(dāng)前時(shí)間和目標(biāo)時(shí)間;繼電器控制模塊是整個(gè)智能插座系統(tǒng)設(shè)計(jì)中最終的受控單元,相當(dāng)于一個(gè)電路開(kāi)關(guān),用來(lái)實(shí)現(xiàn)導(dǎo)通或斷開(kāi)電路。
1.1 單片機(jī)最小系統(tǒng)模塊
單片機(jī)是單片微型計(jì)算機(jī)(Single Chip Microcomputer)的簡(jiǎn)稱(chēng),就是把組成微型計(jì)算機(jī)的各個(gè)部件,比如中央處理器CPU、隨機(jī)存取存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、可編程存儲(chǔ)器EPROM、并行及串行輸入輸出I/O接口電路、定時(shí)器/計(jì)數(shù)器、中斷控制器等集成在一塊半導(dǎo)體芯片上而構(gòu)成的一個(gè)微型計(jì)算機(jī)系統(tǒng)[1]。一片單片機(jī)外接上時(shí)鐘電路和復(fù)位電路就是一個(gè)單片機(jī)系統(tǒng),通常我們稱(chēng)之為單片機(jī)最小系統(tǒng)。
本設(shè)計(jì)所采用的單片機(jī)型號(hào)為STC89C51RC,它是一款基于8051內(nèi)核,采用CMOS工藝生產(chǎn),具有低功耗特點(diǎn)的8位單片機(jī)。STC89C51RC擁有4個(gè)8位并行輸入輸出I/O接口:P0口、P1口、P2口和P3口,2個(gè)16位定時(shí)器/計(jì)數(shù)器、6級(jí)中斷系統(tǒng)和21個(gè)特殊功能寄存器SFR等。
單片機(jī)的定時(shí)功能是通過(guò)內(nèi)置的時(shí)鐘電路和定時(shí)電路而實(shí)現(xiàn)的,我們采用內(nèi)部時(shí)鐘方式來(lái)產(chǎn)生時(shí)鐘,將單片機(jī)片內(nèi)的高增益反相放大器通過(guò)XTAL1和XTAL2外接片外晶體振蕩器與瓷片電容組成的并聯(lián)諧振回路所構(gòu)成的自激振蕩器來(lái)提供振蕩時(shí)鐘。我們?cè)谠摃r(shí)鐘電路中采用12MHZ的石英晶振,單片機(jī)時(shí)鐘頻率為12MHZ,12個(gè)時(shí)鐘周期為一個(gè)機(jī)器周期,那么此時(shí)單片機(jī)的機(jī)器周期就是1μs。
1.2 LCD1602顯示模塊
液晶顯示器簡(jiǎn)稱(chēng)為L(zhǎng)CD,它的工作原理一般是通過(guò)電流刺激液晶分子并配合液晶屏背光來(lái)形成畫(huà)面。目前市面常見(jiàn)的各種型號(hào)液晶顯示器通常是按照液晶最大能顯示字符的行列數(shù)來(lái)命名的,例如LCD1602每行最多可以顯示16個(gè)字符,一共可以顯示2行。
本設(shè)計(jì)使用的LCD1602采用5V直流電壓驅(qū)動(dòng),內(nèi)置了128個(gè)字符的ASCII字符集字庫(kù),只能顯示ASCII字符而不能顯示漢字,如果希望顯示漢字則可以選擇LCD12864。設(shè)計(jì)中我們將單片機(jī)P0端口作為L(zhǎng)CD1602的8位數(shù)據(jù)接口,通過(guò)并行方式操作,P2^5端口作為L(zhǎng)CD1602的數(shù)據(jù)/命令選擇接口(H/L),P2^6端口作為L(zhǎng)CD1602的讀/寫(xiě)選擇接口(H/L),P2^7端口作為L(zhǎng)CD1602的使能接口,高電平有效。
1.3 按鍵輸入模塊
我們采用四個(gè)小彈性按鍵作為單片機(jī)的外圍輸入控制器件,用來(lái)設(shè)定當(dāng)前時(shí)間和智能插座導(dǎo)通/斷開(kāi)的目標(biāo)時(shí)間。本設(shè)計(jì)中我們把四個(gè)按鍵的一端接地,另一端分別與單片機(jī)的P2^0、P2^1、P2^2、P2^3相連并接入電路,確保單片機(jī)P2^0、P2^1、P2^2、P2^3四個(gè)I/O端口被賦予高電平狀態(tài),我們讓單片機(jī)不斷的循環(huán)檢測(cè)這四個(gè)I/O端口是否變?yōu)榈碗娖?,?dāng)按鍵閉合時(shí),即表示該I/O端口通過(guò)按鍵與地相連,變成低電平,程序一旦檢測(cè)到I/O端口變?yōu)榈碗娖骄驼f(shuō)明該端口與之對(duì)應(yīng)的按鍵被按下,那么單片機(jī)執(zhí)行相應(yīng)的程序指令。
1.4 繼電器控制模塊
繼電器是當(dāng)輸入量(如電壓、電流、溫度等)達(dá)到規(guī)定值時(shí),使被控制的輸出電路導(dǎo)通或斷開(kāi)的電器。繼電器具有動(dòng)作快、工作穩(wěn)定、使用壽命長(zhǎng)、體積小等優(yōu)點(diǎn),通常應(yīng)用于自動(dòng)控制電路中,它實(shí)際上是用較小的電流去控制較大電流的一種自動(dòng)開(kāi)關(guān)[2]。
我們所采用的繼電器又名電磁繼電器,由鐵芯、線(xiàn)圈、銜鐵和觸點(diǎn)簧片等組成。電磁繼電器的工作原理是繼電器線(xiàn)圈在通過(guò)電流時(shí)會(huì)通過(guò)電磁感應(yīng)而產(chǎn)生磁場(chǎng),銜鐵在電磁力的作用下克服簧片拉力而吸向鐵芯與繼電器的常開(kāi)觸點(diǎn)吸合,當(dāng)線(xiàn)圈斷電后,磁場(chǎng)消失,銜鐵在彈力的作用下返回初始位置。
本設(shè)計(jì)中我們采用單片機(jī)控制雙極型三極管的導(dǎo)通與否來(lái)實(shí)現(xiàn)控制繼電器線(xiàn)圈上電流的導(dǎo)通與斷開(kāi)。從雙極型三極管的結(jié)構(gòu)看,有NPN和PNP兩種類(lèi)型。但是,無(wú)論哪一種類(lèi)型,管子內(nèi)部都有三個(gè)區(qū)、兩個(gè)PN結(jié),并引出三個(gè)電極。三個(gè)區(qū)——發(fā)射區(qū)、基區(qū)和集電區(qū);兩個(gè)PN結(jié)——發(fā)射結(jié)和集電結(jié);三個(gè)電極——發(fā)射極e、基極b和集電極c[3]。我們將繼電器線(xiàn)圈一端外接5V直流電源正極,另一端串聯(lián)一個(gè)PNP三極管的發(fā)射極e,該三極管的集電極c接地,基極b接單片機(jī)P1^4端口,當(dāng)P1^4置為低電平時(shí)三極管導(dǎo)通,此時(shí)繼電器線(xiàn)圈通電,當(dāng)P1^4置為高電平時(shí)三極管不導(dǎo)通,此時(shí)繼電器線(xiàn)圈斷電。
2 系統(tǒng)程序設(shè)計(jì)
整個(gè)系統(tǒng)程序設(shè)計(jì)的原理就是通過(guò)單片機(jī)內(nèi)置的定時(shí)器,每50ms觸發(fā)一次定時(shí)器中斷,在定時(shí)器中斷函數(shù)中累計(jì)觸發(fā)定時(shí)器中斷的次數(shù),那么每當(dāng)定時(shí)器中斷觸發(fā)次數(shù)累計(jì)到20次的時(shí)候就表示經(jīng)歷了1s的時(shí)間間隔,此時(shí)通過(guò)單片機(jī)計(jì)算出當(dāng)前的時(shí)間,然后與目標(biāo)時(shí)間進(jìn)行對(duì)比,如果當(dāng)前時(shí)間與目標(biāo)時(shí)間相等(或者超越目標(biāo)時(shí)間)則說(shuō)明目標(biāo)時(shí)間已經(jīng)到達(dá),單片機(jī)發(fā)出信號(hào)控制繼電器動(dòng)作即可達(dá)到導(dǎo)通/斷開(kāi)電路的目的。
單片機(jī)STC89C51RC內(nèi)置有兩個(gè)16位可編程定時(shí)器/計(jì)數(shù)器,即定時(shí)器T0和定時(shí)器T1,它們同時(shí)具有定時(shí)和計(jì)數(shù)功能,通過(guò)設(shè)置相關(guān)的特殊功能寄存器就可以選擇啟用定時(shí)或計(jì)數(shù)功能。單片機(jī)一旦開(kāi)啟定時(shí)功能后,定時(shí)器就會(huì)在外部石英晶振的作用下自動(dòng)開(kāi)始計(jì)時(shí),當(dāng)定時(shí)器的計(jì)數(shù)器計(jì)滿(mǎn)后會(huì)觸發(fā)定時(shí)器中斷。
定時(shí)器/計(jì)數(shù)器的本質(zhì)是一個(gè)16位的加1計(jì)數(shù)器,由高8位和低8位兩個(gè)寄存器組成,單片機(jī)在使用定時(shí)器或計(jì)數(shù)器功能時(shí),需要設(shè)置兩個(gè)與定時(shí)器有關(guān)的寄存器:定時(shí)器/計(jì)數(shù)器工作方式寄存器TMOD和定時(shí)器/計(jì)數(shù)器控制寄存器TCON。本設(shè)計(jì)中我們使用的是工作在工作方式1(16位定時(shí)器/計(jì)數(shù)器)下的定時(shí)器T0,需要設(shè)置TMOD=0X01。在1.1節(jié)中我們已經(jīng)提到單片機(jī)的機(jī)器周期是1μs,那么為了獲得50ms的定時(shí)間隔,我們需要在定時(shí)器T0的高8位寄存器TH0和低8位寄存器TL0中分別裝入大小為(65536-50000)/256和(65536-50000)%256的初始值,也就是分別設(shè)置寄存器TH0=(65536-50000)/256和寄存器TL0=(65536-50000)%256。除此之外,我們需要在定時(shí)器T0計(jì)滿(mǎn)時(shí)觸發(fā)定時(shí)器中斷,所以我們需要依次開(kāi)總中斷,開(kāi)定時(shí)器T0中斷,然后啟動(dòng)定時(shí)器T0開(kāi)始計(jì)數(shù),即依次設(shè)置EA=1,ET0=1,TR0=1。
定時(shí)器T0一旦啟動(dòng)便會(huì)開(kāi)始計(jì)數(shù),當(dāng)計(jì)數(shù)溢出時(shí),自動(dòng)進(jìn)入中斷服務(wù)程序執(zhí)行代碼,執(zhí)行完中斷程序后再回到原來(lái)處繼續(xù)執(zhí)行。為了確保定時(shí)器T0每次中斷的時(shí)間間隔都是50ms,我們需要在中斷函數(shù)中每次為寄存器TH0和TL0重新裝入初始值,每進(jìn)入一次中斷需要的時(shí)間是50ms,每當(dāng)中斷程序進(jìn)入了20次,也就是時(shí)間累計(jì)了1s,此時(shí)我們需要將最新的時(shí)間數(shù)據(jù)刷新顯示到LCD1602上。
整個(gè)程序中,判斷是否需要單片機(jī)發(fā)送信號(hào)控制繼電器動(dòng)作的標(biāo)志就是當(dāng)前時(shí)間是否到達(dá)或超越目標(biāo)時(shí)間,我們需要在主程序中不斷循環(huán)判斷這一標(biāo)志是否達(dá)成,當(dāng)達(dá)成這一標(biāo)志時(shí),我們會(huì)讓單片機(jī)發(fā)送信號(hào)給繼電器,控制繼電器線(xiàn)圈電流的通斷,從而控制繼電器電路的導(dǎo)通/斷開(kāi)。
3 結(jié)束語(yǔ)
綜上所述,在文章中我們基于8051內(nèi)核單片機(jī)設(shè)計(jì)的該款簡(jiǎn)易智能插座,不僅硬件電路設(shè)計(jì)簡(jiǎn)潔可靠,而且成本低廉投入少,能夠穩(wěn)定實(shí)現(xiàn)智能家居中定時(shí)開(kāi)關(guān)電路的功能,同時(shí)與目前市場(chǎng)上已有的各種智能插座產(chǎn)品比較,也會(huì)發(fā)現(xiàn)我們?cè)O(shè)計(jì)的智能插座在功能上仍有很大的擴(kuò)展空間,在后面的工作中上我們將會(huì)考慮將多組定時(shí)、WIFI網(wǎng)絡(luò)控制、微信控制等實(shí)用功能引入。
參考文獻(xiàn)
[1]張毅坤,陳善久,裘雪紅.單片微型計(jì)算機(jī)原理及應(yīng)用[M].西安:西安電子科技大學(xué)出版社,1998.
[2]郭天祥.新概念51單片機(jī)C語(yǔ)言教程——入門(mén)、提高、開(kāi)發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2009.
[3]楊素行.模擬電子技術(shù)基礎(chǔ)簡(jiǎn)明教程(第三版)[M].北京:高等教育出版社,2006.