คนคอมพิวเตอร์

มาสร้างจอซุปเปอร์จิ๋วกันเถอะ [1]

Posted on: กันยายน 15, 2010

หน้าแรก สารบัญ เกี่ยวกับบล็อกนี้ เกี่ยวกับผู้เขียน

มาสร้างจอซุปเปอร์จิ๋วกันเถอะ

ตกแต่งคอมพิวเตอร์ให้เลิศหรูดูไฮเทคด้วยการสร้างจอ LCD ขนาดจิ๋ว แสดงข้อมูลสถานะของคอมพิวเตอร์ได้หลายอย่าง ใช้อุปกรณ์น้อยชิ้น วิธีทำไม่ซับซ้อน

ลาภลอย วานิชอังกูร (laploy.com)

ขณะขับรถเราต้องดูเข็มวัดรอบ มาตรวัดน้ำมัน มาตรวัดความร้อน และอื่นๆ  เพื่อให้รู้ว่ารถของเรามีภาวะเป็นอย่างไร คงจะดีไม่น้อยหากคอมพิวเตอร์เตอร์มีหน้าปัดแสดงสถานะเหมือนอย่างรถยนต์ จอซุปเปอร์จิ๋วช่วยให้ความต้องการนี้กลายเป็นความจริงได้


จอซุปเปอร์จิ๋วเมื่อเสร็จสมบูรณ์แล้ว

บทความนี้ผู้เขียนจะสอนวิธีสร้างจอซุปเปอร์จิ๋วโดยละเอียด ทั้งทางฮาร์ดแวร์และซอฟท์แวร์ อธิบายหลักการทำงาน คำสั่งของวงจรควบคุมจอ LCD วิธีใช้พอร์ทขนานควบคุมการทำงานของจอ LCD วิธีเขียนโปรแกรมเพื่อติดต่อกับพอร์ทขนาน และสุดท้าย สอนวิธีสร้างโปรแกรมประยุกต์ เพื่อให้จอซุปเปอร์จิ๋วแสดงข้อมูลตามที่เราต้องการ

ตอน 1

 

จอซุปเปอร์จิ๋วเป็นอย่างนี้

ผู้เขียนสร้างจอซุปเปอร์จิ๋วจากจอ LCD ขนาดเล็กราคาถูก (คำว่า LCD ย่อมาจาก Liquid Crystal Display หมายถึงจอที่ทำจากผลึกเหลว เป็นจอที่ไม่เรืองแสง ตัวอักษรที่ได้จะเป็นสีดำบนพื้นเขียวอ่อน) จอ LCD ที่นำมาทดสอบขนาดประมาณ 4×9 ซม. อักษรหนึ่งตัวมีความสูงประมาณ 70 มิลลิเมตร แสดงตัวอักษรได้ 32 ตัว โดยแบ่งออกเป็นสองบรรทัดๆ และ 16 ตัวอักษร

ในบทความนี้หากผู้เขียนใช้คำว่าจอ LCD จะหมายถึงเฉพาะชิ้นจอ LCD หากใช้คำว่า “จอซุปเปอร์จิ๋ว” จะหมายถึงจอ LCD บวกวงจรและซอฟต์แวร์ทั้งหมดที่เราจะสร้างขึ้น เมื่อสร้างเสร็จแล้วชิ้นงานที่ได้มีขนาดเล็ก สามารถนำไปวางไว้บนโต๊ะทำงาน ติดไว้ไว้เหนือจอภาพ หรือที่ใดก็ได้ที่เห็นชัด หากนำไปดัดแปลงติดไว้กับด้านหน้าเคส หรือตั้งไว้ที่ช่องเสียบไดร์ฟ เคสเก่าของเราจะดูหรูหราเหมือนเคสรุ่นใหม่ราคาแพงขึ้นมาทันที

 

ประโยชน์ของจอซุปเปอร์จิ๋ว

ผู้เขียนจะสอนวิธีทำให้จอซุปเปอร์จิ๋วแสดงข้อมูลต่างๆ ดังนี้

  • แสดงพลังการประมวลผลของซีพียูที่ถูกใช้ไป โดยแสดงเป็นร้อยละ
  • จำนวนหน่วยความจำที่ถูกใช้ไป โดยแสดงเป็นร้อยละ
  • ความจุของฮาร์ดดิสก์ที่เหลืออยู่ โดยแสดงเป็นหน่วยเม็กกะไบต์
  • พื้นที่ในแรมที่เหลืออยู่ โดยแสดงเป็นหน่วยเม็กกะไบต์
  • เวลา โดยแสดงเป็น ชั่วโมง นาที และ AM หรือ PM
    วัน เดือน ปี

ข้อมูลเหล่านี้จะแสดงสลับกันทุกๆ สามวินาที มีประโยชน์สำหรับผู้ที่กำลังตรวจสอบสมรรถภาพของคอมพิวเตอร์ นักพัฒนาซอฟท์แวร์ และผู้ให้ความสำคัญกับประสิทธิภาพของคอมพิวเตอร์ ผู้ใช้สามารถมองเห็นข้อมูลเหล่านี้ได้ตลอดเวลา แม้กำลังเปิดโปรแกรมที่ทำงานเต็มจอ เช่นขณะที่กำลังเล่นเกมอยู่

 

กายวิภาคของจอซุปเปอร์จิ๋ว

จอซุปเปอร์จิ๋วมีส่วนประกอบเพียงสามส่วนคือ

  • พอร์ทเครื่องพิมพ์ : เป็นพอร์ทขนานที่มีอยู่หัวต่ออยู่ด้านหลังของคอมพิวเตอร์ทุกเครื่อง เราจะใช้มันเพื่อทำหน้าที่ส่งคำสั่งและข้อมูลไปยังจอ LCD
  • แหล่งจ่ายไฟ : โครงงานนี้ต้องการไฟกระแสตรง แรงดัน 5 โวลต์ จะใช้แหล่งจ่ายไฟเลี้ยง (power supply) ที่อยู่ภายในคอมพิวเตอร์ หรือจะใช้แหล่งจ่ายไฟภายนอกก็ได้
  • จอ LCD : ทำหน้าที่แสดงผล

 


แผนภูมิแสดงส่วนประกอบต่างๆ ของจอซุปเปอร์จิ๋ว

 

จอ LCD

จอ LCD ที่ผู้เขียนหามาได้คือเบอร์ SC1602H หนึ่งตัวอักษรประกอบด้วยจุด 5×8 จุด มีวงจรควบคุมการทำงานภายในเทียบเท่า (compatible) KS0066 หรือ HD44780 หากท่านหาจอ LCD เบอร์นี้ไม่ได้ ก็สามารถใช้เบอร์อื่นได้ เพราะจอ LCD ในท้องตลาดจะมีวิธีเชื่อมต่อ และคำสั่งต่างๆ เป็นมาตรฐานเดียวกันหมด


จอ LCD เบอร์ SC1602H  มีขนาด 4×9 ซม. ตัวอักษรหนึ่งตัวมีความสูงประมาณ 70 มิลลิเมตร


ขาจอ LCD มีชื่อ และหน้าที่การทำงานดังที่เห็นในตารางข้างบน
ภายในจอ LCD มีหน่วยความจำสองชุด คือหน่วยความจำส่วนแสดงผล (DD RAM) และหน่วยความจำเก็บรูปแบบตัวอักขระ (CG RAM) เมื่อเราต้องการแสดงข้อความบนหน้าจอ LCD ก็สามารถทำได้โดยเขียนข้อความนั้นไปยัง DD RAM ส่วน CG RAM มีไว้เพื่อให้ผู้ใช้สามารถสร้างตัวอักษรเองได้ เช่นภาษาไทยหรือสัญลักษณ์ต่างๆ (ไม่ได้ใช้ในโครงงานนี้)

 

รีจิสเตอร์ในจอ LCD

การส่งข้อมูลและตัวอักษรจากคอมพิวเตอร์ไปยังจอ LCD เราต้องติดต่อกับรีจิสเตอร์ของ LCD ซึ่งมีอยู่สามตัวดังนี้

  • Data : ทำหน้าที่รับข้อมูลตัวอักษร (รับเป็นรหัส ASCII) เพื่อนำไปใส่ใน DD RAM
  • Control : รับคำสั่งควบคุมการทำงานของจอ LCD เช่นคำสั่งกำหนดลักษณะเคอร์เซอร์
  • CG : ทำหน้าที่รับข้อมูลที่จะนำไปใช้กำหนดรูปแบบตัวอักษรที่ผู้ใช้กำหนดขึ้นเอง


รูป 048 : แผนภูมิแสดงโครงสร้างภายในจอ LCD

 

คำสั่งควบคุม LCD

ภายในจอ LCD มีตัวควบคุม (controller) คล้ายคอมพิวเตอร์ตัวหนึ่ง เมื่อเราต้องการแสดงผลบนจอภาพ เราจะต้องติดต่อสื่อสารกับตัวควบคุมนี้ เนื่องจากภาษาที่ใช้พูดคุยมีมาตรฐาน จอ LCD ทุกยี่ห้อทุกรุ่นจะรับรู้คำสั่งดังนี้

  1. Clear : คำสั่งล้างจอภาพ
  2. Home : เลื่อนเคอร์เซอร์ไปตำแหน่งแรก
  3. Mode set : กำหนดว่าเมื่อใส่ตัวอักษรเพิ่มเคอร์เซอร์จะเลื่อนไปทางซ้ายหรือขวา
  4. On/Off : เปิด-ปิดจอภาพ
  5. Shift : เลื่อนจอภาพหรือเคอร์เซอร์
  6. Function : กำหนดรูปแบบการเชื่อมต่อ จำนวนบรรทัด และชนิดตัวอักษรและจำนวนจุดต่อตัวอักษร
  7. CG RAM : อ้างแอดเดรสของ CG RAM
  8. DD RAM : อ้างแอดเดรสของ DD RAM
  9. Flag : อ่านค่าตัวเก็บสถานะ
  10. Write : เขียนข้อมูลไปยัง DD หรือ CG RAM
  11. Read : อ่านข้อมูลจาก DD หรือ CG RAM

เราส่งคำสั่งเหล่านี้ไปยังจอ LCD ได้โดยกำหนดตรรกะของสายข้อมูลและสายควบคุมตามตารางคำสั่ง


ตารางสรุปคำสั่งควบคุมจอ LCD

 

ขาควบคุมและจังหวะเวลา

จอ LCD มีขาควบคุมสามขาที่เราต้องกำหนดตรรกะให้ถูกจังหวะดังนี้

  • ขา R/W : ทำหน้าที่ควบคุมการอ่าน-เขียน อ่านคือตรรกะ 1 เขียนคือตรรกะ 0 โครงงานนี้ไม่มีการอ่านข้อมูลจาก LCD เราจึงต่อต่อขา R/W ลงกราวนด์
  • ขา RS : ใช้เลือกรีจิสเตอร์ ตรรกะ 0 คือรีจิสเตอร์ควบคุม 1 คือรีจิสเตอร์รับอักษร
  • ขา E : ทำหน้าที่เปิดรับข้อมูล ทำงานในช่วงการเปลี่ยนตรรกะ (ช่วงเปลี่ยนจากสูงลงต่ำ)

 


แผนภูมิเวลา (timing diagram) แสดงสัญญาณที่ขาต่างๆ ขณะส่งคำสั่งไปที่รีจิสเตอร์ควบคุม คาบเวลา t1 คือช่วงหน่วงเวลาเมื่อ E มีตรรกะ 1 ส่วน t2 คือช่วงหน่วงเวลาเมื่อ E มีตรรกะ 0 t3 คือช่วงการเปลี่ยนตรรกะซึ่งเป็นช่วงที่จอ LCD จะรับข้อมูลที่เราส่งให้ (E ทำหน้าที่เหมือนตัวควบคุม edge trigger ในวงจร latch ที่ทำงานช่วงขอบขาลง) คาบเวลา t1 และ t2 นานประมาณ 2 มิลลิวินาทีเมื่อเขียนคำสั่ง และประมาณ 1 มิลลิวินาทีเมื่อเขียนตัวอักษร

 

พอร์ทขนาน

พอร์ทขนานเรียกอีกอย่างหนึ่งว่าพอร์ทเครื่องพิมพ์ (printer port) เพราะสมัยมีพีซีใหม่ๆ เราจะต่อเครื่องพิมพ์กับพอร์ทนี้ ปัจจุบันเครื่องพิมพ์มีอินเตอร์เฟสเป็น USB หมดแล้วพอร์ทขนานจึงว่างอยู่ ในโครงงานนี้เราจะใช้พอร์ทขนานเพื่อเชื่อมต่อกับ LCD คือพอร์ทชื่อ LPT1 ซึ่งมีรีจิสเตอร์สามตัวคือ

  • พอร์ทข้อมูล : มีขนาด 8 บิต ทำหน้าที่ส่งข้อมูลออก
  • พอร์ทสถานะ : มีขนาด 5 บิต ทำหน้าที่รับข้อมูลเข้า
  • พอร์ทควบคุม : มีขนาด 4 บิต ทำหน้าที่ส่งข้อมูลออก


ในพอร์ท LPT1 มีรีจิสเตอร์ (พื้นที่ในแรม) สามตัว

โครงงานนี้จะใช้พอร์ทข้อมูลส่งข้อมูลตัวอักษรและคำสั่งให้แก่ LCD โดยเราจะใช้ครบ 8 บิต พอร์ทนี้ปรกติจะมีแอดเดรสเป็น 888 ในฐานสิบหรือ 378 ในฐานสิบหก (เปลี่ยนแปลงได้ในไบออส) และจะใช้พอร์ทควบส่งสัญญาณควบคุม LCD โดยจะใช้เพียง 2 บิต พอร์ทนี้ปรกติจะมีแอดเดรสเป็น 890 ในฐานสิบหรือ 37A ในฐานสิบหก


ขาต่างๆ ของพอร์ทขนานเมื่อดูที่คอนเนคเตอร์ DB25 ตัวผู้ ขาที่นำหน้าด้วยตัวอักษร D คือขาข้อมูล (ส่งออก) ขาที่นำหน้าด้วยตัวอักษร C คือสัญญาณควบคุม (ส่งออก) ขาที่นำหน้าด้วยตัวอักษร S คือขาสถานะ (รับเข้า)


คอนเนคเตอร์แบบ DB25 ตัวผู้ซึ่งใช้เสียบที่พอร์ทขนาน

 

อุปกรณ์ที่ต้องใช้

งานนี้ใช้อุปกรณ์อีเล็กทรอนิกส์ธรรมดาทั่วไป หาซื้อได้ตามศูนย์จำหน่ายอะไหล่อีเล็กทรอนิกส์ (เช่นที่บ้านหม้อ) จอ LCD มีหลายยี่ห้อ หลายรุ่น หลายราคา  หากมีจำนวนตัวอักษรต่อบรรทัด และจำนวนบรรทัดมาก ราคาจะยิ่งสูง จอ LCD แบบมีแสงจากด้านใน (back light) จะมีราคาสูงกว่าแบบไม่มี

รายการอุปกรณ์ที่ต้องใช้ในโครงงานนี้มีดังนี้

  • จอ LCD ขนาด 16 ตัวอักษร 2 บรรทัด
  • แผ่นวงจรพิมพ์อเนกประสงค์
  • คอนเนคเตอร์แบบ Molex
  • สายและหัวพอร์ทขนาน
  • LED สีแดงหรือเขียว
  • ตัวต้านทาน 1k ¼w
  • ตัวต้านทานเกือกม้า 10K
  • คอนเนคเตอร์สำหรับสายแพยี่สิบเส้น
  • สายแพ 20 เส้นหนึ่งเมตร
  • คอนเนคเตอร์พิน
  • คอนเนคเตอร์สองขา
  • วัสดุจิปาถะ


จอ LCD แบบต่างๆ จะใช้แบบใดก็ได้ เพราะขาและคำสั่งเหมือนกัน


แผ่นวงจรพิมพ์อเนกประสงค์ ใช้แบบรูกลมสะดวกกว่าแบบอื่น


คอนเนคเตอร์แบบ Molex ตัวผู้ ใช้ต่อกับแหล่งจ่ายไฟในคอมพิวเตอร์

คอนเนคเตอร์แบบ DB25 ตัวผู้ ใช้เสียบกับพอร์ทขนานด้านหลังคอมพิวเตอร์


LED ทำหน้าที่เป็นดวงไฟแสดงสถานะไฟเลี้ยงวงจร


ตัวต้านทาน ใช้ลดกระแสที่จ่ายให้ LED


ตัวต้านทานเกือกม้า ใช้ปรับความเข้มของจอ LCD


คอนเนคเตอร์สำหรับสายแพยี่สิบเส้น ใช้เชื่อมต่อระหว่างสายพอร์ทขนานกับจอ LCD


สายแพ ใช้เชื่อมต่อระหว่างสายพอร์ทขนานกับจอ LCD


คอนเนคเตอร์พิน ใช้เสียบกับคอนเนคเตอร์สายแพ และเชื่อมจอ LCD กับแผ่นวงจรพิมพ์

โปรดติดตามตอนต่อไป

 

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

เกี่ยวกับบล็อกนี้

เว็บบล็อก “คนคอมพิวเตอร์” หรือ Laploy’s articles เป็นบล็อกรวบรวมบทความจาก ลาภลอย วานิชอังกูร มีบทความหลายประเภทคละกัน เช่นบทความเกี่ยวกับการพัฒนาซอฟต์แวร์ บทความเกี่ยวกับการสร้างและดัดแปลงฮาร์ดแวร์ บทความเกี่ยวกับเทคโนโลยีคอมพิวเตอร์ทั่วไป บทความทั่วไป และนิยายนักสืบ

เกี่ยวกับผู้เขียน

ลาภลอย วานิชอังกูร เป็นผู้เชี่ยวชาญการพัฒนาแอพลิเกชันฐานข้อมูลและ Business Intelligence โดยเริ่มจากการพัฒนาโปรแกรมด้วย dBaseII, Clipper, FoxPro ปัจจุบันเป็นผู้เชี่ยวชาญในการบูรณาการระบบฐานข้อมูลด้วยเทคโนโลยีของไมโคร ซอฟต์เช่น ASP.NET, ADO.NET, Microsoft SQL Server 2008 และ LINQ ชำนาญการเขียนคิวรีเพื่อแก้ปัญหาทางธุรกิจที่ซับซ้อน Data mining, Data Warehouse, OLAP (SSRS), OLTP เคยออกแบบฐานข้อมูลสัมพันธ์ในองค์กรระหว่างประเทศ เคยพัฒนาแอพลิเกชันฐานข้อมูลในโครงการขนาดใหญ่หลายโครงการ และเคยให้คำปรึกษาด้าน BI ในศูนย์คอมพิวเตอร์ (T-Center) ในองค์กรของประเทศฝรั่งเศส
นอกจากงานฐานข้อมูลแล้ว ลาภลอย วานิชอังกูร ยังเชี่ยวชาญการพัฒนาซอฟต์แวร์ระบบฝังตัว (Microprocessor / Microcontroller Based Embedded System) งานพัฒนาแอพลิเกชันในอินเตอร์เน็ตแบบ RIA (Rich Internet Application) งานพัฒนาโครงสร้างพื้นฐานของซอฟต์แวร์ด้วยหลักการ OOP (Framework Development in Object Oriented Programming) ด้วยภาษา C# และ .NET Framework และงานบูรณาการระบบในองค์กรหรือ SOA (Service Oriented Architecture for Enterprise Orchestration) เคยร่วมงานกับทีมพัฒนาซอฟต์แวร์ในหลายๆ ประเทศ เช่น ไทย อินเดีย สวิส เยอรมัน และประเทศสหรัฐอเมริกา
ปัจจุบัน ลาภลอย วานิชอังกูร ทำหน้าที่ให้คำปรึกษาการวางระบบ IT (เช่น SQL, OLAP,.NET, SCADA, BI, SOA และอื่นๆ) ให้แก่หน่วยงานขนาดใหญ่หลายแห่ง และมีบทความทางวิชาการตีพิมพ์ในวารสารหลายเล่มอย่างสม่ำเสมอ และเป็นผู้เขียนหนังสือ "เรียนรู้ด้วยตนเอง DataBase - Query - T-SQL - Stored Procedure" และ “เรียนรู้ด้วยตนเอง OOP C# ASP.NET” (ISBN 13:978-974-212-598-1)
ท่านสามารถติดต่อผู้เขียนได้ที่อีเมล laploy@gmail.com

เรียนรู้ด้วยตนเอง OOP C# ASP.NET

ชื่อหนังสือ : เรียนรู้ด้วยตนเอง OOP C# ASP.NET โดย : ลาภลอย วานิชอังกูร จัดพิมพ์จัดจำหน่ายโดย : บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน) ISBN : 13:978-974-212-598-1 ราคา : 349 บาท จำนวนหน้า : 648 ขนาด : 19x29 ซ.ม.

เรียนรู้ด้วยตนเอง DataBase – Query – T-SQL – Stored Procedure

ชื่อหนังสือ: เรียนรู้ด้วยตนเอง DataBase - Query - T-SQL - Stored Procedure โดย: ลาภลอย วานิชอังกูร จัดพิมพ์จัดจำหน่าย: บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน) ISBN: 978-616-08-0009-4 ราคา: 559 บาท จำนวนหน้า: 1,100 ขนาด: 19x29 ซ.ม. วางตลาด: ตุลา 2552

กรุณาป้อนอีเมลของท่าน

Join 17 other followers

Advertisements
%d bloggers like this: