




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本科生課程設(shè)計(jì)成績(jī)?cè)u(píng)定表姓 名何顏君專業(yè)、班級(jí)測(cè)控1303課程設(shè)計(jì)題目:基于微處理器和數(shù)字光強(qiáng)度檢測(cè)模塊GY-30的智能窗簾設(shè)計(jì) 課程設(shè)計(jì)答辯或質(zhì)疑記錄:成績(jī)?cè)u(píng)定依據(jù):序號(hào)評(píng) 價(jià) 內(nèi) 容分值得分1具有認(rèn)真嚴(yán)謹(jǐn)?shù)膶W(xué)習(xí)態(tài)度,能通過文獻(xiàn)查閱及應(yīng)用,提出正確合理、可行性強(qiáng)的設(shè)計(jì)方案,有創(chuàng)新點(diǎn)。202能綜合運(yùn)用相關(guān)理論知識(shí)和數(shù)學(xué)工具,完成設(shè)計(jì)方案的理論分析、設(shè)計(jì)、計(jì)算,過程詳細(xì),結(jié)論正確。303按標(biāo)準(zhǔn)和規(guī)范繪制設(shè)計(jì)圖紙,并能運(yùn)用工具軟件,完成電路設(shè)計(jì)和程序設(shè)計(jì),以及仿真調(diào)試,結(jié)果正確。304能正確、清晰表達(dá)和交流設(shè)計(jì)內(nèi)容(設(shè)計(jì)說明書、答辯),且設(shè)計(jì)說明書撰寫規(guī)范。20小 計(jì)100成績(jī)?cè)u(píng)定補(bǔ)充說明:指導(dǎo)教
2、師簽字: 年 月 日 基于微處理器和數(shù)字光強(qiáng)度檢測(cè)模塊GY-30的智能窗簾設(shè)計(jì)窗簾是人類自定居開始就存在的家居用具,用以保護(hù)人的隱私及改變屋內(nèi)光線。隨著時(shí)代的發(fā)展,傳統(tǒng)的窗簾已不能滿足人們需求,為此提出一個(gè)多功能智能窗簾控制器的研究。多功能智能窗簾控制器使用STC52系列單片機(jī)作為核心,通過利用光敏電阻在光照下變化的電阻經(jīng)過分壓電路及模數(shù)轉(zhuǎn)換后,將轉(zhuǎn)換數(shù)據(jù)送往單片機(jī),單片機(jī)根據(jù)光照強(qiáng)度大小自動(dòng)判斷當(dāng)前光照是否強(qiáng)烈,從而控制電機(jī)轉(zhuǎn)動(dòng)帶動(dòng)窗簾,實(shí)現(xiàn)自動(dòng)調(diào)光功能;同時(shí),運(yùn)用紅外遙控技術(shù),實(shí)現(xiàn)無線遙控功能。電機(jī)電路由ULN2003電路提供驅(qū)動(dòng)。所完成的控制器能實(shí)現(xiàn)開閉、自動(dòng)、定時(shí)多模式的選擇功能。文中
3、介紹了系統(tǒng)總體的設(shè)計(jì)方案,及系統(tǒng)工作原理,詳細(xì)闡述系統(tǒng)硬件的設(shè)計(jì)和軟件程序的設(shè)計(jì)流程,并作出相應(yīng)分析,總結(jié)系統(tǒng)所實(shí)現(xiàn)的功能,分析不足,為此提出展望和總結(jié)。關(guān)鍵字:STC52單片機(jī)、紅外遙控、自動(dòng)調(diào)節(jié)、光敏電阻目 錄第一章 緒論11.1課程設(shè)計(jì)背景11.2 選題的研究分析及其特點(diǎn)1第二章 方案選擇12.1 總體方案設(shè)計(jì)12.1 具體設(shè)計(jì)思路2第三章 硬件部分系統(tǒng)設(shè)計(jì)23.1 電源部分硬件電路設(shè)計(jì)23.2 51最小系統(tǒng)介紹 23.3 顯示部分硬件電路設(shè)計(jì)53.4 數(shù)據(jù)采集模塊設(shè)計(jì)53.5 串口通訊硬件電路設(shè)計(jì)63.6 紅外接收部分硬件電路設(shè)計(jì)73.7 步進(jìn)電機(jī)驅(qū)動(dòng)模塊硬件電路設(shè)計(jì)93.8 步進(jìn)電機(jī)
4、控制部分的設(shè)計(jì)10第四章 系統(tǒng)軟件設(shè)計(jì)124.1 控制系統(tǒng)軟件設(shè)計(jì)方案124.2 紅外信號(hào)接收子程序設(shè)計(jì)134.4 定時(shí)模式子程序設(shè)計(jì)17第五章 系統(tǒng)調(diào)試17第六章 總結(jié)19主要參考材料19附錄20II武漢理工大學(xué)測(cè)控系統(tǒng)微處理器原理及應(yīng)用課程設(shè)計(jì)說明書第一章 緒論1.1課程設(shè)計(jì)背景測(cè)控專業(yè)對(duì)單片機(jī)及編程技術(shù)要求較高,因而在學(xué)完單片機(jī)這門課之后安排課程設(shè)計(jì)對(duì)大家進(jìn)行實(shí)際運(yùn)用提高,增加對(duì)知識(shí)的掌握程度和運(yùn)用能力。在選做題目中,我選擇了用單片機(jī)實(shí)現(xiàn)智能窗簾控制。單片機(jī)控制的自動(dòng)啟閉窗簾控制系統(tǒng),既能解決每天手拉開和關(guān)上窗簾的不便,又顯示出了生活的檔次,同時(shí)還可以根據(jù)光線的明暗來自動(dòng)控制窗簾的開關(guān),
5、以調(diào)節(jié)室內(nèi)的光線,更進(jìn)一步地滿足了人們的生活要求。1.2 選題的研究分析及其特點(diǎn) 現(xiàn)有的電動(dòng)窗簾機(jī)的控制方式有固定式開關(guān)控制、遙控、光控、聲控等,其中以前兩種形式居多。該系統(tǒng)主要有如下幾方面的特點(diǎn):(1)根據(jù)光照的強(qiáng)度來自動(dòng)調(diào)整窗簾的開閉狀態(tài)。(2)還可以通過固定按鍵方式手動(dòng)控制窗簾的打開和關(guān)閉。(3)紅外遙控方式直接控制窗簾的開閉狀態(tài)。(4)體積小、結(jié)構(gòu)簡(jiǎn)單、靈敏度高、抗干擾性強(qiáng)、經(jīng)濟(jì)實(shí)用、工作可靠。 第二章 方案選擇2.1 總體方案設(shè)計(jì)光控窗簾能夠在完全脫離人的控制下隨光照強(qiáng)度自動(dòng)調(diào)節(jié)窗簾,并且人也能通過紅外遙控對(duì)它進(jìn)行自主調(diào)節(jié)。設(shè)計(jì)的主要目標(biāo):(1) 利用光敏電阻采集室內(nèi)光照強(qiáng)度;(2)
6、 利用51單片機(jī)分析AD轉(zhuǎn)換后的采集信號(hào),進(jìn)而確定控制閾值,設(shè)定控制方案;(3) 通過單片機(jī)控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角度和速度調(diào)節(jié)窗簾的啟閉。設(shè)計(jì)模塊:電源模塊,數(shù)據(jù)采集模塊及處理綜合模塊,紅外遙控模塊,單片機(jī)數(shù)據(jù)處理模塊,步進(jìn)電機(jī)驅(qū)動(dòng)模塊。光敏數(shù)據(jù)采集及處理模塊 GY-30單片機(jī)數(shù)據(jù)處理控制模塊步進(jìn)電機(jī)驅(qū)動(dòng)模塊紅外遙控控制圖2.1 總體方案圖2.2 具體設(shè)計(jì)思路由光敏模塊GY-30將光信號(hào)轉(zhuǎn)換成電壓模擬信號(hào),再轉(zhuǎn)換成數(shù)字信號(hào)輸出,送到單片機(jī)中,用來控制4個(gè)輸出端的電平高低,這4個(gè)輸出端分別與ULN2003的14輸入端相連,用于驅(qū)動(dòng)步進(jìn)電機(jī)同時(shí)控制步進(jìn)電機(jī)正反轉(zhuǎn),這樣就實(shí)現(xiàn)了自動(dòng)光控窗簾功能。手動(dòng)按
7、鍵可選擇其手動(dòng)模式還是光控模式,并在手動(dòng)模式下可通過另一個(gè)按鍵控制電機(jī)的正反轉(zhuǎn),進(jìn)而實(shí)現(xiàn)窗簾的打開和關(guān)閉。第三章 硬件部分系統(tǒng)設(shè)計(jì)3.1 電源部分硬件電路設(shè)計(jì)通過USB為系統(tǒng)板提供電源,AMS1117內(nèi)部集成過熱保護(hù)和限流電路,確保芯片和電源系統(tǒng)的穩(wěn)定性,是電池供電和便攜式計(jì)算機(jī)的最佳選擇。如圖3.1所示。 圖3.1 電源電路圖3.2 51最小系統(tǒng)介紹STC89C52RC與MCS-51系列的單片機(jī)在指令系統(tǒng)和引腳上完全兼容;片內(nèi)有4k字節(jié)在線可重復(fù)編程快擦寫程序存儲(chǔ)器;32位雙向輸入輸出線;兩個(gè)十六位定時(shí)器/計(jì)數(shù)器;五個(gè)中斷源,兩級(jí)中斷優(yōu)先級(jí);一個(gè)全雙工的異步串行口。3.2.1 STC89C5
8、2的主要引腳功能 P0口是三態(tài)雙向口,通稱數(shù)據(jù)總線口,因?yàn)橹挥性摽谀苤苯佑糜趯?duì)外部存儲(chǔ)器進(jìn)行讀/寫操作。P0口也用以輸出外部存儲(chǔ)器的低8位地圖1址。由于是分時(shí)輸出, 應(yīng)在外部加鎖存器將此地址數(shù)據(jù)鎖存,地址鎖存,信號(hào)用ALE。 P1口是專門供用戶使用的I/O口,是準(zhǔn)雙向口。P2口是從系統(tǒng)擴(kuò)展時(shí)作高8位地址線用。不擴(kuò)展外部存儲(chǔ)器時(shí),P2口也可以作為用I/O 口線使用,P2口也是準(zhǔn)雙向口。P3口是雙功能口,該口的每一位均可獨(dú)立地定義為第一I/O功能或第二I/O功能。作為第一功能使用時(shí)操作同P1口。P3口的第二功能如表2.1所示。表3.1 P3口第二功能端口腳各個(gè)功能3.0RXD(串行口輸入端)P3.
9、1TXD(串行口輸出端)P3.2(外部中斷0請(qǐng)求輸入端,低電平有效)P3.3(外部中斷1請(qǐng)求輸入端,低電平有效)P3.4T0(定時(shí)器/計(jì)數(shù)器0計(jì)數(shù)脈沖輸入端)P3.5T1(定時(shí)器/計(jì)數(shù)器1計(jì)數(shù)脈沖輸入端)P3.6(外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)輸入端,低電平有效)P3.7(外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)輸入端,低電平有效)3.2.2 STC89C52的時(shí)鐘電路和復(fù)位電路(1)時(shí)鐘產(chǎn)生電路本電路選用的電容為30pF,晶振頻率為12MHz,振蕩周期,機(jī)器周期,指令周期。XTAL1和XTAL2:片內(nèi)振蕩電路輸入線,這兩個(gè)端子用來外接石英晶體和微調(diào)電容。在石英晶體的兩個(gè)管腳加交變電場(chǎng)時(shí),它將會(huì)產(chǎn)生一定頻率的機(jī)械變
10、形,而這種機(jī)械振動(dòng)又會(huì)產(chǎn)生交變電場(chǎng)。石英晶振起振后要能在XTAL2線上輸出一個(gè)3V左右的正弦波,以便使STC89C52RC片內(nèi)的OSC電路按石英晶振相同頻率自激振蕩,如圖2.1所示。圖3.2 時(shí)鐘電路(2)單片機(jī)復(fù)位電路圖2.2為單片機(jī)復(fù)位電路。單片機(jī)在開機(jī)時(shí)都需要復(fù)位,以便中央處理CPU以及其他功能部件都處于一個(gè)確定的初始狀態(tài),并從這個(gè)狀態(tài)開始工作。單片機(jī)的復(fù)位后是靠外部電路實(shí)現(xiàn)的,在時(shí)鐘電路工作后,只要在單片機(jī)的RST引腳上出現(xiàn)24個(gè)時(shí)鐘振蕩脈沖(2個(gè)機(jī)器周期)以上的高電平,單片機(jī)便可實(shí)現(xiàn)初始化狀態(tài)復(fù)位。STC89C52RC單片機(jī)的RST引腳是復(fù)位信號(hào)的輸入端。 圖3.3 復(fù)位電路3.3
11、顯示部分硬件電路設(shè)計(jì)數(shù)碼管的顯示程序由定時(shí)計(jì)數(shù)器來設(shè)定,既大約200ms后定時(shí)計(jì)數(shù)器就會(huì)產(chǎn)生中斷,在中斷子程序里面,數(shù)碼管會(huì)根據(jù)具體情況執(zhí)行不同的顯示子程序。LED燈作為當(dāng)前窗處于打開狀態(tài)或關(guān)閉的指示燈,當(dāng)窗簾處于打開狀態(tài)時(shí),左邊第一個(gè)led燈亮。否則第二個(gè)led燈亮。圖3.4 顯示電路3.4 數(shù)據(jù)采集模塊設(shè)計(jì)根據(jù)現(xiàn)有材料,我們選擇GY-30感光模塊作為數(shù)據(jù)采集系統(tǒng),其內(nèi)部集成了A/D轉(zhuǎn)換模塊,其輸出為數(shù)字信號(hào)。它具有以下特點(diǎn):1)直接數(shù)字輸出,省略復(fù)雜的計(jì)算,省略標(biāo)定;2)光譜的范圍是人眼相近;3)照度數(shù)字轉(zhuǎn)換器;4)可對(duì)廣泛的亮度進(jìn)行1勒克斯的高精度測(cè)定(1-65535勒克斯);5)低電流
12、關(guān)機(jī)功能;6)接近于視覺靈敏度的分光特性;7)1.8V邏輯輸入接口;8)模塊內(nèi)部包含通信電平轉(zhuǎn)換,與5v單片機(jī)io直接連接;9)光源的依賴性不大,不區(qū)分環(huán)境光源;10)是有可能的選擇2類型的IC slave-address。11)可調(diào)的光學(xué)窗口測(cè)量結(jié)果的影響(它可以探測(cè)分鐘.使用本功能0.11勒克斯,最大.100000勒克斯)。12)小測(cè)變異(+/-20%)13)的紅外線的影響很小。圖3.5 GY-30光敏模塊信號(hào)采集裝置輸入電壓為35V,因而可以和單片機(jī)使用同一電源,電壓為5.0V。單片機(jī)通過輸出的數(shù)字電平范圍控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)角度。我們采用的是分級(jí)調(diào)速,把這個(gè)區(qū)域分成4個(gè)區(qū)域,每個(gè)區(qū)域?qū)?yīng)
13、轉(zhuǎn)動(dòng)角度分別為0°,30°,60°,90°。圖3.6 數(shù)據(jù)采集模塊電路圖3.5 串口通訊硬件電路設(shè)計(jì)串口通信的傳輸格式:串行通信中,線路空閑時(shí),線路的TTL電平總是高,經(jīng)反向RS232的電平總是低。一個(gè)數(shù)據(jù)的開始RS232線路為高電平,結(jié)束時(shí)Rs232為低電平。數(shù)據(jù)總是從低位向高位一位一位的傳輸。串口通信的接收過程:(異步通信:接收器和發(fā)送器有各自的時(shí)鐘;同步通信:發(fā)送器和接收器由同一個(gè)時(shí)鐘源控制。RS232是異步通信) (1)開始通信時(shí),信號(hào)線為空閑(邏輯1),當(dāng)檢測(cè)到由1到0的跳變時(shí),開始對(duì)“接收時(shí)鐘”計(jì)數(shù); (2)當(dāng)計(jì)到8個(gè)時(shí)鐘時(shí),對(duì)輸入信號(hào)進(jìn)行檢
14、測(cè),若仍為低電平,則確認(rèn)這是“起始位”,而不是干擾信號(hào); (3)接收端檢測(cè)到起始位后,隔16個(gè)接收時(shí)鐘,對(duì)輸入信號(hào)檢測(cè)一次,把對(duì)應(yīng)的值作為D0位數(shù)據(jù)。若為邏輯1, 作為數(shù)據(jù)位1;若為邏輯0,作為數(shù)據(jù)位0; (4)再隔16個(gè)接收時(shí)鐘,對(duì)輸入信號(hào)檢測(cè)一次,把對(duì)應(yīng)的值作為D1位數(shù)據(jù)。.,直到全部數(shù)據(jù)位都輸入; (5)檢測(cè)校驗(yàn)位P(如果有的話); (6)接收到規(guī)定的數(shù)據(jù)位個(gè)數(shù)和校驗(yàn)位后,通信接口電路希望收到停止位S(邏輯1),若此時(shí)未收到邏輯1,說明出現(xiàn)了錯(cuò)誤,在狀態(tài)寄存器中置“幀錯(cuò)誤”標(biāo)志。若沒有錯(cuò)誤,對(duì)全部數(shù)據(jù)位進(jìn)行奇偶校驗(yàn),無校驗(yàn)錯(cuò)時(shí),把數(shù)據(jù)位從移位寄存器中送數(shù)據(jù)輸入寄存器。若校驗(yàn)錯(cuò),在狀態(tài)寄存
15、器中置奇偶錯(cuò)標(biāo)志; (7)本幀信息全部接收完,把線路上出現(xiàn)的高電平作為空閑位; (8)當(dāng)信號(hào)再次變?yōu)榈蜁r(shí),開始進(jìn)入下一幀的檢測(cè)。圖3.7 串口模塊3.6 紅外接收部分硬件電路設(shè)計(jì)3.6.1紅外模塊介紹HS0038系列是Temic公司推出的一體化紅外線接收模塊,集紅外線接收、放大、解調(diào)于一體,不需要任何外接元件,就能完成從紅外線接收到輸出與TTL電平信號(hào)兼容的所有工作;而體積只有普通三極管大小一樣,適合各種紅外線遙控和紅外線數(shù)據(jù)傳輸,其傳輸距離大于4米。紅外線接收模塊HS0038系列的管腳分布如圖2.3所示,1、2分別為電源和地,3為信號(hào)輸出端,其輸出電平和TTL電平兼容。HS0038系列的特性
16、如下:多種接收頻率可供選擇:30KHz、33KHz、36KHz、36.7K Hz、38KHz、40KHz、56KHz;大范圍工作電壓:(3-6) V;遙控距離:大于4m。圖3.8 HS0038引腳圖HS0038系列紅外線模塊接收器的受光面一側(cè)為黑色環(huán)氧聚焦濾波透鏡,此透鏡消除了可見光對(duì)它的干擾,對(duì)于提高可靠性及濾除光噪聲至關(guān)重要。模塊內(nèi)含紅外線 PIN接收管、前置放大器和解調(diào)器。當(dāng)紅外線發(fā)射器發(fā)出的信號(hào)經(jīng)空間傳送到HS0038系列模塊時(shí),模塊內(nèi)部 PIN紅外線接收管將紅外光轉(zhuǎn)換為電信號(hào),該信號(hào)經(jīng)前置放大、解調(diào)后由 3腳輸出與 TTL電平兼容的電信號(hào),該信號(hào)能直接送入到微控器等要求 TTL電平信
17、號(hào)輸入的芯片中。靜態(tài)時(shí)輸出端輸出高電平,當(dāng)接收到紅外信號(hào)后,按紅外信號(hào)的數(shù)據(jù)波形輸出負(fù)脈沖數(shù)據(jù)信號(hào)。紅外信號(hào)輸出到單片機(jī)的P3.2 ,該口對(duì)應(yīng)的第二功能是外部中斷0 (INT0),利用該口的第二功能,一旦紅外線信號(hào)到來,P3.2被拉低,單片機(jī)中止當(dāng)前的工作轉(zhuǎn)移到接收、處理紅外信號(hào)。開啟中斷功能的目的,既減輕了單片機(jī)的工作負(fù)擔(dān),又保證接收到的紅外信號(hào)的完整性。3.6.2紅外編碼要使用紅外線一體化接受頭接受遙控器發(fā)射的紅外線,再通過單片機(jī)解碼,那就,必須先了解紅外線發(fā)射器所發(fā)射的紅外線碼的組成。一般的彩電、VCD遙控器的編碼采用的格式為1913、9012、1621格式;以1621為例,當(dāng)按下遙控器
18、上的某個(gè)按鍵時(shí),遙控器將發(fā)射出一幀數(shù)據(jù),幀數(shù)據(jù)的編碼格式由三部分組成:引導(dǎo)碼(Lead code)、客戶碼(Custom code)和數(shù)據(jù)碼(Data code),對(duì)于一個(gè)遙控器來說,每個(gè)按鍵所發(fā)射的幀數(shù)據(jù)的客戶碼總是一樣的,有區(qū)別的只是數(shù)據(jù)碼。其中9012和1913、1621格式的唯一區(qū)別就是引導(dǎo)碼的高電平寬度不一樣,9012格式為4.5ms,1913和1621格式為9ms。幀結(jié)構(gòu)中的客戶碼和數(shù)據(jù)碼各有兩個(gè)字節(jié),第一個(gè)字節(jié)和第二個(gè)字節(jié)互為按位取反,其中客戶碼的高4 位與低4位又互為按位取反。0碼由0.56ms高電平和0.565ms低電平組合而成、1碼由0.56ms高電平和1.69ms低電平組
19、合而成。碼元的高電平信號(hào)采用38kHz矩形波(載波)調(diào)制發(fā)射,載波占空比(Duty)為1/3,低電平無信號(hào)發(fā)射。圖3.9 紅外接收硬件電路圖3.7 步進(jìn)電機(jī)驅(qū)動(dòng)模塊硬件電路設(shè)計(jì)電機(jī)驅(qū)動(dòng)部分主要由達(dá)林頓驅(qū)動(dòng)ULN2003芯片實(shí)現(xiàn)。ULN2003是高耐壓、大電流達(dá)林頓陣列,由7個(gè)硅NPN達(dá)林頓管組成。該電路的特點(diǎn)如下:ULN2003的每一對(duì)達(dá)林頓管都串聯(lián)一個(gè)2.7k的基極電阻,在5V的工作電壓下它能與TTL和COMS電路直接連接。ULN2003是高壓大電流達(dá)林頓晶體管陣列系列產(chǎn)品,具有電流增益高、工作電壓高、溫度范圍寬、帶負(fù)載能力強(qiáng)等特點(diǎn),適用于各類要求高速大功率驅(qū)動(dòng)的系統(tǒng)ULN2003經(jīng)常在以下
20、電路中試用:(1) 顯示驅(qū)動(dòng);(2) 繼電器驅(qū)動(dòng);(3) 照明燈驅(qū)動(dòng);(4) 電磁閥驅(qū)動(dòng);(5) 伺服電動(dòng)機(jī)、步進(jìn)電機(jī)驅(qū)動(dòng)等電路中。ULN2003的每一對(duì)達(dá)林頓管都串聯(lián)一個(gè)2.7k的基極電阻,在5V的工作電壓下它能與TTL和COMS電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來處理的數(shù)據(jù)。ULN2003工作電壓高,工作電流大,灌電流可達(dá)500mA,并且能夠在關(guān)態(tài)時(shí)承受50V的電壓,輸出還可以在高負(fù)載電流并行運(yùn)行。 ULN2003所用的是單片機(jī)的P3.4P3.7接口,輸出部分選用1316引腳,8引腳接地,9引腳所示為連接步進(jìn)電機(jī)的電源,電機(jī)驅(qū)動(dòng)電路連接圖如圖3.6所示。圖3.10 電機(jī)控制部
21、分電路設(shè)計(jì)3.8 步進(jìn)電機(jī)控制部分的設(shè)計(jì)此部分主要是對(duì)控制指令的執(zhí)行。單片機(jī)根據(jù)讀入的數(shù)據(jù)通過驅(qū)動(dòng)器對(duì)電機(jī)進(jìn)行驅(qū)動(dòng),調(diào)節(jié)電機(jī)轉(zhuǎn)動(dòng)的角度。下面介紹一下步進(jìn)電機(jī)及其控制原理,了解步進(jìn)電機(jī)使我們能更順利的完成自動(dòng)啟閉光控窗簾的設(shè)計(jì)。3.8.1 步進(jìn)電機(jī)簡(jiǎn)述步進(jìn)電機(jī)是將電脈沖信號(hào)轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件。在非超載的情況下,電動(dòng)機(jī)的轉(zhuǎn)速、停止的位置只取決于脈沖信號(hào)的頻率的脈沖數(shù),而不受負(fù)載變化的影響,即給電動(dòng)機(jī)加一個(gè)脈沖信號(hào),電動(dòng)機(jī)則轉(zhuǎn)過一個(gè)步距角。這一線性關(guān)系的存在,使得在速度、位置等控制領(lǐng)域用步進(jìn)電機(jī)來控制變得非常簡(jiǎn)單。步進(jìn)電機(jī)實(shí)際上是一種單相或多相同步電動(dòng)機(jī)。單相步進(jìn)電機(jī)由單路電脈沖驅(qū)動(dòng)
22、,輸出功率一般很小,其用途為微小功率驅(qū)動(dòng)。多相步進(jìn)電機(jī)的多相方波脈沖驅(qū)動(dòng),在經(jīng)功率放大后分別送入步進(jìn)電機(jī)各相繞組。正常情況下,步進(jìn)電機(jī)轉(zhuǎn)過的總角度和輸入的脈沖數(shù)成正比;連續(xù)輸入一定脈沖時(shí),電動(dòng)機(jī)的轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。由于步進(jìn)電機(jī)能直接接收數(shù)字量的輸入,所以特別適合于微處理器控制。3.8.2 步進(jìn)電機(jī)的選擇步進(jìn)電機(jī)有步距角(涉及相數(shù))、靜轉(zhuǎn)矩及電流三大要素組成。我們選擇28BYJ-48步進(jìn)電機(jī)作為執(zhí)行部件,其實(shí)物如下圖所示。圖3.11 28BYJ-48步進(jìn)電機(jī)實(shí)物圖步進(jìn)電機(jī)28BYJ48型四相八拍電機(jī),電壓為DC5VDC12V。當(dāng)對(duì)步進(jìn)電機(jī)施加一
23、系列連續(xù)不斷的控制脈沖時(shí),它可以連續(xù)不斷地轉(zhuǎn)動(dòng)。每一個(gè)脈沖信號(hào)對(duì)應(yīng)步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,也就對(duì)應(yīng)轉(zhuǎn)子轉(zhuǎn)過一定的角度(一個(gè)步距角)。當(dāng)通電狀態(tài)的改變完成一個(gè)循環(huán)時(shí),轉(zhuǎn)子轉(zhuǎn)過一個(gè)齒距。四相步進(jìn)電機(jī)可以在不同的通電方式下運(yùn)行,常見的通電方式有單(單相繞組通電)四拍(A-B-C-D-A),雙(雙相繞組通電)四拍(AB-BC-CD-DA-AB),八拍(A-AB-B-BC-C-CD-D-DA-A)。我們選擇八拍轉(zhuǎn)動(dòng)方式。所以可以定義旋轉(zhuǎn)相序?yàn)椋簎nsigned char code clockWise=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09;
24、/正轉(zhuǎn)unsigned char code clockWise1=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; /反轉(zhuǎn) 3.9整體硬件電路 圖3.11 整體硬件電路圖第四章 系統(tǒng)軟件設(shè)計(jì)4.1 控制系統(tǒng)軟件設(shè)計(jì)方案自動(dòng)啟閉光控窗簾系統(tǒng),在光照強(qiáng)度超過某一定值時(shí)要求關(guān)閉窗簾,同時(shí)第一個(gè)led燈顯示滅,第二個(gè)燈亮;光照強(qiáng)度低于這一定值時(shí)打開窗簾的同時(shí)第一個(gè)led燈亮,第二個(gè)燈滅。這就需要控制電機(jī)的轉(zhuǎn)角和轉(zhuǎn)速:轉(zhuǎn)動(dòng)到某一角度(窗簾恰好拉開完畢或恰好關(guān)閉完畢)停止轉(zhuǎn)動(dòng),同時(shí)轉(zhuǎn)速不能太快以免產(chǎn)生噪音和把窗簾拉壞。設(shè)計(jì)流程如圖4.1所示。圖4.1 軟件流程圖程序在系統(tǒng)初
25、始化后,進(jìn)行采集光敏電阻所提供的電壓并等待紅外信號(hào)的接收中斷。在接收到紅外信號(hào)時(shí),進(jìn)入中斷服務(wù)程序進(jìn)行解碼,解碼完成后返回主程序。其中,解析編碼為40H是打開窗簾指令;解析編碼為44H是關(guān)閉窗簾指令;解析編碼為09H是自動(dòng)調(diào)節(jié)窗簾指令;解析編碼為46H是定時(shí)管理窗簾指令;如若解析編碼與上述不符,繼續(xù)等待。4.2 紅外信號(hào)接收子程序設(shè)計(jì)如若要編寫接收的子程序,首先要明白發(fā)射端的編碼設(shè)計(jì)方式。根據(jù)NEC標(biāo)準(zhǔn),所使用紅外信號(hào)的調(diào)制方式為PPM(脈沖時(shí)間調(diào)制方式)。NEC標(biāo)準(zhǔn):遙控載波的頻率為38KHz(占空比為1:3);當(dāng)某個(gè)按鍵按下時(shí),系統(tǒng)首先發(fā)射一個(gè)完整的全碼,然后經(jīng)延時(shí)再發(fā)射一系列簡(jiǎn)碼,直到按
26、鍵松開即停止發(fā)射。簡(jiǎn)碼重復(fù)延時(shí)108ms,每?jī)蓚€(gè)引導(dǎo)脈沖上升沿之間的間隔都是108ms。 其中,引導(dǎo)碼高電平9ms,低電平4.5ms;地址碼16位,數(shù)據(jù)碼16位,共32位;數(shù)據(jù)“0”用“高電平0.56ms低電平0.565ms”表示,數(shù)據(jù)“1”用“高電平0.56ms低電平1.6875ms”表示,一個(gè)簡(jiǎn)碼引導(dǎo)碼地址碼位0的反碼結(jié)束位(0.5625ms)高電平。各部分碼的作用:引導(dǎo)碼用來通知接收器其后為遙控?cái)?shù)據(jù)。地址碼用來區(qū)分是哪一機(jī)型的數(shù)據(jù),接收端依此來判斷后續(xù)的數(shù)據(jù)是否為須執(zhí)行的指令。數(shù)據(jù)碼用來區(qū)分是哪一個(gè)鍵被按下,接收端根據(jù)數(shù)據(jù)碼做出應(yīng)該執(zhí)行什么動(dòng)作的判斷。簡(jiǎn)碼是在持續(xù)按鍵時(shí)發(fā)送的碼。它告知接
27、收端,某鍵是在被連續(xù)地按著。遙控?cái)?shù)據(jù)傳輸系統(tǒng)的關(guān)鍵是數(shù)據(jù)傳輸?shù)目煽啃?。為了提高編碼的可靠性,NEC標(biāo)準(zhǔn)規(guī)定地址碼、數(shù)據(jù)碼后分別接著傳送一個(gè)同樣的碼或者反碼,供誤碼校驗(yàn)用。4.2.1 載波波形:信號(hào)被調(diào)制在37.91KHZ,占空比是1/3。圖4.2 載波波形 4.2.2 數(shù)據(jù)格式:數(shù)據(jù)格式包括引導(dǎo)碼、用戶碼、數(shù)據(jù)碼和數(shù)據(jù)反碼,編碼總占32位。數(shù)據(jù)反碼是數(shù)據(jù)碼反相后的編碼,編碼時(shí)可用于對(duì)數(shù)據(jù)的糾錯(cuò)。注意:第二個(gè)用戶碼也可以在遙控應(yīng)用電路中被設(shè)置成第一個(gè)用戶碼的反碼。圖4.3 編碼格式如圖3.5所示各段代碼所占用的時(shí)間。圖4.4 編碼對(duì)應(yīng)時(shí)間4.2.3 位定義:用戶碼和數(shù)據(jù)碼中的每一個(gè)位可以是位“1
28、”,也可以是位“0”。區(qū)分0、1是利用脈沖的時(shí)間間隔來區(qū)分,這種編碼方式稱為脈沖位置調(diào)制方式(ppm)。圖4.5 “1”和“0”所對(duì)應(yīng)的時(shí)間圖4.6 紅外信號(hào)接收程序流程圖 如上圖3.6所示,使用中斷方式進(jìn)行接收紅外信號(hào)。在收到中斷信號(hào)時(shí),進(jìn)入中斷服務(wù)程序。首先關(guān)閉外部中斷1的中斷,以防不會(huì)因?yàn)楹髞淼南陆笛貙?duì)程序的干擾,進(jìn)而判斷信號(hào)送來的引導(dǎo)時(shí)序,當(dāng)引導(dǎo)時(shí)序正確后對(duì)所發(fā)過來的32位“地址碼+數(shù)據(jù)碼”進(jìn)行解析。當(dāng)解析完成后,對(duì)16位的數(shù)據(jù)碼分為高低8位,若互為反碼,說明數(shù)據(jù)正確并保存高位的正碼數(shù)據(jù),否則視為數(shù)據(jù)傳輸錯(cuò)誤返回主函數(shù)。4.3 步進(jìn)電機(jī)控制方案28BYJ48型步進(jìn)電機(jī)是四相八拍電機(jī),電
29、壓為DC5VDC12V。當(dāng)對(duì)步進(jìn)電機(jī)按一定順序施加一系列連續(xù)不斷的控制脈沖時(shí),它可以連續(xù)不斷的轉(zhuǎn)動(dòng)。每一個(gè)脈沖信號(hào)使得步進(jìn)電機(jī)的某一相或兩相繞組的通電狀態(tài)改變一次,對(duì)應(yīng)著轉(zhuǎn)子轉(zhuǎn)過一定角度。當(dāng)通電狀態(tài)改變完成一個(gè)循環(huán)時(shí),轉(zhuǎn)子轉(zhuǎn)過一個(gè)齒距。電機(jī)的驅(qū)動(dòng)分為正轉(zhuǎn)和反轉(zhuǎn),這個(gè)電機(jī)驅(qū)動(dòng)子程序就是用來控制電機(jī)的正反轉(zhuǎn)的。通過設(shè)置I/O口的電平不同,可達(dá)到不同的控制,工作狀態(tài)可參考下表。表4.1 電機(jī)狀態(tài)控制表控制狀態(tài)控制端IN1控制端IN2控制端IN3控制端IN4使能段ENA正轉(zhuǎn)高低/高反轉(zhuǎn)低高/高停止低低/高停止/低圖4.7 電機(jī)驅(qū)動(dòng)子程流程圖當(dāng)主程序中對(duì)發(fā)送來的紅外判定為打開窗簾或關(guān)閉窗簾的命令代碼時(shí),
30、主程序則跳轉(zhuǎn)到該子程序中。左圖為是電機(jī)調(diào)整為正轉(zhuǎn)狀態(tài)的流程圖,通過根據(jù)上表3.1來相應(yīng)管腳的輸出電平調(diào)整;同理,右圖為電機(jī)調(diào)整為反轉(zhuǎn)狀態(tài)的流程圖。4.4 定時(shí)模式子程序設(shè)計(jì)DS1302 是美國DALLAS公司推出的一種高性能、低功耗、帶RAM的實(shí)時(shí)時(shí)鐘電路,它可以對(duì)年、月、日、周日、時(shí)、分、秒進(jìn)行計(jì)時(shí),具有閏年補(bǔ)償功能,工作電壓為2.5V5.5V。定時(shí)模式的設(shè)計(jì)有助于我們?nèi)祟惛奖惆才派钭飨?。定時(shí)模式可實(shí)現(xiàn)在這之后設(shè)定時(shí)間的窗簾的開閉。通過檢測(cè)紅外控制信號(hào),進(jìn)行該模式。系統(tǒng)可根據(jù)控制信號(hào)的變化來加減所需的定時(shí)時(shí)間。如圖3.11為定時(shí)模式子程序流程圖。圖4.8 定時(shí)模式子程序流程圖 在接收到進(jìn)
31、入該模式的紅外信號(hào)后,設(shè)定所需要的定時(shí)時(shí)間,在定時(shí)時(shí)間設(shè)定好之后,可設(shè)定定時(shí)結(jié)束時(shí)需要窗簾進(jìn)行打開或關(guān)閉。在確定按鍵按下后,會(huì)清除屏幕上顯示的設(shè)定選項(xiàng)并出現(xiàn)已設(shè)定定時(shí)模式的標(biāo)志。同時(shí)將TR0置“1”啟動(dòng)定時(shí)器0進(jìn)行定時(shí),當(dāng)定時(shí)結(jié)束時(shí),電機(jī)根據(jù)設(shè)定打開或關(guān)閉窗簾。第五章 系統(tǒng)調(diào)試在系統(tǒng)調(diào)試之前,需對(duì)各電路進(jìn)行電氣連接性檢查,檢查電路的通斷,使用檢查儀器為數(shù)字萬用表。通過測(cè)試,電路連接正常。這電路的調(diào)試提供很大的保證,當(dāng)電路運(yùn)行不正常時(shí),有首先排除電路斷路、短路的問題。系統(tǒng)的各個(gè)電路調(diào)試主要包括單片機(jī)最小系統(tǒng)的調(diào)試,數(shù)碼管顯示調(diào)試,紅外信號(hào)發(fā)射接收調(diào)試,電機(jī)驅(qū)動(dòng)電路的調(diào)試等。該章節(jié)首先對(duì)各個(gè)電路在
32、調(diào)試過程中出現(xiàn)的問題及解決方法進(jìn)行說明,進(jìn)而對(duì)整個(gè)系統(tǒng)的運(yùn)行進(jìn)行調(diào)整。5.1 單片機(jī)最小系統(tǒng)的調(diào)試單片機(jī)最小系統(tǒng)包含時(shí)鐘振蕩電路、復(fù)位電路等。最小系統(tǒng)的運(yùn)行正常尤為關(guān)鍵,直接決定系統(tǒng)的功能能否實(shí)現(xiàn)。在經(jīng)過上面電氣連接檢查后,在不插上微控制器芯片的情況下,上電測(cè)試。通電后,背部貼片的藍(lán)光LED光亮正常,通電一段時(shí)間后,無異常產(chǎn)生,可接插單片機(jī)芯片。芯片接上后,接上電,藍(lán)光LED放光正常,用數(shù)字萬用表測(cè)試51單片機(jī)的40管腳(VCC)和地之間的電壓,電壓顯示4.88V,單片機(jī)供電正常。再測(cè)試其他的管腳,電壓都在允許值內(nèi),說明單片機(jī)工作正常。調(diào)試程序?qū)懭雴纹瑱C(jī)最小系統(tǒng)的方法:用keil 4 編寫一段
33、小程序(如控制發(fā)光二極管的亮滅),在小程序編譯完成生成.HEX文件后,使用下載器通過USB下載線將程序燒入單片機(jī)內(nèi)。第一次燒入程序時(shí),注意要先把下載器的驅(qū)動(dòng)程序安裝進(jìn)電腦方可實(shí)現(xiàn)燒錄程序的功能。完成后,USB在電腦的設(shè)備管理器一欄中顯示為COM3,因此在打開電腦的燒錄應(yīng)用程序時(shí),應(yīng)選擇的串口號(hào)則為COM3。PCB上帶有自鎖開關(guān),很方便下載程序時(shí)所需的上下電要求。單片機(jī)在下載完程序后,上電后LED亮滅正常。單片機(jī)可完整的工作,最小系統(tǒng)調(diào)試結(jié)束。5.2 數(shù)碼管顯示的調(diào)試在基礎(chǔ)部分已完成數(shù)碼管顯示的程序設(shè)計(jì)。根據(jù)相關(guān)命令字編寫一段簡(jiǎn)單的顯示軟件并將其燒入單片機(jī)。 5.3 紅外信號(hào)發(fā)射接收的調(diào)試紅外遙
34、控的功能在整個(gè)系統(tǒng)中是非常重要的,首先檢查信號(hào)發(fā)射是否正常。由于紅外線在我們?nèi)祟愐暰W(wǎng)膜感光范圍之外,所以我們是看不見紅外二極管是否發(fā)光正常。在瀏覽資料時(shí)發(fā)現(xiàn),COMS的傳感器對(duì)紅外線具有敏感性,因此我們可用其作為一個(gè)媒介。手機(jī)的攝像頭就是該類器件,所以可以用手機(jī)攝像功能來測(cè)試紅外二極管的工作狀態(tài)。在遙控器端按下一個(gè)鍵,在手機(jī)端可看見紅外二極管在發(fā)淡紅光閃爍,說明紅外二極管發(fā)光正常。第二測(cè)試接收編碼,可在萬用板上用接收頭(VS 1838b)焊接一個(gè)簡(jiǎn)單的接受電路。接收頭輸出端接數(shù)字示波器顯示。測(cè)試發(fā)現(xiàn),編碼正常。5.4 電機(jī)驅(qū)動(dòng)的調(diào)試電機(jī)驅(qū)動(dòng)電路的調(diào)試比較簡(jiǎn)單,寫入簡(jiǎn)單的代碼,測(cè)試是否能夠正常轉(zhuǎn)
35、動(dòng)?;蛟谳斎胍_處可用數(shù)字萬用表做輸出電流的測(cè)試。首先設(shè)置驅(qū)動(dòng)電路的輸出狀態(tài)(比如IN1設(shè)置“0”,IN2設(shè)置“1”),然后啟動(dòng)輸出(ENA設(shè)置“1”),將萬用表檔位轉(zhuǎn)動(dòng)為測(cè)量電流檔,用紅色表筆接觸OUT1,黑色表筆接觸OUT2。最后讀數(shù),完成測(cè)試。結(jié)果反映的是,電機(jī)驅(qū)動(dòng)電路工作正常。5.5 系統(tǒng)整機(jī)的調(diào)試通過以上各個(gè)模塊電路的調(diào)試后,最后將各個(gè)電路整合于一個(gè)完整的系統(tǒng),對(duì)整個(gè)系統(tǒng)功能進(jìn)行調(diào)試。在系統(tǒng)整機(jī)調(diào)試中,實(shí)現(xiàn)了光控窗簾的開閉,在設(shè)定值下的自動(dòng)調(diào)整功能以及定時(shí)控制窗簾的開閉。系統(tǒng)基本實(shí)現(xiàn)了多功能智能窗簾控制器的目的。 第六章 總結(jié) 在整個(gè)設(shè)計(jì)、調(diào)試與安裝的過程中基本實(shí)現(xiàn)了所要求的功能與任
36、務(wù),可通過外接光照強(qiáng)度來控制整個(gè)系統(tǒng)的運(yùn)作。自動(dòng)調(diào)光模式,可以通過控制窗簾的開度實(shí)現(xiàn)自動(dòng)調(diào)光效果;選中定時(shí)模式,可通過設(shè)定所需的時(shí)間和開閉,來控制到預(yù)定時(shí)間的窗簾狀態(tài)。雖然如此,但該系統(tǒng)還存在一些不足,比如定時(shí)時(shí)間不夠靈活,不夠人性化在這兩周里,自資料的查閱、揣摩思考到設(shè)計(jì)方案,直至整個(gè)系統(tǒng)的調(diào)試,在這整個(gè)過程中,我不斷成長,不斷磨練,從中發(fā)現(xiàn)當(dāng)出現(xiàn)問題時(shí),我的反應(yīng)與應(yīng)對(duì)是很重要的也就是分析問題,解決問題能力。這才是我在大學(xué)所真正需要鍛煉的能力。通過這側(cè)設(shè)計(jì),我掌握了測(cè)量光強(qiáng)傳感器的使用方法,進(jìn)一步熟練已掌握的C語言編程方法。在實(shí)踐中,不僅提升的動(dòng)手能力積累了大量實(shí)踐經(jīng)驗(yàn),而且鞏固了已學(xué)習(xí)的知
37、識(shí),使得自己在電路設(shè)計(jì)方面增強(qiáng)了信心。主要參考材料:1康華光.電子技術(shù)基礎(chǔ)數(shù)字部分(第五版)M.北京:高等教育出版社,2006(1):4444562康華光.電子技術(shù)基礎(chǔ)模擬部分(第五版)M.北京:高等教育出版社,2006.(1):4484543李宏,王崇武.現(xiàn)代電力電子技術(shù)基礎(chǔ)M.北京:機(jī)械工業(yè)出版社,20008.(12):24364譚浩強(qiáng).C程序設(shè)計(jì)(第三版)M.北京:清華大學(xué)出版社,2005:961045劉錦波.張承慧.電機(jī)與拖動(dòng)M.北京:清華大學(xué)出版社,2006:55676郭天祥.新概念51單片機(jī)C語言編程M.北京:電子工業(yè)出版社,2009.(1):1031107石珍.家庭裝飾設(shè)計(jì)與預(yù)算
38、圖集M.上海:上??茖W(xué)技術(shù)出版社,2008.(2):54608王瑞杰.光控自動(dòng)窗簾機(jī)P.中國專利,95218893.7,1997(12):6159陳桂友,柴元斌.單片機(jī)應(yīng)用技術(shù)M.北京:機(jī)械工業(yè)出版社,2008(9):314310吳次男,劉為民.手控或光控自動(dòng)窗簾裝置P.1995(5)19#include <reg52.h> #include <math.h> /Keil library #include <stdio.h> /Keil library#include <INTRINS.H>#define uchar unsigned char#
39、define uint unsigned int#define SlaveAddress 0x46 /定義器件在IIC總線中的從地址,根據(jù)ALT ADDRESS地址引腳不同修改 /ALT ADDRESS引腳接地時(shí)地址為0x46,接電源時(shí)地址為0xB8sbit SCL=P10; /IIC時(shí)鐘引腳定義sbit SDA=P11; /IIC數(shù)據(jù)引腳定義typedef unsigned char BYTE;typedef unsigned short WORD;float temp;sbit key=P34; /按鍵控制步進(jìn)電機(jī)的方向sbit s2=P35; /手動(dòng)自動(dòng)方式選擇unsigned char
40、 speed=8; /步進(jìn)電機(jī)的轉(zhuǎn)速sbit LED1=P02;/開窗指示 sbit LED2=P03;/關(guān)窗指示 sbit zi=P00; sbit shou=P01; bit ZD; BYTE BUF8; /接收數(shù)據(jù)緩存區(qū) uchar ge,shi,bai,qian,wan; /顯示變量int dis_data; /變量uchar irdate33;uchar irbyte4; uchar disp8;uchar irtime,irflag,bitnum,irdateok;uint num,flag,disnum,count,a,guang; /*八拍方式驅(qū)動(dòng),順序?yàn)锳 AB B BC C
41、 CD D DA*/ unsigned char code clockWise=0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09; /正轉(zhuǎn)unsigned char code clockWise1=0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08; /反轉(zhuǎn)uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0xa3,0x8c,0xc8,0xff ;void delay(unsigned
42、 int k);void delay_nms(unsigned int k);void Init_BH1750(void);void conversion(uint temp_data);void Single_Write_BH1750(uchar REG_Address); /單個(gè)寫入數(shù)據(jù)uchar Single_Read_BH1750(uchar REG_Address); /單個(gè)讀取內(nèi)部寄存器數(shù)據(jù)void Multiple_Read_BH1750(); /連續(xù)的讀取內(nèi)部寄存器數(shù)據(jù)void Delay5us();void Delay5ms();void BH1750_Start(); /起
43、始信號(hào)void BH1750_Stop(); /停止信號(hào)void BH1750_SendACK(bit ack); /應(yīng)答ACKbit BH1750_RecvACK(); /讀ackvoid BH1750_SendByte(BYTE dat); /IIC單個(gè)字節(jié)寫B(tài)YTE BH1750_RecvByte(); /IIC單個(gè)字節(jié)讀void conversion(uint temp_data) / 數(shù)據(jù)轉(zhuǎn)換出 個(gè),十,百,千,萬 wan=temp_data/10000+0x30 ; temp_data=temp_data%10000; /取余運(yùn)算qian=temp_data/1000+0x30 ;
44、 temp_data=temp_data%1000; /取余運(yùn)算 bai=temp_data/100+0x30 ; temp_data=temp_data%100; /取余運(yùn)算 shi=temp_data/10+0x30 ; temp_data=temp_data%10; /取余運(yùn)算 ge=temp_data+0x30; /毫秒延時(shí)*void delay_nms(unsigned int k)unsigned int i,j;for(i=0;i<k;i+)for(j=0;j<110;j+);/*延時(shí)5毫秒(STC90C52RC12M)不同的工作環(huán)境,需要調(diào)整此函數(shù)當(dāng)改用1T的MCU
45、時(shí),請(qǐng)調(diào)整此延時(shí)函數(shù)*/void Delay5ms() WORD n = 560; while (n-);/*延時(shí)5微秒(STC90C52RC12M)不同的工作環(huán)境,需要調(diào)整此函數(shù),注意時(shí)鐘過快時(shí)需要修改當(dāng)改用1T的MCU時(shí),請(qǐng)調(diào)整此延時(shí)函數(shù)*/void Delay5us() _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();/*起始信號(hào)*/void BH1750_Start() SDA
46、= 1; /拉高數(shù)據(jù)線 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SDA = 0; /產(chǎn)生下降沿 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線/*停止信號(hào)*/void BH1750_Stop() SDA = 0; /拉低數(shù)據(jù)線 SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) SDA = 1; /產(chǎn)生上升沿 Delay5us(); /延時(shí)/*發(fā)送應(yīng)答信號(hào)入口參數(shù):ack (0:ACK 1:NAK)*/void BH1750_SendACK(bit ack) SDA = ack; /寫應(yīng)答信號(hào) SCL = 1; /拉高時(shí)鐘線 Delay5us
47、(); /延時(shí) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí)/*接收應(yīng)答信號(hào)*/bit BH1750_RecvACK() SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) CY = SDA; /讀應(yīng)答信號(hào) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) return CY;/*向IIC總線發(fā)送一個(gè)字節(jié)數(shù)據(jù)*/void BH1750_SendByte(BYTE dat) BYTE i; for (i=0; i<8; i+) /8位計(jì)數(shù)器 dat <<= 1; /移出數(shù)據(jù)的最高位 SDA = CY; /送數(shù)據(jù)口 SCL = 1; /
48、拉高時(shí)鐘線 Delay5us(); /延時(shí) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) BH1750_RecvACK();/*從IIC總線接收一個(gè)字節(jié)數(shù)據(jù)*/BYTE BH1750_RecvByte() BYTE i; BYTE dat = 0; SDA = 1; /使能內(nèi)部上拉,準(zhǔn)備讀取數(shù)據(jù), for (i=0; i<8; i+) /8位計(jì)數(shù)器 dat <<= 1; SCL = 1; /拉高時(shí)鐘線 Delay5us(); /延時(shí) dat |= SDA; /讀數(shù)據(jù) SCL = 0; /拉低時(shí)鐘線 Delay5us(); /延時(shí) return dat;void Single_Write_BH1750(uchar REG_Address) BH1750_Start(); /
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京混凝土合同范本
- 各種合同范本app
- 廚房墻壁維修合同范本
- 種植水稻農(nóng)村土地出租合同范本
- 醫(yī)院租賃合同范本
- 發(fā)廊給干股 合同范本
- 買賣合同范本 中日
- 沖擊鉆合同范本
- 古董繼承合同范例
- 單位之間贈(zèng)與合同范例
- 機(jī)械設(shè)計(jì)基礎(chǔ)網(wǎng)考題庫答案 吉林大學(xué)
- 建筑垃圾回收利用統(tǒng)計(jì)臺(tái)賬
- 《不一樣的你我他》(完美)課件
- 新蘇教版科學(xué)六年級(jí)下冊(cè)全冊(cè)教案(含反思)
- 原油電脫鹽電脫水技術(shù)
- 國考斷面水站建設(shè)及運(yùn)維技術(shù)要求參考
- Q∕GDW 10799.7-2020 國家電網(wǎng)有限公司電力安全工作規(guī)程 第7部分:調(diào)相機(jī)部分
- 熱工學(xué)后題答案
- 不吸煙不喝酒課件
- 奧數(shù)知識(shí)點(diǎn) 間隔問題
- 簡(jiǎn)易旋轉(zhuǎn)倒立擺及控制裝置
評(píng)論
0/150
提交評(píng)論