实验三键盘中断实验.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
昆明理工大学信息工程与自动化学院学生实验报告 (2011 —2012 学年第 2 学期) 课程名称:嵌入式技术基础与实验 开课实验室:信自楼2012年5月10日 年级、专业、班 学号 姓名 成绩 实验项目名称 键盘中断实验 指导教师 教 师 评 语 教师签名: 年 月 日 注:报告内容按实验须知中七点要求进行。 一、 实验目的 1、 熟练运用CodeWarrior嵌入式开发系统环境、汇编、C语言、调试方式; 2、 复习串行通信接口 (SCI)的内容; 3、 加强键盘中断基本原理及编程原理的理解; 4、 理解行扫描法的原理并能进行键值识别和键值编码; 5、 理解键盘接线原理图。(如图5-1所示) 二、 实验原理及基本技术路线图(方框原理图) 木实验采川4x4矩阵式键盘。PTG4、PTD2、PTD3、PTD7分别接四根线,定义为输入11上拉, PTG0-PTG3分别接川根行线,口定义为输出行打描法是使每一行输出低电平,,其余行为高电平, 然后读取列值,如果列值小有低电平,则表明该行和列交点处的键被按下;若为全高则再扌描下一 行,知道扫描完全部的行为止。这样就可以知道哪一行哪一列交点键被按下。 MCU与键盘接线原理如下 MCU内部上拉电阻一nr图3-1讎盘扌妄邈原理图 MCU内部上拉电阻一 nr 图3-1讎盘扌妄邈原理图4 14 2心 32 4亠 54 6a 7a 2 接MCU的 PTA弓I脚Q 图3-1 I/O 口引脚的连接图 三、所用仪器、材料(设备名称、型号、规格等) 飞思卡尔试验箱 四、实验方法、步骤低电平 1、资源使用 键盘的-数据线分别接在MCU G 口的0-4号引脚、 D 口的2、3、7号引脚。MCU的SCI发送 引脚E 口的0号引脚接MAX232的TTL电平接收引脚(11号,MCU的SCI接收引脚 E 口的1 号引脚接MAX232的TTL电平发送引脚(12号) 2、硬件设计 先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。 键盘AW60 键盘 AW60 计算机MAX232 计算机 3、软件设计(主要的程序流程图) 4、编程(关键性程序段) sender,PC接收函数 sender, private void SCIPort_DataReceived(object System.IO.Ports.SerialDataReceivedEventArgs e) { String str = String.Empty; bool Flag;//标记串口接收数据是否成功 int lcn;〃标记接收的数据的长度 〃调用串口接收函数,并返回结果 Flag = sci.SCIReceiveData(SCIPort,ref PublicVa i*.g_ReceiveByte Array); if (Flag == true)//串口接收数据成功 { len = PublicVar.^ReceiveByteArray.Length; 〃对于字符串形式,考虑到可能有汉字, 〃直接调用系统定义的函数,处理整个字符串 str = Encoding.Default.GetString(PublicVa r.g_ReceiveByte Array); SCIUpdateRevtxtbox(TbShowString, str); 〃十进制和十六进制形式按字节进行处理 for (int i = 0; i len; i++) //十进制都是按照三位來显示,字节之间有空格表示区分 SCIUpdateRevtxtbox(TbShowDec, PublicVa r.g_ReceiveByteArray[i].ToString(”D3) + ” “); 〃十六进制都是按照两位来显示,字节Z间有空格表示区分 SCIUpdateRevtxtbox(TbShowHex, PublicVar.g_ReceiveByteArray[i].ToString(MX2H) + ” “); ) this.TSSLState.Text = ”过程提示:数据接收成功! ”; 1 〃接收数据失败 else this.TSSLState.Text = ”过程提示:数据接收失败! ”; } main函数 #includc Includes.h void main(void) { //I关总中断 Disablelnterrupt(); 〃禁止总中断 //2芯片初始化 MCUInit(); 〃3模块初始化 //3.1 SCI初始化 SCIInit(SCI_NUM_ 1 ,SYSTEM_CLOCK,38400);//用 SCT1,系统时钟为时钟源,波特率为 9600 //3.2键盘初始化 KBInit(); //4开中断 〃4」开键盘中断 EnableKBint(); //4.2

文档评论(0)

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

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

1亿VIP精品文档

相关文档