学习日志 姓名: 王瑶 日期: 2017.07.16
今日学习任务 |
单片机概念原理介绍及仿真软件的使用 |
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
|
本日任务按计划完成 1、仿真环境操作流程。 2、单片机仿真原理。 3、LED灯原理介绍及点亮仿真。 4、蜂鸣器原理介绍及仿真。 5、独立按键与矩阵按键。 6、以上学习均结合编程,编写流水灯程序、蜂鸣器发声程序、按键控制程序若干。 |
今日开发中遇到的问题汇总 |
管脚使用冲突问题 |
今日开发收获 |
|
自我评价 (是否规范完成指定任务,需要改进的地方,与他人合作等。) |
感觉收获很多,以前学过单片机,但对原理什么的弄不太懂,所以代码也不是很理解,但现在结合仿真软件觉得自己可以编写出来一些小程序,收获很大也很有成就感。 |
使用矩阵按键控制蜂鸣器发出不同声音:
#include<reg51.h>
sbit Beep=P2^3;
void delay( int x)
{
int i;
while(x--)
{
for(i=0;i<100;i++);
}
}
void main()
{
int key;
while(1)
{
key=0;
Beep=1;
P3=0xf0;
if(P3!=0)
{
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);break;}
case 2:{Beep=0;delay(5);break;}
case 3:{Beep=0;delay(10);break;}
case 4:{Beep=0;delay(15);break;}
case 5:{Beep=0;delay(20);break;}
case 6:{Beep=0;delay(25);break;}
case 7:{Beep=0;delay(30);break;}
case 8:{Beep=0;delay(35);break;}
case 9:{Beep=0;delay(40);break;}
case 10:{Beep=0;delay(45);break;}
case 11:{Beep=0;delay(50);break;}
case 12:{Beep=0;delay(55);break;}
case 13:{Beep=0;delay(60);break;}
case 14:{Beep=0;delay(65);break;}
case 15:{Beep=0;delay(70);break;}
case 16:{Beep=0;delay(75);break;}
}
}
}