导航:首页 > 编程语言 > led音乐编程

led音乐编程

发布时间:2022-09-03 22:17:39

单片机中,如何运用C语言来编个:音乐节奏控制LED点阵的变化有没有音律代码的

我以前做出来了生日快乐歌加流水灯。但是如果单纯的用音乐节奏控制led是实现不了的?因为单片机的执行顺序是逐条的。要么先唱歌,要么流水灯。只有引用单片机中时间飞轮这个函数,才能将两个功能穿插执行。没准你的可以实现,音律代码是数组,执行一个音后中断去执行一次点阵,的确很复杂,需要单片机速率高,才能听着舒服。

Ⅱ LED怎么编程

LED本身只是一种电致发光器件,本质上它是一个二极管,唯一的功能是通过电流时发光(把电能转变成光能)。它是不需要任何“编程”的。

LED需要专用的驱动器芯片来供给电源。部分驱动器芯片是可编程的,通过写入程序,它可以控制LED元件点亮、熄灭或发出不同亮度的光;另外绝大多数驱动芯片带有使能端,这个端口可以与多种单片机、接口电路相连,从而接受来自单片机或其他接口电路的指令来控制LED的发光状态。这时的编程,是对单片机或其他上位机而言的。

Ⅲ 如何使LED灯随着单片机播放的音乐闪烁是随着音乐闪烁

这个应该需要一个算法,把音乐的节奏和LED的亮灭频率结合起来,音乐缓LED就慢闪,音乐快LED就快闪。

Ⅳ 用汇编语言写了一段LED闪亮的功能,想把它放到音乐盒程序中去,我该怎么放才能让它一直有闪亮作用

网络个流水灯程序就行了,把输出引脚改到你接灯的引脚上。放在主循环里,只要有电就会一直有闪亮作用。

Ⅳ 你好,我想知道怎么把编好的音乐代码放到编好的LED显示代码中,让他们同时运行

你编好的音乐代码,那是只播放音乐的程序。但要与LED显示程序同时运行,那音乐代码就直接和LED显示程序简单的合在一起的。需要对音乐代码做些改动,并采用中断方式。原代码是用定时器产生音频信号的,定时器中断程序改成中断方式才行。

Ⅵ 用汇编语言编写一个跑马灯音乐程序,用89C51单片机的P1.0到P1.7接八个LED

注意字符表未经验证, 请自行调试

#include <AT89X51.H>
#define uchar unsigned char
#define uint unsigned int
const unsigned char design[16]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x40,

0x20,0x10,0x08,0x04,0x02,0x10,0x00};

void delay_1ms(uint x)
{
uint i,j;
for (j=0;j<x;j++)
for (i=0;i<110;i++);

}
void set_led(uint jiange)
{
uchar i;

for (i=0;i<16;i++);
{

P1=design[i];
delay_1ms(jiange);
}

}
void main(void)
{
uint jg_ms;

jg_ms=500;

set_led(jg_ms);
jg_ms=200;
set_led(jg_ms);
jg_ms=500;
set_led(jg_ms);
}

Ⅶ 如何制作随音乐节奏闪烁的LED灯组

这种LED随音乐闪烁,效果上类似于音响设备的电平指示器。电路很多,可用分立元件,也可用现成的IC,如图所示:此图可接21只LED,排成往两边闪的效果,中间一只LED长亮,作为电源指示。输入端接音频信号,信号弱,LED闪的少,信号强,LED闪的多,直至闪到头。

使LED灯随音乐节奏闪动;
LED灯可以通过开关电路如三极管开关电路、可关断可控硅电路对其电源进行控制,问题在于取得随音乐变化的控制电压,以控制连接LED灯的开关电路,使灯亮灭。控制电压可以用电压比较电路,例如两个以LED灯为负载的三极管开关电路,其中基极预置的偏压不同,音频输出电压当通过电容同时偶合到这两电路基极时,偏置电压较高的一路得到稍低的音频电压时便导通,对应LED灯点亮,而偏置电压低的一路则需要较大的音频电压才得到导通;这样,两路灯便可以跟随输出大小闪烁;或者,两路一样偏置的开关电路,分别由高、低音分频器驱动,则开关电路由不同频率电压控制,灯光跟随频率闪烁。
实际上,有现成的由输出音量控制的LED灯闪烁电路,见来自网络的附图;
如果控制彩灯功率较大,使用它来控制固态继电器就可以扩大输出功率了。

Ⅷ 单片机对于音乐的编程中 ,音符的十六位数据表是怎样

只有音乐发声汇编程序,没有加入LED灯,供参考。数据代码已改为小星星发声
;**********************************************
ORG 0000H
SJMP MAIN
ORG 0BH
AJMP TIME0

;*************主程序************************

MAIN: MOV SP,#60
MOV TMOD,#01H ;T0定时工作方式
MOV IE,#82H ;CPU 中断允许,T0中断允许

START0: MOV 30H,#00H ;TABLE 相对地址指针
NEXT: MOV A,30H
MOV DPTR,#TABLE ;到TABLE处取 简谱码 节拍 码
MOVC A,@A+DPTR
MOV R2,A ;取到的简谱码 节拍码 暂存于R2中

JZ ENDF ;取到 00 结束

ANL A,#0FH ;否,取低四位 节拍 码
MOV R5,A ;将节拍码存于R5中
MOV A,R2 ;简谱码 节拍 码 给A
SWAP A ;高4位 与 低4位 交换
ANL A,#0FH ;取简谱 码
JNZ SING ;取到的简谱 码不是0,则去发声
CLR TR0 ;取到0 则不发声
SJMP DLY1 ;节拍延时子程序( 随节拍码变化,延时时间不同)

;---------------发声-----------------------
SING: DEC A ;取到的简谱码减1
;(简谱码计数值16位数据存储首地址从TABLE1 《相对地址》0处开始放起,所以要减1)
MOV 22H,A ;存入(22H)中
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2

MOV DPTR,#TABLE1
;...........简谱码转换为相应定时器16位计数值.............
MOVC A,@A+DPTR ;到TABLE1取相应的高字节计数值
MOV TH0,A ;高字节计数值存入TH0和(21H)中
MOV 21H,A
MOV A,22H ;减1的简谱码给A
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2
INC A ;A 增加 取下一个字节计数值

;...........简谱码转换为相应定时器16位计数值.............
MOVC A,@A+DPTR ;到TABLE1取相应的低字节计数值
MOV TL0,A ;低字节计数值存入TL0和(20H)中
MOV 20H,A
SETB TR0 ;启动T0定时器让喇叭发出不同频率声音

;---------------节拍延时-------------------
DLY1: ACALL DELAY ;基本单位时间为1/4拍 187ms
INC 30H ;取下一个简谱码 节拍 码
SJMP NEXT

;---------------歌放完结束---------------
ENDF: CLR TR0 ;关闭T0定时器
AJMP START0 ;反复循环

;****T0中断子程序(用来驱动喇叭发出不同频率声音)**************
TIME0: PUSH ACC
PUSH PSW
MOV TL0,20H ;重装计数值
MOV TH0,21H
CPL P3.7 ;驱动发声
POP PSW
POP ACC
RETI

;******************节拍延时187ms****************************
DELAY: MOV R7,#187 ;187ms延时子程序
DLY2: MOV R4,#02
DLY3: MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET

;*******音符T值表(用来让定时器发出不同的频率)**DW 表示一个 计数值 占两个字节存储单元***************

TABLE1: DW 64260,64400,64524,64580,64684 ;低音SO 低音LA 低音SI /中音DO 中音RE
DW 64777,64820,64898,64968,65030 ;中音MI 中音FA 中音SO 中音LA 中音SI
DW 65058,65110,65157,65178,65217 ;高音DO 高音RE 高音MI 高音FA 高音SO

;*********简谱码 节拍码(高4位简谱码 ,低4位节拍码)*************

TABLE: DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

END

加入了LED灯,水平有限,效果有点不太好
;**********************************************
ORG 0000H
SJMP MAIN
ORG 0BH
AJMP TIME0

;*************主程序************************

MAIN: MOV SP,#60
MOV TMOD,#01H ;TO定时工作方式
MOV IE,#82H ;CPU 中断允许,TO中断允许

START0: MOV 30H,#00H ;TABLE 相对地址指针
NEXT: MOV A,30H
MOV DPTR,#TABLE ;到TABLE处取 简谱码 节拍 码
MOVC A,@A+DPTR
MOV R2,A ;取到的简谱码 节拍码 暂存于R2中

JZ ENDF ;取到 00 结束

ANL A,#0FH ;否,取低四位 节拍 码
MOV R5,A ;将节拍码存于R5中
MOV A,R2 ;简谱码 节拍 码 给A
SWAP A ;高4位 与 低4位 交换
ANL A,#0FH ;取简谱 码
JNZ SING ;取到的简谱 码不是0,则去发声
CLR TR0 ;取到0 则不发声
SJMP DLY1 ;节拍延时子程序( 随节拍码变化,延时时间不同)

;---------------发声-----------------------
SING: DEC A ;取到的简谱码减1
;(简谱码计数值16位数据存储首地址从TABLE1 《相对地址》0处开始放起,所以要减1)
MOV 22H,A ;存入(22H)中
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2

MOV DPTR,#TABLE1
;...........简谱码转换为相应定时器16位计数值.............
MOVC A,@A+DPTR ;到TABLE1取相应的高字节计数值
MOV TH0,A ;高字节计数值存入TH0和(21H)中
MOV 21H,A
MOV A,22H ;减1的简谱码给A
RL A ;乘2 因为取的数据占两字节(16位)
;所以指针增加量要乘2
INC A ;A 增加 取下一个字节计数值

;...........简谱码转换为相应定时器16位计数值.............
MOVC A,@A+DPTR ;到TABLE1取相应的低字节计数值
MOV TL0,A ;低字节计数值存入TL0和(20H)中
MOV 20H,A
SETB TR0 ;启动T0定时器让喇叭发出不同频率声音

;---------------节拍延时-------------------
DLY1: ACALL DELAY ;基本单位时间为1/4拍 187ms
INC 30H ;取下一个简谱码 节拍 码

CPL P1.0 LED灯 闪烁
CPL P1.1
CPL P1.2
CPL P1.3
CPL P1.4
CPL P1.5
CPL P1.6
CPL P1.7

SJMP NEXT

;---------------歌放完结束---------------
ENDF: CLR TR0 ;关闭T0定时器
AJMP START0 ;反复循环

;****T0中断子程序(用来驱动喇叭发出不同频率声音)**************
TIME0: PUSH ACC
PUSH PSW
MOV TL0,20H ;重装计数值
MOV TH0,21H
CPL P3.7 ;驱动发声
POP PSW
POP ACC
RETI

;******************节拍延时187ms****************************
DELAY: MOV R7,#187 ;187ms延时子程序
DLY2: MOV R4,#02
DLY3: MOV R3,#248
DJNZ R3,$
DJNZ R4,DLY3
DJNZ R7,DLY2
DJNZ R5,DELAY
RET

;*******音符T值表(用来让定时器发出不同的频率)**DW 表示一个 计数值 占两个字节存储单元***************

TABLE1: DW 64260,64400,64524,64580,64684 ;低音SO 低音LA 低音SI /中音DO 中音RE
DW 64777,64820,64898,64968,65030 ;中音MI 中音FA 中音SO 中音LA 中音SI
DW 65058,65110,65157,65178,65217 ;高音DO 高音RE 高音MI 高音FA 高音SO

;*********简谱码 节拍码(高位简谱码 ,低位节拍码)*************

TABLE: DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 - -表示有节拍

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 84H,84H,74H,74H ; 5 5 4 4
DB 64H,64H,58h ; 3 3 2-

DB 44H,44H,84H,84H ; 1 1 5 5
DB 094H,094H,88h ; 6 6 5 -

DB 74H,74H,63H,63H ; 4 4 3 3
DB 52H,52H,48h ; 2 2 1-

END

Ⅸ 如何用单片机做出用音乐节奏来控制LED灯

LED随着音乐节奏闪烁吗?
用不着单片机来做,用简单的RC电路就可以了。
1、驱动信号来源于音乐声源,无论是前级还是后级都可以;
2、加入RC电路,形成音乐信号的包络线。换句话说,就是减低音乐频率,形成一个随幅度变化的信号。因为音频信号变化太快,LED无法快速反应。
3、用功率集成电路或者大功率三极管作为LED
驱动。将电路无音频信号时调节为LED临界导通状态,这样随着音频信号的强弱,LED就会随着节奏闪烁。

阅读全文

与led音乐编程相关的资料

热点内容
程序员走了 浏览:272
linux设置时间服务器 浏览:282
机械人焊接编程教学视频 浏览:552
体重小本app怎么样 浏览:777
编程语言需求 浏览:935
当兵体重怎么个算法 浏览:170
加密的电脑文件带出去怎么打开 浏览:850
死循环会在编译的时候出错吗 浏览:987
c51单片机特殊寄存器的原理 浏览:579
闪耀永恒特利加密钥 浏览:763
如何夸程序员 浏览:781
天津期货python招聘 浏览:267
单片机机器语言写的程序 浏览:554
韩国直播软件app叫什么名 浏览:920
军营训练不听教官的命令 浏览:263
v开头的音乐播放器是什么APP 浏览:122
单片机是怎么做出来的 浏览:319
博图怎么作为opc服务器 浏览:104
编译做题软件 浏览:298
桥梁检测pdf 浏览:689