学习日志 姓名:郭富民 日期:2018/7/16
今日学习任务 |
C51单片机的最小系统,各引脚作用,仿真软件的使用方法。 |
今日认务完成情况 | 基本完成,能跟上老师的进度。 |
今日开发中出现的问题汇总 | 关于C51单片机的一些知识不够了解。 对单片机各引脚的作用不能完整了解。 对流水灯等题目不能立刻想到办法。 对软件的使用方法不够熟练。
|
今日未解决问题 | 无 |
今日开发收获 | 通过今天的实训,让我了解了C51单片机的结构和仿真软件的使用方法。在学习过程中,也遇到了很多问题,但在老师的指导下,还是解决掉了大多数。 |
自我评价 | 我能够认真的对待今天的实训,在老师的指导下,我从中学到了很多关于C51单片机的知识。在遇到问题时,也能够运用自己所掌握的知识,努力克服 |
其他 | 无 |
#include <reg51.h>
sbit Beep=P2^3;
void delay(int itime)
{
int x=100,i;
while(x--)
{
for(i=itime;i>0;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(1);
Beep=1;
delay(1);
break;
case 2:
Beep=0;
delay(3);
Beep=1;
delay(1);
break;
case 3:
Beep=0;
delay(5);
Beep=1;
delay(1);
break;
case 4:
Beep=0;
delay(7);
Beep=1;
delay(1);
break;
case 5:
Beep=0;
delay(9);
Beep=1;
delay(1);
break;
case 6:
Beep=0;
delay(11);
Beep=1;
delay(1);
break;
case 7:
Beep=0;
delay(13);
Beep=1;
delay(1);
break;
case 8:
Beep=0;
delay(15);
Beep=1;
delay(1);
break;
case 9:
Beep=0;
delay(17);
Beep=1;
delay(1);
break;
case 10:
Beep=0;
delay(19);
Beep=1;
delay(1);
break;
case 11:
Beep=0;
delay(21);
Beep=1;
delay(1);
break;
case 12:
Beep=0;
delay(23);
Beep=1;
delay(1);
break;
case 13:
Beep=0;
delay(25);
Beep=1;
delay(1);
break;
case 14:
Beep=0;
delay(27);
Beep=1;
delay(1);
break;
case 15:
Beep=0;
delay(29);
Beep=1;
delay(1);
break;
case 16:
Beep=0;
delay(31);
Beep=1;
delay(1);
break;
}
}
return 0;
}