PIC单片机输出电压这么低?

单片机是PIC16F886;配置位设置为__CONFIG(0X206A);__CONFIG(0X3EFF);程序如下:TRISB=0X00;RB0=0;RB1=1;RB2... 单片机是PIC16F886;

配置位设置为

__CONFIG(0X206A);

__CONFIG(0X3EFF);

程序如下:

TRISB=0X00;

RB0= 0;
RB1= 1;
RB2= 0;
RB3= 1;
RB4= 0;
RB5= 1;
RB6= 0;
RB7= 1;

问题就是,我输出的电压只有RB7为5V,其余的管脚都是0V和0.42V间隔出现,其中RB7,RB1,RB2是空脚;这是什么原因呢?
展开
 我来答
jianghe706
2012-02-16 · TA获得超过5145个赞
知道大有可为答主
回答量:2213
采纳率:77%
帮助的人:813万
展开全部
你的主要问题是,在88X的单片机中,B口中大部分都同时有模拟口的功能,默认时标有ANx的脚为模拟口,所以出现了你说的问题。886的RB0-RB5都同时有模拟输入的功能。为了将这些口设置为数字口,要增加:ANSELH=0xFF;程序就正常了。
还有,你对那些B口的单个脚连续设置为高或低电平可能会有问题:
RB0= 0;
RB1= 1;
RB2= 0;
RB3= 1;
RB4= 0;
RB5= 1;
RB6= 0;
RB7= 1;
要改为:PORTB=0b10101010;
或者在每个引脚输出间加上NOP();语句,这个问题超出你的问题范围。
如果以下的程序还是不对,那肯定是你的硬件问题了。
完整的程序如下,用单步调试运行可以看到B口的电平输出是完全正确的。
#include <pic.h>
__CONFIG(0X206A);
__CONFIG(0X3EFF);

void main(void)
{ TRISB=0X00;
ANSELH=0xFF; // !!!
PORTB=0xFF;
NOP();
PORTB=0;
NOP();
while(1);
}

参考资料: 北航:PIC16系列单片机C程序设计与PROTEUS仿真

艾普斯
2024-07-18 广告
稳频稳压电源哪家好?艾普斯电源(苏州)有限公司开始专业研发、制造及营销交流稳压电源,满足全球电子及信息业对电源设备日益蓬勃的市场需求。迄今为止,业已发展成为交流不间断电源、稳压电源、变频电源、中频航空- 军事专用电源、直流电源、逆变电源等产... 点击进入详情页
本回答由艾普斯提供
qxwan250
2012-02-15
知道答主
回答量:18
采纳率:0%
帮助的人:2.6万
展开全部
和电路以及单片机的特性有关
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式