Flowcode permet de programmer avec des organigrammes des microcontrôleurs du type PIC, AVR, ARM et autres.
Nous sommes aujourd'hui en juin 2020.
Le logiciel flowcode existe depuis 1996.
Flowcode v1 en 1996. Avec le compilateur C2C.
Flowcode v2 en 1998. Avec le compilateur C2C.
Flowcode v3 en 2002. Avec le compilateur C2C.
Flowcode v4 en 2005. Avec le compilateur C2C.
Flowcode v5 en 2008. Avec le compilateur Sourceboost.
Flowcode v6 en 2011. Avec le compilateur Sourceboost.
Flowcode v7 en 2016. Avec le compilateur XC de Microchip.
Flowcode v8 en 2018. Avec le compilateur XC de Microchip.
Flowcode v5 et v6
Flowcode v8.2.2 en mars 2020. Avec le compilateur XC de Microchip.
Il faut télécharger le fichier principal d'installation et ensuite les 7 compilateurs.
Flowcode v9.0.0 en déc 2020
Le pic 16F648A. Le reset !
La plus populaire est la version flowcode v5, pour les microcontrôleurs PIC de 8 bits, comme le PIC 16F84A.
Aujourd'hui, le 16F84A est remplacé par le 16F648A.
Une sortie est en haute impédance quand, elle est sélectionnée en entrée.
Ce premier petit programme met les sorties PORTB du 16F648A, au niveau bas.
Mettre le PortA dans la variable globale nommée n -> (octet).
Pour réaliser ce petit programme, il faut prendre l'icône à gauche avec la souris et la glisser
vers l'organigramme à l'endroit désiré.
Pour supprimer des icônes d’un algorigramme:
Sélectionner les icônes à supprimer, puis un clique droite de la souris sur la sélection et choisir 'Supprimer' dans le
petit menu déroulant.
C'est le même principe pour toutes les versions différentes de Flowcode.
Par contre, pour le code C, cela va dépendre du compilateur de code C, associé à la version de flowcode.
C2C, Sourceboost, ou XC de Microchip.
La simulation du code C, n'est prise en compte que sur flowcode v8.
Organigramme pour un bouton poussoir actionné le programme s'arrête.
Avec un 16F648A avec un quartz de 20 Mhz.
Configuration du uC dans la barre des menus bouton Build -> Options Projet...->
Onglet Options Globales mettre 20 000 000 Hz,
Puis, sur le bouton Configurer Puce...
Pour configurer les fusibles du uC.
HS pour un quartz de 20 Mhz.
Watchdog Timer off (désactivé)
Power Up Timer (pour créer un petit retard à la mise en route
afin que le quartz soit bien stabilisé)
Brown Out Detect (reset en cas d'une baisse de tension sur la puce)
Master Clear Enable (s'il y a un bouton pour le reset du uC)
Low Voltage Program (le 16F648A peut se programmer à 13 v ou à 5 V)
Pour les programmateurs de pic voire ici.
Mettre le portA et le portB du uC au niveau bas.
Mettre la variable nommée bouton à 0.
Puis, tant que 1 est une boucle infinie, qui s'arrêtera si le bouton est actionné.
Teste le bouton sur 1 seul bit -> le bit 0 du portB.
Autre façon de faire
Mode d'emploi de flowcode, autre note, autre note, autres sites, vidéo, vidéo2,
Pour les LCD 2*16 caractères, il faut utiliser des routines de composant (en vert).
On donne une pose de 500 mS, puis une routine composant d'initiation afin d'avoir
un dialogue entre le uC et le LCD automatique pour que le LCD soit pris en compte.
Initialisation du portA au niveau bas.
Initialisation du bit 6 et bit 7 au niveau bas en utilisant le masque du portB.
Une LED qui clignote toutes les secondes
LED clignotante utilisation de masques
Interruption par bouton poussoir
Si on met le bit 0 du portB au niveau bas, il n'y aura pas d'interruption sur ce bit !
Faire du 10 HZ, le quartz est toujours de 20 Mhz
On va utiliser le Timer 2 et une variable globale nommée 'bn' de type long
(UInt (nombre compris entre 0 et 65535))
Variable à tableau indexé, il faut ajouter les crochets '[ 5 ]' soi-même.
Keypad
Pour notre 16F648A -> VSS = 0 V et VDD = +5V à +-10% (+4,77V c'est bon).
VPP = +10 v à 13,5 v (+11,7 V c'est bon).
FOSC2 FOSC1 et FOSC0 = 010 pour les quartz externes de 4 Mhz à 20 Mhz en mode HS.
WDTE = 0 sans le Watchdog
WDTE = 1 avec le Watchdog
MLCR = 1 lorsqu'il y a un bouton pour le reset du pic.
MLCR = 0 lorsqu'il n'y a pas de bouton pour faire le reset du pic.
Boren = 1 reset s'il y a une baisse de la tension sur le 16F648A.
Boren = 0 sans le reset s'il y avait une baisse de la tension sur le 16F648A.
LVP = 0, si le 16F648A est programmé avec un VPP de +13,5 v.
LVP = 1, si le 16F648A est programmé avec un VPP de + 5 v.
L'utilisation d'un VMA425 Velleman avec 4 digits 3642BS au prix de ~ 5 €.
Il ne possède pas une adresse particulière, comme un vrai récepteur i2C.
On va utiliser le i2C de Flowcode, toujours avec un 16F648A (20Mhz).
Avec flowcode v5, il faut initialiser l'i2c, tout au début du programme dans sa routine composant i2C.
On le branche en clock au portB sur le bit 3 et en Data sur le même portB
mais sur le bit 4.
Le résultat le voici.
SEG_A 0b1000 0000 =128 = 0x80
SEG_B 0b0100 0000 = 64 = 0x40
SEG_C 0b0010 0000 = 32 = 0x20
SEG_D 0b0001 0000 = 16 = 0x10
SEG_E 0b0000 1000 = 8 = 0x08
SEG_F 0b0000 0100 = 4 = 0x04
SEG_G 0b0000 0010 = 2 = 0x02
blanc 0b0000 0001 = 1 = 0x01 le dernier bit allume les 2 points centraux ''dp'', sur le digit n° 1.
start, 0x02, 0x03, 0x00, 0x01, 0x00, 0x00, 0xF1, stop.
blanc 0b0000 0000 = 0 = 0x00
0 → ABCDEF = 0b1111 1100 = 0xFC
1 → BC = 0b0110 0000 = 0x60
2 → ABDEG = 0b1101 1010 = 0xDA
3 → ABCDG = 0b1111 0010 = 0xF2
4 → BCFG = 0b0110 0110 = 0x66
5 → ACDFG = 0b1011 0110 = 0xB6
6 → ACDEFG = 0b1011 1110 = 0xBE
7 → ABC = 0b1110 0000 = 0xE0
7 → ABCG = 0b1110 0010 = 0xE2
8 → ABCDEFG = 0b1111 1110 = 0xFE
9 → ABCDFG = 0b1110 0110 = 0xE6
A → ABCEFG = 0b1110 1110 = 0xEE
b → CDEFG = 0b0011 1110 = 0x3E
C →ADEF = 0b1001 1100 = 0x9C
d →BCDEG = 0b0111 1010 = 0x7A
E → ADEFG = 0b1001 1110 = 0x9E
F →AEFG = 0b1000 1110 = 0x8E
h -> CEFG = 0b0010 1110 = 0x2E
H -> BCEFG = 0b0110 1110 = 0x6E
J → BCDE = 0b0111 1000 = 0x78
L -> DEF = 0b0001 1100 = 0x1C
n -> CEG = 0b0010 1010 = 0x2A
o -> CDEG = 0b0011 1010 = 0x3A
P -> ABEFG = 0b1100 1110 = 0xCE
q -> ABCFG = 0b1110 0110 = 0xE6
t -> DEFG = 0b0001 1110 = 0x1E
u -> CDE = 0b0011 1000 = 0x38
U -> BCDEF = 0b0111 1100 = 0x7C
Y -> BCDFG = 0b0111 0110 = 0x76
La brillance maximum est 0xF1
La brillance minimum est 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, à 0xF1.
Brillance maximum de 0xF1 (start,0xF1,stop) pour flowcode v5
C'est la 7e et la dernière trames.
Le chiffre 8 -> 0xFF,stop ou FE,stop, sur le digit n°3. Ceci, avant la 7e trames.
Les 2 segments 0xA0 -> 5 sur le digit n°0.
Il faut 7 trames pour validé l'afficheur 7 segments. Chiffre 9 sur le digit n°0.
start, 0x02,stop,restart, 0x03, 0xE7, 0xFF, 0xFF, 0xFF,stop,restart, 0xF1, stop.
start, 0x40, 0xC0,0xE7, 0xFF, 0xFF, 0xFF, 0x8F, stop.
start, 0x02,stop,restart, 0x03, 0xFE, 0xFF, 0xFE, 0xFE,stop,restart, 0xF1, stop.
site 1, site 2, mode d'emploi, site 3, site 4,