也就是说,单片机能否播放音乐,如果谱子有了的话
谢谢
单片机能否发出do re mi fa的声音
答案:3 悬赏:60 手机版
解决时间 2021-02-05 08:05
- 提问者网友:辞取
- 2021-02-04 14:06
最佳答案
- 五星知识达人网友:毛毛
- 2021-02-04 14:17
用一般的蜂鸣器就可以,但是音效不太好,控制蜂鸣器发声的频率就可以打出不同音调的声音了~
全部回答
- 1楼网友:狂恋
- 2021-02-04 14:58
可以的。
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar i=0;
sbit SPK = P3^4;
sbit K1 = P1^0;
uchar code HI_LIST[]=
{
0,266,229,232,233,236,238,240,241,242,244,245,246,247,248
};
uchar code LO_LIST[]=
{
0,4,13,10,20,3,8,6,2,23,5,26,1,4,3
};
void T0_INT() interrupt 1
{
TL0 = LO_LIST[i];
TH0 = HI_LIST[i];
SPK = !SPK;
}
void DelayMS(uint ms)
{
uchar t;
while(ms--)
{
for(t=0;t<120;t++);
}
}
void main()
{
IE = 0x82;
TMOD = 0x00;
while(1)
{
while(K1==1);
while(K1==0);
for(i=1;i<15;i++)
{
TR0 = 1;
DelayMS(500);
TR0 = 0;
DelayMS(50);
}
}
}
还比如下面这个程序,可以唱一段:
- 2楼网友:煞尾
- 2021-02-04 14:24
t0h equ 30h
t0l equ 31h
org 0000h
ljmp main
org 000bh
ljmp t0isr
org 0030h
main:
mov sp,#5fh
mov tmod,#01h
setb et0
setb ea
loop:
mov dptr,#freq
mov a,p2 ;控制高中低音区
mov r1,#0
anl a,#03h
jb acc.0,loop01
mov r1,#14
sjmp loop0
loop01:
jb acc.1,loop0
mov r1,#28
loop0:
jb p0.0,loop1 ;控制音频1234567
mov a,r1
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
movc a,@a+dptr
mov t0l,a
ljmp loop
loop1:
jb p0.1,loop2
mov a,r1
add a,#2
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
add a,#2
movc a,@a+dptr
mov t0l,a
ljmp loop
loop2:
jb p0.2,loop3
mov a,r1
add a,#4
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
add a,#4
movc a,@a+dptr
mov t0l,a
ljmp loop
loop3:
jb p0.3,loop4
mov a,r1
add a,#6
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
add a,#6
movc a,@a+dptr
mov t0l,a
ljmp loop
loop4:
jb p0.4,loop5
mov a,r1
add a,#8
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
add a,#8
movc a,@a+dptr
mov t0l,a
ljmp loop
loop5:
jb p0.5,loop6
mov a,r1
add a,#10
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
add a,#10
movc a,@a+dptr
mov t0l,a
ljmp loop
loop6:
jb p0.6,loop7
mov a,r1
add a,#12
movc a,@a+dptr
mov t0h,a
inc dptr
mov a,r1
add a,#12
movc a,@a+dptr
mov t0l,a
ljmp loop
loop7:
clr tr0
ljmp loop
;-----------------------------
t0isr:
clr tr0
mov th0,t0h
mov tl0,t0l
setb tr0
cpl p3.0
reti
;-----------------------------
freq:
db 0f2h,03dh ;低音1
db 0f3h,0bdh ;低音2
db 0f5h,014h ;低音3
db 0f5h,0b1h ;低音4
db 0f6h,0d0h ;低音5
db 0f7h,0d1h ;低音6
db 0f8h,0b5h ;低音7
db 0f9h,01eh ;中音1
db 0f9h,0deh ;中音2
db 0fah,08ah ;中音3
db 0fah,0d8h ;中音4
db 0fbh,068h ;中音5
db 0fbh,0e8h ;中音6
db 0fch,05ah ;中音7
db 0fch,08fh ;高音1
db 0fch,0efh ;高音2
db 0fdh,045h ;高音3
db 0fdh,06ch ;高音4
db 0fdh,0b4h ;高音5
db 0fdh,0f4h ;高音6
db 0feh,029h ;高音7
;-----------------------------
end
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯