心形流水灯
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
流水灯程序
申明:此代码用于学习交流,禁止用于商业用途!
//====================================蓝色之心==================================================
//名称:蓝色之心
//文件功能:流水灯移动
//修改时间:2014年5月18日
//修改人:刘祚东
//说明:1T单片机12M晶振
//===================================================================== =========================
main.c
#include "STC12C5A60S2.H"
#include "typedef.h"
#include "led.h"
#include "water.h"
void main()
{
while(1)
{
LED_0(5);//运算方式流水灯
dropWater(50); //水滴效果流水灯
}
}
typedef.h
#ifndef _typedef
#define _typedef
typedef unsigned char uchar;
typedef unsigned char uchar8;
typedef unsigned char Byte;
typedef unsigned int uint;
typedef unsigned int uchar16;
typedef unsigned int Word;
#endif
led.h
#ifndef _led
#define _led
void Delay_1ms(uint Time); //误差0us
void P0LED_LeftShift(uint Time);//LED左移
void P1LED_LeftShift(uint Time);//LED左移
void P2LED_LeftShift(uint Time);//LED左移
void P3LED_LeftShift(uint Time);//LED左移
void P0LED_RightShift(uint Time);//LED右移
void P1LED_RightShift(uint Time);//LED右移
void P2LED_RightShift(uint Time);//LED右移
void P3LED_RightShift(uint Time);//LED右移
void P0_LeftShift(uint Time);//LED左移流水
void P1_LeftShift(uint Time);//LED左移流水
void P2_LeftShift(uint Time);//LED左移流水
void P3_LeftShift(uint Time);//LED左移流水
void P0_RightShift(uint Time);//LED右移流水
void P1_RightShift(uint Time);//LED右移流水
void P2_RightShift(uint Time);//LED右移流水
void P3_RightShift(uint Time);//LED右移流水
void P0P1LED_DownShift(uint Time);//LED向下
void P2P3LED_DownShift(uint Time);//LED向下
void P0P1_DownShift(uint Time);//LED向下流水
void P2P3_DownShift(uint Time);//LED向下流水
void P0P1LED_UpShift(uint Time);//LED向上
void P2P3LED_UpShift(uint Time);//LED向上
void P0P1_UpShift(uint Time);//LED向上流水
void P2P3_UpShift(uint Time);//LED向上流水
void P0P1P2P3_flicker(uint Time);//LED全闪烁
void P0P1P2P3_downShift(uint Time);//LED四组同时向下移动
void P0P1P2P3_upShift(uint Time);//LED四组同时向上移动
void P0123_RightShift(uint Time);//LED向右顺时针旋转
void P0123_LeftShift(uint Time);//LED向左顺时针旋转
void LED_0(uint time);//流水灯函数
#endif
led.c
#include "STC12C5A60S2.H"
#include "intrins.h"
#include "typedef.h"
//===================================================================== =========================
//函数名称:延时函数
//功能:1ms*Time延时
//入口参数:Time
//出口函数:
//编写(修改)时间:2014年5月18日
//编写(修改)人:刘祚东
//备注:1T单片机12M晶振
//===================================================================== =========================
void Delay_1ms(uint Time) //误差0us
{
unsigned char a,b;
uint c;
for(c=Time;c>0;c--)
for(b=129;b>0;b--)
for(a=43;a>0;a--);
}
//===================================================================== =========================
//函数名称:LED移动函数
//功能:P0LED左移
//入口参数:Time
//出口函数:
//编写(修改)时间:2014年5月18日
//编写(修改)人:刘祚东
//备注:1T单片机12M晶振
//===================================================================== =========================
void P0LED_LeftShift(uint Time)
{
uchar a=0xfe,i;
for(i=0;i<8;i++)
{
P0=a;
Delay_1ms(Time);
a<<=1;
a|=1;
}
P0 =0XFF;
}
//===================================================================== =========================
//函数名称:LED移动函数
//功能:P1LED左移
//入口参数:Time