STC单片机+DM134实现LED多段控制

2020-02-08来源: 51hei关键字:STC单片机  DM134  LED  多段控制

 
单片机源程序如下:

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

//================翼芯科技 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级灰度拖尾================

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

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

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

//程序说明:

[1] [2]
关键字:STC单片机  DM134  LED  多段控制 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic487576.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于51单片机的数字电容测量仪设计
下一篇:单片机步进电机转速控制程序(速度LED显示)

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STC单片机关于舵机pwm控制源程序(单个与多个速度控制都有)
单片机源程序如下:/******************************************************************************* 文件: main.c** 作者: Zheng23** 日期:                         ** 功能:产生8路PWM输出控制8路舵机,方法:将20毫秒分成8个2500微秒,即8个单元,先计算出第一个单元的舵机PWM控制线的脉冲宽度,因为控制舵机的脉冲宽度最大为2500微秒,剩余的(20000 - 2500
发表于 2020-02-27
STC单片机内置EEPROM读取与保存 函数调用 .c和.h文件
);Save_Flash_Message(ks_Addr,Temp_Buf, 3);//保存    函数是 :void Save_Flash_Message(unsigned int Addr,unsigned char *Buf,unsigned int Len);现在是  无法保存  调取的也不对//以下为.h文件//使用单片机内部的Flash,模拟EEPROM使用//STC15W4K48S4 单片机,可以使用IAP命令擦写内部Flash//起始地址 0X0000 结束 0X27FF  其中,512Byte一个扇区//一共20个扇区  一个扇区可以存储一组参数
发表于 2020-02-16
一文看懂STC单片机冷启动和复位有什么区别
  STC单片机简介  STC单片机是一款增强型51单片机,完全兼容MCS-51,还增加了新的功能,比如新增两级中断优先级,多一个外中断,内置EEPROM,硬件看门狗,具有掉电模式,512B内存等。还支持ISP下载,不用编程器,只要一个MAX232和一些廉价的元件就能写程序,可擦写10万次。因此是一款很好用的单片机。    stc单片机的优缺点  stc单片机优点:  1、抗干扰能力强;  2、保密性能强悍,很难被破解;  3、单片机时钟有防外部电磁辐射功能;  stc单片机缺点:  1、功耗较高,5V供电;  2、8位,运行速度慢;  3、无硬件乘法器,乘除法运算都为4周期指令;  4、单片机内集成资源少。  为什么STC单片机
发表于 2020-02-01
一文看懂STC单片机冷启动和复位有什么区别
STC单片机74HC595驱动8个数码管
74HC595驱动8个数码管源程序:/*---------------------------------------------------------------------*//* --- STC MCU International Limited ----------------------------------*//* --- STC 1T Series MCU Demo Programme -------------------------------*//* --- Mobile: (86)13922805190
发表于 2020-01-29
STC单片机不重新加电烧写方法
= 0;        while(10000>CNT++);}void soft_reset_to_ISP_Monitor(void){        IAP_CONTR = 0x60; //0110,0000 soft reset system to run ISP monitor}以上是个例子,利用STC_ISP_V483是可以的,其他版本未证实无法上传照片记得把0 1 2 3 4 5 6 7 8 9 A B C D E F 10拷贝到自定义下载中。
发表于 2020-01-19
比亚迪全新DM3混动技术 能否引领混动新时代?
,成为与这三家日本厂商齐名的国际电池巨头。比亚迪一跃成为三洋之后全球第二大电池供应商,占据了近15%的全球市场。而这些卓越成绩,都是比亚迪在造车之前就已经名震朝野的了。随着国内购车浪潮的兴起,比亚迪又一次赶上了时代的红利,虽然比亚迪汽油车销量斐然,但是王传福却一直没有放下对于电池的研发。2010年3月29日,比亚迪首款双模电动车F3DM面世了,搭载第一代DM的F3可以在纯电动(EV)和混合动力(HEV)这两种模式之间自由切换。车辆搭载了BYD371QA全铝发动机,功率为50KW,配合75kW的电机,比亚迪F3DM双模电动车输出功率达到了125kW。在纯电动的模式下,F3DM双模电动车也实现当时世界上最长的续航里程——100km,最高
发表于 2018-12-21
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved