dsp硬件实验报告.docx
《dsp硬件实验报告.docx》由会员分享,可在线阅读,更多相关《dsp硬件实验报告.docx(41页珍藏版)》请在冰豆网上搜索。
dsp硬件实验报告
班级:
2012211207学号:
2011210908姓名:
朱志文班内序号:
2
DSP硬件实验报告
实验一
;**************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
;*
;*文件名称:
xf.asm
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*试验现象:
可以观察到实验箱CPLD右上方的D3按一定频率闪烁。
;*************************************************************
.mmregs
.global_main
_main:
stm#3000h,sp;将数字3000h赋值给寄存器SP
ssbxxf;将XF置1
calldelay;调用延时子程序,延时
rsbxxf;将XF置0
calldelay;调用延时子程序,
b_main;程序跳转到"_MAIN"
nop
nop
;延时子程序
delay:
stm270fh,ar3;;将单元270fh的数值传递给寄存器ar3
loop1:
stm0f9h,ar4;将单元0f9h的数值传递给寄存器ar4
loop2:
banzloop2,*ar4-;ar4-1,当ar4不等于0时执行loop2,可选择延迟
banzloop1,*ar3-;ar3-1,当ar4不等于0时执行loop1,可选择延迟
ret;可选择延迟返回,PC=SP++
nop
nop
.end
实验二
;**************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
;*
;*文件名称:
exp02.asm
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*试验现象:
本实验程序将对0x1000开始的8个地址空间,填写入0xAAAA的数值,然后读出,并存储到
;*0X1008开始的8个地址空间。
;*************************************************************
;getsomeknowledgeofthecmdfile
;theprogramiscompiledatnoautoinitializationmode
.mmregs
.global_main
_main:
;storedata
stm1000h,ar1;addressofinternalmemory
rpt#07h
st0aaaah,*ar1+;将数据"0AAAAH"存放到以地址1000H~1007H的八个存储单元中.
;readdatathenre-store
stm7h,ar3
stm1000h,ar1
stm1008h,ar2
loop:
;循环的将1000H~1007H的八个单元中的数据COPY到1008H~100F的
;八个存储单元中.
ld*ar1+,t
stt,*ar2+
banzloop,*ar3-
here:
;死循环.
bhere
.end
实验三
;**************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
;*
;*文件名称:
exp03.asm
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*试验现象:
分别调整数字输入单元的开关K1~K8,观察LED1~LED8亮灭的变化,以及输入和输出状态是否一致。
;*************************************************************
.mmregs
.global_main
.text
_main:
stm3100h,sp
stm1000h,ar1
portr8000h,*ar1;读入I/O8000H数据,将其存储到数据空间的1000H
nop;NOP为空操作,起延时作用.
nop
portw*ar1,8001h;将数据空间的1000H单元的数据,写出到I/O8000H
nop
nop
b_main;程序跳转到"_MAIN"执行.
nop
nop
.end
实验四
/**************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
/*
;*文件名称:
exp04.c
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*试验现象:
LED灯(LED1~LED8)以一定的间隔时间不停闪亮变化;
;*************************************************************/
/************************文件预处理***************************/
#include"tms320uc5402.h"
/*************************************************************/
/********************全局变量定义与初始化*********************/
ioportunsignedport8001;
unsignedintshow=0x00aa;
unsignedintnum=0x0000;
/*************************************************************/
/*******************函数、子程序声明与定义********************/
voidsys_ini()//系统初始化子程序
{
asm("ssbxINTM");//全局禁止所有可屏蔽中断
PMST&=0x00FF;//(DRAM映射到程序空间和数据空间)向量表映射到0x0080空间
SWWSR=0x7000;//io空间7个等待周期,程序与数据空间0个等待周期
CLKMD=0x17FA;//CLKOUT=2*CLKIN=2*10M=20M,自动延时最长时间
}
voidtimer0_ini()//定时器0初始化子程序
{
TCR|=0x0010;//停止定时器0
PRD=0x2710;//PRD=10000(D)
TCR|=0x000A;//TDDR=10(D),所以定时器时钟=1/(20M/10/10000)=5ms
IMR=0x0008;//使能定时器0中断
IFR=0xFFFF;//清除所有中断标志位
asm("rsbxINTM");//全局使能可屏蔽中断
TCR&=0xFFEF;//开始定时器0
TCR|=0x0020;//复位定时起0
}
/*************************************************************/
/*****************中断服务子程序声明与定义********************/
interruptvoidtimer0()//定时器0中断子程序
{
if(num==200)//记200次定时器中断,时间=200*5ms=1s
{
show=~show;//取反
num=0;
}
else
num++;
return;
}
/*************************************************************/
/**************************主程序*****************************/
voidmain(void)
{
sys_ini();
timer0_ini();
for(;;)
{
port8001=show;
}
}
/***************************结束******************************/
实验五
/*************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
/*
;*文件名称:
int2.c
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*2、用导线连接"CPLD单元"的2号孔"单脉冲输出"和"电机控制单元"2号孔"INT2"。
;*试验现象:
反复按开关"单脉冲输出",观察LED1~LED8灯亮灭变化;
;*************************************************************/
interruptvoidint2c();
externvoidinitial();
externvoidporta();
externvoidportb();
intflag=0,i=0;
main()
{
initial();//初始化
while
(1)//死循环
{
;//空语句
}
}
interruptvoidint2c()//中断子程序
{
i=i+1;
if(i==1)
{
if(flag==0)
{
flag=1;
porta();
i=0;
}
else
{
flag=0;
portb();
i=0;
}
}
else
{
i=0;
}
return;
}
实验六
/*************************************************************
;**************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
/*
;*文件名称:
exp06.c
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*2、SW2的sw2=ON,sw1=OFF;对应5X的int1中断分配给AD中断使用;JP3的3、6位置ON,其余置OFF;
:
*S23全部置OFF;用连接线连接"模拟信号源"2号孔"信号源1"与"A/D单元"2号孔"ADIN1"。
;*试验现象:
用图形观察窗口观察采样的AD波形。
;*************************************************************/
/************************文件预处理***************************/
#include"tms320uc5402.h"
/*************************************************************/
/********************全局变量定义与初始化*********************/
//ad7822的地址
ioportunsignedport8008;
unsignedintdata_buff[256];
unsignedintj=0;
/*************************************************************/
/*******************函数、子程序声明与定义********************/
voidsys_ini()//系统初始化子程序
{
//全局禁止所有可屏蔽中断
asm("ssbxINTM");
//(DRAM映射到程序空间和数据空间)向量表映射到0x0080空间
PMST&=0x00FF;
//io空间7个等待周期,程序与数据空间0个等待周期
SWWSR=0x7000;
//设置pll为div模式
CLKMD=0x0000;
//等待设置完成
while(CLKMD==0x0001);
{
}
//CLKOUT=(3+1)*CLKIN=40M,自动延时最长时间
CLKMD=0x37FA;
//CLKOUT=(1+1)*CLKIN=20M,自动延时最长时间
//CLKMD=0x17FA;
}
voidint1_ini()
{
IMR=0x0002;//使能外部中断1
IFR=0xFFFF;//清除所有中断标志位
asm("rsbxINTM");//全局使能可屏蔽中断
}
/*************************************************************/
/*****************中断服务子程序声明与定义********************/
interruptvoidint1()//int1中断子程序
{
data_buff[j]=port8008&0x00FF;//读取ad7822转换数据
j++;
if(j==255)
{
j=0;
}
return;
}
/*************************************************************/
/**************************主程序*****************************/
voidmain(void)
{
sys_ini();
int1_ini();
for(;;)
{
}
}
/***************************结束******************************/
实验七
/*************************************************************
;*北京达盛科技有限公司
;*研发部
;*
;*
;*************************************************************/
/*
;*文件名称:
da7303_54.c
;*适用平台:
EXPIII+实验系统
;*CPU类型:
DSPTMS320VC54X
;*软件环境:
CCS3.1(5000系列)
;*试验接线:
1、实验箱的拨码开关SW2.4置OFF(54x的译码有效);54xCPU板的跳线J2的1、2短接
;*(HPI8位模式);SW1的2、6置ON,其余置OFF(HPI使能;DSP工作微处理器方式;
;*CPU_CS=0);SW2全部置ON(FLASH工作在数据空间,LED灯D5的工作状态处于灭状态);
;*试验现象:
用示波器检测D/A转换单元的2号孔接口"输出1"输出一个正弦波;
;*************************************************************/
//------------------头文件--------------------------------------
#include"DspRegDefine.h"//VC5402寄存器定义
#include"math.h"
//---------------------------------------------------------------
/*******************宏定义***************
************************************************************
*/
#defineUCHARunsignedchar
#defineUINT16unsignedint
#defineUINT32unsignedlong
#defineTRUE1
#defineFALSE0
#definepi3.1415926
#defineLEN256
//---------------AD7303控制字--------------------------------
//15--------14-------13-----12-----11-----10------9-------8-----
//INT/EXT---X--------LDAC---PDB---PDA-----A/B-----CR1-----CR0---
//参考电压--保留-----B省电--A省电----0/A-1/B-
//-------------------------------------------------------------
//---------------------------------------------------------
/*端口定义*/
//---------------------------------------------------------
ioportUINT16port8001;//定义输出io端口为0x8001;
//----------------------------------------------------------
//----------------------------------------------------------
/*全局变量定义*/
//---------------------------------------------------------
intdata_buff[LEN];//数据缓冲