Kidule Ascenseur/Initialiser le Hardware

Début de la boite de navigation du chapitre
Initialiser le Hardware
Icône de la faculté
Chapitre no 1
Leçon : Kidule Ascenseur
Retour auSommaire
Chap. suiv. :Tester le hardware
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Kidule Ascenseur : Initialiser le Hardware
Kidule Ascenseur/Initialiser le Hardware
 », n'a pu être restituée correctement ci-dessus.

Le matériel

modifier

Le matériel de cet atelier est composé de Kidules produits par Didel.

Les Kidules

modifier

 

On trouve la documentation complète ici pour le Kidule 2550 et pour le kidule ascenseur.

Le schéma

modifier

 

Le processeur est un PIC 18F2550 dont on trouve le databook ici [1]

Déclaration dans le software pour ce Hardware

modifier

Sur le Kidule PIC 2550, 3 ports sont utilisables PORTB de 8 bits à droite et PORTA (5 bits) ainsi de PORTC (3 bits) à gauche.

On trouve ci après les déclarations nécessaires pour adresser correctement le hardware: Dans ce fichier, on fait deux choses:

  1. on donne des noms intelligents aux bits d'entrées / sorties, qui correspondent aux deux Kidules
  2. on a une fonction setup() qui permet d'initialiser correctement les registres TRISx pour indiquer s'il s'agit d'entrées ou de sorties
  3. définir des mots parlant pour Allume, Eteint ou Presse plutôt que d’avoir à tout le temps réflechir s'il faut un 1 ou un 0 dans ce cas

HardwareAsc.h

modifier
#define pic18f2550 1
 
// ATTENTION: sur le 18F2550, il ne faut pas écrire dans PORTx des bits, mais dans LATx, car
// si on fait plusieurs instructions bit de suite (Read-Modifiy-Write) on a
// des résultats difficiles à comprendre
// cf http://www.microchip.com/forums/tm.aspx?m=421256
// http://www.microchip.com/forums/tm.aspx?m=110258

//déclarations pour le Kidule PIC2550
#define Buzzer     LATCbits.LATC7 
 
 
//déclarations pour le module Ascenseur monté à droite
#define Bouton2eme PORTBbits.RB0
#define Bouton1er  PORTBbits.RB1
#define BoutonRez  PORTBbits.RB2
#define Switch2eme PORTBbits.RB3
#define Switch1er  PORTBbits.RB4
#define SwitchRez  PORTBbits.RB5
#define Monter     LATBbits.LATB6
#define Descendre  LATBbits.LATB7
 
//déclarations pour le module Dé monté à Gauche
#define Led0       LATAbits.LATA0
#define Led1       LATAbits.LATA1
#define Led2       LATAbits.LATA2
#define Led5       LATAbits.LATA3
#define Led4       LATAbits.LATA5
#define Led3       LATCbits.LATC0
#define Led6       LATCbits.LATC1
#define Poussoir   PORTCbits.RC2
 
//déclaration pour l'usage propre à ce programme
#define LedRez     Led0
#define Led1er     Led1
#define Led2eme    Led2
 
//déclaration pour rendre plus explicite le code vu que les modules sont en logique actif à 0
#define Presse     0
#define Allume     0
#define Eteint     1
 
 
// Mise en route du PIC: configuration des PINs en entrées ou sorties
void setup()
{
    PORTA = 0x00;
    ADCON1= 0x0f;  // désactive les entrées analogiques
    CMCON = 0x07;
    TRISA = 0b11000000;
    PORTA = 0b00111111;
    TRISC = 0b00111100;
    PORTC = 0b00000011;
    TRISB = 0b00111111;  
    PORTB = 0b00000000;  
}

Le mieux, c’est de copier ce bout de programme dans votre programme, pour ne pas avoir à tout déclarer à la main. Pour l'atelier, vous trouverez un fichier hardwareAsc.h déjà présent dans le répertoire.