超级声光多彩灯(纯属娱乐性学习)51单片机程序单片机, 声光, 娱乐性, 彩灯, 程序
作者案:今天周六,有点时间,拿来开发板搞个多彩灯玩玩吧,现把程序发给大家,此程序可以直接在开发板上运行。有兴趣的朋友都来玩玩吧!
/*
***************************************************************************
*
* (C) Copyright 2009,单片机初学者园地
* All Rights reserved.
*
*项目名称: 51单片机学习开发系统
*
*本文件名称:super_led.c
*
* 完成作者 : 张工(QQ:464976346)
http://blog.**/ahai0306/(作者博客)
* 当前版本 : V1.0
* 完成日期 : 2009年3月28日
* 描 述 : 超级声光多彩灯(纯属娱乐性学习)
****************************************************************************
*/
#include <REG52.H>
sbit BUZZ = P3 ^ 3; //蜂鸣器
/**********花样图形表(共7组)可自行添加*******************/
unsigned char code flash1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //从0-7
unsigned char code flash2[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe}; //从7-0
unsigned char code flash3[]={0x7e,0xbd,0xdb,0xe7,0xe7,0xdb,0xbd,0x7e}; //从两端开始
unsigned char code flash4[]={0xe7,0xdb,0xbd,0x7e,0x7e,0xbd,0xdb,0xe7}; //从中间开始
unsigned char code flash5[]={0xff,0x00,0xff,0x00,0xaa,0x55,0xaa,0x55}; //全闪烁和间隔闪
unsigned char code flash6[]={0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00}; //从7-0
unsigned char code flash7[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; //从0-7
/*****************延是函数********************************/
void delay(unsigned int k)
{
unsigned int i,j;
for(i=0;i<k;i++)
{
for(j=0;j<121;j++)
{;}
}
}
/********************主函数********************************/
void main(void)
{
unsigned char temp;
P1=0; //关闭数码管,防止数码管闪烁
while(1) //总循环
{ /**********第一组*******************/
for(temp=0;temp<8;temp++)
{P0=flash1[temp]; //查表1花样送P0口
delay(100); //延时
BUZZ=!BUZZ; //蜂名器取反(叫停反复)
}
/*************第二组******************/
for(temp=0;temp<8;temp++)
{P0=flash2[temp]; //查表2花样送P0口
delay(100);
BUZZ=!BUZZ;}
/*************第三组******************/
for(temp=0;temp<8;temp++)
{P0=flash3[temp];
delay(100);
BUZZ=!BUZZ;}
/**************第四组*****************/
for(temp=0;temp<8;temp++)
{P0=flash4[temp];
delay(100);
BUZZ=!BUZZ;}
/*************第五组******************/
for(temp=0;temp<8;temp++)
{P0=flash5[temp];
delay(100); //因闪烁,加大延长时间
BUZZ=!BUZZ;
delay(100);
BUZZ=!BUZZ;
delay(100);
BUZZ=!BUZZ;
}
/*************第六组******************/
for(temp=0;temp<8;temp++)
{P0=flash6[temp];
delay(100);
BUZZ=!BUZZ;}
/*************第七组******************/
for(temp=0;temp<8;temp++)
{P0=flash7[temp];
delay(100);
BUZZ=!BUZZ;}
}
}
[点击这里下载源代码 ] (keil工程文件,可直接使用开发板仿真头仿真,不需要再设置)
我的QQ:464976346
开发板详细介绍!
http://blog.**/ahai0306/(我的博客首页)
相关链接:http://blog.**/ahai0306/ |
|
|