dsp实验报告.docx

上传人:b****2 文档编号:14429484 上传时间:2023-04-23 格式:DOCX 页数:43 大小:151.49KB
下载 相关 举报
dsp实验报告.docx_第1页
第1页 / 共43页
dsp实验报告.docx_第2页
第2页 / 共43页
dsp实验报告.docx_第3页
第3页 / 共43页
dsp实验报告.docx_第4页
第4页 / 共43页
dsp实验报告.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

dsp实验报告.docx

《dsp实验报告.docx》由会员分享,可在线阅读,更多相关《dsp实验报告.docx(43页珍藏版)》请在冰豆网上搜索。

dsp实验报告.docx

dsp实验报告

 

DSP实验报告

 

班级:

电信073班

实验者:

卢思亮06401200205

同实验者:

梁峻华06401200203

 

电气与信息工程学院

 

实验一I/O实验

实验目的:

熟悉SZ—DSPII实验平台的使用;

了解DSP对I/O口的访问方式;

熟悉简单的程序设计及指令运用。

实验设备:

计算机;DSP硬件仿真器;DSP实验开发平台。

实验硬件设置:

在做实验以前,需要接通该实验的硬件电路,本实验为:

先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上发光二极管等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键7”拨上去,电击键盘中的RST键,MCU将对所有发光二极管进行检测,如果所有的发光二极管正常,则将“MCU/DSP选择挡”选中DSP,将功能键1到7都拨下来。

然后开始做实验,注意在做实验时开始按了RST硬件复位后,实验不要再按RST键,以免由于DSP复位而失败。

如果实验中硬件工作不正常,可按RST对整个系统硬件进行复位。

实验原理:

本程序主要是实现将数据往一个I/O端口送,从而显示一种状态,来验证DSP对I/O口的访问。

该实验是由DSP直接编程,往发光二极管送数,运用PORTW指令,观察发光二极管的变化,从而完成基本的I/O实验。

 

 

硬件框图

 

实验程序框图

开始

 

实验程序

.title"ex9"

.global_c_int00

.mmregs

FG_ADDR.set1002H

DATA.set60h;doubleramdata

.sect".vectors"

reset:

B_c_int00

NOP

NOP

.space31*4*16

DELAY.macrosec_tenth;延时sec_tenth/10秒

STMsec_tenth-1,AR5

loop1?

STM#09h,AR6

loop0?

STM#19999,AR7

BANZ$,*AR7-

BANZloop0?

*AR6-

BANZloop1?

*AR5-

.endm

.text

_c_int00:

LD#0h,DP

STM#3000h,SP

RSBXINTM

STM#07FFFh,SWWSR

SSBXXF;XF=1

ST#1007h,CLKMD;工作在20MHz

RPT#0FFh

NOP

STM#0ffffh,IFR

ORM#000h,IMR

RSBXSXM

ST#8100H,DATA

WRDENG:

PORTWDATA,FG_ADDR

DELAY#10

NOP

ST#4200H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#2400H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#1800H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#1800H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#2400H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#4200H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#8100H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

STM#00H,DATA

;;;

PORTWDATA,FG_ADDR

DELAY#10

NOP

ST#100H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#200H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#400H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#800H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#1000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#2000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#4000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

STM#8000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

;;;

ST#8000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#4000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#2000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

ST#1000H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#800H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#400H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#200H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

STM#100H,DATA

PORTWDATA,FG_ADDR

DELAY#10

RPT#10

NOP

ST#8100H,DATA

BWRDENG

aaanop

baaa

.end

思考题:

有哪三种以上的寻址方式可以完成上述实验?

并描述其原理。

答:

共有以下四种寻址方式可以完成上述实验:

①绝对寻址

绝对寻址利用16位地址寻址存储单元,其特点是指令中包含一个固定地址。

16位地址可以用其地址标号或程序中定义的符号常数来表示。

由于绝对地址代码的位数为16位,所以绝对地址寻址的指令至少为2个字长

②累加器寻址

累加器寻址是将累加器的内容作为地址去访问程序存储单元,即将尅假期中的数作为地址,用来对存放数据的程序存储器寻址。

③直接寻址

直接寻址是利用数据指针和堆栈指针寻址,其特点是数据存储器地址由基地址和偏移地址共同构成,共16位。

基地址位于数据存储器地址的高9位,偏移地址位于数据存储器地址的低7位。

④间接寻址

间接寻址是利用辅助寄存器内容作为地址指针访问存储器。

TMS320C54x有8个16位辅助寄存器(AR0~AR7)。

每一个寄存器都可以用来寻址64千字数据存储空间中任何一个单元。

两个辅助存储器算术运算单元(ARAU0和ARAU1)可以根据辅助寄存器的内容进行操作,完成16位无符号数算术运算。

 

实验二数码显示实验

一、实验目的

熟练掌握DSP的各种指令;

进一步熟悉DSP的I/O访问方式的操作,通过I/O方式将数据显示到数码管上。

二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台。

注意:

在做实验以前,需要接通该实验的硬件电路,本实验为:

先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上发光二极管等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键6”拨上去,点击键盘中的MON键,MCU将对所用的LED管进行检测。

如果所有的LED管正常,将“MCU/DSP选择档”选中DSP(往上拨),将功能键1到7都拨下来,然后开始做实验。

注意在做实验时开始按了RST硬件复位后,实验不要再按RST键,以免由于DSP复位而失败。

三、实验原理

此实验是由DSP通过IO方式对数码管进行操作,即是向数码管送数据,高4位为数码管的段码,低4位为数码管的位码,DSP用的数据线是D8~D15,如要在第0位显示一个8,就只要送入80H,其次,该实验中要求熟练运用DSP的各种指令,能使显示数据出现左移或右移等。

四、实验程序框图

 

 

实验程序:

.title"ex9"

.global_c_int00

.mmregs

SM_ADDR.set1003h;数码管的I/O地址

SM_DATA.set60h;段码在数据线的高4位,位码在数据线的次高4位.

;在CPLD模块中程序为DEMO程序的情况下,段码显示已译码,比如:

要显示7,

;只要往数据线的高4位发7即可.位码为0-7,在次高位数据线对应的数值也为0-7.

.sect".vectors"

reset:

B_c_int00

NOP

NOP

.space31*4*16

.text

_c_int00:

LD#0h,DP;设置数据页指针

STM#2000h,SP;设置堆栈指针

RSBXINTM

STM#07FFFh,SWWSR

SSBXXF

ST#1007h,CLKMD;工作在20MHz

RPT#0FFh

NOP

STM#0ffffh,IFR

ORM#000h,IMR

RSBXSXM

aaanop

CALLLED07;显示0到7

CALLLED8F;显示8到F

baaa

LED8FST#8000h,SM_DATA

ST#07H,AR3

WRDENG:

PORTWSM_DATA,SM_ADDR;8-f

RPT#10000

NOP

ST#02fffH,AR6

calldelay

ADDM#1100H,SM_DATA;送位码,屏蔽低8位数据

BANZWRDENG,*AR3-

RET

LED07NOP

ST#07H,AR3

STM#0H,SM_DATA

WRDENG1NOP;0-7

PORTWSM_DATA,SM_ADDR

ST#02fffH,AR6

calldelay

ADDM#1100H,SM_DATA;送位码,屏蔽低8位数据

BANZWRDENG1,*AR3-

RET

delaySTM#0f0h,AR7;延时子程序

BANZ$,*AR7-

BANZdelay,*AR6-

RET

五、实验思考

如何设置DP、SP值,以及DP、SP在程序中所起的作用是什么?

如何理解、设置I/O等待寄存器?

答:

DP为状态寄存器0(ST0)中的9位数据存储器页指针,SP为堆栈指针。

可通过装载指令LD设置DP,通过存储指令STM设置SP。

当程序调用子程序时,需要将程序计数器PC的值和一些重要的寄存器值进行压栈保护,以便程序返回时能从间断处继续执行。

通过设置DP,SP可完成。

为了方便地使’C54x与慢速的片内存储器和I/O接口,可以通过软件可编程来延长等待周期,最多可达到7-14个机器周期,I/O空间复位值为111b。

 

实验三、交通灯实验

一、实验目的

了解数据输出程序的设计方法;

模拟交通灯控制,能正确的模拟交通灯。

运用定时中断

二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台。

注意:

在做实验以前,需要接通该实验的硬件电路,本实验为:

先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨,开关S10往下拨来选通主板上双色发光二极管(交通灯)等输出指示设备;将系统主板中“MCU/DSP选择档”选中MCU(往下拨),将“功能键7”拨上去,点击键盘中的RST键,MCU将对所用发光二极管进行检测,如果所有的双色发光二极管正常,则将“MCU/DSP选择挡”选中DSP(往上拨),将功能键1到7都拨下来。

然后开始做实验,注意在做实验时,开始按了RST硬件复位后,实验中不要再按RST键,以免由于DSP复位而失败。

如果实验中硬件工作不正常,可按RST对整个系统硬件进行复位。

三、实验原理及说明

掌握DSP的定时器、I/O访问原理,用I/O口控制红绿黄灯的开关。

 

四、实验程序框图

 

 

 

 

实验程序

 

.title"ex8"

.global_c_int00

.mmregs

LED_ADDR.set1001h

STATUS0.set60h

STATUS1.set61h

STATUS2.set62h

STATUS3.set63h

STATUS4.set64h

STA2_PRE_0.set65h

STA2_PRE_1.set66h

STA4_PRE_0.set67h

STA4_PRE_1.set68h

DELAY.macrosec_tenth;延时sec_tenth/10秒

STMsec_tenth-1,AR5

loop1?

STM#09h,AR6

loop0?

STM#19999,AR7

BANZ$,*AR7-

BANZloop0?

*AR6-

BANZloop1?

*AR5-

.endm

.sect".vectors"

reset:

B_c_int00

NOP

NOP

.space4*127

.text

_c_int00

LD#0h,DP

STM#3000h,SP

SSBXINTM

SSBXSXM

STM#07FFFh,SWWSR;IO总线外部等待时间14个周期

STM#0h,CLKMD;20MHz工作

tstBITFCLKMD,#1h

BCtst,TC

STM#1007h,CLKMD

RPT#0FFh

NOP

ST#0FFFFh,IFR

ORM#000h,IMR

ST#0AA00H,STATUS0

LOOPBPORTWSTATUS0,LED_ADDR;全部红灯

DELAY#100;延时1秒

circleST#6600H,STATUS1

PORTWSTATUS1,LED_ADDR;南北红灯、东西绿灯

DELAY#200;延时20秒

STM#2h,BRC

RPTBflash1

ST#6600H,STA2_PRE_0

PORTWSTA2_PRE_0,LED_ADDR

DELAY#30

ST#2200H,STA2_PRE_1

PORTWSTA2_PRE_1,LED_ADDR

DELAY#30

flash1NOP;南北绿灯闪3次、东西红灯

ST#0EE00H,STATUS2

PORTWSTATUS2,LED_ADDR;南北黄灯、东西红灯

DELAY#30;延时3秒

ST#9900H,STATUS3

PORTWSTATUS3,LED_ADDR;南北红灯、东西绿灯

DELAY#200;延时20秒

STM#2h,BRC

RPTBflash2

ST#09900H,STA4_PRE_0

PORTWSTA4_PRE_0,LED_ADDR

DELAY#30

ST#08800H,STA4_PRE_1

PORTWSTA4_PRE_1,LED_ADDR

DELAY#30;南北红灯、东西绿灯闪3次

flash2NOP

ST#0BB00H,STATUS4

PORTWSTATUS4,LED_ADDR;南北红灯、东西黄灯

DELAY#30;延时3秒

Bcircle

.end

六、实验思考

如果在程序运行过程中遇到硬件中断,如何保护保持原有的现场?

答:

将程序计数器PC值(返回地址)保存到数据存储器的堆栈顶部。

在中断响应时,程序计数器扩展寄存器(XPC)不会压入堆栈的顶部,也就是说,它不会保存在堆栈中。

因此,如果ISR位于和中断向量表不同的页面,用户必须在分支转移到ISR之前将XPC压入堆栈,远程返回指令FRET(E)可以用于从ISR返回。

 

实验四、同步串口

一、实验目的

了解同步串口工作原理;

了解AD50工作原理。

二、实验设备

计算机,DSP硬件仿真器,DSP实验开发平台,耳机,麦克风。

注意:

在做实验以前,需要接通该实验的硬件电路,本实验为:

先将实验箱右侧的船型开关往“I”方向打开电源,然后将系统主板的开关S33往下拨接通+/-5V电源,然后将CPLD/FPGA模块上的电源开关S9往下(ON)拨。

三、实验要求

通过DSP的同步串口能向AD50发送控制字和数据,接收AD50发送的数据。

四、实验原理及说明

同步串口实验,主要是通过5402的同步串口访问A/D芯片,使学生了解同步串口工作原理。

该实验所需的硬件主要是DSP、DRAM、TMS320AD50、TLC2272,在实验过程中如果TLC320AD50C工作不正常,请按复位键(MON键或RST)对实验仪器硬件复位。

编写DSP同步串口程序访问AD50,将麦克风的语音信号经过TLC2272(双路低噪声)滤波,通过AD50的A/D转换后,将模拟信号转换为数字信号,再将数字信号发送到AD50的D/A端口。

将麦克风(红色)插入语音输入插座,耳机(黑色)插入语音输出插座。

运行程序。

要在耳机里听到麦克风所输入的声音。

五、实验程序框图

中断服务程序

实验程序:

.title"ex4"

BSP.set0;当前使用McBsp1

;McBsp内存映射寄存器

SPSA0.set038h

SPSD0.set039h

DRR10.set021h

DRR20.set020h

DXR10.set023h

DXR20.set022h

SPSA1.set048h

SPSD1.set049h

DRR11.set041h

DRR21.set040h

DXR11.set043h

DXR21.set042h

 

;McBspSubaddressedRegisters

SPCR1.set00h

SPCR2.set01h

RCR1.set02h

RCR2.set03h

XCR1.set04h

XCR2.set05h

SRGR1.set06h

SRGR2.set07h

MCR1.set08h

MCR2.set09h

RCERA.set0ah

RCERB.set0bh

XCERA.set0ch

XCERB.set0dh

PCR.set0eh

.ifBSP=0

SPSA.setSPSA0

SPSD.setSPSD0

RDRR.setDRR10

RDXR.setDXR10

.endif

.ifBSP=1

SPSA.setSPSA1

SPSD.setSPSD1

RDRR.setDRR11

RDXR.setDXR11

.endif

WR_SUB_REG.macroval,addr;写McBsp控制寄存器

stmaddr,SPSA

nop

stmval,SPSD

nop

.endm

RD_SUB_REG.macroaddr,acc;读McBsp控制寄存器

stm#:

addr:

SPSA

nop

ldmSPSD,acc

nop

nop

nop

.endm

WAITTRX.macro;等待串口中断

WAITR?

RD_SUB_REGSPCR1,A

and#1<<1,A

bcWAITR?

AEQ

.endm

PROGREG.macroprogword;与AD50二次通讯

stm#01h,RDXR

WAITTRX

stm#:

progword:

RDXR

WAITTRX

.endm

 

wait.macro

STM#0008h,AR0

RPT*AR0

NOP

.endm

.mmregs

.global_c_int00

 

.sect".vectors"

RESETbd_c_int00

stm#2000h,SP

.space19*4*16

BRINT0brecv

nop

nop

BXINT0btrans

nop

nop

.space10*4*16

;BRINT1brecv

;nop

;nop

;BXINT1btrans

;nop

;nop

;.space4*4*16

.text

_c_int00

ld#0h,DP

stm#2000h,SP

ssbxINTM

ssbxSXM

st#2491h,SWWSR

st#0ffe0h,PMST

st#0f007h,CLKMD

stm#4000h,AR1

stm#4000h,ar2

mcbsp_init;初始化McBsp串口

rsbxCPL

nop;cpllatency

nop;cpllatency

nop;cpllatency

ld#0,DP

ssbxINTM

ssbxSXM

WR_SUB_REG

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1