- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
RISC微限制器嵌入式系统
课程设计报告
班级09计应3班
学号09106098
姓名高原肖潇
深圳职业技术学院计算机应用技术专业
2023年6月
第1页共6页
实现手机的拨号功能
1课程设计的任务
1)在基于PXA270教学平台上实现手机的基本方法就是通过串口接入一个 GSM模块,然后用GSM模块编程指令(AT指令)来实现手机的功能。
2)数字1-9是手机的数字键盘,字母B键是拨号键(相当于手机的接听键或 拨出键),字母C键是挂断键。
3)在教学平台的键盘上输入要拨叫的电话(数字)时,会在串口显示输入 的数字,再按字母B键时,会从串口输出一串用于拨号的AT指令。这串指 令会限制GSM模块对相关号码的呼叫。
4)在教学平台的键盘上按字母C键时,会从串口输出挂断电话的AT指令。这 串指令会限制GSM模块挂断相应的呼叫。
2课程设计实现的功能
1)数字键盘扫描的具体过程和方法
在初始化阶段,全部的行(输出端口)被强行设置为低电平。在没有任何键按下 时,全部的列(输入端口)将读到高电平。任何键的闭合将造成其中的一列变为 低电平。一旦检测到有键被按下,就须要找出是哪一个键。过程很简洁,微处理 器只需在其中一列上输出一个低电平。假如它在输入端口上发觉一个。值,微处 理器就知道在所选择行上产生了键的闭合。相反,假如输入输出端口全是高电 平,则被按下的键就不在那一行,微处理器将选择下一行,并重复该过程直到它 发觉了该行为止。一旦该行被识别出来,则被按下键的具体列可通过锁定输入端 口上惟一的低电平来确定。
分析相应代码:
har KeypadGetData(void) //modified by hzh
char Key Data; 〃定义 Keypad unsigned int KPDataO; // Register data unsigned int KPDatal; // 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
第2页共6页
kpc = KPC_REG;
if(GPLR00x0001) 〃查看按键D:其为GPIO的第。脚
(
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 (1UL?31))
(
if(val(l?0))
return *E;
if(val(l?l))
return F;
if(val (1?2)) return O;
) ) KPDataO 二 KPAS_REG;
KPDatal = (KPDataO OxFO) ? 4; // Extract Row data and right justify
KPPress 二(KPDataO 0x7C000000) ? 26; // Extract key press count and right justify
KPDataO = KPDataO OxF; // Isolate Column Data //printf(HKPDataO = %08x\r\n\ KPDataO);
//printf(nKey Count = %08x\r\nn, KPPress);
第3页共6页
KeyData = OxO A;
if (KPPress == 1) // De
您可能关注的文档
最近下载
- 02S701 砖砌化粪池图集.pdf VIP
- 文献检索与科技论文写作 课件全套 第1--9章 绪论、科技文献检索基础知识---科技论文的投稿.pdf VIP
- 中国数字经济现状及未来发展.docx VIP
- 常用起重索具、吊具计算.doc VIP
- 桥头跳车防治技术.pptx VIP
- 厨师安全教育培训考试题及答案.docx VIP
- 12.《总也倒不了的老屋》课件(共12张PPT).pptx VIP
- 施工安全隐患排查治理方案.docx VIP
- 全套课件-科技文献检索与论文写作..pptx VIP
- Python程序设计基础 课件全套 傅彬 项目1--10 Python语言及编程环境---正则表达式.pptx
文档评论(0)