DSPwilliam hill官网
直播中

asd大漠飞鹰

10年用户 32经验值
擅长:可编程逻辑 电源/新能源 测量仪表 嵌入式技术 制造/封装 模拟技术 光电显示 EDA/IC设计 处理器/DSP 控制/MCU RF/无线
私信 关注

DSP2812控制单个数码管显示的程序解释

    小弟初学DSP2812,希望哪位大侠帮助小弟解释一下下面这个主程序的意思,谢谢了。
#include "DSP28_Device.h"
#include "ext_inf.h"
unsigned int Led_Flag;
//unsigned int *led_7seg;
//unsigned          int  *led_7seg = (unsigned  int *)0x02000;
#define led_7seg (*((unsigned int *)0x02400))


void delay_ms(unsigned int n)
{
        unsigned int i,j;
        for(j=0;j                 for(i=0;i<50000;i++);
}

/*void        SendData(Uint16         data);*/

void main(void)
{
        unsigned int k;
       
        unsigned int uLED[10]={0x024,0x0af,0x94,0x8c,0x0f,0x4c,0x044,0x0ae,0x004,0x00c};
        /*初始化系统*/
        InitSysCtrl();

        /*关中断*/
        DINT;
        IER = 0x0000;
        IFR = 0x0000;

        /*初始化PIE*/
        InitPieCtrl();

        /*初始化PIE中断矢量表*/
        InitPieVectTable();       
       
        /*初始化外设*/
    InitPeripherals();

        /**LedReg = 0xFF;
        *Led8Lock = 0xB7;*/
//        SendData(0xFF);
//        InitExRam(0);
//        RamRead(0x4000);
//        InitExRam1(0x0);
       
//        for(i=0x0;i<0x3;i++)
//        {
//                *(led_7seg++) = 0x0;
//                delay_ms(5);
//        led_7seg = (unsigned  int *)0x02400;
        for(;;)
        {
                for ( k=0;k<3;k++ )
                {
                        led_7seg = 0x0;
                        delay_ms(40);
                        led_7seg = 0x0ff;
                        delay_ms(40);
                }

                 for ( k=0;k<10;k++ )
                 {   
                        led_7seg=uLED[k];                // 正向顺序送控制字
                        delay_ms(60);                        // 延时
                  }
        for ( k=10;k>0;k-- )
                 {   
                        led_7seg=uLED[k-1];                // 正向顺序送控制字
                        delay_ms(60);                        // 延时
                  }
        }
//for(;;);

}        

/*void        SendData(Uint16 data)
{
        Uint16        i,Temp;
        Temp = 0x80;
        for        (i=0;i<8;i++)
                {
                        if ((data & Temp)==0)        ClrData;
                        else        SetData;
                        Temp >>= 1;
                        ClrClk;
                        SetClk;
                }
        *Led8Lock = 0xB7;
        *Led8Lock = 0xBF;
        SetData;               
}*/

//===========================================================================
// No more.
//===========================================================================


回帖(5)

张家立

2014-1-21 13:04:56
举报

zhangguosong4

2014-1-21 13:40:51
不错,下载下来看看。。。
举报

曹辉

2014-1-28 16:23:37
这个程序很简单。
1、
unsigned int uLED[10]={0x024,0x0af,0x94,0x8c,0x0f,0x4c,0x044,0x0ae,0x004,0x00c};定义一个数组,对于数码二极管来说是0-9;
2、
for ( k=0;k<3;k++ )
                {
                        led_7seg = 0x0;
                        delay_ms(40);
                        led_7seg = 0x0ff;
                        delay_ms(40);
                }
这段是对数码管进行闪烁3次,即全暗然后全亮闪烁;
3、
  for ( k=0;k<10;k++ )
                 {   
                        led_7seg=uLED[k];                // 正向顺序送控制字
                        delay_ms(60);                        // 延时
                  }
        for ( k=10;k>0;k-- )
                 {   
                        led_7seg=uLED[k-1];                // 正向顺序送控制字
                        delay_ms(60);                        // 延时
                  }
这段即为正向显示0-9,然后反向显示9-0
举报

asd大漠飞鹰

2014-2-23 22:11:23
谢谢大家对我的帮助了,
举报

MrCharl

2017-11-2 18:17:49
请问这个程序下面还有一段该怎么理解呀
void        SendData(Uint16 data)
{
        Uint16        i,Temp;
        Temp = 0x80;
        for        (i=0;i<8;i++)
                {
                        if ((data & Temp)==0)        ClrData;
                        else        SetData;
                        Temp >>= 1;
                        ClrClk;
                        SetClk;
                }
        *Led8Lock = 0xB7;
        *Led8Lock = 0xBF;
        SetData;               
}
举报

更多回帖

发帖
×
20
完善资料,
赚取积分