51单片机控制的16介音乐盒程序及图.docx

上传人:b****5 文档编号:28570362 上传时间:2023-07-19 格式:DOCX 页数:26 大小:47.70KB
下载 相关 举报
51单片机控制的16介音乐盒程序及图.docx_第1页
第1页 / 共26页
51单片机控制的16介音乐盒程序及图.docx_第2页
第2页 / 共26页
51单片机控制的16介音乐盒程序及图.docx_第3页
第3页 / 共26页
51单片机控制的16介音乐盒程序及图.docx_第4页
第4页 / 共26页
51单片机控制的16介音乐盒程序及图.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

51单片机控制的16介音乐盒程序及图.docx

《51单片机控制的16介音乐盒程序及图.docx》由会员分享,可在线阅读,更多相关《51单片机控制的16介音乐盒程序及图.docx(26页珍藏版)》请在冰豆网上搜索。

51单片机控制的16介音乐盒程序及图.docx

51单片机控制的16介音乐盒程序及图

#include

#defineuintunsignedint

#defineucharunsignedchar

sbitP1_7=P1^7。

sbitP1_1=P1^1。

sbitP1_2=P1^2。

uintkey_number。

uintSTH0,STL0。

ucharcodetab1[]={0xef,0xdf,0xbf,0x7f}。

ucharcodetab2[]={0xfe,0xfd,0xfb,0xf7}。

ucharcodetab3[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。

uintcodetab4[]={64021,64103,64260,64400,64524,64580,64684,64777,

64820,64898,64968,65030,65058,65110,65157,65178}。

voiddelayms(ucharno>。

voidkeydetect(>。

voiddisplay(>。

voidtimer0_interrupt(>。

main(>

{

TMOD=0x01。

EA=1。

ET0=1。

while(1>

{

display(>。

keydetect(>。

}

}

voidkeydetect(>

{

uinti,j。

for(i=0。

i<=3。

i++>

{

P2=tab1[i]。

for(j=0。

j<=3。

j++>

{

if(P3==tab2[j]>

{

delayms(10>。

if(P3==tab2[j]>

{

if(i==0>

key_number=i+j。

elseif(i==1>

key_number=i+j+3。

elseif(i==2>

key_number=i+j+6。

else

key_number=i+j+9。

switch(key_number>

{

case0:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case1:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case2:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case3:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case4:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case5:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case6:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case7:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case8:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case9:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case10:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case11:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case12:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case13:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case14:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case15:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

default:

break。

}

while(P3==tab2[j]>

{

display(>。

switch(key_number>

{

case0:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case1:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case2:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case3:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case4:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case5:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case6:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case7:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case8:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case9:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case10:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case11:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case12:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case13:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case14:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case15:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

default:

break。

}

}

TR0=0。

}

}

}

}

}

voidtimer0_interrupt(>interrupt1using2

{

TH0=STH0。

TL0=STL0。

P1_7=~P1^7。

}

voiddisplay(>

{

P0=tab3[key_number/10]。

P1_1=0。

delayms(1>。

P1_1=1。

P0=tab3[key_number%10]。

P1_2=0。

delayms(1>。

P1_2=1。

}

voiddelayms(ucharno>

{

uinti,j。

for(i=0。

i

i++>

{

for(j=0。

j<164。

j++>。

for(j=0。

j<164。

j++>。

}

}#include

#defineuintunsignedint

#defineucharunsignedchar

sbitP1_7=P1^7。

sbitP1_1=P1^1。

sbitP1_2=P1^2。

uintkey_number。

uintSTH0,STL0。

ucharcodetab1[]={0xef,0xdf,0xbf,0x7f}。

ucharcodetab2[]={0xfe,0xfd,0xfb,0xf7}。

ucharcodetab3[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}。

uintcodetab4[]={64021,64103,64260,64400,64524,64580,64684,64777,

64820,64898,64968,65030,65058,65110,65157,65178}。

voiddelayms(ucharno>。

voidkeydetect(>。

voiddisplay(>。

voidtimer0_interrupt(>。

main(>

{

TMOD=0x01。

EA=1。

ET0=1。

while(1>

{

display(>。

keydetect(>。

}

}

voidkeydetect(>

{

uinti,j。

for(i=0。

i<=3。

i++>

{

P2=tab1[i]。

for(j=0。

j<=3。

j++>

{

if(P3==tab2[j]>

{

delayms(10>。

if(P3==tab2[j]>

{

if(i==0>

key_number=i+j。

elseif(i==1>

key_number=i+j+3。

elseif(i==2>

key_number=i+j+6。

else

key_number=i+j+9。

switch(key_number>

{

case0:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case1:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case2:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case3:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case4:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case5:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case6:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case7:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case8:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case9:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case10:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case11:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case12:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case13:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case14:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case15:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

default:

break。

}

while(P3==tab2[j]>

{

display(>。

switch(key_number>

{

case0:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case1:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case2:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case3:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case4:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case5:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case6:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case7:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case8:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case9:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case10:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case11:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

delayms(10>。

}。

break。

case12:

{

TR0=1。

P1_7=~P1^7。

STH0=tab4[key_number]/256。

STL0=tab4[key_number]%256。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 中国风

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1