****PICC求助,读端口无效?无语了

[复制链接]
 楼主| meihuadipu 发表于 2007-4-15 08:24 | 显示全部楼层 |阅读模式
PIC16F630下编了一个PICC的小程序:<br /><br />RC2和RC1分别用来控制两个灯&nbsp;,为高电平则对应的灯亮,为低则不亮。<br /><br />一个灯是由延时控制RC2电平反相来一亮一灭的,另一个灯是根据RA0的端口电平来判断是否亮的,即RA0为高则RC1输出高电平,灯亮&nbsp;,反之不亮<br /><br />但程序烧写进去后RC2控制的灯可以一亮一灭,但另一个却怎么也不亮,无论给RA0接高电平或低电平<br /><br />#include&nbsp;&ltpic.h&gt<br />__CONFIG&nbsp;(0x0024);&nbsp;&nbsp;&nbsp;//配置字设置<br /><br />delay()<br />{<br />&nbsp;&nbsp;int&nbsp;i,b;<br />&nbsp;&nbsp;for(b=0;b&lt10;b++)<br />&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt10000;i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{;}<br />&nbsp;&nbsp;}<br />}<br /><br />void&nbsp;main()<br />{<br />&nbsp;&nbsp;OSCCAL&nbsp;=&nbsp;_READ_OSCCAL_DATA();&nbsp;&nbsp;//内部振荡校准<br />&nbsp;&nbsp;POR=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除上电复位标志<br />&nbsp;&nbsp;PORTA=0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//端口清零<br />&nbsp;&nbsp;TRISA=0x3f;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置A口为输入<br />&nbsp;&nbsp;TRISC=0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置C口为输出<br />&nbsp;&nbsp;PORTC&nbsp;=0x00;<br />&nbsp;&nbsp;RC2=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//赋初值&nbsp;<br /><br />&nbsp;&nbsp;while(1)<br />&nbsp;&nbsp;{&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delay();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC2=!RC2;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(RA0==1)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RC1=0;<br />&nbsp;&nbsp;}&nbsp;<br />}<br />
chenlung 发表于 2007-4-15 11:51 | 显示全部楼层

re

好好看下datasheet,A口做为多功能口,相关的寄存器也要设置。没记错的话,A口还可以当比较器口用吧。
 楼主| meihuadipu 发表于 2007-4-15 12:45 | 显示全部楼层

哦,就是这个的问题,解决了,谢谢啦

  
liqiinhit 发表于 2007-4-25 14:34 | 显示全部楼层

程序有错!!

兄弟你的程序有一点问题,内部振荡校准是不作用的!<br /><br />请看:http://www.mcubbs.com/bbs/archiver/tid-2894.html
tuu123 发表于 2011-7-1 15:46 | 显示全部楼层
我的比较器关,RA0,RA1,RA2,作为输入口,依然还是低电平,都不知道怎么处理,不知道是不是ICD2的问题,有没有人碰到过这样的问题
yadaovs 发表于 2011-7-5 09:31 | 显示全部楼层
A口未配置成数字输入,始终读的是0
ls_view 发表于 2011-7-21 21:37 | 显示全部楼层
我今天也碰到这个问题了,搞了一个下午。先拿我自己开的板子,搞不定;拿开发板,搞不定,我开始怀疑是不是我的仿真器坏了。然后,测了数据线也都是好的,那个汗啊!最后拿Proteus试,还是读不进来,PORTA和PORTE总是0。一切努力证明,还是设置的不对。
最后发现,要把ADCON1设置一下,最后四位设成011X,A和E口就可以读入了。因为,PORTA和PORTE都可作为ADC端口用的。参考一下,有关ADC的资料章节。
谈的元 发表于 2011-7-21 23:05 | 显示全部楼层
哈哈,多人都在AD口上出问题啊
yewuyi 发表于 2011-7-22 09:12 | 显示全部楼层
不仔细看数据手册,那上帝也没有办法。
王金龙ARM 发表于 2011-7-28 15:36 | 显示全部楼层
我第一次用PIC16F886的时候也是这个问题,后来看手册才知道是ANSEL没有设置,浪费了一下午的时间。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

14

帖子

0

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