#单片机#矩阵键盘-电子琴
sbit sound=P0^4;
#define uchar unsigned char
#define uint unsigned int
uchar k,num,temp;
uint code yinfu[]= {64580,64684,64777,64820,64898,64968,65030 };
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar key_scan()
{
uchar i=0;
for(i=0;i<4;i )//循环四次
{
P2=~(0x01
delay(5);//延时
temp=P2;//再次读取P1的值
temp=0xf0&temp;//获取高四位值
if(temp!=0xf0)//再次判断
switch(temp)
}
temp=0xf0&temp;
}
}
}
}
void main()
{
TMOD=0x01;//设置定时器0工作方式1
TH0=(yinfu[0])/256;
TL0=(yinfu[0])%6;//赋初值
EA=1;//开总中断
ET0=1;//开定时器中断0
TR0=1;//启动定时器0
while(1)
{
}
}
void timer0() interrupt 1
{
TL0=(yinfu[key_scan()])%6;//赋初值
sound=!sound;
}
单片机矩阵键盘电子 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)