这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 单片机C语言程序设计:4X4矩阵键盘控制条形LED 显示

共1条 1/1 1 跳转至

单片机C语言程序设计:4X4矩阵键盘控制条形LED 显示

高工
2013-10-25 15:49:05     打赏

/* 名称:4X4矩阵键盘控

制条形LED显示

说明:运行本例时,按

下的按键值越大点亮的

LED越多。

*/

#includereg51.h>

#includeintrins.h>

#defineucharunsignedchar

#defineuintunsignedint

//矩阵键盘按键特征码表

ucharcodeKeyCodeTable[]={0x11,0x12,0x14,0x18,0x21,

0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88};

//延时

voidDelayMS(uintx)

{

uchari;

while(x--)for(i=0;i120;i++);

}

//键盘扫描

ucharKeys_Scan()

{

ucharsCode,kCode,i,k;

//4位置0,放入4

P1=0xf0;

//若高4位出现0,则有键按下

if((P10xf0)!=0xf0)

{

DelayMS(2);

if((P10xf0)!=0xf0)

{

sCode=0xfe;

//行扫描码初值

for(k=0;k4;k++)//4行分别进行扫描

{

P1=sCode;

if((P10xf0)!=0xf0)

{

kCode=~P1;

for(i=0;i16;i++)//查表得到按键序号并返回

if(kCode==KeyCodeTable[i])

}return(i);

else

sCode=_crol_(sCode,1);

}

}

}

return(-1);

}

//主程序

voidmain()

{

uchari,P2_LED,P3_LED;

ucharKeyNo=-1;//按键序号,-1表示无按键

while(1)

{

KeyNo=Keys_Scan();//扫描键盘获取按键序号KeyNo

if(KeyNo!=-1)

{

P2_LED=0xff;

P3_LED=0xff;

for(i=0;i=KeyNo;i++)键值越大,点亮的LED越多

{

if(i8)

P3_LED>>=1;

else

P2_LED>>=1;

}

P3=P3_LED; //点亮条形LED

P2=P2_LED;

}

}

}

单片机C语言程序设计:4X4矩阵键盘控制条形LED 显示

扩展阅读:MSP430编程点滴




关键词: 基础知识    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]