刚发现PIC的一个怪异的问题,求助

[复制链接]
 楼主| 无悔 发表于 2007-2-11 09:23 | 显示全部楼层 |阅读模式
<br /><br />程序:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;00H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;START<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ORG&nbsp;20H<br />START:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;STATUS,5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;14H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;TRISA<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BCF&nbsp;STATUS,5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVLW&nbsp;08H<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MOVWF&nbsp;PORTA<br />LOOP:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BTFSC&nbsp;PORTA,4<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;LOOP<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BSF&nbsp;PORTA,0<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GOTO&nbsp;&nbsp;$&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;GOTO&nbsp;START<br />&nbsp;<br />;电路和条件:<br />;PIC16F877A:&nbsp;&nbsp;&nbsp;&nbsp;VCC=4.64V,4.7K电阻22PF电容,配置位:&nbsp;&nbsp;L:FF;H:3F&nbsp;芯片代码:0E28<br />;RA3=1;RA5=0之间接104电位器两个定端子,RA4为输入并串接1K电阻<br />;RA0=0-&gtRA1=0之间接一个LED+1K电阻<br />出现的问题:<br />;RA4=3.167V,<br />;表笔碰RA4,则RA3=0,RA0=1(LED亮)持续1S左右后,RA0=0,RA3=1,且复位可使RA0=0,RA3=1<br />;RA4电压值减小,则LED可常亮,但仍为RA3=0.<br />;RA4到RA5之间的电阻越小以上情况越容易出现,LED越不容易灭.反之以上情况越不容易出现,4.43V的时候很难出现该情况.<br />当最后一句换成GOTO&nbsp;START后的情况:<br />;LED灭的时候:RA4=2.86V;LED亮的时候:RA4=0.791V,RA3=1.265V.&nbsp;&nbsp;其中RA4能随电位器正向变化,无表笔接触则将近1S左右灭(时间不定),有表笔接触则持续时间长<br />;LED灯亮时,其相应端口为:RA0=3.253V,RA1=0.04V<br />;手碰引脚均没发现有影响,只有用金属线碰才起作用<br />LED亮灭与程序逻辑不相符,IO电平无原由的变化,求高手给予指点.
yezhenyu 发表于 2007-2-11 10:34 | 显示全部楼层

LZ能不能上传图啊,文字说明看的太累了。

  
xieyuanbin 发表于 2007-2-11 10:38 | 显示全部楼层

仔细看看数据手册.

初学的总是这样.没时间,看不清你的问题.请将问题关键列出来<br />首先:PORTA在877中复位后作为AD输入口使用,没看到你将其设置成数字IO口的程序.<br />其次:RA4作为数字输出的时候要注意,RA4只有开漏输出.只能输出低电平.如果要输出高电平,必须加上拉电阻.<br />第三,使用BSF,BCF对IO口操作的时候,需要注意有一个&quot;读-修改-写&quot;的过程,关于这个问题,论坛里多的是,请搜索
 楼主| 无悔 发表于 2007-2-11 13:08 | 显示全部楼层

谢谢各位

应该是xieyuanbin所说的吧,我确实没有把PORTA设置成数字IO,我再看看,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

49

帖子

1

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