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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10419|回復: 2
打印 上一主題 下一主題
收起左側

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

[復制鏈接]
跳轉到指定樓層
樓主
借助系統模型,根據GSM模塊收發短信、打電話以及串口控制SMS的基本原理,由單片機STC12C5A32S2與Tc35i模塊通過串口通信、軟件技術結合相關的AT指令實現手機的基本功能,具體包括:從鍵盤任意撥號、接聽、掛機、收/發短信。先關指令提示通過LCD1602液晶顯示。二、基本要求(基本技術要求與數據)
1、使用STC12C5A32S2單片機作為控制芯片;
2、使用Tc35i模塊通過單片機控制實現手機的基本功能;
3、使用LCD1692液晶顯示頻作為顯示工具;
4、使用4*4鍵盤矩陣作為操作的控制鍵盤。

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

基于GSM手機設計

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

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

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

GSM開發板有兩種供電方式,一種是直接把開關電源適配器插到電源插頭上,另一種是直接用直流穩壓電源的正負極分別接到上圖的電源正5V、電源地。當用電腦串口調試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芯片是宏晶科技生產的高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統的8051,用它作為本設計控制核心。STC12C5A32S2引腳排列如圖3-4所示,表3-1為 STC12C5A32S2引腳功能分配說明。
引腳
功能
P0
輸出液晶顯示屏雙向數據口,P0口使用上拉電阻
P1
4*4鍵盤輸入口
P2.2
蜂鳴器
P2.3~P2.5
液晶屏RS、RW、E
P2.6~ P2.7/P3
空閑(預留其他用途)


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


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


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




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



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

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

附錄4.3.1 主函數
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(檢測到的鍵值應為0----15)
       while(1)
                 {  
ScanMessage();
                     key_4x4_scan();//不停調用鍵盤掃描程序                  
                  };//原地循環
}
4.3.2 信息檢測函數
  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();//不停調用鍵盤掃描程序
  45.                                    }                                         
  46.                                           clr_rsbuf();
  47.                             }
  48. }
復制代碼
































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


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

使用道具 舉報

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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91视视频在线观看入口直接观看 | 日韩精品一区二区在线 | 国产成人精品一区二区在线 | 国产伦精品一区二区 | 精品欧美一区二区三区精品久久 | 久久国产精99精产国高潮 | 国产乱码精品一区二区三区忘忧草 | 国产免费一区二区三区 | 一区二区三区精品 | 精品亚洲一区二区三区四区五区高 | 国产精品日韩一区二区 | 亚洲视频网 | 成人在线免费视频 | 日韩视频精品 | 欧美成人精品一区二区三区 | 成人精品视频99在线观看免费 | 黄色网址在线免费观看 | h视频免费看 | 国产99热 | 国产精品久久久久久久久久免费看 | 日韩在线| 一区精品视频 | 欧美高清视频一区 | 放个毛片看看 | 韩国成人在线视频 | 理论片免费在线观看 | 特黄级国产片 | 日本国产一区二区 | 国产欧美一区二区三区另类精品 | www.欧美| 欧美二三区 | 精品免费 | 9久久| 国产99久久精品一区二区永久免费 | 91成人精品 | 成人在线播放 | 午夜免费视频 | 亚洲成人毛片 | 在线毛片网 | 黑人久久| 成人国内精品久久久久一区 |