实验三键盘中断实验_第1页
实验三键盘中断实验_第2页
实验三键盘中断实验_第3页
实验三键盘中断实验_第4页
实验三键盘中断实验_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1 / 7昆明理工大学信息工程与自动化学院学生实验报告昆明理工大学信息工程与自动化学院学生实验报告( 2011 2012 学年第学年第 2 学期学期 )课程名称:嵌入式技术基础与实验课程名称:嵌入式技术基础与实验 开课实验室:信自楼开课实验室:信自楼 234234 20122012 年年 5 5 月月 1010 日日年级、专业、年级、专业、班班自动化自动化 092092学号学号姓名姓名成绩成绩实验项目名称实验项目名称键盘中断实验键盘中断实验指导教师指导教师教教师师评评语语 教师签名:教师签名: 年年 月月 日日注:报告内容按实验须知中七点要求进行。注:报告内容按实验须知中七点要求进行。一、实验

2、目的一、实验目的1、熟练运用 CodeWarrior 嵌入式开发系统环境、汇编、C 语言、调试方式;2、复习串行通信接口(SCI)的内容;3、加强键盘中断基本原理及编程原理的理解;4、理解行扫描法的原理并能进行键值识别和键值编码;5、理解键盘接线原理图。 (如图 5-1 所示)二、实验原理及基本技术路线图(方框原理图)二、实验原理及基本技术路线图(方框原理图)本实验采用 4x4 矩阵式键盘。PTG4、PTD2、PTD3、PTD7 分别接四根线,定义为输入且上拉,PTG0-PTG3 分别接四根行线,且定义为输出行扫描法是使每一行输出低电平, ,其余行为高电平,然后读取列值,如果列值中有低电平,则

3、表明该行和列交点处的键被按下;若为全高则再扫描下一行,知道扫描完全部的行为止。这样就可以知道哪一行哪一列交点键被按下。MCU 与键盘接线原理如下图 3-1 I/O 口引脚的连接图三、所用仪器、材料(设备名称、型号、规格等)三、所用仪器、材料(设备名称、型号、规格等)飞思卡尔试验箱四、实验方法、步骤低电平四、实验方法、步骤低电平1 1、资源使用、资源使用键盘的-数据线分别接在 MCU G 口的 0-4 号引脚、 D 口的 2、3、7 号引脚。MCU 的 SCI 发送引脚 E 口的 0 号引脚接 MAX232 的 TTL 电平接收引脚( 11 号) ,MCU 的 SCI 接收引脚 E 口的 1 号

4、引脚接 MAX232 的 TTL 电平发送引脚( 12 号)2 2、硬件设计、硬件设计先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。3 3、软件设计(主要的程序流程图)、软件设计(主要的程序流程图)AW60键盘MAX232计算机4 4、编程(关键性程序段)、编程(关键性程序段)PC 接收函数接收函数private void SCIPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) String str = String.Empty; bool Flag;/标记串口接收数据是否

5、成功 int len;/标记接收的数据的长度 /调用串口接收函数,并返回结果 Flag = sci.SCIReceiveData(SCIPort,ref PublicVar.g_ReceiveByteArray); if (Flag = true)/串口接收数据成功 len = PublicVar.g_ReceiveByteArray.Length; /对于字符串形式,考虑到可能有汉字, /直接调用系统定义的函数,处理整个字符串 str = Encoding.Default.GetString(PublicVar.g_ReceiveByteArray); SCIUpdateRevtxtbox(

6、TbShowString, str); /十进制和十六进制形式按字节进行处理 for (int i = 0; i len; i+) /十进制都是按照三位来显示,字节之间有空格表示区分 SCIUpdateRevtxtbox(TbShowDec, PublicVar.g_ReceiveByteArrayi.ToString(D3) + ); /十六进制都是按照两位来显示,字节之间有空格表示区分 SCIUpdateRevtxtbox(TbShowHex, PublicVar.g_ReceiveByteArrayi.ToString(X2) + ); this.TSSLState.Text = 过程提

7、示:数据接收成功!; /接收数据失败 else this.TSSLState.Text = 过程提示:数据接收失败!; main 函数函数#include Includes.hvoid main(void) /1 关总中断 DisableInterrupt(); /禁止总中断 /2 芯片初始化 MCUInit(); /3 模块初始化 /3.1 SCI 初始化 SCIInit(SCI_NUM_1,SYSTEM_CLOCK,38400);/用 SCI1,系统时钟为时钟源,波特率为 9600 /3.2 键盘初始化 KBInit(); /4 开中断 /4.1 开键盘中断 EnableKBint();

8、/4.2 开总中断 EnableInterrupt(); 键盘中断函数键盘中断函数#include isr.h/-*/函数名: isrKeyBoard */功 能: 扫描键盘,向串口发送键值和定义值 */参 数: 无 */返 回: 无 */说 明: 调用了 KBScanN、SCISend1、KBInit 函数 */-*interrupt void isrKeyBoard(void) uint8 value; uint16 i; for(i=0; i1000; i+); DisableInterrupt(); /关总中断 DisableKBint(); /屏蔽键盘中断 value = KBSca

9、nN(10); /扫描键值,存于 value 中 if(value!=0 xFF) SCISend1(SCI_NUM_1, value); /发送键值 SCISend1(SCI_NUM_1,KBDef(value);/键值转化为定义值并发送 KBInit(); /键盘初始化键盘中断 EnableKBint(); /开放键盘中断 EnableInterrupt() ; /开总中断五、实验过程原始记录五、实验过程原始记录( (数据、图表、计算等数据、图表、计算等) )六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论