今日学习任务 | 单片机基础知识 |
今日任务完成情况 | 按计划完成学习任务 1、单片机软件的安装与使用 2、最小系统 3、点灯 4、跑马灯 5、蜂鸣器响 6、独立按键控制LED灯 7、矩形按键控制LED灯 |
今日开发中出现的问题汇总 | 管脚使用问题 |
今日未解决问题 | 无 |
今日开发收获 | 学会了利用软件平台模拟硬件电路,复习巩固了单片机基础知识 |
自我评价 | 基本能听懂老师所授内容 |
其他 | 无 |
矩阵按键控制蜂鸣器发声
#include<reg51.h>
sbit Beep=P2^3;
void delay( int x)
{
int i; while(x--)
{
for(i=0;i<100;i++);
}
}
void main()
{
int key;
while(1)
{
key=0;
Beep=1;
P3=0xf0;
if(P3!=0)
{
switch(P3)
{
case 0xe0: key+=0;
break;
case 0xd0: key+=1;
break;
case 0xb0: key+=2;
break;
case 0x70: key+=3;
break;
}
P3=0x0f;
switch(P3)
{
case 0x0e: key+=1;
break;
case 0x0d: key+=5;
break;
case 0x0b: key+=9;
break;
case 0x07: key+=13;
break;
}
}
switch(key)
{
case 1:
{
Beep=0;
delay(1);break;
}
case 2:
{
Beep=0;
delay(5);break;
}
case 3:
{
Beep=0;delay(10);
break;
}
case 4:
{
Beep=0;
delay(15);break;
}
case 5:
{
Beep=0;
delay(20);break;
}
case 6:
{
Beep=0;
delay(25);break;
}
case 7:
{
Beep=0;
delay(30);break;
}
case 8:
{
Beep=0;
delay(35);break;
}
case 9:
{
Beep=0;
delay(40);break;
}
case 10:
{
Beep=0;
delay(45);break;
}
case 11:
{
Beep=0;
delay(50);break;
}
case 12:
{
Beep=0;
delay(55);break;
}
case 13:
{
Beep=0;
delay(60);break;
}
case 14:
{
Beep=0;
delay(65);break;
}
case 15:
{
Beep=0;
delay(70);break;
}
case 16:
{
Beep=0;
delay(75);break;
}
}
}
}