苏嵌学习日志7.16
姓名:李璐 日期:7.16
今日学习任务 | 单片机的背景介绍,proteus的使用及原理图部分功能的讲解 |
今日任务完成情况 |
今日任务已基本完成 1.原理图功能介绍 2.LED的代码编写及控制,实现流水灯功能 3.蜂鸣器的代码编写及控制 4.矩阵键盘的代码编写及控制 5.多方式控制LED的亮灭 |
今日开放中出现的问题汇总 | 今天主要是安装软件及使用过程问题较多,但已解决 |
今日未解决问题 | 无 |
今日开发收获 | 今天学习了单片机的部分功能,如何通过代码来控制蜂鸣器、LED、矩阵键盘等。基本能跟的上,但是有的内容还需细细消化理解 |
自我评价 | 今天信息量有点大,但基本能跟得上。学会了单片机的基本操作,如控制蜂鸣器的发生、LED灯亮灭的方式、矩阵键盘控制LED灯,收获颇丰 |
题目:矩阵键盘中一个按键控制蜂鸣器的一种声音
#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;
}