打印
[PIC®/AVR®/dsPIC®产品]

关于pic16f886的RB端口的按键配置问题,!!

[复制链接]
1739|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我把RB2,RB3设置为数字量输入,        硬件RB2,RB3是直接悬空的,与地短接进行判断
        TRISB2=1;
        TRISB3=1;
        ANSELH=0x00;
        RB2=1;
        RB3=1;
然后再大循环里面进行判断
if(RB2==0)
{
    moshi();//在液晶上显示模式
}
if(RB3==0)
{
    hr();//在液晶上显示欢迎
}
上电跑程序之后,RB2,RB3一直是0,也就是在屏幕上显示“模式”和“欢迎”
不明白怎么回事,难道悬空的时候 就是低电平吗?初始化都不行吗?
沙发
Rain_King| | 2013-10-10 14:38 | 只看该作者
你设置了输入了,即使赋值,好像也不可以使之变为高电平,不过你可以采用B端口的内部弱上拉啊...这个就可以使你的RB2和RB3保持高电平...

使用特权

评论回复
板凳
涵潇舒雅|  楼主 | 2013-10-10 14:43 | 只看该作者
Rain_King 发表于 2013-10-10 14:38
你设置了输入了,即使赋值,好像也不可以使之变为高电平,不过你可以采用B端口的内部弱上拉啊...这个就可以 ...

WPUB=0XFF;我使能了内部弱上拉,但是跑程序的时候,还是直接进入条件语句!是这样使能吗???

使用特权

评论回复
地板
Rain_King| | 2013-10-10 14:59 | 只看该作者
涵潇舒雅 发表于 2013-10-10 14:43
WPUB=0XFF;我使能了内部弱上拉,但是跑程序的时候,还是直接进入条件语句!是这样使能吗??? ...

要单独使能任一个上拉,OPTION 寄存器的全局RBPU 位必须清零。这个位设置了没,还有如果引脚被配置为输出,将自动禁止弱上拉。

使用特权

评论回复
5
Rain_King| | 2013-10-10 15:00 | 只看该作者
涵潇舒雅 发表于 2013-10-10 14:43
WPUB=0XFF;我使能了内部弱上拉,但是跑程序的时候,还是直接进入条件语句!是这样使能吗??? ...

另外如果内部弱上拉成功了,你测试B端口的时候,是测出的是高电平....

使用特权

评论回复
6
涵潇舒雅|  楼主 | 2013-10-10 15:05 | 只看该作者
Rain_King 发表于 2013-10-10 15:00
另外如果内部弱上拉成功了,你测试B端口的时候,是测出的是高电平....

我的RBPU位没有置0,所以才不行的,晕死了

使用特权

评论回复
7
涵潇舒雅|  楼主 | 2013-10-10 15:07 | 只看该作者
Rain_King 发表于 2013-10-10 14:59
要单独使能任一个上拉,OPTION 寄存器的全局RBPU 位必须清零。这个位设置了没,还有如果引脚被配置为输出 ...

哥,谢谢啊

使用特权

评论回复
8
Rain_King| | 2013-10-10 15:09 | 只看该作者
帮你解释一下为啥赋值没用,这是我自己的理解,不知道对不对,根据下面的图可以得知,如果将脚设置为输入,你在给RB赋值时,是没法输出去的,就是说写是不成功的,那么你在读的时候,结果还是一样.....不知道这样你理解了没....

QQ截图20131010150718.png (43.26 KB )

QQ截图20131010150718.png

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
ZG11211 + 3 很给力!
9
Rain_King| | 2013-10-10 15:12 | 只看该作者
涵潇舒雅 发表于 2013-10-10 15:07
哥,谢谢啊

叫哥...太客气了......

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

26

主题

164

帖子

1

粉丝