欢迎来到天天文库
浏览记录
ID:34053439
大小:70.50 KB
页数:8页
时间:2019-03-03
《实验的三4x4键盘控制实验的》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实用标准文案实验报告课程名称嵌入式系统实验名称4x4键盘控制实验姓名王闯学号200907040318专业班级软件0903实验日期年月日成绩指导教师王彩玲一、实验目的1、通过实验掌握中断式键盘控制与设计方法;2、掌握中断式键盘检测程序的设计思路;3、熟练编写ARM核处理器S3C44B0X中断程序;二、实验设备1、硬件:EMBESTS3CEV40实验平台,EmbestARM标准/增强型仿真器套件,PC机;2、软件:EmbestIDE2003集成开发环境,Windows98/2000/NT/XP操作系统。三、实
2、验内容使用实验板上4×4用户键盘,编写程序通过中断的方式读入键值,并在实验板的LED数码管上显示读到的键值。四、实验原理键盘接口电路如图所示,板上扩展了一个4×4行列式矩阵键盘接口。该键盘是采用中断扫描的方式进行工作,行线选用了4个数据线,列线选用了4个地址线。行线接上拉电阻保持高电平,并通过与门74HC08将输出信号与MCU的中断EXINT1连接;列线接下拉电阻保持低电平。当有键盘按下时,该行线被拉为低电平,使得EXINT1输入也为低电平,MCU产生中断。中断产生后通过对键盘的行和列进行扫描的方法可以计
3、算出是哪个键按下,并跳到相应的键盘处理程序中去。芯片74HC541是通过片选信号nGCS3来选通的,这样可以保证在键盘不使用的情况下MCU读不到行线的输入信息。精彩文档实用标准文案五、实验操作步骤(1)准备实验环境。使用Embest仿真器连接目标办,使用EmbestS3CEV40实验板附带的串口线连接实验板上的UART0和PC机串口。(2)在PC机上运行Windows自带的超级终端串口通信程序(设置波特率为115220b/s,1各停止位,无校验位,无硬件流控位);或者使用其他的串口通信程序。(3)使用Em
4、bestIDE并通过Embest仿真器连接实验板,打开实验例程目录下Keyboard_test子目录中的Keyboard_Test.ews例程。编译、连接通过后,连接目标板,下载并运行它。(4)在PC上观察超级终端程序主窗口,可以看到如下显示:Embest44B0XEvalutionBoard(S3CEV40)KeyboardTestExamplePleasepressonekeyonkeyboardandlookatLED...(5)用户可以按下实验系统中的4×4键盘,在8段数码管上观察显示结果。精彩文
5、档实用标准文案六、实验源程序1、变量初始化硬件使用外部中断1,程序设计可以先进行初始化,例如变量及相关中断控制寄存器等。volatileUCHAR*keyboard_base=(UCHAR*)0x06000000;//键盘访问硬件基地址#defineKEY_VALUE_MASK0x0F;//初始数据状态2、键盘控制初始化*函数名称:init_keyboard*函数功能:键盘控制初始化部分*参数:无*返回:无voidinit_keyboard(){rINTMOD=0x0;//IRQ模式rINTCON=0x1
6、;//允许IRQ中断rINTMSK=~(BIT_GOBAL
7、BIT_EINT1);//开外部中断EINT1pISR_EINT=(int)KeyboardInt;//键盘中断入口函数/*PORTG/rPCONG=0xffff;//PG口配置为EINT7~0rPUPG=0x0;//上拉使能rEXTINT=rEXTINT
8、0x20;//EINT1//下降沿有效rI_ISPC=BIT_EINT1;//中断清除rEXTINTPND=0xf;//清寄存器EXTINTPND3、中断服务程序/**************
9、*****************************************************************函数名称:KeyboardInt*函数功能:键盘中断服务程序*参数:无*返回:无精彩文档实用标准文案*******************************************************************************voidKeyboardInt(void){intvalue;rI_ISPC=BIT_EINT1;//中断清除rEXTIN
10、TPND=0xf;//清寄存器EXTITPNDvalue=key_read();if(value>1)DIigit_Led_Symbol(value);rI_ISPC=BIT_EINT1;rINTCON=0x1;}4、8段数码管程序/*以下为定义8段数码管字符显示段码*/#defineSEG_A0x80#defineSEG_B0x40#defineSEG_C0x20#defineSEG_D0x08#defineSEG_E0x0
此文档下载收益归作者所有