无线终端课程设计.doc

上传人:laozhun 文档编号:4131560 上传时间:2023-04-06 格式:DOC 页数:20 大小:672.50KB
返回 下载 相关 举报
无线终端课程设计.doc_第1页
第1页 / 共20页
无线终端课程设计.doc_第2页
第2页 / 共20页
无线终端课程设计.doc_第3页
第3页 / 共20页
无线终端课程设计.doc_第4页
第4页 / 共20页
无线终端课程设计.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《无线终端课程设计.doc》由会员分享,可在线阅读,更多相关《无线终端课程设计.doc(20页珍藏版)》请在三一办公上搜索。

1、武汉理工大学华夏学院信息工程 无线终端设计技术结课报告课 程 名 称 结 课 成 绩 学生姓名、学 号 学 生 专 业 班级 指 导 教 师 姓名 摘要: TD标准在国内通信领域占据半个3G市场,TD终端成为工业设计的不可或缺的通信平台。工业技术不断的发展,使得工业产品中模块集成度增加,模块间的耦合度减弱,通信性能加强,特别是成本比较低廉的串口使用比较广泛。通过通信技术,主控设备控制终端设备,终端设备向主控设备报告自己的状态。技术的更新要求这种通信速率越来越高。然而,工业产品在满足需求的同时,也要考虑到成本高低。1、 需求分析(功能需求、界面需求、内部功能)(1)按键图确定具体位置确定列数扫描

2、列数确定行数先扫描行(2)AT指令流程图 电话卡激活到打电话取消休眠激活SIM卡激活协议栈注册网络号码被叫呼叫号码ATA接听ATH挂断电话接通对方挂机结束结束ATH挂断注销网络 关机流程SIM卡注销关机(3)串口进入中断处理程序在串口通信过程中,对信号的检测非常严格。所以,接收数据时一般采用单片机串口中方式,可快速响应串口数据的接收,其程序流程如下 :是否是接收Y设置标志位YN缓冲区是否满?N缓冲区下标志C信息读取到缓冲区处理程序结束2、 程序设计 主程序 #include #include uart_key.h#include lcd_12864.h#include delay.h#incl

3、ude at.h/sbit FMQ=P24;void main() unsigned char a,flag1,flag2,AskCalling11; unsigned char i;FMQ=0;USART1_Init();init_lcd();Clr_Scr();PrintStr(0,2,李欢!);TD_Init();/请补充初始化程序delayms(2000); TD_PowerON();/请补充开机delayms(2000); PrintStr(2,0,*);while(1) delayms(200);a=Check_Key();if(a0) if(a=E) PrintStr(4,0,拨

4、号:); flag1=1; if(i=11) i=0;flag1=0;/请补充 TD_Calling(AskCalling); if(flag1) if(a=0) if(i0) i-;num_disp8(4,i+5, ); a=0;else if(a=C) TD_PowerOFF(); /* if(TD_DetectCalling()0) TD_Answer();/ flag2=0;*/ 电话卡的一系列 #include #include #include uart_key.h#include delay.h#include lcd_12864.h#include at.hextern vol

5、atile unsigned char AnswerIsOK,AnswerIsCALL,AnswerIsHANG,AnswerIsNO,AnswerIsRING,AnswerIsBUSY;extern unsigned char AnswerPhoneNumb12; void TD_Init(void)do SendStr1(ATDSLP=0,0rn);/请补充取消休眠功能这一步很重要ClearOneLine(2);PrintStr(2,0,初始化中.);delayms(600);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,初始化失败!);dela

6、yms(600);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,初始化成功!);delayms(1000);/return 1;void TD_PowerON(void) /*激活sim卡*/doSendStr1(AT+CFUN=5rn);/请补充激活 SIM/USIM 卡,可以根据这条指令检测 SIM/USIM 卡是否在位ClearOneLine(2);PrintStr(2,0,激活SIM卡.);delayms(700); PrintStr(2,0,激活SIM卡.);delayms(700); PrintStr(2,0,激活SIM卡.);dela

7、yms(700); PrintStr(2,0,激活SIM卡.);delayms(700);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,激活失败!);delayms(700);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,激活成功!);delayms(1000);/*开机*/doSendStr1(AT+CFUN=1rn);/请补充开机功能full functionality(power on)ClearOneLine(2);PrintStr(2,0,开机中.);delayms(500);PrintStr(

8、2,0,开机中.);delayms(500);PrintStr(2,0,开机中.);delayms(500);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,开机失败!);delayms(2000);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,开机成功!);delayms(1000);/*开机*/do SendStr1(AT+COPS=0rn);/请补充注册网络 /时间稍长先返回ok,再返回数据ClearOneLine(2);PrintStr(2,0,注册网络.);delayms(500);PrintSt

9、r(2,0,注册网络.);delayms(500);PrintStr(2,0,注册网络.);delayms(500);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,注册失败!);delayms(500);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,注册成功!);delayms(5000);ClearOneLine(2);/PrintStr(2,0,您现在可以打电话了!);/return 1;void TD_PowerOFF(void)/*注销网络*/do SendStr1(AT+COPS=2rn);/请

10、补充注销网络ClearOneLine(2);PrintStr(2,0,注销网络.);delayms(500);PrintStr(2,0,注销网络.);delayms(500);PrintStr(2,0,注销网络.);delayms(500);PrintStr(2,0,注销网络.);delayms(500);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,注销失败!);delayms(500);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,注销成功!);delayms(1000);do SendStr1(AT

11、+CFUN=6rn);/请补充SIM/USIM 卡注销无返回值ClearOneLine(2);PrintStr(2,0,注销SIM卡.);delayms(500);PrintStr(2,0,注销SIM卡.);delayms(500);PrintStr(2,0,注销SIM卡.);delayms(500);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,注销SIM卡失败!);delayms(500);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,注销SIM卡成功!);delayms(1000);doSendSt

12、r1(AT+CFUN=0rn);/请补充设置模块最小功能(关机)ClearOneLine(2);PrintStr(2,0,关机中.);delayms(700);PrintStr(2,0,关机中.);delayms(700);PrintStr(2,0,关机中.);delayms(700);ClearOneLine(2);if(!AnswerIsOK) PrintStr(2,0,关机失败!);delayms(700);while(!AnswerIsOK);AnswerIsOK=0; PrintStr(2,0,关机成功!);delayms(1000);ClearOneLine(2);PrintStr

13、(2,0,再见!); void TD_Calling(unsigned char *PhoneNumber) unsigned char temp18;/3+11+3memset(temp,0,sizeof(temp);memcpy(temp,ATD,3);memcpy(temp+3,PhoneNumber,11);memcpy(temp+3+11,;rn,3);doSendStr1(temp);ClearOneLine(4);PrintStr(4,0,在连接.);delayms(500);while (!AnswerIsOK);AnswerIsOK=0;ClearOneLine(4);Pri

14、ntStr(4,0,连接成功,等对方应答!);delayms(500);while(1)if(Check_Key()=C)ClearOneLine(4);ClearOneLine(6);TD_HangUp();break; if(AnswerIsCALL) ClearOneLine(4);ClearOneLine(6);PrintStr(4,0,通话中.);AnswerIsCALL=0;if(AnswerIsHANG) ClearOneLine(4);ClearOneLine(6);PrintStr(4,0,对方已挂机!);AnswerIsHANG=0;break; if(AnswerIsNO

15、) ClearOneLine(4);ClearOneLine(6);PrintStr(4,0,无应答!);AnswerIsNO=0;break; if(AnswerIsBUSY) ClearOneLine(4);ClearOneLine(6);PrintStr(4,0,用户忙!);AnswerIsBUSY=0;break; unsigned char TD_DetectCalling(void)unsigned char temp17;/while(AnswerIsRING)if(AnswerIsRING)FMQ=1;ClearOneLine(4);memcpy(temp,AnswerPhon

16、eNumb,11);memcpy(temp+11,来电!,5);PrintStr(4,0,temp);AnswerIsRING=0;return 1;/delayms(1000);else FMQ=0;return 0; void TD_Answer(void) while(1)if(Check_Key()=E)TD_AnswerCalling();ClearOneLine(4);PrintStr(4,0,通话中.);delayms(500); if(Check_Key()=C)TD_HangUp();break; if(AnswerIsHANG) ClearOneLine(4);PrintS

17、tr(4,0,对方已挂机!);AnswerIsHANG=0;break; void TD_AnswerCalling(void)doSendStr1(ATArn);/请补充应答功能ClearOneLine(4); PrintStr(4,0,应答中.); delayms(1000); while(!AnswerIsOK) ;PrintStr(4,0,请通话!); AnswerIsOK=0;FMQ=0;void TD_HangUp(void) do SendStr1(ATHrn);/请补充挂机功能 ClearOneLine(4); PrintStr(4,0,挂机中.); delayms(1000); while(!AnswerIsOK); PrintStr(4,0,挂机成功!); AnswerIsOK=0;FMQ=0;3、总结(体会心得、程序开发分析)课程设计评分表评 分 项 目评分成绩1选题合理、目的明确(10分)2设计方案正确,具有可行性(30分)3测试性能达到技术要求(35分)4答辩(25分)总 分(100分)答辩记录:指导教师(签名) 日 期: 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号