0
2
¥ 39.00
开通会员,立省3.90元, 立即开通
立即购买

你将收获

本课程为零基础学习系列,只要是对物联网、单片机、嵌入式等课题感兴趣的同学均可以进行学习。

适用人群

所有人

课程介绍

本课程是《朱有鹏老师单片机完全学习系列课程》第1季第9个课程,综合解决了独立按键和矩阵式按键的处理方法,涉及到:IO的输入输出、按键抖动和消抖、中断的引入和相关概念、矩阵式键盘的原理和编程等。目的是对单片机常见输入设备按键进行全方位学习。

课程讨论

emmmmmmmmmm

同学笔记

  • weixin_39216189 2020-05-22 10:46:05

    来源:1.9.3.键值检测与显示 查看详情

    按键的检测部分和处理部分 都是隔开的 ,有利于程序的编写 

  • weixin_39216189 2020-05-21 23:34:26

    来源:1.9.2.独立按键编程 查看详情

    8个独立按键接法一样, 一端GND    ,一段io口 。每个按键对应每个接口。

    先监测一个按键 ,使用轮询法,MCU再循环中每隔很短时间就监测K1对应的P1.0引脚的输入电平是1还是0,如果是1则表示按键没有按下,延时等待下次,若是0表示按键按下,点亮一颗LED作为指示。

     

    独立按键 彼此独立 同时按下不受影响

    矩阵按键不能多个同时按下。

  • Sytx_ 2020-02-12 20:45:19

    来源:1.9.9.矩阵键盘编程实战 查看详情

    #include<reg51.h>
    
    #define LED P0
    
    #define KEY P3
    
    unsigned char val[16] = {};//暂时省略
    void main(void)
    {
        unsigned char keyValue = 0;
        while(1)
        {
            keyValue = getkey();
            LED = val[keyValue];
        }
    }
    
    unsigned char getValue(void)
    {
        unsigned char hang=0,lie=0,keyValue = 0;
        KEY = 0x0f;
        if(KEY != 0x0f)
        {
            delay10ms();  //暂不实现
            switch(KEY)
            {
                case 0x0e: hang = 1; break;
                case 0x0d: hang = 2; break;
                case 0x0b: hang = 3; break;
                case 0x07: hang = 4; break;
            }
            KEY = 0xf0;
        }
        if (KEY != 0xf0)
        {
            switch(KEY)
            {
                case 0xe0: lie = 1; break;
                case 0xd0: lie = 2; break;
                case 0xb0: lie = 3; break;
                case 0x70: lie = 4; break;
                default:                  break;
            }
        }
        keyValue = (hang -1) *4 + lie;
        return keyValue;
    }

     

没有更多了