單片機(jī)控制照明電路設(shè)計(jì)_第1頁(yè)
單片機(jī)控制照明電路設(shè)計(jì)_第2頁(yè)
單片機(jī)控制照明電路設(shè)計(jì)_第3頁(yè)
單片機(jī)控制照明電路設(shè)計(jì)_第4頁(yè)
單片機(jī)控制照明電路設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、淮陰工學(xué)院畢業(yè)設(shè)計(jì)說(shuō)明書(shū)(論文)第 34 頁(yè) 共 34頁(yè)1 緒論11 課題的意義單片機(jī)控制照明電路具有自動(dòng)化,智能化等特點(diǎn)。這樣,白熾燈就會(huì)按照人們?cè)O(shè)計(jì)的程序工作,從而滿足人們的要求。此外,單片機(jī)不僅便宜,適應(yīng)性也強(qiáng),廣泛應(yīng)用于智能儀表,數(shù)據(jù)采集系統(tǒng),控制系統(tǒng)等許多場(chǎng)合。在燈光控制方面,隨著社會(huì)的不斷發(fā)展,人們希望燈光不僅作為一種單調(diào)的照明工具,還能有更多的變化。如燈光亮度可調(diào),自動(dòng)定時(shí)開(kāi)關(guān)燈,盡可能省電等等。本設(shè)計(jì)主要用于雞舍的燈光控制。課題涉及單片機(jī),數(shù)字電路,電力電子等。這為我們運(yùn)用所學(xué)知識(shí)提供了很好的磨練機(jī)會(huì)。近年來(lái),我國(guó)養(yǎng)殖業(yè)得到了快速發(fā)展。為使雞多產(chǎn)蛋,肉雞生長(zhǎng)加速,除了精心喂養(yǎng)外

2、,雞舍每天應(yīng)保證16h的光照,僅靠自然光照不能滿足需要。通常雞舍在黎明和傍晚開(kāi)燈,以延長(zhǎng)光照時(shí)間。目前,多數(shù)養(yǎng)雞場(chǎng)雞舍的燈光扔由人工用閘刀控制,傍晚雞舍光線變暗時(shí)開(kāi)燈,晚上9點(diǎn)左右關(guān)燈,黎明前5點(diǎn)左右再開(kāi)燈,天亮后再關(guān)燈。依靠人工手動(dòng)控制有不少弊端,現(xiàn)已有一些雞場(chǎng)的燈光控制采用定時(shí)自動(dòng)開(kāi)關(guān)控制,可節(jié)省人力,開(kāi)關(guān)時(shí)刻也相對(duì)準(zhǔn)確。12 單片機(jī)照明控制的應(yīng)用前景及趨勢(shì)單片機(jī)控制范圍大,大多數(shù)用于大型場(chǎng)合,適用于集中控制可以節(jié)省大量的時(shí)間和人力資源。對(duì)于普通用戶而言,則實(shí)用性不高。首先,小型用戶操作照明控制系統(tǒng)就比較困難,不能充分發(fā)揮該系統(tǒng)的作用。其次,小型用戶本身管理難度不大,即使使用手動(dòng)開(kāi)關(guān)也不會(huì)

3、占用他們太多的時(shí)間。因此他們還是會(huì)選擇普通開(kāi)關(guān),而不是單片機(jī)控制的照明系統(tǒng)。單片機(jī)照明系統(tǒng)的應(yīng)用依然不容樂(lè)觀。這就要求該系統(tǒng)必須向小型化、易操作的方向發(fā)展。進(jìn)而滿足廣大用戶的需求。13 課題研究方向本設(shè)計(jì)中使用MCS-51單片機(jī)實(shí)現(xiàn)對(duì)養(yǎng)雞場(chǎng)燈光的夜間間歇控制,使其能滿足白天不亮,夜間亮,亮與滅是間歇的。另外,開(kāi)燈,亮與滅以及漸熄的時(shí)間長(zhǎng)短是可調(diào)的。這一系列功能是通過(guò)軟件與硬件相結(jié)合方法來(lái)完成的。根據(jù)設(shè)計(jì)的不同要求,所有的控制設(shè)定都可以進(jìn)行相應(yīng)地改變。這個(gè)設(shè)計(jì)的目的是用于雞舍的燈光控制,因?yàn)闊艄鈱?duì)肉雞的生長(zhǎng)至關(guān)重要,因此控制好燈光可讓雞更好的生長(zhǎng)。2 總體設(shè)計(jì)21 設(shè)計(jì)要求本設(shè)計(jì)利用單片機(jī)為控制

4、核心,制作一個(gè)簡(jiǎn)易的燈光控制系統(tǒng),實(shí)現(xiàn)時(shí)間參數(shù)的實(shí)時(shí)顯示,白天熄燈;夜間開(kāi)關(guān)燈可交替。開(kāi)燈時(shí)間可在15分鐘到1小時(shí)之間可調(diào);關(guān)燈時(shí)間在2小時(shí)到6小時(shí)之間可調(diào)。選擇AT89S52作為核心控制系統(tǒng)、DS1302芯片提供時(shí)鐘定時(shí)功能、四腳按鍵以及4只數(shù)碼管作為顯示。設(shè)計(jì)要求:1、在手動(dòng)控制狀態(tài),通過(guò)設(shè)在面板上的按鈕可以隨時(shí)進(jìn)行手動(dòng)控制開(kāi)關(guān)燈、定時(shí)等操作。2、在自動(dòng)控制狀態(tài),系統(tǒng)會(huì)按照所設(shè)計(jì)的程序有條不紊的執(zhí)行,不需要人工24小時(shí)看守。22 系統(tǒng)結(jié)構(gòu)本系統(tǒng)主要是復(fù)位電路、時(shí)鐘電路模塊、鍵盤(pán)電路模塊、顯示電路、照明電路這幾個(gè)部分組成的。其中主要用到:?jiǎn)纹瑱C(jī)、數(shù)碼管、時(shí)鐘芯片、按鍵、繼電器等部件。根據(jù)燈光

5、控制器的功能要求,以AT89S52為核心控制電路系統(tǒng)。系統(tǒng)總體結(jié)構(gòu)框圖如圖1所示。 (1) 單片機(jī)芯片,AT89S52所要求的電壓比較低,能以3V的超底壓工作,但性能卻很優(yōu)越,可以編程也可以擦除。單片機(jī)的EEPROM可擦除重復(fù)1000次,而CPU和諸多功能模塊組合在一個(gè)閃存芯片里面,AT89S52單片機(jī)則就顯得更為輕巧,能為更多的嵌入式系統(tǒng)提供合適的解決方法。(2) 時(shí)鐘芯片,選擇DS1302時(shí)鐘芯片。單片機(jī)計(jì)時(shí),要用到計(jì)數(shù)器占用硬件資源,還要設(shè)置中斷、查詢等操作也會(huì)占用單片機(jī)資源。時(shí)鐘芯片DS1302能很好的解決這個(gè)問(wèn)題。(3) 顯示模塊,選用由發(fā)光二極管和小數(shù)點(diǎn)形成的“8”字型數(shù)碼管。它具

6、有價(jià)格低、優(yōu)良的配置、而且很方便與單片機(jī)接口等順應(yīng)人們需求的優(yōu)點(diǎn)。驅(qū)動(dòng)方式選擇動(dòng)態(tài)顯示。(4) 按鍵模塊,選擇獨(dú)立式按鍵。本設(shè)計(jì)用到五個(gè)按鍵,分別是選擇鍵、加鍵、減鍵、確定鍵以及定時(shí)開(kāi)關(guān)鍵。 白熾燈鍵盤(pán)模塊 AT89S52 主控制 模塊數(shù)碼管顯示模塊DS1302時(shí)鐘模塊復(fù)位電路 圖 1系統(tǒng)結(jié)構(gòu)框圖3 硬件設(shè)計(jì)31 芯片及元器件介紹3.1.1 AT89S52單片機(jī)芯片單片機(jī)引腳功能介紹VCC:電源電壓。GND:接地。PO口:此端口占有8位,而且不是單向的。如果內(nèi)存芯片連接外部,可以用來(lái)作為一種低8的地址線和數(shù)據(jù)線;在ROM編程狀態(tài)下,它是輸入的,而在驗(yàn)證狀態(tài)下,則是輸出的。最多能夠驅(qū)動(dòng)8個(gè)LST

7、TL門(mén)電路。P1口:此端口占有8位,而且不是單向的,既擁有上拉電阻又可以充當(dāng)I/O口。在ROM編程和驗(yàn)證的狀態(tài)下,只占有低8的地址。P2口:此端口占有8位,而且不是單向的,既擁有上拉電阻又可以充當(dāng)I/O口。如果單片機(jī)連接外部的存儲(chǔ)器,它送出高8位的地址。在ROM編程和驗(yàn)證的狀態(tài)下,它將占有高8位的地址,同時(shí)還可以接受控制信號(hào)。能作用于4個(gè)LSTTL的門(mén)電路。P3口:此端口占有8位,而且不是單向的,既擁有上拉電阻又可以充當(dāng)I/O口。能作用于4個(gè)LSTTL的門(mén)電路。此引腳還有第二功能,在日常生活里,大多數(shù)情況下都不會(huì)用第一功能。具體情況如下表所示:P3.0 RXD(串行接收)P3.1 TXD(串行

8、發(fā)送)P3.2 INTO(外輸0個(gè)中斷)P3.3 INT1(外中斷1輸入)P3.4 T0(定時(shí)0計(jì)輸入)P3.5 T1(定時(shí)1計(jì)輸入)P3.6 WR非(外RAM寫(xiě)選)P3.7 RD非(外ROM讀選)P3口還可用于接板信號(hào)。RST:復(fù)位輸入接口,在高電平的時(shí)候才能工作。在振蕩器啟動(dòng)的情況下,高電平顯示能夠超過(guò)兩個(gè)周期,就可以復(fù)位。當(dāng)89C51能夠工作后,ALE端將放出只有正常振蕩六分之一頻率的正向脈沖,如果示波器能夠探查出,那么就可以確定該芯片是好的。51單片機(jī)連接外存儲(chǔ)時(shí),P0可以占有地址,也可以作用于數(shù)據(jù)信號(hào)。此時(shí)就要看有沒(méi)有ALE信號(hào)了,一旦有,那么低8位地址就是有用的。反之,則是傳輸?shù)臄?shù)

9、據(jù)信號(hào)。ALE信號(hào)可在外部的情況下輸出時(shí)鐘或者是定時(shí)的信號(hào)。但要記住的是,如果接到外存儲(chǔ),將會(huì)自動(dòng)過(guò)濾掉一個(gè)ALE的脈沖。可以驅(qū)動(dòng)8個(gè)LSTTL門(mén)電路。PSEN非:可以判斷外程序存儲(chǔ)的讀選端口。當(dāng)訪問(wèn)外部的程序存儲(chǔ)器時(shí),一旦取得指令,一個(gè)機(jī)器周期內(nèi)要有兩次有效的輸出信號(hào)。EA非/ VPP:內(nèi)、外ROM選擇。只有此端口為高電平,CPU才會(huì)訪問(wèn)內(nèi)程序存儲(chǔ);當(dāng)然超過(guò)容量的特殊情況下,會(huì)自動(dòng)接到外程序存儲(chǔ)。反之低電平時(shí),CPU不會(huì)去理會(huì)內(nèi)部的程序存儲(chǔ),只會(huì)關(guān)注外部的程序指令。但要記住的是,如果是編程LB1的話,在復(fù)位過(guò)程中會(huì)將此端口的狀態(tài)進(jìn)行鎖存。XTAL1:一個(gè)可以接外晶和電容的端口。在外振蕩的狀態(tài)

10、下,此引腳外部輸入的是時(shí)鐘脈沖。XTAL2:另一個(gè)可以接外晶和電容的端口。在外振蕩的狀態(tài)下,此引腳是懸浮的。3.1.2 繼電器本系統(tǒng)中電磁繼電器作為主要的控制器件。由于本系統(tǒng)中,照明電路中需要用到繼電器來(lái)控制電路。把繼電器的一端接上一個(gè)可以發(fā)光的二極管和一個(gè)一千歐姆大小的電阻,這里的電阻起到了限流的作用。如果在電路運(yùn)行的時(shí)候,發(fā)光二極管發(fā)光,此時(shí)繼電器的線圈上有電流。同時(shí),在電路中還需要并聯(lián)一個(gè)普通的二極管。它的作用主要是使得一些元器件能夠正常工作。本電路采用5V大小的繼電器。32 時(shí)鐘電路單片機(jī)系統(tǒng)里面都有晶振,他就好比單片機(jī)的心臟,在單片機(jī)系統(tǒng)里面他是不可缺少的一部分,它全稱晶體振蕩電路。

11、把定時(shí)元件外接在XTAL1、XTAL2引腳上,使單片機(jī)內(nèi)部的振蕩電路產(chǎn)生自激振蕩。經(jīng)常使用的內(nèi)部時(shí)鐘方式是選用電容和晶振組成的并聯(lián)諧振回路。振蕩晶體可在1.212MHz范圍內(nèi)選擇電容大小可以起到頻率微調(diào)的作用。本系統(tǒng)中,選用30pF大小的電容,外接32.KHz晶振,Vcc1為后備電源,Vcc2為主電源。即使主電源關(guān)閉,時(shí)鐘也能照常運(yùn)行。Vcc1或Vcc2兩者中較大的會(huì)自動(dòng)給DS1302進(jìn)行供電。如果在傳送過(guò)程中RSTS置為低電平,就會(huì)終止此次數(shù)據(jù)傳送,I/O引腳變?yōu)楦咦钁B(tài)。上電后,在Vcc>2V之前,RST要保持低電平。只有在SCLK 為低電平時(shí),才能將RST置為高電平。SCLK為時(shí)鐘輸

12、入端。電路如圖2所示。 圖2 時(shí)鐘電路33 復(fù)位電路單片機(jī)的初始化操作首先需要復(fù)位,然后才是程序初始化。它的主要是為了讓程序從AT89S52的初始地址0000H處開(kāi)始執(zhí)行。除系統(tǒng)的正常初始化狀態(tài)外,有時(shí)因?yàn)椴僮鞯腻e(cuò)誤或者程序的運(yùn)行發(fā)生錯(cuò)誤,系統(tǒng)會(huì)發(fā)生死鎖。 這個(gè)時(shí)候就需要使用按復(fù)位鍵,重新啟動(dòng)系統(tǒng),這樣可以有效的解決死鎖狀態(tài)。 AT89S52單片機(jī)內(nèi)部自帶復(fù)位電路,RESET引腳是高電平的時(shí)候有效,可以通過(guò)自動(dòng)復(fù)位或手動(dòng)復(fù)位兩種復(fù)位方式來(lái)進(jìn)行復(fù)位操作。本設(shè)計(jì)系統(tǒng)中是低電平有效復(fù)位,用戶開(kāi)機(jī)的時(shí)候就啟動(dòng)復(fù)位操作,在+5伏時(shí)進(jìn)入工作狀態(tài)。 復(fù)位電路如圖3所示。 圖3 復(fù)位電路34 鍵盤(pán)電路 鍵盤(pán)電

13、路如圖4所示,單片機(jī)P2口用來(lái)信號(hào)輸入,當(dāng)S1,S2,S3,S4,S5開(kāi)關(guān)其中的任何一個(gè)按下時(shí),其對(duì)應(yīng)的P2.0,P2.1,P2.2,P2.3,P2.4口就會(huì)為低電平,然后進(jìn)行單片機(jī)相應(yīng)的操作。具體實(shí)現(xiàn)的功能為:S1選擇所需調(diào)整的時(shí)間參數(shù),S2加時(shí)間,S3減時(shí)間,S4確定參數(shù)設(shè)定,S5控制定時(shí)的開(kāi)與關(guān)。按確定鍵將依次顯示時(shí)間和各個(gè)定時(shí)時(shí)段,接著按選擇鍵就可以選擇要調(diào)整的時(shí)間(時(shí)、分、秒)按加(減)鍵就可以調(diào)整時(shí)間或重新定時(shí)。最后,按下確定鍵,就完成了對(duì)參數(shù)的設(shè)定。調(diào)整時(shí)間步驟如下:1按下確定鍵,數(shù)碼管顯示當(dāng)前時(shí)間,并停留不動(dòng) 2按下選擇鍵,數(shù)碼管顯示所選時(shí)間,兩位數(shù)字閃動(dòng)。 3按加鍵或減鍵,自

14、由調(diào)整時(shí)間,長(zhǎng)按則加快增加或減少。調(diào)整定時(shí)和調(diào)整時(shí)間方法一樣。圖4鍵盤(pán)電路35 數(shù)碼管顯示電路顯示電路是時(shí)鐘模塊中最為重要的部分,因?yàn)槎丝诘膯?wèn)題以及動(dòng)態(tài)顯示方式的優(yōu)越性,本系統(tǒng)采用的一個(gè)四位數(shù)碼管,使用共陽(yáng)極接法以及動(dòng)態(tài)顯示,以三極管作為驅(qū)動(dòng)進(jìn)行數(shù)碼管的顯示。在本設(shè)計(jì)中的數(shù)碼管是顯示當(dāng)前時(shí)間和定時(shí)時(shí)間,因?yàn)榘存I設(shè)置有加鍵和減鍵,所以先要對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)然后進(jìn)行累加或減。我們把數(shù)碼管先連接到74LS373鎖存器上,然后把鎖存器連接到單片機(jī)AT89S52上。在本系統(tǒng)中數(shù)碼管的所有段選碼都由單片機(jī)的P1口給出,位選信號(hào)由P0.0、P0.1、P0.2和P0.3口控制。在每一時(shí)刻,4位LED可能會(huì)顯示相同

15、的內(nèi)容,所以要用掃描顯示來(lái)使一位亮而其他三位暗,周期為2ms。由于采用的是共陽(yáng)極方式,低電平才有效,則要其中一個(gè)基極為低電平,三極管導(dǎo)通,集電極為低電平,位選打開(kāi),數(shù)碼管顯示。而段選碼由P1口8位I/O口控制,高電平時(shí)對(duì)應(yīng)的段被點(diǎn)亮。在此瞬間,段選碼由P2口輸出相應(yīng)的字符電平,P0.0、P0.1、P0.2和P0.3口輸出位選碼,來(lái)保證顯示相應(yīng)的字符。以此類(lèi)推,每位進(jìn)行顯示后延時(shí)一會(huì),構(gòu)成視覺(jué)暫留,這樣看起來(lái)就像是一起顯示出來(lái)的。如圖5所示。圖5顯示電路36 照明電路 照明電路采用白熾燈進(jìn)行照明,因?yàn)榘谉霟纛~定電壓為220V,可根據(jù)實(shí)際情況并聯(lián)多個(gè)。繼電器K1受時(shí)鐘電路控制。照明燈泡使用繼電器作

16、為開(kāi)關(guān)驅(qū)動(dòng)照明電路。J1開(kāi)關(guān)斷開(kāi)時(shí),繼電器工作;當(dāng)J1導(dǎo)通時(shí),繼電器控制電路失效,實(shí)現(xiàn)人工手動(dòng)控制。三極管為使繼電器工作股接在繼電器的控制端。由于單片機(jī)輸出的是低電平信號(hào)有效股選用PNP型三極管,當(dāng)單片機(jī)輸出低電平是三極管導(dǎo)通,電流流入繼電器,使繼電器工作,從而控制照明電路的亮滅,其電路連接圖如圖6所示:圖6照明電路37 單片機(jī)系統(tǒng)電源設(shè)計(jì)+5V電壓源主要為元器件和工作電路提供穩(wěn)壓源。電源(VCC)是整個(gè)系統(tǒng)正常工作的根本。過(guò)大的電源電壓會(huì)更大程度的縮短芯片的壽命,甚至?xí)p壞芯片和其它元器件;過(guò)小的電源又不能驅(qū)動(dòng)電路工作。所以設(shè)定電源電壓合適的值非常重要的。本電路主要芯片工作的電壓都在+5V左

17、右,因此在整個(gè)電路板中采用W7800三端穩(wěn)壓芯片將+12V的電壓整形為+5V直流電壓。用W7800設(shè)計(jì)的+5V穩(wěn)壓電源電路圖如圖7所示:圖7供電直流電源4 軟件設(shè)計(jì)41 主程序流程框圖 本設(shè)計(jì)采用C語(yǔ)言,在主程序中,主要實(shí)現(xiàn)程序初始化,按鍵處理,時(shí)間的動(dòng)態(tài)顯示。當(dāng)有鍵按下時(shí),進(jìn)入按鍵處理程序。開(kāi)始程序初始化 顯示時(shí)間定時(shí)到?結(jié)束顯示是哪組 點(diǎn)亮 照明設(shè)施 Y N42 延時(shí)子程序設(shè)計(jì) 延時(shí)程序主要對(duì)數(shù)碼管的顯示和按鍵的掃描進(jìn)行延時(shí)操作。延時(shí)的時(shí)間可選5ms10ms,具體程序如下:void Delay(uint num)while( -num );43 時(shí)間讀取和顯示子程序設(shè)計(jì)用DS1302時(shí)鐘芯

18、片來(lái)讀取時(shí)間,然后依次顯示在四位數(shù)碼管上。時(shí)間的讀取和顯示流程圖,如圖8和圖9所示。顯示數(shù)據(jù)寫(xiě)1302地址復(fù)位產(chǎn)生一個(gè)高電平延時(shí)向該地址寫(xiě)數(shù)據(jù)地址增加數(shù)據(jù)寫(xiě)完?開(kāi)始地址增加初始化使DS1302沒(méi)寫(xiě)保護(hù)復(fù)位產(chǎn)生一個(gè)高電平寫(xiě)1302地址延時(shí)向該地址寫(xiě)數(shù)據(jù)數(shù)據(jù)寫(xiě)完? Y Y N N圖8 DS1302讀取時(shí)間流程圖初始化開(kāi)始讀取DS1302顯示分顯示時(shí)結(jié)束 圖9 LED顯示時(shí)間流程圖4.3.1 顯示數(shù)據(jù)子程序數(shù)碼管顯示初始化程序如下Void initlcm(void)/初始化Delay_xMs(10);/功能設(shè)置:一次送8位數(shù)據(jù)。sendCMD(0x04);/點(diǎn)設(shè)定:顯示字符/光標(biāo)從左到右移動(dòng)send

19、CMD(0x0f);顯示設(shè)定:開(kāi)顯示,顯示光標(biāo)和當(dāng)前顯示位并閃動(dòng)sendCMD(0x01);/清DDRAMsendCMD(0x02);/DDRAM地址歸位sendCMD(off_cursor);/關(guān)光標(biāo)44 DS1302驅(qū)動(dòng)程序/寄存器宏定義#define WRITE_SECOND 0x80#define WRITE_MINUTE 0x82#define WRITE_HOUR 0x84#define READ_SECOND 0x81#define READ_MINUTE 0x83#define READ_HOUR 0x85#define WRITE_PROTECT 0x8E/初始化DS1302

20、void Initial(void) Write1302 (WRITE_PROTECT,0X00); /禁止寫(xiě)保護(hù) Write1302 (WRITE_SECOND,0x56); /秒位初始化 Write1302 (WRITE_MINUTE,0x34); /分鐘初始化 Write1302 (WRITE_HOUR,0x12); /小時(shí)初始化 Write1302 (WRITE_PROTECT,0x80); /允許寫(xiě)保護(hù)/位尋址寄存器定義SBIT ACC_7 = ACC7;/管腳定義SBIT SCLK = P35; / DS1302時(shí)鐘信號(hào) 7腳SBIT DIO= P36; / DS1302數(shù)據(jù)信號(hào)

21、6腳SBIT CE = P37; / DS1302片選 5腳 /地址、數(shù)據(jù)發(fā)送子程序void Write1302 ( unsigned char addr,dat ) unsigned char i,temp; CE=0; /CE引腳為低,數(shù)據(jù)傳送中止 SCLK=0; /清零時(shí)鐘總線 CE = 1; /CE引腳為高,邏輯控制有效 /發(fā)送地址 for ( i=8; i>0; i- ) /循環(huán)8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&0x01); /每次傳輸?shù)妥止?jié) addr >>= 1; /右移一位 SCLK = 1; /發(fā)

22、送數(shù)據(jù) for ( i=8; i>0; i- ) SCLK = 0; temp = dat; DIO = (bit)(temp&0x01); dat >>= 1; SCLK = 1; CE = 0; /數(shù)據(jù)讀取子程序unsigned char Read1302 ( unsigned char addr ) unsigned char i,temp,dat1,dat2; CE=0; SCLK=0; CE = 1; /發(fā)送地址 for ( i=8; i>0; i- ) /循環(huán)8次移位 SCLK = 0; temp = addr; DIO = (bit)(temp&a

23、mp;0x01); /每次傳輸?shù)妥止?jié) addr >>= 1; /右移一位 SCLK = 1; /讀取數(shù)據(jù) for ( i=8; i>0; i- ) ACC_7=DIO; SCLK = 1; ACC>>=1; SCLK = 0; CE=0; dat1=ACC; dat2=dat1/16; /數(shù)據(jù)進(jìn)制轉(zhuǎn)換 dat1=dat1%16; /十六進(jìn)制轉(zhuǎn)十進(jìn)制 dat1=dat1+dat2*10; return (dat1);45 掃描鍵盤(pán)子程序設(shè)計(jì)鍵盤(pán)的操作,無(wú)論是按鍵或鍵盤(pán)都是利用機(jī)械點(diǎn)的合、斷作用。由于機(jī)械觸點(diǎn)的彈性作用,CPU可能對(duì)鍵的一次閉合,做出兩次鍵輸入處理,此

24、時(shí)必須消除抖動(dòng)的影響來(lái)防止這種錯(cuò)誤發(fā)生。去除抖動(dòng)有硬、軟件兩種方法。如果按鍵較多,最好不要采用硬件去抖。而軟件去抖動(dòng)可以節(jié)省硬件花費(fèi),實(shí)用性和有效性高,所以常采用軟件的方法進(jìn)行消抖。進(jìn)行初始化后,實(shí)際鍵值參數(shù)變?yōu)?FH(連接的是P2口的0,1,2,3,4,初始化即為此值),由于抖動(dòng)的原因,為確保是有鍵按下,則必須進(jìn)行兩次比較。第一次掃描,P2、1FH相等則說(shuō)明沒(méi)有按下鍵,不相等則用軟件消除抖動(dòng),延遲10毫秒后進(jìn)行第二次。若相等則說(shuō)明之前的現(xiàn)象并不是按鍵所引發(fā)的,如果不相等則表明確實(shí)有按鍵這個(gè)動(dòng)作發(fā)生。具體代碼為:void key()static uchar key_new;key_can =

25、20;P2 |= 0xf0; if(P2 & 0xf0) != 0xf0)/按鍵按下(第一次)Delay(10);if(P2 & 0xf0) != 0xf0) && (key_new = 1)/確認(rèn)是按鍵按下(第二次)key_new = 0;switch(P2 & 0xf0)case 0xe0: key_can = 1; break; case 0xd0: key_can = 2; break; case 0xb0: key_can = 3; break; case 0x70: key_can = 4; break; else key_new = 1;鍵

26、盤(pán)主要有獨(dú)立式和矩陣式兩種,獨(dú)立式按鍵電路配置靈活,弊端是I/O口浪費(fèi)較大,適用于鍵盤(pán)較少的電路。鍵盤(pán)程序作為主程序的一部分,通過(guò)查詢方式讀取鍵盤(pán)動(dòng)作,根據(jù)讀取的值,鍵盤(pán)進(jìn)行相應(yīng)操作處理程序。鍵盤(pán)掃描子程序流程圖如圖10所示。開(kāi)始結(jié)束掃描鍵值延時(shí)去抖動(dòng)提取鍵值調(diào)用鍵盤(pán)處理程序有鍵按下?有鍵按下? N Y N Y 圖10 鍵盤(pán)掃描子程序流程圖46 時(shí)鐘子程序#include <regx52.h>#define uchar unsigned char#define uint unsigned intuchar dispcode= 0x3f,0x06,0x5b,0x4f, 0x66,0x

27、6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71,0x00; /定義0到F的段選碼uchar dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; /數(shù)碼管的位選碼 uchar dispbuf8= 0,0,16,0,0,16,0,0; /定義一個(gè)緩沖區(qū)uchar dispbitcnt;uchar second;uchar minite;uchar hour;uint tcnt;uchar mstcnt;uchar i,j;void main(void) TMOD=0x02; /定時(shí)

28、器0工作方式2 TH0=0x06; /每250us中斷一次 TL0=0x06; TR0=1; /啟動(dòng)定時(shí)器0 ET0=1; /定時(shí)器0中斷允許 EA=1; /CPU開(kāi)中斷 while(1) if(P0_0=0) for(i=5;i>0;i-) for(j=248;j>0;j-); /延時(shí)檢查是否是P0_0被按下 if(P0_0=0) /如果被按下 second+; /秒就加1 if (second=60) second=0; dispbuf0 =second%10; /存放秒的個(gè)位 dispbuf1 =second/10; /存放秒的十位 while (P0_0=0); /等待P0

29、_0變高 if(P0_1=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_1=0) minite+; if (minite=60) minite=0; dispbuf3 =minite%10; dispbuf4 =minite/10; while (P0_1=0); if(P0_2=0) for(i=5;i>0;i-) for(j=248;j>0;j-); if(P0_2=0) hour+; if(hour=24) hour=0; dispbuf6 =hour%10; dispbuf7 =hour/10; while (P0_2=

30、0); void t0 (void) interrupt 1 using 0 /定時(shí)器0中斷服務(wù)程序 P1=dispcodedispbufdispbitcnt; /為位選碼 P3=dispbitcodedispbitcnt; /為段選碼 dispbitcnt+; if(dispbitcnt=8) dispbitcnt=0; tcnt+; if(tcnt=4000) /此時(shí)有一秒鐘了(4000*250us) tcnt=0; second+; if(second=60) second=0; minite+; if(minite=60) minite=0; hour+; if(hour=24) ho

31、ur=0; dispbuf0=second%10; dispbuf1=second/10; dispbuf3=minite%10; dispbuf4=minite/10; dispbuf6=hour%10; dispbuf7=hour/10; 5 原理圖繪制和仿真本次論文設(shè)計(jì)的原理圖繪制所采用的軟件是protel99se,而原理圖仿真采用的是 proteus軟件。51 電路實(shí)現(xiàn)的基本步驟查閱各種書(shū)籍及網(wǎng)絡(luò)選擇單片機(jī)及方案Protel繪畫(huà)電路原理圖Proteus仿真進(jìn)行程序調(diào)試和燒錄 圖15 電路設(shè)計(jì)步驟1) 查閱各種書(shū)籍及網(wǎng)絡(luò)。首先查閱相關(guān)資料,對(duì)這個(gè)設(shè)計(jì)進(jìn)行由淺至深的了解。2) 選擇單片機(jī)及

32、方案。對(duì)此課題進(jìn)一步了解后,我開(kāi)始考慮選擇什么單片機(jī)及用什么方案來(lái)做此設(shè)計(jì)。3)電路原理圖:利用電路設(shè)計(jì)軟件,將方案用標(biāo)準(zhǔn)的電路原理圖表示,為電路板圖的生成提供依據(jù)。4)仿真原理圖:根據(jù)電路原理圖,利用電路仿真軟件,畫(huà)出仿真圖。 5)程序的調(diào)試和燒錄:根據(jù)仿真時(shí)的運(yùn)行狀態(tài)和過(guò)程,檢查編寫(xiě)的程序是否存在問(wèn)題并進(jìn)行調(diào)試,最終把已調(diào)試好的程序燒錄到單片機(jī)里。 52 原理圖的繪制1) 創(chuàng)建一個(gè)新的設(shè)計(jì)文件管理庫(kù) 。 2) 加載元件庫(kù) 3) 繪制電路圖 4) 修改元件參數(shù) 5) 保存原理圖 最后完成系統(tǒng)原理圖的設(shè)計(jì),見(jiàn)附錄A。53 仿真原理圖的繪制1) 創(chuàng)建一個(gè)新的設(shè)計(jì)文件管理庫(kù) 2) 加載元件 3)

33、繪制仿真電路圖 4)修改元件參數(shù) 5) 保存原理圖6) 仿真電路圖 調(diào)入已用Keil軟件編譯好的目標(biāo)代碼文件:*.HEX,之后就可以在proteus的原理圖中看到模擬的實(shí)物運(yùn)行狀態(tài)和過(guò)程。結(jié) 論本設(shè)計(jì)是基于單片機(jī)的燈光控制系統(tǒng),核心器件采用AT89S52單片機(jī)芯片,實(shí)現(xiàn)對(duì)養(yǎng)雞場(chǎng)燈光的夜間間歇控制,使其能滿足白天不亮,夜間亮,亮與滅是間歇的。另外,開(kāi)燈,亮與滅以及漸熄的時(shí)間長(zhǎng)短是可調(diào)的。DS1302提供時(shí)鐘電路,采用雙電源供電,具有掉電自動(dòng)保存功能。通過(guò)軟件與硬件相結(jié)合方法來(lái)實(shí)現(xiàn)這一系列功能,控制比較靈活,所有的控制設(shè)定都可根據(jù)設(shè)計(jì)的不同要求而有所改變。當(dāng)然,由于時(shí)間的關(guān)系,本設(shè)計(jì)也存在很多的缺

34、陷,時(shí)間顯示未直接用液晶顯示屏,而是用了數(shù)碼管和發(fā)光二級(jí)管顯示,這些缺陷都有待改進(jìn)。通過(guò)這次設(shè)計(jì),我獲益匪淺。態(tài)度決定高度,細(xì)節(jié)決定成敗。在畢業(yè)設(shè)計(jì)過(guò)程中,每天都會(huì)遇到這樣那樣的問(wèn)題,不管是硬件設(shè)計(jì),還是軟件設(shè)計(jì),哪怕一點(diǎn)點(diǎn)失誤或是粗心就會(huì)導(dǎo)致整個(gè)設(shè)計(jì)功虧一簣。我們不僅需要努力學(xué)習(xí)相關(guān)知識(shí),熟練掌握相關(guān)技巧,還要注重培養(yǎng)科學(xué)嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度,這是至關(guān)重要的。致 謝轉(zhuǎn)瞬間,大學(xué)四年即將結(jié)束了,同時(shí)經(jīng)過(guò)大半學(xué)期的努力,終于在此刻完成了大學(xué)最后一門(mén)課-畢業(yè)設(shè)計(jì)。這門(mén)課是我大學(xué)所學(xué)的最難的一門(mén)課,以前我從沒(méi)想到這門(mén)課學(xué)的這門(mén)艱難,我比以前的課程都要努力和辛苦,這不是簡(jiǎn)簡(jiǎn)單單的一個(gè)課程,它體現(xiàn)了很多東西,

35、勤奮、辛勞與毅力。以前的課程大多是學(xué)理論,只要好好看書(shū)就可以考的好,可畢業(yè)設(shè)計(jì)不一樣,它不僅要你好好看書(shū),更多的是要把大學(xué)所學(xué)的專業(yè)知識(shí)要融會(huì)貫通了才能做出好的設(shè)計(jì),通過(guò)這門(mén)課,我對(duì)大學(xué)所學(xué)知識(shí)有了更加深刻的理解,在這期間,我受到了很多阻礙,專業(yè)知識(shí)不是很扎實(shí),毅力不夠,吃苦耐勞精神不夠。通過(guò)這次畢業(yè)設(shè)計(jì),我相信自己更清楚的認(rèn)識(shí)到自己的不足之處。 在做畢業(yè)設(shè)計(jì)期間,我遇到了很多問(wèn)題,在這里,我最要感謝我的導(dǎo)師王允龍老師,在我畢業(yè)設(shè)計(jì)的每個(gè)階段,他都認(rèn)真的幫助我們。從查閱資料、設(shè)計(jì)方案的修改和確定、中期檢查、后期的硬件電路仿真到實(shí)物制作的整個(gè)過(guò)程中都給予我細(xì)心的指導(dǎo)。王老師盡其所能來(lái)幫助我們,工

36、作認(rèn)真負(fù)責(zé)。其次要感謝張?jiān)洪L(zhǎng)和各位指導(dǎo)老師,畢業(yè)設(shè)計(jì)從選題、開(kāi)題報(bào)告、中期檢查到最后的答辯工作量繁瑣而龐大,而這完全離不開(kāi)他們的悉心安排和指導(dǎo)。當(dāng)然我還要感謝為我的畢業(yè)設(shè)計(jì)給予幫助的所有同學(xué),他們給予了我很大幫助。要考慮的事情很多,遇到的問(wèn)題也多。在我最困惑和無(wú)助時(shí),我問(wèn)他們問(wèn)題,他們都很耐心的教會(huì)了我很多專業(yè)知識(shí),感謝他們無(wú)私的幫助。畢業(yè)設(shè)計(jì)是對(duì)我們知識(shí)運(yùn)用能力的一次全面的考核,是大學(xué)里最重要的一門(mén)課。相信這是我人生路上一筆寶貴的財(cái)富,助我揚(yáng)帆起航。參 考 文 獻(xiàn)1、 黃濤雞舍燈光控制器的正確使用J. 現(xiàn)代畜牧獸醫(yī),2004第12期2、 盛南嶺,李士光.雞舍電子智能補(bǔ)光器

37、的制作J. 電子制作, 2007第9期3、丁元杰單片微機(jī)原理及應(yīng)用3. 機(jī)械工業(yè)出版社,2010年3月4、 劉湘濤,江世明單片機(jī)原理與應(yīng)用電子工業(yè)出版社,2006年8月5、 何立民單片機(jī)高級(jí)教程北京航空航天大學(xué)出版社,2004年7月6、 劉軍,汪燁,呂紅芳單片機(jī)原路與接口技術(shù)華東理工大學(xué)出版社,2006年8月7、 劉文濤.單片機(jī)開(kāi)發(fā)實(shí)例清華大學(xué)出版社,2005年9月8、 吳金戌,郭庭吉8051單片機(jī)實(shí)踐與應(yīng)用清華大學(xué)出版社,2002年9月附錄A 電路原理圖附錄B課題程序清單/*/duan00-duan05 依次存放的是年月日,時(shí)分秒開(kāi)始時(shí)間存于24c02的0x10-0x15

38、單元,關(guān)閉時(shí)間存于0x20-0x25單/*/#include"reg52.h"#include"math.h"#include"intrins.h"#include"clock.h"#include"eeprom.h"#define uchar unsigned char#define uint unsigned int#define M 100#define N 50#define D 130#define U 200#define ON 0#define OFF 1sbit led_cs=P

39、11;sbit clk=P25;sbit dat=P26;sbit key1=P07;sbit key2=P06;sbit key3=P05;sbit key4=P04;sbit key5=P03;sbit key_cs=P27;sbit jdq=P15;/0-9,a,b,c,d,e,g,.,p,i,d,t,s,c,u,black,0,L,p,h/*uchar code led_code=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x90, 0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0x7f,0x8c,0xf9,0xa1, 0x

40、87,0x92,0xc6,0xa1,0xff,0xc0,0xc7,0x8c,0x89,0xbf, 0xa3,0xa7,0x87,0x86,0xb7; /"o","c"," t",E,=,open-close 30,31,32*/uchar code led_code=0x03,0x9f,0x25,0x0d,0x99,0x49,0x41,0x1b,0x01,0x09, 0xfe,0xfd,0xfb,0xf7,0xef,0xbf,0x7f,0x8c,0xf9,0xa1, 0x87,0x92,0xc6,0xa1,0xff,0xc0,0xc7

41、,0x8c,0x89,0xbf, 0xc5,0xe5,0xe1,0x61,0xed; /"o","c"," t",E,=,open-close 30,31,32uchar code bit_cs=0xff,0xff,0xff,0xef,0xf7,0xfb,0xfd,0xfe;bit alte;uchar i,j;uchar shift=3,next,gene8;uchar idata sec_05,ss,key_value;char idata middle;uchar idata duan36;/duan用來(lái)存放設(shè)置的各工作時(shí)段?uchar idata addr; /#uchar idata sec,func;void dis_1302();void display();void scankey();void dis_time();void Wx_164(uchar m) uchar i;for(i=0;i<8;i+)clk=0; if(m&0x01) dat=1; else dat=0; clk=1; m>>=1

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論