Rs232 et port //

Description

simple programme qui permet d'envoyer des characteres codes en ASCII via le port RS232 et //

pour plus d'info:
TIKAOUI.HICHAM@gmail.com

Source / Exemple :


#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <math.h>
int t[9];
void deb(char c)  // covertisseur  dcimale-binaire
{
 int i=8;
  float f=c;
  while(i!=0)
  {
    if (f/2-floor(f/2)==0)
    {
      t[i]=0;
       }
    else
     {
      t[i]=1;
       }
       f=floor(f/2);
       i--;
    }
     for(i=1;i<=8;i++)
      printf("  %d",t[i]);
}

void init() // dessin de l'interface
{
   textbackground(0);
   window(4,6,23,8);
   clrscr();
   window(26,6,38,8);
   clrscr();
   window(22,15,50,17);
   clrscr();
   window(22,30,50,33);
   clrscr();
   window(22,20,50,25);
   clrscr();
   window(22,20,50,25);
   clrscr();
   window(29,40,78,42);
   clrscr();
}
void configuS(char c) // configuration des ports S&#8218;ries
 {
  /* outportb(0x3f8+3,0x80);
   outportb(0x3f8,0x00);
   outportb(0x3f9,0xff);
   outportb(0x3f8+3,0x03);
   outportb(0x3f8,c);*/

   asm{
	mov dx,3fbh
	mov ax,8h
	 out  dx,ax;
	mov dx,03f8h;
	mov ax,0
	 out dx,ax;
	mov dx,03f9h
	mov ax,0ffh
	 out dx,ax;
	mov dx,03fbh;
	mov ax,03h;
	 out dx,ax;
	mov dx,03f8h;

	}
   _AX=c;
       asm{
	   out dx,ax;
	 }

  }
void configuP(char c) // configuration des ports parallŠles
 {
  /* outportb(0x37A,0x04);
   outportb(0x378,c);*/
  asm{
      mov ax,04h
      mov dx,37ah
      out dx,ax
     }

   _AX=c;

   asm{ mov dx,378h;
	out dx,ax;
      }
     }
void signS() /* Fonction reserv&#8218;es aux ports s&#8218;ries  il permet  de synchronser
                  la transmission avec la clin sur l'ecran*/
             // en effet g essayer d'abaisser la vitess de transmission jusqa 1 bit par secende 
             // pour rendre le transmission visibile "des fins pedagogique"
             
             //Alors pour visualiser la transmission il faut executer le program sur in P III  800Mhz

{

   delay(100);
    for(int i=0;i<8;i++)
     {

	textbackground(7);
	clrscr();
	delay(264);
	textbackground(6);
	clrscr();
	gotoxy(2,3);
	cprintf("Transmission en cours..... ");
	textbackground(3);
	window(22,30,50,33);
	clrscr();
	gotoxy(14,3);
	cprintf("%d",t[8-i]);
	window(22,20,50,25);
	delay(264);

      }

}

main() //le programme principale
 { char c;
  clrscr();
  debut:
   init();
   textcolor(0);
   _setcursortype(_SOLIDCURSOR);
   textbackground(11);
   window(4,6,23,8);
   clrscr();
   gotoxy(1,3);
   cprintf(" Veuillerz dtaper un caractŠre ");
   textbackground(7);
   window(26,6,38,8);
   clrscr();
    gotoxy(6,2);
   cscanf("%c",&c);
   textbackground(7);
   window(22,15,50,17);
   _setcursortype(_NOCURSOR);
   clrscr();
   gotoxy(1,2);
   deb(c);
   textbackground(6);
   window(22,20,50,25);
   clrscr();
   gotoxy(2,2);
   int b;
   char s;
   cprintf("Tapez: 'S'----> Port S&#8218;rie \n");
   cprintf("       'P'----> Port ParallŠle ");
   error:
   s=getch();
   if (s=='s')
   {
    configuS(c);
    signS();

     }
     else if(s=='p')
      {
       configuP(c);
       }
       else
       {
	goto error;
       }

     textbackground(4);
     clrscr();
     gotoxy(1,3);
     cprintf("Transmission Termin&#8218;e \t avec succ&#8218;e!!!!");
     textbackground(7);
     window(29,40,78,42);
     clrscr();
     gotoxy(1,2);
     cprintf("Tapez 'Q' pour Quitter et 'ENTRER' pour continuer ");
     revenir:
     c=getch();
     if (c==13)
	goto debut;
     if (c!='q')
     goto revenir;

 }

Conclusion :


envoi des caratcteres via rs232

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.