Thaimicrotron.com : Home
 
 
Page6
 
 

การใช้งาน LCD โมดูล
การสร้างตัวอักษรลงใน CG-RAM

 
     
  Character generator RAM (CG-RAM)  
  เป็นส่วนเก็บข้อมูลตัวอักษรที่เราสามารถสร้างเองได้เพื่อใช้เป็บสัญญลักษณ์พิเศษที่โมดูล LCD ไม่มี  
  มี Address อยู่ที่ 00h-07h และ แอดเดรส 08h-0Fh จะเป็นส่วนที่ทับซ้อนกัน เรียกจากไหนได้เหมือนกัน ทั้งหมดมีขนาด 8 ตัวอักษร  
     
     
 
 
 
การออกแบบตัวอักษรขนาด 5x8 pixel
 
  ค่าของข้อมูลจะคำนวนตาวแถว ข้อมูล1ตัวอักษรมี 8 ไบท์  
     
  การกำหนดค่าในภาษาซี  
 

BYTE const LCD_CUSTOM_CHARS[64] = 
{
  0x1F,0x10,0x17,0x17,0x17,0x17,0x10,0x1F,      //Battery left
  0x1F,0x00,0x1F,0x1F,0x1F,0x1F,0x00,0x1F,      //Battery center
  0x1E,0x02,0x1B,0x19,0x19,0x1B,0x02,0x1E,      //Battery right
  0x00,0x0E,0x11,0x11,0x11,0x0A,0x1B,0x00,      //ohm symbol
  0x02,0x06,0x0E,0x1E,0x0E,0x06,0x02,0x00,      //<
  0x08,0x0C,0x0E,0x0F,0x0E,0x0C,0x08,0x00,      //>
  0x1F,0x11,0x11,0x0A,0x04,0x04,0x04,0x04,      //ant
  0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00       //o
};
 
 
การกำหนดค่าในภาษาซีทั้ง 8 ตัวอักษร
 
     
     
  การเขียนข้อมูลลงใน CG-RAMต้องเขียนคำสั่ง Set CG-RAM Address จากนั้นจึงเขียนข้อมูลตัวอักษร  
  เมื่อเขียนตัวอักษรแต่ละไบท์ AC จะเพิ่มขึ่นเองโดยอัตโนมัติ  
 
//Write char data in to CG-RAM
    WriteLCDCmd(LCD_CGRAM_ADDRESS);
    for(i=0;i<64;i++) 
      WriteLCDData(LCD_CUSTOM_CHARS[i]);
   
 
     
     
  การเรียกตัวอักษรจะต้องใช้คำสั่งSet DD-RAM Address ก่อนจึงจะเรียกใช้งานได้  
  หรืออาจใช้คำสั่ง WriteLCDCmd(LCD_CLEAR_SCREEN); หรือ LCDGotoXY(1,2); ก็เป็นการ set DD-RAM ได้เช่นกัน  
     
 
     WriteLCDCmd(LCD_CLEAR_SCREEN);

   //Wiite Custom char to screen
   //Custom char is address 00h-07h and 08h-0Fh is same
     WriteLCDData(0);
     WriteLCDData(1);
     WriteLCDData(2);
    printf(WriteLCDData," POWER FULL");
    
    LCDGotoXY(1,2);
    printf(WriteLCDData,"TEMP25\x07 10\x03 \x0609");
 
  การแสดงผลตัวอักษรที่เราสร้างไว้ ใน CG-RAM  
  Note: เนื่องจากในภาษาซี ค่า 0x00 ถือเป็นค่า NULL terminate String จึงไม่สามารถใช้ฟังชั่นอย่างเช่น printf(WriteLCDData,"TEMP25\x07 10\x03 \x0609"); เขียนข้อมูลที่สร้างไว้ใน CG-RAM แอดเดรส ที่ 0 ได้ จึงต้องใช้ฟังชั่น WriteLCDData(0); เพื่อเขียนตัวอักษรใน CG-RAM แอดเดรสที่ แทน  
     
  ตัวอย่างการเขียนโปรแกรม การสร้างตัวอักษรลงใน CG- RAM  
     
 
SMITDH EMSOMBAT
 
 
ศมิทธิ์ เอมสมบัติ