今日学习任务 | 对单片机的初步介绍以及基本知识的学习 |
今日任务完成情况 (详细说明本日任务是否按 计划完成,开发的代码量) | 按照计划和要求,完成当天的学习任务。 1、 单片机的基本认识 2、最小系统(需要电源、晶振、复位电路) 3、尝试写代码进行硬件点灯操作 4、修改代码,实现灯隔一个亮一个的功能 5、修改代码,实现使前两个灯来回闪烁的功能 6、修改代码,实现跑马灯的功能 7、修改代码,实现使灯一个一个亮,前面亮的不要灭的功能 8、编写代码,实现蜂鸣器响的功能 9、修改代码,改变蜂鸣器的音调和声音 10、编写代码,按键控制LED灯(独立按键) 11、矩阵按键 |
今日开发中出现的问题汇总 | 思考如何在基本代码的基础上进行举一反三以及进一步的拓展,使其能够实现更多的功能。 |
今日未解决问题 | 暂无。 作业: 每个按键控制一个蜂鸣器的发生 |
今日开发收获 | 通过今天的学习,我对单片机的一些基础知识有了进一步的了解和认识。在老师的带领下编写了一系列基本的代码来实现一些简单的功能。将理论知识应用于实际操作,通过实践来让自己的知识更加活起来。 |
其他 | 有志者自有千计万计,无志者只感千难万难! |
附
每个按键控制一个蜂鸣器的发生:
#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;
}