欢迎来到天天文库
浏览记录
ID:30138232
大小:181.04 KB
页数:5页
时间:2018-12-27
《实验三键盘中断实验》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、昆明理工大学信息工程与自动化学院学生实验报告(2011—2012学年第2学期)课程名称:嵌入式技术基础与实验开课实验室:信自楼2342012年5月10日年级、专业、班自动化092学号姓名成绩实验项目名称键盘中断实验指导教师教师评语教师签名:年月日注:报告内容按实验须知中七点要求进行。一、实验目的1、熟练运用CodeWarrior嵌入式开发系统环境、汇编、C语言、调试方式;2、复习串行通信接口(SCI)的内容;3、加强键盘中断基本原理及编程原理的理解;4、理解行扫描法的原理并能进行键值识别和键值编码;5、理解键盘接线原理图。(如图5-1所示)二、实验原理及基本技术路线图(方框原理图)本实验采用
2、4x4矩阵式键盘。PTG4、PTD2、PTD3、PTD7分别接四根线,定义为输入且上拉,PTG0-PTG3分别接四根行线,且定义为输出行扫描法是使每一行输出低电平,,其余行为高电平,然后读取列值,如果列值中有低电平,则表明该行和列交点处的键被按下;若为全高则再扫描下一行,知道扫描完全部的行为止。这样就可以知道哪一行哪一列交点键被按下。MCU与键盘接线原理如下-5-图3-1I/O口引脚的连接图三、所用仪器、材料(设备名称、型号、规格等)飞思卡尔试验箱四、实验方法、步骤低电平1、资源使用键盘的-数据线分别接在MCUG口的0-4号引脚、D口的2、3、7号引脚。MCU的SCI发送引脚E口的0号引脚接
3、MAX232的TTL电平接收引脚(11号),MCU的SCI接收引脚E口的1号引脚接MAX232的TTL电平发送引脚(12号)2、硬件设计先阅读源程序,查看相应的端口的宏定义,再根据端口号来接线。AW60键盘MAX232计算机3、软件设计(主要的程序流程图)-5-4、编程(关键性程序段)PC接收函数privatevoidSCIPort_DataReceived(objectsender,System.IO.Ports.SerialDataReceivedEventArgse){Stringstr=String.Empty;boolFlag;//标记串口接收数据是否成功intlen;//标记接收
4、的数据的长度//调用串口接收函数,并返回结果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);//十进制和十六进
5、制形式按字节进行处理for(inti=0;i6、is.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"7、isr.h"//-------------------------------------------------------------------------*//函数名:isrKeyBoard*//功能:扫描键盘,向串口发送键值和定义值*//参数:无*//返回:无*//说明:调用了KBScanN、SCISend1、KBInit函数*//----------------------------------
6、is.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"
7、isr.h"//-------------------------------------------------------------------------*//函数名:isrKeyBoard*//功能:扫描键盘,向串口发送键值和定义值*//参数:无*//返回:无*//说明:调用了KBScanN、SCISend1、KBInit函数*//----------------------------------
此文档下载收益归作者所有