标题: 请教一个检测独立按键问题 [打印本页]

作者: linwanxiang    时间: 2023-1-16 17:23
标题: 请教一个检测独立按键问题
本帖最后由 linwanxiang 于 2023-1-16 18:19 编辑

本人菜鸟,向各位高手请教一个问题:
这是一款辉芒微单片机,在检测按键时失败,一上电,LED1一直亮,6脚一直是低电平,没有高电平,是电路出现错误,还是程序错误。


(省略了消抖等代码如下)

#include "SYSCFG.h"
#define LED1 PC2         //LED1
#define SWITCH PA1    //按键开关
void POWER_INITIAL();
main()
{
    POWER_INITIAL();
    while(1)
     {               
        if(SWITCH==0)
        LED1=1;
     }   
}
void POWER_INITIAL()
{
    OSCCON=0B01110001; //IRCF=111=16MHz/2T=8MHz,0.125μs
    INTCON=0;
    TRISC2=0;      //LED1 设置为输出
    TRISA1=1;     //按键开关设置为输入
    WPUA1=1;    //开上拉
    LED1=0;   
}



作者: xuyaqi    时间: 2023-1-17 08:20
按键1处要有上拉电阻。
作者: hb_lhw    时间: 2023-1-17 08:32
引脚输入状态时是个弱下拉,可以在引脚外接一个上拉电阻。
作者: wufa1986    时间: 2023-1-17 10:40
没用过这款,但是感觉是仿PIC的,应该还要启用全局上拉允许,上拉才有效
作者: wufa1986    时间: 2023-1-17 10:43
另外还要关闭AN1模拟输入功能
作者: linwanxiang    时间: 2023-1-17 11:40
加了一个10K电阻,万用表量6脚有3.3V,另外ANSEL1=0,也关闭了,试了一下,还不行,
作者: linwanxiang    时间: 2023-1-17 11:42
加了一个上拉10K电阻,用万用表量了6脚,有3.3V电压,ANSEL1=0,也关闭了,试了一下,还不行。
作者: linwanxiang    时间: 2023-1-17 13:07
wufa1986 发表于 2023-1-17 10:40
没用过这款,但是感觉是仿PIC的,应该还要启用全局上拉允许,上拉才有效

感谢大佬,开启了全局上拉,问题解决了,外接电阻也撤掉了。
1、开启了全局上拉
2、撤掉了外接上拉电阻,靠内部上拉,也可以
3、关闭了比较器和AN1的输入
作者: linwanxiang    时间: 2023-1-17 13:07
wufa1986 发表于 2023-1-17 10:43
另外还要关闭AN1模拟输入功能

感谢大佬,开启了全局上拉,问题解决了,外接电阻也撤掉了。
1、开启了全局上拉
2、撤掉了外接上拉电阻,靠内部上拉,也可以
3、关闭了比较器和AN1的输入
作者: 李冬    时间: 2023-1-17 14:50
按键坏了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1