1、目录实验一 CCS 操作实验2实验二 存储器实验5实验三 发光二极管循环点亮实验10实验四 数码显示实验12实验五 硬件中断实验14实验六 液晶显示实验16实验七 定时器实验18实验八 步进电机控制实验20实验九 用DSP芯片生成正弦信号发生器23附录: 数据流程图及端口地址24实验一 CCS 操作实验一、实验目的1、熟悉CCS2.0软件的使用。2、了解SZ-DSPF开发教学平台的使用。二、实验设备计算机、DSP硬件仿真器、SZ-DSPF开发教学平台。三、实验原理了解怎样连接DSP仿真器、对CCS的仿真配置及怎样在CCS内新建工程并生成*.out文件。四、实验步骤安装CCS2.0的Simula
2、tor方式:双击桌面上的Setup CCS2(C5000)图标,关闭Import Configuration窗口,在System Configuration中的My System的下面可看到一个类似板卡的图标,如果该图标的名称是“tisim54x”的话,就可直接关闭该窗口,不存盘退出。如果该图标的名称不是“tisim54x”的话,在该图标上单击右键,选择remove删除该结构,然后在Available Board Types中双击“tisim54x”的图标(如果有的话),弹出Board Properties的对话框点击“next”、“finish”然后关闭Code Composer Setup
3、窗口,存盘退出即可。 如果在Available Board Types中没有“tisim54x”的图标,则在右边框内单击“Install a Device Driver”,在路径“c:tidriver”(此目录为CCS的安装目录)中打开tisim54x.dvr文件,在Available Board Types中可看到“tisim54x”的图标,然后按上述操作。即生成CCS的Simulator方式。可以以Simulator方式启动CCS。 连接实验仪器进入硬件仿真,打开实验平台进入CCS硬件仿真环境。(具体仿真器的设置参考仿真器的安装说明) 注意,所有实验都要求:进入CCS点击GEL菜单选择C5
4、4x,选择CPU_Reset,然后再在同一菜单里选择C5416_Init。五、实验内容 计算y=a1*x1+a2*x2+a3*x3+a4*x4,需要修改教材中的源程序,以适应存储器的分配方案。要求通过仿真器查看运算结果。六、实验参考程序1、汇编语言源文件:example.asm .titleexample.asm.mmregsSTACK.usect.STACK,10h.bssa,4.bssx,4.bssy,1.def_c_int00.datatable:.word1,2,3,4.word8,6,4,2.text_c_int00:STM#0,SWWSRSTM#00A0h, PMSTLD #000
5、000100B, DPSTM#STACK+10h,SPSTM#a,AR1RPT#7MVPDtable,*AR1+CALLSUMend: BendSUM:STM#a,AR3STM#x,AR4 RPTZA,#3 MAC*AR3+,*AR4+,A STL A,y RET.end2、命令文件:example.cmdexample.obj-o example.outMEMORYPAGE 0:P_DARAM:org=0080h,len=100hPAGE 1:D_DARAM:org=0200h,len=100hSECTIONS.text:P_DARAM.data: P_DARAM.bss:D_DARAM.S
6、TACK:D_DARAM七、实验思考 如果在设置完全正确的情况下,仿真器不能正确启动,分析其的原因。实验二 存储器实验一、实验目的1、了解DSP内部数据存储器和程序存储器的结构;2、掌握DSP内部存储器和外部存储器的使用;3、了解DSP指令的几种寻址方式;二、实验设备计算机;DSP硬件仿真器;SZ-DSPF开发教学环境;三、实验硬件设置在做试验之前,需要接通该实验所需硬件电路,本实验为:先将实验向上的电源开关“MS2”和“MS3”按下,再将机箱右侧的船型开关往“I”方向打开电源;SZ-5416D主控模块上的K1硬件复位后,程序运行中不要按复位键,以免实验由于DSP复位而失效。四、实验原理DSP
7、芯片有丰富的内部快速存储器,使用内部存储器可以全速运行,达到芯片的最高速度,因此,充分利用内部存储器可以使DSP系统的整体性能达到最佳。对于一般的应用,应尽量采用内部RAM,采用内部RAM时需做如下设置:1、设置OVLY=1,使片内的0080H-7FFFH既映射在程序区,又映射在数据区;2、如果要在数据区访问片内的RAM区,应设置DROM=1。(DSP5416不行)。使用这种工作方式,由于程序区和数据区是重叠的,因此用户在编程时应注意程序和数据区的划分。 对于外扩存储器,采用外部SRAM,仍可以保存以上设置,只是需要改变*.CMD文件中的程序区和数据区的映射关系。 本实验主要是对数据存储器进行
8、数据的存储,移动。该实验所需要的硬件主要是DSP,CPLD,DRAM。实验过程是:通过CCS5000的DSP仿真器对DSP进行仿真,其操作结果通过CCS5000仿真界面进行观察。存储器的地址、空间分配表请查看教材。五、实验步骤1、启动CCS,编写实验程序代码,进行编译并加载到DSP中。2、采用单步运行或执行到光标处,并打开寄存器观察窗口和内存观察窗口,观察其执行结果。具体操作如实验一基本运算中的步骤,值得注意的是,本实验需打开三个内存窗口:Data页的.data段起始处,Data页的.stack段起始处,以及Program页的起始处。 下面仅将程序中各小段程序进行简要说明及可观察程序执行结果的
9、窗口: bk1: 立即数寻址方式;打开内存窗口的数据观察窗口地址为.data的2000H。 bk2: 绝对地址寻址方式:数据存储器地址寻址:数据观察窗口地址为实际程序所编写的地址。 bk3: 绝对地址寻址方式:程序存储器寻址方式:打开内存窗口的程序观察窗口地址为实际程序所编写(如程序中定义PDAT0为1F00)。bk4: 累加器寻址方式;打开寄存器和内存的数据观察窗口。bk5: 直接寻址方式(DP为基准),打开内存的数据观察窗口。bk6: 直接寻址方式(SP为基准),打开内存的数据观察窗口。bk7: 间接寻址方式,打开寄存器和内存的数据观察窗口。bk8: 存储器映射寄存器寻址方式,打开寄存器观
10、察窗口。bk9: 堆栈寻址方式,打开寄存器观察窗口。bk10: 程序存储器到数据存储器的复制,打开寄存器观察窗口。六、思考题1、如何将程序存储器其中的某一起始地址的Ox100个字复制到数据存储器的Ox4000为起始地址的空间中。2、如何实现用C语言编写一个对可用数据内存清零程序?七、实验参考程序1、汇编语言源文件:.titleexp2.asm.mmregs.def_c_int00DAT0.set00hDAT1.set 01hDAT2.set 02hDAT3.set 03hDDAT0.set 2004hDDAT1.set 2005hDDAT2.set 2006hDDAT3.set 2007hPD
11、AT0.set 1F00hPDAT1.set 1F01hPDAT2.set 1F02hPDAT3.set 1F03hSTACK.usect.stack,10h.text_c_int00: LD#040H,DP* 置数据页为2000h-207FhSTM#3000H,SP* 置堆栈指针STM#0FFA8H,PMST* 配置存储器等SSBXINTM* 禁止中断STM#07FFFH,SWWSR* 配置等待状态寄存器* 立即数寻址bk1:ST#1234H,DAT0ST#5678H,*(DDAT1)NOPNOPNOPbk2:MVDKDAT0,DDAT0* 绝对地址(dmad)寻址MVKDDDAT1,DAT
12、1NOPNOPNOPbk3:MVDPDAT0,PDAT0* 绝对地址(pmad)寻址MVDPDAT1,PDAT1NOPNOPNOPbk4: LD #PDAT1,A* 累加器寻址READADAT2NOPNOPNOPbk5: ST #3210H,DAT3* 直接寻址(DP指针)NOPNOPNOPbk6:SSBXCPLNOPNOPNOPST #9876H,DAT3NOPNOPNOPRSBXCPLNOPNOPNOPbk7: STM#DDAT3,AR0ST #9876H,*AR0NOPNOPNOPbk8:STM#8888H,T NOP NOP NOPbk9: PSHMT POPMT NOP NOP NO
13、Pbk10: STM#4000H,AR0 RPT#10 MVPD1000H,*AR0+ NOP NOP NOPend: B end 2、命令文件:exp2.obj-oexp2.outMEMORYPAGE 0:PROG :org=01000h,len=01000hPAGE 1: DATA :org=02000h,len=01000h STACK :org=03000h,len=01000h explx :org=08000h,len=0100hSECTIONS.text:PROGPAGE 0.stack:STACKPAGE 1实验三 发光二极管循环点亮实验一、实验目的1、熟悉SZ-DSPF开发教
14、学平台的使用;2、掌握DSP对I/O口的访问;3、熟悉C语言程序设计;二、实验设备计算机;DSP仿真器;SZ-DSP开发教学平台。三、实验硬件设置在做试验之前,需要接通该实验所需的硬件电路,本实验为:先将试验箱上的电源开关“MS2”,“MS3”和“MS4”按下,再将机箱右侧的船型开关往“I”方向打开电源;SZ-5416D主控模块上的J7,J9,J4,J16短接;在“设置模块”中将“A”和“C”设置为“1”。然后开始做实验,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位而失败。四、实验原理DSP处理器TM320VC5416
15、的64K字IO空间必须通过外加缓存或锁存电路,配合外部IO读写控制程序构成片外外设的控制电路。所以本实验中采用CPLD(EPM7128)和锁存器(在XC95216中已设计好)给DSP扩展一个IO口,来完成DSP对IO口的访问。本实验程序主要是实现将数往发光二极管的IO端口地址C002H送数,通过观察发光二极管的变化,来验证其正确性。五、实验步骤及结果本程序是一个测试八个指示灯的实验,运行程序可以看到八个指示灯从左到右依次点亮。步骤:1、启动CCS,编写实验程序代码,进行编译并加载到DSP中。2、采用单步运行或执行到光标处,或全速运行。观察其结果。六、实验程序框图 程序框图见下页图3-1七、实验
16、思考:1、请采用三种以上的寻址方式来完成上述实验,并描述其程序运行过程及原理。图31 二极管循环点亮程序框图NY开 始初始化DSP及各种参数清零:XF=1;允许写:XF=1设置IO地址为C002H向IO端口写入数据(高8位,低有效)写入8次完?改变写入的数据 2、快捷的DSP与慢速I/O进行数据交换时,需设置I/O空间的等待状态,请测试等待数为多少时,I/O口才能正常工作?实验四 数码显示实验一、实验目的 熟练掌握DSP的各种指令及CSS软件使用方法;进一步熟悉DSP的I/O访问方式的操作,通过I/O方式将数据显示到数码管上。二、实验设备计算机;DSP硬件仿真器;SZ-DSPF开发教学平台。三
17、、实验硬件设置做实验之前,需要接通改实验所需的硬件电路,本实验为:先将试验箱上的电源开关 “MS2,MS3和“MS4”按下,再将机箱右侧的船型开关往“1”方向打开电源;SZ-5416D主控模块上的J7,J9,J4,J16短接;在“设置模块”中将“A”和“C”设置为“1”。然后开始实验,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1硬件复位后,程序中不要再按复位键。四、实验原理本实验是采用CPLD(EPM7128)给DSP扩展一个IO口,来完成对IO口的访问。本实验是由DSP通过IO方式对数码管进行操作,即向数码管送数据,高8位数据线D8D15为数码管的位码,低8位数据线D0D7为
18、数码管的段码,此IO端口地址是C000H,该实验中要求熟练运用DSP的各种指令,能使显示数据出现左移或右移等。数据流程请参考附录。五、实验步骤及结果(1)启动CCS,编写试验程序代码,进行编译并加载到DSP中。(2)采用单步运行或执行到光标处,或全速运行。观察其结果,可以看到八位数码管从左到右依次显示1-7、8-F,不断循环显示。六、实验框图如图4-1所示 程序框图见下页图4-1。七、实验思考1、如何设置DP、SP值,以及DP、SP在程序中所起的作用是什么?2、如何理解、设置IO等待寄存器?Y开 始初始化DSP及各种参数清零:XF=0;允许写:XF=1查表后将数据写入到IO地址(C000h)空
19、间,低位为段码,高位为位码。写入8次完?输出段码数据输出位选通信号延 时位码向左移一位指向下一个显示数据终 止N图4-1 程序框图实验五 硬件中断实验一、实验目的了解DSP外部中断的使用,中断服务程序的设计方法;掌握DPS中断向量表的划分。二、实验设备计算机;DSP硬件仿真器;SZ-DSPF开发教学平台;三、实验硬件设置做实验之前,需要接通该实验所需的硬件电路,本实验为:先将实验箱上的电源开关 “MS2”、“MS3”和“MS4”按下,再将机箱右侧的船型开关往“1”方向打开电源;SZ-5416D主控模块上的J7,J9,J4,J16短接;在“设置模块”中将“A”和“C”设置为“1”。然后开始做试验
20、,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位而失败。四、实验原理及说明本实验采用键盘中断,当有键按下时给DSP一个中断信号(INT2),DSP通过IO端口地址C001h读键值,在读取键值后由数码管显示出来。硬件原理图请参考“SZ-LK板”的说明,逻辑关系请参考第二章逻辑分析5416部分,数据流程请参考第五章中的数码管和按键。五、实验步骤及结果 本实验是一个测试键盘的实验,运行程序依次按键18,数码管依次显示07,中间键一一对应,任意按一键,其对应的数码管显示相应的数字。步骤:1、启动CCS,编写实验程序代码,进行编译
21、并加载到DSP中。2、采用单步运行或执行到光标处,或全速运行,观察其结果。六、实验程序框图程序框图见下页图5-1及图5-2七、实验思考 分析下例指令的特点POPD 、POPM、PSHD、 PSHM?开 始初始化DSP及各种参数清零:XF=0允许写:XF=1等待键盘中断图5-1 主程序框图图5-2 中断服务程序框图开始现场保护软件消抖执行相应的操作中断返回实验六 液晶显示实验一、实验目的 1、了解128*64液晶显示屏的工作原理; 2、熟悉DSP和外围器件的连接和操作;3、学习用DSP控制液晶显示屏显示汉字和图像的程序设计。二、实验设备 计算机;DSP硬件仿真器;SZ-DSPF开发教学平台。三、
22、实验硬件设置 做实验之前,需要接通该实验所需的硬件电路,本实验为:先将实验箱上的电源开关“MS2”,“MS3”和“MS4”按下,再将机箱右侧的船型开关往“1”方向打开电源;SZ-5416D主控模块上的J7,J9,J4,J16短接;在“设置模块”中将“A”和“C”设置为“1”。然后开始做实验,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位而失败。四、实验原理及说明 本液晶显示屏是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128*64全点阵液晶显示器组成,可完成图形显示,也可以显示8*4个(16*16点阵)汉字。对
23、于液晶显示屏的控制可以分为几种状态来控制,具体详细资料请参阅随机光盘资料中的液晶显示屏资料。根据液晶显示原理,我们可以用DSP的I/O方式对液晶显示屏进行控制,CPLD(EPM7128)利用DSP的线IOSTRB和地址线经逻辑组合扩展I/O口,并给出液晶显示需要的几种状态。这样DSP就只要采用I/O访问方式就能对液晶显示屏读写控制等,来完成显示功能。液晶显示屏的硬件原理图请参考“SZ-LK板”的说明,逻辑关系请参考第二章逻辑分析5416部分,数据流程请参考第五章中的LCD。五、实验步骤及结果本实验是一个液晶屏的测试实验,运行程序即可在液晶屏中得到一个小熊猫。步骤:1、启动CCS,编写实验程序代
24、码,进行编译并加载到DSP中。2、采用单步运行或执行到光标处,或全速运行。观察其结果。六、实验程序框图图61 程序框图开 始初始化DSP及各种参数清零:XF=0允许写:XF=1终止 液晶屏初始化液晶清屏程序调用汉字或图形显示程序 七、实验思考 1、尝试调入其他数据,显示不同的图形或文字。 2、思考如何显示一段连续的动态图像。实验七 定时器实验一、实验目的 1、熟悉DSP的定时常数的设置、定时器中断初始化; 2、掌握定时器中断的编程方法; 3、学会使用定时器中断方式控制程序流程。二、实验设备计算机:DSP仿真器;SZ-DSPF开发教学平台。三、实验硬件设置做试验之前,需要皆同改试验所需的硬件电路
25、本实验为:先将验箱上的电源开关“MS2”、“MS3”和“MS4”按下,再将机箱右侧的船型开关往“I”方向打开电源;SZ-5416D主控模块上的J7,J9,J4,J16短接;在“设置模块”中将“A”和“C”设置为“1”。然后开始做实验,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位而失败。四、实验原理及说明本实验是要求能较为准确的计时并将时钟、分钟、秒钟显示到数码管上。此试验是利用DSP的定时器做时钟,并将时钟、分钟、秒钟显示到数码管上。编写程序时先编写定时器初始化程序,运用DSP定时器来定时计数,并通过定时器服务程序刷新
26、数码管。数据流程请参考附录。五、实验步骤及说明本实验是一个模拟时钟的实验。运行程序,可以看到LED显示23-58-57为初值的时、分、秒计时。可以在程序里面改变初值。六、实验程序框图 程序框图见下页图7-1及图7-2七、思考题1、如果改变时钟模式寄存器(CLKMD)会对实验产生什么影响? 2、请参考上述程序设计一个能精确到ms级的显示程序。开 始初始化DSP及各种参数清零:XF=0允许写:XF=1等待定时中断 初始化定时器启动定时器开 始累加1计数器如果秒计数器溢出,累加分计数器如果分计数器溢出,累加时计数器如果时计数器溢出,调用显示程序计数器中断返回图7-1 主程序框图图7-2 中断服务程序
27、框图实验八 步进电机控制实验一、实验目的了解步进电机的工作原理:掌握DSP对I/O的控制方法:学习DSP对步进电机控制的程序设计。二、实验设备计算机:DSP硬件仿真器:SZ-DSPF开发教学平台三、实验硬件设置做实验之前,需要接通该实验所需的硬件电路,本实验为:先将实验箱上的电源开关“MS0”“MS2”和“MS4”按下,再将机箱右侧的船型开关往“I”方向打开电源:SZ-5416D主控模块上的J7,J9,J16短接;在“设置模块”中将“A”和“C”设置“I”。然后开始做实验,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1的硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位
28、而失败。四、实验原理本实验是通过DSP的I/O方式来控制电机的运转,这里采用CPLD(EPM7128)给DSP扩展了一个I/O口,来完成对步进电机的控制。在DSP的I/O方式下,将DSP的经过电平转换的低四位数据线D5D2送往步进电机模块的锁存器,信号再经过隔离和驱动后对四相(A、B、C、D)步进电机控制。DSP对步进电机控制的I/O访问地址是C005h,数据流程请参考附录中的电机。五、实验步骤本实验是一个步进电机测试实验:可在液晶屏上看其转向。做本实验时请注意按键: 按键1是停止。按键2是正转。按键3是反转,按SZ-5416 EVM板上复位键要也可停止电机运转。步进电机旁的四个LED显示的是
29、电机四相的通断,运行时可以看到它们两个两个的依次循环显示,可以看出此步进电机的运行方式。步骤:1:正确连接好实验仪、仿真器、上电;2:运行CCS,装入程序、运行,按相应键,观看并记录步进电机正转、反转、停止等状态,观察指示灯的通断次序,思考DSP是如何控制步进电机的。六、实验程序框图主程序框图中断服务程序框图开 始初始化DSP及各种参数清零:XF=0允许写:XF=1等待键盘中断 LCD清零LCD显示“反转”,调用电机反转程序中断返回LCD显示“正转”,调用电机正转程序LCD清屏。停止电机运转NNN键2 ?Y键3 ?Y开 始现场保护防抖,得到键值键1 ?Y七、实验思考在以上程序的基础上加上如下功
30、能:用键控制加速、减速。实验九 用DSP芯片生成正弦信号发生器一、实验目的在他通信、仪器和控制等领域的信号处理系统中,通常会用到正弦波发生器。本实验了解用DSP生成正弦信号发生器的实现原理及掌握在定点DSP中,如何进行小数运算;二、实验设备计算机、DSP硬件仿真器、SZ-DSPF开发教学平台、示波器。三、实验硬件设置做实验之前,需要接通该实验所需的硬件电路,本实验为:先将实验箱上的电源开关“MS0”“MS2”和“MS4”按下,再将机箱右侧的船型开关往“I”方向打开电源:SZ-5416D主控模块上的J7,J9,J16短接;在“设置模块”中将“A”和“C”设置“I”。然后开始做实验,注意在做DSP实验时开始按了SZ-5416D主控模块上的K1的硬件复位后,程序运行中不要再按复位键,以免实验由于DSP复位而失败。四、实验原理 一般产生正弦波的方法有两种: (1) 查表法。此种方法用于对精度要求不是很高的场合。如果要求精度高,表就很大,相应的存储器容量也要增大。 (2)台劳级数展开法。这是一种更为有效的方法。与查表法相比,需要的存储单元很少,而且精度高。一个角度为的正弦函数,可以展开成台劳级数,取其前5项进行近似: 五、实验要求 利用台劳级数法编写计算正弦函数值的程序。以一定的时间间隔发送数据形成不同频率的正弦信号。用示波器观察。附录: 数据流程图及端口地址25