求助PIC-I/O口问题

[复制链接]
5425|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口上就能同时亮了。忘各位老师指点一下。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
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 | 显示全部楼层
仿真软件有时候也不一定对吗?可能我设置的不对。。。。。
yewuyi 发表于 2010-8-2 11:46 | 显示全部楼层
请以数据手册为准,具体请查对应型号的手册确认。
xymxym 发表于 2010-8-2 14:33 | 显示全部楼层
加大限流电阻.
XIEYUANBIN 发表于 2010-8-2 16:09 | 显示全部楼层
端口的“读-修改-写”问题
zjswuyunbo 发表于 2010-8-2 16:28 | 显示全部楼层
RA4可能是开漏结构,即不会输出电流。。。
记得PIC有一个口是这样子的。。
Mary_luo 发表于 2010-8-2 16:29 | 显示全部楼层
楼主在哪里啊?可否QQ聊?
杜专 发表于 2010-8-2 22:40 | 显示全部楼层
RA4  输出是集电极开路
skygrow 发表于 2010-8-3 10:44 | 显示全部楼层
proteus仿真?
pic16的片子大都RA4为开漏结构,查查数据手册,输出要接上拉
 楼主| 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门。。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
yewuyi 发表于 2010-8-3 13:40 | 显示全部楼层
一切以手册为准。
 楼主| 21ID 发表于 2010-8-3 15:32 | 显示全部楼层
一切以手册为准。
yewuyi 发表于 2010-8-3 13:40
yewuyi老师,不用重复回答的,我明白你的意思了
xymxym 发表于 2010-8-4 10:05 | 显示全部楼层
限流电阻限值太小了,LED的工作电压大约1.7V,按2V算,也已经超出了25mA的端口电流,加上它的"读修改写"问题,结果就是这样...
 楼主| 21ID 发表于 2010-8-4 10:16 | 显示全部楼层
限流电阻限值太小了,LED的工作电压大约1.7V,按2V算,也已经超出了25mA的端口电流,加上它的"读修改写"问题,结果就是这样...
xymxym 发表于 2010-8-4 10:05
但实际电路是可以的。。。
skygrow 发表于 2010-8-4 12:32 | 显示全部楼层
不是OD门
watch窗口看到的RA4,RA5是多少呢?如果都为高,那就是protues的不是啦
fxe2008 发表于 2010-8-4 13:17 | 显示全部楼层
关比较器,cmcon不用设置吗?
 楼主| 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的可能性比较大。。。
 楼主| 21ID 发表于 2010-8-4 15:34 | 显示全部楼层
限流电阻限值太小了,LED的工作电压大约1.7V,按2V算,也已经超出了25mA的端口电流,加上它的"读修改写"问题,结果就是这样...
xymxym 发表于 2010-8-4 10:05
LED工作电流大影响的是它的寿命,读修改写问题,我这里没有涉及到状态变化。2方面都是不原因吧,愿听高解。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

157

主题

912

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部