北航信号处理的设计与实现2011年作业(20111129)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
硕士选修课期末考核作业信号处理系统的设计与实现(DSP)部分
2011~2012学年第一学期
作者姓名:
作者学号:
学科专业:精密仪器与机械
联系方式:
培养院系:仪器科学与光电工程学院
2011年12月27日
1、数字信号处理器的特点:①内部采用程序和数据分的开哈佛结构;②具有
专门的硬件乘法器;③采用流水线操作;④提供特殊的DSP指令。
2、滑动滤波程序如下:
;累加和临时寄存器清零
LDP #29h
ZAC
SACL ACC_TEMP_L
SACL ACC_TEMP_H
;取滑动窗口中第一组数据给AR3,初始化循环次数给AR4
LDP #28h
LAR AR3, #DATA_RAM
LAR AR4, #63
ZAC
;累加和程序
ACC:
ZAC
LDP #28h
MAR *,AR3
LACL *+
ADDC *+,16
LDP #29h
ADD ACC_TEMP_L
ADDC ACC_TEMP_H,16
SACL ACC_TEMP_L
SACH ACC_TEMP_H
MAR *, AR4
BANZ ACC
LDP #29h
LACL ACC_TEMP_H
AND #08000h
BCND SINGNED_SHIFT, NEQ
;计算本次平均值程序:
UNSIGNED_SHIFIT
LDP #29h
LACL ACC_TEMP_L
ADDC ACC_TEMP_H,16
RPT #6
SFR
SACL MEAN_TEMP_L
SACH MEAN_TEMP_H
B SHIFT_STACK
;符号扩展程序:
SINGNED_SHIFT
LDP #29h
LACL ACC_TEMP_L
ADD ACC_TEMP_H,16
RPT #6
SFR
OR #0FE00h,16
SACL MEAN_TEMP_L
SACH MEAN_TEMP_H
B SHIFT_STACK
;滑动串口数据移动程序:
SHIFT_STACK
LDP #28h
LAR AR3,#DATA_RAM
LAR AR4,#62
SHIFT_LOOP
MAR *,AR3
ADRK #2
LACL *
SBRK #2
SACL *
ADRK #3
LACL *
SBRK #2
SACL *
SBRK #1
ADRK #2
MAR *,AR4
BANZ SHIFT_LOOP
;新数入队列程序:
LDP #29h
LACL NEW_TEMP_L
ADD NEW_TEMP_H,16
LDP #28h
MAR *,AR3
SACL *+
SACH *
B T3PINT_RET
三、电路设计如下:
图中,最左边的是DSP即TMS320F206,此电路中用到了它的A6、A7、A8作为地址线,接到了两个74138译码器的A、B、C三个口上,地址分配符合题目要求,另外使用了DSP的RW、RD、IS、WE及A15,接到了74138译码器的控制端口,作为控制线,进行读写的控制。
四、具体程序如下:
命令文件:multi.cmd
-o mult1.out
-m multi.map
mult1.obj
memory
{
page0:
rom: orign=0000h, length=0200h page1:
b2: orign=0060h, length=0020h
b0: orign=0200h, length=0100h
b1: orign=0300h, length=0100h }
sections
{
.vectors: > rom page0
.text: > rom page0
.bss: > b2 page1
}
中断矢量头文件:vector.h
.sect “.vectors”
inpt1 b ret
inpt23 b ret
timer b ret
uart b ret
codtx b ret
codrx b ret
.end
初始化头文件:init.h
RE0 .set 0x0000h ;IO端口的地址定义
WR8 .set 0x0200h
ldp #0h ;寄存器的初始化
splk #01h,60h
out 60h,icr
splk #10h,60h
out 60h,tcr
splk #0a09h,60h
out 60h,wsgr
splk #0h,60h
out 60h,sspcr
out 60h,aspcr
1ms延时程序:
delay:
splk #0fa0h,#60h ;将0fa送入地址为60h的存储器单元
lar ar0, #4 ;循环次数为5次
mar *,ar0
loop1: rpt 60h
nop
banz loop1
ret
主程序:multi.asm
.copy “init.h”
.copy “vector.h”
.bss u0,5,1
u1 .equ u0+1
u2 .equ u0+2
.bss A0,5,1
A1 .equ A0+1
A2 .equ A0+2
.bss y0,5,1
y1 .equ y0+1
y2 .equ y0+2
.bss B1,4,1
B2 .equ B1+1