历史上的今天
返回首页

历史上的今天

今天是:2025年02月08日(星期六)

正在发生

2020年02月08日 | STC单片机+DM134实现LED多段控制

2020-02-08 来源:51hei

 
单片机源程序如下:

//============================================================================

//================翼芯科技 LED流星灯8段16段==软件生成生成数据=================

//============================================================================   

//  此源码版权属 翼芯科技 全权享有,如欲引用,敬请署名并告知

//          严禁随意用于商业目的,违者必究,后果自负

//程序说明:本程序用于实现LED流星灯8段16段,不同步.IC插到U9位置.      

//文件名称:main.C  

//日期:    2011/01/23   

//版本:    1.0  

//C编译器:  keil 8.05 

//=============================================================================                    

#include

#define uchar unsigned char

#define uint unsigned int

#define nop() _nop_();_nop_()



sbit DAT = P3^2;        //DM134数据输出

sbit CLK  = P3^3;    //DM134时钟输出

sbit LE   = P3^4;        //DM134锁存口

sbit EN   = P4^4;        //DM134使能口



/******************************************************************

- 功能描述:ms延时  

- 隶属模块:无

- 函数属性:无

- 参数说明:无       

- 返回说明:无

- 注:.....

******************************************************************/

void Delay(uint ms)

  uint a,b;

    for(a=ms;a!=0;a--)         

         for(b=250;b!=0;b--)        

         ;

}


/******************************************************************

- 功能描述:DM134传送一个字的数据,        高位在前 

- 隶属模块:无

- 函数属性:无

- 参数说明:无       

- 返回说明:无

- 注:.....

******************************************************************/

void DM134(uint dat)

  uchar i;

  for(i=16;i!=0;i--)

   {

            CLK=0;        

      DAT=dat&0x01;      //低位在前

      dat=dat>>1;               //左移一位

          CLK=1;                  //上升延数据移入  

   }

  LE=1;                  //寄存器数据更新

  LE=0;

}



/******************************************************************

- 功能描述:实现8段拖尾效果

- 隶属模块:无

- 函数属性:无

- 参数说明:无       

- 返回说明:无

- 注:.....

******************************************************************/

void Grayscale8(uchar speed)

{

    uchar x,y,f;                               //上半

    uint z=0x8000, gray;


    for(y=8;y>0;y--)

     {  

                for(f=speed;f>0;f--)    //流动速度

                 {        

                   gray=z;

                   for(x=8;x>0;x--)  

            {   

              DM134(gray);

                          gray>>=1;

              gray&=z;

                        }

                 }

                 z>>=1;

                z|=0x8000;

     }  


        z=0x7f80;

    for(y=16;y>0;y--)                         //下半

     {  

                for(f=speed;f>0;f--)    //流动速度

                 {

                  gray=z;

                  for(x=8;x>0;x--)  

            {   

              DM134(gray);

                             gray>>=1;

              gray&=z;

                        }

                 }

                 z>>=1;

     }


}


/******************************************************************

- 功能描述:实现16段拖尾效果

- 隶属模块:无

- 函数属性:无

- 参数说明:无       

- 返回说明:无

- 注:.....

******************************************************************/

void Grayscale16(uchar speed)

{

    uchar x,y,f;

    uint z=0x8000, gray;

    for(y=16;y>0;y--)

     {  

                for(f=speed;f>0;f--)      //流动速度

                 {

                   gray=z;

                   for(x=16;x>0;x--)

            {   

              DM134(gray);

                          gray>>=1;

              gray&=z;

                        }

                 }

            z>>=1;        

           z|=0x8000;;

     }  

        z=0x7fff;

    for(y=16;y>0;y--)

     {  

                for(f=speed;f>0;f--)      //流动速度

                 {

                  gray=z;

                  for(x=16;x>0;x--)

            {   

              DM134(gray);

                          gray>>=1;

              gray&=z;

                        }

                 }

                 z>>=1;

     }  

}


/******************************************************************

- 功能描述:主函数   

- 隶属模块:无

- 函数属性:无

- 参数说明:无       

- 返回说明:无

- 注:.....

******************************************************************/

void main(void)

{  

    uchar CNT;


//M1:M0  0:0为标准51;0:1输出;1:0输入;1:1开漏输出

    P0M1=0X00;                              //P0口设为推挽输出

    P0M0=0XFF;


    P4M1=0X00;                              //P4口设为推挽输出

    P4M0=0XFF;


        EN=0;


        P0=0;

        while(1)

          { 

         for(CNT=0;CNT<3;CNT++)

           {

                      Grayscale16(100); //16段 

                          Delay(100); 

                }


         for(CNT=0;CNT<3;CNT++)

          {

                      Grayscale8(250);  //8D段

                        Delay(100);

                  }

                          


          }

}


//============================================================================

//================翼芯科技 用DM134实现16段,8段,4段16级灰度拖尾================

//============================================================================   

//  此源码版权属 翼芯科技 全权享有,如欲引用,敬请署名并告知

//          严禁随意用于商业目的,违者必究,后果自负

//程序说明:本程序用DM134实现16段,8段,4段16级灰度拖尾,各重复1次,不同步.IC插到U9位置.      

//文件名称:main.C  

//日期:    2011/01/23   

//版本:    1.0  

//C编译器:  keil 8.05 

//=============================================================================                    

#include

#define uchar unsigned char

#define uint unsigned int



sbit DAT  = P3^2;        //DM134数据输出

sbit CLK  = P3^3;    //DM134时钟输出

sbit LE   = P3^4;        //DM134锁存口

sbit EN   = P4^4;        //DM134使能口



uchar code MOV_CNT[3]={31,24,20};

uchar code DEC_CNT[3]={1,2,4};

uchar  DAT_BUF[17]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};

uint   DATA_REG;           //DM134输出数据变量


/******************************************************************

推荐阅读

史海拾趣

AAC [American Accurate Components]公司的发展小趣事

随着业务的不断发展和规模的持续扩大,AAC公司在2005年成功在香港交易所上市。这一里程碑式的事件为AAC带来了更多的资本支持和市场认可。此后,AAC加快了全球扩张的步伐,不仅在欧洲、北美等地设立了分支机构,还与众多国际知名品牌建立了长期稳定的合作关系。

台湾富致(FUZETEC)公司的发展小趣事

1962年,Futaba推出了无线电控制设备和冲压金属模用部件,旨在提升工业品质并缩短模具开发周期。这一举措不仅解决了当时工业控制领域中的供应商问题,还引领了模具制造行业的标准。随着技术的不断进步,Futaba开始涉足无线电传输模组(R/C)的生产和销售,并逐渐在无线遥控领域崭露头角。特别是高频无线展频通讯技术的实现,使Futaba的无线遥控技术在工业用机器人和工业控制设备上得到了广泛应用,进一步巩固了其在该领域的领先地位。

Chengdu Sino Microelectronics Technology Co Ltd公司的发展小趣事

成都华微科技深知,在快速发展的电子行业中,单打独斗很难取得长久的成功。因此,公司积极寻求与其他企业和机构的合作,以实现共赢。通过与国内外知名的芯片制造企业、科研院所和高校的合作,华微科技不仅获得了更多的技术支持和市场资源,也推动了整个产业链的协同发展。这种合作与共赢的商业模式,为公司的快速发展提供了有力保障。

Crowd_Supply__Inc.公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,Crowd Supply Inc.也面临着诸多挑战。为了保持竞争优势,公司不断调整战略方向,加大在新技术领域的投入。例如,公司近期开始关注物联网和人工智能等前沿技术的应用,通过整合社区资源和技术优势,成功开发出了一系列具有市场潜力的新产品。

ETL semiconductor公司的发展小趣事

三星(Samsung)原本是一家以家电和电子产品为主的综合性企业。然而,在半导体行业快速发展的背景下,三星决定加大在半导体领域的投入。经过数十年的努力,三星不仅在存储芯片领域取得了显著成就,还在逻辑芯片和代工业务方面取得了重要进展。如今,三星已成为全球领先的半导体企业之一。

BCD Semi(Diodes)公司的发展小趣事

BCD Semi(Diodes)公司自成立以来,一直致力于模拟半导体产品的设计和制造。在某一时期,公司研发团队成功突破了某项关键技术,开发出了具有更高性能、更低功耗的新型模拟器件。这一技术突破使得BCD Semi的产品在市场上更具竞争力,赢得了众多客户的青睐。随着产品升级的不断推进,公司逐渐在模拟半导体领域树立了良好的口碑。

问答坊 | AI 解惑

有没有纯数字的精确测量信号时间间隔的方法?

十个ns左右的误差范围啊,疯了都,目前我想到两个方法,一个是精确扩展计数时间,一个是多测几次,牺牲测量速度,不好弄…

查看全部问答>

HI-TECH C V9.70 和谐文件

HI-TECH C Compiler for PIC10-12-16 MCUs V9.70 已经测试过,破解成功! 1,先安装HI-TECH C Compiler for PIC10-12-16 MCUs V9.70  安装路径为默认路径 \"C 盘下\" 激活PICC 45天试用版! 2,破解,先写入注册文件,运行破解文件, ...…

查看全部问答>

DDRAW程序问题,在全屏方式下,用创建程序的方式打开一个程序后,程序的界面显示不出来,LCD上显示的还是DDRAW的画面

请问如何解决这个问题 // // Copyright (c) Microsoft Corporation.  All rights reserved. // // // Use of this source code is subject to the terms of the Microsoft end-user // license agreement (EULA) under which you l ...…

查看全部问答>

求助 :最近学习uc/os-ii 用的任哲写的《嵌入式实时操作系统uc/os-ii原理及应用》编译无法通过

最近学习uc/os-ii  用的任哲写的《嵌入式实时操作系统uc/os-ii原理及应用》,把他书中的源码在网上找到了。书中是用的BORLAND C++ 3.1编译的,我用borland c v3.1 dos 界面下直接建立工程文件编译,可是搞了很久编译都无法通过,而且试了 ...…

查看全部问答>

wince usb 驱动问题

我在看wince5.0 usb从驱动源代码具体位置是:/%wince500boot%/public/common/oak/usbfn 这个文件下有3个文件夹: 1.CLASS文件: RNDIS,SERIAL, STORAGE三个文件夹 2.CONTROLLER文件: MDD,NET2280 3.UFNCLIENLIB文件 请问这三个文件都有什 ...…

查看全部问答>

求助 AT89S51与C8051F单片机有什么区别啊?(急)

   各位前辈,我是一名学生菜鸟,要用单片机做采集器,遇到了这么一个问题,AT89S51与C8051F单片机有什么区别,请各位帮忙解决,谢谢!…

查看全部问答>

有木有CH4浓度传感器啊,急求资料,帮忙呀

最还好有单片机程序代码,电路图等等,越全越好.谢谢啊 …

查看全部问答>

4-20ma转换成0-5V

各位高手,本人摸电只是懂点基本的.想请教大家个问题.传感器输出的4-20ma如何转换成0-5V.我以前一直就是用250欧电阻将4-20ma转换成1-5V,再进行A/D转换,感觉这样处理没有0-5V方便.比如4-20ma表示0-50度的温度,0V的时候就表示温度是0度,5V的时候就表示 ...…

查看全部问答>

MSP430 LaunchPad学习笔记之uart

一、摘要本应用报告介绍了如何使用Timer_A实现UART功能。该包括例子是专门为MSP430x11x家庭,但他们能适应任何MSP430家族成员纳入Timer_A。使用硬件UART的功能在Timer_A功能和软件。执行是半双工的,事件驱动,它支持的8N1波特率协议从1200到115200 ...…

查看全部问答>

求一个G2452 SPI模式传输的例程

如题,望大家帮忙,谢谢!!…

查看全部问答>