Sir, Pwede po patulong nito.
Ang ginawa ko na lang po ang charlieplexing kasi limited lang po yong IO pins ng micro ko. Naintindihan ko po yong setup ng hardware kaso wala po akong masyadong experience sa codes.. Puwede po ba gawin niyo to na codes?? (from Jose Pino website)
Maraming salamat po.
Define variable DATA
Define variable POSITION
if POSITION = 1
port A0 = DATA BIT 7 ; shift all bits
DATA BIT 7 = DATA BIT 6
DATA BIT 6 = DATA BIT 5
DATA BIT 5 = DATA BIT 4
DATA BIT 4 = DATA BIT 3
DATA BIT 3 = DATA BIT 2
DATA BIT 2 = DATA BIT 1
DATA BIT 1 = DATA BIT 0
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B0 as output
PORT B = DATA
PORT B0 = 0 ; 0 for Common cathode
end if
if POSITION = 2
port A0 = DATA BIT 7 ; shift 7 bits
DATA BIT 7 = DATA BIT 6
DATA BIT 6 = DATA BIT 5
DATA BIT 5 = DATA BIT 4
DATA BIT 4 = DATA BIT 3
DATA BIT 3 = DATA BIT 2
DATA BIT 2 = DATA BIT 1
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B1 as output
PORT B = DATA
PORT B1 = 0 ; 0 for Common cathode
end if
if POSITION = 3
port A0 = DATA BIT 7 ; shift 6 bits
DATA BIT 7 = DATA BIT 6
DATA BIT 6 = DATA BIT 5
DATA BIT 5 = DATA BIT 4
DATA BIT 4 = DATA BIT 3
DATA BIT 3 = DATA BIT 2
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B2 as output
PORT B = DATA
PORT B2 = 0 ; 0 for Common cathode
end if
if POSITION = 4
port A0 = DATA BIT 7 ; shift 5 bits
DATA BIT 7 = DATA BIT 6
DATA BIT 6 = DATA BIT 5
DATA BIT 5 = DATA BIT 4
DATA BIT 4 = DATA BIT 3
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B3 as output
PORT B = DATA
PORT B3 = 0 ; 0 for Common cathode
end if
if POSITION = 5
port A0 = DATA BIT 7 ; shift 4 bits
DATA BIT 7 = DATA BIT 6
DATA BIT 6 = DATA BIT 5
DATA BIT 5 = DATA BIT 4
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B4 as output
PORT B = DATA
PORT B4 = 0 ; 0 for Common cathode
end if
if POSITION = 6
port A0 = DATA BIT 7 ; shift 3 bits
DATA BIT 7 = DATA BIT 6
DATA BIT 6 = DATA BIT 5
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B5 as output
PORT B = DATA
PORT B5 = 0 ; 0 for Common cathode
end if
if POSITION = 7
port A0 = DATA BIT 7 ; shift 2 bits
DATA BIT 7 = DATA BIT 6
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B6 as output
PORT B = DATA
PORT B6 = 0 ; 0 for Common cathode
end if
if POSITION = 8
port A0 = DATA BIT 7 ; shift 1 bit
set PORT B as input where data bit = 0
set PORT B as output where data bit = 1
set PORT B7 as output
PORT B = DATA
PORT B7 = 0 ; 0 for Common cathode
end if