打印

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

[复制链接]
3129|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
无悔|  楼主 | 2007-2-11 09:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


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

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

使用特权

评论回复
板凳
xieyuanbin| | 2007-2-11 10:38 | 只看该作者

仔细看看数据手册.

初学的总是这样.没时间,看不清你的问题.请将问题关键列出来
首先:PORTA在877中复位后作为AD输入口使用,没看到你将其设置成数字IO口的程序.
其次:RA4作为数字输出的时候要注意,RA4只有开漏输出.只能输出低电平.如果要输出高电平,必须加上拉电阻.
第三,使用BSF,BCF对IO口操作的时候,需要注意有一个"读-修改-写"的过程,关于这个问题,论坛里多的是,请搜索

使用特权

评论回复
地板
无悔|  楼主 | 2007-2-11 13:08 | 只看该作者

谢谢各位

应该是xieyuanbin所说的吧,我确实没有把PORTA设置成数字IO,我再看看,谢谢

使用特权

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

本版积分规则

7

主题

49

帖子

1

粉丝