学习日志 7月16日 张蓉婷
今日学习任务 | 1.什么是单片机 2.近年来推出的51产品 2.80C51的引脚封装 3.仿真环境操作流程。 4.单片机仿真原理。 5.LED灯原理介绍及点亮仿真。 6.蜂鸣器原理介绍及仿真。 7.独立按键与矩阵按键。 8.以上学习均结合编程,编写流水灯程序、蜂鸣器发声程序、按键控制程序若干。
|
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) | 1.点亮LED灯 2.调节哪一个LED灯亮 3.跑马灯程序 4.依次点亮跑马灯(前面不灭) 5.按响蜂鸣器 6.按键控制LED
|
今日开发中出现的问题汇总 | 1.最小系统的组成:电源,晶振,复位电路 2.流水灯可以用移位实现 3.矩阵按键的判定:先确定行再确定列;
|
今日未解决问题 | 无
|
今日开发收获 | 今天学习了单片机的基础内容,虽然大二刚学过单片机,但是学习的都是理论知识,并不能完全理解,以致于单片机学的很差。。。通过今天的学习,我发现书本上的那些程序我能够有一些的理解,很开心,希望在以后的学习里收获更多。
|
每个按键控制蜂鸣器控制一种声音
#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;
}