




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
菏澤學院本科生課程設計(論文)PAGEPAGE34目錄摘要……………1關鍵詞…………………………1Abstract………………………1Keywords………………………1引言………………21總體方案設計………………2方案論證………………2無線遙控………………2液晶顯示………………21.280c51單片機……………22系統(tǒng)各功能模塊設…………22.1無線發(fā)射接收功能模塊………………22.2液晶顯示模塊……………62.3無線遙控模塊…………112.3.1ShockBurstTM模式…………………112.3.2節(jié)能模式……………122.3.3SPI接口配置…………133軟件設計…………………13參考文獻……………………17附錄A程序清單……………18致謝…………………………35
家居遙控窗簾設計自動化專業(yè)學生學生姓名劉騰蛟指導教師李忠廣摘要:由于人類在進步,科技在發(fā)展,自動化及電子技術也在相應的發(fā)展,因此我們對生活需求變得和以前不同。本次的設計是家居遙控窗簾設計,所用系統(tǒng)為自動控制,我們可以根據(jù)我們的需求,將窗簾的開度以及窗的開度自動或者手動我們所需求的。我是用了無線遙控,來實現(xiàn)了窗以及窗簾的開度的控制。并且還利用光敏器件,還有風力﹑溫度﹑雨水傳感器等根據(jù)不同的條件來實現(xiàn)窗簾的四種開度和窗的開和關。關鍵詞:自動控制;無線遙控;光敏器件 DesignofhomeremotecontrolcurtainsStudentmajoringinAutomationNameLiuTengjiaoTutorLiZhongguangAbstract:Duetohumanprogress,scienceandtechnologyindevelopment,automationandalsointheappropriatedevelopmentofelectronictechnology,soourneedsisdifferent.Thisdesignisthedesignofhomeremotecontrolcurtains,usedforautomaticcontrolofthesystem,wecaninaccordancewithourneeds,openingthecurtainandwindowopeningautomaticallyormanuallybyourneeds.Iamusingawirelessremotecontrol,torealizetheopeningofwindowandcurtaincontrols.Andalsotheuseofphotosensitivedevices,aswellaswind,temperature,rainsensor,etcdependingontheconditionsoffouropeningcurtainsandthewindowopensandcloses.Keywords:Automaticcontrol;remotecontrol;photosensitivedevices 引言這幾年由于科技的飛速發(fā)展,大家對生活質(zhì)量的要求也和以前不一樣,一棟棟的高樓大廈拔地而起,可是那么問題就來了,這種房屋的窗戶都比較高或者寬度比較寬,雖然它的優(yōu)點很顯著,比如結構美觀啊,采光良好啊之類的,可是人工的用手來拉窗簾則是相對比較的困難。但是現(xiàn)在很多的房地產(chǎn)開發(fā)商沒有為消費者考慮這個問題,所以那些高檔住宅反而給我們的生活帶來了不便。為了解決這個問題,我們就使用了窗簾機。窗簾機是用來干什么的了?可想而知,它是專門為高大或者比較寬的窗戶設計的窗簾控制裝置,而根據(jù)功能不同,我們可以把它分幾種,即手動、智能、遙控和自動等多種規(guī)格。手動窗簾機,從名字我們也可以看出它是通過控制按鍵操作窗簾開合的,所以這是一種最簡單的窗簾機,缺點也顯而易見,就是得需要人來近距離操作,而優(yōu)點就在于它操作一些超高、超寬窗簾比較容易。但是很少有廠家愿意作大規(guī)模的生產(chǎn),原因在于它的技術含量低;反之遙控窗簾機使用更為容易,它可以在比較遠的地方遙控窗簾的開合;自動窗簾機從名字都可以看的出,它是擁有自動控制功能。隨著自動窗簾熱潮在世界范圍內(nèi)的日漸興起,隨著中國電子技術的飛速發(fā)展、人們生活水平的不斷提高以及智能電子技術在生活中的廣泛應用,自動窗簾已經(jīng)成為未來家居裝飾潮流發(fā)展的最新方向,在不久的將來,沒有自動窗簾系統(tǒng)的住宅肯定不合潮流。從目前的發(fā)展趨勢來看,在未來的20年時間里,自動窗簾行業(yè)將成為中國的主流行業(yè)之一,其市場的發(fā)展前景是非常廣闊的。1總體方案的設計1.1方案論證1.1.1無線遙控 nRF905無線模塊CRM905ANC是此次我所需的,GFSK是運用了調(diào)制收到發(fā)出來的合一的辦法來送到數(shù)據(jù)多的頻道應用-兼容ETSI/FCC頻道切換的時間<650us。當接收到的靈敏度>-100dBm的時候,在傳輸數(shù)據(jù)的時候,需要外接一個433MHz50歐天線,而傳輸數(shù)據(jù)的速率,是能夠達到100kbps。但是工作的電壓一定要控制在1.9V和3.6V之間。nRF905單片無線收發(fā)器,工作電壓在1.9-3.6V之間,32引腳QFN封裝,在433/868/915MHz3個ISM頻道工作。nRF905是可以自動的完成CRT,還有處理字頭的工作,并且能夠自動的完成曼徹斯特編碼和解碼在片內(nèi)的硬件里。我們選用SPI微控制器通信與接口,它的配置是比較的方便的,并且它的功耗也是非常的低,輸出功率在-10dBm發(fā)射的時候,電流很小,只要11mA,而且在接收模式時,電流也挺小的,只有為12.5mA。而且它的里面集成了低噪聲放大器、電源的管理、頻率合成器功率的放大器、晶體振蕩器等模塊。曼徹斯特編碼和解碼都是由片內(nèi)的硬件自己完成的,所以這樣不需要用戶使用數(shù)據(jù)曼徹斯特編碼,所以它是非常方便的。然而還有一種無線數(shù)傳模塊就是JZ863。它的缺點在于是它無線數(shù)據(jù)傳輸?shù)木嚯x比較短,而優(yōu)點其實也挺多的,好比說功耗低,體積小,而且它的穩(wěn)定性以及可靠性都是非常的高的,它在雙向的數(shù)據(jù)信號傳輸、控制和檢測中,是比較方便的。那么問題來了,它有一個致命的缺點,導致了我沒有選用,也就是內(nèi)部沒有空閑模式和關機模式,所以是相當?shù)牟还?jié)能,不符合我們現(xiàn)在這個節(jié)能時代,所以我還是選擇nRF905。1.1.2液晶顯示液晶顯示模塊已作為很多電子產(chǎn)品中都可以看到,顯示的主要是數(shù)字、專用符號和圖形。1602型LCD顯示模塊具有體積小,功耗低,顯示內(nèi)容豐富等特點。引腳功能說明: LCD1602采用標準的16腳(帶背光)或14腳(無背光)接口,其中各引腳接口說明,如表2-2所示:表2-2LCD1602引腳接口說明表編號符號引腳說明編號符號引腳說明1VSS 電源地2VDD電源正極3VL液晶顯示偏壓4RS數(shù)據(jù)/命令選擇5R/W讀/寫選擇6E使能信號7D0數(shù)據(jù)8D1數(shù)據(jù)79D2數(shù)據(jù)10D3數(shù)據(jù)11D4數(shù)據(jù)12D5數(shù)據(jù)13D6數(shù)據(jù)14D7數(shù)據(jù)15BLA背光源正極16BLK背光源負極1602液晶模塊非外部控制器一共有11條的控制指令,如表1所示,表11602液晶模塊的11條控制指令指令RSR/WD7D6D5D4D3D2D1D0清顯示0000000001光標返回000000001*置輸入模式00000001I/Ds顯示開/關控制0000001DCB光標或數(shù)字移位000001S/CR/L**置功能00001DLNF**置字符發(fā)生吃存貯器地址0001字符發(fā)生存貯器地址(AGG)置數(shù)據(jù)存貯器地址001顯示數(shù)據(jù)存貯器地址(ADD)讀忙標志或地址01BF計數(shù)器地址(AC)寫數(shù)據(jù)到CGRAM或DDRAM10要寫的數(shù)從CGRAM或DDRAM讀數(shù)11讀出的數(shù)據(jù)
DM-162液晶顯示模塊可與單片機AT89C51非間接接口,電路如圖1.2所示。圖1.2液晶模塊與單片機AT89C51直接接口這個液晶顯示模塊是屬于慢顯示器件,所以在每一條指令的執(zhí)行之前,一定要確保模塊的忙標記為低電平,表現(xiàn)為不忙,否則此指令是不會生效的。需求顯示字符的時分,首先需要非輸出顯示字符地址,這也相當于通知模塊的顯示字符在哪兒。1.280c51單片機80C51運用了可靠的CHMOS工藝技術制造出來的高性能8位單片機,它是規(guī)范的MCS-51的HCMOS產(chǎn)品。它的優(yōu)點在于結合了HMOS的高密度和高速技術以及CHMOS的低功耗的特點,而且它還秉承且擴充了MCS-48單片機的指令系統(tǒng)和體系結構。
2系統(tǒng)各功能模塊設計2.1無線發(fā)射接收功能模塊nRF905在使用的時候也比較的靈活,它根據(jù)我們需求的不同,它的電路圖不相同。下面我們根據(jù)一些例子來介紹下,如圖2.1所示,它就是為典型的運用原理圖,電路天線局部都是用了50Ω單端天線。其實在nRF905電路板設計中,同樣也可用環(huán)形天線,也就是把天線布在PCB板上,這樣的優(yōu)點也很突出,就是減小了它的體積我們使用的nRF905是通過微控制器和SPI接口來進行數(shù)據(jù)傳送的,經(jīng)過ShockBurstTM收和發(fā)的形式進行無線數(shù)據(jù)的發(fā)送,使用方便,收發(fā)牢靠。 圖2.1帶有外部元件的nRF905 表2Nrf905快速參考數(shù)據(jù)參數(shù)數(shù)值單位最低工作電壓1.9V最大發(fā)射功率10dBm最大數(shù)據(jù)傳輸率100Kbps輸出功率為-10dBm時工作電流11mA接收模式時工作電流12.5mA溫度范圍-40to+80℃典型靈敏度-100dBmPOWERDOWN模式時工作電流2.5uA引腳介紹:表3:nRF905引腳引腳名稱引腳功能描述1TRX_CE數(shù)字輸入使nRF905處于發(fā)送或接收狀態(tài)2PWR_UP數(shù)字輸入工作狀態(tài)選擇3uPCLK時鐘輸出輸出時鐘4VDD電源電源正端5VSS電源電源地6CD數(shù)字輸出載波檢測7AM數(shù)字輸出地址匹配8DR數(shù)字輸出數(shù)據(jù)準備好9VSS電源電源地10MISOSPI輸出SPI輸出11MOSISPI輸入SPI輸入12SCKSPI時鐘SPI時鐘13CSNSPI片選SPI片選,低有效14XC1模擬輸入晶振輸入引腳115XC2模擬輸出晶振輸入引腳216VSS電源電源地17VDD電源電源正端18VSS電源電源地19VDD_PA輸出電源給功率放大器提供1.8伏電壓20ANT1射頻天線接口121ANT2射頻天線接口222VSS電源電源地23IREF模擬輸入?yún)⒖驾斎?4VSS電源電源地25VDD電源電源正端26VSS電源電源27VSS電源電源地28VSS電源電源地29VSS電源電源地30VSS電源電源地31DVDD_1V2電源低電壓正數(shù)字輸出32TX_EN數(shù)字輸入等于1,發(fā)送模式;等于0,接受模式nRF905有兩種形式,分別為兩種節(jié)能形式和兩種任務形式。兩種節(jié)能形式分別為空暇形式和關機形式。PWR_UP、TX_EN和TRX_CE三個引腳決議的任務形式;兩種任務形式分別是ShockBurstTM的發(fā)送和接受形式,具體能夠見表4,使用的電路圖見以圖2.2。表4:nRF905工作模式PWR_UPTRX_CE TX_EN工作模式0××關機模式1 0 ×空閑模式110射頻接收模式111射頻發(fā)送模式圖2.2nRF905無線收發(fā)電路 2.2液晶顯示模塊大家都知道,在文本文件中,一個字符是一個字節(jié)的代碼記載,而一個漢字是兩個字節(jié)的代碼記載的。在PC上,咱們只需翻開一個文本文件,也就能夠看到屏幕上對應的字符是因為在BIOS和操作系統(tǒng)里都固化有字符字模。點陣屏幕上熄滅和電燈的信息數(shù)據(jù)也就代表了字幕。接下來介紹一個簡單的字幕“A”,如下所示:
01110○■■■○
10001■○○○■
10001■○○○■
10001■○○○■
11111■■■■■
10001■○○○■
10001■○○○■
假如想要在LCD1602屏幕上的第一行第一列顯示一個"A"字怎么辦呢?很簡單,就是從DDRAM的00H的地址里面寫入“A”字的代碼41H。同樣,如果我們想在LCD模塊上同樣也固化了字模存儲器(CGRAM和CGROM),HD44780里面自帶了192個常用字符的字模,存在于字符產(chǎn)生器CGROM里面,RAM是8個許可用戶自定義的字符發(fā)作的,叫作CGRAM。那么接下來,接引見下HD44780的指令集及其設置的闡明。共11條指令: 1.清屏指令如圖2.3所示圖2.3清屏指令它的性能:清除液晶顯示器,而后將DDRAM的內(nèi)容全部填入"空白"的ASCII碼20H;光標歸位,然后將光標撤回液晶顯示屏的左上方;將地址的計數(shù)器(AC)的值設為0。2.光標歸位指令如圖2.3所示圖2.4光標歸位指令它的性能:把光標移回到顯示器的左上方;而后把地址計數(shù)器(AC)的值設為0;然DDRAM的內(nèi)容保持不變化。3.進入模式設置指令,如圖2.5所示 圖2.5模式設置指令它的性能:每次定入1位數(shù)據(jù)后光標的移位標的目的的設定,而且每次寫入的一個字符能否挪動的設定。參數(shù)設定的情況如下所示:
位名
設置
I/D
0=寫入新數(shù)據(jù)后向光標左移
1=寫入了新數(shù)據(jù)后光標而后向右移
S
0=寫入新數(shù)據(jù)之后顯示屏保持不移動
1=寫入新數(shù)據(jù)后顯示屏整體都向右移1個字符4.顯示開關控制指令如下圖2.6所示圖2.6顯示開關控制指令它的性能:管制顯示器的開與關、光標顯示與封閉還有光標能否閃動。參數(shù)設定情況如下:
位名
設置
D
0=顯示功能關
1=顯示功能開
C
0=無光標
1=有光標
B
0=光標閃爍
1=光標不閃爍5.設定顯示屏的方向,還有光標移動方向指令如圖2.7所示圖2.7設定顯示屏或光標移動方向指令它的性能:將光標或者使整個顯示屏幕移位。參數(shù)的設定情況如下:
S/C
R/L
設定情況
0
0
光標向左移動1格,且AC值加和減少1
0
1
光標向右移動1格,且AC值加1
1
0
顯示器上字符一起向左移一格,但光標不動
1
1
顯示器上字符一起向右移一格,但光標不動6.性能設定指令如下圖2.8所示圖2.8功能設定指令它的性能:設定數(shù)據(jù)總線位數(shù)、顯示的行數(shù)以及字型。參數(shù)設定的情況如下:
位名
設置
DL
0=數(shù)據(jù)的總線是4位
1=數(shù)據(jù)的總線是8位
N
0=顯示1行
1=顯示為2行
F
0=5×7點陣/每個字符
1=5×10點陣/每個字符7.設定CGRAM地址指令如下圖2.9和2.10所示圖2.9設定CGRAM地址指令
8.設定DDRAM地址指令
圖2.10設定DDRAM地址指令它的性能:設定下一個須要存入數(shù)據(jù)的CGRAM的地址。8.讀取忙信號或AC地址指令如下圖2.11所示圖2.11讀取忙信號或AC地址指令它的性能:讀取忙碌信號BF的內(nèi)容(當BF等于1的時候,則表現(xiàn)液晶顯示器忙,臨時不能接到單片機所送來的數(shù)據(jù)或者指令;當BF等于0的時候,液晶顯示器可接收單片機所送來的數(shù)據(jù)或者指令);讀取地址的計數(shù)器(AC)的內(nèi)容。9.數(shù)據(jù)寫入DDRAM或CGRAM如下圖2.12所示10.數(shù)據(jù)寫入DDRAM或者CGRAM指令如下圖所示圖2.12數(shù)據(jù)寫入DDRAM或CGRAM指令它的性能:將字符碼寫入DDRAM的里面,以使液晶顯示屏顯示出相對應的字符;將使用者本人設計的圖形存入了CGRAM。10.從CGRAM或DDRAM讀出數(shù)據(jù)的指令如下圖所示圖2.13從CGRAM或DDRAM讀出數(shù)據(jù)的指令它的性能:讀取DDRAM或者CGRAM中的內(nèi)容?;镜牟僮鲿r序:讀狀態(tài)
輸入:RS=L,RW=H,E=H
輸出:DB0~DB7=狀態(tài)字
寫指令
輸入:RS=L,RW=L,E=下降沿脈沖,DB0~DB7=指令碼
輸出:無
讀數(shù)據(jù)
輸入:RS=H,RW=H,E=H
輸出:DB0~DB7=數(shù)據(jù)
寫數(shù)據(jù)
輸入:RS=H,RW=L,E=下降沿脈沖,DB0~DB7=數(shù)據(jù)
輸出:無圖2.1480C51與1602連接電路2.3無線遙控模塊圖2.15無線控制電路2.3.1ShockBurstTM模式 nRF905片里面進行著射頻數(shù)據(jù)包相關高速信號處理,微控制器配置的SPI接口決定了數(shù)據(jù)速率,一般情況下,數(shù)據(jù)是在微控制器里面低速辦理,但是卻是在nRF905里面則是高速的發(fā)送,所以它的中間的空閑時間是很多的,因為它比較的節(jié)能。低速的微控制器也能夠得到很高射頻數(shù)據(jù)的發(fā)射速率,不過是有條件的,則是nRF905工作在ShockBurstTM模式下。接下來說說在ShockBurstTM接收和發(fā)送兩種模式,在它接收的模式下,一般在數(shù)據(jù)準備好(DR)和地址匹配(AM)兩引腳通知控制器,都會有一個包含正確數(shù)據(jù)和地址的數(shù)據(jù)包被接收到。在它發(fā)送模式下,nRF905就會自動的產(chǎn)生CRC校驗碼和字頭,在發(fā)送過程完成后,數(shù)據(jù)將會準備好引腳告訴微處理器數(shù)據(jù)已發(fā)射完畢。經(jīng)由上面分析,我們可以得到,nRF905的ShockBurstTM收發(fā)模式對微控制器資源和節(jié)約存儲器比較有利,同時它也大大減小了編寫程序所需要的工夫。接下來,我將會具體的來具體分析一下nRF905的發(fā)送流程和接收流程。(1)發(fā)送流程 一般nRF905發(fā)送流程可分以下幾個步驟:
A.
在微控制器有數(shù)據(jù)需要發(fā)送的時候,必需在經(jīng)過SPI接口,而且還該當按時序把要發(fā)送的數(shù)據(jù)和接收機的地址送傳給nRF905,這樣,SPI接口的速率就會確定器件配置和通信協(xié)議;
B.
當微控制器被置高到TX_EN和TRX_CE的時候,需要激發(fā)nRF905的ShockBurstTM發(fā)送模式;
C.
nRF905的ShockBurstTM發(fā)送需要幾個條件:
l
射頻寄存器主動的開啟;
2
數(shù)據(jù)打包;
3
發(fā)送數(shù)據(jù)包;
4
當數(shù)據(jù)發(fā)送完成時,數(shù)據(jù)準備好引腳被置高;
D.
當AUTO_RETRAN被置高的時候,nRF905將會不停的重發(fā),發(fā)到TRX_CE被置低為止;
E.
而當TRX_CE被置低的時候,nRF905發(fā)送的進程將會完成,也就是主動的進入空閑模式。(2)接收流程A.
當TX_EN、TRX_CE分別為低和高的時候,nRF905也就進入了ShockBurstTM的接收模式;
B.
當通過650us以后,nRF905它就會不停監(jiān)測,直到等候到了接收數(shù)據(jù);
C.
當nRF905檢測到同一段頻段的載波的時候,載波檢測引腳就會被置高;
D.
當接收一個相匹配的地址時,地址匹配引腳將會被置高;
E.
當一個對的數(shù)據(jù)包在完畢接收結束的時候,nRF905也就會主動的移去字頭、CRC校驗位和地址,接著就會把數(shù)據(jù)準備好然后引腳被置高;
F.
當微控制器把TRX_CE置低的時候,nRF905也就進入了空閑模式;
G.
當微控制器通過SPI口的時候,就會以一定的速率把數(shù)據(jù)移到微控制器中;
H.
當一切的數(shù)據(jù)都接收結束的時候,nRF905就會把數(shù)據(jù)準備好的地址匹配引腳置低;
I.
當?shù)搅诉@個時候,nRF905也就可進入ShockBurstTM發(fā)送模式、ShockBurstTM接收模式或者關機模式。2.3.2節(jié)能模式nRF905的節(jié)能模式有兩種,即節(jié)能模式和關機模式。那么接下來就說說這兩種模式。在進入了關機模式的時候,nRF905工作的電流是最小,一般也就是2.5uA,但是這個時候nRF905卻依舊保持顯示配置字中的內(nèi)容,但是它不會發(fā)送或者接收任何的數(shù)據(jù)。而一切配置字都是經(jīng)過SPI接口傳給nRF905。SIP接口工作方式能夠經(jīng)過SPI指令來進行設置的。當進入了nRF905處于關機模式或空閑模式時,SPI接口可保持在工作的狀態(tài)。2.3.3SPI接口配置射頻配置寄存器、發(fā)送地址寄存器、接收數(shù)據(jù)寄存器、發(fā)送數(shù)據(jù)寄存器和狀態(tài)寄存器5個寄存器組成SPI接口。下面稍微解釋下幾種寄存器。狀態(tài)寄存器:它其中包含了地址匹配引腳狀態(tài)信息和數(shù)據(jù)準備好引腳狀態(tài)信息;發(fā)送地址寄存器:它其中包含接收機的地址和數(shù)據(jù)的字節(jié)數(shù);發(fā)送數(shù)據(jù)寄存器:它其中包含待發(fā)送的數(shù)據(jù)包的信息;射頻配置寄存器:它其中包含了收發(fā)器配置信息。射頻配置寄存器和內(nèi)容如表5所示:表5:射頻配置寄存器名稱位寬描述CH_NO9和HFREQ_PLL一起進行頻率設置(默認值的是011101100=108)HFREQ_PLL1用PLL工作于433或868/915MHz(默認值是0)‘0’-工作于433MHz頻段;‘1’-工作于868/915MHz頻段PA_PWR2輸出的功率(默認值是00),‘00’-10dBm;‘01’-2dBm;‘00’+6dBmRX_RED_PWR1接收方式節(jié)能端,當該位為高時,接收工作電流是1.6mA,但這個時候靈敏度也會降低AUTO_RETRAN1自動重發(fā)位,只有當TRX_CE和TXEN被置高時才會有效RX_AFW3接收的地址寬度(默認值為100),‘001’-1btyeRX地址;‘100’-4btyeRX地址;TR_AFW3發(fā)送的地址寬度(默認值為100),‘001’-1btyeRX地址;‘100’-4btyeRX地址;RX_PW6發(fā)送的數(shù)據(jù)寬度(默認值為101000)‘00001’-1btye發(fā)送數(shù)據(jù)的寬度‘000101’-2btye發(fā)送數(shù)據(jù)的寬度…………‘100101’-32btye發(fā)送數(shù)據(jù)的寬度TX_PW6接收的數(shù)據(jù)寬度(默認值是1000)‘00001’-1btye發(fā)送的數(shù)據(jù)寬度‘00010’-2btye發(fā)送的數(shù)據(jù)寬度…………‘1000’-32btye發(fā)送的數(shù)據(jù)寬度RX_ADDRESS32發(fā)送的地址標識(默認值是E7E7E7E7)UP_CLK_FREQ2輸出時鐘的頻率(默認值是11)‘00’-4MHz;‘01’-2MHz;‘10’-1MHz;‘11’-500kHzUP_CLK_EN1輸出時鐘使能XOF3在晶振頻率端,必須要與外部晶振頻率向對應(默認值是100)‘000’-4MHz;‘001’-8MHz;‘010’-12MHz;‘011’-16MHz;‘100’-20MHz;CRC_EN1CRC校驗使能端,高為使能,默認值為高CRC_MODE1CRC的方式選擇端,高為16位,低為8位,默認值為高射頻寄存器的各位長度是不可變的。所以在ShockBurstTM發(fā)收過程中,TX_ADDRESS、_ADDRESS、TX_PAYLOAD和RX_PAYLOADRX4個寄存器所使用的字節(jié)數(shù)都是由配置字決定的。當nRF905進入了空閑或者關機模式的時候,寄存器中的內(nèi)容也就是保持不變。3軟件設計 1602所顯示的程序編寫流程如圖3.1所示: LCM初始化LCM初始化開始調(diào)用清除子程序調(diào)用寫到LCM調(diào)用顯示到LCM保護現(xiàn)場查表調(diào)用寫到LCM恢復現(xiàn)場結束開始調(diào)節(jié)指針返回1602主程序顯示子程序圖3.1顯示程序流程圖當我們想遙控調(diào)整窗簾的位置的時候,可按UP鍵或DOWN鍵來控制窗簾升或者降,它的流程圖如圖3.2所示。低功耗低功耗開始喚醒鍵按下否計數(shù)清零發(fā)當前窗狀態(tài)顯示當前窗位置UP鍵按下否COUNT+1COUNT—1ENTERNYYY根據(jù)菜單內(nèi)容無線發(fā)射命令Y調(diào)用液晶顯示調(diào)用液晶顯示NNDOWN鍵按下否N圖3.2遙控流程圖串口中斷開串口中斷開開始清TI位清RI位將數(shù)據(jù)送到COMMAD置回歸標志位中斷返回圖3.3無線接收流程圖參考文獻:[1]瞿貴榮.電動窗簾紅外遙控電路[J].家庭電子,2005:15~16
[2]郭成林.智能遙控窗簾系統(tǒng)設計[J].山西電子技術,2006:6~7
[3]陳莉,王宇,張微微.自動啟閉窗簾控制器的設計[J].科技情報開發(fā)與經(jīng)濟,2007:32~35
[4]郭光立.電動窗簾控制器[J].家庭電子,1999:40~45[5]廖威.基于單片機的窗簾升降器模擬裝置的設計和實現(xiàn)[J].科技信息(科學教研),2007:50~53
[6]郭成林.AT89系列單片機與PC機之間的串行通信接口設計[J].山西電子技術,2008:66~70[7]廖桂華,王宜懷.單片機指令系統(tǒng)仿真研究與實現(xiàn)[J].軍民兩用技術與產(chǎn)品,2008:60~62
[8]馬向國,劉同娟.基于PIC單片機的無線射頻遙控窗簾器[J].電子產(chǎn)品世界,2005:23~30
[9]郭光立.光控自動窗簾[J].家庭電子,1999:55~56
[10]陳大林,任祖平.基于單片機的步進電機控制器設計[J].伺服控制,2008:35~38附錄1:程序清單;;;;;;;;;;;;;;;;;window;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;子程序的說明;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;f0電機額方向;;;;;;;;;;;;端口的定義;;;;;;;;;;;;;;;;;;;;;;;;;;motor_in3equp2.1;IN4/OUT4接電機的紅線motor_in4equp2.2;IN3/OUT3接電機額黑線motor_enequp2.0;使能端placeequp3.2;;;;;;;;;;;;;;;windowequp0.0TDATAEQUP2.4;;;;;;;;;;;;;;;CS549EQUP1.4;CS片選端DOUT549EQUP2.6CLK549EQUP2.7DATA549EQU31H;光信息DATA1EQU32H;三個光強DATA2EQU33HDATA3EQU34HDATAADEQU35H;光強COUNTEQU28H;當前窗簾位置0-3DCOUNTEQU37H;目的窗簾位置C0_COUNTEQU3BH;一號功能的計位置WINDLEQU38H;風的轉數(shù)值windhEQU39HFLAGXEQU20h.0;定點暫停5S的標志位WINDOWSTUEQU20H.1;窗的狀態(tài)RAINEQU20H.2;雨的狀態(tài)RFFLAGEQU20H.3;無線有接收命令標志,0無效,1有效windflagequ20h.4;風檢測啟動標志rainflagequ20h.5;雨檢測啟動標志lightflagequ20h.6;光檢測啟動標志wendugaoflagequ21h.0fengdaequ21h.1shangequ3chxiaequ3dhshuruequ3ehc50msequ3fhc10sequ2ahgaoequ21h.2diequ21h.3haoequ21h.4commandequ30H;命令由默認為0,保持現(xiàn)狀不做任何事;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;常數(shù)定義;;;;;;;;;;;;;;;;;;;;;;;;;;TEMPUPEQU23;;;;;;;;?????TEMPDOWNEQU23Hwinduphequ20hwindupLequ40hlight0equ67h;0級光強下限一般6e~80hlight1equ49h;1級光強下限一般61~50hlight2equ1ah;2級光強下限一般41~30h;3級光強(滅)00h;;;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ORG0000HLJMPSTARTORG0003H;placeLJMPINT0ORG000BH;dingshicaiji,,feng,guangLJMPTIME0ORG0013HLJMPINT1;yuorg001BHRETIORG0023HLJMPRECIEVEORG0030HSTART:MOVSP,#STACKBUFLCALLSETSTARTmain:CLRRFFLAGmova,commandcjnea,#10,mainn1mainn1:jncmainrlarlaadda,commandadda,commandmovdptr,#tabcomjmp@a+dptrljmpmaintabcom:;不做動作lcallc0_keepljmpmain;窗簾示教lcallc1_DEMONSTRATEljmpmain;關窗戶lcallc2_w_closeljmpmain;開窗戶lcallc3_w_openwljmpmain;全關窗簾lcallc4_c_closeljmpmain;窗簾1lcallc5_c_open1ljmpmain;窗簾2lcallc6_c_open2ljmpmain;全開窗簾lcallc7_c_openljmpmain;智能lcallc8_INTELLIGENTljmpmain;;;;;;;;不做動作;;;;;;;;;;c0_keep:;可定義低功耗nopret;;;;;;;;;窗簾示教;;;;;;;;;c1_DEMONSTRATE:movcommand,#0movdcount,#0;lcallOrgin_clcallDEMONSTRATEMOVCOUNT,#0MOVIE,#0SETBESret;;;;;;;;;;關窗戶c2_w_close:movcommand,#0clrwindowclrWINDOWSTUret;;;;;;;;;;開窗戶c3_w_openw:movcommand,#0setbwindowsetbWINDOWSTUret;;;;;;;;;;;全關窗簾c4_c_close:movdcount,#3movcommand,#0lcallOrgin_cret;;;;;;;;;;窗簾1c5_c_open1:movcommand,#0movdcount,#1lcallOrgin_cret;;;;;;;;;;窗簾2c6_c_open2:movcommand,#0movdcount,#2lcallOrgin_cret;;;;;;;;;;;全開窗簾c7_c_open:movcommand,#0movdcount,#0lcallOrgin_cret;;;;;;;;;;智能c8_INTELLIGENT:movcommand,#0mova,#0f1horltmod,#01hmovth0,#4chmovtl0,#0setbET0SETBEX0SETBEASETBTR0INTELL:JBRFFLAG,C9_EXIT;無線有接收命令標志,0無效,1有效JBwindflag,IN_WIND;風檢測啟動標志JBlightflag,IN_LIGHT;光檢測啟動標志SJMPINTELLc9_exit:MOVIE,#0SETBESretIN_WIND:lcallwind_in;風檢測啟動標志ljmpintellIN_LIGHT:lcalllight_in;光檢測啟動標志ljmpintell;;;;;;;;;;;;wind_in:jnbp3.3,w_innextsetbwindowsjmpw_exit;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;w_innext:clrfengdaclrwindflagw_exit:ret;;;;;;;;;;光的比較并對窗簾變;;;;;;;;;;;;;;;;;;;光的比較并對窗簾變;;;;;;;;;;;;;;;;;;;光的比較并對窗簾變;;;;;;;;;入口light_in:lcalllightmovshuru,DATAADmovshang,#light0movxia,#light1lcallcomperejbgao,kai2jbhao,kai1movshuru,dataadmovshang,#light2movxia,#0lcallcomperejbgao,quankai0jbhao,quanguan3sjmplightexitquanguan3:movdcount,#3lcallOrgin_csjmplightexitquankai0:movdcount,#0lcallOrgin_csjmplightexitkai2:movdcount,#2lcallOrgin_csjmplightexitkai1:movdcount,#1lcallOrgin_csjmplightexitlightexit:clrlightflagret;shangxia,shuru,;gao,di,haocompere:mova,shuruclrcsubba,shangjcxiabisetbgaoclrdiclrhaosjmptuixiabi:mova,shuruclrcsubba,xiajnchaotuiclrhaoclrgaosetbdisjmptuihaotui:setbhaoclrgaoclrditui:retSETSTART:MOVTMOD,#21H;初始化串行口MOVTH1,#0FDHMOVTL1,#0FDHMOVSCON,#50HMOVPCON,#0SETBPSSETBTR1SETBEASETBESCLRRFFLAGCLRA;清單元MOVR0,#30HMOVR7,#48CLEARL:MOV@R0,AINCR0DJNZR7,CLEARLRET;;;;;;;;;;;外中斷1雨INT1:PUSHPSWPUSHACCCLRWINDOW;開窗戶POPACCPOPPSWRETI;;;;;;;;;;;定時器1中斷啟動測風和測光TIME0:pushaccpushpswincc50msmova,c50mscjnea,#200,time0exitmovc50ms,#0incc10scjnea,#6,time0exitsetbwindflagsetbrainflagsetblightflagpoppswpopacctime0exit:RETI;;;;;;;;;;;串口無線接受命令RECIEVE:clrticlrrimovcommand,sbufSETBRFFLAGRETI;;;;;;;;;窗簾定位走動;入口DCOUNT,COUNT;結果DCOUNT=COUNT;Orgin_c:MOVA,DCOUNTCJNEA,COUNT,CONTINUELJMPOrgin_exitCONTINUE:JCORGIN_DOWNclrcsubba,countmovc0_count,asetbmotor_enclrmotor_in3;電機正轉,方向向下setbmotor_in4;放窗簾setbf0ljmporgin_judgeORGIN_DOWN:setbmotor_enclrmotor_in4;CY=0setbmotor_in3;收窗簾xcha,countclrcsubba,countmovc0_count,aclrf0;orgin_judge:lcallDELAY;5s啟動orgin_wait:jnbplace,org_next;去抖;判斷是否有串口退出lcallDEL10MSOrg_next:jbplace,orgin_waitjnbf0,Orgin_j1inccountsjmporgin_j2Orgin_j1:deccountorgin_j2:djnzc0_count,orgin_consjmpOrgin_exitorgin_con:jbplace,or_houdou;houdoulcalldel10ms;判斷是否有串口退出;數(shù)是上個or_houdou:jnbplace,orgin_consjmporgin_waitOrgin_exit:ret;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DEMONSTRATE:MOVC0_COUNT,#0clrmotor_in3setbmotor_in4;放窗簾setbmotor_enNEXT:CLRFLAGXSETBIT0SETBEASETBEX0N4:JNBFLAGX,N4N3:CLREX0CLRmotor_enLCALLDELAYSETBmotor_enSETBEX0CLRFLAGXMOVA,C0_COUNTCLRCSUBBA,#3JCN5clrmotor_in4;CY=0setbmotor_in3;收窗簾N5:MOVA,C0_COUNTCLRCSUBBA,#6JZEXITJNCEXITLJMPN4;CY=1EXIT:CLREX0;CY=0CLREACLRmotor_enRETINT0:PUSHPSWPUSHACCSETBRS0JBP3.2,IN0EXITLCALLDELAY1msJBP3.2,IN0EXITINCC0_COUNTSETBFLAGXCLRmotor_enCLREX0IN0EXIT:POPACCPOPPSWRETI;五秒鐘延時DELAY:MOVR7,#100DLL:MOVR6,#200DL:MOVR5,#123NOPDJNZR5,$DJNZR6,DLDJNZR7,DLLRETDELAY1MS:MOVR7,#4DE1MS:MOVR6,#123NOPDJNZR6,$DJNZR7,DE1MSRETlight:LCALLAD549MOVDATA1,DATA549LCALLDEL10MS11LCALLAD549MOVDATA2,DATA549LCALLDEL10MS11LCALLAD549MOVDATA3,DATA549LCALLDEL10MS11LCALLLVBO1ret;;;;;;;;;;;;;;;;;;;;;;;;;;AD549:CLRACLRCMOVR7,#8CLRCLK549CLRCS549ADLOP:NOPMOVC,DOUT549RLCASETBCLK549NOPNOPCLRCLK549NOPNOPDJNZR7,ADLOPSETBCS549MOVDATA549,ARET;;;;;;;;;;;;;;;;;;;;;;;;LVBO1:CLRCMOVA,DATA1SUBBA,DATA2JCC2;DATA1小JZC7LJMPC5;DATA1大C2:CLRCMOVA,DATA2SUBBA,DATA3JCC8;DATA2小JZC8LJMPC6C5:CLRCMOVA,DATA1SUBBA,DATA3JCC7;DATA1小JZC7LJMPC3C6:CLRCMOVA,DATA1SUBBA,DATA3JCC9;DATA1小JZC9LJMPC7C3:CLRCMOVA,DATA2SUBBA,DATA3JCC9;DATA2小JZC9LJMPC8C7:MOVDATAAD,DATA1JMPEXIT111C8:MOVDATAAD,DATA2JMPEXIT111C9:MOVDATAAD,DATA3exit111:RETDEL10MS11:PUSHPSWSETBRS0CLRRS1MOVR7,#33DEL111:MOVR6,#123NOPDEL211:DJNZR6,DEL211DJNZR7,DEL111POPPSWRETWINDOWEQUP0.0UPKEYEQUP1.6DOWNKEYEQUP1.7ENTEREQUP1.5DELEEQUP1.4COMANDEQUP1.3RS EQU P1.2 ;P1.2腳接RS端R_W EQU P1.1 ;P1.1腳接R_W端E EQU P1.0 ;P1.0腳接E端D_BUSEQU P2;P2口控制D_BUS輸出SLEEPEQUP3.3STAFLAGEQU20H.0WIDNOWSTAEQU20H.2;窗戶關時為0winstatusequ20h.3;*********未做LINEHEQU30HLINELEQU31HDS1602COUNTEQU32H;由0~9功能鍵狀態(tài)COUNTEQU33H;窗簾狀態(tài)來自于窗戶的反饋信息DCOUNTEQU34H;窗簾目標MAXEQU35H;DS1602COUNT的最大值MINEQU36H;DS1602COUNT的最小值ORG0000HSJMPSTARTORG0013H;LJMPLINST_INT1;初始化START:MOVSP,#70HLCALLINITIAL ;調(diào)用啟動LCM子程序進行初始化LCALLCLS ;調(diào)用清除LCM子程序;N0:JBSLEEP,$;等待喚醒LCALLSETSTA;初始化狀態(tài)和串行口;調(diào)用接收當前窗戶狀態(tài)子程序,并保存窗戶狀態(tài)到WIDNOWSTA;JNBWIDNOWSTA,CLOSEWIDOW;CLRWINDOW;開窗戶********PROBLEM*************************;SJMPN1;CLOSEWIDOW:SETBWINDOW;關窗戶LCALLDS1602N1:JNBupkey,N2JNBDOWNKEY,N3JNBENTER,N4JBSLEEP,N1;等待休眠movr5,#4nSlopS:lcalldeldjnzr5,nSlopSjbupkey,N1LCALLINITIAL ;調(diào)用啟動LCM子程序進行初始化LCALLCLS ;調(diào)用清除LCM子程序JMPN0;進入到休眠轉狀態(tài);;;;;;;;;;;;;;;;;"+"功能鍵N2:movr5,#4n2lop1:lcalldeldjnzr5,n2lop1jbupkey,exitn2mova,DS1602COUNT;"+"功能鍵;clrcadda,#1MOVB,A;CLRCSUBBA,MAX;判斷是否大于極大值JNCN22MOVA,BmovDS1602COUNT,aLCALLDS1602JMPEXIT_N2N22:MOVDS1602COUNT,MINLCALLDS1602EXIT_N2:jbupkey,exit_n22
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度直播平臺主播培訓及管理合同
- 2025年度新能源汽車產(chǎn)業(yè)投資合作合同
- 二零二五年度商標共營協(xié)議及跨國品牌合作合同
- 二零二五年度超市商品陳列與文化氛圍營造合同
- 2025年度民宿租賃合同終止及服務質(zhì)量協(xié)議
- 二零二五年度集體合同簽訂與新型學徒制實施
- 二零二五年度個人對個人科技成果轉化借款合同
- 2025年度機關炊事員食品安全培訓聘用協(xié)議
- 日常行政管理事務處理指導書
- 日化用品行業(yè)供應鏈優(yōu)化與市場拓展策略研究計劃
- 小學語文中高年級單元整體教學設計的實踐研究(中期報告)
- JTT791-2010 公路涵洞通道用波紋鋼管(板)
- 山東省春季高考技能考試-汽車專業(yè)必刷必練題庫(600題)
- 2024年黑龍江農(nóng)墾科技職業(yè)學院高職單招(英語/數(shù)學/語文)筆試歷年參考題庫含答案解析
- THHPA 001-2024 盆底康復管理質(zhì)量評價指標體系
- 人民音樂家 教案-2023-2024學年高中人音版(2019)必修《音樂鑒賞》
- 《合理調(diào)節(jié)情緒-做自己情緒的主人》班會課件
- 20222023學年山西省朔州市朔城區(qū)七年級(下)期末語文試卷(解析)
- 國家義務教育質(zhì)量監(jiān)測心理健康和德育測試題
- 農(nóng)民橡膠割膠技術培訓方案
- 新編物理基礎學(下冊)(9-17章)課后習題(每題都有)詳細答案
評論
0/150
提交評論