Advertisement
DrAungWinHtut

LCDsimpleCommand.ino

Oct 27th, 2024
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // C++ code for LCD display of A-Z, a-z, and 0-9 characters
  2.  
  3. const int RS = 13;
  4. const int E = 12;
  5. const int DB4 = 11;
  6. const int DB5 = 10;
  7. const int DB6 = 9;
  8. const int DB7 = 8;
  9.  
  10. void initlcd();  // Function prototypes
  11. void writeAlpha(char ch);
  12. void sent(int rs, int db4, int db5, int db6, int db7);
  13.  
  14. void setup() {
  15.   pinMode(RS, OUTPUT);
  16.   pinMode(E, OUTPUT);
  17.   pinMode(DB4, OUTPUT);
  18.   pinMode(DB5, OUTPUT);
  19.   pinMode(DB6, OUTPUT);
  20.   pinMode(DB7, OUTPUT);
  21.  
  22.   // Initialize the LCD
  23.   initlcd();
  24. }
  25.  
  26. void loop() {
  27.   // Test by printing a sample string with uppercase, lowercase, and numeric characters
  28.   const char *message = "Hello World 123 ABC xyz";
  29.  
  30.   for (int i = 0; message[i] != '\0'; i++) {
  31.     writeAlpha(message[i]);
  32.   }
  33.  
  34.   delay(2000); // Delay before repeating the message
  35. }
  36.  
  37. void initlcd() {
  38.   // LCD initialization sequence
  39.   sent(0, 0, 1, 0, 0);  // Function set
  40.   sent(0, 0, 0, 0, 0); sent(0, 1, 0, 0, 0); // 4-bit mode
  41.   sent(0, 0, 0, 0, 0); sent(0, 0, 1, 0, 0); // Display on
  42.   sent(0, 0, 0, 0, 0); sent(0, 0, 0, 1, 1); // Clear display
  43. }
  44.  
  45. void writeAlpha(char ch) {
  46.   switch (ch) {
  47.     // Uppercase letters
  48.     case 'A': sent(1, 0, 0, 1, 0); sent(1, 1, 0, 0, 0); break;
  49.     case 'B': sent(1, 0, 0, 1, 0); sent(1, 0, 1, 0, 0); break;
  50.     case 'C': sent(1, 0, 0, 1, 0); sent(1, 1, 1, 0, 0); break;
  51.     case 'D': sent(1, 0, 0, 1, 1); sent(1, 0, 0, 0, 0); break;
  52.     case 'E': sent(1, 0, 0, 1, 1); sent(1, 0, 1, 0, 0); break;
  53.     case 'F': sent(1, 0, 0, 1, 1); sent(1, 1, 1, 0, 0); break;
  54.     case 'G': sent(1, 0, 1, 0, 0); sent(1, 0, 0, 0, 0); break;
  55.     case 'H': sent(1, 0, 1, 0, 0); sent(1, 0, 1, 0, 0); break;
  56.     case 'I': sent(1, 0, 1, 0, 0); sent(1, 1, 1, 0, 0); break;
  57.     case 'J': sent(1, 0, 1, 0, 1); sent(1, 0, 0, 0, 0); break;
  58.     case 'K': sent(1, 0, 1, 0, 1); sent(1, 0, 1, 0, 0); break;
  59.     case 'L': sent(1, 0, 1, 0, 1); sent(1, 1, 1, 0, 0); break;
  60.     case 'M': sent(1, 0, 1, 1, 0); sent(1, 0, 0, 0, 0); break;
  61.     case 'N': sent(1, 0, 1, 1, 0); sent(1, 0, 1, 0, 0); break;
  62.     case 'O': sent(1, 0, 1, 1, 0); sent(1, 1, 1, 0, 0); break;
  63.     case 'P': sent(1, 0, 1, 1, 1); sent(1, 0, 0, 0, 0); break;
  64.     case 'Q': sent(1, 0, 1, 1, 1); sent(1, 0, 1, 0, 0); break;
  65.     case 'R': sent(1, 0, 1, 1, 1); sent(1, 1, 1, 0, 0); break;
  66.     case 'S': sent(1, 1, 0, 0, 0); sent(1, 0, 0, 0, 0); break;
  67.     case 'T': sent(1, 1, 0, 0, 0); sent(1, 0, 1, 0, 0); break;
  68.     case 'U': sent(1, 1, 0, 0, 1); sent(1, 0, 0, 0, 0); break;
  69.     case 'V': sent(1, 1, 0, 0, 1); sent(1, 0, 1, 0, 0); break;
  70.     case 'W': sent(1, 1, 0, 1, 0); sent(1, 0, 0, 0, 0); break;
  71.     case 'X': sent(1, 1, 0, 1, 0); sent(1, 0, 1, 0, 0); break;
  72.     case 'Y': sent(1, 1, 0, 1, 1); sent(1, 0, 0, 0, 0); break;
  73.     case 'Z': sent(1, 1, 0, 1, 1); sent(1, 0, 1, 0, 0); break;
  74.  
  75.     // Lowercase letters
  76.     case 'a': sent(1, 0, 1, 1, 0); sent(1, 1, 0, 0, 1); break;
  77.     case 'b': sent(1, 0, 1, 1, 0); sent(1, 0, 1, 0, 0); break;
  78.     case 'c': sent(1, 0, 1, 1, 0); sent(1, 1, 1, 0, 0); break;
  79.     case 'd': sent(1, 0, 1, 1, 1); sent(1, 0, 0, 0, 0); break;
  80.     case 'e': sent(1, 0, 1, 1, 1); sent(1, 0, 1, 0, 0); break;
  81.     case 'f': sent(1, 0, 1, 1, 1); sent(1, 1, 1, 0, 0); break;
  82.     case 'g': sent(1, 1, 0, 0, 0); sent(1, 0, 0, 0, 1); break;
  83.     case 'h': sent(1, 1, 0, 0, 0); sent(1, 0, 1, 0, 0); break;
  84.     case 'i': sent(1, 1, 0, 0, 0); sent(1, 1, 1, 0, 0); break;
  85.     case 'j': sent(1, 1, 0, 0, 1); sent(1, 0, 0, 0, 1); break;
  86.     case 'k': sent(1, 1, 0, 0, 1); sent(1, 0, 1, 0, 0); break;
  87.     case 'l': sent(1, 1, 0, 0, 1); sent(1, 1, 1, 0, 0); break;
  88.     case 'm': sent(1, 1, 0, 1, 0); sent(1, 0, 0, 0, 1); break;
  89.     case 'n': sent(1, 1, 0, 1, 0); sent(1, 0, 1, 0, 0); break;
  90.     case 'o': sent(1, 1, 0, 1, 0); sent(1, 1, 1, 0, 0); break;
  91.     case 'p': sent(1, 1, 0, 1, 1); sent(1, 0, 0, 0, 1); break;
  92.     case 'q': sent(1, 1, 0, 1, 1); sent(1, 0, 1, 0, 0); break;
  93.     case 'r': sent(1, 1, 0, 1, 1); sent(1, 1, 1, 0, 0); break;
  94.     case 's': sent(1, 1, 1, 0, 0); sent(1, 0, 0, 0, 1); break;
  95.     case 't': sent(1, 1, 1, 0, 0); sent(1, 0, 1, 0, 0); break;
  96.     case 'u': sent(1, 1, 1, 0, 1); sent(1, 0, 0, 0, 1); break;
  97.     case 'v': sent(1, 1, 1, 0, 1); sent(1, 0, 1, 0, 0); break;
  98.     case 'w': sent(1, 1, 1, 1, 0); sent(1, 0, 0, 0, 1); break;
  99.     case 'x': sent(1, 1, 1, 1, 0); sent(1, 0, 1, 0, 0); break;
  100.     case 'y': sent(1, 1, 1, 1, 1); sent(1, 0, 0, 0, 1); break;
  101.     case 'z': sent(1, 1, 1, 1, 1); sent(1, 0, 1, 0, 0); break;
  102.  
  103.     // Numbers
  104.     case '0': sent(1, 0, 1, 1, 1); sent(1, 0, 0, 0, 0); break;
  105.     case '1': sent(1, 0, 1, 1, 1); sent(1, 0, 0, 0, 1); break;
  106.     case '2': sent(1, 0, 1, 1, 1); sent(1, 0, 0, 1, 0); break;
  107.     case '3': sent(1, 0, 1, 1, 1); sent(1, 0, 0, 1, 1); break;
  108.     case '4': sent(1, 0, 1, 1, 1); sent(1, 0, 1, 0, 0); break;
  109.     case '5': sent(1, 0, 1, 1, 1); sent(1, 0, 1, 0, 1); break;
  110.     case '6': sent(1, 0, 1, 1, 1); sent(1, 0, 1, 1, 0); break;
  111.     case '7': sent(1, 0, 1, 1, 1); sent(1, 0, 1, 1, 1); break;
  112.     case '8': sent(1, 0, 1, 1, 1); sent(1, 1, 0, 0, 0); break;
  113.     case '9': sent(1, 0, 1, 1, 1); sent(1, 1, 0, 0, 1); break;
  114.  
  115.     // Space
  116.     case ' ': sent(1, 0, 1, 0, 0); sent(1, 0, 0, 0, 0); break;
  117.  
  118.     // Default case to handle unknown characters
  119.     default: sent(1, 0, 1, 0, 0); sent(1, 0, 0, 0, 0); break; // Space
  120.   }
  121. }
  122.  
  123. void sent(int rs, int db4, int db5, int db6, int db7) {
  124.   // Set RS pin (1 for data, 0 for command)
  125.   digitalWrite(RS, rs);
  126.  
  127.   // Set data pins to send 4-bit data
  128.   digitalWrite(DB4, db4);
  129.   digitalWrite(DB5, db5);
  130.   digitalWrite(DB6, db6);
  131.   digitalWrite(DB7, db7);
  132.  
  133.   // Pulse the enable pin
  134.   digitalWrite(E, LOW);
  135.   delayMicroseconds(1);
  136.   digitalWrite(E, HIGH);
  137.   delayMicroseconds(1);
  138.   digitalWrite(E, LOW);
  139.  
  140.   delay(10); // Small delay to let LCD process
  141. }
  142.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement