Microchip
直播中

王玉兰

7年用户 1280经验值
私信 关注
[问答]

PIC16F887 DOOR反转?

HIwilliam hill官网 ,我有一个奇怪的问题与我的PIC16F87,无论我写什么给波尔塔反转。如果我写0引脚高,如果我写1引脚低。我已经在数据表上过了好几次,但都不知道什么样的寄存器或位我错过了设置/清除我使用一个非常简单的代码来设置POTA:它调用下面的查找表:当滚动查找表时,代码工作正常。但不是1高引脚和7低,我有1低引脚和7高。这不是什么大问题,因为我可以在使用波尔塔之前使用反相W,但是让我感到沮丧的是我看不到我错过了什么。有人有答案吗?

以上来自于百度翻译


      以下为原文

    Hi Forum,

I have a strange issue with my PIC16F887 where whatever I write to PORTA gets inverted. If i write 0 the pin goes high, if i write 1 the pin goes low. I've been over the datasheet several times but can't figure out what register or bit i missed to set/clear

I'm using a very simple code to set PORTA:


SetLeds


         bcf    STATUS, RP0


         bcf    STATUS, RP1


         movf   currentOctA,w


         call   GetLedPort


         movwf  PORTA


         return




which call the following lookup table:
GetLedPort


        andlw   b'00000111'


        movwf   lookuptemp


        movlw   HIGH tblLeds


        movwf   PCLATH


        movfw   lookuptemp


        addlw   LOW tblLeds


        btfsc   STATUS,C


        incf    PCLATH, F


        movwf   PCL








tblLeds


        dt  b'00000001'


        dt  b'00000010'


        dt  b'00000100'


        dt  b'00001000'


        dt  b'00010000'


        dt  b'00100000'


        dt  b'01000000'


        dt  b'00000000'




The code works as expected when scrolling through the lookup table. But instead of 1 high pin and 7 low, I have 1 low pin and 7 high. It's no big issue since I can use invert W before writing to PORTA, but it's frustrating that I can't see what I am missing.  Anyone has the answer ?

回帖(16)

李雨晨

2018-11-12 11:39:53
你是真的测量引脚上的电压还是说LED是开/关?如果你在谈论LED,它们是连接到GND还是VCC?

以上来自于百度翻译


      以下为原文

   
 
Are you really measuring the voltage at the pin or are you talking about LED is on/off ?
If you are talking about the LEDs, are they connected to GND or VCC ?
 
举报

庄当甜

2018-11-12 11:50:38
嗨,罗迪姆,我在测量引脚的电压。LED通过电阻连接到GND,我想是440R。

以上来自于百度翻译


      以下为原文

    Hi rodims, 
 
I'm measuring the voltage at the pin. The leds are connected to GND via resistor, 440r I think. 
 
 
举报

李雨晨

2018-11-12 12:00:34
如果你不使用,会发生什么?

以上来自于百度翻译


      以下为原文

    what happens if instead of movf   currentOctA,w
call   GetLedPort
movwf  PORTA
you use
MOVLW B’00000001’
movwf  PORTA
举报

庄当甜

2018-11-12 12:15:04
现在试一试。正如预期的那样,引脚7至1的高和引脚0是低的。

以上来自于百度翻译


      以下为原文

    Tried it now. As expected, Pin 7 to 1 high and pin 0 is low. 
举报

更多回帖

发帖
×
20
完善资料,
赚取积分