《dsp实验报告九.doc》由会员分享,可在线阅读,更多相关《dsp实验报告九.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、DSP实用技术实验报告(八) 班级: 学号: 姓名: 实验八 表贴键盘控制实验一实验目的了解ICETEK-DM642-AVM 板上表贴键盘的使用方法和连接、控制方式。二实验设备1PC 兼容机一台,操作系统为Windows2000(或Windows98,WindowsXP,以下默认为Windows2000),安装Code Composer Studio2.21 软件2ICETEK-DM642-AVM 实验箱3USB 连接电缆一条三实验步骤1实验准备(1)连接开发板+5V 供电电源,连接实验箱220V 供电电源连线。(2)打开实验箱上的开关,给实验箱供电。上电正常时,ICETEK-DM642-AV
2、M 评估板的上电指示灯常亮,复位指示灯熄灭。注意:如果在ICETEK-DM642-AVM 评估板上电后,指示灯的亮灭状态不对,请立即关闭实验箱电源开关,检查设备。拨动仿真选择开关(J2)选择DM642 仿真方式。打开液晶显示屏电源开关,此时液晶显示屏上应显示条状彩条。如果没有彩条显示,请按下板上的S1 复位按钮,再次观察液晶显示屏是否有彩条输出。提示:如果使用自配的图像输入设备和图像输出设备,请务必保证各设备DM642-AVM 评估板的供电电源共地。如果不共地,过大的电压差,将击穿DM642 评估板。(3)设置Code Composer Studio2.2 在硬件仿真(Emulator)方式下
3、运行。请参照第二部分,第二章操作。(4)启动Code Composer Studio2.2。双击桌面上“CCS 2(C6000)”,启动Code Composer Studio2.2;如果无法进入CCS 软件,请参照第二部分,第三章操作,排除问题。2打开工程:fileWorkspaceLoad Workspace 选择C:ICETEK-DM642-AVM_V3Lab37-KEYkey.wks。之后回出现如下图所示窗口:图III-7-33浏览工程中源程序并理解含义。4编译、连接、下载并运行程序。5按下表贴键盘上相应键位,在Watch 窗口Value 一栏和Memory窗口会显示相应的键位值。如:
4、按下表贴键盘上“+”(注意两个窗口中显红色的值的变化)另:按下表贴键盘回车键位时,Watch Window 窗口中显示的是“!”。6结束运行,退出工程。四实验结果表贴键盘控制WATCH 窗口CKEY 变量大小。Memory窗口会显示相应的键位值不变。五问题与思考如果不在主程序中加断点程序运行结果会是什么样的?为什么要加上断点?答:不加断点表贴键盘无法控制WATCH窗口中CKEY的实时变化。若不加断点,按键一次,且停止运行一次CKEY的值才变化并且只能变化一次。加断点的原因是使两者能够同步起来。六 程序#include c6x.h#include scancode.h#define SPEAKE
5、R (*(unsigned char*)(0x)#define KEY (*(unsigned char*)(0x)void InitEMIF();/ 初始化EMIF接口char ConvertScanToChar(unsigned char cScanCode);void Delay(unsigned int nDelay);/ 软件延时子程序main()int i=0,j,dbScanCode;unsigned int uWork;char cKey; InitEMIF();while ( 1 )dbScanCode=KEY;if(dbScanCode&0x0f0)!=0x0f0) cKe
6、y=ConvertScanToChar(dbScanCode); SPEAKER=SPEAKER|0x4; SPEAKER=SPEAKER&0x0fb;/ 软件延时子程序void Delay(unsigned int nDelay)unsigned int i,j,k;for ( i=0;inDelay;i+ )for ( j=0;j6144;j+ )k+;/ 初始化EMIF接口void InitEMIF()#define EMIFA_GCTL 0x#define EMIFA_CE1 0x#define EMIFA_CE0 0x#define EMIFA_CE2 0x#define EMIFA
7、_CE3 0x#define EMIFA_SDRAMCTL 0x#define EMIFA_SDRAMTIM 0xc#define EMIFA_SDRAMEXT 0x#define EMIFA_CE1SECCTL 0x#define EMIFA_CE0SECCTL 0x#define EMIFA_CE2SECCTL 0x#define EMIFA_CE3SECCTL 0x /* EMIFA */ *(int *)EMIFA_GCTL = 0x; *(int *)EMIFA_CE0 = 0xffffffd3; /* CE0 SDRAM */ *(int *)EMIFA_CE1 = 0x73a28
8、e01; /* CE1 Flash + CPLD */ *(int *)EMIFA_CE2 = 0x22a28a22; /* CE2 子卡 32-bit 异步接口 */ *(int *)EMIFA_CE3 = 0x22a28a42; /* CE3 子卡 32-bit 同步接口 */ *(int *)EMIFA_SDRAMCTL = 0x; /* SDRAM 控制 */ *(int *)EMIFA_SDRAMTIM = 0xb; /* SDRAM 刷新时序 */ *(int *)EMIFA_SDRAMEXT = 0x001faf4d; /* SDRAM 扩展控制 */ *(int *)EMIFA
9、_CE0SECCTL= 0x; /* CE0 第二控制寄存器 */ *(int *)EMIFA_CE1SECCTL= 0x; /* CE1 第二控制寄存器 */ *(int *)EMIFA_CE2SECCTL= 0x; /* CE2 第二控制寄存器 */ *(int *)EMIFA_CE3SECCTL= 0x; /* CE3 第二控制寄存器 */char ConvertScanToChar(unsigned char cScanCode)char cReturn;cReturn=0;switch ( cScanCode )case SCANCODE_0: cReturn=0; break;ca
10、se SCANCODE_1: cReturn=1; break;case SCANCODE_2: cReturn=2; break;case SCANCODE_3: cReturn=3; break;case SCANCODE_4: cReturn=4; break;case SCANCODE_5: cReturn=5; break;case SCANCODE_6: cReturn=6; break;case SCANCODE_7: cReturn=7; break;case SCANCODE_8: cReturn=8; break;case SCANCODE_9: cReturn=9; br
11、eak;case SCANCODE_Plus: cReturn=+; break;case SCANCODE_Minus: cReturn=-; break;case SCANCODE_Xing: cReturn=*; break;case SCANCODE_Jing: cReturn=#; break;case SCANCODE_Enter: cReturn=!; break;return cReturn;#define SCANCODE_0 0xD7#define SCANCODE_1 0xEE#define SCANCODE_2 0xDE#define SCANCODE_3 0xBE#d
12、efine SCANCODE_4 0xED#define SCANCODE_5 0xDD#define SCANCODE_6 0xBD#define SCANCODE_7 0xEB#define SCANCODE_8 0xDB#define SCANCODE_9 0xBB#define SCANCODE_Xing 0xE7#define SCANCODE_Jing 0xB7#define SCANCODE_Enter 0x7B#define SCANCODE_Plus 0x7E#define SCANCODE_Minus 0x7D七 感想 通过这次试验我了解了按键扫描的程序编写,发现程序和单片机的矩阵按键扫描方式基本一样,对于这个程序很好理解,通过这次实验,对ICETEK-DM642-AVM 评估板的软件仿真及调试有了初步的了解与认识,因为做实验的时候都是按照实验指导书按部就班的,与真正的理解和掌握还是有些距离的。但是这也为我们日后运用这些知识打下了基础,我觉得实验中遇到的问题,不要急于问助教或者同学,先自己想办法分析原因,想办法解决,这样对自身的提高更多吧。通过做实验,把学习的知识利用起来,也对这门课程更加有兴趣了。