DSP秒表设计论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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