DSP秒表设计论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计任务书

2012-2013 学年第 II 学期

学院:电气工程学院

专业:电子信息科学与技术

学生姓名:陈丹丹学号:1001030102 课程设计题目:秒表的设计

起迄日期: 2月25日 ~ 3 月 15日

课程设计地点:DSP实验室

指导教师:尹维春任先文

系主任:王义军

下达任务书日期: 2012 年 2 月24 日

课程设计报告

学生姓名:陈丹丹学号:1001030102 学院:电气工程学院

班级: 电技101

题目: 秒表的设计

尹维春任先文

指导教师:职称:

2013年 3月 15 日

目录

1 设计要求 (1)

2设计原理及框图 (2)

3器件说明

3.1 TMS320LF2407芯片引脚图 (7)

3.2 MAX2709芯片引脚图及功能介绍 (7)

3.3 数码管芯片引脚图及功能介绍 (8)

4 设计过程

4.1 DSP的晶振电路设计 (7)

4.2 PLL滤波电路 (9)

4.3 DSP的复位电路的设计 (9)

4.4 总体电路图 (10)

4.5 程序流程图 (11)

4.6程序清单 (12)

5仿真调试过程

5.1 实验过程 (16)

5.2实验结果 (16)

一设计要求

基于DSP设计的秒表设计要求我们通过TMS320LF2407与外围电路如MAX2709应用电路的连接及数码管与按键的应用了解并掌握2407芯片各个引脚的功能,如定时中断功能,普通I\O口功能等,同时也掌握TMS320LF2407如何驱动数码管及按键及数码管驱动芯片的应用,增强我们对TMS320LF2407的综合应用能力,及对ccs2000集成调试环境的掌握要求秒表能实现计时,启动,暂停及复位功能。

二设计原理及框图

1设计原理

本方案完全用软件实现秒表,原理为:在TMS320LF2407内部存储器设4个字节分别存放时钟的时、分、秒.K值信息。利用定时器模块与软件结合实现1ms秒定时中断,每产生一次中断,存储器内相应的k值加1;若k值达到1000,则将其清零,并将相应的秒字节值加1;若秒值达到60,则清零秒字节,并将分字节值加1;若分值达到60,则将时字节加1,若时字节满24,则将四个字节全部清零。设计三个按键与软件结合分别实现启动,暂停,复位的功能。该方案具有硬件电路简单的特点。而且,由于是软件实现,当DSP芯片不上电,程序不执行时,时钟将不工作。

2原理框图

(1)硬件原理框图

三器件说明

1 TMS320LF2407芯片

(1)引脚图

(2)引脚功能

IOPB3引脚为一般引脚功能负责与MAX7219 的cs连接进行片选 SPISIMO为主机输出从机输入引脚

SPICLK为时钟输出引脚

2 MAX2709芯片引脚图及功能介绍.

(1)引脚图

(2)引脚功能:

DIN:串行数据输入端

DOUT:串行数据输出端,用于级连扩展

LOAD:装载数据输入

CLK:串行时钟输入

DIG0~DIG7:8位LED位选线,从共阴极LED中吸入电流 SEG A~SEG G DP:7段驱动和小数点驱动

ISET:通过一个10k电阻和Vcc相连,设置段电流。

3 数码管引脚图及功能

SEGA—SEDP :七段数码管及小数点的显示

K:位选引脚

四设计过程

1 硬件设计

(1)DSP的晶振电路设计:

本系统采用外部振荡器的时钟输入电路。由于2407A总线最大频率为40M而内部锁相环最大倍频系数为4倍,故选用低电压型号10M 的晶振。

(2)PLL滤波电路

DSP内部锁相环始终模块PLL的工作需要片外滤波电路的配合,PLL 模块使用外部滤波电路来抑制信号抖动和电磁干扰,是信号抖动和干扰影响最小。

(3)复位电路

为了防止陷入死循环,增加了复位电路

(4)按键电路

Key1负责启动 key2负责暂停 key3负责复位

(5)总体电路图

n

(2)程序清单

#include "2407c.h"

//本程序实现一个秒表,精度达到ms级别,按Key1启动、Key2暂停、Key3复位,显示格式为 h:mm:ss:kkk

#define disable() asm(" setc INTM") //禁止全局中断

#define enable() asm(" clrc INTM") //允许全局中断

unsigned int k=0,s=0,m=0,h=0;

Const unsigned int d[8] = {0x0100,0x0200,0x0300,0x0400,0x0500,0x0600,0x0700,0x0800};

/*************************************************************

*系统初始化子程序

**************************************** ********************/

void initial (void)

{

asm (" clrc SXM"); //抑制符号位扩展

asm (" clrc OVM"); //累加器正常溢出

asm (" clrc CNF"); //B0被配置为数据存储空间

*WDCR=0x00E8; //关闭看门狗

*SCSR1=0X00FC; //CLKIN=10M,CLKOUT=CLK*4=40M,并使能包括EVA在内的全部时钟,参见P31

*IMR=0x0002; //开INT2,参见P43

*IFR=0xFFFF; //清全部中断,写1清0,参见P43

*MCRB=0xFE3C; //启用SPI功能引脚

*MCRA=0; //IOPA、IOPB配置为一般I/O功能

*MCRC=0; //IOPE、IOPF配置为一般I/O功能

*PFDATDIR=0x00FF; //IOPF设置为输入,并上拉

*SPICCR=0x0F; //SPI软复位、上升沿输出数据、16位数据长度

*SPICTL=0x0E; //禁止过冲中断、允许TALK(发送)数据、主机模式、禁止SPI中断

//上升沿有延时,参考书P271图11.3、P276 MAX7219手册P6图1

*SPIBRR=0x0F; //SPI波特率=SYSCLK/(SPIBRR+1)=2.5M

*SPICCR=*SPICCR|0x80; //SPI恢复操作,准备发送、接收下一个字符WSGR=0x00; //禁止所有的等待状态

}

/*************************************************************

*定时器1初始化精确定时1ms

*************************************************************/

void timer1_init()

{

*T1CON=0x160C; //停止运行、连续增计数模式、时钟为64分频SYSCLOCK、采用内部时钟、禁止比较操作,参见P184

相关文档
最新文档