以前工程师做的板子,程序没了,我重写,发现RA4脚他是这样用的,用来驱动一个LED,我通常以为RA4不应该这样用,不知道他的程序怎么写的,但产品卖了几年都没问题。我写的程序RA4=1时,LED还是亮,加了R1上拉电阻5.1K,还是偶尔会亮。(老工程师原来板子电路中没有R1,只有R0和D0,他的程序没有出现LED不该亮时还亮的情况,我的程序中需要LED不亮时,就令RA4=1,发现还亮,又加了R1,还是偶尔会亮)芯片是pic16f873a
PS:所谓“偶尔会亮”,是指上电时如果不该亮有时会亮,如果在上电时正常,那么在运行中就一直正常,不会不该亮时还亮。
如图,是应该改变R1阻值,还是改写程序?怎么改?请大牛指点,感激不尽。。。
(原文件名:未命名.jpg)
回复【5楼】zbcfscc
-----------------------------------------------------------------------
大哥看电路结构是下拉方式点亮的,高阻态就可以让led灭掉了,r1多余,看看你的模拟量配置寄存器和对应的trisa寄存器配置位吧。这种问题多数出在模拟量配置寄存器上了adcon0和adcon1仔细检查检查吧
-----------------------------------------------------------------------
不好意思,开始我也是这么认为的,但是从数据手册上看这个脚没有模拟输入,设置成输出的话只有开漏输出,设置成输入时是接了施密特触发器的输入,想不通楼主的情况怎么来的。不知道楼主解决了没。
-----------------------------------------------------------------------
前段时间在搞别的问题,没搞这个,没想到还有热心坛友关注,现在问题还是没解决,仍然是在用上拉电阻,明天仔细研究adcon0和adcon1的设置。。。
不过现在led偶尔亮的现象极少见了。。。
片子上别的脚如RA5也这样驱动LED(不同时),但不用加R1就可以。。。
以前工程师做的板子,程序没了,我重写,发现ra4脚他是这样用的,用来驱动一个led,我通常以为ra4不应该这样用,不知道他的程序怎么写的,但产品卖了几年都没问题。我写的程序ra4=1时,led还是亮,加了r1上拉电阻5.1k,还是偶尔会亮。(老工程师原来板子电路中没有r1,只有r0和d0,他的程序没有出现led不该亮时还亮的情况,我的程序中需要led不亮时,就令ra4=1,发现还亮,又加了r1,还是偶尔会亮)芯片是pic16f873a
ps:所谓“偶尔会亮”,是指上电时如果不该亮有时会亮,如果在上电时正常,那么在运行中就一直正常,不会不该亮时还亮。
如图,是应该改变r1阻值,还是改写程序?怎么改?请大牛指点,感激不尽。。。
-----------------------------------------------------------------------
回复【9楼】zwdxsky
不过现在led偶尔亮的现象极少见了。。。
片子上别的脚如ra5也这样驱动led(不同时),但不用加r1就可以。。。
-----------------------------------------------------------------------
1。老工程师电路中没有R1,只有R0和D0,这是对的。
2。既使现在led偶尔亮的现象极少见了,那个R1也要去掉。
3。不该亮时它亮了,已经说明程序存在问题了。
4。检查设置,检查初始化,检查相关部分程序。
-----------------------------------------------------------------------
相关设置如下
TRISA=0x01;
ADCON0=0x81;
ADCON1=0x04;
我说的“不该亮时它亮”指的是运行到RA4=1时它还亮,R1去掉时,led就会百分百亮,不论此时是RA4=1还是RA4=0。。
一周热门 更多>