久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10310|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于單片機+GSM的手機設(shè)計 有實物很詳細

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:161768 發(fā)表于 2017-5-21 17:31 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
借助系統(tǒng)模型,根據(jù)GSM模塊收發(fā)短信、打電話以及串口控制SMS的基本原理,由單片機STC12C5A32S2與Tc35i模塊通過串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令實現(xiàn)手機的基本功能,具體包括:從鍵盤任意撥號、接聽、掛機、收/發(fā)短信。先關(guān)指令提示通過LCD1602液晶顯示。二、基本要求(基本技術(shù)要求與數(shù)據(jù))
1、使用STC12C5A32S2單片機作為控制芯片;
2、使用Tc35i模塊通過單片機控制實現(xiàn)手機的基本功能;
3、使用LCD1692液晶顯示頻作為顯示工具;
4、使用4*4鍵盤矩陣作為操作的控制鍵盤。

Abstract
1 引言
2 設(shè)計方案
3 硬件設(shè)計
3.1 TC35i模塊介紹
3.2 單片機及各元件的連接
3.2.1 STC12C5A32S2芯片介紹
3.2.2 LCD1602液晶顯示模塊介紹
3.2.3 按鍵設(shè)計模塊
4 軟件設(shè)計
4.1 軟件設(shè)計工作原理
4.2 軟件流程圖
4.3 主要程序說明
5              調(diào)試與測試
5.1 硬件調(diào)試
5.2 軟件調(diào)試
5.3 系統(tǒng)總體調(diào)試
6              結(jié)論
參考文獻
致謝
附錄

基于GSM手機設(shè)計

摘  要:借助系統(tǒng)模型,闡明基于西門子公司的TC35型GSM手機模塊收發(fā)短信、打電話的基本概念以及串口控制 SMS 的基本原理。詳細介紹C51單片機STC12C5A32S2控制GSM 模塊工作的軟件實現(xiàn)過程,對怎樣用單片機控制GSM 模塊收發(fā)短信、打電話進行探討,也對程序設(shè)計的主體思想作了較為細致的分析。
文章重點闡述了STC12C5A32S2單片機和TC35模塊的接口、TC35的特點和主要功能、AT指令的應(yīng)用等。該系統(tǒng)單片機STC12C5A32S2的TXD/RXD分別接TC35模塊的TXD/RXD,完成對TC35模塊的初始化和短消息的數(shù)據(jù)收發(fā)以及打電話的功能。

1  引言
隨著通信技術(shù)的發(fā)展, 基于移動通信網(wǎng)絡(luò)服務(wù)功能, 正向工業(yè)控制和遙控領(lǐng)域有不斷擴大的趨勢。為適應(yīng)這種需要,西門子公司推出了新一代無線通信GSM模塊——TC35i,是一種基于GSM網(wǎng)絡(luò)的通過短信形式傳輸數(shù)據(jù)的通信終端設(shè)備。基于該模塊工作的無線網(wǎng)絡(luò)覆蓋范圍廣,在信息傳遞方面性能穩(wěn)定、可靠,所以把GSM作為信息傳遞的載體,與單片機結(jié)合起來構(gòu)成應(yīng)用系統(tǒng)有著強大的生命力和廣闊的應(yīng)用空間,特別是在遠程數(shù)據(jù)傳輸、遠程監(jiān)控等領(lǐng)域。
本設(shè)計借助系統(tǒng)模型,根據(jù)GSM模塊收發(fā)短信、打電話以及串口控制SMS的基本原理,由單片機STC12C5A32S2與Tc35i模塊通過串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令實現(xiàn)手機的基本功能,通過LCD1602液晶顯示頻顯示串口傳輸?shù)南嚓P(guān)數(shù)據(jù)輸出。
2  設(shè)計方案            
本次設(shè)計的目的是基于C51單片機控制GSM模塊實現(xiàn)短信收發(fā)、打電話的功能,根據(jù)題意,制定設(shè)計方案如下:
1、短信模塊使用西門子公司推出的無線通信GSM模塊——TC35i;
2、使用LCD1602液晶模塊作為顯示器件,及時顯示串口傳輸數(shù)據(jù);
3、單片機芯片使用宏晶科技生產(chǎn)的新一代8051單片機STC12C5A32S2;
4、整個系統(tǒng)組成有TC35i模型和小系統(tǒng)單片機電路,STC12C5A32S2單片機的TXD/RXD分別接TC35模塊的TXD/RXD,并且兩者共地,通過串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令完成對TC35模塊的初始化和短消息的數(shù)據(jù)收發(fā)以及打電話的功能;
5、增加4*4矩陣鍵盤小模塊,通過鍵盤設(shè)置相關(guān)按鍵實現(xiàn)相關(guān)功能,并能從鍵盤實現(xiàn)隨意撥號;
6、當有來電或者新信息時,通過蜂鳴器響聲長短提示并在LCD液晶顯示相關(guān)提示。
3  硬件設(shè)計
使用單片機控制GSM,首先:單片機下載完程序后,先不要接GSM,先讓單片機和電腦通信,利用串口調(diào)試助手查看單片機AT指令的數(shù)據(jù)。然后單片機的TXD/RXD分別接上圖所示的TXD/RXD并共地,完成對TC35模塊的初始化和短消息的數(shù)據(jù)收發(fā)以及打電話的功能。硬件連接實物圖如圖3-1:

3.1 TC35i模塊介紹
TC35i模塊主要由六部分組成: GSM基帶處理器、GSM射頻模塊、供電模塊 (ASIC)、 閃存、ZIF連接器、天線接口。其中,GSM基帶處理器是整個模塊的核心,主要處理GSM終端內(nèi)的語音、數(shù)據(jù)信號,并涵蓋蜂窩射頻設(shè)備中的所有模擬和數(shù)據(jù)功能。TC35i模塊結(jié)構(gòu)框圖如圖3-2:

GSM開發(fā)板有兩種供電方式,一種是直接把開關(guān)電源適配器插到電源插頭上,另一種是直接用直流穩(wěn)壓電源的正負極分別接到上圖的電源正5V、電源地。當用電腦串口調(diào)試GSM時,必須用短路帽直接把J3、J4分別插上短路帽,如上圖所示。當用單片機控制GSM時,J3、J4的短路帽必須拔下。
3.2 單片機及各元件的連接

LCD1602液晶顯示模塊通過排阻接STC12C5A32S2單片機P0口,4*4矩陣鍵盤按鍵,接STC12C5A32S2單片機P1口,具體功能分配在3.2.1和3.2.2詳細介紹。
3.2.1 STC12C5A32S2芯片介紹
STC12C5A32S2芯片是宏晶科技生產(chǎn)的高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)的8051,用它作為本設(shè)計控制核心。STC12C5A32S2引腳排列如圖3-4所示,表3-1為 STC12C5A32S2引腳功能分配說明。
引腳
功能
P0
輸出液晶顯示屏雙向數(shù)據(jù)口,P0口使用上拉電阻
P1
4*4鍵盤輸入口
P2.2
蜂鳴器
P2.3~P2.5
液晶屏RS、RW、E
P2.6~ P2.7/P3
空閑(預(yù)留其他用途)


3.2.2 LCD1602液晶顯示模塊介紹
字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。本設(shè)計采用1602LCD液晶顯示頻作為顯示工具,當系統(tǒng)向外撥號、發(fā)送信息或有來電以及新信息進來時,通過按鍵控制執(zhí)行相關(guān)應(yīng)答,1602LCD同時顯示相關(guān)指令指示,例如當有來電時,顯示效果如圖3-5所示:


3.2.3 按鍵設(shè)計模塊
本設(shè)計采用4*4矩陣鍵盤按鍵,接單片機P1口,相關(guān)功能設(shè)置如圖3-6:
3(鍵號0)
7(鍵號1)
11(鍵號2)
15(鍵號3)
2(發(fā)信息)
6(鍵號4)
10(鍵號5)
14(鍵號6)
1(掛機)
5(鍵號7)
9(鍵號8)
13(鍵號9)
0(撥號)
4(接聽)
8(清屏)
12(空閑)


功能說明:圖中為括號的內(nèi)容表示該按鍵按下則相關(guān)數(shù)字送給單片機進行存儲和顯示,非數(shù)字鍵按表格中的功能在程序中實現(xiàn)。
4  軟件設(shè)計
單片機與GSM模塊的的軟件接口其實就是單片機通過與GSM模塊相關(guān)的AT 指令控制手機的控制技術(shù)。指令的執(zhí)行過程需要單片機與GSM模塊交互應(yīng)答完成,每次發(fā)送或接收的字節(jié)數(shù)有嚴格的規(guī)定,二者必須依據(jù)這些規(guī)定實現(xiàn)數(shù)據(jù)交換,否則,通信就是失敗的。設(shè)計采用的相關(guān)AT指令說明:
a、 單片機與 TC35i模塊由串口建立連接:AT。
b、 設(shè)置 TC35i模塊工作模式:AT+CMGF=n,n=0:PDU模式;n=1:文本模式,通常要設(shè)置為 PDU模式,在這種模式下,能傳送或接收透明數(shù)據(jù)(用戶自定義)。
c、 發(fā)送信息指令:AT+CMGS=n,n為目標號碼。
d、 新消息提示指令:AT+CMNI=2,1,0,0,設(shè)置為mode=2,mt=1。
e、 讀 TC35i模塊短消息數(shù)據(jù):AT+CMGR=n,n為短消息號(十進制)。
f、 撥號指令:ATD。這個命令用來設(shè)置通話、數(shù)據(jù)或傳真呼叫。
g、 來電顯示指令:AT+CLIP=1。            
h、 接聽指令: ATA。
i、 掛電話指令:ATH。
4.1 軟件設(shè)計工作原理
軟件設(shè)計過程中在矩陣鍵盤設(shè)置了相關(guān)按鍵分別控制發(fā)送短信息 (關(guān)鍵字、狀態(tài)字、查詢信息 )、撥號到從矩陣鍵盤輸入的任意號碼、接聽來電、掛機以及數(shù)字鍵、清屏鍵。
在系統(tǒng)運行過程中通過鍵盤掃描檢測,當有按鍵按下執(zhí)行相關(guān)操作或者有新信息或新來電時,TC35i通過串口傳輸接收到相關(guān)AT指令后 ,把相關(guān)信息返回并通過串口傳送給單片機 ,單片機收到有新的信號指示 ,則按指示執(zhí)行相關(guān)操作并繼續(xù)通過串口傳輸將相關(guān)數(shù)據(jù)送給GSM模塊, GSM模塊通過串口傳輸收到相關(guān)信息后成功返回“OK”,失敗返回“ERROR”。串口傳輸?shù)南嚓P(guān)指令指示通過LCD1602液晶顯示頻顯示出來。
4.2 軟件流程圖             
程序使用模塊化的編程思路。主程序包括系統(tǒng)初始化、屏幕刷新和按鍵掃描三部分,其流程如圖4-1所示。屏幕刷新功能用一個子程序模塊實現(xiàn),在模塊當中實現(xiàn)相應(yīng)字符串的顯示,其流程如圖4-2所示。參數(shù)設(shè)置子程序的按鍵掃描,不是設(shè)置鍵按下則退出掃描,重新輪詢。若有設(shè)置鍵按下,則進入功能選擇子程序。




4.3 主要程序說明
整個軟件設(shè)計由多部分組成:函數(shù)聲明、函數(shù)定義、主函數(shù)、信息檢測函數(shù)、鍵盤掃描函數(shù)、串口中斷函數(shù)、延時子函數(shù)、收/發(fā)信息函數(shù)、撥號函數(shù)、掛機函數(shù)、接聽函數(shù)以及相關(guān)LCD1602液晶顯示相關(guān)函數(shù)等,主要程序說明見附錄。
5  調(diào)試與測試5.1 硬件調(diào)試
設(shè)計好PCB電路檢查確認無誤之后,經(jīng)過打印、熱轉(zhuǎn)印、制板、焊接元件等流程就可以進行硬件的調(diào)試了。硬件安裝前要再次確定系統(tǒng)總原理圖的正確性,首先用萬用表檢查電路板是否有虛焊、漏焊、開路或短路的情況;檢查無誤后給電路板提供+5V的直流電壓,觀察電路板上的電源指示燈是否正常工作,然后把單片機芯片、液晶顯示屏插入插槽中,下載線連接到電路板上,先下載簡單可行的測試程序到單片機中,觀察芯片工作是否正常,驗證顯示屏、按鍵、執(zhí)行部件能否正常工作,如果芯片正常工作則說明系統(tǒng)板正常,不正常則說明軟件或者系統(tǒng)硬件可能存在某些問題,則需耐心查找原因,從根本上一一解決。
下載線的作用是把編譯好的單片機程序下載到目標單片機中以及提供電源。用的下載程序軟件,STC_ISP.exe 。
5.2 軟件調(diào)試
本系統(tǒng)使用的軟件開發(fā)環(huán)境是keil。在keil中,源代碼的輸入,編譯通過之后就可以進行軟件調(diào)試了。在軟件編程實現(xiàn)過程中,跟隨自己事先整理好的思路,先定好整體框架,然后對每個要實現(xiàn)的功能實現(xiàn)從簡單開始一步步到最終實現(xiàn)為止,最后把最終程序經(jīng)過編譯確認無誤之后,把編譯產(chǎn)生的hex文件,下載到實物板中,軟硬件調(diào)試時,首先要檢查電源指示燈是否亮,觀察LCD查看顯示是否正確,按鍵是否起到相應(yīng)的作用。調(diào)試過程中,要不斷分析問題存在的可能原因,針對具體問題找尋具體解決辦法,在硬件和軟件程序間不斷改進調(diào)試,從簡單開始一步步進行下去直到最終功能實現(xiàn)為止。
5.3 系統(tǒng)總體調(diào)試
系統(tǒng)軟硬件聯(lián)合調(diào)試步驟與仿真調(diào)試步驟基本一致,確保電路硬件線路正常后,將可行程序下載到單片機,驗證顯示屏、按鍵、串口通信能否正常工作。       系統(tǒng)總體調(diào)試使用工具有:GSM模塊、單片機小系統(tǒng)板、SIM卡(插入GSM模塊),手機一部。調(diào)試步驟:
1、先把SIM卡插入GSM模塊插槽中,給GSM通電,觀察GSM模塊:電源指示燈(紅燈)亮,信號指示燈(綠燈)一亮一滅,亮與滅的時間相同,這時GSM模塊正在搜索信號,等到信號指示燈閃一下,滅大約2-3秒時,這時說明我們的GSM已經(jīng)注冊上信號,說明模塊工作正常;
2、下載線連接上單片機最小系統(tǒng)板,按下開關(guān)給單片機上電,電源指示燈亮,工作正常則下載程序后,斷開下載線與單片機最小系統(tǒng)板的TXD/RXD接線,將單片機的TXD/RXD腳、地線分別與GSM模塊的TXD/RXD腳、地線接上,給單片機斷電或復(fù)位一次,刷新串口,即可進行調(diào)試工作。
3、從鍵盤輸入目標手機號碼,觀察液晶顯示并記錄,按下?lián)芴栨I,等待檢查手機是否有新來電,記錄結(jié)果;
4、從目標手機撥號進來,仔細觀察蜂鳴器是否提醒有來電,檢查液晶顯示并記錄,如有來電提醒顯示,則按下接聽鍵觀察手機提示狀態(tài)、液晶顯示結(jié)果,并記錄,掛號鍵操作也是一樣檢測;
5、按下發(fā)信息按鍵,等待,觀察手機是否有新信息以及液晶顯示并記錄;
6、用手機給模塊發(fā)送一條信息,檢查蜂鳴器是否有提醒,觀看液晶顯示并記錄。LCD602液晶顯示屏調(diào)試結(jié)果以及串口顯示結(jié)果見附錄。
表5-1 系統(tǒng)總體調(diào)試結(jié)果說明
按鍵按下
功能說明
液晶顯示結(jié)果
數(shù)字鍵0-9
輸入相關(guān)數(shù)字
“0/1/2/3/4/5/6/7/8/9”
撥號鍵
撥打目標號碼
“ATD15994473659”
掛機鍵
掛斷來電
“ATH   OK”
接聽鍵
接聽來電
“ATA   OK”
清屏鍵
清理屏幕并歸零相關(guān)變量
清屏
發(fā)信息鍵
發(fā)送固定信息到固定號碼
“AT+CMGS=15994473659hello!”



6  結(jié)論
本設(shè)計借助系統(tǒng)模型,根據(jù)GSM模塊收發(fā)短信、打電話以及串口控制SMS的基本原理,結(jié)合Tc35i型GSM模塊和單片機小系統(tǒng)電路板兩個模塊,由單片機STC12C5A32S2與Tc35i模塊通過串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令實現(xiàn)手機的基本功能。通過設(shè)置相關(guān)按鍵分別控制發(fā)送短信息 (關(guān)鍵字、狀態(tài)字、查詢信息 )、撥號到從矩陣鍵盤輸入的任意號碼以及接收信息、接聽來電、掛機,串口傳輸?shù)臄?shù)據(jù)通過LCD液晶顯示把串口傳輸?shù)拇趥鬏數(shù)臄?shù)據(jù)顯示出來。
通過這次畢業(yè)設(shè)計,對更熟悉使用PROTEL99SE設(shè)計電路原理圖、PCB圖的布局設(shè)計有很大幫助,對相關(guān)專業(yè)知識有了進一步的了解,能把課本知識運用到設(shè)計中。整個設(shè)計雖然過程中遇到了一些困難,但針對遇到的不同問題,采取了不同的解決方案,最終一一解決。這更讓人明白,要有細心、耐心、恒心才能成功的完成一件事。在將來的學習工作中要吸取這次設(shè)計的經(jīng)驗教訓。
根據(jù)GSM模塊收發(fā)短信、打電話以及串口控制SMS的基本原理,通過串口通信、軟件技術(shù)結(jié)合相關(guān)的AT指令還可實現(xiàn)語音功能,或者選用功能更強大的顯示工具實現(xiàn)更完整的手機短信收發(fā)、打電話的功能。

致謝
本人在撰寫的過程中,得到廖義奎老師以及玉黃蓉等同學的悉心指導,在此向他深表謝意!

附錄4.3.1 主函數(shù)
void main()
{     
di();
       Ini_UART();
       lcd_int();
                 k=0;
       Print_Str(AT);
       delayms(100);
       Print_Str(AT_CMGF);
       delayms(100);
       Print_Str(AT_CNMI);
       delayms(200);
       Print_Str(AT_CLIP);
       delayms(250);
                 clr_rsbuf();
       P1=0xff;  //P0開機初始化
       key=0xff; //鍵盤值開機初始化為ff(檢測到的鍵值應(yīng)為0----15)
       while(1)
                 {  
ScanMessage();
                     key_4x4_scan();//不停調(diào)用鍵盤掃描程序                  
                  };//原地循環(huán)
}
4.3.2 信息檢測函數(shù)
  1. void ScanMessage(void)
  2. {      
  3. for(ii=0;ii<32;ii++)                              if(RsBuf[ii-3]=='C'&&RsBuf[ii-2]=='M'&&RsBuf[ii-1]=='T'&&RsBuf[ii]=='I')
  4.                   {   
  5. di();delayms(50);
  6. di(); delayms(50);
  7. di(); delayms(50);
  8.              lcd_write_com(0x80); //將顯示位置定位在第一行第0個字符處
  9.              clr_rsbuf();
  10.              Print_Str(AT_CMGR);
  11.              delayms(250);delayms(250);delayms(250);delayms(250);
  12.              lcd_write_com(0x80); //將顯示位置定位在第一行第0個字符處
  13.              for(i=0;i<15;i++)
  14.              {  
  15. lcd_write_data(RsBuf[i+20]);    //顯示
  16.                  delayms(100);
  17.              }
  18.              lcd_write_com(0x80+0x40); //將顯示位置定在第一行第0個字符處
  19.              for(i=15;i<32;i++)
  20.              {  
  21. lcd_write_data(RsBuf[i+20]);    //顯示
  22.                  delayms(100);
  23.              }
  24.                             }
  25.                             else if(RsBuf[ii-3]=='C'&&RsBuf[ii-2]=='L'&&RsBuf[ii-1]=='I'&&RsBuf[ii]=='P')
  26.          {  
  27. beep=0;
  28.              delayms(250);
  29.              delayms(250);
  30.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  31.              for(i=(ii+3);i<15+(ii+3);i++)
  32.              {
  33.                                    lcd_write_data(RsBuf[i]);    //來電顯示
  34.                 delayms(5);
  35.               }
  36.              lcd_write_com(0x80+0x40);   //將要顯示的位置定位在第一行第0個字符處
  37.              for(i=(ii+3)+15;i<32+(ii+3);i++)
  38.              {
  39.                                     lcd_write_data(RsBuf[i]);    //顯示"ATH"
  40.                 delayms(5);
  41.               }
  42.                                           while(!beep)
  43.                                           {
  44.                                           key_4x4_scan();//不停調(diào)用鍵盤掃描程序
  45.                                    }                                         
  46.                                           clr_rsbuf();
  47.                             }
  48. }
復(fù)制代碼
































壓縮包里面含完整的PCB圖 proteus仿真原理圖和源程序程序等
下載地址:http://www.zg4o1577.cn/bbs/dpj-85475-1.html


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:157057 發(fā)表于 2017-5-21 23:18 | 只看該作者
感謝分享。
回復(fù)

使用道具 舉報

板凳
ID:291316 發(fā)表于 2019-5-5 22:40 | 只看該作者
仿真不了啊
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日韩中文字幕一区 | 成人免费大片黄在线播放 | 久久首页| 国产高清性xxxxxxxx | 欧美成人a∨高清免费观看 91伊人 | 亚洲一区二区黄 | 高清欧美性猛交xxxx黑人猛交 | 久久久久久免费看 | 欧美淫| 日韩久久久久久 | 欧美一区二区在线免费观看 | 中文字幕成人av | 国产亚洲精品久久yy50 | 福利视频网址 | 欧美精品综合在线 | 日韩av免费在线观看 | 成人在线免费看 | 国产精品久久国产愉拍 | 婷婷色在线 | 亚洲国产一区在线 | 国产91 在线播放 | 亚洲视频免费在线观看 | 亚洲九色 | 精品一区二区三区91 | 久国产| 污污免费网站 | 亚洲 精品 综合 精品 自拍 | 日本午夜在线视频 | 天天综合网天天综合色 | 日韩中文字幕在线免费 | 久久久久久久一区 | 一区影院| 国产一级免费视频 | 台湾a级理论片在线观看 | 国产aⅴ爽av久久久久久久 | 日批日韩在线观看 | 精品成人一区 | 在线视频一区二区 | 久久婷婷av| 国产成人综合一区二区三区 | 国内自拍偷拍 |