??? 12/18/04 20:15 Read: times |
#83435 - Changes as comments Responding to: ???'s previous message |
Sorry,
this is my first time registration on this Site. This time I made the corrections about posting and showed the changes with comments. I included a few delays, because I read in some other sites that these delays can change the result. Of course I'm not sure... Now I hope that the Posting seems to be better. /* =============== 2L_x_16C_TEST=============*/ /*====== Brief Description of program =======*/ /* Program to test out a 2 line LCD on 0803 PCB. It also toggles a LED. Code compiled and checked OK on hardware. - 12 Nov 2004: 5.00PM */ /*==============Include Files ===============*/ #include <reg52.h> #include <string.h> //was not included! /*============== Type Defines ================*/ typedef unsigned char tChar; typedef unsigned int tInt; typedef unsigned long tLong; /*============== Bit Defines =================*/ sfr P4 = 0xe8; //was not included! sbit LCD_RS = P4^0; //was "...= P1^0;" sbit LCD_R_W = P4^1; //was "...= P1^1;" sbit LCD_ENB = P4^2; //was "...= P1^2;" sbit TST_LED = P3^0; //was "...=P2^0;" bit FLG_CPL; /*==========Function Prototypes ==============*/ void ready(void); void command(tChar); void display(tChar *); void msDelay(tInt); /*================== MAIN ====================*/ void main(void) { msDelay(3); //was not included! command(0x38); msDelay(1); command(0x38); msDelay(1); command(0x38); msDelay(1); command(0x0c); command(0x01); msDelay(5); display("TEST"); while(1) { msDelay(10); if (FLG_CPL == 1) // Toggle test LED { FLG_CPL = 0; TST_LED = 0; } else { FLG_CPL = 1; TST_LED = 1; } } } /*===============COMMAND==============================*/ void command(tChar cmd) { ready(); P1 = cmd; //was "P0 = cmd;" LCD_RS = 0; LCD_R_W = 0; LCD_ENB = 1; msDelay(2); //was not included! LCD_ENB = 0; } /*================READY=============================*/ void ready(void) { msDelay(1); } /*================DISPLAY==============================*/ void display(tChar *msg) { tInt count; for (count=0; count <= strlen(msg)-1; ++count) { if(count == 16) command(0xc0); ready(); P1 = msg[count]; //was "P0 = msg[count];" LCD_RS = 1; LCD_R_W = 0; LCD_ENB = 1; msDelay(1); //was not included! LCD_ENB = 0; } } /*==================MSDELAY=============================*/ void msDelay(tInt msec) { tInt cntr_1, cntr_2; for (cntr_1 = 0; cntr_1 <= msec; ++cntr_1 ) { for ( cntr_2 = 0; cntr_2 <= 5000; ++cntr_2); } } /*================================================*/ Regards Mehmet KURT |
Topic | Author | Date |
C Code for LCD | 01/01/70 00:00 | |
code | 01/01/70 00:00 | |
Changes as comments | 01/01/70 00:00 | |
re: code | 01/01/70 00:00 | |
debugging? | 01/01/70 00:00 | |
Points to check | 01/01/70 00:00 | |
solution | 01/01/70 00:00 | |
lcd display problem | 01/01/70 00:00 | |
how to help when not knowing with what | 01/01/70 00:00 | |
lcd display problem | 01/01/70 00:00 | |
Contrast Problem. | 01/01/70 00:00 | |
CONTRAST pot ? | 01/01/70 00:00 | |
lcd display problem ....solved![]() | 01/01/70 00:00 |