Dernière mise à jour le 13/03/16
Présentation
L’Afficheur électronique présenté dans cette article permet via une interface développé en C# sous Visual Studio d’écrire le nom de mon site “DJelectro71.com” sur un écran LCD 2×16 caractères à l’aide d’un clavier virtuelle, vous y trouverez l’exemple dans le prototype un peu plus bas qui a été entierrement développé et testé dans l’environnement MikroPascal sur platine EasyPic 7 . Le but était d’arriver à envoyer une chaine de caractères via le port USB afin que le logiciel du PIC 18F4550 puisse faire tout le travail pour décoder et d’envoyer directement les valeurs reçus sur l’afficheur LCD. Vous pourrez aborder la partie programmation un peu plus bas.
Schéma
Le schéma ci-dessous n’a rien de bien compliquer il suffit de raccorder l’écran LCD 2×16 sur les bonnes broches du PIC 18F4550.
Programmation de l’interface
Pour que cela fonctionne il faut bien sûr mettre en place le driver disponible sur ce lien usbhiddriver
Programme du PIC
program Afficheur_UsbHid_001;
var ReadBuff: array[64] of byte; absolute 0x500; WriteBuff: array[64] of byte; absolute 0x500; i:byte; iValueColomnLcd:byte; ConverCharByte:byte; LCD_RS : sbit at RB0_bit; LCD_EN : sbit at RB1_bit; LCD_D4 : sbit at RB2_bit; LCD_D5 : sbit at RB3_bit; LCD_D6 : sbit at RB4_bit; LCD_D7 : sbit at RB5_bit; LCD_RS_Direction : sbit at TRISB0_bit; LCD_EN_Direction : sbit at TRISB1_bit; LCD_D4_Direction : sbit at TRISB2_bit; LCD_D5_Direction : sbit at TRISB3_bit; LCD_D6_Direction : sbit at TRISB4_bit; LCD_D7_Direction : sbit at TRISB5_bit; procedure Main_Init; begin TRISB:=%00000000; LATB:=$00; Lcd_Init; Lcd_Cmd(_LCD_CURSOR_OFF) end; procedure Interrupt; begin USB_Interrupt_Proc; end; procedure Write_LCD; begin if (HID_Read()<>0) then begin for i:=0 to 63 do begin if (ReadBuff[i]<>0) then begin ConverCharByte:=Chr(readBuff[i]); inc(iValueColomnLcd); //incrémente les conlonnes du LCD Lcd_Chr(1,iValueColomnLcd,ConverCharByte); // converti la valeur lue en un caractère begin if (ReadBuff[i]=1) then begin iValueColomnLcd:=0; Lcd_Cmd(_LCD_CLEAR) ; // on efface l'écran LCD end; end; end; end; end; end; Begin Main_Init; HID_Enable(@Readbuff,@WriteBuff); While true do begin Write_LCd; end; end. |
Prototype
Aucun, mais vous pouvez essayer l’interface Afficheur UsbHid 001, à vous de rentrer le programme en MikroPascal dans votre PIC et de créer le Vid/Pid
Juste une petite photo pour le plaisir des yeux…
Historiques
13/03/16
– Première mise à disposition