2022-05-26

1.功能描述

2程序

#include <REGX51.H>

#include "INTRINS.H"

#define uchar unsigned char

#define uint unsigned int

//sbit P1_0=P1^0;

//sbit P1_1=P1^1;

//sbit P1_2=P1^2;

//sbit P1_3=P1^3;

sbit LED=P2^0;

uchar code D[]={9,8,0,4,1,7,};

void delay(uint ms)

{

uchar i;

while(ms--)

{

for(i=0;i<125;i++);

}

}

uchar KeyV()

{

uchar key,key_value,a;

P1=0x0f;

if(P1==0x0f)

return(0);

else

{

delay(10);

if(P1==0x0f)

return(0);

for(a=0;a<4;a++)

{

P1=_cror_(0x7f,a);

if(P1_0==0) break;

if(P1_1==0) break;

if(P1_2==0) break;

if(P1_3==0) break;

}

key=P1;

for(;P1!=0x0f;P1=0x0f)

{;}

switch(key)

{

case 0xee:key_value=1;break;

case 0xed:key_value=2;break;

case 0xeb:key_value=3;break;

case 0xe7:key_value=4;break;

case 0xde:key_value=5;break;

case 0xdd:key_value=6;break;

case 0xdb:key_value=7;break;

case 0xd7:key_value=8;break;

case 0xbe:key_value=9;break;

case 0xbd:key_value=10;break;

case 0xbb:key_value=11;break;

case 0xb7:key_value=12;break;

case 0x7e:key_value=13;break;

case 0x7d:key_value=14;break;

case 0x7b:key_value=15;break;

case 0x77:key_value=16;break;

default:;break;

}

return(key_value);

}

}

void main(void)

{

uchar key_value=0xff;

while(1)

{

while(key_value!=D[0])

{key_value=KeyV();}

while(key_value!=D[1])

{key_value=KeyV();}

while(key_value!=D[2])

{key_value=KeyV();}

while(key_value!=D[3])

{key_value=KeyV();}

while(key_value!=D[4])

{key_value=KeyV();}

while(key_value!=D[5])

{key_value=KeyV();}

while(key_value!=16)

{key_value=KeyV();}

LED=0;

}

}

3,原理圖


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容