




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
6.1.1功能框图本系统采用模块化设计,主要包括DSP处理器(TMS320VC5402)及外部存储器、单片机(计算机接口部分)、语音编/解码及通道、可编程逻辑器件(产生时钟以及DSPI/O扩展)、数码管、液晶显示屏、键盘等。系统硬件组成如图6.1所示。图6.1系统硬件组成框图(3)RAM区。先是数据区,后为程序区,用户的开发使用COFF文件格式。(4)与计算机的串行口接口,可提供给用户使用。(5)DSP的两个外部中断、一个McBSP中断和一个定时器中断都可由用户使用。(6)CPLD器件采用Altera公司的EPM7128S,用户可使用MAX+PLUSⅡ软件对器件进行编程修改。(7)提供单片机AT89C51、键盘与液晶显示屏及数码管给用户使用。1)实验目的(1)了解DSP开发系统的组成和结构;(2)熟悉DSP集成开发环境;(3)掌握TMS320C54xDSP程序空间的分配;(4)掌握TMS320C54xDSP数据空间的分配;(5)掌握操作TMS320C54xDSP存储器的相关指令;(6)掌握TMS320C54xDSP相关运算的指令;(7)TMS320C54xDSP相关程序流程控制类的指令;(8)熟悉DSP开发软件的使用。实验1CCS的使用与汇编语言程序设计入门6.2.1汇编语言程序设计2)实验内容设计一汇编程序,实现对一组所给的数的累加,并将结果送数码管显示。3)预备知识高速灵活的数据存取功能是高速信号处理的基础之一。TMS320C54xDSP支持七种基本的数据寻址模式,用于操作数据空间、程序空间和I/O空间。各种模式灵活运用可以实现高速的数据传输。由于DSP的强大功能在于对数据的处理,因此它具有丰富的访问和操作数据空间的指令。程序空间和I/O空间的读取操作指令相对少一些。对程序空间进行读/写的指令有MVDP、MVPD、MACD、MACP、FIRS等;对I/O空间读/写的指令为PORTR和PORTW。由于DSP的数据空间可以和程序空间共享,也就是说,数据和程序在空间地址上可以混合放置,所以,在片内的数据,一般以数据空间方式访问。若在片外,则要通过一定的地址译码实现数据程序空间共享。4)实验设备硬件:TMS320C54xDSP数字信号处理及嵌入式系统实验开发系统、JTAG仿真器、Pentium100以上的PC机。软件:Windows98或以上PC机操作系统、CCS集成开发环境、仿真器驱动程序。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计一程序并输入相应的链接命令文件(.cmd文件),或输入参考程序及链接命令文件(.cmd文件),使一组所给的数累加,并将结果送数码管显示;(3)新建一个工程;(4)向工程添加汇编程序及链接命令文件(.cmd文件);(5)编译、链接工程中的所有文件,生成.out文件;(6)装载上述.out文件,并运行。6)实验现象与结果运行程序后,用CCS观察相应的存储单元(见参考程序中的变量z),该单元存储了所给的一组数的累加值,且与数码管显示结果一致。7)思考题修改参考程序,实现所给的一组数的连乘,并将结果送数码管显示。参考程序如下。汇编语言程序:.title "mac.asm".mmregs.defstartSIZE.set100stack.usect"STK",SIZESEGSEL.set0001b;数码管使能控制数据,此处为第0个数码管选通 SEGSELPORT.set0h;数码管使能控制口地址SEGPORT.set1h;数码管数据口地址.bssSEG_DATA,10;用于存放从SEG_VALUE装载进来的数码管编码数据.bssx,5 ;用于存放从table0装载进来的输入数据.bssz,1 ;用于存放输出数据(计算结果).datatable0:.word1,2,3,4,5;待计算的一组输入数据;以下用于存放数码管编码数据,分别控制数码管显示0~9SEG_VALUE.word077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6H.textstart:stm#stack+SIZE,SP ;;;;;;;;;C5402初始化;;;;;;;;;;;;;;; stm#2b40h,ST1;STM#2B40H,ST1; stm#1e00h,ST0; stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000H stm#0h,SWWSR stm#04007h,CLKMD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#SEG_DATA,AR3;将数码管编码数据从SEG_VALUE装入SEG_DATA
rpt#9 mvpdSEG_VALUE,*AR3+ stm#x,AR1 ;从空间table0装载输入数据进入空间x rpt#4 mvpdtable0,*AR1+ callsum ;调用累加子程序 ld#SEGSEL,B ;第0个数码管选通 portw*(0bH),SEGSELPORT stlmA,AR0 ;累加子程序返回的计算结果转入AR0 stm#SEG_DATA,AR7;数码管编码数据区首地址送AR7 nop mar*AR7+0 ;首地址(AR7中的内容)+偏移地址(AR0中的内容) nop portw*AR7,SEGPORT;让数码管显示计算结果end: bendsum: stm#x,AR3 ;累加子程序 rptzA,#4 add*AR3,A stm#z,AR4 stlA,*AR4 ret .end链接命令文件(.cmd文件):mac.obj-omac.out-mmac.map-estartMEMORY{PAGE0:EPROM:org=02000h,len=200hPAGE1:SPRAM:org=0060h,len=001fhDARAM:org=0080h,len=100h}SECTIONS{.text:>EPROMPAGE0.data:>EPROMPAGE0.bss:>SPRAMPAGE1.stack:>DARAMPAGE1}实验2CCS使用与乘累加运算程序的设计1)实验目的(1)了解DSP开发系统的组成和结构;(2)熟悉DSP集成开发环境;(3)掌握TMS320C54xDSP程序空间的分配;(4)掌握TMS320C54xDSP数据空间的分配;(5)掌握操作TMS320C54xDSP存储器的相关指令;(6)掌握TMS320C54xDSP相关运算的指令;(7)掌握TMS320C54xDSP相关程序流程控制类的指令;(8)熟悉DSP开发软件的使用。2)实验内容设计一段汇编程序,实现数字信号处理中常用的乘累加基本运算,并将运算结果送数码管显示。运行程序后,数码管即显示两组数(如参考程序中开辟的两段数据区table0和table1)的对应数值乘积之和。3)预备知识高速灵活的数据存取功能是高速信号处理的基础之一。TMS320C54xDSP支持七种基本的数据寻址模式,用于访问数据空间、程序空间和I/O空间。各种模式灵活运用可以实现高速的数据传输。由于DSP的强大功能在于对数据的处理,因此它具有丰富的访问和操作数据空间的指令。程序空间和I/O空间的读取操作指令相对少一些。对程序空间进行读/写的指令有MVDP、MVPD、MACD、MACP、FIRS等;对I/O空间读/写的指令有PORTR和PORTW。由于DSP的数据空间可以和程序空间共享,也就是说,数据和程序在空间地址上可以混合放置,所以,在片内的数据,一般以数据空间方式访问。若在片外,则要通过一定的地址译码实现数据程序空间的共享。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计一程序并输入相应的链接命令文件(.cmd文件),分别保存;或输入参考程序及相应的链接命令文件(.cmd文件);(3)新建一个工程;(4)向工程添加汇编程序及链接命令文件(.cmd文件);(5)编译、链接工程中的所有文件,生成.out文件;(6)装载上述.out文件,并运行。参考程序如下。汇编语言程序:.title "mac.asm".mmregs.defstartSIZE.set100stack.usect"STK",SIZESEGSEL.set0001b ;数码管使能控制数据,此处为第0个数码管选通 SEGSELPORT.set0h ;数码管使能控制口地址SEGPORT.set1h;数码管数据口地址.bssSEG_DATA,10 ;用于存放从SEG_VALUE装载进来的数码管编码数据.bssx,3 ;用于存放从table0装载进来的输入数据.bssy,3 ;用于存放从table1装载进来的输入数据.bssz,1 ;用于存放输出数据(计算结果).datatable0:.word1,1,2;待计算的输入数据table1:.word1,1,3;以下用于存放数码管编码数据,分别控制数码管显示0~9SEG_VALUE.word077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6h.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化;;;;;;;;;;;;;;; stm#2b40h,ST1 ;STM#2B40H,ST1; stm#1e00h,ST0; stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000H stm#0h,SWWSR stm#04007h,CLKMD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#SEG_DATA,AR3;将数码管编码数据从SEG_VALUE装入SEG_DATA rpt#9 mvpdSEG_VALUE,*AR3+ ;stm#SEG_DATA,AR3 ;stm#9,AR5 stm#x,AR1 ;从空间table0,table1装载输入数据进入空间x,y rpt#2 mvpdtable0,*AR1+ stm#y,AR2 rpt#2 mvpdtable1,*AR2+ callmacc ;调用累加乘子程序 ld#SEGSEL,B ;第0个数码管选通 portw*(0bh),SEGSELPORT stlmA,AR0 ;累加乘子程序返回的计算结果转入AR0 stm#SEG_DATA,AR7 ;数码管编码数据区首地址送AR7 nop mar*AR7+0 ;首地址(AR7中的内容)+偏移地址(AR0中的内容) nop portw*AR7,SEGPORT;让数码管显示计算结果end: bendmacc: stm#x,AR3 ;累加乘子程序 stm#y,AR4 rsbxFRCT rptzA,#2 mac*AR3+,*AR4+,A stm#z,AR4 stlA,*AR4 ret .end链接命令文件(.cmd文件):mac.obj-omac.out-mmac.map-estartMEMORY{PAGE0:EPROM:org=02000h,len=200hPAGE1:SPRAM:org=0060h,len=001fhDARAM:org=0080h,len=100h}SECTIONS{.text:>EPROMPAGE0.data:>EPROMPAGE0.bss:>SPRAMPAGE1.stack:>DARAMPAGE1}实验3I/O读写实验1)实验目的(1)掌握TMS320C54xDSP的I/O读写指令;(2)熟悉CCS开发软件的使用;(3)了解数码管的显示原理和指令控制。2)实验内容数码管的选通信号通过DSP的I/O空间的某个地址译码产生,即将数码管映射为DSP的I/O空间,在该地址上写数据直接显示在数码管上。编程实现在数码管上显示从0~9的十进制数(静态显示方式),并在数码管显示变化时,四个独立的发光二极管与之同步闪烁。3)预备知识I/O接口电路简称接口电路,它是主机和外围设备之间交换信息的连接部件(电路),在主机和外围设备之间的信息交换中起着桥梁和纽带作用。I/O接口的编址方式:(1)I/O接口独立编址。这种编址方式是将存储器地址空间和I/O接口地址空间分开设置,互不影响。设有专门的输入指令和输出指令来完成I/O操作。(2)I/O接口与存储器统一编址方式。这种编址方式不区分存储器地址空间和I/O接口地址空间,把所有的I/O接口的端口都当作是存储器的一个单元对待,每个接口芯片都安排一个或几个与存储器统一编号的地址号。不设专门的输入/输出指令,所有传送和访问存储器的指令都可用来对I/O接口操作。在DSP应用系统中,为了便于人们观察和监视运行情况,常常需要用显示器显示运行的中间结果及状态等信息,因此显示器也是不可缺少的外部设备之一。显示器的种类很多,LED显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点。①LED的结构7段LED由7个发光二极管按“日”字形排列组成。所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。一般共阴极可以不需外接电阻,而共阳极接法中发光二极管必须外接电阻。LED的结构及连接关系如图6.2所示。图6.2LED的结构及连接关系图(a)管脚设置;(b)共阴极;(c)共阳极②LED的工作原理当选用共阴极LED显示器时,所有发光二极管的阴极连在一起接地。当某个发光二极管的阳极加入高电平时,对应的二极管点亮。因此要显示某字形,实际上就是送一个用不同电平组合代表的数据字(字符的段码)来控制LED的显示。字符数据字与LED段码的关系如图6.3所示。图6.3字符数据字与LED段码关系图注:①DP为小数点段。③LED数码管静态显示LED数码管采用静态显示与单片机接口时,共阴极或共阳极点连接在一起接地或高电平。每个显示位的段选线与一个8位并行口线对应相连。只要在显示位的段选线上保持段码电平不变,该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O接口片,也可以采用串入/并出的移位寄存器或是其他具有三态功能的锁存器等。④LED数码管动态显示在多位LED显示时,为了简化电路、降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(或共阳)极公共端分别由相应的I/O线控制,实现各位的分时选通。由于各个数码管共用同一个段码输出口,分时轮流通电,从而大大简化了硬件线路,降低了成本。不过这种方式的数码管接口电路中,数码管不宜太多,一般在8个以内,否则每个数码管所分配到的实际导通时间太少,显得亮度不足。若LED位数较多时应增加驱动能力,来提高显示亮度。⑤LED与DSP的连接原理如图6.4所示。4个8位数码管采用动态显示,首先选中某个数码管,然后在其上显示。数码管的选择信号SLED1、SLED2、SLED3、SLED4映射为DSP地址为0的I/O空间,数码管的显示数据LE0~LE7映射为DSP地址为1的I/O空间。图6.4LED与DSP的连接原理图4)实验设备硬件:JLD型DSP实验与开发系统、JTAG仿真器、Pentium100以上的PC机。软件:Widnows98或以上的PC机操作系统、CCS集成开发环境、仿真器驱动程序。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计程序及相应的链接命令文件(.cmd文件),或输入参考程序及相应的链接命令文件(.cmd文件),分别保存;(3)新建一个工程;(4)向工程添加上述程序及链接命令文件(.cmd文件);(5)编译、链接工程中的所有文件,生成.out文件;(6)装载上述.out文件,并运行;(7)LED的显示刷新速度由子程序delay的定时周期决定。修改程序,重新设置刷新速度及LED的显示内容,重复步骤(5)~(6)。6)实验现象与结果数码管循环显示0~9十个数字。显示变化时,四个独立的发光二极管与之同步闪烁。7)思考题修改参考程序,使数码管循环显示9~0(递减)十个数字;显示变化时,四个独立的发光二极管与之同步闪烁;每个循环结束后,停顿较长时间,再自动进入下一轮循环显示。参考程序如下。汇编语言程序:.title "seg_ledtest.asm".mmregs.defstartSIZE.set100stack.usect"STK",SIZESEGSEL.set1111b ;数码管使能控制数据,此处四个数码管均使能SEGSELPORT.set0h ;数码管使能控制口地址SEGPORT.set1h;数码管数据口地址LED1PORT.set2h;LED1地址LED2PORT.set3hLED3PORT.set0ehLED4PORT.set0fh.bssSEG_DATA,10h;用于存放从SEG_VALUE装载进来的数码管编码数据.data ;存放数码管编码数据,分别控制数码管显示0~9SEG_VALUE.word077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6h.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化:;;;;;; STM#2B40h,ST1 STM#1E00h,ST0 stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000H stm#7FFFh,SWWSR stm#04007h,CLKMD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#SEG_DATA,AR3 ;从SEG_VALUE装载数码管编码数据 rpt#9 ;放入SEG_DATA mvpdSEG_VALUE,*AR3+ stm#SEG_DATA,AR3 ;AR3复位:指向SEG_DATA首址 stm#9,AR5 ;用作减法记数(下面程序控制用) ld#SEGSEL,A ;选通数码管:四个均选通 portw*(08h),SEGSELPORT ;08H即累加器A的地址run_led: ;以下程序让数码管循环显示0~9,同时LED闪烁一次 ld*AR3+,A ;向数据口送编码数据 portw*(08h),SEGPORT ld#0,B ;使LED全亮 portw*(0bh),LED1PORT portw*(0bh),LED2PORT portw*(0bh),LED3PORT portw*(0bh),LED4PORT calldelay ;亮状态停顿 ld#1,B ;使LED全灭 portw*(0bh),LED1PORT portw*(0bh),LED2PORT portw*(0bh),LED3PORT portw*(0bh),LED4PORT calldelay ;灭状态停顿 banzout_int,*AR5- stm#9,AR5 stm#SEG_DATA,AR3out_int: brun_leddelay: pshmar0 pshmar3 pshmar4 stm#0fffh,ar7wait0: stm#0ffh,ar6wait1: banzwait1,*ar6- banzwait0,*ar7- popmar4 popmar3 popmar0 ret .end链接命令文件(.cmd文件):seg_ledtest.obj-oseg_ledtest.out-mseg_ledtest.map-estartMEMORY{PAGE0:EPROM:org=2000h,len=1000hPAGE1:DARAM:org=3000h,len=1000h}SECTIONS{.text:>EPROMPAGE0.vectors:>EPROMPAGE0.data:>DARAMPAGE1.bss:>DARAMPAGE1.stack:>DARAMPAGE1}实验4CCS的使用与汇编程序的控制设计1)实验目的(1)了解DSP开发系统的组成和结构;(2)熟悉DSP集成开发环境;(3)掌握TMS320C54xDSP程序空间的分配;(4)掌握TMS320C54xDSP数据空间的分配;(5)掌握操作TMS320C54xDSP存储器的相关指令;(6)掌握TMS320C54xDSP相关运算的指令;(7)掌握TMS320C54xDSP相关程序流程控制类的指令;(8)熟悉DSP开发软件的使用。2)实验内容设计一汇编程序,实现从一组所给的数中找出最大值,并将结果送数码管显示。运行程序后,用CCS观察相应的存储单元(参考程序中用z),该单元存储了所给一组数中的最大数,且与数码管显示结果一致。3)预备知识高速灵活的数据存取功能是高速信号处理的基础之一。TMS320C54xDSP支持七种基本的数据寻址模式,用于操作数据空间、程序空间和I/O空间。各种模式灵活运用可以实现高速的数据传输。由于DSP的强大功能在于对数据的处理,因此它具有丰富的访问和操作数据空间的指令。程序空间和I/O空间的读取操作指令相对少一些。对程序空间进行读/写的指令有MVDP、MVPD、MACD、MACP、FIRS等;对I/O空间读/写的指令为PORTR和PORTW。由于DSP的数据空间可以和程序空间共享,也就是说,数据和程序在空间地址上可以混合放置,所以,在片内的数据,一般以数据空间方式访问。若在片外,则要通过一定的地址译码实现数据程序空间共享。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计程序及相应的链接命令文件(.cmd文件),或输入参考程序及相应的链接命令文件(.cmd文件),从一组所给的数中找出最大值,并将结果送数码管显示。(3)新建一个工程;(4)向工程添加汇编程序及链接命令文件(.cmd文件);(5)编译、链接工程中的所有文件,生成.out文件;(6)装载上述.out文件,并运行。6)实验现象与结果运行程序后,用CCS观察相应的存储单元(参考程序中用z),该单元存储了所给一组数中的最大数,且与数码管显示结果一致。.bssSEG_DATA,10;用于存放从SEG_VALUE装载进来的数码管编码数据.bssnumber,10 ;用于存放从TABLE装载进来的供比较的数据.bssz,1 ;用于存放最大值.dataTABLE.word4,2,3,5,1,8,6,5,4,9 ;供比较的数据;以下用于存放数码管编码数据,分别控制数码管显示0~9SEG_VALUE.word077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6h.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化;:;;;;;; stm#2b40h,ST1 stm#0,ST0 stm#1e00h,ST0 ;stm#435FH,ST1 stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000H stm#0h,SWWSR stm#4007h,CLKMD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#SEG_DATA,AR3 ;从SEG_VALUE装载数码管编码数据 rpt#9 mvpdSEG_VALUE,*AR3+ stm#number,AR1 ;从TABLE装载供比较的数据 rpt#9 mvpdTABLE,*AR1+ stm#SEG_DATA,AR3 stm#9,AR5 callgetmax ;调用求最大值子程序 calldisplay ;调用数码管显示子程序end: Bendgetmax: ld#0,A stm#number,AR3 st#9,BRC rptbrea1 ld*AR3+,Brea1: maxA stm#z,ar6 stlA,*ar6 ret
display:ld#SEGSEL,B portw*(0bh),SEGSELPORT stlmA,AR0 stm#SEG_DATA,AR7 nop mar*AR7+0 nop portw*AR7,SEGPORT ret .end链接命令文件(.cmd文件):max.obj-omax.out-mmax.map-estartMEMORY{PAGE0:EPROM:org=2000h,len=1000hPAGE1:DARAM:org=3000h,len=1000h}SECTIONS{.text:>EPROMPAGE0.vectors:>EPROMPAGE0.data:>DARAMPAGE1.bss:>DARAMPAGE1.stack:>DARAMPAGE1}实验5中断实验1)实验目的(1)了解TMS320C54xDSP中断向量表以及中断服务子程序的编写;(2)掌握TMS320C54xDSP中断的使用。2)实验内容使用外部按键(INT)触发TMS320C54xDSP的外部中断,每来一次中断,就响应中断程序。按键INT,启动int0中断,中断服务程序使数码管显示的数加1,循环递增。显示变化时,四个独立的发光二极管与之同步闪烁。3)预备知识DSP的中断包括不可屏蔽中断NMI,外部中断INT0~3和软中断。中断响应实际是特殊的程序调用过程。当满足中断响应条件时,相应的中断服务程序被调用。中断的使用包括中断设置和中断服务程序设计。中断设置包括:(1)全局中断控制位(INTM),用于控制所有中断(除不可屏蔽中断NMI)是否允许响应。清0时使能(RSBXINTM),置1时关闭(SSBXINTM)。(2)中断屏蔽寄存器(IMR)的设置。当相应位置1时,对应的中断被打开。(3)中断向量指针IPTR,位于处理器状态寄存器PMST中。IPTR用于定位中断向量表的首地址。中断服务程序的设计包括:(1)中断向量表的设计。中断响应时,CPU自动从IPTR包含的地址定位中断向量的位置,并从此处执行。所以中断向量一般为跳转指令,跳转到响应服务程序执行。(2)中断服务程序主体的编写。包含中断事件的处理指令。服务程序由中断返回指令(RC、RETF或RETE)结束。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计程序及相应的链接命令文件(.cmd文件),或输入参考程序及相应的链接命令文件(.cmd文件),分别保存;(3)新建一个工程,添加相关文件;(4)编译、链接工程中的所有文件,生成.out文件;(5)装载.out文件并运行,按下实验箱上的中断实验按键INT;观察数码管显示变化。6)实验现象与结果按键INT,启动int0中断,中断服务程序使数码管显示的数加1,循环递增。显示变化时,四个独立的发光二极管与之同步闪烁。7)思考题修改参考程序中的中断服务程序,使四个独立的发光二极管移位发亮。参考程序如下。汇编程序:.title "int00.asm" .mmregs .defstart .defint00SIZE.set100stack.usect"STK",SIZESEGSEL.set0001b;数码管使能控制数据,此处为第0个数码管选通SEGSELPORT.set0h ;数码管使能控制口地址SEGPORT.set1h ;数码管数据口地址.bssSEG_DATA,10;用于存放从SEG_VALUE装载进来的数码管编码数据.bssz,1 ;用于存放最大值.data;以下用于存放数码管编码数据,分别控制数码管显示0~9SEG_VALUE.word077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6h.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化;;;;;;;;;;;;;;; stm#1e00h,ST0 stm#0b40h,ST1 stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000h stm#0h,SWWSR stm ;工作于锁相环模式:CLKOUT=1/4CLKIN;CLKIN=10MHz STM#0001h,IMR ;打开int0中断 RSBXINTM ;中断使能 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#SEG_DATA,AR3 ;从SEG_VALUE装载数码管编码数据 rpt#9 mvpdSEG_VALUE,*AR3+ stm#SEG_DATA,AR3 stm#1,AR0 stm#10,BKhere: Bhereint00: mar*AR3+0% ld*AR3,A CALLdisplay retedisplay: ld#SEGSEL,B portw*(0bh),SEGSELPORT stlmA,AR0 stm#SEG_DATA,AR7 nop mar*AR7+0 nop portw*AR7,SEGPORT ret .end.title"Vectors.asm".refstart.refstart.refint00.sect"Vectors"reset:Bstart NOP NOP NOPnmi: RETE NOP NOP NOP;softwareinterruptssint17.space4*16sint18.space4*16sint19.space4*16sint20.space4*16sint21.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0:BDint00 NOP NOP NOPint1: RETE NOP NOP NOPint2: RETE NOP NOP NOPtint: RETE NOP NOPrint0: RETE NOP NOP ;Interrupt0 NOPxint0: RETE ;SerialPortTransmit NOP NOP NOPrint2: RETE ;SerialPortReceive NOP ;Interrupt1 NOP NOPxint2: RETE ;SerialPortTransmit NOP ;Interrupt1 NOP NOPint3: RETE NOP NOP NOPhintp: RETE NOP NOP NOPrint1: RETE NOP NOP NOPxint1: RETE NOP NOP NOP .space4*16.end链接命令文件(.cmd文件):Vectors.objint00.obj-mint00.map-oint00.out-estartMEMORY/*TMS320C54xmicroprocessormodememorymap*/{PAGE0:PROG1:origin=0x2000,length=0x200PROG2:origin=0x2200,length=0x0d00PAGE1:DARAM1:origin=0x3000,length=0x1000/*databuffer,8064words*/PAGE2:FLASHRAM:origin=0x8000,length=0xffff}SECTIONS{.Vectors:load=PROG1 page0/*interruptvectortable*/.text:load=PROG2 page0/*executablecode*/.cinit:load=PROG2 page0/*tablesforinitializingvariablesandconstants*/.stack:load=DARAM1 page1/*Csystemstack*/.const:load=DARAM1 page1/*datadefinedasCqualifierconst*/.bss:load=DARAM1 page1
/*globalandstaticvariables*//*WAB3/19/90*/.data:>DARAM1 page1/*.datfiles*/}实验6外部标志输出引脚(XF)实验1)实验目的(1)熟悉CCS开发软件的使用;(2)掌握TMS320C54xDSP的I/O读/写指令;(3)了解DSP的XF的使用方法;(4)熟悉汇编语言编程的方法。2)实验内容编程实现XF输出占空比和频率可调的方波信号。3)预备知识通用输入/输出引脚VC54xDSP通过两个专用的引脚,提供了可编程控制的通用输入/输出引脚,分别是分支转移控制输入引脚()和外部标志输出引脚(XF)。方波的周期和占空比可由程序来控制。可以用来检测外围设备的状态。在时间要求很紧张的系统里,通过检测该引脚的状态来决定程序控制是对中断方式的一个特别有用的替代选择。可通过的状态来执行条件指令。XF可以用来通知外围设备,也可以由指令方便地控制其输出电平。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计程序及相应的链接命令文件(.cmd文件),或输入参考程序及相应的链接命令文件(.cmd文件),分别保存;(3)新建一个工程,添加相关文件;(4)编译、链接工程,生成.out文件;(5)装载.out文件,并运行;(6)修改主程序和延时子程序中有关变量,调节方波的占空比和频率,重复步骤(1)~(5)。6)实验现象与结果用示波器可以在XF的输出端看到一个周期性方波信号。方波的周期和占空比可由程序来控制。7)思考题修改参考程序,通过设置时钟模式寄存器(CLKMD)来改变方波信号的频率,并用示波器观察。参考程序如下。汇编语言程序:.title "xf_pulse.asm" .mmregs .defstartSIZE.set100HIGH_WIDTH.set7fh ;设置高电平宽度LOW_WIDTH.set7fh ;设置低电平宽度stack.usect"STK",SIZE.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化;;;;;;;;;;;;;;; stm#2b40h,ST1 ;STM#2B40H,ST1; stm#1e00h,ST0; stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000h stm#0h,SWWSR stm#04007h,CLKMD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; loop: ssbxxf calldelay rsbxxf calldelay bloopdelay: pshmar0 pshmar3 pshmar4 stmHIGH_WIDTH,ar7wait0: stmLOW_WIDTH,ar6wait1: banzwait1,*ar6- banzwait0,*ar7- popmar4 popmar3 popmar0 ret .end链接命令文件(.cmd文件)xf_pulse.obj-oxf_pulse.out-mxf_pulse.map-estartMEMORY{PAGE0:EPROM:org=02000h,len=200hPAGE1:SPRAM:org=0060h,len=001fhDARAM:org=0080h,len=100h}SECTIONS{.text:>EPROMPAGE0.data:>EPROMPAGE0.bss:>SPRAMPAGE1.stack:>DARAMPAGE1}实验7转移控制输入引脚()实验1)实验目的(1)熟悉CCS开发软件的使用;(2)掌握TMS320C54xDSP的I/O读/写指令;(3)了解DSP的的使用方法;(4)熟悉汇编语言编程的方法。2)实验内容用汇编语言编程,测试,通过程序的控制及外围接口器件来反映不同的测试结果。将实验箱的输入端子通过短路片分别与实验箱上的高低电平端子短接。当接低电平时,数码管显示内容发生变化(循环显示0~9十个数);当接高电平时,数码管显示固定;当悬空时,数码管显示方式与悬空前的状态相同。3)预备知识可以用来检测外围设备的状态。在时间要求很紧张的系统里,通过检测该引脚的状态来决定程序控制是对中断方式的一个特别有用的替代选择。可通过的状态来执行条件指令。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)用汇编语言设计程序及相应的链接命令文件(.cmd文件),或输入参考程序及相应的链接命令文件(.cmd文件),分别保存;(3)新建一个工程,添加相关文件;(4)编译、链接工程,生成.out文件;(5)装载.out文件,并运行;(6)修改程序中有关内容,通过在XF输出一个周期性的方波来反映的状态:为低电平时有信号波形输出,为高电平时无信号输出。6)实验现象与结果将实验箱的输入端子通过短路片分别与实验箱上的高低电平端子短接。当接低电平时,数码管显示内容发生变化(循环显示0~9十个数);当接高电平时,数码管显示固定;当悬空时,数码管显示方式与悬空前的状态相同。7)思考题修改参考程序,实现通过改变高低电平来切换发光二极管的闪烁频率。参考程序如下。汇编语言程序:.title"bio.asm".mmregs.defstartSIZE.set100stack.usect"STK",SIZESEGSEL.set1111b ;数码管使能控制数据,此处四个数码管均使能SEGSELPORT.set0h;数码管使能控制口地址SEGPORT.set1h;数码管数据口地址LED1PORT.set2h;LED1地址LED2PORT.set3hLED3PORT.set0ehLED4PORT.set0fh.bssSEG_DATA,10h;用于存放从SEG_VALUE装载进来的数码管编码数据.data;存放数码管编码数据,分别控制数码管显示0~9SEG_VALUE.word077h,014h,0b3h,0b6h,0d4h,0e6h,0e7h,034h,0f7h,0f6h.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化:;;;;;; stm#2B40h,ST1 stm#1E00h,ST0 stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000H stm#7FFFh,SWWSR stm#04007h,CLKMD ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#SEG_DATA,AR3 ;从SEG_VALUE装载数码管编码数据 rpt#9 ;放入SEG_DATA mvpdSEG_VALUE,*AR3+ stm#SEG_DATA,AR3 ;AR3复位:指向SEG_DATA首址 stm#9,AR5 ;用作减法记数(下面程序控制用) ld#SEGSEL,A ;选通数码管:四个均选通 portw*(08h),SEGSELPORT ;08H即累加器A的地址 loop: xc2,bio ;对口的判断跳转指令 callrun_led nop bnnnrun_led:;以下程序让数码管循环显示0~9,同时LED闪烁一次 ld*ar3+,A ;向数据口送编码数据 portw*(08h),SEGPORT ld#0,B ;使LED全亮 portw*(0bh),LED1PORT portw*(0bh),LED2PORT portw*(0bh),LED3PORT portw*(0bh),LED4PORT calldelay ;亮状态停顿 ld#1,B ;使LED全灭 portw*(0bh),LED1PORT portw*(0bh),LED2PORT portw*(0bh),LED3PORT portw*(0bh),LED4PORT calldelay ;灭状态停顿 banzout_int,*AR5- stm#9,AR5 stm#SEG_DATA,AR3out_int: ;run_led retdelay: pshmar0 pshmar3 pshmar4 stm#07ffh,ar7wait0: stm#0ffh,ar6wait1: banzwait1,*ar6- banzwait0,*ar7- popmar4 popmar3 popmar0 retnnn: bloop .end链接命令文件(.cmd文件)bio.obj-obio.out-mbio.map-estartMEMORY{PAGE0:EPROM:org=2000h,len=1000hPAGE1:DARAM:org=3000h,len=1000h}SECTIONS{.text:>EPROMPAGE0.vectors:>EPROMPAGE0.data:>DARAMPAGE1.bss:>DARAMPAGE1.stack:>DARAMPAGE1}实验8定时器实验1)实验目的(1)掌握TMS320C54xDSP定时器中断的概念和使用;(2)学习定时器中断的使用方法,以及定时器定时周期的设定。2)实验内容编写程序,设置TMS320C54xDSP定时器的相关寄存器,改变定时器的定时周期,在定时器的中断服务子程序里使XF端产生方波信号。其信号周期可由定时器周期PRD、定时器控制寄存器TCR中的TDDR以及控制主时钟周期的时钟方式寄存器CLKMD决定。3)预备知识定时器中断TINT的速率可由下面公式计算: TINTrate=1/tc*u*v=1/tc*(TDDR+1)*(PRD+1)式中,tc为CPU时钟周期。通过使用TOUT输出引脚来定时设备或者使用定时器中断周期性地从一个寄存器读取数据,定时器可以产生外围模拟接口的采样时钟。(1)初始化定时器时,需要按照以下步骤设置:①TSS=1,停止定时器;②载入PRD值;③重新载入TCR初始化TDDR,设置TSS=0和TRB=1来重载定时器周期。启动定时器。(2)状态寄存器ST1的中断模式INTM=1的情况下,可以采取下列步骤激活定时器中断:①设置中断标志寄存器(IFR)中的TINT=1,清除定时中断;②设置中断屏蔽寄存器(IMR)中的TINT=1,激活定时器中断。(3)INTM=0,激活全部中断。5)实验步骤(1)连接好DSP开发系统,运行CCS软件;(2)设计程序或键入下面的参考程序并保存;(3)新建一个工程,向工程添加所有以上程序;(4)编译、链接工程,生成time_int.out文件;(5)装载time_int.out文件,并运行;(6)修改程序,通过改变寄存器PRD、TCR和CLKMD的内容来输出一个10kHz的方波。6)实验现象与结果程序运行后,在XF端口可用示波器看到方波信号。其信号周期可由定时器周期PRD、定时器控制寄存器TCR中的TDD以及控制主时钟周期的时钟方式寄存器CLKMD决定。7)思考题修改参考程序,使XF端口的方波信号频率为10kHz,占空比为25%。参考程序如下。汇编语言程序: .title "time_int.asm" .mmregs .defstart .deftint00 SIZE.set100TIM0.set0024hPRD0.set0025hTCR0.set0026h.bssxf_flag,1stack.usect"STK",SIZE.textstart: stm#stack+SIZE,SP ;;;;;;;;;C5402初始化;;;;;;;;;;;;;;; stm#1e00h,ST0 stm#2b40h,ST1 stm#02024h,PMST ;IPTR=0010,0000,0->RESET=2000H stm#0h,SWWSR stm ;工作于锁相环模式:CLKOUT=1/4CLKIN;CLKIN=10MHz ;;;;;;;;;;定时器0初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm先停止定时器0,再装载TIM0,PRD0 stm#249,TIM0 stm#249,PRD0;由以上,定时周期=CLKOUT周期*(PRD0+1)(TDDR0+1)=(1/(10M/4))*250*10=1ms stm#0000000011101001b,TCR0 ;TDDR0=9,并启动定时器0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; stm#0000h,IFR stm#0008h,IMR ;打开定时器0的中断 rsbxINTM ;中断使能here: bheretint00: ldmST1,A ;定时器0的中断服务程序 xor将ST1的第13位(即XF位)取反 stlmA,ST1 rete .end.title"Vectors.asm".refstart.align0x80.refstart.reftint00.sect"Vectors"reset: bstart nop nop nopnmi: rete nop nop nop;softwareinterruptssint17.space4*16sint18.space4*16sint19.space4*16sint20.space4*16sint21.space4*16sint22.space4*16sint23.space4*16sint24.space4*16sint25.space4*16sint26.space4*16sint27.space4*16sint28.space4*16sint29.space4*16sint30.space4*16int0: rete nop nop nopint1: rete nop nop nopint2: rete nop nop noptint: btint00;定时器0入口 nop nop noprint0: rete nop nop nopxint0: rete nop nop noprint2: rete nop nop nopxint2: rete nop nop nopint3: rete nop nop nophintp: rete nop nop noprint1: rete nop nop nopxint1: rete nop nop nop .space4*16.end链接命令文件(.cmd文件)如下:Vectors.objtime_int.obj-mtime_int.map-otime_int.out-estartMEMORY/*TMS320C5402microprocessormodememorymap*/{PAGE0:PROG1:origin=0x2000,length=0x200PROG2:origin=0x2200,length=0x0d00PAGE1:DARAM1:origin=0x3000,length=0x1000/*databuffer,8064words*/PAGE2:FLASHRAM:origin=0x8000,length=0xffff}SECTIONS{.Vectors :load=PROG1 page0/*interruptvectortable*/.text :load=PROG2 page0/*executablecode*/.stack :load=DARAM1 page1/*systemstack*/.bss :load=DARAM1 page1/*globalandstaticvariables*/.data :>DARAM1 page1/*.datfiles
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 光电工程师证书考试中不可错过的知识点试题及答案
- 2025-2030婴儿护肤品产品入市调查研究报告
- 2025-2030多谷物面包行业市场发展分析及前景趋势与投资研究报告
- 2025-2030塑料光纤连接器市场前景分析及投资策略与风险管理研究报告
- 西师大版五年级语文下学期月考考试强化检测
- 2025-2030国内预涂膜行业市场发展现状及发展前景与投资机会研究报告
- 2025-2030国内胶囊行业市场发展分析及竞争格局与投资机会研究报告
- 2025-2030国内新能源电池行业深度分析及竞争格局与发展前景预测研究报告
- 二年级数学下册月考质量评估综合知识检测
- 2025-2030国内乐器行业深度分析及竞争格局与发展前景预测研究报告
- 输液港的植入和并发症处理课件
- 世界史知识点总结
- 公司IPQC巡检记录表
- 施工现场建筑垃圾处置专项方案
- 环形锻件的轧制过程的基本原理和工艺流程
- 大班音乐《水果百变秀》课件
- 妇幼保健院医疗保健服务转介工作制度和流程
- 监察机关执法工作规定学习测试
- 超细干粉灭火系统施工质量记录表格
- 2022职业病防治法宣传周PPT
- (高清版)外墙外保温工程技术标准JGJ144-2019
评论
0/150
提交评论