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

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

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

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

制条形 LED 显示

说明:运行本例时,按

下 的 按 键 值 越 大 点 亮 的

LED 越多。

*/

#include<reg51.h>

#include<intrins.h>

#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 江南app官方网站下载安卓 All Rights Reserved.  粤ICP备14043402号-4

Baidu
map