打印
[MCU]

PIC16F1518 复用I/O口(接PNP三极管)输出高只有3.4V

[复制链接]
3387|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 robin_chen559 于 2014-8-19 19:49 编辑

端口初始化
TRISA  = 0b00000000;     //设置端口A输出
ANSELA = 0b00000000;     //数字IO模式

已经设置为数字IO输出了呀



源程序及仿真包: 1518 Damo.rar (451.94 KB)



相关帖子

沙发
yklstudent| | 2014-8-19 16:59 | 只看该作者
多半是你自己的问题

使用特权

评论回复
板凳
robin_chen559|  楼主 | 2014-8-19 19:48 | 只看该作者
yklstudent 发表于 2014-8-19 16:59
多半是你自己的问题

或许吧,规格书仔细看下,慢慢在找~~~

使用特权

评论回复
地板
gx_huang| | 2014-8-19 20:04 | 只看该作者
输出3.4V,是GPIO还是三极管的集电极?
是否三极管的管脚搞错了?放大倍数不够?

使用特权

评论回复
5
ningling_21| | 2014-8-19 20:20 | 只看该作者
IO和三极管断开时输出高有多少伏?

使用特权

评论回复
6
lyjian| | 2014-8-19 20:40 | 只看该作者
16F518的供电几伏?

使用特权

评论回复
7
robin_chen559|  楼主 | 2014-8-19 20:59 | 只看该作者
IO 3.4V PNP三极管 C极电压2.3V

使用特权

评论回复
8
robin_chen559|  楼主 | 2014-8-19 21:18 | 只看该作者
lyjian 发表于 2014-8-19 20:40
16F518的供电几伏?

正常电压5V 给PNP三极管E脚供电的也是5V
RA4同样配置输出是5V,这才感觉有些奇怪~~~

使用特权

评论回复
9
xyz1015231411| | 2014-8-19 23:32 | 只看该作者
进来学习一下

使用特权

评论回复
10
robin_chen559|  楼主 | 2014-8-20 12:16 | 只看该作者
gx_huang 发表于 2014-8-19 20:04
输出3.4V,是GPIO还是三极管的集电极?
是否三极管的管脚搞错了?放大倍数不够? ...

两排LED分开供电 分别由RA4 RA5控制的

5V 通过PNP给LED供电

两个口的配置是一样的,电阻三极管也是一样的

但是RA4是T0CKI复用的 出现了这个问题

而RA5是正常的 高电平输出5V

使用特权

评论回复
11
robin_chen559|  楼主 | 2014-8-20 12:19 | 只看该作者
gx_huang 发表于 2014-8-19 20:04
输出3.4V,是GPIO还是三极管的集电极?
是否三极管的管脚搞错了?放大倍数不够? ...

这边有两排LED 分别是通过RA4 RA5控制PNP三级管给供电的

RA4和T0CKI复用 出现了这个问题

RA5是正常的 高电平输出的是5V

看特殊寄存器也没有发现专门对RA4配置的呀  有些奇怪

使用特权

评论回复
12
gx_huang| | 2014-8-20 12:33 | 只看该作者
robin_chen559 发表于 2014-8-20 12:16
两排LED分开供电 分别由RA4 RA5控制的

5V 通过PNP给LED供电

是否没有初始化ANSELA/B这个寄存器?
你肯定没有仔细看数据手册,关于GPIO这部分的,有参考代码的。

使用特权

评论回复
13
gx_huang| | 2014-8-20 12:38 | 只看该作者
参考:
        PORTA=0xff;
        PORTB=0xc0;
        PORTC=0xff;
        ANSELA=0x21;
        ANSELB=0x00;
        TRISA=0x3f;
        TRISB=0xf0;
        TRISC=0x90;
        //1=IN,0=OUT

使用特权

评论回复
14
cjseng| | 2014-8-20 14:48 | 只看该作者
本帖最后由 cjseng 于 2014-8-20 14:53 编辑

三极管的放大倍数是多少?
计算一下好了,基极电流约0.4-0.5mA,放大倍数100倍的话,输出也就40-50mA,在500欧姆电阻上产生的压降约2-2.5v,加上光耦的导通压降1.1-1.3V,加起来差不多就是3.4V啊。
实际上40-50mA的电流,对于光耦输入来说,已经快到极限了。
这个应用,三极管都不是必须的,直接用IO驱动光耦就行了。

使用特权

评论回复
15
robin_chen559|  楼主 | 2014-8-20 15:26 | 只看该作者
cjseng 发表于 2014-8-20 14:48
三极管的放大倍数是多少?
计算一下好了,基极电流约0.4-0.5mA,放大倍数100倍的话,输出也就40-50mA,在50 ...

恩 是的

不过问题不是驱不动 是关不掉

输出1的时候应该PNP管截止的 现在关不掉

使用特权

评论回复
16
robin_chen559|  楼主 | 2014-8-20 15:28 | 只看该作者
gx_huang 发表于 2014-8-20 12:38
参考:
        PORTA=0xff;
        PORTB=0xc0;

好 谢谢 试试看~~~

使用特权

评论回复
17
cjseng| | 2014-8-20 17:03 | 只看该作者
关不掉的话,在三极管的基极跟发射极之间加一个电阻试试。

使用特权

评论回复
18
robin_chen559|  楼主 | 2014-8-20 17:10 | 只看该作者
cjseng 发表于 2014-8-20 17:03
关不掉的话,在三极管的基极跟发射极之间加一个电阻试试。

这个板上是有的,4.7K的电阻,示意图上没有,谢谢~~~~

使用特权

评论回复
19
cjseng| | 2014-8-20 17:22 | 只看该作者
负载是什么?
如果负载很轻的话,RC吸收电路也会漏电的。

使用特权

评论回复
20
robin_chen559|  楼主 | 2014-8-20 19:07 | 只看该作者
cjseng 发表于 2014-8-20 17:22
负载是什么?
如果负载很轻的话,RC吸收电路也会漏电的。

恩,这个初级光耦那边RA5没有截止,输出1 应该是5V截止的,现在才有3.4V,光耦VF是打开着的

使用特权

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

本版积分规则

22

主题

302

帖子

10

粉丝