tag 标签: led

相关帖子
相关博文
  • 2012-10-20 12:02
    437 次阅读|
    0 个评论
      Event.c 中做如下处理:   static byte *OEGA_ACT = {   charLED,   charLED,   numLED,     numLED,     numLED,     numLED }; // 定义 LED 显示各位的指针数组   unsigned int speed =258; // 定义一个要显示的实际值 unsigned int CharOrNumOffset ;// 定义指针数组各指针的偏移量数组 byte *CharSend ;        // 定义指针数组各指针加上偏移量之后的指针数组 unsigned int length1,length2;// 数组长度   中断事件代码处理内容: #pragma interrupt called                         void TI1_OnInterrupt(void) {   /* Write your code here ... */       unsigned int i;     Bit1_ClrVal();              length1 = sizeof(OEGA_ACT)/2;//12     length2 = sizeof(*OEGA_ACT);//2         transValueLed(speed,CharOrNumOffset,flagSPEED);       for(i=0;i     {     *(CharSend+i) = *(OEGA_ACT+i)+*(CharOrNumOffset+i);     }             SM1_SendChar(*(*(CharSend+0)));     SM1_SendChar(*(*(CharSend+1)));     SM1_SendChar(*(*(CharSend+2)));     SM1_SendChar(*(*(CharSend+3)));     SM1_SendChar(*(*(CharSend+4)));     SM1_SendChar(*(*(CharSend+5)));             Bit1_SetVal();     // 锁存     Bit1_ClrVal();     // 锁存     }  
  • 2012-10-20 12:00
    440 次阅读|
    0 个评论
    LED.c 代码如下:   #include "LED.h"     #define MOTORSPEED 5   /* 此函数将采集的量 , 比如电机转速 Value, 转化成 LED 对应的某个字符 , 每一位的字符存储在一个字符数组   返回该字符数组的指针   Value - actual value..etc,1265rpm   pParamLED - stroe the charactor's offset address   paramID - for identify the param which it present. etc.MOTORSPEED present the value is motor             speed. */   unsigned int* transValueLed(unsigned int value,unsigned int *pParamLED,unsigned int paramID1,unsigned int paramID2) {   unsigned int temp;     *pParamLED = paramID1;      //F   *(pParamLED+1) = paramID2; //n   *(pParamLED+2) = value/1000;   temp = value%1000;   *(pParamLED+3) = temp/100;   temp = temp%100;   *(pParamLED+4) = temp/10;   temp = temp%10;   *(pParamLED+5) = temp/1;   temp = temp%1;     return pParamLED; }   /* 此函数将对应要发送的字符的地址指针对应的字符存入一个数组   pSend - pointer to arrary that save the value of charactor that to be send   pParamBit - 指向相应参数的指针数组 .   pParamLED - 指向 LED 字符便宜量的指针 .   此函数替代以下这段代码   for(i=0;i     {         *(CharSend+i) = *(OEGA_ACT+i)+*(CharOrNumOffset+i);     //SM1_SendChar(*(*(CharSend+i)));     } */ void valuePointedChar(byte **pSend,byte **pParamBit,unsigned int *pParamLED) {     unsigned int i,temp;   temp = 6;//sizeof(pParamBit)/2;// 不能用 sizeof, 因为 sizeof(pParamBit) 始终为 0.   for(i=0;i   {     *(pSend+i) = *(pParamBit+i)+*(pParamLED+i);   } //    return pSend; }
  • 热度 4
    2012-10-20 11:58
    506 次阅读|
    4 个评论
    LED 显示数据处理 新建两个文件分别命名为 LED.h 和 LED.c 。 在 LED.h 中定义两个数组, LED.h 代码如下 : #include "cpu.h"   #define LEDNUMLENGTH    10 #define LEDCHARLENGTH   16   /* 表示显示何种参数代号,比如电机转速为 Fn*/ #define MTRSPEED1       5   //F #define MTRSPEED2       8   //n   unsigned int* transValueLed(unsigned int value,unsigned int *pParamLED,unsigned int paramID1,unsigned int paramID2); void valuePointedChar(byte **pSend,byte **pParamBit,unsigned int *pParamLED);   static byte byteDOT = 128; static byte numLED = {   0xc0,           //0     192   1   0xf9,           //1     249   2   0xa4,           //2     164   3   0xb0,           //3     176   4   0x99,           //4     153   5   0x92,           //5     146   6   0x82,           //6     130   7   0xf8,           //7     248   8   0x80,           //8     128   9   0x90            //9     144   10   }; static byte charLED = {     0x88,           //A     136   1   0x83,           //b     131   2   0xa7,           //c     167   3   0xa1,           //d     161   4   0x86,           //E     134   5   0x8e,           //F     142   6   0x8b,           //h     139   7   0xc7,           //L     199   8   0xab,           //n     171   9   0xa3,           //o     163   10   0x8c,           //p     140   11   0x87,           //t     135   12   0xe3,           //u     227   13   0xbf,           //-     191   14   0x7f,           //.     127   15   0xff            //null 255   16    };
  • 2012-10-20 11:54
    460 次阅读|
    0 个评论
    二 显示方法及程序设计     2.1 显示方法   从表 1 和图 3 可以看出,最先从 U400 进入的 1byte 数据最后移位到 U404 ,当传输 6byte 数据的时候,最后 1byte 数据传输到 U404 ,因此 U404 驱动显示图 3 中的 LED405 ,以使显示方向不会颠倒。     从图 1 可以看出, 8 段 LED 各段的驱动位如下图所示。   图 4   因此我们可以根据不同需要显示的数字或字符,设计对应的 byte 型 8 位数据,如下表所示。   2.2 程序设计   程序设计中使用一个定时器每隔 100ms 通过 SPI 定时发送一组 6 位字符,锁存信号使用一个 IO 口豆输出控制。     2.2.1 SPI 豆       图 5 SPI 豆配置 如图 5 所示为 SPI 豆配置。   使能发送器空和接收器满中断,输入和输出缓存大小值设为 6 。   数据宽度为 8bits ,设相应管脚,移位周期,时钟边沿,并在初始化代码中使能该 SPI 模块。   SPI 工作情况如下。 1.   在定时器中断中向发送 buffer 写入数据。 • 写入数据的程序模块中,对发送的字节长度计数,如果计数值等于 buffer 长度,返回 buffer 已满错误。 • 在向发送 buffer 写入数据之前禁止全局中断。 • 向发送 buffer 写入数据,如果‘发送写’指针指到 buffer 顶部,重新将 buffer 首地址赋给‘发送写’指针。 • 使能发送寄存器器空中断使能。 • 使能全局中断 2.   在步骤 1 中,我们使能了发送寄存器空中断。因此当发送寄存器空的时候,会产生一个中断,在中断处理程序中,将 buffer 的数据写入发送寄存器。    • 设置 onTXChar 标志    • 将发送缓存的数据送入发送寄存器,如果移送完成后指针已指到发送缓存顶部,则重新将缓存首地址赋给指针。     • 数据发送完之后,清发送寄存器空中断标识。     • 设置其他标识,以便于触发其他程序。       定时器豆 图 6 定时器豆 定时器 100ms 产生一次中断。      
  • 热度 1
    2012-10-20 11:39
    620 次阅读|
    0 个评论
    引言 先说说56F8346数字信号控制器,这是Freescale推出的16位基于56F8000内核的数字信号控制器,在电机控制领域有着出色的表现,比如感应电机的空间矢量控制,永磁同步电机及BLDC的数字控制。因此,特别适用于变频调速系统、伺服马达系统、家用电器的马达控制领域。 再说说56F8346的开发平台,Freescale有专门提供给16位DSC的软件平台,我当时用的是CodeWarrior7.0,有ProcessorExpert模块,其中有针对DSC内部各功能模块底层配置的Bean(豆),下文的叙述会涉及到,开发起来特别方便灵活,节省时间。 另外,Freescale的技术支持一如既往的到位,其官网有大量的应用案例和程序方面学习下载。 本文涉及的内容是2年以前,我利用业余时间把同事原本作为用于变频器的LED显示模块用来开发DSC的SPI,完全出于好玩的心态,不过,其本身还是具有实际意义的,希望对涉及这一块开发的朋友有借鉴意义。 使用Freescale 56F8346数字信号控制器(DSC)的SPI控制LED显示,显示的内容很多,可以通过SPI让其显示系统电压、电流、PID参数、电机转速、温度等等。 由于时间久远,没有当时显示效果的图片,仅有实物参考图。 正面照 背面照 内部正脸 内部背面 一 LED 排布及电路     LED 采用的是带小数点的八段显示数码管,本例中使用六只 LED 排布显示。使用 8 位的串行移位输入并行输出的 74hc595 芯片驱动 LED 显示。因此用到了 DSP 的 SPI 模块,本例中仅用到 SPI 模块的 master 模式。其电路原理如下图所示   图 1 LED 线路原理图 图 2 SPI 简图   图 2 中, Q7’ 为串行移位输出口, Q0 到 Q7 为并行输出驱动 LED 。   从图 1 中,我们可以找到 LED 和相应 74HC595 芯片的对应关系如下。 表 1 ( 注:数据从 U400 进入 ) LED LED401 LED403 LED404 LED400 LED402 LED405 74hc595 U400 U402 U404 U401 U403 U404 · 图 3 LED 排布  
相关资源
  • 所需E币: 3
    时间: 2019-6-8 08:53
    大小: 0B
    上传者: royalark_912907664
    本文提出一种基于反激式(Flyback)原边反馈控制结构的电感电流过零检测实现方法,主要应用于临界导通模式(Boundary Conduction Mode, BCM)下的LED恒流控制方案中。分析了传统反激式原边反馈控制结构方案在实现电感电流临界模式控制中的局限性,在此基础上,提出了一种不依赖辅助绕组的过零检测机制。基于0.35um CV800GS工艺,采用Cadence软件对系统进行仿真,结果表明,在不同负载和线电压输入条件下系统能够快速可靠地实现过零检测控制。
  • 所需E币: 3
    时间: 2019-6-2 06:58
    大小: 0B
    上传者: royalark_912907664
    随着能源短缺的日益加剧,基于太阳能LED照明已经成功的应用到路灯照明领域。针对目前现有系统智能化程度不够、价格昂贵且维护成本高,设计了以C8051F852为主控制器、由太阳能电池板、铅酸蓄电池以及LED驱动电路组成的智能路灯控制系统。实验表明,该系统能够满足极端阴雨天情况下的LED路灯控制要求,有效防止蓄电池过充,通用性好且成本低廉,具有很高的使用价值,对于智能照明领域的发展也具有一定促进作用。
  • 所需E币: 2
    时间: 2019-5-28 08:39
    大小: 0B
    上传者: feiniao2008
    制定本推荐性技术规范的目的是对室内外照明用 LED 驱动器的外观结构、性能要求、安全规范、电磁兼容等方面作了详细描述和规定,规范和引导 LED 驱动 器的应用与发展。
  • 所需E币: 3
    时间: 2019-5-27 21:43
    大小: 0B
    上传者: royalark_912907664
    提出一种基于ARM的自动气象站本地数据实时显示系统,该系统使用STM32微处理器作为主控制器,利用RS232串口和Zigbee无线传感器网络主动获取自动气象站采集的实时数据,最终使用LED屏幕显示数据。在Keil u Vision4和IAR Embedded Workbench开发环境下,使用C编程语言进行开发。实际测试效果表明,该系统将气温、相对湿度、能见度等本地气象数据实时的、直观的、稳定的显示在LED屏幕上,方便人们快速掌握当地的气象情况,适用于景区、高速公路、船舶等多种场景。
广告