课程设计任务书:实现手机的拨号功能.docVIP

课程设计任务书:实现手机的拨号功能.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计任务书:实现手机的拨号功能

第 PAGE 1 页 共 NUMPAGES 6 页 RISC微控制器嵌入式系统 课程设计报告 班 级 学 号 姓 名 深圳职业技术学院计算机应用技术专业 2011年6月 实现手机的拨号功能                     1 课程设计的任务 在基于PXA270教学平台上实现手机的基本方法就是通过串口接入一个GSM模块,然后用GSM模块编程指令(AT指令)来实现手机的功能。 数字1-9是手机的数字键盘,字母B键是拨号键(相当于手机的接听键或拨出键),字母C键是挂断键。 在教学平台的键盘上输入要拨叫的电话(数字)时,会在串口显示输入的数字,再按字母B键时,会从串口输出一串用于拨号的AT指令。这串指令会控制GSM模块对相关号码的呼叫。 在教学平台的键盘上按字母C键时,会从串口输出挂断电话的AT指令。这串指令会控制GSM模块挂断相应的呼叫。 2 课程设计实现的功能 数字键盘扫描的详细过程和方法 在初始化阶段,所有的行(输出端口)被强行设置为低电平。在没有任何键按下时,所有的列(输入端口)将读到高电平。任何键的闭合将造成其中的一列变为低电平。一旦检测到有键被按下,就需要找出是哪一个键。过程很简单,微处理器只需在其中一列上输出一个低电平。如果它在输入端口上发现一个0值,微处理器就知道在所选择行上产生了键的闭合。相反,如果输入输出端口全是高电平,则被按下的键就不在那一行,微处理器将选择下一行,并重复该过程直到它发现了该行为止。一旦该行被识别出来,则被按下键的具体列可通过锁定输入端口上惟一的低电平来确定。 分析相应代码: har KeypadGetData(void) //modified by hzh { char KeyData; // 定义Keypad unsigned int KPData0; // Register data unsigned int KPData1; // Register data unsigned int KPPress; // Keypad press count int timer; // Loop coutner/timer (for test timeout) unsigned int kpc; KeyData = 0x30; // Inital setting = ASCII ? timer = 200; // This will provide about a 10 second timeout kpc = KPC_REG; while (!(kpc (KEYP_KPC_MI | KEYP_KPC_DI)) (timer != 0)) { DM_WaitMs(50); // Dealy 50 mS as part of timeout loop timer = timer -1; // Decrement timer kpc = KPC_REG; if(GPLR00x0001) //查看按键D,其为GPIO的第0脚 { DM_WaitMs(10); if(GPLR00x0001) { while(GPLR00x0001); //等待按健放开 return D; } } } if (timer == 0) { KeyData = 0x54; // ASCII T for Time out //return (KeyData); } // Code picks up here if a key is pressed DM_WaitMs(50); // Dealy 50 mS for data to settle if(kpc KEYP_KPC_DI) { UINT32 val = KPDK_REG; if(val (1UL31)) { if(val (10)) return E; if(val (11)) return F; if(val (12)) return 0;

文档评论(0)

zijingling + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档