微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求助4X4矩阵按键控制16个LED程序(不是数码管)

求助4X4矩阵按键控制16个LED程序(不是数码管)

时间:10-02 整理:3721RD 点击:
求助4X4矩阵按键点亮LED程序,按下按键,相应的lde灯(不是数码管)点亮,放开熄灭,在按下了一个按键相对应的led灯点亮,放开熄灭,C语言程序,谢谢。


这个。自己写吧,对你有好处

这么简单的,自己写练练手

我只是一个菜鸟,做个小电路实验用的,看到单片机通过程序可以实现好多功能,自己只会一点点独立按键控制LED灯的,矩阵按键在网上搜了好多,感觉看天数,所以借助论坛求助。

我只是一个菜鸟,做个小电路实验用的,看到单片机通过程序可以实现好多功能,自己只会一点独立按键控制LED灯的,矩阵按键在网上搜了好多,感觉看天数,所以借助论坛求助。

不要做伸手党!

帮一下初学者,积点德,呵呵,把number改成0或者1,你的端口是P3,比如P3 = 0 OR 1;按键接P1口
/*
        按键扫描函数
*/
void key_handle()
{
        KeyOut1 = 0;
        KeyOut2 = 1;
        KeyOut3 = 1;
        KeyOut4 = 1;
       
        if(KeyIn1 == 0)
        {
                delay_ms(10);
                if(KeyIn1 == 0)
                {
                        P0 = number[0];       
                }
        }
        if(KeyIn2 == 0)
        {
                delay_ms(10);
                if(KeyIn2 == 0)
                {
                        P0 = number[1];       
                }
        }
        if(KeyIn3 == 0)
        {
                delay_ms(10);
                if(KeyIn3 == 0)
                {
                        P0 = number[2];       
                }
        }
        if(KeyIn4 == 0)
        {
                delay_ms(10);
                if(KeyIn4 == 0)
                {
                        P0 = number[3];       
                }
        }
        while((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0)); //第一组按键
        /********************************************************/
        KeyOut1 = 1;
        KeyOut2 = 0;
        KeyOut3 = 1;
        KeyOut4 = 1;
       
        if(KeyIn1 == 0)
        {
                delay_ms(10);
                if(KeyIn1 == 0)
                {
                        P0 = number[4];       
                }
        }
        if(KeyIn2 == 0)
        {
                delay_ms(10);
                if(KeyIn2 == 0)
                {
                        P0 = number[5];       
                }
        }
        if(KeyIn3 == 0)
        {
                delay_ms(10);
                if(KeyIn3 == 0)
                {
                        P0 = number[6];       
                }
        }
        if(KeyIn4 == 0)
        {
                delay_ms(10);
                if(KeyIn4 == 0)
                {
                        P0 = number[7];       
                }
        }
        while((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0)); //第2组按键
        /********************************************************/
        KeyOut1 = 1;
        KeyOut2 = 1;
        KeyOut3 = 0;
        KeyOut4 = 1;
       
        if(KeyIn1 == 0)
        {
                delay_ms(10);
                if(KeyIn1 == 0)
                {
                        P0 = number[8];       
                }
        }
        if(KeyIn2 == 0)
        {
                delay_ms(10);
                if(KeyIn2 == 0)
                {
                        P0 = number[9];       
                }
        }
        if(KeyIn3 == 0)
        {
                delay_ms(10);
                if(KeyIn3 == 0)
                {
                        P0 = number[10];       
                }
        }
        if(KeyIn4 == 0)
        {
                delay_ms(10);
                if(KeyIn4 == 0)
                {
                        P0 = number[11];       
                }
        }
        while((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0)); //第3组按键
        /********************************************************/
        KeyOut1 = 1;
        KeyOut2 = 1;
        KeyOut3 = 1;
        KeyOut4 = 0;
       
        if(KeyIn1 == 0)
        {
                delay_ms(10);
                if(KeyIn1 == 0)
                {
                        P0 = number[12];       
                }
        }
        if(KeyIn2 == 0)
        {
                delay_ms(10);
                if(KeyIn2 == 0)
                {
                        P0 = number[13];       
                }
        }
        if(KeyIn3 == 0)
        {
                delay_ms(10);
                if(KeyIn3 == 0)
                {
                        P0 = number[14];       
                }
        }
        if(KeyIn4 == 0)
        {
                delay_ms(10);
                if(KeyIn4 == 0)
                {
                        P0 = number[15];       
                }
        }
        while((KeyIn1 == 0)||(KeyIn2 == 0)||(KeyIn3 == 0)||(KeyIn4 == 0)); //第4组按键
        /********************************************************/
       
               
}

非常感谢您给我的支持,能不能给我一个完整的源码程序,矩阵按键程序对我来说难啊,谢谢

对你来说是非常简单,对我这些菜鸟级别的来说挺难的

没关系的,谢谢,我只是一个菜鸟,想通过案例学习学习,谢谢

谢谢各位了,有位专家给我发了一份

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top