学习日志 姓名: 王瑶 日期: 2017.07.17
今日学习任务 |
用矩阵按键控制LED灯按二进制形式点亮设计。 |
今日任务完成情况 (详细说明本日任务是否按计划完成,开发的代码量。)
|
基本按照要求完成,可以实现1~255范围内的按照二进制点亮操作,但有些地方完成的还不是特别好,比如总是会有其他的地方不按照设想的样子点亮。 |
今日开发中遇到的问题汇总 |
|
今日开发收获 |
|
自我评价 (是否规范完成指定任务,需要改进的地方,与他人合作等。) |
实际操作还是很有必要的,而且在这个不断发现错误更改错误的过程中也可以收获很多。 |
用矩阵按键控制LED灯按二进制形式点亮:
#include<reg51.h>
#define LED P0
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
void main()
{
int key,i, k[8];
while(1)
{
key=0;
LED=0xff;
P3=0xf0;
do{
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+=0;break;
case 0x0d:key+=4;break;
case 0x0b:key+=8;break;
default:break;
// case 0x07:key=key+12;break;
}
}
}while(P3!=0x07);
if(P3==0x07)
{
key=key-3;
for(i=0;i<8;i++)
{
k[i]=~(key%2);
key/=2;
}
led1=k[0];
led2=k[1];
led3=k[2];
led4=k[3];
led5=k[4];
led6=k[5];
led7=k[6];
led8=k[7];
}
}
}