DSP实验程序.docx
- 文档编号:1384204
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:18
- 大小:17.25KB
DSP实验程序.docx
《DSP实验程序.docx》由会员分享,可在线阅读,更多相关《DSP实验程序.docx(18页珍藏版)》请在冰点文库上搜索。
DSP实验程序
实验一、指令实验
************************************************
*FileName:
ex1.asm*
*Description:
DSP指令实验*
*Copyright(C)SanZhiElectronic*
************************************************
.title"ex1"
.mmregs
.def_c_int00
DAT0.SET60H
DAT1.SET61H
DAT2.SET62H
DAT3.SET63H
.text
ADD3.MACROP1,P2,P3,ADDRP;三数相加宏定义:
ADDRP=P1+P2+P3
LDP1,A
ADDP2,A
ADDP3,A
STLA,ADDRP
.ENDM
_c_int00:
Bstart
start:
LD#004h,DP;置数据页指针
STM#1000h,SP;置堆栈指针
SSBXINTM;禁止中断
bk0:
ST#0012h,DAT0
LD#0023h,A
ADDDAT0,A;加法操作:
A=A+DAT0
NOP
NOP
NOP
NOP
bk1:
ST#0054h,DAT0
LD#0002h,A
SUBDAT0,A;减法操作:
A=A-DAT0
NOP
NOP
NOP
NOP
bk2:
ST#0345h,DAT0
STM#0002h,T
MPYDAT0,A;乘法操作:
A=DAT0*T
NOP
NOP
NOP
NOP
bk3:
ST#1000h,DAT0
ST#0041h,DAT1
RSBXSXM; 无符号除法操作:
DAT0÷DAT1;结果:
DAT2:
商;DAT3:
余数
LDDAT0,A
RPT#15
SUBCDAT1,A
STLA,DAT2
STHA,DAT3
NOP
NOP
NOP
NOP
bk4:
ST#0333h,DAT0
SQURDAT0,A;平方操作:
A=DAT0*DAT0
NOP
NOP
NOP
NOP
bk5:
ST#0034h,DAT0
ST#0243h,DAT1
ST#1230h,DAT2
ADD3DAT0,DAT1,DAT2,DAT3;三数相加操作:
DAT3=DAT0+DAT1+DAT2
NOP
NOP
NOP
NOP
bk6:
Bbk0;循环执行
.end
实验二、寻址实验
************************************************
*FileName:
ex2.asm*
*Description:
数据存储器和程序存储器实验*
*Copyright(C)SanZhiElectronic,AuthorZpin*
************************************************
.title"ex2"
.globalreset,_c_int00
.mmregs
.def_c_int00
DAT0.set00H
DAT1.set01H
DAT2.set02H
DAT3.set03H
DDAT0.set2004H
DDAT1.set2005H
DDAT2.set2006H
DDAT3.set2007H
PDAT0.set1f00H
PDAT1.set1f01H
PDAT2.set1f02H
PDAT3.set1f03H
.sect".vectors";中断向量表
reset:
B_c_int00;复位向量
NOP
NOP
.space4*126
.text
DELAY.macroCOUNT
STMCOUNT,BRC
RPTBdelay?
NOP
NOP
NOP
NOP
delay?
:
NOP
.endm
_c_int00:
LD#40h,DP;置数据页为2000h~207Fh
STM#3000h,SP;置堆栈指针
SSBXINTM;禁止中断
STM#07FFFh,SWWSR;置外部等待时间
bk0:
SSBXXF;置XF以实现二极管闪烁
DELAY#0FFFFh
RSBXXF
DELAY#0FFFFh
SSBXXF
DELAY#0FFFFh
;bbk0
bk1:
ST#1234h,DAT0;立即数寻址
ST#5678h,*(DDAT1)
NOP
NOP
NOP
bk2:
MVDKDAT0,DDAT0;绝对地址(dmad)寻址
MVKDDDAT1,DAT1
NOP
NOP
NOP
bk3:
MVDPDAT0,PDAT0;绝对地址(pmad)寻址
MVDPDAT1,PDAT1
NOP
NOP
NOP
bk4:
LD#PDAT1,A;累加器寻址
READADAT2
NOP
NOP
NOP
bk5:
ST#3210h,DAT3;直接寻址(DP指针)
NOP
NOP
NOP
bk6:
SSBXCPL
NOP
NOP
NOP
ST#9876h,DAT3;直接寻址(SP指针)
NOP
NOP
NOP
RSBXCPL
NOP
NOP
NOP
bk7:
STM#DDAT3,AR0;间接寻址
ST#9876h,*AR0
NOP
NOP
NOP
bk8:
STM#8888h,T;存储器映射寄存器寻址
NOP
NOP
NOP
bk9:
PSHMT;堆栈寻址
POPMT
NOP
NOP
NOP
bk10:
STM#4000h,AR0;程序存储器到数据存储器的复制
RPT#100h
MVPD1000H,*AR0+
NOP
NOP
NOP
bk11:
B_c_int00
.end
实验三、硬件中断实验
************************************************
*FileName:
ex6.asm*
*Description:
硬件中断实验*
*Copyright(C)SanZhiElectronic,AuthorZpin*
************************************************
.title"ex6"
.global_c_int00
.mmregs
KEY_ADDR.set0a008h
D_LED_ADDR.set0b000h
KEY_CODE1.set60h
KEY_CODE2.set61h
CONVERT.macrorawdata
STM#4000h,AR3
ANDM#001Fh,rawdata
LDrawdata,A
ADDAR3,A
STLA,AR3
nop
nop
LD*AR3,A
STLA,rawdata
nop
nop
nop
nop
.endm
.data
.word00h,3F06h,0605h,5B04h,4f03h,6602h,6d01h,7d06h,0705h,7f04h,6f03h,07702h,07c01h,3906h,5e05h,07904h,07103h,8002h
;BCDCODE0123456789abcdef.
;hight8bitenable,low8bitisaddress
.sect".vectors"
rst:
B_c_int00
NOP
NOP
.space17*4*16
int2:
B_onkey
NOP
NOP
.space13*4*16
.text
_c_int00:
LD#0h,DP
STM#3000h,SP
SSBXINTM
ssbxXF
STM#07FFFh,SWWSR
ST#0000h,KEY_CODE2
STM#0ffffh,IFR
ORM#0004h,IMR
RSBXINTM
susp:
PORTWKEY_CODE2,D_LED_ADDR;显示到数码管
rpt#0ffffh
NOP
NOP
Bsusp
_onkey:
nop
rpt#0ffffh
nop
nop
rpt#0ffffh
nop
nop
rpt#0ffffh
nop
nop
rpt#0ffffh
nop
nop
PORTRKEY_ADDR,KEY_CODE2;读取按键
CONVERTKEY_CODE2;将按键码转换成显示码
exitrpt#0ffffh
nop
nop
rpt#0ffffh
nop
nop
rpt#0ffffh
nop
nop
STM#0ffffh,IFR
RETE
实验四、定时器实验
************************************************
*FileName:
ex7.asm*
*Description:
定时器实验*
*Copyright(C)SanZhiElectronic,AuthorZpin*
************************************************
.title"ex7"
.global_c_int00
.mmregs
PERSEC.set60h
SEC.set61h
MIN.set62h
STATUS.set63h
TMP0.set64h
TMP1.set65h
TMP.set66h
D_LED.set0b000h
;D_LED0.set01h
;D_LED1.set02h
;D_LED2.set03h
;D_LED3.set04h
;D_LED4.set05h
;D_LED5.set06h
D_LED0.set06h
D_LED1.set05h
D_LED2.set04h
D_LED3.set03h
D_LED4.set02h
D_LED5.set01h
LED_DISP.macrohexdata,portaddr
LDhexdata,B
ST#0Ah,TMP0
RPT#15
SUBCTMP0,B
STHB,TMP0;存放BCD码个位
STLB,TMP1;存放BCD码十位
ST#2000h,AR0
LDTMP0,B
ADDAR0,B
STLB,AR0
NOP
NOP
LD*AR0,A
OR#portaddr+1,A;计算位码
PORTWAL,D_LED
rpt#30000
nop
nop
ST#2000h,AR0
LDTMP1,B
ADDAR0,B
STLB,AR0
NOP
NOP
LD*AR0,A
OR#portaddr,A;计算位码
PORTWAL,D_LED
rpt#30000
nop
nop
.endm
;段码
.data
.word3F00h,0600h,5B00h,4f00h,6600h,6d00h,7d00h,0700h,7f00h,6f00h
.sect".vectors"
rst:
B_c_int00
NOP
NOP
.space15*4*16
int0:
Bkeydown
NOP
NOP
.space2*4*16
tint:
Btimeout
NOP
NOP
.space12*4*16
.text
_c_int00
LD#0h,DP
STM#3000h,SP
SSBXINTM
RSBXSXM
STM#07FFFh,SWWSR
stm#0001h,2Bh
ST#0h,CLKMD
tst:
BITFCLKMD,#1h
BCtst,TC
ST#1087h,CLKMD
BITFCLKMD,#1h
RPT#0FFh
NOP
ORM#0010h,TCR
ST#19999,PRD
ORM#0009h,TCR
ORM#0020h,TCR
ST#0FFFFh,IFR
ORM#0008h,IMR
RSBXINTM
ST#0,PERSEC
ST#0,SEC
ST#0,MIN
ST#1,STATUS
LED_DISPPERSEC,D_LED1
LED_DISPMIN,D_LED5
LED_DISPSEC,D_LED3
ANDM#0FFEFh,TCR
suspnop
nop
nop
Bsusp
timeoutADDM#1,PERSEC
LD#100,A
SUBPERSEC,A
BCsecout,ALEQ
Bexit
secoutST#0,PERSEC
ADDM#1,SEC
LD#60,A
SUBSEC,A
BCminout,ALEQ
Bexit
minoutST#0,SEC
ADDM#1,MIN
LD#100,A
SUBMIN,A
BCoverflow,ALEQ
Bexit
overflow
ST#0,MIN
ORM#0030h,TCR;StopandReloadTimer
ST#0,STATUS;Setstopfalg
exitLED_DISPMIN,D_LED5
LED_DISPSEC,D_LED3
LED_DISPPERSEC,D_LED1
RETE
keydown
ST0ffffh,IFR
ORM#0030h,TCR
BITFSTATUS,#1h
BCrestart,NTC
RETE
restartST#0,PERSEC
ST#0,SEC
ST#0,MIN
LED_DISPPERSEC,D_LED1;刷新1/100秒表
LED_DISPSEC,D_LED3;刷新秒表
LED_DISPMIN,D_LED5;刷新分钟
ANDM#0FFEFh,TCR
RETE
.end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 实验 程序
![提示](https://static.bingdoc.com/images/bang_tan.gif)