实验三键盘中断实验.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:5 大小:140KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

实验三键盘中断实验.doc

实验三键盘中断实验.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

--昆明理工大学信息工程与自动化学院学生实验报告(2011—2012学年第2学期)课程名称:嵌入式技术基础与实验开课实验室:信自楼2012年5月10日年级、专业、班学号姓名成绩实验项目名称键盘中断实验指导教师教师评语教师签名:年月日注:报告内容按实验须知中七点要求进行。一、实验目的熟练运用CodeWarrior嵌入式开发系统环境、汇编、C语言、调试方式;复习串行通信接口(SCI)的内容;加强键盘中断基本原理及编程原理的理解;理解行扫描法的原理并能进行键值识别和键值编码;理解键盘接线原理图。(如图5-1所示)二、实验原理及基本技术路线图(方框原理图)本实验采用4x4矩阵式键盘。PTG4、PTD2、PTD3、PTD7分别接四根线,定义为输入且上拉,PTG0-PTG3分别接四根行线,且定义为输出行扫描法是使每一行输出低电平,,其余行为高电平,然后读取列值,如果列值中有低电平,则表明该行和列交点处的键被按下;若为全高则再扫描下一行,知道扫描完全部的行为止。这样就可以知道哪一行哪一列交点键被按下。MCU与键盘接线原理如下图3-1I/O口引脚的连接图三、所用仪器、材料(设备名称、型号、规格等)飞思卡尔试验箱四、实验方法、步骤低电平1、资源使用键盘的-数据线分别接在MCUG口的0-4号引脚、D口的2、3、7号引脚。MCU的SCI发送引脚E口的0号引脚接MAX232的TTL电平接收引脚(11号),MCU的SCI接收引脚E口的1号引脚接MAX232的TTL电平发送引脚(12号)2、硬件设计先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。AW60键盘MAX232计算机3、软件设计(主要的程序流程图)4、编程(关键性程序段)PC接收函数privatevoidSCIPort_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse){Stringstr=String.Empty;boolFlag;//标记串口接收数据是否成功intlen;//标记接收的数据的长度//调用串口接收函数,并返回结果Flag=sci.SCIReceiveData(SCIPort,refPublicVar.g_ReceiveByteArray);if(Flag==true)//串口接收数据成功{len=PublicVar.g_ReceiveByteArray.Length;//对于字符串形式,考虑到可能有汉字,//直接调用系统定义的函数,处理整个字符串str=Encoding.Default.GetString(PublicVar.g_ReceiveByteArray);SCIUpdateRevtxtbox(TbShowString,str);//十进制和十六进制形式按字节进行处理for(inti=0;i<len;i++){//十进制都是按照三位来显示,字节之间有空格表示区分SCIUpdateRevtxtbox(TbShowDec,PublicVar.g_ReceiveByteArray[i].ToString("D3")+"");//十六进制都是按照两位来显示,字节之间有空格表示区分SCIUpdateRevtxtbox(TbShowHex,PublicVar.g_ReceiveByteArray[i].ToString("X2")+"");}this.TSSLState.Text="过程提示:数据接收成功!";}//接收数据失败elsethis.TSSLState.Text="过程提示:数据接收失败!";}main函数#include"Includes.h"voidmain(void){//1关总中断DisableInterrupt();//禁止总中断//2芯片初始化MCUInit();//3模块初始化//3.1SCI初始化SCIInit(SCI_NUM_1,SYSTEM_CLOCK,38400);//用SCI1,系统时钟为时钟源,波特率为9600//3.2键盘初始化KBInit();//4开中断//4.1开键盘中断EnableKBint();//4.2开总中断EnableInterrupt();键盘中断函数#include"isr.h"//-------------------------------------------------------------------------*//函数名:isrKeyBoard*//功能:扫描键盘,向串口发送键值和定义值*//参数:无*/