~ = NOT
and
DCD = it changes a bit number (0-15) into binary and set that bit to a Logic 1
Basicly it finds out what value digits is (0 to 3, 0 being the first display on the right and so on) and converts that into binary if 0 then to 00, if 1 then to 01, if 2 - 10, if 3 - 11 and instead of applying a logic 1 like DCD is supposed to do it does the opposite because there is ~ infront of it which make it 0
Its basicly applying a Logic 0 to pin RA0 on the PIC,completing the subroutine and then doing the same for pin RA1, RA2 and RA3. These are the pins that turn on and off each digit.
Logic 0 normally means 0 or close to 0 Volts but in this case transisors are being used to supply the current to the display. A transistor is basicly an inverting switch so if you input logic 1 (+5V) you get 0 at the output and the opposite if you apply 0 Volts to the input.
I got a little carried away there and have gone into more detail and answering more than you asked but it might help you understand what the code is doing a bit better. Or atleast I hope so.
Bookmarks