溫室大棚卷簾機(jī)控制系統(tǒng)總體方案設(shè)計(jì)_第1頁
溫室大棚卷簾機(jī)控制系統(tǒng)總體方案設(shè)計(jì)_第2頁
溫室大棚卷簾機(jī)控制系統(tǒng)總體方案設(shè)計(jì)_第3頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第一章緒論 21.1 背景介紹 21.2 相關(guān)技術(shù)的情況 21.3 設(shè)計(jì)的意義 2第二章總體設(shè)計(jì)方案 32.1 結(jié)構(gòu)設(shè)計(jì) 32.2 本設(shè)計(jì)主要功能流程圖 3第三章硬件設(shè)計(jì)模塊 53.1 單片機(jī)主控制模塊 53.2 GSM短信收發(fā)模塊 63.3 溫度顯示模塊 83.4 矩陣鍵盤模塊 103.5 步進(jìn)電機(jī)仿卷簾機(jī)模塊 11第四章軟件設(shè)計(jì) 134.1 程序設(shè)計(jì)總流程圖 134.2 GSM短信模塊程序設(shè)計(jì) 144.3 DS18B20 程序設(shè)計(jì) 164.4 1602 液晶程序設(shè)計(jì) 194.5 矩陣鍵盤程序設(shè)計(jì) 224.6 步進(jìn)電機(jī)程序設(shè)計(jì) 24第五章調(diào)試與總結(jié) 275.1 調(diào)試 275.2 總結(jié) 27致

2、謝 29參考文獻(xiàn) 30附錄 31第一章 緒論1.1 背景介紹2009年12月8日傍晚,福興地某村一位中年婦女到自家大棚上放草簾,由于沒有及時(shí)停住卷簾機(jī),導(dǎo)致繩子在鐵桿上反纏,該婦女去拉繩子時(shí),不慎被繩 子纏住圍巾,最終被勒住頸部,當(dāng)場(chǎng)死亡。1.2 相關(guān)技術(shù)的情況目前使用的溫室大棚卷簾機(jī)是靠人工送電,以達(dá)到控制卷簾機(jī)升降的目的, 存在著很大的安全隱患。卷簾機(jī)本是幫助人們干活的工具,可有時(shí)卻成了殺人工 具,而且不管溫室中是否有勞動(dòng)任務(wù),管理人員必須親自到溫室按動(dòng)按鍵實(shí)現(xiàn)卷 簾機(jī)的升降,浪費(fèi)了時(shí)間。1.3 設(shè)計(jì)的意義本設(shè)計(jì)以發(fā)送短信的方式來控制卷簾機(jī)的升降,通過遠(yuǎn)程控制,就能實(shí)現(xiàn)卷 簾機(jī)的自動(dòng)升降,

3、一方面可以有效的避免類似上述情況的發(fā)生,另一方面可減輕 管理人員的勞動(dòng)強(qiáng)度,在溫室中沒有勞動(dòng)任務(wù)的時(shí)候不必親自到溫室,僅僅為實(shí) 現(xiàn)大棚簾子的升降,節(jié)省了時(shí)間。同時(shí)本設(shè)計(jì)外加其他功能,一方面能檢測(cè)室內(nèi) 溫度,將溫度以短信的形式發(fā)給管理人員,使管理人員能夠及時(shí)準(zhǔn)確的了解溫室 內(nèi)的溫度情況,及時(shí)實(shí)現(xiàn)對(duì)溫室大棚的通風(fēng),使作物獲得適宜的生長(zhǎng)溫度,有利 于作物的生長(zhǎng);另一功能就是當(dāng)室內(nèi)溫度過低時(shí),卷簾機(jī)能夠自動(dòng)放簾,以保證 室內(nèi)基本恒溫,縮短蔬菜生長(zhǎng)周期,使蔬菜提前上市,提高經(jīng)濟(jì)效益。第二章總體設(shè)計(jì)方案溫室大棚卷簾機(jī)控制系統(tǒng)總體方案設(shè)計(jì)是根據(jù)其功能而設(shè)計(jì)的,從全局的角度,以系統(tǒng)的觀點(diǎn)而進(jìn)行整體方面的設(shè)計(jì),

4、 主要由GSM短信收發(fā)模塊、溫度顯示 模塊、矩陣鍵盤設(shè)置模塊,步進(jìn)電機(jī)模擬卷簾機(jī)模塊等組成。2.1 結(jié)構(gòu)設(shè)計(jì)按鍵設(shè)置模塊溫度檢測(cè)模塊卷簾機(jī)升降控(圖2-1總體框架結(jié)構(gòu)圖)其中AT89S52單片機(jī)作為本系統(tǒng)的主控制模塊。按鍵設(shè)置模塊可設(shè)置最低報(bào)警溫度和管理人員手機(jī)號(hào)碼。GSM模塊中的短信內(nèi)容由單片機(jī)進(jìn)行判別,如讀到升起的指令,卷簾機(jī)往上卷,若為降指令,則往下卷。同時(shí)18B20溫度傳感器將檢測(cè)到的溫度傳輸?shù)絃CD顯示,溫度一旦低于設(shè)置的值,單片機(jī)發(fā)短信給 GSM,提示管理人員降下簾子。2.2 本設(shè)計(jì)主要功能流程圖(圖2-2功能流程圖)小節(jié):本章對(duì)該設(shè)計(jì)的總體框架結(jié)構(gòu)體系設(shè)計(jì)進(jìn)行了論述,并對(duì)該設(shè)計(jì)的

5、功能 通過流程圖的形式進(jìn)行了介紹,硬件及軟件模塊的設(shè)計(jì)分別在第三章、第四章給以 介紹。PL 0PL 1P1. 2PL 3Pk4Pl.5Pl,6Pl. 7|RSTi(RXD) PM 0 tnp>pi i (ryni)P3J 2) (lNTl)P3, 31no)?3. 41 仃HPM 51ffK) P土 6|問 p"XTAL2|XTAL1W|ATB&C51VCCPA 0/ (Afttl)P(h 1/ (ADUPD. 2/ (AD2)Ph 3/ (AQ3)PQ 4/ (AD41 PO. 5/(MM)FO. 6/ (ADfa)呱 7/ (.UP) H/vpp ALE/PRO ?

6、5EnP2. 7/(A 15)P2. 6/(A14JP2. 5/CA13JP2. 4(A12)P2. 3/ia1 IiP2. 2/CA1OP2. 1/M9)P2. O/CA8)第三章硬件設(shè)計(jì)模塊溫室大棚卷簾機(jī)控制系統(tǒng)硬件模塊主要由單片機(jī)主控制模塊、GSM短信收發(fā)模塊、溫度顯示模塊、按鍵模塊、步進(jìn)電機(jī)仿卷簾機(jī)五大模塊組成。下面分別對(duì) 五大模塊進(jìn)行分析。3.1 單片機(jī)主控制模塊本模塊主要由單片機(jī)最小系統(tǒng)搭建而成,主要包括復(fù)位電路與時(shí)鐘電路兩大部分,這里單片機(jī)主要進(jìn)行計(jì)算,判斷,進(jìn)制轉(zhuǎn)換等一系列工作,也是整個(gè)系統(tǒng) 中最關(guān)鍵的部分,下面具體介紹一下單片機(jī)主控制模塊的各個(gè)組成。3.1.1 AT89S52

7、 功能簡(jiǎn)介AT89S52和AT89S51 (如圖)基本是一樣的,S52比S51多一個(gè)定時(shí)器,由 于S52的定時(shí)器2不常用,故在此我們討論S51,它是一個(gè)低功耗,高性能CMOS 8位單片機(jī),片內(nèi)含4k Bytes ISP(In-system programmable的可反復(fù)擦寫1000次的 Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳 結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器 和ISP Flash存儲(chǔ)單元,功能強(qiáng)大的微型計(jì) 算機(jī)的AT89S51可為許多嵌入式控制應(yīng) 用系統(tǒng)提供高性價(jià)比的解決方案。AT89S51具有如下特點(diǎn)

8、:40個(gè)引腳, 4k Bytes Flash片內(nèi)程序存儲(chǔ)器,128 bytes 的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外 部雙向輸入/輸出(I/O) 口,5個(gè)中斷優(yōu)先 級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定 時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。( 圖 3-1-1 AT89S51 引腳圖)3.1.2 復(fù)位電路為確保單片機(jī)系統(tǒng)中電路穩(wěn)定可靠工作,復(fù)位電路是必不可少的部分, 復(fù)位電路有上電自動(dòng)復(fù)位和按鍵復(fù)位兩種,這里采用按鍵復(fù)位。其工作電路圖(3.1.2)。3.1.3 時(shí)鐘電路時(shí)鐘電路是單片機(jī)工作的心臟,它控制著單片機(jī)的工作節(jié)奏,單片機(jī)就是通 過復(fù)雜的時(shí)序電路完成不

9、同指令功能的。時(shí)鐘的工作電路圖如(3.1.3)。CY1IIY1=CY2(圖3-1-3時(shí)鐘電路)(圖3-1-2復(fù)位電路)3.2 GSM短信收發(fā)模塊GSM短信收發(fā)的主要功能是收發(fā)短信,當(dāng)溫度低于設(shè)定的值時(shí)自動(dòng)給管理 人員發(fā)送短信,給以報(bào)警提示,同時(shí)接受管理人員回復(fù)的短信,通過單片機(jī)判斷 短信內(nèi)容,控制卷簾機(jī)的升降。3.2.1 TC35模塊簡(jiǎn)介TC35是Siemens公司推出的新 一代無線通信GSM模塊,可以快速安 全可靠地實(shí)現(xiàn)系統(tǒng)方案中的數(shù)據(jù)、語音 傳輸、短消息服務(wù)(Short Message Service)和傳真。模塊的工作電壓為3.35.5V,可以工作在900MHz和1800MHz兩個(gè)頻段,

10、所在頻段功耗分別為 2W (900M)和1W (1800M)。模塊有 AT命令集接口,支持文本和PDU模式的短消息、第三組的二類傳真、以及 2.4k, 4.8k,9.6k的非透明模式。此外,該模塊還具有電話簿功能、多方通話,漫游檢測(cè) 功能,常用工作模式有省電模式、IDLE、TALK等模式。通過獨(dú)特的40引腳的 ZIF連接器,實(shí)現(xiàn)電源連接、指令、數(shù)據(jù)、語音信號(hào)、及控制信號(hào)的雙向傳輸。通 過ZIF連接器及50Q天線連接器,可分別連接SIM卡支架和天線。3.2.2 TC35引腳極其用法簡(jiǎn)介TC35有40個(gè)引腳,114引腳為電源部分,其中I5引腳為電源電壓輸入 端VBATT+610引腳為電源地GND,

11、ll12引腳為充電端,13引腳為對(duì)外輸出 電壓(供外部電路使用),2429引腳為SIM卡連接端;3340引腳為語音接口用 來接電話手柄。15、30、31和32引腳為控制部分,15引腳為啟動(dòng)線IGT(lgnition)。 當(dāng)TC35通電后必須給IGT 一個(gè)大于100 mV的低電平,模塊才能啟動(dòng)。30引腳 為RTC BACK up ; 31引腳為掉電控制;32引腳為SYNC, 1623引腳為數(shù)據(jù)輸 入/輸出端。啟動(dòng)電路由漏極開路三極管控制。在這里,著重介紹下SYNC引腳,因?yàn)樵撘_可以很好的反映 TC35的工作 狀態(tài)。SYNC引腳可以用來輸出一個(gè)同步信號(hào)(synchronization signa

12、l),也可以在應(yīng) 用時(shí)來控制一個(gè)LED燈的輸出狀態(tài)。SYNC端通過一個(gè)三極管或門電路來控制 LED。一個(gè)簡(jiǎn)單的電路接法是:SYNC端通過一電阻接到NPN三極管(如9013)的基極,射極直接接地,集 電極通過一個(gè)接限流電阻接到 LED的負(fù)端,LED的正端接VCC。LED的工作模 式完全類同于同步信號(hào),顯示的是 TC35的工作狀態(tài):【1】LED燈滅,表示TC35電源關(guān)閉,處于休眠、報(bào)警或單純的充電模式【2 600 ms亮/ 600ms滅,表示未插入SIM卡,或者個(gè)人身份未登記/已注 銷,或者網(wǎng)絡(luò)正在搜尋中,或者正在進(jìn)行管理人員身份鑒定,或者網(wǎng)絡(luò)注冊(cè)正在 進(jìn)行中【3 75ms亮/ 3s滅,表示網(wǎng)絡(luò)注

13、冊(cè)成功(控制通道和管理人員交換信息完 成),無來電【4】LED燈亮,依據(jù)不同的呼叫類型:聲音呼叫,數(shù)據(jù)呼叫,在建立或者完 畢時(shí)的狀態(tài)。3.3溫度顯示模塊本模塊主要通過DS18B20溫度傳感器采集室內(nèi)溫度,將實(shí)時(shí)溫度顯示在LCD 液晶上,并且當(dāng)溫度低于設(shè)定溫度時(shí),將溫度值發(fā)送給管理人員,讓管理人員知 道溫室內(nèi)溫度變化。3.3.1 DS18B20溫度傳感器(1)DS18B20溫度傳感器簡(jiǎn)介DS18B20溫度傳感器是美國(guó)DALLAS半導(dǎo)體公司最新 推出的一種改進(jìn)型智能溫度傳感器,與傳統(tǒng)的熱敏電阻等測(cè)溫 元件相比,它能直接讀出被測(cè)溫度,并且可根據(jù)實(shí)際要求通過 簡(jiǎn)單的編程實(shí)現(xiàn)912位的數(shù)字值讀數(shù)方式 獨(dú)

14、特的單線接口僅需要一個(gè)端口引腳進(jìn)行通信;多個(gè)DS18B20可以并聯(lián)在惟一的三線上,實(shí)現(xiàn)多點(diǎn)組網(wǎng)功能;無須外部器件;可通過 數(shù)據(jù)線供電,電壓范圍為3.05.5V;零待機(jī)功耗。零待機(jī)功耗;溫度以9或12 位數(shù)字;管理人員可定義報(bào)警設(shè)置;報(bào)警搜索命令識(shí)別并標(biāo)志超過程序限定溫度(溫度報(bào)警條件)的器件;負(fù)電壓特性,電源極性接反時(shí),溫度計(jì)不會(huì)因發(fā)熱而 燒毀,但不能正常工作。(2)溫度檢測(cè)電路溫度檢測(cè)采用數(shù)字溫度計(jì) DS18B20。如圖(3.3.1)二 18B20ZLVCC(圖 3-3-1)332 1602 字符型LCD夜晶屏(1) LCD簡(jiǎn)介字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號(hào)等點(diǎn)陣式LC

15、D ,目前常用16*1,16*2,20*2和40*2行等的模塊。本次設(shè)計(jì)選用的是長(zhǎng)沙太陽人 電子有限公司的1602字符型液晶顯示器,下面介紹其用法。一般1602字符型液晶顯示器實(shí)物如圖3-3-2-1:(圖 3-3-2-1)引腳功能說明1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下:第1腳:VSS為地電源。第2腳:VDD接5V正電源。第3腳:VL為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地時(shí)對(duì) 比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生 鬼影”使用時(shí)可以通過一個(gè)10K的電位器調(diào)整 對(duì)比度。第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄 存器。第

16、5腳:R/W為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。 當(dāng)RS和R/W共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時(shí)可以讀忙信號(hào),當(dāng) RS為高電平R/W為低電平時(shí)可以寫入數(shù)據(jù)。第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命 令。第714腳:DOD7為8位雙向數(shù)據(jù)線第15腳:背光源正極。第16腳:背光源負(fù)極。(2)LCD顯示電路本設(shè)計(jì)液晶顯示模塊的設(shè)計(jì)如下圖(3-3-2-2)所示,該電路實(shí)現(xiàn)的功能是:通 過AT89S52的P00P07八個(gè)口輸出控制信號(hào),控制液晶的 8位雙向數(shù)據(jù)線,通 過單片機(jī)的P2.0、P2.1、P2.2向液晶模塊發(fā)送命令

17、,控制液晶執(zhí)行各種命令,其 中P2.2控制液晶的使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令, P2.1控制液晶模塊的讀寫,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。當(dāng)P2.0和P2.1共同為低電平時(shí)可以寫入指令或者顯示地址,當(dāng)P2.0為低電平P2.1為高電平時(shí)可以讀忙信號(hào),當(dāng)P2.0為高電平P2.1為低電平時(shí)可以寫入數(shù)據(jù),P2.0控制 寄存器的選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。(圖 3-3-2-2)3.4矩陣鍵盤模塊矩陣鍵盤主要用來對(duì)最低溫度和管理人員手機(jī)號(hào)碼的設(shè)置,可以隨時(shí)改變數(shù) 值,更符合實(shí)際生產(chǎn)的要求。3.4.14X4矩陣鍵盤的工作原理矩陣鍵盤又稱為行列式鍵

18、盤,它是用 4條I/O線作為行線,4條I/O線作為列 線組成的鍵盤。在行線和列線的每一個(gè)交叉點(diǎn)上,設(shè)置一個(gè)按鍵。這樣鍵盤中按 鍵的個(gè)數(shù)是4X4個(gè)。這種行列式鍵盤結(jié)構(gòu)能夠有效地提高單片機(jī)系統(tǒng)中I/O 口的利用率。3.4.2 鍵盤電路設(shè)計(jì)矩陣鍵盤引腳接法及其電路圖3-4-2:soS1P2.0J°°L °1S4S5S60AP2.11VWS8P2.2J一°'S9jQ<S10J0 o.rS12(OO1P2.3S13j°°'S14JOO<P2.4P2.5P2.6S2P2.7S3o S7Q 0S11"S153_

19、1(圖 3-4-2)3.5步進(jìn)電機(jī)仿卷簾機(jī)模塊現(xiàn)實(shí)生活中本模塊是卷簾機(jī)控制,卷簾機(jī)主要由直流電機(jī)和減速器組成。本設(shè)計(jì)用二相四線步進(jìn)電機(jī)模擬卷簾機(jī)的升降。3.5.1 步進(jìn)電機(jī)的工作原理步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一 個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一個(gè)固定的角度(稱為步距角”)它的旋轉(zhuǎn)是以固定的角度一步一步運(yùn)行的??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制 角位移量,從而達(dá)到準(zhǔn)確定位的目的,同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn) 動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電機(jī)可以作為一種控制用的特種電機(jī),利用其沒有積累誤差(精度為100%)的特點(diǎn),廣泛應(yīng)用于各種開環(huán)

20、控制?,F(xiàn)在比較常用的步進(jìn)電機(jī)包括反應(yīng)式步進(jìn)電機(jī) (VR)、永磁式步進(jìn)電機(jī)(PM )、混合式步進(jìn)電機(jī)(HB)和單相式步進(jìn)電機(jī)等。3.5.2 步進(jìn)電機(jī)模擬卷簾機(jī)的設(shè)計(jì)本設(shè)計(jì)步進(jìn)電機(jī)及驅(qū)動(dòng)器模塊設(shè)計(jì)的電路如圖所示, VCC接12V電源,GND 接地,A+、A-,B+、B-分別連接步進(jìn)電機(jī)的四根接線, CP+、CP-、CW+、CW- 分別連接單片機(jī) P10-P13 口。該電路實(shí)現(xiàn)的功能是:通過 AT89S51的P10、P11、P12、P13四個(gè)口輸出四 個(gè)信號(hào),其中P10、P12 口輸出控制水平方向和垂直方向脈沖的個(gè)數(shù),即兩個(gè)方 向上的位移量;P11、P13 口控制步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)方向,即正反轉(zhuǎn)??刂七^

21、程為:?jiǎn)纹瑱C(jī)接受鍵盤傳來的信號(hào),通過P1的四個(gè)口輸出控制信號(hào),1JT通過硬件接線,發(fā)送到步進(jìn)電機(jī)的驅(qū)動(dòng)器,通過驅(qū)動(dòng)器控制步進(jìn)電機(jī)的轉(zhuǎn)向和轉(zhuǎn) 角。當(dāng)然,其中還包括單片機(jī)的內(nèi)部振蕩電路,驅(qū)動(dòng)器匹配的電路等的設(shè)計(jì)。51A47PIOPL1pP1214FLJwc G1TDA+ A- 時(shí) B-CIH- CP- CV+A B c D(圖3-5-2)步進(jìn)電機(jī)及驅(qū)動(dòng)器模塊設(shè)計(jì)電路圖引腳功能說明P10、P12 (1、3腳):接步進(jìn)驅(qū)動(dòng)器,傳遞脈沖個(gè)數(shù);P11、P13 (2、4腳):控制電機(jī)的轉(zhuǎn)動(dòng)方向;小節(jié):本章節(jié)對(duì)單片機(jī)主控制模塊、GSM短信收發(fā)模塊、溫度顯示模塊、按鍵 模塊、步進(jìn)電機(jī)仿卷簾機(jī)模塊分別進(jìn)行了介紹,

22、里面對(duì)各模塊的重點(diǎn),難點(diǎn)及注 意點(diǎn)進(jìn)行了很仔細(xì)的分析與講解。第四章 軟件設(shè)計(jì)溫室大棚卷簾機(jī)控制系統(tǒng)軟件設(shè)計(jì)主要由GSM短信模塊程序設(shè)計(jì),DS18B20程序設(shè)計(jì),1602液晶程序設(shè)計(jì),矩陣鍵盤程序設(shè)計(jì)及步進(jìn)電機(jī)程序組成。每一模 塊都是先單獨(dú)調(diào)試,最后整體調(diào)試的。下面分別介紹一下各模塊的程序設(shè)計(jì)過程 及注意點(diǎn)。4.1 程序設(shè)計(jì)總流程圖1櫃晶忌示按下/n誡»2,咚WE虻數(shù)值謝、xjY電機(jī)待¥x r_丫 Y正彷(圖4-1功能流程圖)4.2 GSM短信模塊程序設(shè)計(jì)GSM模塊與手機(jī)之間的通信協(xié)議是一些AT指令集,AT指令是以AT作首,字符結(jié)束的字符串,AT指令的響應(yīng)數(shù)據(jù)包在中。每個(gè)指令

23、執(zhí)行成功與否都有相應(yīng)的返回。所以本模塊的程序設(shè)計(jì)主要以發(fā)送AT指令為著手點(diǎn)。用AT命令設(shè)置TC35的參數(shù)時(shí),必須先要將命令寫入串口,然后通過讀取 串口的應(yīng)答數(shù)據(jù)來判斷是否成功。一般 AT命令發(fā)送成功時(shí),會(huì)返回?cái)?shù)據(jù) “0K" 表示AT命令執(zhí)行成功。在短消息模塊設(shè)計(jì)的過程中,對(duì)于 TC35的相關(guān)參數(shù)要進(jìn) 行設(shè)置。具體應(yīng)用到的AT指令如下:(1) 設(shè)置發(fā)送模式短消息收發(fā)時(shí),必須要用 AT命令設(shè)置TC35的發(fā)送和接收模式。在收發(fā)短 消息時(shí),必須按照設(shè)置的模式對(duì)發(fā)送和接收的數(shù)據(jù)進(jìn)行相應(yīng)編碼和解碼。其中, 設(shè)置PDU模式的命令為“AT+CMGF=1回車。(2) 設(shè)置服務(wù)中心號(hào)碼根據(jù)前面介紹短消息

24、收發(fā)技術(shù)原理,短消息的傳輸總是由處于GSM外部的短消息服務(wù)中心進(jìn)行中繼。每個(gè)消息有自己的目的地或起源地,但只與用戶和 SMSC有關(guān),因此要根據(jù)SIM卡的營(yíng)運(yùn)商設(shè)置相應(yīng)的服務(wù)中心。如設(shè)置徐州聯(lián)通 公司服務(wù)中心的命令是,“AT+CSCA=008613010350500 回車“(3) 短消息發(fā)送在短消息發(fā)送時(shí),使用以下命令將短信發(fā)出去:at+ cmgf = 1 回車at+ csmp= 17, 167,0, 0 回車at+ cscs= gsm 回車at+ cmgs =手機(jī)號(hào)碼回車輸入短信內(nèi)容text格式+(注:“” ASCI值為 26,即 1AH )發(fā)送短信子程序如下:;發(fā)送短信程序MAIN: MOV

25、 SP,#53HMOV 78H,#20HMOV 77H,#00HMOV 76H,#20HMOV 75H,#40HACALL TRANSSJMP $TRANS: MOV SBUF ,78HWAT1: JNB TI,WAT1CLR TIMOV SBUF ,77HWAT2: JNB TI,WAT2CLR TIMOV SBUF ,76HWAT3: JNB TI,WAT3CLR TIMOV SBUF ,75HWAT4: JNB TI,WAT4CLR TIMOV IE,#90HMOV DPH,78HMOV DPL,77HMOVX A,DPTRMOV SBUF,AWAIT: JNB F0,WAITRETCO

26、M_INT: CLR TI;設(shè)置堆棧指針;設(shè)置要發(fā)送的數(shù)據(jù)塊的首末地址;調(diào)用發(fā)送子程序;發(fā)送地址高8位;發(fā)送地址低8位;發(fā)送地址高8位;發(fā)送地址低8位打開中斷允許寄存器,采用中斷方式發(fā)送數(shù)據(jù);發(fā)送首個(gè)數(shù)據(jù)INC DPTR;關(guān)發(fā)送中斷標(biāo)志位TI;數(shù)據(jù)指針加1,準(zhǔn)備發(fā)送下一個(gè)數(shù)據(jù)MOV A,DPH;判斷當(dāng)前被發(fā)送的數(shù)據(jù)地址是不是末地CJNE A,76H,END1;不是末地址則跳轉(zhuǎn)MOV A,DPLCJNE A,75H,END1SETE FOCLR ESCLR EARETIEND1: MOVX A,DPTRMOV SBUF,ARETI4.3 DS18B20 程序設(shè)計(jì);數(shù)據(jù)發(fā)送完畢,置1標(biāo)志位;關(guān)串行

27、口中斷;關(guān)中斷;中斷返回;將要發(fā)送的數(shù)據(jù)送累加器,準(zhǔn)備發(fā)送;發(fā)送數(shù)據(jù);中斷返回DS18B20溫度傳感器是DALLAS公司生產(chǎn)的單總線器件,在一根線上進(jìn)行全 部的信息傳輸,因?yàn)橛布?jiǎn)單,所以軟件設(shè)計(jì)相對(duì)麻煩,對(duì)時(shí)序掌控精度要求較 高。431寫18B20程序設(shè)計(jì)主機(jī)要生存一個(gè)寫時(shí)間隙,必須把數(shù)據(jù)線拉低到低電平然后釋放,寫時(shí)間間 隙開始后的15us內(nèi)允許數(shù)據(jù)線拉倒高電平。主機(jī)要生成一個(gè)寫0間隙,必須把數(shù)據(jù)線拉低電平并保持60us,如圖431所示。VCC單纏魁錢GND寫18b20子程序的匯編程序如下:;一共8位數(shù)據(jù);寫DS18B2啲子程序(有具體的時(shí)序要求)WRITE_1820:MOV R2,#8CL

28、RCWR1:CLR DQ432MOVR3, #6DJNZR3, $RRCAMOVDQ, CMOVR3,#23DJNZR3,$SETBDQNOPDJNZR2,WR1SETBDQRET讀18B20程序設(shè)計(jì)主機(jī)生成讀時(shí)間間隙,從ds18b20輸出的數(shù)據(jù)在讀間隙的下降沿出現(xiàn)的15us內(nèi)有效,因此主機(jī)停止I/O 口的操作,以讀取I/O 口的值,如圖432所示。讀18b20子程序的匯編程序如下:讀DS18B20的程序READ_18200:MOV R4,#2;將溫度高位和低位從 DS18B20中讀出MOVR1,#TEMPER_L ;低位存入 TEMPER_L(TEMPER_L);高位存入(TEMPER_H)

29、RE00:MOV R2,#8; 數(shù)據(jù)一共有 8 位RE01:CLR CSETB DQNOPNOPCLR DQNOPNOPNOPSETB DQMOV R3,#9RE10: DJNZ R3,RE10MOVC,DQMOVR3,#23RE20: DJNZ R3,RE20RRCADJNZR2,RE01MOVR1,ADECR1DJNZR4,RE00單線總線的空閑狀態(tài)是高電平。無論任何理由需要暫停某一執(zhí)行過程時(shí),如果 還想恢復(fù)執(zhí)行的話,總線必須停留在空閑狀態(tài)。在恢復(fù)期間,如果單線總線處于 非活動(dòng)(高電平)狀態(tài),位與位間的回復(fù)時(shí)間可以無限長(zhǎng)。如果總線停留在低電 平超過480us,總線上所有的器件都將復(fù)位。執(zhí)行

30、序列通過單線總線端口訪問 DS18B20的協(xié)議流程圖如下:-幵始-:初始化:尺5!操作命令r存儲(chǔ)器操作命令:Cr:執(zhí)行/數(shù)據(jù)E(圖4-3-2協(xié)議流程圖)4.4 1602液晶程序設(shè)計(jì)液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊 的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字 符地址,也就是告訴模塊在哪里顯示字符,圖 4.4是1602的內(nèi)部顯示地址。LCD16字)(2行0002030405060708090A0B0C0D0E0F102740'|41424344454748494A4B4C4D4E4F5067例如第二行第一個(gè)字符的地址是 40H,

31、那么是否直接寫入40H就可以將光標(biāo)定位 在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是 01000000B(40H)+10000000B(80H)=11000000B(C0H)。4.4.1 1602初始化的程序設(shè)計(jì)在對(duì)液晶模塊的初始化中要先設(shè)置其顯示模式,在液晶模塊顯示字符時(shí)光 標(biāo)是自動(dòng)右移的,無需人工干預(yù)。每次輸入指令前都要判斷液晶模塊是否處于忙 的狀態(tài)。1602LCD的 一般初始化(復(fù)位)過程延時(shí)15mS寫指令38H (不檢測(cè)忙信號(hào))延時(shí)5mS寫指令38H (不檢測(cè)忙信號(hào))延時(shí)5mS寫指令38H (不檢測(cè)忙信號(hào))以后每次寫指令、

32、讀/寫數(shù)據(jù)操作均需要檢測(cè)忙信號(hào)寫指令38H:顯示模式設(shè)置寫指令08H:顯示關(guān)閉寫指令01H :顯示清屏寫指令06H:顯示光標(biāo)移動(dòng)設(shè)置寫指令0CH:顯示開及光標(biāo)設(shè)置 液晶初始化程序:初始化INIT:MOV A,#38H;#38H->ALCALL WIR調(diào)寫IR子程序MOV A,#0EH;#0EH->A(顯示開,光標(biāo)開,光標(biāo)閃爍)LCALL WIR調(diào)寫IR子程序MOV A,#06H;#06H->A442 1602寫指令與數(shù)據(jù)的程序設(shè)計(jì)因?yàn)楸驹O(shè)計(jì)是顯示溫度值,所以不要讀數(shù)據(jù),只需寫入指令與數(shù)據(jù)即可。下 面著重介紹一下1602寫指令及數(shù)據(jù)的時(shí)序特點(diǎn);如圖4-4-2是1602寫操作時(shí)序

33、(圖4-4-2時(shí)序圖)按照?qǐng)D4.4.2時(shí)序?qū)懼噶罴皵?shù)據(jù)程序如下:7;寫指令7WIR: ACALL CKLCD ;調(diào)查空閑子程序CLR E;E清0CLR RS;RS清0CLR RW;RW清0SETB E;E置1MOV P0,A;A->P0CLR E;E清0寫數(shù)據(jù)WDR: ACALL CKLCD ;調(diào)查空閑子程序CLR E;E清0SETB RS;RS置1CLR RW;RW清0SETB E;E置1MOV P0,A;A->P0CLR E;E清0RET5返回4.5 矩陣鍵盤程序設(shè)計(jì)矩陣鍵盤又稱為行列式鍵盤,它是用 4條I/O線作為行線,4條I/O線作為 列線組成的鍵盤。本模塊設(shè)計(jì)是先讀取鍵盤

34、的狀態(tài),然后得到按鍵的特征編碼, 再而讓液晶顯示。下面介紹一下鍵盤掃描的過程。先從P2 口的高四位輸出低電平,低四位輸出高電平,從P2 口的低四位讀取鍵盤狀態(tài)。再從P2 口的低四位輸出低電平,高四位輸出高電平,從P2 口的高四位讀取鍵盤狀態(tài)。將兩次讀取結(jié)果組合起來就可以得到當(dāng)前按鍵的特征編碼。使 用上述方法我們得到16個(gè)鍵的特征編碼。舉例說明如何得到按鍵的特征編碼:假設(shè)“ 1鍵被按下,找其按鍵的特征編碼。從P2 口的高四位輸出低電平,即 P2.4- P2.7為輸出口。低四位輸出高電平, 即P2.0- P2.3為輸入口。讀P2 口的低四位狀態(tài)為“ 1101,”其值為“0DH。再從P2 口的高四位

35、輸出高電平,即P2.4- P2.7為輸入口。低四位輸出低電平, 即P2.0- P2.3為輸出口,讀P2 口的高四位狀態(tài)為“ 1110'其值為“E0H。將兩次讀出的 P2 口狀態(tài)值進(jìn)行邏輯或運(yùn)算就得到其按鍵的特征編碼為“ EDH。按鍵掃描子程序KEY_SCAN;MOV P2,#0F0H;MOV A,P2;ANL A,#0F0H;MOV B,A;MOV P2,#0FH;MOV A,P2;ANL A,#0FH;ORL A,B;CJNE A,#0FFH,KEY_IN1 ;0FFHRETKEY_IN1:;MOV B,A;MOV DPTR,#KEYTABLEMOV R3,#0FFHKEY_IN2:

36、INC R3;MOV A,R3MOVC A,A+DPTR ;CJNE A,B,KEY_IN3 ;MOV A,R3;MOV 30H,A;RETKEY_IN3:CJNE A,#00H,KEY_IN2 ;RET;00H識(shí)別鍵盤有無鍵按下子程序置列線為0,行線為1讀P2 口取出高四位暫存到B置列線為1,行線為0讀P1 口取出低四位高四位與低四位邏輯或運(yùn)算重新組合為無按鍵按下識(shí)別具體按鍵值子程序?qū)存I的特征編碼暫存于B順序碼加1查表比較,若相同則找到按鍵的特征編碼。找到特征編碼后,取順序碼存入30H單元末完,繼續(xù)查為結(jié)束碼KEY TABLE:DB0EEH,0EDH,0EBH,0E7H,0DEH;0,1,

37、2,3,4,順序碼DB0DDH,0DBH,0D7H,0BEH,0BDH;5,6,7,8,9,順序碼DB0BBH,0B7H,07EH,07DH,07BH, 077H;A,B,C,D,E,F順序碼DB00H;結(jié)束碼4.6步進(jìn)電機(jī)程序設(shè)計(jì)步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu)。通俗一點(diǎn)講: 當(dāng)步進(jìn)驅(qū)動(dòng)器接收到一個(gè)脈沖信號(hào),它就驅(qū)動(dòng)步進(jìn)電機(jī)按設(shè)定的方向轉(zhuǎn)動(dòng)一 個(gè)固定的角度(及步進(jìn)角)??梢酝ㄟ^控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá) 到準(zhǔn)確定位的目的;同時(shí)還可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和 加速度,從而達(dá)到調(diào)速的目的。所以在軟件編寫時(shí)一定要注意步進(jìn)電機(jī)時(shí)序 的變化,時(shí)序圖如圖(4-6)135

38、71357135713.nnnjinnnnnnnnnjLA I I I I I |B "C Dkiii(圖4-6步進(jìn)電機(jī)時(shí)序圖)7;步進(jìn)電機(jī)子程序?MOTO: MOV SP,50HSTOP: MOV P1,#0FFH ; 步進(jìn)電機(jī)停轉(zhuǎn)LOOP: JNB K1,MZZ2 ; 是否K1按下,是則轉(zhuǎn)正轉(zhuǎn)模塊JNB K2,MFZ2 ;是否K2按下,是則轉(zhuǎn)反轉(zhuǎn)模塊JNB K3,STOP1 ;是否K3按下,是則轉(zhuǎn)步進(jìn)電機(jī)停轉(zhuǎn)JMP LOOP ;STOP1: ACALL DELAYJNB K3,$;K3ACALL DELAY ;JMP STOP ;MZZ2: ACALL DELAYJNB K1,$

39、;K1ACALL DELAY ;JMP MZZ ;MFZ2: ACALL DELAYJNB K2,$;K2ACALL DELAY ;JMP MFZ ;MZZ: MOV R0,#00HMZZ1: MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ MZZ;MOV P1,A ;JNB K3,STOP1 ;JNB K2,MFZ2 ;ACALL DELAYINC R0;JMP MZZ1RETMFZ: MOV R0,#05MFZ1: MOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRJZ MFZ;循環(huán)按K3鍵,消除抖動(dòng)放開否?放開消除抖動(dòng)步進(jìn)電機(jī)停轉(zhuǎn)按K1

40、鍵,消除抖動(dòng)放開否?放開消除抖動(dòng)轉(zhuǎn)步進(jìn)電機(jī)正轉(zhuǎn)模塊按K2鍵,消除抖動(dòng)放開否?放開消除抖動(dòng)轉(zhuǎn)步進(jìn)電機(jī)反轉(zhuǎn)模塊置表初值表扌旨針取表代碼是否取到結(jié)束碼?從P1輸出,正轉(zhuǎn)是否K3按下,是則轉(zhuǎn)步進(jìn)電機(jī)停轉(zhuǎn)是否K2按下,是則轉(zhuǎn)反轉(zhuǎn)模塊 步進(jìn)電機(jī)轉(zhuǎn)速取下一個(gè)碼反轉(zhuǎn)到TABLE表初值表扌旨針取表代碼是否取到結(jié)束碼?MOV P1,A;JNB K3,STOP1;JNB K1,MZZ2 ;ACALL DELAY;INC RO;JMP MFZ1RETTABLE: DB 0F1H,0F3H,0F2H,0F6H;DB 0F4H,0FCH,0F8H,0F9H;DB 00H;DB 0F1H,0F9H,0F8H,0FCH;DB

41、 0F4H,0F6H,0F2H,0F3H;從P1輸出,反轉(zhuǎn)是否K3按下,是則轉(zhuǎn)步進(jìn)電機(jī)停轉(zhuǎn)是否K1按下,是則轉(zhuǎn)正轉(zhuǎn)模塊步進(jìn)電機(jī)轉(zhuǎn)速取下一個(gè)碼;正轉(zhuǎn);正轉(zhuǎn)結(jié)束碼;反轉(zhuǎn)DB 00H;反轉(zhuǎn)結(jié)束碼小節(jié):本章節(jié)對(duì)各模塊的軟件編程進(jìn)行了介紹,其中很詳細(xì)的分析了各模塊的 時(shí)序,將時(shí)序與程序一一對(duì)應(yīng)著分析了模塊的工作過程。第五章調(diào)試與總結(jié)5.1 調(diào)試單片機(jī)系統(tǒng)的軟件調(diào)試與硬件調(diào)試是分不開的,許多硬件錯(cuò)誤是在軟件調(diào) 試中被發(fā)現(xiàn)和糾正的,但是硬件調(diào)試是基礎(chǔ),若硬件調(diào)試不過關(guān),軟件調(diào)試無從 談起,所以我是先排除明顯的硬件錯(cuò)誤,然后再軟硬兼顧,逐步排除錯(cuò)誤。本設(shè)計(jì)主要有GSM短信收發(fā)模塊、溫度顯示模塊、按鍵設(shè)置模塊,

42、步進(jìn)電機(jī)模擬卷簾機(jī)模塊,我是對(duì)上述模塊分別測(cè)試,然后再組裝起來的,同樣程序也 是如此,這樣便于問題的查找和以后的維護(hù)。F面講述一下我調(diào)試過程中遇到的比較苦惱的問題:(1) GSM莫塊設(shè)計(jì)時(shí)主要遇到的問題是無法啟動(dòng), 按照TC35的中文說明接線, 反復(fù)實(shí)驗(yàn),還是無法達(dá)到75ms亮/3s火的啟動(dòng)效果,最后還是看英文資料, 才知道是電壓的問題,雖然在這一模塊設(shè)計(jì)時(shí)花了很多時(shí)間,走了不少彎路,可 是也從中學(xué)到不少東西。(2) 溫度顯示模塊最主要的問題是 DS18B20和1602的時(shí)序(具體時(shí)序極其程 序已第四章中仔細(xì)講解),一定要嚴(yán)格按照它們的時(shí)序來編寫,不然一定會(huì)出錯(cuò)。(3) 按鍵設(shè)置模塊是一個(gè)穩(wěn)定

43、性的問題,你按下一個(gè)按鍵,液晶屏上有時(shí)不 顯示任何數(shù)字,有時(shí)一下子會(huì)顯示兩三個(gè)數(shù)字,原因在于我沒加消除抖動(dòng)的指令, 經(jīng)修改之后,穩(wěn)定性相對(duì)來說大大提高。5.2 總結(jié)此設(shè)計(jì)是本人設(shè)計(jì)的最復(fù)雜的一個(gè)項(xiàng)目,思路源于生活,特別具有實(shí)用價(jià)值。 這也是第一次嘗試將多個(gè)獨(dú)立的模塊集成在一起,實(shí)現(xiàn)一個(gè)整體的功能,對(duì)我來 說是一次極大的挑戰(zhàn),也是一次極佳的鍛煉機(jī)會(huì)。最后同大家分享一下我編寫程序時(shí)的一些經(jīng)驗(yàn)。首先程序要分割編寫,對(duì)于一個(gè)大的軟件開發(fā),如果不分割編寫,實(shí)現(xiàn)的難 度在設(shè)計(jì)初期表現(xiàn)并不明顯,到了后期這種設(shè)計(jì)引起的問題會(huì)越來越明顯,此時(shí) 不斷地修改,不斷地調(diào)整,可能還是無濟(jì)于事,最終導(dǎo)致失敗。因而在設(shè)計(jì)的

44、初 期就要對(duì)整體做好把握,各部分功能進(jìn)行合理的切割,即使某一方面出了問題,也可以在其內(nèi)部解決掉而不要牽扯到其他的內(nèi)容。實(shí)現(xiàn)彼此之間盡量互不干預(yù)其次,程序一定要注意隨時(shí)添加注釋,一個(gè)注釋清晰的程序可以使一個(gè)原 本對(duì)此段程序不了解的人員很快的了解程序的功能和結(jié)構(gòu)。這一點(diǎn)對(duì)于程序設(shè)計(jì) 者本身也是很重要的,一個(gè)大的軟件設(shè)計(jì)周期可能很長(zhǎng),當(dāng)設(shè)計(jì)者在設(shè)計(jì)后期再 回頭看最初設(shè)計(jì)的東西時(shí),如果注釋不清楚則會(huì)花費(fèi)很長(zhǎng)時(shí)間去重新來了解自己 編寫的程序,既費(fèi)精力又費(fèi)時(shí)間,事倍功半,得不償失。在畢業(yè)設(shè)計(jì)即將完成之際,回顧緊張而又充實(shí)的學(xué)習(xí)開發(fā)過程,賀老師給我 提出了好多寶貴的意見并得到他的悉心指導(dǎo),同時(shí),在設(shè)計(jì)中我從賀老師身上學(xué) 到了很多的東西。賀老師認(rèn)真負(fù)責(zé)的工作態(tài)度,他無論在理論上還是在實(shí)踐中, 都給予我很大的幫助,使我得到不少提高,這對(duì)于我無論是今后的工作還是學(xué)習(xí) 都是一種巨大的幫助,在此感謝他細(xì)心而又耐心的輔導(dǎo)。通過本次畢業(yè)設(shè)計(jì),更加鞏固了一個(gè)月以來所學(xué)知識(shí)。增強(qiáng)了動(dòng)手能力。在論文即將完成之際,我的心情無法平靜,從開始進(jìn)入課題到論文的順利完 成,有多少可敬的師長(zhǎng)、同學(xué)、朋友給了我無言的幫助,在這里請(qǐng)接受我誠(chéng)摯的 謝意!在這次學(xué)習(xí)過程中,賀老師一直在學(xué)業(yè)等各方面給予我關(guān)心與指導(dǎo),使我能 夠順利地完成畢業(yè)論文,我所取得的每一點(diǎn)進(jìn)步都凝聚著賀老師辛勤的

溫馨提示

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

評(píng)論

0/150

提交評(píng)論