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‚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 parallles
{
/* 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‚es aux ports s‚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 caractre ");
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‚rie \n");
cprintf(" 'P'----> Port Parallle ");
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‚e \t avec succ‚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
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.