DSP时钟设计.doc_第1页
DSP时钟设计.doc_第2页
DSP时钟设计.doc_第3页
DSP时钟设计.doc_第4页
DSP时钟设计.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课课 程程 设设 计计 任任 务务 书书 分院 系 信息科学与工程学院专业电子信息工程 学生姓名杨杰学号 0703030213 设计题目时钟设计 内容及要求 内容及要求 1 使用 DSP 芯片设计时钟 2 使用数码管显示时间 3 使用键盘修改时间 进度安排 进度安排 20010 年 12 月 28 日 2011 年 01 月 03 日 选题 查阅资料及编写软件程序 或硬件原理图设计 2011 年 01 月 04 08 日课内上机调试程序及仿真 2011 年 01 月 09 10 日 课外上机调试程序及仿真 2011 年 01 月 11 13 日 调试出结果 调试结果验收并写报告 2011 年 01 月 14 日 修改报告及提交报告电子版 修改之后 2011 年 01 月 15 日 正式提交报告 打印版 及参加第一次答辩 指导教师 签字 年 月 日 分院院长 签字 年 月 日 摘摘 要要 DSP 芯片既具有高速数字信号处理功能又具有实时性强 功耗低 集成度高等嵌入 式微计算机的特点 所以随着科技的发展 DSP 技术在机电控制领域的应用愈加广泛 LED 数码管显示清晰美观 功耗低 现在已成为电子产品中应用最广泛的显示方式 本 次课程设计就是通过对 DSP 芯片和数码管的分析研究 利用 DSPC55x 构建一个时间显 示系统 采用数码管显示时间 用按键调整时间 该时钟系统包括计时 时钟输出 按键输入三个设计部分 并给出了各部分汇编程序 关键字 DSP 芯片 数码管 按键 汇编程序 目目 录录 1 绪 论 1 2 相关知识 2 2 1 TMS320C55X开发环境 2 2 2 定时器 2 2 3 中断 3 3 设计原理 4 3 1 时钟计时程序 4 3 2 时钟输出程序 4 3 3 按键输入程序 4 3 4 程序流程图 5 4 设计编程及注释 6 4 1 时钟计时程序 6 4 2 时钟输出程序 9 4 3 按键输入程序 10 4 4 SDRAM 初始化程序 11 4 5 命令文件 13 总 结 15 致 谢 16 参考文献 17 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 1 1 1 绪绪 论论 近年来数字化已成为现代信息技术的重要标志 数字相机 数字电视 是自收音 机 数字电话 数字学习机 数字游戏机已经逐渐进入人们日常生活和工作中 在我 国数字电话已拥有数亿用户 MP3 成为上亿青年学生的宠儿 数字电视已开始进入千家 万户 这些产品均采用 DSP 对信号进行处理 随着 DSP 技术的迅速发展 其不仅使信号处理能力更加完善 而且使系统开发更 加方便 程序编辑调试更加灵活 功耗也进一步降低 成本不断下降 尤其是将各种 通用外设集成到芯片上 从而大大提高了数字信号处理能力 DSP 芯片不仅在通信 计 算机领域得到广发应用 而且也逐渐渗透到人们的日常消费领域中 这就迫切要求理 工科大学生熟悉和掌握 DSP 芯片功能及其在实际中的应用方法 除通过实验教学培养 DSP 的基本实验方法 分析问题和故障检查方法以及双踪示波器等常用仪器使用方法等 基本电路的基本实验技能外 还必须培养大学生工程设计和组织实验能力 本次课程 设计的目的在于培养学生对基本 DSP 芯片功能的应用和掌握 使学生在试验原理的指 导下 初步具备基本程序的分析和设计能力 并掌握其应用方法 自行拟定实验步骤 检查和排除故障 分析和处理实验结果及撰写报告的能力 综合实验的实际目的是培 养学生初步掌握小型 DSP 系统的设计能力 提高实验技能的实践 数字电子钟是一种 计时装置 它具有时 分 秒计时功能和显示时间功能 能够通过按键调整时间 本 次设计我查阅了大量的文献资料 学习到了很过关于 DSP 定时器和中断的知识 并且 更加巩固和掌握了课堂上所学的课本知识 是自己对 DSP 技术有了更进一步的认识和 了解 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 2 2 2 相关知识相关知识 2 2 1 1 TMS320C55xTMS320C55x 开发开发环境环境 C55x 编程可以采用汇编语言 也可以采用 C C 语言 本次编程主要采用汇编语 言完成 所以执行效率高 C55x 的软件开发环境是 CCS v3 1 Code Composer Studio 是 IT 公司推出的用 于开发 DSP 芯片的集成环境 它集编辑 编译 链接 软件仿真 硬件调试 以及实时 跟踪功能于一体 2 22 2 定时器定时器 TMS320VC5509 DSP 有两个独立的 20 bit 软件可编程通用减数计数定时器 它们 可用于向 CPU 提供周期性的中断信号 或者给 DMA 控制器发送中期同步事件 也可以 用于给外部设备提供周期信号 还可以用于外部事件计数 定时器的工作始终可以来自 DSP 内部的 CPU 时钟 也可以来自引脚 TIN TOUT 利 用定时器控制寄存器 TCR 中的字段 FUNC 可以确定输入时钟源和 TIN TOUT 引脚功能 在定时器中 预定标记计数寄存器 PSC 由输入时钟驱动 PSC 在每个输入时钟 周期减 1 当其减到 0 时 TIM 减 1 当 TIM 减到 0 时 定时器向 CPU 发出一个中断请 求 TINT 或者向 DMA 控制器发送同步事件 定时器发送中断信号或同步事件信号的 频率可用下公式计算 即 TINT 频率 输入时钟频率 TDDT 1 PRD 1 定时器初始化步骤如下 1 停止定时器 TSS 1 定时器装载时能 TLB 1 定时器控制寄存器 TCR 的 其他位设置成对应数值 2 装载欲分频计数周期寄存器 PRSC 3 装载主周期寄存器 PRD 4 关闭定时器装载 TLB 0 启动定时器 TSS 0 DSP 复位 1 停止定时 TSS 1 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 3 2 预定标计数器值为 0 3 住计数器值为 FFFFh 4 定时器不进行自动重装 ARB 0 5 IDLE 指示不能使定时器进入省电模式 6 仿真时遇到软件断点定时器立即停止工作 7 TIN TOUT 为高电阻 时钟源是内部时钟 FUNC 00b 2 32 3 中断中断 中断是由硬件或软件驱动的信号 使 DSP 将当前的程序挂起 执行另外一个称为 中断服务子程序 ISR 的任务 C5x 支持 32 个 ISR 中断可以分成可屏蔽中断和不可屏蔽中断两类 可屏蔽中断可以通过软件来加以 屏蔽 不可屏蔽中断则不能被屏蔽 所有的软件中断都是不可屏蔽中断 DSP 处理中断的步骤如下 1 接收中断请求 软件和硬件都要求 DSP 将当前程序挂起 2 相应中断 CPU 必须响应中断 如果是可屏蔽中断 响应必须满足某些条件 如果是不可屏蔽中断 则 CPU 立即响应 3 准备进去中断服务子程序 CPU 要执行的主要任务有 完成当前指令的执行 并冲掉流水线上还未解码的指令 自动将某些必要的寄存器的值保存到数据堆栈和系统堆栈 从用户事先设置好的向量地址获取中断向量 该中断向量指向中断服务子程序 4 执行中断服务子程序 CPU 执行用户编写的 ISR ISR 以一条中断返回指令结 束 自动回复步骤 3 中自动保存的寄存器值 注意 外部中断只能发生在 CPU 退出复位后的至少 3 个周期后 否则无效 在硬件复位后 不论 INTM 位的设置和寄存器 IER0 IER1 的值如何 所有的中断 都被禁止 直到通过软件初始化堆栈后才开放中断 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 4 3 3 设计设计原理原理 数字时钟除基本的计时功能外还要可以通过按键设定时间 所以除了主循环程序 和输出程序外还要有按键判断程序 来设定时间 程序设计为三大部分 时钟计时程 序是程序 时钟输出程序 按键输入程序 除此外还有 SDRAM 初始化程序和命令文件 3 13 1 时钟计时程序时钟计时程序 时钟计时程序是主程序 由 CUP 提供输入时钟信号 再由 DSP 的片上外设通用定 时器完成计时功能 其中可以通过中断次数来计数 设定寄存器 AR1 AR2 AR3 分别 保存时钟的秒 分 时 设 CPU 时钟为 144MHz 当 PSC 15 TIM 59999 可以计算出中 断频率是 1 150Hz 所以用 AR0 做计数器 每 150 次中断时钟的秒 AR1 自动加 1 并判断是否等于 60 等于 60 则时钟的分 AR2 自动加 1 时钟的秒 AR1 清零 不 等于 60 跳转到等待中断程序 再次计数 150 次中断 其中时钟的分 AR2 加 1 时也 要判断是否满 60 而时钟的时加 1 时要判断是否满 12 3 23 2 时钟输出程序时钟输出程序 时钟输出程序 是将时钟的秒 分 时 输出到外设数码管上 设 时钟秒的个 位十位 分的个位十位 时的个位十位对应的数码管地址分别为是 0100h 0101h 0102h 0103h 0104h 0105h 想将时钟计时程序中的秒 分 时的 个位十位提取出 只需除以数字 10 商为十位 余数是个位 分别输出至数码管即可 3 33 3 按键输入程序按键输入程序 按键输入程序的功能是 通过外部按键设置时钟的分 时 设按键 S1 S2 S3 地址分别为 0200 0201 0202 定为当 S1 按下时进去时钟输入程序 让 CPU 随时读 取按键 S1 的地址 判断是否置一 设按键按下为高电平 置一则进入时钟输入程序 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 5 程序开头设定一个延时子程序 防止电子颤抖 进入时钟输入程序后 再读取 S2 S3 的地址是否置一 分别让 AR3 AR2 加 1 加 1 后判断是否溢出 当 S1 S2 S3 都为 0 时退出时钟输入程序回到时钟计时程序 3 43 4 程序流程图程序流程图 图 3 1 程序流程图 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 6 4 4 设计编程及注释设计编程及注释 4 14 1 时钟计时程序时钟计时程序 title shizhong asm mmregs def c int00 程序入口 def Timer0 Timer0 中断服务程序入口 ref shuchu 引用外部变量 时钟输出程序入口 ref key 引用外部变量 按键输入程序入口 ref sdram init 引用外部变量 SDRAM 初始化程序入口 LED set 400001h TIM0 set 0 x1000 PRD0 set 0 x1001 TCR0 set 0 x1002 PRSC0 set 0 x1003 SYSR set 0 x07fd CLKMD set 0 x1c00 时钟模块寄存器地址 PDP Timer0 set TIM0 128 STACK usect stack 200h 分配堆栈空间 SYSSTACK usect sysstack 200h data LED I word 1 2 4 8 4 2 sect vectors rsv b c int00 nop align 8 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 7 nmi loop 8 nop endloop int0 loop 8 nop endloop int2 loop 8 nop endloop tint0 b Timer0 nop align 8 主程序 text c int00 amov 0h XAR1 初始化时钟的秒 amov 0h XAR2 初始化时钟的分 amov 0h XAR3 初始化时钟的时 amov 0 XDP amov STACK 200h XSP amov SYSSTACK 200h XSSP Interupt 初始化中断 bset intm mov 1 IVPD mov 1 IVPH mov 10h IER0 mov 10h DBIER0 mov 0 IER1 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 8 mov 0ffffh IFR0 mov 0ffffh IFR1 call sdram init 调用 SDRAM 初始化程序 call shuchu 调用时钟输出子程序 初始化定时器并启动计时器 mov PDP Timer0 PDP mov 149 AR0 mov 0438h port TCR0 mov 15 port PRSC0 mov 59999 port PRD0 and 0fbefh port TCR0 停止从周期寄存器装入并启动定时器 bclr INTM 使能全局中断 bset AR5LC amov LED XAR4 mov 6 BK03 amov LED I XAR5 mov LED I BSA23 mov 0 AR5 loop NOP b loop 等待中断 中断服务程序 Timer0 mov AR5 AR4 bcc Next1 AR0 0h 判断是否中断 150 次 mov 149 AR0 重新装载计数器重新计数 amar AR1 时钟秒自动加 1 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 9 call shuchu bcc Fen AR1 3ch 判断 AR1 是否满 60 b Next2 Fen mov 0 AR1 amar AR2 call shuchu bcc Shi AR2 3ch b Next2 Shi mov 0 AR2 amar AR3 call shuchu bcc Loop1 AR3 0ch b Next2 Loop1 mov 0 AR3 b Next2 Next1 amar AR0 Next2 mov port 0200 AR6 读取 S1 按键装载到 AR4 bcc loop2 AR6 1h call key 当按键 S1 按下时调用按键子程序 loop2 reti 中断返回 end 4 24 2 时钟输出程序时钟输出程序 def shuchu data text 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 10 Shuchu bclr SXMD 清零 SXMD 关闭符号扩展 mov 10 AR6 设置除数为 10 mov AR1 AC0 把被除数 秒 放入 AC0 rpt 15 执行 subc16 次 subc AR6 AC0 AC0 条件减法 mov AC0 port 0101h 将商输出到秒的十位 mov HI AC0 port 0100h 将余数输出到秒的个位 mov AR2 AC0 把被除数 分 放入 AC0 rpt 0fh 执行 subc16 次 subc AR6 AC0 AC0 mov AC0 port 0103h 将商输出到分的十位 mov HI AC0 port 0102h 将余数输出到分的个位 mov AR3 AC0 把被除数 时 放入 AC0 rpt 0fh 执行 subc16 次 subc AR6 AC0 AC0 mov AC0 port 0105h 将商输出到时的十位 mov HI AC0 port 0104h 将余数输出到时的个位 ret end 4 34 3 按键输入程序按键输入程序 def key ref shuchu text key 延时 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 11 mov 500 AR5 L1 amar ar5 mov 10 AR4 L2 amar ar4 bcc L2 AR4 0h bcc L1 AR5 0h mov port 0200h AR6 bcc L AR6 0h 按键 S1 电平消失跳转到 L 退出程序 mov port 0201h AR6 bcc shi AR6 0h 按键 S2 按下 高电平 跳转 mov port 0202h AR6 bcc fen AR6 0h 按键 S3 按下 高电平 跳转 shi amar AR3 bcc yichu1 AR3 0ch 判断是否溢出 call shuchu 调用时钟输出子程序 b key yichu1 mov 0 AR3 call shuchu 调用时钟输出子程序 b key fen amar AR2 bcc yichu2 AR2 3ch call shuchu 调用时钟输出子程序 b key yichu2 mov 0 AR3 call shuchu 调用时钟输出子程序 b key L ret end 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 12 4 44 4 SDRAMSDRAM 初始化程序初始化程序 def sdram init ebsr set 0 x6c00 egcr set 0 x800 emirst set 0 x801 emibe set 0 x802 ce01 set 0 x803 ce02 set 0 x804 ce03 set 0 x805 ce11 set 0 x806 ce12 set 0 x807 ce13 set 0 x808 ce21 set 0 x809 ce22 set 0 x80a ce23 set 0 x80b ce31 set 0 x80c ce32 set 0 x80d ce33 set 0 x80e sdc1 set 0 x80e sdper set 0 x810 sdcnt set 0 x811 init set 0 x812 sdc2 set 0 x813 sdram pdp set egcr 128 text sdram init mov 0 xa01 port ebsr mov sdram pdp pdp mov 0 x220 port egcr 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 13 mov 0 x3000 port ce01 mov 0 x1fff port ce11 mov 0 x1fff port ce21 mov 0 x1fff port ce31 mov 0 x0 port emirst mov 0 x5958 port sdc1 mov 0 x38f port sdc2 mov 0 x0 port init ret end 4 54 5 命令文件命令文件 stack 200h sysstack 200h MEMORY PAGE 0 MMR origin 0000000h length 00000c0h SPRAM origin 00000c0h length 0000040h VECS origin 0000100h length 0000100h DARAM0 origin 0000200h length 0001E00h DARAM1 origin 0002000h length 0002000h DARAM2 origin 0004000h length 0002000h DARAM3 origin 0006000h length 0002000h DARAM4 origin 0008000h length 0002000h DARAM5 origin 000a000h length 0002000h DARAM6 origin 000c000h length 0002000h DARAM7 origin 000e000h length 0002000h SECTIONS 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 14 vectors VECS PAGE 0 bss DARAM0 PAGE 0 stack DARAM1 PAGE 0 sysstack DARAM1 PAGE 0 text DARAM4 PAGE 0 data DARAM5 PAGE 0 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 15 总总 结结 通过调试以上程序运行无误 完成了时钟设计要求 使用 dsp 芯片设计时钟 使 用数码管显示时间 使用键盘修改时间 通过本次课程设计实现了用 DSP 定时器做时钟 学习到了很多关于 DSP 定时器和 中断的知识 并且更加深刻的巩固了课堂上所学的课本知识 DSP 技术有了更进一步的 认识和了解 掌握了 DSP 的基本实验方法 提高了工程设计和组织实验能力 具备了 初步基本程序的分析和设计能力 并掌握其应用方法 自行拟定实验步骤检查和排除 故障 分析和处理实验结果及撰写报告的能力 提高实验技能的实践 沈阳理工大学信息科学与工程学院 DSP 技术课程设计 16 致致 谢谢 在学习中 老师严谨的治学态度 丰富渊

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论