学习日志 姓名: 赵鹏 日期:2018.7.16
今日学习任务 | 安装单片机软件,单片机及其应用 |
今日任务完成情况 | 本日任务按照老师要求完成 |
今日开发中出现的问题汇总 | 延迟函数不完整,在运用仿真软件时调试出错,c语言代码编写不熟练,LED灯不按设计要求显示 |
今日未解决问题 | 基本解决 |
今日开发收获 | 1 定义LED与P1的接口 2 运用c语言函数编译控制LED的显示 3 delay函数设置延时程序 4 delay函数控制LED的显示。按要求让LED循环点亮 5 利用c语言编写函数控制蜂鸣器 6 利用c语言编写程序控制开关,当开关被按下时对应的LED会亮 7编写程序显示被按下的开关的位置,按键电路的分析 |
自我评价 | 按老师的要求完成所有代码的编写,单片机虽然刚学但并没有完全弄懂,这次实训是个巩固知识的机会,遇到困难时,和别人相互交流获得很多帮助。 |
其他 | 无 |
#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;
}
}
}