I used the wiring above for pins D.1, D.2 and D.3 on a 16F877 and it didn't work as expected.
I get 3 LEDs blinking faintly instead of a single one. It seems as if the current loops over to the unused pin and comes back.
I'll have to check out your thread. I must be missing something.
RobertCode:' Blink 6 LEDs connected to Port D.1, D.2 and D.3 in charlie-plex manner ' PIC 16F877 ext osc 20MHz ' PBP v2.60c ' MPASM v5.49 ' MCS+ v2.1.0.7 ' U2 programmer v4.32 asm __config _HS_OSC & _WDT_OFF & _PWRTE_OFF & _BODEN_ON & _LVP_OFF & _CPD_OFF & _WRT_OFF & _DEBUG_OFF & _CP_OFF endasm DEFINE OSC 20 ADCON1 = 7 ' Set Ports to digital TRISA = %00000000 ' Set all Ports to output TRISB = %00000000 TRISC = %00000000 TRISD = %00000000 TRISE = %00000000 PORTA = %00000000 ' Set ports OFF PORTB = %00000000 PORTC = %00000000 PORTD = %00000000 PORTE = %00000000 pause 100 mainloop: TRISD = %11111001 ' Enable pins D.1 and 2 PORTD = %00000100 ' Turn ON pin D.2 --> D.1 pause 500 PORTD = %00000010 ' Turn ON pin D.1 --> D.2 pause 500 ; TRISD = %11110101 ' Enable pins D.1 and 3 ; PORTD = %00001000 ' Turn ON pin D.3 --> D.1 ; pause 500 ; PORTD = %00000010 ' Turn ON pin D.1 --> D.3 ; pause 500 ; TRISD = %11110011 ' Enable pins D.2 and 3 ; PORTD = %00000100 ' Turn ON pin D.2 --> D.3 ; pause 500 ; PORTD = %00001000 ' Turn ON pin D.3 --> D.2 ; pause 500 TRISD = %11111111 ' All pins disabled pause 500 goto mainloop End




Bookmarks