单片机音频节奏灯_用C51写的单片机音乐彩灯程序
#define TLEDS 20//每个花样状态持续时间,以50mS为单位
#define NUM_OF_LED_S 4//每种模式LED花样数?
typedef unsigned char uchar;
typedef unsigned int uint;
data uchar led_array_num;//当前模式下,LED花样状态序号
data uchar music_array_num;//音符的序号
data uchar i;//模式号
data uchar t_count_led;//用于LED状态持续时间计时
data uint t_count_music;//
data uint t_yinfu;//音符持续时间
uchar code led_array_p0[4][NUM_OF_LED_S]={{0xc0,0xc0,0xc0,0xc0},{0x38,0x38,0x38,0x38},{0x05,0x07,0x02,0x07},{0xff,0x81,0xff,0xff}};
uchar code led_array_p2[4][NUM_OF_LED_S]={{0x07,0x0b,0x0d,0x0e},{0x07,0x09,0x0e,0x00},{0x06,0x09,0x06,0x00},{0x07,0x09,0x0e,0x00}};
uchar code music_array_h[4][128]={{0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfd,0xfd,
0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfd,0xfc},
{0xfc,0xfc,0xfd,0xfc,0xfc,0xfc,0xfd,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfd,
0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfd,0xfc,0xfc,0xfd,0xfc},
{0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfb,0xfb,0xfd,0xfd,0xfc,0xfc,0xfb,0xfd,0xfd,
0xfd,0xfc,0xfc,0xfc},
{0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,
0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc}};
uchar code music_array_l[4][128]={{0x43,0x43,0x43,0x08,0x81,0x81,0x81,0x81,0xc7,0xc7,0xc7,0x21,0x81,0x33,0x33,0x33,0xc7,0x08,0x08,0x08,0x81,0xb5,0xb5,0xb5,0xb5,0xb5,0x81,0x81,0x43,0x43,0x43,0x08,0x81,0x81,0x81,0x81,0xc7,0xc7,0xc7,0x21,0x81,0x33,0x33,0x33,0xc7,0x08,0x08,0x08,0x08,0x08,0x81,0xb5,0xb5,0xb5,0xb5,0x08,0x43},{0x43,0xb5,0x08,0x43,0x43,0xb5,0x08,0x43,0x08,0x33,0x81,0x08,0x33,0x81,0x81,0xc7,0x81,0x33,0x08,0x43,0x81,0xc7,0x81,0x33,0x08,0x43,0x43,0x81,0x43,0x43,0x81,0x43},{0x03,0x03,0x8f,0x03,0x43,0x0b,0x03,0x03,0x8f,0x03,0xb5,0x43,0x03,0x03,0x81,0x08,0x43,0x0b,0x8f,0x33,0x33,0x08,0x43,0xb5,0x43},{0x43,0x43,0x81,0x81,0xc7,0xc7,0x81,0x33,0x33,0x08,0x08,0xb5,0xb5,0x43,0x81,0x81,0x33,0x33,0x08,0x08,0xb5,0x81,0x81,0x33,0x33,0x08,0x08,0xb5,0x43,0x43,0x81,0x81,0xc7,0xc7,0x81,0x33,0x33,0x08,0x08,0xb5,0xb5,0x43}};
uint code music_array_t[4][128]={{523,523,523,658,784,784,784,784,880,880,880,1046,784,698,698,698,880,658,658,658,784,593,593,593,593,593,784,784,523,523
,523,658,784,784,784,784,880,880,880,1046,784,698,698,698,880,658,658,658,658,658,784,593,593,593,593,658,523,0},{523,593,658,523,523,593,658,523,658,698,3134,658,698,3134,391,440,391,698,658,523,391,568,391,698,658,523,523,784,1046,523,784,1046,0},{391,391,880,391,523,1486,391,391,880,391,593,1569,391,391,3134,658,523,988,440,698,698,1317,523,593,1569,0},{523,523,784,784,880,880,784,698,698,658,658,593,593,523,784,784,698,698,658,658,593,784,784,698,698,658,658,593,523,523,784,784,880,880,784,698,698,658,658,593,593,523,0}};
void delay(void)
{
uchar c_1;
uchar c_2;
uchar c_3;
for (c_1=0; c_1< 10;c_1++)
for(c_2 = 0;c_2< 10;c_2++)
for(c_3 = 0; c_3<55;c_3++)
;
}
void main(void)
{
led_array_num = 0;
music_array_num = 0;
t_yinfu = music_array_t[0][0]; //初始化
//delay();
i = 0;
TMOD = 0x11; //定时器工作方式设置
TR0 = 0; //关定时器
TR1 = 0;
TH1 = 0x3c;
TL1 = 0xb0;
P0 = led_array_p0[0][0];//彩灯
P2 = led_array_p2[0][0];
t_count_led = 0;
TH0 = music_array_h[0][0];//音乐
TL0 = music_array_l[0][0];
t_yinfu = music_array_t[0][0];
t_count_music = 0;
IE = 0x8a;
TR0 = 1;
TR1 = 1;
//以下开始扫描按键
while(1)
{
P1_0 = 1;
if(P1_0 == 0)
{
delay();
if(P1_0 == 0)
{
TR0 = 0;
TR1 = 0;
i = 0;//去抖动
led_array_num = 0;
music_array_num = 0;
TH1 = 0x3c;
TL1 = 0xb0;
P0 = led_array_p0[0][0];//彩灯
P2 = led_array_p2[0][0];
t_count_led = 0;
TH0 = music_array_h[0][0];//音乐
TL0 = music_array_l[0][0];
t_yinfu = music_array_t[0][0];
t_count_music = 0;
while(P1_0 == 0)
{
while(P1_0 == 0)
t_count_music = 0;
delay();
}
TR0 = 1;
TR1 = 1;
}
}
if(P1_1 == 0)
{
delay();
if(P1_1 == 0)
{
TR0 = 0;
TR1 = 0;
i = 1;
led_array_num = 0;
music_array_num = 0;
TH1 = 0x3c;
TL1 = 0xb0;
P0 = led_array_p0[1][0];//彩灯
P2 = led_array_p2[1][0];
t_count_led = 0;
TH0 = music_array_h[1][0];//音乐
TL0 = music_array_l[1][0];
t_yinfu = music_array_t[1][0];
t_count_music = 0;
while(P1_1 == 0)
{
while(P1_1 == 0)
t_count_music = 0;
delay();
}
TR0 = 1;
TR1 = 1;
}
}
if(P1_2 == 0)
{
delay();
if(P1_2 == 0)
{
TR0 = 0;
TR1 = 0;
i = 2;
led_array_num = 0;
music_array_num = 0;
TH1 = 0x3c;
TL1 = 0xb0;
P0 = led_array_p0[2][0];//彩灯
P2 = led_array_p2[2][0];
t_count_led = 0;
TH0 = music_array_h[2][0];//音乐
TL0 = music_array_l[2][0];
t_yinfu = music_array_t[2][0];
t_count_music = 0;
while(P1_2 == 0)
{
while(P1_2 == 0)
t_count_music = 0;
delay();
}
TR0 = 1;
TR1 = 1;
}
}
if(P1_3 == 0)
{
delay();
if(P1_3 == 0)
{
TR0 = 0;
TR1 = 0;
i = 3;
led_array_num = 0;
music_array_num = 0;
TH1 = 0x3c;
TL1 = 0xb0;
P0 = led_array_p0[3][0];//彩灯
P2 = led_array_p2[3][0];
t_count_led = 0;
TH0 = music_array_h[3][0];//音乐
TL0 = music_array_l[3][0];
t_yinfu = music_array_t[3][0];
t_count_music = 0;
while(P1_3 == 0)
{
while(P1_3 == 0)
t_count_music = 0;
delay();
}
TR0 = 1;
TR1 = 1;
}
}
}
}
void Timer0IntRoute(void) interrupt 1
{
t_count_music++;
P1_4 = ~P1_4;
TH0 = music_array_h[i][music_array_num];//音乐
TL0 = music_array_l[i][music_array_num];
if(t_count_music >= t_yinfu)
{
t_yinfu = music_array_t[i][++music_array_num];
if(t_yinfu == 0)
{
music_array_num = 0;
t_yinfu = music_array_t[i][music_array_num];
}
TH0 = music_array_h[i][music_array_num];//音乐
TL0 = music_array_l[i][music_array_num];
t_count_music = 0;
}
}
void Timer1IntRoute(void) interrupt 3
{
t_count_led++;
TH1 = 0x3c;
TL1 = 0xb0;
if(t_count_led >= TLEDS)
{
t_count_led = 0;
led_array_num++;
if(led_array_num>=NUM_OF_LED_S)
led_array_num = 0;
P0 = led_array_p0[i][led_array_num];
P2 = led_array_p2[i][led_array_num];
}
}
单片机音频节奏灯_用C51写的单片机音乐彩灯程序相关推荐
- 单片机音频节奏灯_单片机在音乐节奏识别灯效系统中的智能控制
0引言目前国内外市场上有一种音乐彩灯设备,它由音控多谐振荡器.时序脉冲产生器和可控硅控制电路组成.其中由555电路和电容电阻等组成无稳态多谐振荡器,使音乐信号经过耦合变压器检波,加至555的控制端,并 ...
- 单片机音频节奏灯_音乐节奏灯(十个LED显示)
音乐节奏灯(十个LED显示) [复制链接] 本帖最后由 ginny 于 2017-3-9 18:43 编辑 网上大部分咪头节奏灯都只是控制LED灯的亮度,而且LED个数只有四个.这我打算做个更好玩的. ...
- 单片机音频节奏灯_使LED灯随音乐闪烁的控制方法及音乐节奏闪灯技术
[技术实现步骤摘要] 使LED灯随音乐闪烁的控制方法及音乐节奏闪灯 本专利技术涉及灯光控制方法及设备领域,尤其涉及一种使LED灯随音乐闪烁的控制方法及音乐节奏闪灯. 技术介绍 随着科技的进步,科技的发 ...
- 单片机音频节奏灯_如何用单片机做出用音乐节奏来控制LED灯?
我新安装了系统.驱动怎么办 如果你安装了操作系统,需要安装随机带的主板驱动,如果没有请安装下面的驱动.如果需要安装驱动,建议安装驱动精灵2008 ,安装之后,使用其自动更新驱动功能,它会自动下载并安装 ...
- 单片机音频谱曲软件_【自己写的小软件】CLY单片机音乐代码超级生成器
我比较喜欢动漫歌曲,最近用它打了<东京泰迪熊>到单片机里面,用P0.0做蜂鸣器输出口,挺好听的,分享一下源代码应该没什么问题吧? /*--------------------------- ...
- 基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s
基于51单片机十字路口交通灯_只显示绿灯时间+黄灯5s (程序+仿真+参考报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J011 目录标题 基于5 ...
- 用java做一个简单记事本_用记事本写一个简单的java程序
用记事本写一个简单的java程序 第一步: 安装好jdk,并设置好环境变量. 桌面-计算机(右键)-属性-高级系统设置-环境变量-path-在变量值后加上:和jdk安装路径加上(路径即为C:\Prog ...
- python123程序设计题说句心里话_用c++写一个简单的计算器程序
// 050305.cpp : 定义控制台应用程序的入口点. // // 050304.cpp : 定义控制台应用程序的入口点. // //四则运算 #include "stdafx.h&q ...
- python测试抽奖脚本_使用 Python 写一个简易的抽奖程序
不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...
最新文章
- 重装php后网站无法,1、解决重装php后变量在下一个页面无法取到的问题:
- 你可能不需要固定词表:一种与词表无关的组合式词向量方法
- sql server 数据库改名
- charts 画饼图
- 事务处理与SQL查询
- 跟谁学上市未满1年遭4家机构6轮做空,市值一周缩水近20亿美元
- 【ES】es 冻结的索引如何查询
- mac android studio sdk配置,macOS安装Android Studio及配置环境变量
- 上交所、深交所证券代码编码规则
- excel学习-自定义图表颜色(QQ截图+colorpix取色器)
- 用python计算内部收益率
- Express Session的使用
- python图像降噪
- Java并发编程73道面试题及答案 —— 面试稳了 侵立删
- VMware拟收购云应用管理服务商Wavefront
- 雷电3菊链功能_别选错!笔记本的Type-C和雷电3接口区别可大了
- C++Primer阅读笔记
- 将url地址中的编码转汉字
- 参加2020全国大学生数学建模竞赛有感
- Windows 7 新功能 - BitLocker To Go
热门文章
- 网络安全工具:Wireshark
- pandas dataframe 删除带空值的行 各种空值 (dropna()、isna()、isnull()、fillna())
- Python 字典(Dictionary) get()方法
- LeetCode简单题之单值二叉树
- TVM性能评估分析(三)
- NVIDIA深度架构
- Ubuntu 系统 下 AndroidStudio 工具 使用ctrl+z 回退上一步的方法
- Kotlin 函数的问题
- express+ejs搭建的留言
- MySQL 学习笔记(5)— 视图优缺点、创建视图、修改视图、删除视图