你好!欢迎来到 !
语言
当前位置: 首页>> 技术中心>> 单片机入门>> 单片机C语言程序设计:4X4矩阵键盘控制条形LED 显示

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

关键字: 4X4 LED 单片机 C语言 作者:admin 来源:不详 发布时间:2018-05-19 浏览:1

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

制条形 LED 显示

说明:运行本例时,按

下 的 按 键 值 越 大 点 亮 的

LED 越多。

*/

#include

#include

#define uchar unsigned char

#define uint unsigned int

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

uchar code KeyCodeTable[]={0x11,0x12,0x14,0x18,0x21,

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

//延时

void DelayMS(uint x)

{

uchar i;

while(x--) for(i=0;i<120;i++);

}

//键盘扫描

uchar Keys_Scan()

{

uchar sCode,kCode,i,k;

//低 4 位置 0,放入 4 行

P1=0xf0;

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

if((P1&0xf0)!=0xf0)

{

DelayMS(2);

if((P1&0xf0)!=0xf0)

{

sCode=0xfe;

//行扫描码初值

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

{

P1=sCode;

if((P1&0xf0)!=0xf0)

{

kCode=~P1;

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

if(kCode==KeyCodeTable[i])

} return(i);

else

sCode=_crol_(sCode,1);

}

}

}

return(-1);

}

//主程序

void main()

{

uchar i,P2_LED,P3_LED;

uchar KeyNo=-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(i<8)

P3_LED>>=1;

else

P2_LED>>=1;

}

P3=P3_LED; //点亮条形 LED

P2=P2_LED;

}

}

}

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

扩展阅读:MSP430编程点滴

编辑:admin 最后修改时间:2018-05-19

联系方式

0755-82591179

传真:0755-82591176

邮箱:vicky@yingtexin.net

地址:深圳市龙华区民治街道民治大道973万众润丰创业园A栋2楼A08

Copyright ? 2014-2023 All Rights Reserved.粤ICP备14043402号-4

Baidu
map