1、 电子信息工程专业 凌阳, 拇指 凌阳 项目设计说明书 凌阳, 拇指 凌阳 ( 2011/2012 学年第二学期) 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 项目名称 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 DSP 应用系统 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 题 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳,
2、拇指 凌阳 凌阳, 拇指 凌阳 目 凌 阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 基于 DSP 的电子钟设计 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 专业班级 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
3、 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 学生姓名 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳,
4、 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 学 凌阳, 拇指 凌阳 凌阳 ,拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 号: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
5、 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 指导教师 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳,
6、 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 设计周数 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
7、 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 设计成绩 凌阳, 拇指 凌阳 : 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
8、 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 1 凌 阳, 拇指 凌阳 课程设计目的 凌阳, 拇指 凌阳 通过课程设计 , 拇指 使学生综合运用 DSP 技术课程和其他有 关课程的理论和生产实际知识去分1 析和解决具体问题的能力得到提高 , 拇指 并使其所学知识得到进一步巩固、深化和发展;初步培养学生对工程设计的独立工作能力 , 拇指 学习设计的一般方法 ; 以及锻炼我们查阅资料、方案比较、团结合作的能力 。 食指 学会简单电路的实验调试和整机指标测试方法 , 拇指 增强我们的 动
9、手能力 , 拇指 为以后学习和工作打下基础 。 食指 凌阳, 拇指 凌阳 2 凌 阳, 拇指 凌阳 课程设计正文 凌阳, 拇指 凌阳 本次课程设计的课题是 一个 电子时钟设计 , 拇指 采用 2812DSP、 LED 显示模块和相关硬件电路 ,拇指 用 DSP相关语言写控制程序 , 拇指 设计一个能够正确显示秒钟的基本 DSP应用系统 。 食指 凌阳, 拇指 凌阳 2.1 凌阳, 拇指 凌阳 软件系统设计 凌阳, 拇指 凌阳 2.1.1 主函数流程图如图 1所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 1 主函数流程图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.1.2 系统实现
10、代码 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 2 #include 凌阳, 拇指 凌阳 “DSP281x_Device.h“ 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 DSP281x 凌阳, 拇指 凌阳 Headerfile 凌 阳, 拇指 凌阳 Include 凌阳, 拇指 凌阳 File 凌阳, 拇指 凌阳 #include 凌阳, 拇指 凌阳 “DSP281x_Examples.h“ 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 DSP281x 凌阳, 拇指 凌阳 Exa
11、mples 凌阳, 拇指 凌阳 Include 凌阳, 拇指 凌阳 File 凌阳, 拇指 凌阳 interrupt 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 cpu_timer0_isr(void);凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 Delay(int 凌阳, 拇指 凌阳 x);凌阳, 拇指 凌阳 char 凌阳, 拇指 凌阳 flag=1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 int 凌阳, 拇指 凌阳 g_nCount;凌阳, 拇指 凌阳 Uint16 凌阳, 拇指 凌阳 a=0xf
12、f00; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /十位 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 Uint16 凌阳, 拇指 凌阳 b=0x0000 凌阳, 拇指 凌阳 ; 凌阳, 拇指 凌阳 /个位 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 main(void)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 g_nCount=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
13、 凌阳 凌阳, 拇指 凌阳 InitSysCtrl(); 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /初始化 cpu.凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 InitPieCtrl(); 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /初始化向量表 .初始化 Pie 寄存器 .凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 IER 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0x0000; 凌阳, 拇指 凌阳 凌
14、阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /复位 ,中断使能寄存器 IER,中断标志寄存器 IFR.用于将 Pie 中断服务复位 .凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 IFR 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0x0000;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 InitPieVectTable(); 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /初始化中断向量表 . 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳
15、, 拇指 凌阳 凌阳, 拇指 凌阳 EALLOW;/关闭寄存器保护 , 拇指 与 EDIS 配合使用 .凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 PieVectTable.TINT0 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /打开 TINT0, 拇指 地址指针指向 前面向向量 , 拇指前后名字一致 . 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 EDIS; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /打开寄存器保护 . 凌阳, 拇指 凌阳 凌
16、阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 CpuTimer0.RegsAddr 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 CpuTimer0Regs.PRD.all 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0xffff; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /PRD 周期寄存器 凌阳, 拇指 凌阳 CpuTimer0Regs.TPR.all 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌
17、阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /TPR,8 位到 15 位是 PSC, 拇指 0位到 7 位是 TDDR.凌阳, 拇指 凌阳 CpuTimer0Regs.TIM.all 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /TIM 计数寄存器 , 拇指 存放计数值 凌阳, 拇指 凌阳 CpuTimer0Regs.TPRH.all 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0; 凌阳, 拇指 凌阳 凌阳, 拇指
18、 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /TPR 的高 16 位 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 CpuTimer0Regs.TCR.bit.TSS 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /TCR 控制寄存器 ,TSS=1 表示关闭定时器 , 拇指TSS=0 时启动 凌阳, 拇指 凌阳 CpuTimer0Regs.TCR.bit.SOFT 凌阳, 拇指
19、 凌阳 = 凌阳, 拇指 凌阳 1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /SOFT 和 FREE 同时使用 , 拇指 都是 1 的时候自由3 运行 凌阳, 拇指 凌阳 CpuTimer0Regs.TCR.bit.FREE 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1;凌阳, 拇指 凌阳 CpuTimer0Regs.TCR.bit.TRB 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /TRB 重装载位 , 拇指 =1 自动装载周期寄存器的值凌阳, 拇指 凌阳 CpuTimer0Reg
20、s.TCR.bit.TIE 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /中断使能计数器 , 拇指 减到 0 自动为 1 请求中断 .凌阳, 拇指 凌阳 CpuTimer0.InterruptCount 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 0; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /计数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
21、凌阳 StartCpuTimer0();/执行宏定义 , 拇指 TSS=0 时的操作 , 拇指 开始定时器计数 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 IER 凌阳, 拇指 凌阳 |= 凌阳, 拇指 凌阳 M_INT1;/赋值 0X0001 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 PieCtrlRegs.PIEIER1.bit.INTx7 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1;/按位操作 , 拇指 7 位 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
22、/打开全局中断 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 EINT; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 Enable 凌阳, 拇指 凌阳 Global 凌阳, 拇指 凌阳 interrupt 凌阳, 拇指 凌阳 INTM 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 ERTM; 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 Enable 凌阳, 拇指 凌阳 Global 凌阳, 拇指 凌阳 realtime 凌阳,
23、拇指 凌阳 interrupt 凌阳, 拇指 凌阳 DBGM 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 EALLOW;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioMuxRegs.GPAMUX.all=0x0000; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 Configure 凌阳, 拇指 凌阳 MUXs 凌阳, 拇指 凌阳 as 凌阳, 拇指 凌阳 digital 凌阳, 拇指 凌阳 I/Os 凌阳, 拇指 凌阳 or 凌阳, 拇
24、指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioMuxRegs.GPBMUX.all=0x0000; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 peripheral 凌阳, 拇指 凌阳 I/Os 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 /MUX 表示工作方式 , 拇指 两种工作方式:外 设和 I/O, 拇指 相应位为外设 , 拇指 为 0 是 I/O 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
25、凌阳 凌阳, 拇指 凌阳 GpioMuxRegs.GPADIR.all=0xffff; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 GPIO 凌阳, 拇指 凌阳 PORTs 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 as 凌阳, 拇指 凌阳 output 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioMuxRegs.GPBDIR.all=0x000f; 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 sets 凌阳, 拇指 凌阳 03 凌阳, 拇指 凌阳 b
26、it 凌阳, 拇指 凌阳 is 凌阳, 拇指 凌阳 output,others 凌阳, 拇指 凌阳 is 凌阳, 拇指 凌阳 input;GPIO 凌阳, 拇指 凌阳DIR 凌阳, 拇指 凌阳 select 凌阳, 拇指 凌阳 GPIOs 凌阳, 拇指 凌阳 as 凌阳, 拇指 凌阳 output 凌阳, 拇指 凌阳 /DIR 表示方向 , 拇指 输入还是输出管教 , 拇指 相应位为 1 为输出 , 拇指为 0 是输入 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioMuxRegs.GPAQUAL.all=0x0000; 凌阳, 拇指
27、 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 Set 凌阳, 拇指 凌阳 GPIO 凌阳, 拇指 凌阳 input 凌阳, 拇指 凌阳 qualifier 凌阳, 拇指 凌阳 values 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioMuxRegs.GPBQUAL.all=0x0000; 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 EDIS;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指
28、 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 while 凌阳, 拇指 凌阳 ( 凌阳, 拇指 凌阳 1 凌阳, 拇指 凌阳 ) 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 / 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioDataRegs.GPADAT.bit.GPIOA1=0;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioDataRe
29、gs.GPADAT.all=a;/十位 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 GpioDataRegs.GPBDAT.all=b;/个位 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB8=0)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 4 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Delay(5);凌
30、阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB8=0)flag=1;凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB9=0)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
31、凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Delay(5);凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB9=0)flag=2;凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB10=0)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳
32、凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Delay(5);凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB10=0)flag=3;凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit
33、.GPIOB11=0)凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 Delay(5);凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if(GpioDataRegs.GPBDAT.bit.GPIOB11=0)flag=4;凌 阳, 拇指 凌阳 凌阳 ,拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇
34、指 凌阳 interrupt 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 cpu_timer0_isr(void)/中断先声明后定义 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 PieCtrlRegs.PIEACK.all 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 PIEACK_GROUP1;/中断应答寄存器 凌阳, 拇指 凌阳 凌阳, 拇指凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 CpuTimer0Regs.TCR.bit.TIF 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1;/中断标
35、志位 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 CpuTimer0Regs.TCR.bit.TRB 凌阳, 拇指 凌阳 = 凌阳, 拇指 凌阳 1;/重装载位 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 if 凌阳, 拇指 凌阳 ( 凌阳, 拇指 凌阳 g_nCount=0 凌阳, 拇指 凌阳 )凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳凌阳, 拇指 凌阳 b+;凌阳, 拇指 凌阳 if(b0x0009)b=0x0000;a+;凌阳, 拇指 凌阳 if(a0xff0
36、5)a=0;b=0;凌阳, 拇指 凌阳 5 switch(flag)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 case 凌阳, 拇指 凌阳 0:break;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 case 凌阳, 拇指 凌阳 1: 凌阳, 拇指 凌阳 b-; 凌阳, 拇指 凌阳 if(b0x0009)a=a+1;b=0x0000;break;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 case 凌阳, 拇指 凌阳 3:a-; 凌阳, 拇指 凌阳 if(a0xff05)a=0xff00;break;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳
37、, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 g_nCount+; 凌阳, 拇指 凌阳 g_nCount%=2289;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 void 凌阳, 拇指 凌阳 Delay(int 凌阳, 拇指 凌阳 x)/延时 1ms*x 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 int 凌阳, 拇指 凌阳 i,j;凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 for(i=0;ix;
38、i+)凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 for(j=0;j2275;j+);凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.1.3 软件调试 凌阳, 拇指 凌阳 软件调试是通过对程序的编译、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程 。 食指 本设计的软件调试使用 CCS2000 测试软件进行调试 , 拇指 即可看到正确的测试结果 , 拇指 最终实现了利用 DSP 芯片控制并用 LED 数码管进行秒钟显示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2 硬件系统设计 凌阳, 拇指 凌阳 2.2.1
39、方案设计 凌阳, 拇指 凌阳 本系统以 TMS2812 为核心控制部件 , 拇指 利用软件编程 , 拇指 通过 CD4511 驱动 LED 数码管进行数字显示 , 拇指 使用按键实现对秒表的复位等要求 , 拇指 尽量做到硬件电路简单稳定 , 拇指 减小电磁干扰6 和其他环境干扰 , 拇指 充分发挥软件编程的优点 , 拇指 减小因元器件精度不够引起的误差 。 食指 凌阳, 拇指 凌阳 TMS320F2812 凌阳, 拇指 凌阳 DSP 有多达 56 个通用数字量输入输出端口( GPIO) , 拇指 其中绝大部分是通用I/O 和专用功能复用引脚 。 食指 此芯片对所有数字量 I/O 进行分组 ,
40、拇指 每组作为一个端口 , 拇指 分别是 GPIO-A、 B、 C、 D、 E、 F 和 G, 拇指 C28x 的绝大多数引脚内部都连接多个功能单元 , 拇指 但并不是所有功能单元都能同时工作 , 拇指 即在某一时刻一个引脚只能用作一种功能 。 食指 所有的GPIO 端口由各自的 GPxMUX 复用寄存器控制 , 拇指 控制位设置为 0 时 , 拇指 相应的引脚作为通用数字量 I/O 使用;设置为 1 时 , 拇指 相应的引脚作为专用引脚使用 。 食指 当设置为数字量 I/O 功能时 , 拇指 寄存器 GPxDIR 确定 I/O 端口的方向;控制位清零引脚配置为数字量输入;置 1 配置为数字量
41、输出 。 食指 具有输入量化功能的引脚 , 拇指 用户可以定义量化时间长度以 消除不必要的干扰信号 。 食指 由于引脚的输出缓冲直接连接到输入缓冲 , 拇指 当前 GPIO 引脚上的任何信号都会同时传送到外设模块 。 食指 因此 , 拇指 当引脚配置为 GPIO 功能时 , 拇指 相应的外设功能(和中断产生功能)必须通过复用寄存器禁止 , 拇指 否则将会首先触发中断 , 拇指 这一点对于 PDPINTA 和PDPINTB 引脚尤其重要 。 食指 如果复用引脚配置为数字 I/O 模式 , 拇指 则可以直接利用数字寄存器对 I/O 操作(读 /写)也可以利用其他辅助寄存器对各 I/O 进行独立操作
42、 , 拇指 如将数字 I/O置位( GPxSET 寄存器)、数字 I/O 清零( GPxCLEAR 寄存器)及数字 I/O 电平转换( GPxTOGGLE 寄存器) 。 食指 总体框图如图 2所示 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 按键 复位电路 电源部分 直流电源 +5v 2 个共阴极七段LED 数码管 数码管驱动 CD4511 数码管驱动 CD4511 控制部分 TMS320F2812 7 图 2 总体框图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2.2 显示电路 凌阳
43、, 拇指 凌阳 数据显示采用 CD4511 驱动共阴极数码管显示 , 拇指 凌阳, 拇指 凌阳 CD4511 是一个用于驱动共阴极 凌阳, 拇指 凌阳 LED 凌阳, 拇指 凌阳(数码管)显示器的 凌阳, 拇指 凌阳 BCD 凌阳, 拇指 凌阳 码 七段码译码器 。 食指 如图 3 所示: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 3 凌阳, 拇指 凌阳 CD4511 驱动数码管显示电路 凌阳, 拇指 凌阳 CD4511 引脚 如图 4 所示: 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 图 4 凌阳, 拇指 凌阳 CD4511 引脚图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 其功能 介绍如下:
44、 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 BI : 4 脚是消隐输入控制端 , 拇指 当 BI=0 凌阳, 拇指 凌阳 时 , 拇指 不管其它输入端状态如何 , 拇指 七段数码8 管均处于熄灭(消隐)状态 , 拇指 不显示数字 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 LT: 3 脚是测试输入端 , 拇指 当 BI=1, 拇指 L
45、T=0 凌阳, 拇指 凌阳 时 , 拇指 译 码输出全为 1, 拇指 不管输入 凌阳, 拇指 凌阳 DCBA 凌阳, 拇指 凌阳 状态如何 , 拇指 七段均发亮 , 拇指 显示 “8”。 食指 它主要用来检测数码管是否损坏 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 LE:锁定控制端 , 拇指 当 LE=0 时 , 拇指 允许译码输出 。 食指 凌阳, 拇指 凌阳 LE=1 时译码器是锁定保持状态 , 拇指 译码器输出被保持在 LE=0 时的数值 。
46、 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌 阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 A1、 A2、 A3、 A4、为 8421BCD 码输入端 。 食指 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 a、 b、 c、 d、 e、 f、 g:为译码输出端 , 拇指 输出为高电平 1 有效 。 食指 凌阳, 拇指 凌阳 还有两个引脚 8、 16 分别表示的是 VDD、 VSS。 食指 凌阳, 拇指 凌
47、阳 CD4511 具有锁存、译码、消隐功能 , 拇指 通常以反相器作输出级 , 拇指 通常用以驱动 LED。 食指 凌阳, 拇指 凌阳 2.2.3 显示模块实物图 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 凌阳, 拇指 凌阳 2.2.4 电路原理 图 凌阳, 拇指 凌阳 9 凌 阳, 拇指 凌阳 3 设计总结 凌阳, 拇指 凌阳 本次的课程设计 主要是针对 2812 和数码管进行实现功能的代码编写 。 食指 在整个的设计和操作阶段都还比较的顺利 , 拇指 但是在后期的调试过程中发现一些错误 , 拇指 这是由于我们最初设计的时候不够细致所造成的 , 拇指 虽然最后我们还是解决了问题 , 拇指 但还是 对我们的设计进度造成了很大的影响 , 拇指 这是非常值得我们注意并且应该避免的 。 食指 凌阳, 拇指