51单片机控制的16介音乐盒程序及图.docx
- 文档编号:28570362
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:26
- 大小:47.70KB
51单片机控制的16介音乐盒程序及图.docx
《51单片机控制的16介音乐盒程序及图.docx》由会员分享,可在线阅读,更多相关《51单片机控制的16介音乐盒程序及图.docx(26页珍藏版)》请在冰豆网上搜索。
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 控制 16 介音 程序
![提示](https://static.bdocx.com/images/bang_tan.gif)