STC8单片机学习2

本文介绍了STC8单片机中三种按键检测方法:扫描法、中断法和中断捕获法。扫描法需注意时延消除抖动;中断法包括STC8与STC15W的区别,并涉及中断寄存器配置;中断捕获法利用PCA模块,需配置时钟和判断标志位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 扫描法实现按键检测

1.   P35 .P36. P37三个引脚上各自并联了1个电容,所以设备在上电的时候,会短暂的导通。也就会出现低电平。 扫描法要判断引脚电平,就会出现误判。时延可以去除掉这个干扰。

2.注意按下按键,循环会不停执行。那样就会不断发生位倒换计算,结果不一定是预期结果。所以要确保按键抬起前,循环没有结束。这个就需要while();来帮忙。


void  main(void)
{
    P0M0 = 0x00;
    P0M1 = 0x00;
    P3M0 = 0x00;
    P3M1 = 0x00;
    
    LED_RED = 1;
    LED_GREEN = 1;
    LED_YELLOW = 1;
    while(1)
    {
            
    if(K1 == 0)
    {
        delay_ms(10);  //时延不能太长,不然要按很久灯才会亮。
        if(K1 ==0){           //也不能太短,太短没法拦截抖动
         LED_RED = !LED_RED;
        }
        while(! K1);  //按下后K1为0,抬起前while(1); 会不断循环直到抬起,

                            // 抬起后!K1 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值