资源简介
我做的电子琴,21个音,一般歌曲基本上都能够弹奏、多多指教。呵呵呵、、
代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit P34=P3^4;
sbit P35=P3^5;
sbit P36=P3^6;
sbit P37=P3^7;
sbit P20=P2^0;
uchar code table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f
0x6f0x770x7c0x390x5e0x790x71
};
uint code tab[]={6402164103642606440064524645806468464777
6482064898649686503065058651106515765178
};
uchar tempkeyijSTH0STL0;
void delay(uint);
void main()
{
TMOD=0x01;
EA=1;
ET0=1;
while(1)
{
P3=0xff;
P34=0;
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
delay(10);
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
switch(temp)
{
case 0x0e:key=0;break;
case 0x0d:key=1;break;
case 0x0b:key=2;break;
case 0x07:key=3;break;
}
temp=P3;
P20=~P20;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp&=0x0f;
while(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
}
TR0=0;
}
}
P3=0xff;
P35=0;
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
delay(10);
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
switch(temp)
{
case 0x0e:key=4;break;
case 0x0d:key=5;break;
case 0x0b:key=6;break;
case 0x07:key=7;break;
}
temp=P3;
P20=~P20;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp&=0x0f;
while(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
}
TR0=0;
}
}
P3=0xff;
P36=0;
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
delay(10);
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
switch(temp)
{
case 0x0e:key=8;break;
case 0x0d:key=9;break;
case 0x0b:key=10;break;
case 0x07:key=11;break;
}
temp=P3;
P20=~P20;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp&=0x0f;
while(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
}
TR0=0;
}
}
P3=0xff;
P37=0;
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
delay(10);
temp=P3;
temp&=0x0f;
if(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
switch(temp)
{
case 0x0e:key=12;break;
case 0x0d:key=13;break;
case 0x0b:key=14;break;
case 0x07:key=15;break;
}
temp=P3;
P20=~P20;
P0=table[key];
STH0=tab[key]/256;
STL0=tab[key]%256;
TR0=1;
temp&=0x0f;
while(temp!=0x0f)
{
temp=P3;
temp&=0x0f;
}
TR0=0;
}
}
}
}
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void timer0() interrupt 1
{
TH0=STH0;
TL0=STL0;
P20=~P20;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
....... 0 2010-04-11 23:53 电子琴\电子琴_Uv2.Bak
文件 6376 2005-03-22 15:22 电子琴\STARTUP.A51
文件 156 2010-04-25 00:58 电子琴\电子琴.plg
文件 2837 2010-04-12 00:32 电子琴\dzq.c
文件 14049 2010-04-13 21:57 电子琴\STARTUP.LST
文件 57 2010-04-13 21:57 电子琴\电子琴.lnp
文件 11438 2010-04-13 21:57 电子琴\电子琴.M51
文件 1925 2010-04-13 21:57 电子琴\电子琴.hex
文件 2185 2010-04-12 00:32 电子琴\电子琴.Uv2
文件 768 2010-04-25 00:58 电子琴\电子琴.PWI
文件 48 2010-04-12 10:58 电子琴\新建 文本文档.txt
文件 91245 2010-04-13 20:23 电子琴\Last Loaded 电子琴.DBK
文件 91245 2010-04-13 21:23 电子琴\电子琴.DSN
文件 758 2010-04-13 21:57 电子琴\STARTUP.OBJ
文件 10180 2010-04-13 21:57 电子琴\dzq.LST
文件 8001 2010-04-13 21:57 电子琴\dzq.OBJ
文件 7318 2010-04-13 21:57 电子琴\电子琴
....... 1039 2010-04-13 21:57 电子琴\电子琴_Opt.Bak
文件 1043 2010-04-25 00:58 电子琴\电子琴.Opt
目录 0 2010-04-11 20:21 电子琴
----------- --------- ---------- ----- ----
250668 20
- 上一篇:隐藏任务栏图标工具(hot)
- 下一篇:保险公司管理系统(前台界面)
评论
共有 条评论