交通燈遠(yuǎn)程控制器軟件設(shè)計_第1頁
交通燈遠(yuǎn)程控制器軟件設(shè)計_第2頁
交通燈遠(yuǎn)程控制器軟件設(shè)計_第3頁
交通燈遠(yuǎn)程控制器軟件設(shè)計_第4頁
交通燈遠(yuǎn)程控制器軟件設(shè)計_第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、交通燈遠(yuǎn)程控制器軟件設(shè)計the traffic lightc remote controller software design摘要全國各地機動車保有量急速上升,交通擁堵狀況也是日趨嚴(yán)重,舊的交通燈管理手段由于其單一性的劣勢愈發(fā)顯現(xiàn),對于能夠及時處理道路突發(fā)狀況的新一代交通管理方式的要求不斷增強。道路口交通擁堵狀況越來越嚴(yán)重,若沒有一個完善的系統(tǒng)來維持秩序,那么必然會造成極大的混亂,所以紅綠燈交通控制應(yīng)運而生,但是隨著社會的不斷發(fā)展、技術(shù)的不斷進(jìn)步和更新,以及機動車的不斷增多,城市交通管理也凸顯出越來越多的問題,因此對于新一代的交通管理方式交通燈遠(yuǎn)程管理系統(tǒng)的需求愈演愈烈。本系統(tǒng)采用msc-5

2、1系列單片機at89s51、sim卡座以及tc35i芯片來設(shè)計遠(yuǎn)程控制器,實現(xiàn)了控制中心能根據(jù)實際情況通過短信的方式發(fā)送不同的命令能設(shè)置兩個方向紅、綠燈點亮?xí)r間的功能和兩個方向的通信狀況;本系統(tǒng)的操作相對簡單、實用性能優(yōu)秀、擴展功能優(yōu)良。關(guān)鍵詞 交通燈;遠(yuǎn)程控制器;單片機;gsmabstractcountry rapid rise of motor vehicles, traffic congestion is worsening, the old traffic lights management tool because of its increasingly apparent disad

3、vantage of unity, for the timely handling unexpected situations road traffic management requirements of the new generation growing .mouth road traffic congestion is getting worse, if not a perfect system to maintain order, then inevitably cause great confusion, so traffic control lights came into be

4、ing, but with the continuous development of society, technology continues to progress and updates, as well as the growing number of motor vehicles, urban traffic management also highlights the growing number of problems, so for a new generation of traffic management - traffic lights remote managemen

5、t system needs intensified.the system uses the msc-51 series single-chip at89s51, sim card connector, and remote controller tc35i chip design to achieve a control center according to the actual situation be sent via sms commands can be set to two different directions of red, green lighting time func

6、tions and communication status in both directions; operation of this system is relatively simple, practical performance excellent excellent extension.keywords tcaffic lights;remote controller;scm;目錄第1章 緒論11.1 交通燈遠(yuǎn)程控制器課題來源11.2 交通燈遠(yuǎn)程控制器的基本思路11.3 交通燈遠(yuǎn)程控制器采用的方法1第2章 元件簡介22.1 單片機簡介22.2 at89c51簡介22.2.1 管腳描

7、述22.2.2 芯片擦除42.2.3 串口通訊42.2.4 scon介紹52.2.5 主要引腳功能92.3 74ls373簡介92.3.1 引腳功能簡介102.3.2 74ls373功能表102.4 tc35i簡介102.4.1 tc35i模塊的主要技術(shù)指標(biāo)102.4.2 tc35i模塊的硬件接口112.4.3 與短消息相關(guān)連的gsm at指令介紹11第3章 設(shè)計基本要求和步驟133.1 基本要求133.2 設(shè)計步驟13第4章 硬件和軟件設(shè)計144.1 硬件電路圖144.1.1 交通燈遠(yuǎn)程控制電路全圖144.2 各模塊電路介紹144.2.1 at89c51主模塊電路144.2.2 串口模塊電路

8、154.2.3 gsm控制模塊電路164.2.4 顯示模塊電路164.3 程序流程圖174.3.1 主程序流程圖174.3.2 運行過程流程圖174.3.3 p0、p1口顯示狀態(tài)編碼表184.4 軟件設(shè)計194.4.1 gsm信息接收模塊程序部分代碼194.4.2 顯示模塊程序部分代碼20總結(jié)22致謝23參考文獻(xiàn)24附錄一25附錄二26附錄三28附錄四29第1章 緒論全國各地機動車保有量急速上升,交通擁堵狀況也是日趨嚴(yán)重,舊的交通燈管理手段由于其單一性的劣勢愈發(fā)顯現(xiàn),對于能夠及時處理道路突發(fā)狀況的新一代交通管理方式的要求不斷增強。1.1 交通燈遠(yuǎn)程控制器課題來源現(xiàn)代社會由于交通狀況的改變,交通

9、控制手段也需要不斷升級與更新,才能適應(yīng)社會的發(fā)展。因此交通燈遠(yuǎn)程控制器的課題也隨著技術(shù)的不斷發(fā)展實時的提了出來。交通燈遠(yuǎn)程控制器的主要研究內(nèi)容根據(jù)現(xiàn)有的交通狀況和成熟的遠(yuǎn)程控制技術(shù),以及適應(yīng)未來技術(shù)的發(fā)展,而設(shè)計一個新的交通燈遠(yuǎn)程控制器來實現(xiàn)交通的遠(yuǎn)程控制是適應(yīng)社會發(fā)展要求的。交通燈遠(yuǎn)程控制器的主要研究內(nèi)容:gsm網(wǎng)絡(luò)、at命令發(fā)送、紅綠燈現(xiàn)場控制組合以及線路配置。1.2 交通燈遠(yuǎn)程控制器的基本思路對新一代的交通燈遠(yuǎn)程控制器而言,主要的特別之處在于,通過成熟的gsm網(wǎng)絡(luò)控制區(qū)域的交通燈狀況,實現(xiàn)實時監(jiān)控和實時控制的完美組合,解決人手不足以及資源浪費等問題。1.3 交通燈遠(yuǎn)程控制器采用的方法根據(jù)

10、交通燈控制的發(fā)展,本設(shè)計主要依據(jù)智能化管理、集成實用化性能燈要求依托現(xiàn)今發(fā)展成熟的單片機為中心,同時以現(xiàn)有的gsm網(wǎng)絡(luò),實現(xiàn)道路口的交通燈遠(yuǎn)程控制,使其能夠達(dá)到在遠(yuǎn)程控制在同行過程中道路上發(fā)生的特殊情況。第2章 元件簡介2.1 單片機簡介單片機又可以稱單片微控制器,它不是僅僅完成某某個邏輯功能的一個芯片,而是把計算機系統(tǒng)集成到了一個芯片上。單片機主要由運算器、控制器、存儲器、輸入輸出設(shè)備等構(gòu)成,相當(dāng)于一個微型計算機;和計算機相比較,單片機就是一個缺少了外圍設(shè)備的計算機。概括講:一塊芯片就成為了一臺計算機。它的體積較小、質(zhì)量較輕、價格相對便宜、為學(xué)習(xí)應(yīng)用和開發(fā)提供了相當(dāng)?shù)谋憷麠l件。2.2 at8

11、9c51簡介at89c51是一個帶著4k字節(jié)flash存儲器的具有低電壓的、高性能的cmos,8位微型處理器,又俗稱單片機。2.2.1 管腳描述 at89c51引腳圖如圖2-1 所示:圖2-1 at89c51引腳圖vcc(40腳):電源端,為+5v。vss(20腳):接地端。p0口引腳:是一個具有8位漏極開路型的雙向功能i/0口,也就是地址/數(shù)據(jù)的總線復(fù)用端口,在本設(shè)計中,主要用作顯示交通燈交通狀況的顯示端口使用。p1口引腳:是一個具有內(nèi)部上拉方式電阻的8位雙向i/o端口,在本設(shè)計中主要用作顯示交通燈剩余時間的顯示端口使用。p2口引腳:是一個具有內(nèi)部上拉方式電阻的8 位雙向i/o端口,在本設(shè)計

12、為了控制數(shù)碼管的掃描顯示,主要用作數(shù)碼管位選和段選信號使用。p3口引腳:是一個具有內(nèi)部上拉電阻的8 位雙向i/0端口,在本設(shè)計為了實現(xiàn)tc35i的遠(yuǎn)程控制功能,主要通過rxd與txd管腳實現(xiàn)數(shù)據(jù)的傳輸以達(dá)到遠(yuǎn)程控制的功能。rst/vp(9腳):復(fù)位信號輸入端,當(dāng)高電平時有效。rst引腳的第二功能是vp,即是備用電源。ale(30腳):程序存儲允許輸出信號端,當(dāng)單片機正常工作后,ale引腳向外不斷輸出正脈沖信號作為編程脈沖的輸入端口。(29腳):程序存儲允許輸出信號端,當(dāng)在使用外部存儲器的時候,此端定時輸出負(fù)脈沖作為讀偏外存儲器的選通信號。vpp(31腳):外部程序存儲器地址允許輸入端口/固定化

13、編程電壓輸入端口。當(dāng)該端口輸入信號為低電平的時候,只訪問外部程序存儲器的指令;當(dāng)該端口輸入信號為高電平的時候,只訪問內(nèi)部程序存儲器的指令。xtal1:是內(nèi)部振蕩電路反向方大的輸入端口。xtal2:是內(nèi)部振蕩電路反向方大的輸出端口。2.2.2 芯片擦除總所周知,對于eprom的芯片,具有可擦除性及反復(fù)使用的一些特點,而且由于計算機的使用廣闊性,在計算機中應(yīng)用非常廣泛廣。不過,在使用芯片擦除的過重中應(yīng)當(dāng)注意一些問題和使用方法,以免出現(xiàn)許多問題:再一次寫入程序之前,須將芯片中原有的程序全部擦除于凈.否則植入的程序不但會出現(xiàn)錯此外,有的時候還可能導(dǎo)致芯片中某幾個單元損壞的現(xiàn)象,即使擦除多次,寫入的信息

14、仍然避免不了錯誤。因此有必要在對芯片寫入程序之前,對該芯片進(jìn)行全面的掃描與檢測,并且鑒定其擦除的質(zhì)量狀況,避免在使用過程中出現(xiàn)許多不可預(yù)料的錯誤。 2.2.3 串口通訊串口通信的含義是指:外圍設(shè)備和計算機間,通過數(shù)據(jù)線、控制線等手段,按照位進(jìn)行的傳輸數(shù)據(jù)的通信方式。同時,這種通信方法使用的數(shù)據(jù)傳輸工具少,在比較遠(yuǎn)的距離的通信中相對來書節(jié)約成本,但是該傳輸方式還是帶有一定的缺陷,并且,該傳輸?shù)氖熳x比并行口的傳輸速度低一些。2.2.3.1 通信原理串口通信的通信方式是比較簡單的,串口通過數(shù)據(jù)傳輸工具按照位發(fā)送與接收字節(jié),當(dāng)然該通信方式可以同時使用兩根數(shù)據(jù)傳輸工具實現(xiàn)同時接收與發(fā)送的功能,而且,該種

15、通信手段傳輸距離遠(yuǎn),并且串口使用ascii碼的字符進(jìn)行傳輸。2.2.4 scon介紹串行口控制寄存器,用于控制串行通信的方式選擇、接收和發(fā)送,指示串口的狀態(tài)。scon既可以字節(jié)尋址,也可以位尋址,其字節(jié)地址為98h,地址位為98h9fh。 它的各個位的具體定義如表2-3:表2-3 scon寄存器寄存器位d7d6d5d4d3d2d1d0符號sm0sm1sm2rentb8rb8tiri地址9fh9eh9dh9ch9bh9ah99h98hsm0、sm1位:為串行口工作方式選擇位器,通過賦與不同的值,可以組合成不同的工作方式。sm2位:多機通信控制器位置,在方式0中需按要求使得該位置置0;在方式1中,

16、如果在單片機處于接收狀態(tài)的時候,如果sm2=1時,則只有在接收數(shù)據(jù)時接受到有效的停止位“1”的時候,ri才能產(chǎn)生中斷請求并實現(xiàn)中斷;在工作在方式2、方式3的時候,如果賦值sm2=0,串口以單機發(fā)送或者接受的工作方式進(jìn)行工作,t1和ri就必須按照正常的方式產(chǎn)生中斷請求并實現(xiàn)中斷的作用,但是如果出現(xiàn)賦值sm2=1,rb8=1的時候,ri將會被立即激活并且產(chǎn)生中斷請求請求中斷。ren位:串行接收允許控制位置,該位置只能通過軟件的方式進(jìn)行置位或者復(fù)位。按照其名稱意義可知,當(dāng)ren=1的時候,就允許串口接收數(shù)據(jù);反之出現(xiàn)ren=0的時候,就禁止串口接收數(shù)據(jù)tb8位:是發(fā)送的第九位數(shù)據(jù),根據(jù)tb8工作方式

17、的不同,就會表示不同的工作意義,在所有的多級通信過程中,以該位的狀態(tài)或值來表示主機發(fā)送給從機的數(shù)據(jù)表示的是數(shù)據(jù)還是地址。如果當(dāng)tb8=1的時候,那么該位表示從主機發(fā)送來的是表示地址;反之當(dāng)tb8=0的時候,那么該位表示從主機發(fā)送來的是表示數(shù)據(jù),當(dāng)然,在有的時候tb8還有其它作用,比如表示奇偶校驗位。rb8位:接收的數(shù)據(jù)的第九位,根據(jù)rb8工作方式的不同,就會表示不同的工作意義,在方式2與方式3的時候,即是rb8當(dāng)中存放的是接收到的第九位數(shù)據(jù)。同時rb8也有其它作用,比如該位可以用來表示奇偶校驗位;在方式1當(dāng)中,如果賦值sm2=0的時候,那么該位的作用就是接受數(shù)據(jù)的停止位;而在方式0中,該位就沒

18、有被使用。ti位:發(fā)送中斷的標(biāo)志位置。根據(jù)ti的賦值的不同,就會表示不同的意義,如果出現(xiàn)ti=1的狀況時,該位就表示此次數(shù)據(jù)已經(jīng)結(jié)束一幀的數(shù)據(jù)發(fā)送,而且,該位置不管在任何工作方式下只能通過軟件來清0,而且可以通過軟件查詢ti位的標(biāo)志,同時,也可以通過軟件想中央處理器申請請求中斷。ri:接收中斷標(biāo)識位置。根據(jù)ri的賦值的不同,就會表示不同的意義,如果出現(xiàn)ri=1的狀況時,該位就表示此次數(shù)據(jù)已經(jīng)結(jié)束一幀的數(shù)據(jù)發(fā)送,而且,該位置不管在任何工作方式下只能通過軟件來清0,而且可以通過軟件查詢ri位的標(biāo)志,同時,也可以通過軟件想中央處理器申請請求中斷。值得注意的是,在at89c51單片機中,串口發(fā)送的中斷

19、ti和接收中斷ri的中斷入口也就是中斷地址的開始地址是一樣的,即是0023h,在這種情況下,在中斷程序中,必須使用軟件查詢ti與ri的工作狀態(tài)才能夠確定中斷時接收中斷還是發(fā)送中斷,根據(jù)查詢的結(jié)果作出相應(yīng)的處理,而且在單片機進(jìn)行復(fù)位的時候,scon的所有位的值都會被清0。2.2.4.1 串口工作方式方式0(sm0 sm1 :0 0):串口的工作方式0時作為同步為移位寄存器使用,而且在此時,sm2、rb8以及tb8都應(yīng)該被賦值位0。該方式的波特率為fosc/12,即是在一個機器周期的情況下接收或者發(fā)送一位數(shù)據(jù)。應(yīng)當(dāng)注意的是,該方式并不是同步通信方式,它的主要作用是外界同步移位寄存器,并且起到擴展并

20、行i/o口的作用在發(fā)送數(shù)據(jù)的狀況下:當(dāng)出現(xiàn)ti=0的賦值狀況時,通過執(zhí)行“mov sbuf , a”啟動串口發(fā)送的功能,發(fā)送的8位數(shù)據(jù)由低位到高位從rxd引腳發(fā)送出去,txd引腳的作用則是發(fā)送同步脈沖信號。如果發(fā)送完成,那么由硬件使ti置位。在接受數(shù)據(jù)的狀況下:當(dāng)出現(xiàn)ri=0以及ren=1的賦值狀況時啟動接受數(shù)據(jù),數(shù)據(jù)從rxd引腳輸入進(jìn)單片機,并保持在sbuf當(dāng)中,同時,txd引腳起到的作用則是輸出同步脈沖信號。當(dāng)8位數(shù)據(jù)接收完成后,通過硬件使ri位置位,當(dāng)然在程序中,可以通過“mov a , sbuf”讀取數(shù)據(jù)。方式1(sm0 sm1 :0 1):該方式是一幀10位的異步串行通信的方式,其中

21、接收或發(fā)送的10數(shù)據(jù)包括1個起始位置,8個數(shù)據(jù)位置和一個停止位置。在發(fā)送數(shù)據(jù)的狀況下:當(dāng)出現(xiàn)ti=0的賦狀況時,通過軟件執(zhí)行“mov sbuf , a”命令后開始實現(xiàn)數(shù)據(jù)的發(fā)送,而且該數(shù)據(jù)通過硬件自動加入此方式的起始位置與停止位置,使其構(gòu)成一個包含完整的10位的一幀數(shù)據(jù),然后通過txd引腳發(fā)送出去,而且在發(fā)送數(shù)據(jù)完成后,txd的輸出信號維持在“1”的狀態(tài)下,并且將ti賦值為1,這樣,就完成了一幀數(shù)據(jù)的發(fā)送。在接受數(shù)據(jù)的狀況下:該狀況下的串口實現(xiàn)比較復(fù)雜,在同時具備ri=0與ren=1的賦值條件下,接收電路將會以波特率的16被速度采樣rxd引腳來實現(xiàn)數(shù)據(jù)的采樣,當(dāng)rxd引腳出現(xiàn)信號由“1”變成“

22、0”的跳變狀況時,接收電路就會認(rèn)為有數(shù)據(jù)正在進(jìn)行發(fā)送,并且接受電路就開始接受數(shù)據(jù),當(dāng)在接收到第九位數(shù)據(jù),即是接收到停止位的時候,必須同時滿足兩個條件才能實現(xiàn)接收數(shù)據(jù)并且存入sbuf當(dāng)中并且停止為送rb8以及使ri置位,即:要實現(xiàn)ri=0與sm2=0的條件或者接受到停止位置的數(shù)據(jù)為“1”的狀況;如果上面的兩個條件出現(xiàn)不滿足的狀況,那么接收到的數(shù)據(jù)不裝進(jìn)sbuf就會被舍棄。當(dāng)然,在方式1的狀況下,sm2必須設(shè)置為0。且計算波特率的公式為:波特率=2smod(t1的溢出速率)/32t1的溢出速率=1/t1的定時時間=所以得出的波特率總公式就是:方式2(sm0 sm1 :1 0):工作方式2是11位異

23、步接收發(fā)送串行通信方式。在發(fā)送數(shù)據(jù)的狀況下:在發(fā)送數(shù)據(jù)前,必須賦值ti=0,而且必須通過軟件設(shè)置tb8,即通過命令“setb tb8”或者“clr tb8”來將tb8置位活清0。然后再通過串口想sbfu寫入完整的8位數(shù)據(jù),并通過這種方式來啟動串行口的發(fā)送功能,當(dāng)一幀數(shù)據(jù)完成發(fā)送任務(wù)后,ti會自動完成置1的任務(wù),從這可以看出,該過程與方式1的過程是相同的過程。在接受數(shù)據(jù)的狀況下:通過串口接收數(shù)據(jù),必須滿足“ren=1”與“ri=0”的狀況,然后串口就會啟動進(jìn)行數(shù)據(jù)接收。在數(shù)據(jù)接收過程中,如果出現(xiàn)sm2的賦值狀況不同時,也會出現(xiàn)不同的運行過程:如果出現(xiàn)sm2=0的賦值狀況時,中央處理器會將接收到的

24、8位數(shù)據(jù)發(fā)送到sbuf當(dāng)中,同時,會將第九位數(shù)據(jù)發(fā)送到rb9當(dāng)中儲存起來。反之如果出現(xiàn)sm2=1的時候,接收到的第九位數(shù)據(jù)如果為0的時候,那么該接收到的數(shù)據(jù)就不會發(fā)送到sbuf當(dāng)中;而如果接收到的第九位數(shù)據(jù)為1的時候,那么該數(shù)據(jù)前8位就會被送入sbuf當(dāng)中,而第九位就會送入rb8當(dāng)中進(jìn)行儲存起來。且計算波特率的公式為:波特率=2smodfosc/64,其中smod的值為0或1。方式3 ( sm0 sm1 :1 1) :與方式2一樣,都是11位異步接收發(fā)送串行通信方式,當(dāng)然,方式2和方式3的差異僅僅是在波特率的不同。那么計算波特率的公式為:2.2.4.2 pcon介紹pcon主要是為chmos型

25、單片機的電源控制設(shè)置的專用寄存器,單元地址為87h,不能尋址。表2-5 pcon寄存器pcon d7d6 d5d4d3d2 d1 d0位符號 smod - - -gf1 gf0 pdidl地址位8e8d9c8b8a898887波特率是指串行端口每秒內(nèi)可以傳輸?shù)牟ㄌ匚粩?shù)。smod為波特率選擇位,是一個重要的參數(shù)。在方式1、方式2和方式3時,串行通信的波特率和smod有關(guān)。方式0:波特率=focs/12,方式2:波特率=2smodfocs/64。方式1、3 :當(dāng)使用定時器1作為串口波特率發(fā)生器時,波特率=(2smod32)(定時器1溢出速率);當(dāng)定時器1工作在于方式2時,波特率=2smod/32(

26、focs/12)/(256-th1)2.2.5 主要引腳功能圖2-2 at89c51系列單片機的內(nèi)部結(jié)構(gòu)示意圖2.3 74ls373簡介74ls373是常用的地址鎖存器芯片,它實質(zhì)是一個是帶三態(tài)緩沖輸出的8d鎖存器,在單片機系統(tǒng)中為了擴展外部存儲器,通常需要一塊74ls373芯片。74ls373作為三態(tài)輸出的8d透明鎖存器,共有54s373和74ls373 兩種線路,如圖2-4所示為74ls373引腳圖:圖2-4 74ls373引腳圖2.3.1 引腳功能簡介74ls373的輸出端q0q7可直接與總線相連。當(dāng)三態(tài)允許控制端oe為低電平的狀況時,q0q7當(dāng)為正常的邏輯狀態(tài),可以用來進(jìn)行驅(qū)動負(fù)載與總

27、線。當(dāng)oe成為高電平時,q0q7呈高阻態(tài),即不能夠驅(qū)動總線,當(dāng)然也不能為總線的負(fù)載項,但鎖存器的內(nèi)部邏輯操作將會不受影響。若鎖存允許的端口le為高電平時,q隨數(shù)據(jù)d而變。當(dāng)le為低電平狀況時,d端將被鎖存于已經(jīng)建立的數(shù)據(jù)電平當(dāng)中。當(dāng)le端口施密特型號觸發(fā)器的輸入滯后作用時,使交流與直流噪聲的抗擾度被加以改善400mv。2.3.2 74ls373功能表表2-6 74ls373功能表給出控制端oc使能e使能d輸出qlhhhlhllllxq0hxxz2.4 tc35i簡介2.4.1 tc35i模塊的主要技術(shù)指標(biāo)頻段是gsm900mhz和gsml800mhz雙頻;支持?jǐn)?shù)據(jù)、語音、短消息和傳真等;單一電

28、源供電:電壓3.34.8v;可選波特率4.8-115kbps;電源消耗:休眠狀態(tài)為3.5ma,空閑狀態(tài)為25ma,通話狀態(tài)為300ma(平均);溫度范圍:正常工作-20+55,存放-30+85;支持電壓為3v/1.8v的sim卡。2.4.2 tc35i模塊的硬件接口tc35i的硬件接口共40個引腳,其通過zif連接器引出分別與外部的電源電路、模塊的啟動電路、數(shù)據(jù)通信的電路、語音電路和sim卡電路等連接。tc35i的數(shù)據(jù)接口是符合itu-trs232標(biāo)準(zhǔn)型號的異步串行接口。其波特率可以在4.8kbps115kbps之間選擇,接口電平為cmos電平,串口參數(shù)是:八位數(shù)據(jù)位、一位停止位、無校驗位置,

29、支持標(biāo)準(zhǔn)的at指令集。2.4.3 與短消息相關(guān)連的gsm at指令介紹gsm at指令集是由諾基亞、愛立信和摩托羅拉等廠商聯(lián)合為gsm系統(tǒng)制定的指令,其中包含對短消息的操作指令。tc35i模塊所提供的at命令集符合gsm07.05與gsm07.07規(guī)范。gsm07.05標(biāo)準(zhǔn)對短消息的數(shù)據(jù)格式作了更加詳細(xì)的規(guī)定,用戶終端是可以向gsm模塊發(fā)送各種指令及數(shù)據(jù)來實現(xiàn)短消息的收發(fā)功能。遠(yuǎn)程控制軟件實現(xiàn)的方式:使用gsm模塊實現(xiàn)遠(yuǎn)程控制前需初始化gsm模塊,之后通過單片機讀取短信并對短信進(jìn)行相對的處理,解析指令。2.4.3.1 接收指令初始化gsm模塊,握手并確定gsm設(shè)備的存在,設(shè)置短信中心號碼和短信

30、發(fā)送模。初始化串口模塊,定義函數(shù)使串口以字節(jié)為單位的方式發(fā)送數(shù)據(jù),上一串口數(shù)據(jù)發(fā)送完成后再發(fā)下一個數(shù)據(jù),部分偽代碼如附錄一所示。2.4.3.2 讀短信先握手確定gsm設(shè)備的存在,判斷返回的值,若兩次握手均不成功,則重新初始化gsm模塊。之后比對字符串,判斷是否有未讀的短信,有未讀信時指針p值不為空,則繼續(xù)處理短信。獲取短信來源的號碼,只執(zhí)行固定號碼發(fā)來的短信指令,后獲取指令,將指令存在data_buf中。部分偽代碼如附錄二所示:2.4.3.3 解析指令解析指令在主函數(shù)中實現(xiàn)。讀到新消息后首先檢查是否為控制的中心發(fā)出,后根據(jù)命令字段判斷是何種指令,根據(jù)前面對指令的介紹,可分為設(shè)置時間、選擇方案、

31、設(shè)置方案等。給出部分代碼如附錄三所示:第3章 設(shè)計基本要求和步驟3.1 基本要求本設(shè)計通過使at89c51與tc35i為核心設(shè)計交通燈遠(yuǎn)程控制器,主要實現(xiàn)如下功能: 1. 初始東西方向綠燈亮,南北方向紅燈亮。 2. 等待50s,東西方向的綠燈滅,黃燈閃爍3次。 3. 黃燈在閃爍后,東西方向的紅燈亮同時與南北方向的綠燈亮。 4. 等待50s,南北方向的綠燈滅,黃燈閃爍3次,如此往復(fù)。 5. 當(dāng)發(fā)生特殊狀況時,兩方向全部的紅燈亮,當(dāng)特殊狀況結(jié)束后,恢復(fù)特殊狀況發(fā)生前的顯示狀況。 6. 當(dāng)任意方向的通行流量增大時,可以增加相應(yīng)方向的綠燈亮的時間,結(jié)束后調(diào)回正常狀態(tài)。3.2 設(shè)計步驟利用proteus

32、 7.5 sp3仿真軟件按下列要求繪制仿真實例: 1. 用2個共陽極led數(shù)碼管表示倒計時,用12個顯示燈(4個紅燈,4個綠燈,4個黃燈)表示兩方向的交通狀況; 2. 用p0口表示輸出控制交通燈的亮燈狀況、p1口表示輸出倒計時的狀態(tài); 3. 利用keil軟件編寫仿真軟件; 4. 建立新工程并選擇芯片; 5. 建立并導(dǎo)入源文件; 6. 在源文件中編程并糾錯; 7. 調(diào)整晶振與仿真輸出文件; 8. 編譯生成hex文件;第4章 硬件和軟件設(shè)計4.1 硬件電路圖4.1.1 交通燈遠(yuǎn)程控制電路全圖交通燈遠(yuǎn)程控制主要由:at89c51主電路、串口電路、gam 控制電路以及顯示電路這幾部分組成。hex程序源

33、文件通過串口下載入at89c51當(dāng)中,遠(yuǎn)程信號通過sim卡座接收信息,然后通過tc35i發(fā)送進(jìn)入at89c51當(dāng)中,然后根據(jù)條件選擇不同的執(zhí)行方式。交通燈遠(yuǎn)程控制器電路全圖如圖4-1所示。圖4-1 交通燈遠(yuǎn)程控制電路全圖4.2 各模塊電路介紹4.2.1 at89c51主模塊電路該部分作為交通燈遠(yuǎn)程控制系統(tǒng)的核心部分,通過at89c51控制交通的顯示部分、時間顯示部分以及gsm遠(yuǎn)程通信部分。其中p1口作為時間顯示的控制口,po口通過74ls373鎖存器來控制交通燈顯示部分,74ls373鎖存器實現(xiàn)保護(hù)現(xiàn)場的作用。at89c51主電路如圖4-2所示。圖4-2 at89c51主電路4.2.2 串口模

34、塊電路由于電腦和單片機通過串口連接下載程序,使得兩者之間必須進(jìn)行電平轉(zhuǎn)換,而max232是美信公司專門為rs-232標(biāo)準(zhǔn)串口設(shè)計的單電平轉(zhuǎn)換芯片,使用+5v單電源供電。圖4-3 串口電路4.2.3 gsm控制模塊電路在遠(yuǎn)程通信過程中,使用sim卡座和tc35i芯片連接at89c51,由于交通燈遠(yuǎn)程控制中為節(jié)約資源和成本只使用文本通信,通過sim卡接收信息然后解析指令并回執(zhí),讓單片機辨識不同的指令來控制交通燈的顯示情況。gsm控制電路如圖4-4所示。圖4-4 gsm控制電路4.2.4 顯示模塊電路顯示電路包括時間顯示和交通燈狀況顯示兩部分,而兩部分都是使用8段數(shù)碼顯示管顯示,通過數(shù)碼管的顯示編碼

35、狀況,根據(jù)實際情況顯示了交通狀況。顯示部分電路如圖4-5所示。圖4-5 顯示電路4.3 程序流程圖4.3.1 主程序流程圖如圖4-6所示,即是主程序流程圖。圖4-6 主程序流程圖4.3.2 運行過程流程圖如圖4-7所示,即是紅綠燈運行過程流程圖。圖4-7 運行過程流程圖4.3.3 p0、p1口顯示狀態(tài)編碼表使用4個7段數(shù)碼管顯示紅、綠、黃三燈,其編碼狀況如表4-1所示:表4-1 p0口顯示狀態(tài)編碼p0編碼備注p07p06p05p04p03p02p01p00111111100feh紅燈101111110bfh黃燈111101110f7h綠燈使用7段數(shù)碼管顯示時間狀況部分,其編碼狀況如表4-2所示

36、:表4-2 p1口顯示狀態(tài)編碼p1編碼備注p17p16p15p14p13p12p11p10111100000c0h0111110010f9h1101001000a4h2101100000b0h31001100199h41001001092h51000001082h611111000f8h71000000080h81001000090h94.4 軟件設(shè)計本論文使用c語言完成所有的設(shè)計,在軟件設(shè)計過程中,根據(jù)硬件的功能不同,可以分為gsm信息接收模塊程序部分、顯示模塊程序部分、以及主要在at89c51主芯片中的主程序部分;本論文的總程序如附錄四所示。4.4.1 gsm信息接收模塊程序部分代碼voi

37、d s_msm()int i=0;if(ti )ti=0;sbuf=dat;while(!ti);statu=0;void r_msm()if(ri)/判斷是否有信息寫入dat=sbuf;ri=0;statu=1;4.4.2 顯示模塊程序部分代碼void display(uchar j)char h,l;if(j11) /根據(jù)相應(yīng)狀態(tài)判定時間h=time_ew/10;/ew通行時間的十位l=time_ew%10;/ew通行時間的個位else if(j23)h=time_sn/10;/sn通行時間的十位l=time_sn%10;/sn通行時間的個位for(i=0;i4;)/按位顯示通行狀況以及時

38、間p0=table1j;/通行狀況顯示p2=tabi;/位選顯示i+;j+;if(i%2)/兩位計時顯示p1=tablel;delayms(400);elsep1=tableh;delayms(400);delayms(5);總結(jié)大學(xué)四年轉(zhuǎn)眼就過去了,回顧四年的大學(xué)生活,用四個字形容受益良多。在學(xué)校學(xué)到了很多專業(yè)知識,同時也更多的接觸了社會,學(xué)校給了我鍛煉的機會?,F(xiàn)在我已經(jīng)離開校園開始實習(xí)了,剛進(jìn)入社會,我非常想念大學(xué)的生活,大學(xué)生活將是我人生中一個不可磨滅的記憶。本設(shè)計主要由tc35i、at89c51、串口和顯示部分構(gòu)成。首先通過插上sim卡的sim卡座接收手機發(fā)送的信號,然后將信號通過tc

39、35i發(fā)送給at89c51的相應(yīng)端口,通過程序當(dāng)中的相應(yīng)條件選擇不同的執(zhí)行方式,實現(xiàn)交通燈的遠(yuǎn)程控制。在做的過程中遇到了很多問題,通過不斷的修改和查找資料以及老師的幫助,最終這些問題都得到了解決。通過這次論文的設(shè)計,我從中學(xué)到了很多:首先,我們要把書本上的知識轉(zhuǎn)為自己的知識;其次,做事要仔細(xì),要有耐心,不能遇到問題就放棄;最后,我也發(fā)現(xiàn)了一句古話的正確性:書到用時方恨少,這就要求我們在以后的學(xué)習(xí)工作中一定要不斷地提高自己、豐富自己的知識。大學(xué)的美好時光過去了,新的挑戰(zhàn)即將來臨,那就讓我們不斷超越、不斷完善自己吧!致謝 在大學(xué)即將結(jié)束的時刻,迎來了值得我們終生難忘的奮斗畢業(yè)設(shè)計,通過畢業(yè)設(shè)計的完

40、成,使得我們能夠充分使用大學(xué)四年來學(xué)習(xí)的只是,同時也能夠通過實際的應(yīng)用來達(dá)到溫習(xí)與加強學(xué)習(xí)的目的?;仡櫷?,我想要對我的父母親人,說一聲:你們幸苦了!我想要對我偉大的母校西南交通大學(xué)峨眉校區(qū)說一聲謝謝,謝謝它給了我一次能夠升華的機會,謝謝它讓我能夠在這個環(huán)境優(yōu)美學(xué)風(fēng)濃郁的環(huán)境中揮灑自己 的青春也熱情,也感謝它讓我認(rèn)識了自己、認(rèn)識了這個書海的世界;同時也要對學(xué)校的老師說一聲謝謝,謝謝你們交給我們的知識,交給我們做人的道理,它讓我們獲得了一個機會難得的傳承,一個偉大的知識傳承;最后我還要感謝這四年來共同進(jìn)步,共同收獲的同學(xué),因為你們,我的生活才會那么精彩,因為你們,我的世界才會那么精彩。此次能夠順

41、利的完成畢業(yè)設(shè)計,還要感謝我的導(dǎo)師許金福老師。是他的教誨,讓我們發(fā)現(xiàn)了問題;是他的教誨,讓我們克服了困難;同樣是他的教誨,讓我們獲得了進(jìn)步的榮耀。炎炎夏日,他從無怨言;問題不斷,他細(xì)心解說;狀況頻出,他耐心解決。我的進(jìn)步,我的收獲以及我的榮耀都離不開許金福老師的教導(dǎo)。在最后,我也要感謝學(xué)校領(lǐng)導(dǎo)在平時生活學(xué)習(xí)中的幫助與辛苦的工作,他們的努力成就了我們學(xué)業(yè)的進(jìn)步;奠定了我們邁向社會的基石;實現(xiàn)了我們那段曾經(jīng)的夢想。愿我的母校西南交通大學(xué)峨眉校區(qū)發(fā)展更加輝煌,愿我的老師們身體健康,愿我與西南交通大學(xué),與老師的友誼萬古長青。參考文獻(xiàn)1潘育山等.單片機原理及c51開發(fā)技術(shù).西南交通大學(xué)出版社.2009年

42、8月.2譚浩強.c語言程序設(shè)計.清華大學(xué)出版社.3韓斌杰.杜新顏,張建斌.gsm原理及其網(wǎng)絡(luò)優(yōu)化m.2.版.北京:機械工業(yè)出版社,2009:72-78.4孫立治.基于單片機與gsm模塊無線測溫傳輸系統(tǒng)軟件設(shè)計.2008.5李廣弟等.單片機基礎(chǔ)m.北京航空航天出版社,2001. 6王東峰等.單片機c語言應(yīng)用的100例m.電子工業(yè)大學(xué)出版社,2009. 7陳海宴.51單片機的原理及應(yīng)用m.北京航空航天大學(xué)出版社,2010. 8劉守義等.單片機的技術(shù)基礎(chǔ)m.西安電子科技大學(xué)出版社,2007. 9鐘富昭等.8051單片機典型的模塊設(shè)計與應(yīng)用m.人民郵電出版社,2007. 10李平等.單片機的入門與開發(fā)

43、m.機械工業(yè)出版社,2008.附錄一void gsm(void)printstr(atrn); delaymsms(100);printstr(atern); delaymsms(100);printstr(at+csca=+8618383390187rn); delaymsms(100);printstr(at+cmgf=1rn);delaymsms(100);void uart(void) void r_s_byte(uchar r_byte) while(ifg1&utxifg0)=0); txbuf0=r_byte;unsigned char printstr(unsigned cha

44、r* string)unsigned char i=0;if(string=null)return printnull;while(1)r_s_byte(stringi);delaymsms(100);i+;if(stringi=0x00)return printsuccess;if(i=255)return printtoolarge;附錄二unsigned char read_msg(void)printstr(atrn);delaymsms(100);buf_count=0;printstr(at+cmgl=rec unreadrn);delaymsms(300);p=strstr(ua

45、rt_buf,error);if(p!=null) return 0;p=strstr(uart_buf,+cmgr: 0,0);if(p!=null) return 1;p=strstr(uart_buf,rec unread);if(p!=null)for(i=0;i11;i+)phone_numberi=uart_bufi+29; phone_numberi=0;for(i=0;im);r_s_byte(0x1a);printstr(rn);附錄三while(1)if(read_msg()=3)if(strstr(char *)phone_number,center_num)!=null

46、)for(i=0;i6;i+) starti=data_bufi;if(strstr(char *)start,start_symbol)!=null)cmd=(data_buf6-48)*10+(data_buf7-48);switch(cmd)case 0x01: ;/執(zhí)行方案一break;case 0x02: ;/執(zhí)行方案二break;case 0x03: ;/執(zhí)行方案三 break;default:;delaymsms(300); 附錄四#include#include#define uchar unsigned char#define uint unsigned int#define

47、 rn 80 /定義接收的數(shù)組長度為80char s20= ;uchar code at=at;/握手信號uchar code ate=ate;uchar code cnmi=at+cnmi=2,1;uchar code csca=at+csca=+8613800510500;uchar code cmgf=at+cmgf=1;/text模式uchar code cmgr=at+cmgr=;/讀取短信uchar code cmgs=at+cmgs=;/發(fā)送短信uchar code cmgd=at+cmgd=;/發(fā)送短信uchar at_del12;uchar at_r12;/用來存儲短信指令

48、uchar s_oeder25; /用來存儲發(fā)送短信號碼指令uchar n_buf3; /用來保存短信條數(shù) uchar idata s_bufrn; /儲存出口接收數(shù)據(jù) uchar o_stored6; /用來儲存指令 uchar idata state17; /用來存儲io口狀態(tài) uchar rx=0; bit c_flg=0; /查詢標(biāo)志位 bit r_flg=0; /接收短信標(biāo)志位bit s_r_flg=0; /發(fā)送短信準(zhǔn)備標(biāo)志位bit s_flg=0; /發(fā)送短信標(biāo)志位bit flag=0; /指令標(biāo)志位sbit p3_2=p32;/啟動gsm的啟動線連igtvoid delaymsm

49、s(uint i); /延遲void start_tc35i(void); /開啟tc35i模塊void uart (void);/串口初始化void s_flgchar(uchar ch); /串口一位數(shù)據(jù)發(fā)送void s_flgstring(uchar *p); /通過串口發(fā)送數(shù)據(jù)串void gsm(void); /gsm初始化void r_ready(void); /準(zhǔn)備讀取信息void j_message(void);/判斷信息void r_message(void); /發(fā)送讀取短信指令void s_flgmessage(void);uchar code table10=0xc0,0

50、xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/09段選碼uchar code table128=0xf7,0xfe,0xf7,0xfe,0xbf,0xfe,0xbf,0xfe,0xff,0xfe,0xff,0xfe,0xfe,0xf7,0xfe,0xf7,0xfe,0xbf,0xfe,0xbf,0xfe,0xff,0xfe,0xff,0xfe,0xfe,0xfe,0xfe;/*各種狀態(tài)下紅綠燈段選碼,狀態(tài)(0-3):ew綠燈,sn紅燈;狀態(tài)(4-7):ew黃燈亮,sn紅燈;狀態(tài)(8-11):ew黃燈滅,sn紅燈;狀態(tài)(12-15):ew紅燈,sn綠燈;狀態(tài)(16-19):ew紅燈,sn黃燈亮;狀態(tài)(20-23):ew紅燈,sn黃燈滅;狀態(tài)(24-27):ewsn全紅燈*/uc

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論