视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
DSP交通灯的控制与实现
2025-09-28 02:09:27 责编:小OO
文档
信息与电气工程学院

课程设计说明书

(2010/2011学年第二学期)

课程名称 :     DSP控制器及其应用       

题    目 :    DSP控制十字路口交通灯    

专业班级 :         

学生姓名 :                      

学    号 :                    

指导教师 :     

设计周数 :          2周                

设计成绩 :                             

2011年7月7日

目   录

1 课程设计目的    2

2 课程设计正文    2

2.1 课程设计要求    2

2.2 F2812结构图    2

2.3 数码管驱动芯片    2

2.4 F2812系统调试环境结构实物    5

2.5 总体电路设计    6

3 课程设计总结    7

4 参考文献    7

附录1:    8

附录2:    12

1 课程设计目的

这学期我们学习了《DSP控制器的原理及应用》这一门课程,为了实现理论结合实践,锻炼我们的动手能力和团队合作能力,我们针对这门课程进行的课程设计。通过这次的课程设计,我们要更加深入的学习这门课程,掌握这门技术,加深对DSP控制器的原理的理解和掌握。利用DSP开发环境CCS  C2000对源程序文件进行编译、链接、装载调试,以完成基本的DSP项目文件设计。

2 课程设计正文

2.1 课程设计要求

⑴ 设计一个十字路口交通灯(带一个倒计时数码管),每个方向有三色(红、黄、绿)。

⑵ 实现交通灯双向车道红绿灯切换功能、交通灯全亮功能、数码管全亮功能。

⑶ 保证每次切换倒计时9秒,在此时熄灭绿灯。

2.2 F2812结构图

考虑到DSP芯片的引脚太多,而我们此次的课程设计用到的引脚不多,所以就只画了部分引脚。

2.3 数码管驱动芯片

此次的课程设计可选用的数码管驱动芯片也很多。但是,为了在编写程序时简单,尽量少用DSP的引脚,所以我们此次的课程设计选择了CD4511芯片来驱动数码管。

CD4511是一个用于驱动共阴极 LED (数码管)显示器的 BCD 码—七段码译码器,特点:具有BCD转换、消隐和锁存控制、七段译码及驱动功能的CMOS电路能提供较大的拉电流。可直接驱动LED显示器。

CD4511是一片CMOS BCD—锁存/7 段译码/驱动器,引脚排列如图2.2所示。其中a、 b、 c、 d 为 BCD 码输入,a为最低位。LT为灯测试端,加高电平时,显示器正常显示;加低电平时,显示器一直显示数码“8”,各笔段都被点亮,以检查显示器是否有故障。BI为消隐功能端,低电平时使所有笔段均消隐,正常显示时, B1端应加高电平。另外 CD4511有拒绝伪码的特点,当输入数据越过十进制数9(1001)时,显示字形也自行消隐。LE是锁存控制端,高电平时锁存,低电平时传输数据。a~g是 7 段输出,可驱动共阴LED数码管。另外,CD4511显示数“6”时,a段消隐;显示数“9”时,d段消隐,所以显示6、9这两个数时,字形不太美观 图3是 CD4511和CD4518配合而成一位计数显示电路,若要多位计数,只需将计数器级联,每级输出接一只 CD4511 和 LED 数码管即可。所谓共阴 LED 数码管是指 7 段 LED 的阴极是连在一起的,在应用中应接地。限流电阻要根据电源电压来选取,电源电压5V时可使用300Ω的限流电阻。

⑴ CD4511引脚功能介绍如下: 

BI:4脚是消隐输入控制端,当BI=0 时,不管其它输入端状态如何,七段数码管均处于熄灭(消隐)状态,不显示数字。

LT:3脚是测试输入端,当BI=1,LT=0 时,译码输出全为1,不管输入 DCBA 状态如何,七段均发亮,显示“8”。它主要用来检测数码管是否损坏。 

LE:锁定控制端,当LE=0时,允许译码输出。 LE=1时译码器是锁定保持状态,译码器输出被保持在LE=0时的数值。

A1、A2、A3、A4为8421BCD码输入端。 

a、b、c、d、e、f、g为译码输出端,输出为高电平1有效。

⑵ CD4511的工作原理

① CD4511的工作真值表

表2-1 CD4511真值表

输          入

输            出

LEBILIA3A2A1A4abcdefg显示
XX0XXXX11111118
X01XXXX0000000消隐
011000011111100
011000101100001
011001011011012
011001111110013
011010001100114
011010110110115
011011000111116
011011111100007
011100011111118
011100111100119
01110100000000消隐
01110110000000消隐
01111000000000消隐
01111010000000消隐
01111100000000消隐
01111110000000消隐
111XXXX锁             存

锁存
② 锁存功能

译码器的锁存电路由传输门和反相器组成,传输门的导通或截止由控制端LE的电平状态。 当LE为“0”电平导通,TG2截止;当LE为“1”电平时,TG1截止,TG2导通,此时有锁存作用。

③ 译码  

CD4511译码用两级或非门担任,为了简化线路,先用二输入端与非门对输入数 。据B、C进行组合,得出四项,然后将输入的数据A、D一起用或非门译码。

④ 消隐

BI为消隐功能端,该端施加某一电平后,迫使B端输出为低电平,字形消隐。

消隐输出J的电平为 J==(C+B)D+BI,如不考虑消隐BI项,便得:

J=(B+C)D。

据上式,当输入BCD代码从1010---1111时,J端都为“1”电平,从而使显示器中的字形消隐。 

2.4 F2812系统调试环境结构实物

2.5 电路原理设计

⑴ F2812的最小系统设计

F2812芯片的最小系统,由19、20号引脚接外部时钟电路,用30MHz的晶振提供时钟周期。用1117电平转换芯片将外部寄存的电平+5V转换为F2812能支持的电平+3.3V,接到23号引脚(VDD)给F2812提供电源。F2812芯片的复位电路由22号引脚接入。

⑵ 数码管驱动电路设计

其中,芯片CD4511的第7号引脚(A)接芯片F2812的第13号引脚(GPIOB0)、第1号引脚(B)接芯片F2812的第14号引脚(GPIOB1)、第2号引脚(C)接芯片F2812的第15号引脚(GPIOB2)、第6号引脚(D)接芯片F2812的第16号引脚(GPIOB3)。用芯片CD4511驱动数码管,就只用了芯片F2812的4个输出引脚,这样有利于编写程序。

3 课程设计总结

两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。

我们做课程设计六个人一组,这就需要我们团结合作、分工明确,由于这次课题看似简单,但很多时候多一个人的想法可能就多了一份成功的希望。所以这就要求我们培养团结合作的团队精神,我相信无论走到哪里,这在我们的现实生活中都是必须的。

故在此次的课程设计中,我主要负责的是对数码管驱动芯片CD4511的资料的查阅和对电路图的总体设计,对电路的设计包括绘制电路原理图。由于平时在对本课程的学习中,没有注重系统的设计,故在设计电路原理图的过程中也遇到了各种各样的问题。但是,这些问题在跟同组的同学讨论和向老师请教后也得到了解决。由此可以得出,我对本门课程的掌握还是很不好,动手的能力还是很欠缺的。在今后的学习过程中不仅要注意对理念知识的掌握,而且还要培养自己的对手操作能力。

最后在老师的辛勤的指导下,终于迎刃而解,终于觉得平时所学的知识有了实用的价值,达到了理论与实际相结合的目的,不仅学到了不少知识,而且锻炼了自己的能力,使自己对以后的路有了更加清楚的认识,同时,对未来有了更多的信心。最后,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

4 参考文献

[1] 苏涛,蔺丽华,卢光跃.DSP实用技术.西安电子科技大学出版社.2002

[2] 清源科技.TMS320C54xDSP应用程序设计教程[M].机械工业出版社.2004.1

[3] 赵红怡编.DSP技术与运用实例.2006.1

[4] 邹彦. DSP原理及应用[M]. 电子工业出版社.2005.1

[5] 章云等.DSP控制器及其应用. 机械工业出版社.2001.8

附录1:

此次课程设计的程序

#include "DSP281x_Device.h"     // DSP281x Headerfile Include File

#include "DSP281x_Examples.h"   // DSP281x Examples Include File

interrupt void cpu_timer0_isr(void);

#define LEDS *(int *)0xc0000

int flag=1;

int i=0,nCount;

unsigned int uLBD;

Uint16 a=0x0021 ;

Uint16 b=0x000a ;

Uint16 var1,var2,var3;

Uint16 var1= 0x0000;       // sets GPIO Muxs as I/Os

Uint16 var2= 0x00FF;       // sets GPIO 15-8 DIR as inputs, 7-0 DIR as outputs

Uint16 var3= 0x0000;       // Don't set any input qualifier

void main(void)

{  

   uLBD=nCount=0;

   InitSysCtrl();      //初始化cpu.

   InitPieCtrl();    //初始化向量表.初始化Pie寄存器.

   IER = 0x0000;     //复位,中断使能寄存器IER,中断标志寄存器IFR.用于将Pie中断服务复位.

   IFR = 0x0000;

   InitPieVectTable();  //初始化中断向量表.   

   EALLOW;//关闭寄存器保护,与EDIS配合使用.

   PieVectTable.TINT0 = &cpu_timer0_isr;  //打开TINT0,地址指针指向前面向向量,前后名字一致. 

   EDIS;   //打开寄存器保护.  

       CpuTimer0.RegsAddr = &CpuTimer0Regs;

    CpuTimer0Regs.PRD.all  = 0xffff;  //PRD周期寄存器

    CpuTimer0Regs.TPR.all  = 0;       //TPR,8位到15位是PSC,0位到7位是TDDR.

    CpuTimer0Regs.TIM.all  = 0;       //TIM计数寄存器,存放计数值

    CpuTimer0Regs.TPRH.all = 0;       //TPR的高16位     

    CpuTimer0Regs.TCR.bit.TSS = 1;    //TCR控制寄存器,TSS=1表示关闭定时器,TSS=0时启动

    CpuTimer0Regs.TCR.bit.SOFT = 1;   //SOFT和FREE同时使用,都是1的时候自由运行

    CpuTimer0Regs.TCR.bit.FREE = 1;

    CpuTimer0Regs.TCR.bit.TRB = 1;    //TRB重装载位,=1自动装载周期寄存器的值

    CpuTimer0Regs.TCR.bit.TIE = 1;    //中断使能计数器,减到0自动为1请求中断.

    CpuTimer0.InterruptCount = 0;      //计数       

   StartCpuTimer0();//执行宏定义,TSS=0时的操作,开始定时器计数

   IER |= M_INT1;//赋值0X0001

   PieCtrlRegs.PIEIER1.bit.INTx7 = 1;//按位操作,7位

    //打开全局中断

   EINT;   // Enable Global interrupt INTM 

   ERTM;   // Enable Global realtime interrupt DBGM

   *(int *)0x108000=0;        // 初始化ICETEK-CTR

   *(int *)0x108000=0x80;

   *(int *)0x108000=0;

   *(int *)0x108007=0;            // 关闭东西方向的交通灯

   *(int *)0x108007=0x40;        // 关闭南北方向的交通灯

    EALLOW;

    GpioMuxRegs.GPAMUX.all=var1;   // Configure MUXs as digital I/Os or

    GpioMuxRegs.GPBMUX.all=var1;   // peripheral I/Os

     //MUX表示工作方式,两种工作方式:外设和I/O,相应位为外设,为0是I/O

    GpioMuxRegs.GPADIR.all=var2;   // GPIO PORTs  as output

    GpioMuxRegs.GPBDIR.all=var2;   // GPIO DIR select GPIOs as output //DIR表示方向,输入还是输出管教,相应位为1为输出,为0是输入

    GpioMuxRegs.GPAQUAL.all=var3;  // Set GPIO input qualifier values

    GpioMuxRegs.GPBQUAL.all=var3;   

    EDIS;

     while ( 1 )             //等待中断

    {

      GpioDataRegs.GPADAT.bit.GPIOA1=1;    

    }

interrupt void cpu_timer0_isr(void)//中断先声明后定义

{  

   PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;//中断应答寄存器

   CpuTimer0Regs.TCR.bit.TIF = 1;//中断标志位

   CpuTimer0Regs.TCR.bit.TRB = 1;//重装载位

   if ( nCount==0 )

   { 

        if(flag==1)

        {  

           if(b<=0x000a&&b>=0x0002)

           {

            b--;

           }

           else if(b==0x0001)

           {

             a=0x0011;

             b--;

           }

            else if(b==0x0000)

            {

              a=0x000c;

              b=0x000a;

              flag=0;

            }

        }

        if(flag==0)

        {  

           if(b<=0x000a && b>=0x0002)

           {

             b--;

           }

           else 

           {

             if(b==0x0001)

             {

               a=0x000a;

               b--;

             }

             if(b==0x0000)

             {

              a=0x0021;

              b=0x0009;

              flag=1;

             }

           }

        }

   }

   nCount++; nCount%=22;

}

附录2:

系统电路原理图

课程设计

评    语

课程设计

成    绩

指导教师

(签字)

            年    月    日

下载本文
显示全文
专题