




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、DSPDSP程序开发程序开发以最小系统板的以最小系统板的LEDLED灯闪烁程序为例:灯闪烁程序为例: 分别利用汇编语言、分别利用汇编语言、C C语言、语言、C C语言和语言和汇编语言混合编程三种方法实现汇编语言混合编程三种方法实现DSPDSP最最小系统板小系统板LEDLED灯灯D1D1闪烁。闪烁。 2 2、电路原理图:、电路原理图:D099D1100D2101D3102D4103D5104D6113D7114D8115D9116D10117D11118D12119D13121D14122D15123A0131A1132A2133A3134A4136A5137A6138A7139A8140A91
2、41A105A117A128A139A1410A1511A16105A17107A18108A19109NC1NC2NC143NC144C VDD142C VDD52CVDD16C VDD68C VDD125CVDD91DVDD75DVDD4DVDD33DVDD56DVDD112DVDD130GND3GND14GND34GND40GND50GND57GND70GND76GND93GND106GND111GND128CLKMD177CLKMD278CLKMD379B DX160B FSX154B C LKX149B DR 147B FSR 144B C LKR 142XF27BIO31IAC K
3、61NM I63INT064INT165INT266INT367RS98MP/MC32HDO58HD169HD281HD395HD4120HD5124HD6135HD76HC NTL039HC NTL146HB IL62HCS17HDS1127HDS2129HAS13HR/W18HR DY55HPIENA92NC35NC36NC37NC38NC71NC72NC73NC74NC90NC110NC126NC12NC15NC80IAQ29MSC26HOLDA28HOLD30MSTRB24IOSTB25R/W23IS22DS21PS20READY19EMU1/O84EMU083TDO85TDI86TM
4、S89TCK88TRST87B DX059B FSX053B C LKX048B DR 045B FSR 043B C LKR O41X196X2/CLKIN97CLKOUT94TOUT82HINT/TOUT151U1TMS320VC5416/5402D1LEDR 12203.3VX1CLKINDGNDD0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15A0A1A2A3A4A10A11A12A13A14A15A16A17A18CVDDC VDDC VDDCVDDC VDDC VDD3.3V3.3V3.3V3.3V3.3VDGNDDGNDDGNDDGNDDGNDDGNDD
5、GNDDGNDDGNDDGNDDGNDDGNDA19HD0HD1HD2HD3HD4HD5HD6HD7HCS3.3VR DW RHB ILHC T0HC T1HR/WHR DYHPINTHOLDAIAQINT2MSCB C LKR 2B FSR 2B DR 2B C LKX2B FSX2B DX2IAC KNM IINT0INT1INT3TOUTCLKOUT3.3VPSDSISR/WMSTRBIOSTRBREADYHOLDBIOB C LKR 0B DX0B C LKX0B DR 0B FSR 0B FSX03.3V3.3V3.3VEMU1TMSTCKTRSTTDITDOEMU0A5A6A7A8
6、A9DGNDA22CVDDDGNDBDR1BFSR1D G N DB C L K R 1B C L K X 1DGNDD G N DBFSX1BDX1R 24.7KDGNDA 2 1D G N DD G N DXFX FRESETA 2 012J1C ON2C LKOUTTOUT.DGND 简化原理图简化原理图LED1KXFDSP5416DSP5402编程思路:软件延时程序实现编程思路:软件延时程序实现LEDLED灯闪烁灯闪烁编程原理是:编程原理是:循环对循环对XFXF位置位置1 1和清和清0 0,用示波器可以在用示波器可以在XFXF脚检测到电平高低周期脚检测到电平高低周期性变化,当然也可以通
7、过性变化,当然也可以通过LEDLED的闪烁来验证的闪烁来验证程序的正确与否(但闪烁频率不能太程序的正确与否(但闪烁频率不能太快),在硬件调试时常用于检测快),在硬件调试时常用于检测DSPDSP是是否工作否工作。3 3、操作步骤要点:、操作步骤要点:(1 1)新建项目)新建项目/ /新建文件新建文件/ /添加文件到项目添加文件到项目/ /编编辑文件;辑文件;(2 2)点)点“rebuild allrebuild all”工具进行编译、汇编和工具进行编译、汇编和链接;链接;(3 3)装载上一步生成的)装载上一步生成的outout文件;文件;(4 4)点击)点击“运行运行”按钮,观察小系统板按钮,观
8、察小系统板D1D1闪烁。闪烁。4 4、汇编程序参考:、汇编程序参考:(主程序文件)(主程序文件)4 4、汇编程序参考:、汇编程序参考:中断向量表文件中断向量表文件链接命令表文件链接命令表文件5 5、C C程序参考:程序参考:(源程序均为(源程序均为C C文件)文件)中断向量表中断向量表C C文件文件主函数主函数C C文件文件链接命令表文件链接命令表文件 DSP DSP的的C C语言编写的程序语言编写的程序包括包括寄存器头文件寄存器头文件、中、中断向量表文件、断向量表文件、主函数主函数文件文件、链接命令表文件、链接命令表文件和和库文件(库文件(TITI提供的提供的 运行时支持库)运行时支持库),
9、寄存寄存器头文件和库文件不需器头文件和库文件不需要用户编写!要用户编写! 6 6、C C和汇编混合编程参考:和汇编混合编程参考:中断向量表中断向量表ASMASM文件文件主函数主函数C C文件文件延时程序延时程序ASMASM文件文件其他文件不变!其他文件不变!程序识读提示:程序识读提示:(1 1)在中断向量表中中断()在中断向量表中中断(ResetReset中断)是中断)是每个程序都应该有的,在不需要其它中断每个程序都应该有的,在不需要其它中断的情况下,可以只用这一部分,后面全部的情况下,可以只用这一部分,后面全部省掉。省掉。(2 2)汇编编程时有一个重要问题,即中断向量表的)汇编编程时有一个重
10、要问题,即中断向量表的定位,上电时默认是在定位,上电时默认是在FF80HFF80H处,但实际上很多情况处,但实际上很多情况下无法把中断向量表加载到下无法把中断向量表加载到FF80FF80处,一般重定向到处,一般重定向到0080H0080H,并在程序开头重新设置一下,并在程序开头重新设置一下IPTRIPTR的值。的值。 K_IPTR .set 0080h LDM PMST,A AND#7FH,A OR #K_IPTR,A STLM A,PMST要注意的是这段代码要用到累加器要注意的是这段代码要用到累加器A A,所以嵌入这段,所以嵌入这段代码的地方必须在用到累加器代码的地方必须在用到累加器A A之
11、前。之前。思考题:思考题:认真阅读教材和参考书,将延时程序改写为定认真阅读教材和参考书,将延时程序改写为定时器查询方式和定时器中断控制的方式,分别时器查询方式和定时器中断控制的方式,分别用本次课学习到的汇编、用本次课学习到的汇编、C语言和混合编程三种语言和混合编程三种方法实现。方法实现。提示:定时查询方式实现提示:定时查询方式实现LEDLED灯闪烁灯闪烁定时器查询的实验原理来自于定时器的逻定时器查询的实验原理来自于定时器的逻辑框图:辑框图: 定时器寄存器(定时器寄存器(TIMTIM)定时器周期寄存器(定时器周期寄存器(PRDPRD)定时器控制器寄存器(定时器控制器寄存器(TCRTCR)主要主要
12、部件部件保留保留15 12soft11free 10PSC 9 6TRB5 TDDR 3 0TSS 4TCRTCR中的控制位和状态位中的控制位和状态位定时器开始定时后,减定时器开始定时后,减1计数器开始计数,计数器开始计数,计数到计数到0再减再减1时产生借位,将会使中断标志时产生借位,将会使中断标志寄存器寄存器IFR的第的第3位位TINT置置1,在程序中可以,在程序中可以不断地查询该标志位的状态,以判断定时时不断地查询该标志位的状态,以判断定时时间到否。原理可参见教材。间到否。原理可参见教材。定时时间定时时间=Tclk X (Ttddr+1) X (Tprd+1)可以思考下面两个问题:可以思考
13、下面两个问题:1、请计算在本例中最大定时时间?、请计算在本例中最大定时时间?2、该怎样用定时器查询方式实现、该怎样用定时器查询方式实现LED闪烁。闪烁。1 1)TCRTCR中的中的TSSTSS位置位置1 1,关闭定时器。,关闭定时器。2 2)加载)加载PRDPRD。3 3)重新加载)重新加载TCRTCR定时器初始化的步骤定时器初始化的步骤 使使TDDRTDDR初始化初始化令令TSSTSS位为位为0 0TRBTRB位置位置1 1给出定时器查询实现给出定时器查询实现LEDLED灯闪烁的汇编程序:灯闪烁的汇编程序:定时中断方式实现定时中断方式实现LEDLED灯闪烁灯闪烁 中断原理的请参照教材,编程思
14、路和中断原理的请参照教材,编程思路和“单片单片机定时器中断程序机定时器中断程序”的编写方法相似。的编写方法相似。注意如果编程时用到除复位中断以外的其它注意如果编程时用到除复位中断以外的其它中断源,必须具备完整的中断向量表。中断源,必须具备完整的中断向量表。给出给出“定时器中断实现定时器中断实现LEDLED灯闪烁灯闪烁”的汇编程的汇编程序序(1)(1)汇编主程序文汇编主程序文件件中断向量表文件:中断向量表文件:链接命令文件:链接命令文件:实例二实例二 方波发生器设计方波发生器设计定时器初始化定时器初始化中断初始化中断初始化#include #include #include #include #
15、include #define IMR *(volatile unsigned int *)0 x00#define IFR *(volatile unsigned int *)0 x01#define ST1 *(volatile unsigned int *)0 x07#define PRD *(volatile unsigned int *)0 x25#define TCR *(volatile unsigned int *)0 x26extern int flag=0;当前当前XFXF输出电平标志输出电平标志, flag=1,则,则XF=1;否则,;否则,XF=0interrupt v
16、oid FB(void);主程序代码主程序代码主程序代码主程序代码void main() TCR=TCR|0X0010 ; TSS=1,停止定时器,停止定时器0 TIM=79; PRD=79; TCR=0X0269 ;启动定时器启动定时器0 IFR=IFR | 0X0008; IFR中中TINT=1,清除未处理完的定时中,清除未处理完的定时中 断断 IMR=IMR | 0X0008 ; 中断屏蔽寄存器中断屏蔽寄存器IMR中定时屏蔽位中定时屏蔽位 TINT=1,开放定时中断,开放定时中断 ST1=ST1 & 0XF7FF ;开放全部可屏蔽中断开放全部可屏蔽中断 while(1) ;等中断
17、;等中断 中断服务程序代码中断服务程序代码interrupt void FB() 中断服务程序中断服务程序 if (flag=1) 当前当前XF=1 ST1=ST1 & 0 xdfff; 输出输出XF=0 flag=0; else 当前当前XF=0 ST1=ST1 | 0X2000; 输出输出XF=1 flag=1; 中断向量表文件中断向量表文件vectors.asmvectors.asm.sect vectors .ref _main 在当前模块中使用但在其他段中定义的符号在当前模块中使用但在其他段中定义的符号 .ref _FB RESET: ; reset vector BD _m
18、ain 复位之后执行主程序复位之后执行主程序 NOP NOPnmi: RETE ; enable interrupts and return from one NOP NOP NOP ; software interruptssint17 .space 4*16sint18 .space 4*16sint19 .space 4*16sint20 .space 4*16sint21 .space 4*16sint22 .space 4*16sint23 .space 4*16sint24 .space 4*16sint25 .space 4*16sint26 .space 4*16sint27
19、.space 4*16sint28 .space 4*16sint29 .space 4*16sint30 .space 4*16int0: RETE ;External user interrupt #0 NOP NOP NOPint1: RETE ;External user interrupt #1 NOP NOP NOP中断向量表文件中断向量表文件vectors.asmvectors.asmint2: RETE ;External user interrupt #2 NOP NOP NOPtint: BD _FB ;Timer interrupt 中断服务程序入口中断服务程序入口 NO
20、P NOP rint0: RETE ;McBSP #0 receive interrupt (default) NOP NOP NOPxint0: RETE ;McBSP #0 transmit interrupt (default) NOP NOP NOPrint2: RETE ;McBSP #2 receive interrupt (default) NOP NOP NOP中断向量表文件中断向量表文件vectors.asmvectors.asmxint2: RETE ;McBSP #2 transmit interrupt (default) NOP NOP NOPint3: RETE ;Extern
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- DB6101-T 3227-2025 基于汉代文化的礼服服饰设计指南
- 人胃癌细胞系中SP表型的深度剖析:特性、机制与临床关联
- 八年级数学实数综合测试试卷及答案
- 八年级数学乘法公式应用单元试卷及答案
- 八年级数学方程组应用题单元试卷及答案
- 培训课件结尾剪辑
- 新解读《GB-T 18993.3-2020冷热水用氯化聚氯乙烯(PVC-C)管道系统 第3部分:管件》
- 培训班成果汇报课件
- 智联招聘邮储面试题及答案
- 老年模特面试题及答案
- 2025便利店加盟的合同样本
- 评职称老师考试题目及答案
- 2025年内分泌风湿免疫科进修人员出科理论考试试题及答案
- 学堂在线 高技术与现代局部战争 章节测试答案
- 2025年医疗器械仓库管理培训试题及答案
- 成都市盐道街中学语文新初一分班试卷含答案
- 梁若瑜著-十二宫六七二象书增注版
- Inspector-1000使用培训教材ppt课件
- 卢浦大桥PPT.
- 石油与天然气地质专业英语分类词汇表
- 2019北师大版高中英语必修一~三课文翻译(全册精校)
评论
0/150
提交评论