学习日志 | 姓名:孙双 日期:2018/7/16 |
今日学习任务 | 1.什么是单片机 2.近年来推出的51产品 2.80C51的引脚封装 3.LED灯的各种实现 4.蜂鸣器的相关实现 5.独立按键和矩阵按键
|
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) | 1.点亮LED灯 2.调节哪一个LED灯亮 3.跑马灯程序 4.依次点亮跑马灯(前面不灭) 5.按响蜂鸣器 6.按键控制LED
|
今日开发中出现的问题汇总 | 1.最小系统的组成 电源,晶振,复位电路 2.LED程序的各种实现方法 3.矩阵按键的判定: 先确定行:11110000,在确定列:00001111;
|
今日未解决问题 | 每个按键控制蜂鸣器控制一种声音
|
今日开发收获 | 通过今天的学习了解了单片机的相关知识,学会了光与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;
}