打印

求助PIC-I/O口问题

[复制链接]
4052|24
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
21ID|  楼主 | 2010-8-2 10:13 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 21ID 于 2010-8-2 10:44 编辑

main()
{  
while(1)
{
    LED1 = 1;  //RA5
    LED2 = 1;  //RA4
     asm("clrwdt");
}
}
RA5和RA4分别接LED灯,为什么同一时间只能一个灯亮。如下图。
A口的初始化如下:
ANSEL=0x01;
TRISA = 0x0f;
PORTA = 0x00;
上面程序只是一部分,程序中用到了TMR1和TMR0,内部4M。
非常的不明白为什么现象是RA4和RA5交替输出高电平,把LED1和LED2接到C口上就能同时亮了。忘各位老师指点一下。。

9090.jpg (42.03 KB )

9090.jpg
沙发
yewuyi| | 2010-8-2 10:39 | 只看该作者
RA4没有高电平输出,请看手册中有关RA4的描述

使用特权

评论回复
板凳
21ID|  楼主 | 2010-8-2 10:43 | 只看该作者
RA4没有高电平输出,请看手册中有关RA4的描述
yewuyi 发表于 2010-8-2 10:39
不是RA4没有高电平输出,是RA4和RA5交替输出高电平。图中时刻刚好是RA5高电平

使用特权

评论回复
地板
21ID|  楼主 | 2010-8-2 11:09 | 只看该作者
仿真软件有时候也不一定对吗?可能我设置的不对。。。。。

使用特权

评论回复
5
yewuyi| | 2010-8-2 11:46 | 只看该作者
请以数据手册为准,具体请查对应型号的手册确认。

使用特权

评论回复
6
xymxym| | 2010-8-2 14:33 | 只看该作者
加大限流电阻.

使用特权

评论回复
7
XIEYUANBIN| | 2010-8-2 16:09 | 只看该作者
端口的“读-修改-写”问题

使用特权

评论回复
8
zjswuyunbo| | 2010-8-2 16:28 | 只看该作者
RA4可能是开漏结构,即不会输出电流。。。
记得PIC有一个口是这样子的。。

使用特权

评论回复
9
Mary_luo| | 2010-8-2 16:29 | 只看该作者
楼主在哪里啊?可否QQ聊?

使用特权

评论回复
10
杜专| | 2010-8-2 22:40 | 只看该作者
RA4  输出是集电极开路

使用特权

评论回复
11
skygrow| | 2010-8-3 10:44 | 只看该作者
proteus仿真?
pic16的片子大都RA4为开漏结构,查查数据手册,输出要接上拉

使用特权

评论回复
12
21ID|  楼主 | 2010-8-3 12:06 | 只看该作者
本帖最后由 21ID 于 2010-8-3 12:21 编辑

谢谢楼上的各位,我之前也考虑过上拉,也接过上拉。还是RA4和RA5轮流输出高电平。这个是proteus仿真的结果。
实际接上电路,烧进程序后RA4和RA5能同时输出高电平,而且没有接上拉。。。
至于什么原因还不知道,望各位能帮忙分析一下,大家讨论讨论。。

Each of the PORTA pins, except RA3, has an individually
configurable weak internal pull-up. Control bits
WPUAx enable or disable each pull-up. Refer to
Register 3-3. Each weak pull-up is automatically turned
off when the port pin is configured as an output. The
pull-ups are disabled on a Power-on Reset by the
RAPU bit (OPTION<7>).

上面是16F676介绍I/O口里的一段,配置成输出时确实没有上拉了,那么下图中我看不出来是OD门。。

8080.jpg (51.1 KB )

8080.jpg

使用特权

评论回复
13
yewuyi| | 2010-8-3 13:40 | 只看该作者
一切以手册为准。

使用特权

评论回复
14
21ID|  楼主 | 2010-8-3 15:32 | 只看该作者
一切以手册为准。
yewuyi 发表于 2010-8-3 13:40
yewuyi老师,不用重复回答的,我明白你的意思了

使用特权

评论回复
15
xymxym| | 2010-8-4 10:05 | 只看该作者
限流电阻限值太小了,LED的工作电压大约1.7V,按2V算,也已经超出了25mA的端口电流,加上它的"读修改写"问题,结果就是这样...

使用特权

评论回复
16
21ID|  楼主 | 2010-8-4 10:16 | 只看该作者
限流电阻限值太小了,LED的工作电压大约1.7V,按2V算,也已经超出了25mA的端口电流,加上它的"读修改写"问题,结果就是这样...
xymxym 发表于 2010-8-4 10:05
但实际电路是可以的。。。

使用特权

评论回复
17
skygrow| | 2010-8-4 12:32 | 只看该作者
不是OD门
watch窗口看到的RA4,RA5是多少呢?如果都为高,那就是protues的不是啦

使用特权

评论回复
18
fxe2008| | 2010-8-4 13:17 | 只看该作者
关比较器,cmcon不用设置吗?

使用特权

评论回复
19
21ID|  楼主 | 2010-8-4 15:32 | 只看该作者
不是OD门
watch窗口看到的RA4,RA5是多少呢?如果都为高,那就是protues的不是啦
skygrow 发表于 2010-8-4 12:32
debug和实际电路都是高,就是proteus里面不能同时为高。但在proteus里把RA4和RA5换成RC4和RC5是可以同时为高。看来proteus的可能性比较大。。。

使用特权

评论回复
20
21ID|  楼主 | 2010-8-4 15:34 | 只看该作者
限流电阻限值太小了,LED的工作电压大约1.7V,按2V算,也已经超出了25mA的端口电流,加上它的"读修改写"问题,结果就是这样...
xymxym 发表于 2010-8-4 10:05
LED工作电流大影响的是它的寿命,读修改写问题,我这里没有涉及到状态变化。2方面都是不原因吧,愿听高解。

使用特权

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

本版积分规则

157

主题

912

帖子

5

粉丝