Dr Lous I see old password | Code :
- /* compiler avec gcc -O2 pour les macros inb et outb */
- #include <stdio.h>
- #include <unistd.h>
- #include <asm/io.h>
- #define lpt_port 0x378 /* Changer l'adresse du port ici */
- #define STATUS lpt_port+1
- #define CONTROL lpt_port+2
- /* Une série de définitions pour simplifier la programmation */
- #define SET_E outb(inb(CONTROL) & 254,CONTROL) /* E=1 (Strobe) */
- #define RAZ_E outb(inb(CONTROL) | 1,CONTROL) /* E=0 (Strobe) */
- #define SET_RS outb(4,CONTROL) /* RS=1, la donnée est un caractère */
- #define RAZ_RS outb(0,CONTROL) /* RS=0, la donnée est une instruction */
- void Init_LCD (void);
- void Efface_LCD (void);
- void Ecrire_LCD (char *Chaine, char Position);
- int coco;
- /*
- Adresse du curseur (en hexadécimal):
-
- digit : 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20
-
- ligne 1: 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F 90 91 92 93
- ligne 2: C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 D1 D2 D3
- ligne 3: 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F A0 A1 A2 A3 A4 A5 A6 A7
- ligne 4: D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 E7
- */
- int main(void)
- {
- char *Phrase1="Taper",
- *Phrase2="Votre",
- *Phrase3="Message Sur",
- *Phrase4="La console";
- if(ioperm(lpt_port,3,1))
- {
- perror("ioperm" );
- exit(1);
- }
- Init_LCD();
- //clrscr();
- printf("*************************************************\n" );
- printf("* Programme de test d'un ecran LCD 4 * 20 *\n" );
- printf("*************************************************\n\n\n" );
- Ecrire_LCD(Phrase1,0x80);
- Ecrire_LCD(Phrase2,0xC0);
- Ecrire_LCD(Phrase3,0x94);
- Ecrire_LCD(Phrase4,0xD4);
- //printf("Taper le message puis Enter.\n" );
-
- while (1)
- {
- coco = getchar();
- if (coco == 47) //si caractere egale a "/" effacement ecran...
- {
- printf("\n\n----EFFACEMENT ECRAN!!!----\n\n" );
- RAZ_RS;
- outb(0x01,lpt_port); // mise des valeur sur le port
- SET_E;
- usleep(2000);
- RAZ_E;
- usleep(2000);
- SET_RS;
- }
- else
- {
- if (coco == 10)
- {
- //printf("Bouh\n" );
- }
- else
- {
- if (coco == 176){coco = 223;}
- if (coco == 40){coco = 255;}
- printf("-'%d'\n", coco);
- outb(coco,lpt_port); // mise des valeur sur le port
- SET_E;
- usleep(10);
- RAZ_E;
- usleep(10);
- }
- }
- if (coco == 81)
- {
- Efface_LCD();
- Ecrire_LCD("MERCI D'AVOIR",0xC0);
- Ecrire_LCD("UTILISE Dr-LCD",0x94);
- exit();
- }
- }
- printf("%d",0x30);
- return 0;
- }
- void Init_LCD (void)
- {
- char Init[5],i;
- Init[0] = 0x30;
- Init[1] = 0x38;
- Init[2] = 0x0F;
- Init[3] = 0x01;
- Init[4] = 0x06;
- outb(inb(CONTROL) & 0xDF,CONTROL); /* On place le port parallèle en sortie */
- RAZ_RS;
- for(i=0;i<=4;i++)
- {
- outb(Init[i],lpt_port); /* On place la donnée sur le bus */
- SET_E;
- usleep(20000); /* Délais de 20 ms */
- RAZ_E;
- usleep(20000);
- }
- SET_RS;
- }
- void Efface_LCD (void)
- {
- RAZ_RS;
- outb(0x01,lpt_port); /* On place l'instruction d'effacement sur le bus */
- SET_E;
- usleep(20000);
- RAZ_E;
- usleep(2000);
- SET_RS;
- }
- void Ecrire_LCD (char Chaine[20], char Position)
- {
- int i,Taille;
- Taille=strlen(Chaine);
- RAZ_RS;
- outb(Position,lpt_port); /* Adresse d'écriture */
- SET_E;
- usleep(1);
- RAZ_E;
- usleep(1);
- SET_RS;
- for(i=0;i<Taille;i++)
- {
- outb(Chaine[i],lpt_port); /* On place la donnée sur le bus */
- SET_E;
- usleep(1);
- RAZ_E;
- usleep(1);
- }
- }
|
le code ss linux pour faire un lcd sur port //
Code :
- //numPort = 0x378h
- 'Mise à 0 de tous les bits DATA du port //
- DlPortWritePortUshort numPort, 0
- 'Mise à 1 de tous les bits DATA du port //
- DlPortWritePortUshort numPort, 255
|
le code vb avec dlportio...
voila c suffisant pour le faire ss vb  |