單片機原理課程設(shè)計——GSM手機設(shè)計_第1頁
單片機原理課程設(shè)計——GSM手機設(shè)計_第2頁
單片機原理課程設(shè)計——GSM手機設(shè)計_第3頁
單片機原理課程設(shè)計——GSM手機設(shè)計_第4頁
單片機原理課程設(shè)計——GSM手機設(shè)計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、河南科技大學(xué)課 程 設(shè) 計 報 告 課程名稱 _單片機原理課程設(shè)計_ 題目名稱 _ GSM手機設(shè)計 學(xué)生學(xué)院 _ 信息工程學(xué)院_專業(yè)班級 _ 自動化122 學(xué) 號 學(xué)生姓名指導(dǎo)教師2015 年 7 月 5 日課程設(shè)計任務(wù)書(指導(dǎo)教師填寫)課程設(shè)計名稱 單片機原理 學(xué)生姓名 專業(yè)班級 設(shè)計題目 GSM手機設(shè)計 一、 課程設(shè)計目的1. 培養(yǎng)學(xué)生文獻檢索的能力,如何利用Internet檢索需要的文獻資料。2. 培養(yǎng)學(xué)生綜合分析問題、發(fā)現(xiàn)問題和解決問題的能力。3. 培養(yǎng)學(xué)生綜合運用知識的能力和工程設(shè)計的能力。4. 培養(yǎng)學(xué)生理論聯(lián)系實際的能力。5. 提高學(xué)生課程設(shè)計報告撰寫水平。二、 設(shè)計內(nèi)容、技術(shù)條件

2、和要求1設(shè)計內(nèi)容GSM手機設(shè)計主要功能是用單片機實現(xiàn)手機的通訊功能,要求能打電話、發(fā)短信,顯示來電信息及通訊錄,能顯示信號標(biāo)識、信號強弱、電池信息等。(1)選用LCD屏幕顯示各種相關(guān)信息;(2)設(shè)計4X4按鍵,實現(xiàn)鍵盤輸入號碼和拔號掛斷等功能;2 設(shè)計要求 設(shè)計單片機最小系統(tǒng)(包括復(fù)位按鈕、晶振電路等); 繪制實現(xiàn)本設(shè)計內(nèi)容的硬件電路(原理圖),系統(tǒng)的組成框圖。 相應(yīng)的控制狀態(tài)表; 編寫本課程設(shè)計內(nèi)容的軟件設(shè)計(包含程序流程圖和對程序注釋)。3 總體設(shè)計思想(供參考) 利用矩陣鍵盤實現(xiàn)輸入; 采用LCD12864作為顯示屏; 利用串口實現(xiàn)與GSM模塊的連接。4 設(shè)計參考GSM手機設(shè)計主要包含單

3、片機主控電路、顯示電路、鍵盤電路、GSM通訊模塊電路等組成。5 知識點準(zhǔn)備: +5V電源原理及設(shè)計; GSM手機工作原理及設(shè)計; 單片機復(fù)位電路工作原理及設(shè)計(元件選擇的依據(jù)); 單片機晶振電路工作原理及設(shè)計(元件選擇的依據(jù)); LCD顯示特性、驅(qū)動設(shè)計及應(yīng)用; 單片機引腳資源、引腳分配等; 單片機匯編語言及程序設(shè)計(中斷、延時子程序的設(shè)計)。三 時間進度安排按教學(xué)計劃規(guī)定,單片機原理課程設(shè)計總學(xué)時為1周,其進度安排和時間大致分配如下:1. 十七周周一至周二 查閱資料、進行軟、硬件初步設(shè)計;2. 十七周周三至周四 上機調(diào)試,發(fā)現(xiàn)問題,解決問題,完善課程設(shè)計;3. 十五周周五 總結(jié)設(shè)計過程,編寫

4、課程設(shè)計報告書。四 主要參考文獻1、何立民. 單片機高級教程 第1版北京:北京航空航天大學(xué)出版社,20012、徐愛鈞 KEIL Cx V7.0單片機高級語言編程與uVision2應(yīng)用實踐,北京,電子工業(yè)出版社,20043、李全利、仲偉峰、徐軍,單片機原理及應(yīng)用,北京:清華大學(xué)出版社,2006五、設(shè)計分組及選題安排 自動化122班所有學(xué)生及自動化123班部分學(xué)生。指導(dǎo)教師簽字: 2015年06月25日單片機課程設(shè)計報告1、 設(shè)計項目簡介 隨著科技的飛速發(fā)展和人民生活水平的不斷提高,手機的普及率越來越高,更新也越來越快,價格也越來越便宜。因為手機工作的無線網(wǎng)絡(luò)覆蓋范圍廣,在信息傳遞方面性能穩(wěn)定、可

5、靠,所以把手機作為信息傳遞的載體,與單片機結(jié)合起來構(gòu)成應(yīng)用系統(tǒng)有著強大的生命力和廣闊的應(yīng)用空間,特別是在遠(yuǎn)程數(shù)據(jù)傳輸、遠(yuǎn)程監(jiān)控等領(lǐng)域更是受到電子設(shè)計應(yīng)用工程師的關(guān)注。 GSM系統(tǒng)是目前基于時分多址技術(shù)的移動通信體制中最成熟、最完善、應(yīng)用最廣的一種系統(tǒng)。GSM的短消息業(yè)務(wù),由于其方便、快捷、廉價等特點而受到用戶的青睞,它作為GSM網(wǎng)絡(luò)的一種基本業(yè)務(wù),已得到越來越多的系統(tǒng)運營商和系統(tǒng)開發(fā)商的重視。本系統(tǒng)主要研究如何運用GSM手機模塊在計算機終端實現(xiàn)短信息的收發(fā)。設(shè)計中采用STC 89C52單片機和Siemens公司的GSM模塊TC35實現(xiàn)具有短信手法功能和通話功能的GSM Modem原型。通過RS

6、232串口將該Modem與PC機或程序控制STC89C52單片機相連,并在PC機上開發(fā)前臺軟件,實現(xiàn)中英文短信點對點的雙向收發(fā)和來電呼叫,從而實現(xiàn)與用戶手機或GSM模塊的遠(yuǎn)程通信功能。2、 總體設(shè)計 本次設(shè)計的整體方案以單片機STC89C52為控制器,利用串口通信與GSM模塊進行通訊,通過AT指令發(fā)送指令實現(xiàn)打電話,掛電話,以及短信的接收和發(fā)送。通過AT指令能夠讀取網(wǎng)絡(luò)信號的強弱等各種信息。通過4*4矩陣鍵盤實現(xiàn)按鍵的輸入,通過LCD12864實現(xiàn)屏幕的顯示。3、 硬件設(shè)計1.矩陣鍵盤 本系統(tǒng)中的4*4矩陣式鍵盤結(jié)構(gòu)簡單,按鍵數(shù)較少,采用非編碼式鍵盤,當(dāng)有鍵按下時,由單片機通過程序掃描確定鍵值

7、,并將獲得的鍵值通過LED數(shù)碼管顯示出來,4*4矩陣式鍵盤結(jié)構(gòu)及鍵值分布如下圖: 2.LED數(shù)碼管 LED(發(fā)光二級管)顯示器件是計算機控制控制系統(tǒng)中的廉價輸出設(shè)備,它由多個發(fā)光二極管組成,能顯示許多種字符。由于制作材料不同,LED可以發(fā)出紅、黃、籃、紫等各種單色光,一個發(fā)光二級管正常發(fā)光時的電流大約為10mA,本系統(tǒng)中使用的是七段共陰極LED數(shù)碼管。 圖4、5所示為七段共陰極LED顯示器件的結(jié)構(gòu)及外形圖。七段LED顯示器件就是將7個發(fā)光二極管按一定的方式組合在一起,如圖1所示。圖1本次設(shè)計51開發(fā)板原理圖如圖2圖23.液晶屏12864 帶中文字庫的128X64是一種具有4位/8位并行、2線或

8、3線串行多種接口方式,內(nèi)部含有國標(biāo)一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64, 內(nèi)置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構(gòu)成全中文人機交互圖形界面??梢燥@示8×4行16×16點陣的漢字. 也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構(gòu)成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。圖34. GSM模塊TC35/TC35I模塊是一款雙頻900/1800MHZ

9、高度集成的GSM模塊。如圖4圖4TC35/TC35I模塊技術(shù)特點 :  低功耗,支持?jǐn)?shù)據(jù)、語音、短消息和傳真。 SIM應(yīng)用工具包 ,AT命令集控制 , R&TTE認(rèn)證、GCF認(rèn)證 ,SMS:MT/MO/CB/PDU模式 。音頻:最高速率,升級最高速率和半速率 。支持電壓范圍:3.3至4.4V。 電流消耗:3.0 mA(睡眠)10.0 mA(閑置)。模塊工作需要5V2A以上的電源供電。4、 軟件設(shè)計1.矩陣鍵盤 按鍵采用線反轉(zhuǎn)法先把列線置成低電平,行線置成輸入

10、狀態(tài),讀行線;再把行線置成低電平,列線輸入狀態(tài),讀列線。當(dāng)有鍵按下時,由兩次所讀狀態(tài)即可確定所按鍵的位置,不需掃描,鍵盤響應(yīng)速度大大加快。2.12864液晶顯示1.lcd初始化;對屏進行設(shè)置;1)關(guān)屏;2)設(shè)置起始X地址3)設(shè)置起始行地址;4)設(shè)置起始Y地址;5)開屏;6)清屏。2.顯示內(nèi)容;1)設(shè)置起始坐標(biāo)(x,y);2)發(fā)送顯示內(nèi)容。根據(jù)12864的技術(shù)手冊和操作時序,12864的初始化流程圖圖11如下:圖11 初始化流程圖圖12 漢字顯示流程圖3. GSM模塊GSM模塊的使用時通過AT指令進行操作的,使用簡單方便。發(fā)短信:首先串口發(fā)送字符串“AT+CMGF=1r”給GSM模塊,設(shè)置短信為

11、TXT模式;然后發(fā)送“AT+CMGS”,設(shè)置收信方的手機號碼;接著將待發(fā)送短信的內(nèi)容發(fā)給GSM模塊;最后發(fā)送十六進制的0x1A(回車)確認(rèn)發(fā)送。打電話:(1)串口發(fā)送ATD*; (*為被叫電話號碼,后面有分號); (2)發(fā)送“發(fā)送命令”指令“0x1A”(回車)確認(rèn)發(fā)送; (3)被撥電話將會收到來電號碼,產(chǎn)生振鈴信號(移動臺沒有振鈴聲音),被叫可以掛機或接通; (4)串口發(fā)送ATH ,再發(fā)送“發(fā)送命令”指令“0x1A”(回車)確認(rèn)發(fā)送,主叫GSM進行掛機操作。圖13 短信發(fā)送流程圖五、程序清單/ DELAY.C 延時子函

12、數(shù)#include"delay.h"/delay.h頭文件void delayMS(unsigned int ms)unsigned int i,j;for(i=ms;i>0;i-)for(j=110;j>0;j-);/ KEY.C按鍵子函數(shù)#define POINT P1/宏定義POINT為P1,矩陣鍵盤端#define IX 0XF0 /FIND X POIT AND SET X 1111RET Y 0000 #define IY 0X0F /FIND Y POIT AND SET Y 1111RET X 0000unsigned char code POI

13、NTX=0XE0,0XD0,0XB0,0X70; /識別X軸的匹配值unsigned char code POINTY=0X0E,0X0D,0X0B,0X07;/識別Y軸的匹配值unsigned char KEYSCAN()unsigned int i,X,Y,KEY=0xFF; /無按鍵時返回0xFFPOINT=IX; / 列識別if(POINT!=IX)/是否有按鍵按下 delayMS(100);/延時100ms,按鍵消抖if(POINT!=IX)/是否有按鍵按下for(i=0;i<4;i+)/識別列,X=iif(POINT=POINTXi)X=i;i=4;/識別完成后,i=4跳出判

14、斷; POINT=IY; / 行識別if(POINT!=IY)/是否有按鍵按下for(i=0;i<4;i+)/識別列,Y=iif(POINT=POINTYi)Y=i;i=4;/識別完成后,i=4跳出判斷KEY=X+Y*4; /鍵值換算;return KEY; /返回按鍵值 0-15/ LCD12864.C#include"LCD12864.h"#include"reg52.h"void delay(unsigned char i)/延時for(;i>0;i-);void write_com(unsigned char cmd)/寫指令子函數(shù)R

15、S=0;RW=0;P0=cmd;EN=1;delay(2);EN=0;delay(10);void write_date(unsigned char date)/寫數(shù)據(jù)子函數(shù)RS=1;RW=0;P0=date;EN=1;delay(5);EN=0;delay(20);void LCD_clear()/清屏子函數(shù)unsigned char i,j;for(i=0;i<8;i+)/128*64逐個置低位 write_com(PAG_ADD+i);write_com(COL_ADD);for(j=0;j<64;j+)write_date(0x00);/寫數(shù)據(jù)0x00void LCD_in

16、it() /LCD初始化write_com(LCD_OFF);/關(guān)屏幕write_com(START_LINE);/行起始地址write_com(PAG_ADD);/頁起始地址write_com(COL_ADD);/列起始地址write_com(LCD_ON);/LCD開屏LCD_clear();/LCD清屏void display_8(unsigned char pag,unsigned char col,unsigned char m,unsigned char n,unsigned char temp)/顯示字符子函數(shù),pag頁地址,col字符地址,/m數(shù)組中的第m位,n數(shù)組中的第n位,

17、temp【】字符組unsigned char x,y,p,q;p=col;/第p個字符的位置q=col*8;/q轉(zhuǎn)化為初始位置的位地址,字符和位的轉(zhuǎn)換for(m;m<=n;m+)/判斷程序,自動片選if(p<8)/左半屏CS1=1;CS2=0;col=p*8;else/右半屏CS1=0;CS2=1;col=(p-8)*8;for(x=0;x<2;x+)/顯示程序 write_com(PAG_ADD+pag+x);write_com(COL_ADD+col);for(y=0;y<8;y+)write_date(tempx*8+m*8*2+y);/數(shù)據(jù)寫p+;void di

18、splay_16(unsigned char pag,unsigned char col,unsigned char m,unsigned char n,unsigned char temp)/漢字顯示,pag頁地址,col字地址,m數(shù)組中的第/m位,n數(shù)組中的第n位,temp【】字符組unsigned char x,y,p,q;p=col;/第p個字的位置q=col*16;/q轉(zhuǎn)化為初始位置的位地址,字符和位的轉(zhuǎn)換for(m;m<=n;m+)/判斷程序,自動片選if(p<4)/左半屏CS1=1;CS2=0;col=p*16;else/右半屏CS1=0;CS2=1;col=(p-4

19、)*16;for(x=0;x<2;x+) write_com(PAG_ADD+pag+x);/換頁write_com(COL_ADD+col);for(y=0;y<16;y+)write_date(tempx*16+m*16*2+y);/數(shù)據(jù)寫p+;void display_tx(unsigned char temp)/圖片顯示子函數(shù)128*64unsigned char x,y,m;for(m=0;m<8;m=m+2)for(x=0;x<2;x+)for(y=0;y<128;y+)if(y<64)/片選,左半屏write_com(PAG_ADD+x+m);

20、/頁地址CS1=1;CS2=0;write_com(COL_ADD+y);else/有半屏CS1=0;CS2=1;write_com(COL_ADD+y-64);write_date(tempx*128+m*128+y);/寫數(shù)據(jù)/串口初始化部分#include <stdio.h>void uart_init(void) TMOD=0x20; /定時器/計數(shù)器1,工作方式2TH1=0xfd; /設(shè)置波特率為9600TL1=0xfd; SCON=0x50; /串行工作方式1,允許串行控制PCON=0x00; /設(shè)置SMODIE=0x90; /允許串口進行中斷 TI=1; /發(fā)送中斷標(biāo)

21、志位TR1=1; /啟動定時器/計數(shù)器1/SIM900A.c#include <reg52.h>#include <stdio.h>#include "uart.h"#include "Key.h"#include "lcd12864.h"#include "zi.h"uchar TelePhone12='0'uchar Msgstore12="0"uchar chose_key = 0;static void delay(unsigned int t)

22、/延時 for(;t!=0;t-);void Clear_Buffer(uchar *buffer)/輕除保存電話號碼緩存uchar i;for(i=0;i<12;i+)bufferi = '0'void Show_Logo(void)/顯示主界面display_tx(tx2);display_16(6,0,0,1,hz1);display_16(6,6,4,5,hz1); void Show_view(char flag) /顯示選擇菜單界面uchar i;for(i=0;i<2;i+)if(flag = 1)fh_disp_x_y_black(16,16,6,i

23、*16,7+i,hz);elsefh_disp_x_y(16,16,6,i*16,7+i,hz);for(i=0;i<3;i+)if(flag = 2)fh_disp_x_y_black(16,16,6,80+i*16,9+i,hz);elsefh_disp_x_y(16,16,6,80+i*16,9+i,hz);void Show_Viewtel(void)/顯示電話界面uchar i;for(i=0;i<3;i+)fh_disp_x_y(8,16,6,(i*8),14+i,zf);fh_disp_x_y(8,16,6,(i*8),12,zf);void Show_Viewmsg

24、(void)/顯示短信界面uchar i;for(i=0;i<3;i+)fh_disp_x_y(8,16,6,(i*8),17+i,zf);fh_disp_x_y(8,16,6,(i*8),12,zf);void Show_Tel(uchar *buff)/LCD屏上顯示電話號碼uchar i;uchar Display_Buffer12 = "0"/LCD屏顯示緩存for(i=0;i<12;i+)if(*buff = '0')break;Display_Bufferi=buffi;for(i=0;i<11;i+)if(Display_Bu

25、fferi != '0')fh_disp_x_y(8,16,6,(i*8+32),Display_Bufferi-'0',zf);elsefh_disp_x_y(8,16,6,(i*8+32),13,zf);void Chose_view(void) /選擇菜單函數(shù)uchar Get_Key;while(1)Get_Key = Key();switch(Get_Key)case '0':Show_view(0);chose_key = 0;break;case '1':Show_view(1);chose_key = 1;brea

26、k;case '2':Show_view(2);chose_key = 2;break;case 'E':if(chose_key)goto pp1;pp1:Clr_Scr();delay(1000);Show_Logo();void Tel_function(void) /打電話功能函數(shù)uchar Get_Key;uchar Counter=0;Show_Viewtel();while(1)Get_Key = Key();if(Get_Key != 0xff)if(Get_Key = 12) /后退if(Counter > 0)Counter-;Tele

27、PhoneCounter = '0'/修改輸入的數(shù)else if(Get_Key = 14)/電話撥出按鍵printf("rn");/串口顯示整齊printf("ATD%s;rn",TelePhone);/往外打電話delay(900000);delay(900000);Counter = 0;else if(Get_Key =15)/電話掛斷printf("rn");/串口顯示整齊printf("ATHrn");delay(900000);delay(900000);Counter = 0;Cle

28、ar_Buffer(TelePhone);else if(Get_Key = 13)/電話接聽鍵printf("ATArn");/接聽電話else if(Get_Key = 11)Clear_Buffer(TelePhone);break;else/放入緩沖區(qū)if(Counter < 12)TelePhoneCounter+=Get_Key;/保存按鍵值Show_Tel(TelePhone);/12864顯示電話號碼void Msg_function(void) /發(fā)短信功能函數(shù)uchar Get_Key;uchar flag_tel_msg = 0;uchar Co

29、unter=0;Show_Viewtel();while(1)Get_Key = Key();if(Get_Key != 0xff)if(Get_Key = 12)/后退鍵if(Counter > 0)Counter-;MsgstoreCounter = '0'/修改輸入的數(shù)else if(Get_Key = 'E')if(flag_tel_msg = 0)printf("AT+CMGF=1rn"); /設(shè)置短息系統(tǒng)進入文本模式delay(900000);delay(900000);delay(900000);printf("

30、AT+CMGS="%s"rn",Msgstore); /發(fā)短信delay(900000);delay(900000);Counter = 0;flag_tel_msg = 1;Clear_Buffer(Msgstore);Clr_Scr();delay(1000);Show_Logo();Show_Viewmsg();else if(flag_tel_msg = 1)printf("%s hello x01a",Msgstore);delay(900000);delay(900000);Counter = 0;flag_tel_msg = 0;Show_Viewtel();Clear_Buffer(Msgstore);else if(Get_Key = 'B')Clear_Buffer

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論