Bonjour,
je me suis acheté une plaque QL_200 sur ebay avec un petit afficheur graphique LCD.
Le microcontroleur de l'afficheur est un ST7921, je programme sous CCS.
n'arrivant pas à trouver un driver pour piloter cet afficheur, j'ai essayé d'en faire un. Mais, pour je ne sais qu'elle raison il n'affiche strictement rien.
Voici mon code.
Normalement pas d'erreur de cablage vu que c'est sur la platine. Je pense que ca doit être à cause des delay, mais je ne sais pas du tout quoi changer.Code:#include <16f876.h> #use delay (clock = 4000000) #define rs PIN_A5 //COMMNAD/DATA SELECT #define rw PIN_A4 //READ/WRITE SELECT #define e PIN_A3 //ENABLE SIGNAL #define psb PIN_A2 //PARALLEL/SERIAL #define rst PIN_A0 //RESET SIGNAL //data are send with the port b. void lcd_init(); //LCD init void lcd_clear(); //clear lcd display and cursor back to home void lcd_display(unsigned char); //affichage lcd void lcd_instruction(unsigned char, int); //send instruction to lcd void lcd_data(unsigned char); //send data to lcd const unsigned char TAB[]={'A','B','C','D','E','F','g','h','i','j','k','L','M' }; int i ; void main () { delay_ms(30); lcd_init(); delay_ms(10); lcd_clear(); delay_ms(5); for(i=0; i<8;i++) { lcd_display (TAB[i]); delay_ms(500); } } //initialisation du LCD void lcd_init() { output_low(rst); //reset LCD delay_ms(10); output_high(rst); //LCD normal work. output_high(psb); //8 bit as parrallel. delay_ms(1); } void lcd_clear () { lcd_instruction(0x01,2); //clear display and cursor back to home delay_ms(2); } void lcd_display(unsigned char data) { lcd_data(data); } void lcd_instruction (unsigned char x, int tempo) { output_low(rs); //data not commnad. output_low(rw); //write not read. output_b(x); //data to bus. output_high(e); //enable. delay_ms(tempo); output_low(e); //disable. } void lcd_data (unsigned char x) { output_high(rs); //data not commnad. output_low(rw); //write not read. output_b(x); //data to bus. output_high(e); //enable. delay_ms(1); output_low(e); //disable. }
Avez vous une idée ?
Merci
-----