实验一代数汇编指令基础实验
一、实验目的:
1.通过调试目标代码,掌握指令的功能,熟悉指令;
2.通过指令的熟悉,能够指令应用于实际项目中。
二、实验原理:
Ti公司的代数汇编指令。
三、实验程序:
.title"算术指令综合实验"
.mmregs
.sect ".vect"
.copy "vectors.asm"
.text
_Start:
;
AR7=#767 ;
A=#38CAH ;
DP=#08AH ;
RSA=#0123H;
DP=#188H ;
ASM=#0AH
AR7=A
MMR(*AR7+)=#1234H
DP=#04H
A=#9876H
AR6=#230H
*AR6+=#9ACDH
ARP=#6
;
@38H=A
NOP
NOP
AR0=#003AH
A=*AR6+0
T=#08H
SXM=1
B=*AR6-<<TS
AR7=#0220H
*AR7=#0E5D8H
A=*AR7+0B<<-12
@3AH=#665AH
AR2=#023AH
BK=#0
A=*AR2-0%<<12
BK=#002AH
AR3=#0256H
*AR3- =HI(B)<<8
ASM=#-8
*AR3+ =A<<ASM
AR4=#0216H
*AR4=#8775H
B=#025AH
A=B<<ASM
MMR(*AR4+)=B
A=MMR(13H)
AR2=#0245H
*AR2=A<<7
@3AH=A<<ASM
*AR2+0%=B<<4
;
*AR2=#1CH
ASM=*AR2
T=*AR4+
LTD(*AR2+)
B=RND(*AR2+)
*AR3=#0F57AH
A=UNS(*AR3)
B=*AR3+
*AR3+0B=T
TRN=#12ACH
A=DBL(*AR4+)
B=DUAL(*AR2-)
DBL(*AR3-)=A
DUAL(*AR4+)=B
*AR3+ =HI(A)<<ASM||B=*AR2-<<16
*AR2+ =HI(B)<<ASM||T=*AR3+
A=#3456H
IF(AGT)*AR4+ =HI(A)<<ASM
B=#0F679H
IF(BLEQ)*AR3- =HI(B)<<ASM
A=#0F98DH
IF(AGT)*AR2+ =BRC
IF(ALT)*AR3- =T
B=#0125CH
IF(BGEQ)*AR2+ =BRC
CMPS(A,*AR4-)
CMPS(B,*AR2+)
;
B=@20
DP=#40
A=#1234H
@22=A
A=A+@9AH
@25=A
AR3=#0236H
*AR3=#0F775H
AR5=#024AH
*AR5=#09ACDH
NEXT: NOP
A=#9ABCH
*AR5+ =A
A=A+#1000H
A=A+#08ADEH
SXM=0
A=#07AB8H<<16
A=A+#04ADEH
A=A-#08ADEH<<16
SXM=1
B=#0FF7CH
A=#0889AH
A=A-#09ACDH<<16
B=A-*AR5-
C=1
B=B-A<<ASM
*AR5=A
C16=0
A=DBL(*AR5-)-A
B=B-*AR3+
A=B+*AR5+<<16
A=A-B<<ASM
B=*AR3+<<16-*AR4-<<16
A=A+*AR4<<12
B=A+*AR5<<-12
A=B-#06789H<<16
B=B+*AR7+0B+CARRY
A=A-*AR2--BORROW
SUBC(@25,A)
A=A-UNS(*AR7+)
T=#9ACDH
B=DADST(*AR4,T)
A=DADST(*AR7,T)
C16=1
A=A+DBL(*AR5+)
A=A-DBL(*AR5-)
T=#7654H
C16=0
A=DADST(*AR5+,T)
C16=1
A=DSADT(*AR5-,T)
A=DBL(*AR5+)-A
*AR3+ =HI(B)
||B=A+*AR5+0%<<16
*AR4- =HI(A)||A=*AR3-<<16-B
GOTO NEXT
;
SXM=0
A=#89ABH
A=A+#4567H<<16
*AR3=#9999H
A=A&*AR3-
B=#8897H
B=B+#079ADH<<16
A=A|B<<-12
A=#8897H
A=A+#079ADH<<16
A=B^#0567DH<<12
DP=#04
@7AH=@7AH�ACD6H
.end
四、实验步骤:
1、输入以上程序,并进行编译;
2、打开code Explore,并把编译好的程序装载,并进行调试
3、逐步调试,并观察各种特殊寄存器的值和预期值是否对应,着重了解各种寻址的特点,及相对应的指令。
五、实验心得
通过本次实验初步了解了ccs2环境的搭建及使用。知道了怎么配置一个工程让程序运行等。
实验二 DSP FIR 低通滤波器
一、实验目的
1、通过实验程序理解DSP程序的编写。
2、掌握CIC-500系统的A/D转化,串口通信的编程。
3、掌握FIR低通滤波器在DSP中的具体实现,进一步了解各种寻址方式的实际应用。
二、 实验原理
FIR滤波器的主要操作控制为
设计一个低通滤波器,条件如下:
1、采样频率为9.26KHZ,系统工作频率为10MHZ。
2、截至频率为Flpc为1KHZ。
3、输入信号为14位带符号数值。
4、共取80阶点作运算。
滤波器设计好后的系数放在"lp_coeff.asm"文件内其他文件应拷贝到同 一文件夹下。
三、FIR设计方法
1、数字滤波器设计步骤
数字滤波器的实质是一个离散的多项式表达式,通过这个表达式来满足 一定的需求。因此数字滤波器的设计步骤如下:
A、了解滤波器的技术要求
B、实现系数计算
C、实现,即把传函转换为合适的滤波器网络或结构
D、有限字长效应分析,主要考虑滤波器系数、输入数据量化和固定字 长对滤波器性能的影响
E、工程实现
2、滤波器的技术指标
:峰值通带偏差
:阻带偏差
:通带边缘频率
:阻带边缘频率
3、用窗口法设计滤波器的步骤
第一步:指定理想的或期望的滤波器频率响应;
第二步:通过傅立叶反变换求期望的滤波器的冲击响应,
第三步:选择一个满足通带或衰减指标的窗函数,然后利用滤波器长度与过渡带宽之间的关系确定滤波器的系数数目。
第四步:对于选取的窗函数求w(n)的值,并且将的值与w(n)相乘求得实际的FIR系数h(n)。
4、标准频率选择性滤波器的理想冲击响应总结
5、常用窗函数及重要特征总结。
四、随机数产生方法
实验程序范例
.title "low pass filter"
.mmregs
.width 80
.length 55
;.setsect ".text",0x1800,0 ; these assembler directives specify
;.setsect ".data",0x0200,1 ; the absolute addresses of different
;.setsect "vectors",0x0180,0 ; sections of code
.sect "vectors" ; interrupt vector table resides at
.copy "lp_vecs.asm" ; location 0x0180
.data
seed .word 07e6dh ; seed for random variable
temp .word 0
XN .word 0,0,0,0,0,0,0,0,0,0 ; 80 data locations for 80
XN1 .word 0,0,0,0,0,0,0,0,0,0 ; stage delay line.
XN2 .word 0,0,0,0,0,0,0,0,0,0 ;
XN3 .word 0,0,0,0,0,0,0,0,0,0 ;
XN4 .word 0,0,0,0,0,0,0,0,0,0 ;
XN5 .word 0,0,0,0,0,0,0,0,0,0 ;
XN6 .word 0,0,0,0,0,0,0,0,0,0 ;
XN7 .word 0,0,0,0,0,0,0,0,0 ;
XNLAST .word 0 ;
OUTPUT .word 0 ; extra word for the bit bucket
.text
.copy "lp_coeff.asm"
.copy "lp_ac01.asm"
start: intm = 1 ; disable all interrupts
dcall AC01INIT ; initialize Analog interface.
DP = #0
nop
pmst = #01a0h ; Interrupt pointer maps vectors to page #3 (3*128=180h)
sp = #0ffah ; stack pointer located in Communications Kernal
imr = #240h ; unmask TDM RINT and HPIINT(host port interface)
intm = 0 ; enable all interrupts
WAIT: goto WAIT ; wait for receive interrupt.
receive: DP = #seed ; This sets Data Memory Page Pointer
; to page XN, which is defined
; earlier in the program.
;--------- random noise Generator (P-5cs Modulator)-------------------
a = @seed << 1
a = @seed ^ a
@temp = a << 2
a = @temp ^ a
a = #8000h & a
a = a + @seed << 16
@seed = hi(a) << 1
a = @seed << 11
a = a & #0fffch << 15
repeat(#12)
a = a <<C -1
;-------- get sample and run through lowpass filter ---------
b = DRR1 ; LOAD ACCUMULATOR WITH WORD
; RECEIVED FROM AIC!
@XN = A << 0 ; STORE THE VALUE OF RECEIVED
; WORD TO VARIABLE XN!
AR0 = #XNLAST ; LOAD AR0 WITH ADDRESS OF LAST
; DELAY ELEMENT!
A = #0 ; ZERO ACCUMULATOR A!
repeat(#79) ; Repeat next instructions 80 times.
macd(*AR0-,h0,A) ; Compute FIR output.
@OUTPUT = hi(A) << 0 ; Store the filtered input into
; variable OUTPUT.
A = @OUTPUT << 0 ; OUTPUT ==>Accumulator A
A = #0FFFCh & A ; TWO LSB's MUST BE ZERO FOR AIC!
DXR1 = A ; SEND TO TRANSMIT REGISTER!
return_enable ; Enable interrupts and return
; from interrupt.
transmit: return_enable ; Enable interrupts and return
; from interrupt.
.end
四、实验步骤
1、连接CIC-500 DSP发展实验系统
2、载入程序,从J2端输入音乐,运行一段时间后暂停,观察实验结果。
3、观察不同频宽的音乐,把结果进行比较。
实验三 FFT算法的实现
—、实验目的
1. 掌握FFT算法。
2、进一步掌握FFT的DSP编程。
3、指出FFT算法中的各种寻址方式,结合算法掌握寻址方式的使用技巧。
4、 认真分析各功能模块的具体功能,和课堂所讲的算法步骤关联起来。
二、 实验原理
实验原理依据课堂所授的蝶形变换
设计1024个点的FFT变换,输入数据放在in.dat文件里面。在输入实验的时候把bit_rev.asm、 fft.asm unpack.asm、power.asm拷贝至同一个目录下
实验主程序:
.width 80
.length 55
.title"Real Fast Fourier Transfrom"
.mmregs
.copy"vectors.asm"
.copy"initrfft.asm"
.text
start: SP =#BOS
DP =#0
OVM=#0
FRCT=#1
ASM=#0
CALL bit_rev
CALL fft
CALL unpack
CALL power
hangloose:
NOP
goto hangloose
.copy"bit_rev.asm"
.copy"fft.asm"
.copy"unpack.asm"
.copy"power.asm"
.end
三、实验步骤:
1、认真阅读四个子程序,理解四个子程序的作用
2、认真进行调试,通过时域频域图对比算法的精度
3、认真思考,改良算法。
实验七 设计PID控制器或设计矩阵乘法程序
— 实验目的
1、根据以前做实验的所培养的经验,写出PID控制器或矩阵乘法程序
二、实验原理
1、PID控制原理
2、矩阵乘法原理
3、矩阵乘法程序
.width 80
.length 55
.title "矩阵乘法"
.mmregs
.copy "vectors.asm"
.data
XN .word 1,4,7,2,5,8,3,6,9
.word 0,0,0,0,0,0,0,0,0
YN .word 1,2,3,4,5,6,7,8,9
.text
start:
ar3=#XN
ar4=#YN
ar5=#(YN+10)
sp=#07ffh
bk=#9
call mulxl
call mulxl
call mulxl
wait:
nop
goto wait
mulxl:
call mulad3
ar0=#4
mar(*ar3-0)
call mulad3
ar0=#4
mar(*ar3-0)
call mulad3
return_enable
nop
mulad3:
a=#0
ar0=#1
repeat(#2)
a=a+*ar3+**ar4+0%
*ar5+ =a
nop
return_enable
.end
三、实验步骤
1、首先自己参考前三个程序,设计自己的程序。
2、编译自己的程序,挑出错误,生成目标文件。
3、加载程序,査询数据存储器的内容验证程序是否正确。
四、实验心得
通过前面所学的内容自己搭建出了一个4*4的矩阵乘法,并运行测试了实验结果。
湖北汽车工业学院SPSS实习报告学号20xx0530501姓名杨文弟指导教师彭娟娟曾智实验一描述性统计分析一实验目的利用SPSS进…
管理统计实验报告实验一一实验目的掌握用spss软件对数据进行相关性分析熟悉其操作过程并能分析其结果二实验原理相关性分析是考察两个变…
统计分析与SPSS的应用实验报告一一数据来源及说明本次试验报告数据来源于19xx年美国社会变迁普查19xxUSGeneralSoc…
实验报告实验三连续变量的统计描述与参数估计实验目的1了解连续变量的统计描述指标体系和参数估计指标体系2掌握具体案例的统计描述和分析…
TMS320F2812xDSP原理及应用技术实验心得体会1.设置环境时分为软件设置和硬件设置,根据实验的需要设置,这次实验只是软件…
DSP课程设计总结(20##-20##学年第2学期)题目:专业班级:电子1103学生姓名:学号:指导教师:设计成绩:20##年6月…
龙岩学院实验报告班级07电本(1)班学号XX姓名XX同组人独立实验日期20XX-5-18室温大气压成绩基础实验一、实验目的1.掌握…
西南科技大学城市学院-----课程设计报告题目:基于DSP2407的数字电压表系别:机电工程系专业:电信班级:1101指导教师:实…
FIR数字滤波器的设计目录1前言22数字滤波器及MATLAB语言概述221数字滤波器的定义和分类322常用滤波器的性能指标423M…