1、 第 0 页湖南科技学院二一三年上学期期末考试通信工程 专业 2013 级 DSP 原理及应用(实验) 试题考试类型:开卷 试卷类型:A 卷 考试时量:120 分钟一、选择题 (本题共 10 小题,每小题 2 分,满分 20 分,答案填入下表)题号 1 2 3 4 5 6 7 8 9 10答案 A A A C C A A B D B1实验课中,配置 DSP 工作在纯软件环境或硬件仿真环境的窗口名称是( )A、Setup CCStudio v3.3 B、 CCStudio v3.3 C、emurst D、 Protel 99 SE2 DSP 实验箱附带的 USB 信号线连接 ICETEK-510
2、0SB 仿真器和 PC 机后,ICETEK-5100SB 仿真器上指示灯 Power 和 Run 灯点亮,可通过查看桌面上的图标名称( )查看初始化是否成功。A、CCStudio v3.3 B、Setup CCStudio v3.3 C、Protel 99 SE D、emurst 3. CCS 可以工作在纯软件仿真环境中,进入 CCS 设置窗口如(图一)所示, My System 应该选择(图二)中的( )(图一)(图二)A、C55xx Rev3.0 Functional Simulator B、C55xx Rev3.0 Cycle Accurate Simulator题 号 一 二 三 四
3、五 总分 统分人得 分阅卷人复查人第 1 页C、ICETEK USB 5100-C5510 V2.x Emulator D、ICETEK USB 5100-C5510 Emulator4. 实验中,单步调试的按键是( )A、F5 B、F 6 C、F10 D、F115. 在程序中,观察某变量在运行过程的变化,可以选中该变量右键,选择( )A、 Editor B 、Quick Watch C 、Add to Watch Window D 、Go to6. 实验中,要想查看寄存器值的变化,可通过“View” 菜单中的( )项开启内存观察窗口。A 、Memory B 、Disassembly C 、R
4、egister D 、Watch Window7.实验中,直流电机调速改变占空比的方法是( )A、定宽调频法 B、调宽调频法 C、定频调宽法 D、以上答案均不对8. 下面几个选项中,不是 C 语言开发的优点的是( )A、易于开发和维护 B、不容易发生流水线冲突 C、可移植性强 D、优化代码简单9. 下面几个选项中,不是汇编语言开发的缺点的是( )A、可读性差 B、代码量大 C、可移植性差 D、容易产生流水线冲突10 C 语言程序在执行时,先要调用 C 标准库中的初始化程序,入口标号为( )。A、_c_init0 B、 _c_init00 C、start D、ioport二 、填空题(每空 2
5、分,满分 20 分)1. DSP 的软件开发工具包括 汇编器 、 编译器 、 连接器 、调试器、代码模拟器、代码库及实时操作系统等。 2. ICETEKVC5509-A 实验箱上,用户可编程的指示灯有 4 个。3. 从当前位置开始执行程序,直到遇到断点后停止的调试按钮是 run ;用来暂停正在执行的程序的调试按钮是 halt 。4. DSP 定时器实验中,将定时器 timer_init( )函数里的“prd0 = 0x0ffff ”改成“prd0 = 0x0fff”,指示灯闪烁的频率变 快 (填快或慢),发生这种现象的原因是计数器采用 减 1 (填减 1 或加 1)计数的方式。5. TMS32
6、0C55x DSP 的中断可分为可屏蔽中断和不可屏蔽中断两种,软件中断是 不可屏蔽 中断,C5509 可响应个 5 外中断。三、简答题(每小题 8 分,共 16 分)1. 怎样创建一个新的工程项目?第 2 页答:(1)在主菜单“project”中选择“new”选项(2)在“Project Name”域中输入要创建的项目名,在“Location”域输入或选择将要创建的工程项目所处的目录,对于每个新建的工程项目最好建立不同的目录。(3)在“project”下拉列表中选择将要 创建的工程项目的配置。(4)在“Target”下拉列表中选择要创建的工程项目所对应的目标器件系列 (TMS320C54xx,
7、TMS320C55xx 等)(5)最后单机“finish”按钮。2. 简述 ICETEK-VC5509-A 与 PC 机没有正常连接的常见原因。(假设设备是正常的,列出至少4 条以上)答:1.USB 线松弛没连接好2.电源没开3.软硬件模式没选对4.ICETEK-VC5509-A 等相关驱动没装好五、程序题(共 44 分)1. 给下面的程序添加注释。 (12 分)void InitTimer()ioport unsigned int *tim0; ioport unsigned int *prd0; ioport unsigned int *tcr0; ioport unsigned int
8、*prsc0; tim0 = (unsigned int *)0x1000;prd0 = (unsigned int *)0x1001;tcr0 = (unsigned int *)0x1002;prsc0 = (unsigned int *)0x1003;*tcr0 = 0x04f0; / 设置定时器控制寄存器并且启动定时器 *tim0 = 0;*prd0 = 15000; / 初始化定时器0周期寄存器 *prsc0 = 0x0f; / 设置4位定时器初值 16分频 第 3 页*tcr0 = 0x00e0; / 关闭定时器0控制寄存器,定时器 void InitCTR()CTRGR=0; C
9、TRGR=0x80; CTRGR=0;CTRLR=0; / 清屏 CTRLR=0x40; / 设置起始行 CTRLR=0x0c0;/ 设置起始列 LCDCMD(LCDCMDTURNOFF);dbClearKey=CTRCLKEY;LBDS=0; / 关闭显示器 2. 已知 AC0 = 00 EC00 0000H, AC1 = 0000000000H,TC2 = 1,AR1=0200H,(0200)=00FEH,(0201) = 0020H。ADDSUBCC *AR1+ ,AC0, TC2, AC1;执行上面指令之后,AC0、AR1 和 AC1 的值分别是多少?要求用汇编代码写出完整的计算过程,
10、包括各个参数的赋值。 (14 分)解:如果 TC2=1,则 AC1=AC0+(*AR1+)#16;否则 AC1=AC0(*AR1+)#16,这里 TC2=1,所以 AC1=AC0+(*AR1+)#16,AC1=00EC000000H+00FE0000H=00ECFE0000H,AR1=0201H,AC0=00EC0000H汇编代码:MOV AC0,#EC000000HMOV AC1,#00000000HMOV TC2,#1MOV AR1,0200HCMP 1,TC2JNE NEXTLD (AR1),16,MOV AR2,(AR1)ADD AC0,AR2MOV AC1,AC0ENDNEXT:SU
11、B AC0,AR2MOV AC1,AC0END第 4 页INC AR13 试设计程序在液晶显示屏上显示计时时钟,精确到秒,形式为“时时:分分:秒秒”。数字 09 在 ledkey108矩阵中(只写主程序即可)。 (18 分)#define LCDDELAY 1#include “myapp.h“#include “ICETEK-VC5509-EDU.h“#include “scancode.h“main()int i,nCount=0,nBW=0;PLL_Init(20);SDRAM_init();InitCTR();TurnOnLCD(); / 打开显示LCDCLS(); / 清除显示内存C
12、TRLCDCMDR=LCDCMDSTARTLINE; / 设置显示起始行Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for (;)CTRLCDCMDR=LCDCMDPAGE; / 设置操作页=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);CTRLCDCMDR=LCDCMDVERADDRESS; / 起始列=0Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);for ( i=0;i64;i+ )if(i8)CTRLCDRCR=( nBW=0 )?(ledkeyai):(ledk
13、eyai); / 屏幕左侧第 1 至 8 行第 i 列赋值 port8002=0; / (赋值后当前操作列自动加 1,所以不需设置)else if(i16)CTRLCDRCR=( nBW=0 )?(ledkeybi-8):(ledkeybi-8); / 屏幕左侧第 1 至 8 行第 i 列赋值 port8002=0; / (赋值后当前操作列自动加 1,所以不需设置)else if(i24)CTRLCDRCR=( nBW=0 )?(ledkey10i-16):(ledkeyci-16); / 屏幕左侧第 1 至 8 行第 i 列赋值 else if(i32)CTRLCDRCR=( nBW=0 )
14、?(ledkeyci-24):(ledkeydi-24); / 屏幕左侧第 1 至 8 行第 i 列赋值 第 5 页else if(i40)CTRLCDRCR=( nBW=0 )?(ledkeydi-32):(ledkeyei-32); / 屏幕左侧第 1 至 8 行第 i 列赋值 else if(i48)CTRLCDRCR=( nBW=0 )?(ledkey10i-32):(ledkeyei-32);else if(i56)CTRLCDRCR=( nBW=0 )?(ledkeyei-32):(ledkeyei-32); else CTRLCDRCR=( nBW=0 )?(ledkeynCounti-40):(ledkeynCounti-40); /屏幕左侧第 1 至 8 行第 i 列赋值 port8002=0; / (赋值后当前操作列自动加 1,所以不需设置)Delay(LCDDELAY);CTRLCDCR=0;Delay(LCDDELAY);Delay(1024);nCount+;if ( nCount=10 )e+;if(e=6) d+;e=0;if(d=10) c+;d=0;if(c=6)b+;c=0;if(b=10)a+;b=0;if(a=2nCount=0;/nBW=1-nBW;LEDkey108 =0x0,0x0,0x0,0x66,0x66,0x0,0x0,0x0