折腾无止境 发表于 2017-7-5 10:17

中颖单片机SH79F084A的按键扫描函数?

中颖单片机SH79F084A的按键扫描函数?
while(1)
        {
                //P3_0 = 0;
                if(P1_7 == 0)
                {
                  delayms(20);
                        if(P1_7 == 0)
                        {
                                P3_0 = 1;
                                /*if(P1_6 == 0)
                                {
                                        P3_1 = 1;
      }*/
      }
    }

gx_huang 发表于 2017-7-5 15:04

LS真是折腾无止境

折腾无止境 发表于 2017-8-4 16:27

gx_huang 发表于 2017-7-5 15:04
LS真是折腾无止境

呵呵,没有上拉功能

抱素 发表于 2025-10-14 15:54

SH79F084A 按键扫描函数可设 IO 口为输入,循环读取引脚电平。先延时消抖,对比前后状态,确认按键按下 / 释放。可采用状态机记录按键状态,支持多按键检测,通过返回值区分不同按键,优化扫描频率减少资源占用。

我趴在云边 发表于 2025-10-17 15:18

中颖 SH79F084A 的按键扫描函数通常采用轮询方式:先配置 GPIO 为输入,循环读取按键引脚电平,加入延时消抖(10-20ms),连续检测到电平变化则确认按键状态,区分按下 / 松开,可通过状态机记录按键事件(单击、长按),函数需高效以不阻塞主程序。

桃花落满山前 发表于 2025-10-27 15:45

SH79F084A 按键扫描函数通常采用轮询方式:先配置 IO 口为输入,循环读取按键引脚电平,通过延时消抖(10-20ms)排除干扰。检测到电平变化后,判断按键按下 / 松开状态,记录键值并存入缓冲区,避免重复触发。示例框架含消抖、状态判断及键值返回逻辑,适配独立或矩阵按键。

小岛西岸来信 发表于 2025-11-3 11:43

SH79F084A 的按键扫描函数通常采用轮询方式:先配置按键引脚为输入,循环读取引脚电平。通过延时消抖(约 10-20ms),连续两次两次读取结果一致确认按键状态。区分按下 / 松开动作,记录键值或触发对应处理函数,可配合定时器多按键矩阵扫描,通过行列电平确定按键位置,兼顾效率与准确性

野玫瑰 发表于 2025-11-3 14:01

SH79F084A 按键扫描函数通常采用轮询方式:配置对应 IO 为输入,先拉低列线,读取行线状态;延时消抖后再次读取,两次一致则确认按键。可通过状态机处理长按、短按,或用定时器中断定时扫描,减少 CPU 占用,适配低功耗需求。

水星限定 发表于 2025-11-12 16:16

SH79F084A 按键扫描函数可这样设计:先配置按键对应 IO 为输入,循环读取引脚电平。采用消抖处理,首次检测到电平变化后延时 5-20ms,再次读取确认。记录按键状态,通过状态变化判断按下 / 释放,返回键值或标志位。例:unsigned char KeyScan (){// 配置 IO,读电平,消抖,判断返回}

抱素 发表于 2025-11-13 16:10

SH79F084A 按键扫描函数可采用轮询方式:配置对应 IO 口为输入,循环读取引脚电平,加入消抖延时(如 10ms),连续检测两次相同状态确认按键状态。可通过状态机区分短按、长按,扫描间隔定时器触发,避免占用过多 CPU 资源,函数需简洁高效。

抱素 发表于 2025-11-14 19:13

以下是 SH79F084A 按键扫描函数示例:void KeyScan () {static unsigned char keybuf=0xff;keybuf=(keybuf<<1)|(P3&0x0f); // 假设 P3 低 4 位接按键if (keybuf==0x00) { // 连续 4 次检测到低电平KeyValue=~(P3&0x0f); // 存键值} else if (keybuf==0xff) KeyValue=0;}// 含消抖,通过移位缓冲多次检测确认按键状态。

海边浪漫幻象 发表于 2025-11-19 18:00

SH79F084A 按键扫描函数可采用轮询方式:先配置对应 IO 为输入,读取引脚电平。为消抖,连续两次(间隔 5-20ms)读取相同电平才确认状态。可定义键值变量,按引脚状态赋值,无按键时赋默认值。结合定时器定时触发扫描,避免占用过多 CPU 资源,提升效率。

海边浪漫幻象 发表于 2025-11-19 18:01

SH79F084A 按键扫描函数:配置 IO 为输入,定时(5-20ms)读取引脚电平。两次连续读取相同状态视为有效(消抖),根据引脚定义键值,无按键时赋默认值。用定时器触发扫描,减少 CPU 占用,确保响应可靠,适配独立或矩阵按键。
页: [1]
查看完整版本: 中颖单片机SH79F084A的按键扫描函数?