学习日志 姓名:孔令斌 日期:2018.7.16
今日学习任务 |
1.单片机 2.LED灯控制 3.蜂鸣器 4.按键
|
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量) |
今天的任务成功完成,成功完成了LED灯的控制,蜂鸣器发出声响,以及按键显示。 |
今日开发中出现的问题汇总 |
安装程序时发生错误,最后将文件名改成了英文,重新安装后才可以正常使。 |
今日未解决问题 |
如何控制按键使蜂鸣器发出不同声响 |
今日开发收获 |
1.重新了解了什么是单片机 2.明白了如何控制LED灯的闪烁 3.了解了蜂鸣器的工作原理 4.矩阵按键通过对行列判断来实现按键操作 |
自我评价 (是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等) |
虽然今天的任务成功完成,但这是在老师已经给出代码的情况下,如果让我自己编写,感觉自己不能成功的完成任务,对C语言的了解还是不够深,要加强学习。 |
其他 |
无 |
任务一:矩阵键盘中每一个按键控制蜂鸣器的一种声音
#include<reg51.h>
sbit Beep=P2^3;
void delay(x)
{
int i;
while(x--)
{
for(i=0;i<100;i++);
}
}
int key;
int main()
{
while (1)
{
key = 0;
P3 = 0xf0;//判断哪一列被按下
if(P3 != 0xf0)
{
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(2);
Beep=1;
delay(1);
break;
case 2:
Beep=0;
delay(10);
Beep=1;
delay(1);
break;
case 3:
Beep=0;
delay(50);
Beep=1;
delay(1);;
break;
case 4:
Beep=0;
delay(100);
Beep=1;
delay(1);
break;
}
}
return 0;
}