历史上的今天
今天是: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输出数据变量 /******************************************************************
史海拾趣
|
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 界面下直接建立工程文件编译,可是搞了很久编译都无法通过,而且试了 ...… 查看全部问答> |
|
我在看wince5.0 usb从驱动源代码具体位置是:/%wince500boot%/public/common/oak/usbfn 这个文件下有3个文件夹: 1.CLASS文件: RNDIS,SERIAL, STORAGE三个文件夹 2.CONTROLLER文件: MDD,NET2280 3.UFNCLIENLIB文件 请问这三个文件都有什 ...… 查看全部问答> |
|
求助 AT89S51与C8051F单片机有什么区别啊?(急) 各位前辈,我是一名学生菜鸟,要用单片机做采集器,遇到了这么一个问题,AT89S51与C8051F单片机有什么区别,请各位帮忙解决,谢谢!… 查看全部问答> |
|
各位高手,本人摸电只是懂点基本的.想请教大家个问题.传感器输出的4-20ma如何转换成0-5V.我以前一直就是用250欧电阻将4-20ma转换成1-5V,再进行A/D转换,感觉这样处理没有0-5V方便.比如4-20ma表示0-50度的温度,0V的时候就表示温度是0度,5V的时候就表示 ...… 查看全部问答> |
|
一、摘要本应用报告介绍了如何使用Timer_A实现UART功能。该包括例子是专门为MSP430x11x家庭,但他们能适应任何MSP430家族成员纳入Timer_A。使用硬件UART的功能在Timer_A功能和软件。执行是半双工的,事件驱动,它支持的8N1波特率协议从1200到115200 ...… 查看全部问答> |




