on Wednesday, July 27, 2011
Le cahier de charge
Réaliser un voltmètre simple qui mesure le ddp entre deux point et qui affiche cette tension sur un afficheur lcd
Le code en mikroc:
sbit LCD_RS at RD4_bit;
sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;

sbit LCD_RS_Direction at TRISD4_bit;
sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;
// End LCD module connections
float volt1=0X00;
float volt2=0X00;
char voltage[4];

void initialisation(){
     lcd_init();
     lcd_cmd(_lcd_clear);
     lcd_cmd(_lcd_cursor_off);
     lcd_out(1,1,"La Tension");
     adc_init();
     portd=0X00;
     porta=0X00;
     trisa=0xFF;
     trisd=0X00;
}

void main() {
 initialisation();
 while(1){
   volt1=adc_read(0);
   volt2=adc_read(1);
   volt1-=volt2;
   volt1*=0.00489;
   floattostr(volt1,voltage);
   lcd_out(2,1,voltage);
 }

}

le circuit
 
Bonjour!

  
choisir le pic
définir l'oscillateur

définir l'emplacement de projet





Compilation de programme="génération du fichier *.HEX


  
 
Ouvrir l'isis ajouter le pic choisi.

Simuler le projet :)


Bonjour tout le monde!
Ce tutoriel est un bon exemple introductive pour apprendre programmer avec MikroC et simuler réeelement ou avec proteus isis.
Le cahier de charge:
clignoter une led ou del(en français) avec une fréquence de 1 Hz.
le code:
void main() {
portb=0X00;
trisb=0X00;
           while(1){
                    portb=~portb;
                    delay_ms(1000);
           }
}

Le circuit:


on Sunday, February 27, 2011
Bonjour tout le monde,
J'ai toujours aimé un journal lumineux dans ma petite chambre.
Pour cela j'ai commencé à travailler au sein de mon club mécatronique sur ce projet.
Liste de composants:
64 leds                                               pour chaque module
un registre à décalage 74HC595          ,,                  ,,
une interface de puissance ULN2803   ,,                 ,,
pic 16F877
Principe de fonctionnement:
le microcontreleur 16F877 fait partie de la carte de commande il envoie les données à afficher via le protocole série spi vers le pin DS du registre à décalage, si les données en entrés sont supérieurs à 8 bit le registre fait décaler les données via le pin Q7' qui transmit les données vers le pin DS de registre suivant.
la scrutation des lignes du journal lumineux est active en permanence.
Code en mikroc:

const unsigned short ASCII[] = {
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x0F, 0x30, 0xC0, 0xC0, 0x30, 0x0F, 0x00,  // Code pour char V
        0x00, 0xFF, 0x89, 0x89, 0x89, 0x81, 0x81, 0x00,  // Code pour char E
        0x00, 0xFF, 0x03, 0x0C, 0x30, 0xC0, 0xFF, 0x00,  // Code pour char N
        0x00, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,  // Code pour char T
        0x00, 0xFF, 0x89, 0x89, 0x89, 0x81, 0x81, 0x00,  // Code pour char E
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,  // Code pour char T
        0x00, 0x00, 0x81, 0xFF, 0x81, 0x00, 0x00, 0x00,  // Code pour char I
        0x00, 0x7E, 0x81, 0x81, 0x81, 0x81, 0x42, 0x00,  // Code pour char C
        0x00, 0xFF, 0x08, 0x18, 0x24, 0x42, 0x81, 0x00,  // Code pour char K
        0x00, 0xFF, 0x89, 0x89, 0x89, 0x81, 0x81, 0x00,  // Code pour char E
        0x00, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,  // Code pour char T
        0x00, 0x46, 0x89, 0x89, 0x89, 0x89, 0x72, 0x00,  // Code pour char S
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0xFF, 0x02, 0x0C, 0x0C, 0x02, 0xFF, 0x00,  // Code pour char M
        0x00, 0xE0, 0x1C, 0x13, 0x13, 0x1C, 0xE0, 0x00,  // Code pour char A
        0x00, 0x46, 0x89, 0x89, 0x89, 0x89, 0x72, 0x00,  // Code pour char S
        0x00, 0x7E, 0x81, 0x81, 0x81, 0x81, 0x42, 0x00,  // Code pour char C
        0x00, 0x7E, 0x81, 0x81, 0x81, 0x81, 0x7E, 0x00,  // Code pour char O
        0x00, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,  // Code pour char T
        0x00, 0x00, 0x01, 0x01, 0xFF, 0x01, 0x01, 0x00,  // Code pour char T
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // code por espace
  };

unsigned char index[8]={0X01,0X02,0X04,0X08,0X10,0X20,0X40,0X80};
unsigned char i=0,j=0,t=0;
 void balayage(){
      for(t=0;t<300;t++){
       for(i=0;i<8;i++){
         portb=~index[i];
         spi1_write(ASCII[t+i]);
         spi1_write(ASCII[t+i+8]);
         spi1_write(ASCII[t+i+16]);
         spi1_write(ASCII[t+i+32]);
         spi1_write(ASCII[t+i+40]);
         spi1_write(ASCII[t+i+48]);
         spi1_write(ASCII[t+i+56]);
         portc.RC6=0;
         portc.RC6=1;
         delay_us(8000);
       }
      }
 }
 }
void main() {
 portb=0X00;
 trisb=0X00;
 portc=0X00;
 trisc=0X00;
 spi1_init();
     while(1){
             balayage();
     }
}
Simulation sur isis



on Monday, January 31, 2011


I kind of like it :))
on Tuesday, January 18, 2011
Je vais parler brièvement des langages de programmation les plus utilisés cette année et ouvrir une réflexion sur ce qu'il est utile d'apprendre pour être intéressant(e) sur le marché du travail.
Dans le top 3, on a le C, le Java et le C++. Ce n'est pas du tout une surprise. C et Java se font la bourre depuis des années et ils sont les principales demandes dans les annonces pour du boulot.
En 4ème position on retrouve PHP. Très critiqué mais bizarrement très utilisé. Je pense que sa facilité d'utilisation lui donne tout son charme. L'idée qu'un jour Ruby puisse lui voler la vedette n'est plus d'actualité.
Viennent ensuite VB et C#, puis Pyhton et Perl.
Du coup, si demain on me demandait quels langages il serait intéressant d'apprendre pour être concluant sur le marché du travail, je répondrais JAVA, C et PHP.
Java permet de facilement utiliser les technos .NET : basiquement, si tu sais écrire du JAVA, tu sais écrire en C#.
C n'a plus à prouver quoique ce soit et je n'ai certainement pas les compétences pour le critiquer.
En ce qui concerne PHP, il permet à la fois de développer facilement des sites web dynamique mais également de s'interfacer facilement avec le système (en tout cas, sur un GNU/Linux). En plus, il permet d'appréhender rapidement Perl et Ruby.
J'aimerais terminer sur bon gros troll. Action Script et sa misérable 19ème place ne mériterait même pas que j'en parle, mais c'est tellement bon de voir qu'il est loin derrière le podium et que juste devant, se placent des langages dont je n'ai jamais entendu parler.