' Cible = 16F877A / Quartz = 4Mhz / Fuses = HS, ALLS OTHERS OFF
program base_000
'
dim colonnes as byte[8] ' on déclare un tableau de 8 octets (8x8 bits)
'
main:
' on initialise les ports du PIC
ADCON0 = %00000000 ' désactive ADC
TrisA = %00000000 ' met tous les ports A en sorties
TrisB = %00000000 ' met tous les ports B en sorties
TrisC = %00000000 ' met tous les ports C en sorties
TrisD = %00000000 ' met tous les ports D en sorties
TrisE = %00000000 ' met tous les ports E en sorties
PortA = %00000000 ' met tous les ports A à 0
PortB = %00000000 ' met tous les ports B à 0
PortC = %00000000 ' met tous les ports C à 0
PortD = %00000000 ' met tous les ports D à 0
PortE = %00000000 ' met tous les ports E à 0
' on définit un motif
colonnes[0] = %11111111 ' X X X X X X X X
colonnes[1] = %10000001 ' X 0 0 0 0 0 0 X
colonnes[2] = %10111101 ' X 0 X X X X 0 X ...ici un petit carré...
colonnes[3] = %10100101 ' X 0 X 0 0 X 0 X
colonnes[4] = %10100101 ' X 0 X 0 0 X 0 X
colonnes[5] = %10111101 ' X 0 X X X X 0 X
colonnes[6] = %10000001 ' X 0 0 0 0 0 0 X
colonnes[7] = %11111111 ' X X X X X X X X ...dans un grand carré...
' ...le programme principal...
while true '
PortB = colonnes[0]
PortD = %00000001
delay_ms(1)
PortB = colonnes[1]
PortD = %00000010
delay_ms(1)
PortB = colonnes[2]
PortD = %00000100
delay_ms(1)
PortB = colonnes[3]
PortD = %00001000
delay_ms(1)
PortB = colonnes[4]
PortD = %00010000
delay_ms(1)
PortB = colonnes[5]
PortD = %00100000
delay_ms(1)
PortB = colonnes[6]
PortD = %01000000
delay_ms(1)
PortB = colonnes[7]
PortD = %10000000
delay_ms(1)
wend
' ...dans une boucle infinie...
end.