ZLCD128.TXT - โปรแกรมตัวอย่างสำหรับ Graphic LCD 128 x 64 (เมษายน 2546 เกรียงศักดิ์ บุญเสริมสุวงศ์) โปรแกรมตัวอย่าง xlcd128.zip (จากหัวข้อ Example) จะสามารถ Unzip เป็นไฟล์ได้ดังนี้ lcdfone.asm คือไฟล์ Font ตัวอักษรภาษาอังกฤษ ที่ต้องแปลด้วย SXA51 (Assembler) lcdfone.hex คือไฟล์ .hex ที่แปลจาก lcdfone.asm แล้ว (Origin 2000H) xlcd128.c คือไฟล์โปรแกรมตัวอย่างภาษา C ที่ต้องแปลด้วย CA51 (C Compiler) xlcdsub.a51 คือไฟล์ร่วมสำหรับ xlcd128.c คือเป็น Subroutine ภาษา Assembly xlcd128.hex คือไฟล์ .hex ที่แปลจาก xlcd128.c + xlcdsub.a51 เรียบร้อบแล้ว (Origin 0000H) การโปรแกรมลงตัวชิพ ... # ใช้กับ Hardware TLCD-164 ซึ่งมีวงจรการต่อ Graphic LCD แบบ ตรงไปตรงมา คือต่อขาสัญญานต่าง ๆ เข้ากับ Port จากชิพ MCU โดยตรง ถ้าต้องการปรับให้ใช้กับบอร์ดอื่น ๆ ต้องแก้ไขที่ช่วงต้นของโปรแกรม xlcd128.c # ใช้กับชิพ 89C51RD2 เท่านั้น โดยจะต้องโหลดไฟล์ .hex ทั้ง 2 ไฟล์คือ xlcd128.hex ที่ 0000H lcdfone.hex ที่ 2000H ส่วนที่ตำแหน่ง 4000H ขึ้นไป จะใช้โหลดไฟล์ภาพจากเครื่อง PC ซึ่งจะทำในขั้นตอนการใช้งานอีกที การสร้างไฟล์ภาพบนเครื่อง PC ... # ใช้โปรแกรม Paint ของ Windows โดยให้ตั้ง Image/Attributes ใหม่ โดยตั้ง Width=128 Height=64 (Pixels) ซึ่งตรงกับขนาดของ LCD พอดี รวมทั้งตั้ง Colors เป็น Black and White # วาดภาพได้ตามต้องการ และเมื่อจะ Save ไฟล์ ให้ตั้งนามสกุลเป็น Monochrome Bitmap (.BMP) ซึ่งไฟล์นี่แหละ จะใช้สำหรับโหลด เข้าตัวชิพ 89C51RD2 ได้โดยตรง # ไฟล์จะมีขนาดของภาพเป็น 1024 Byte (128 x 64 / 8) และเมื่อรวมส่วน Heading ต่าง ๆ ก็จะมีขนาดเป็น 1086 Byte แต่เมื่อโหลดลงตัวชิพจริง ๆ โปรแกรมจะช่วยตัดส่วน Heading ออก ให้เหลือเฉพาะส่วนข้อมูล 1024 Byte เท่านั้น ซึ่งเมื่อเก็บลงในตัวชิพตั้งแต่ 4000H-9800H ก็จะเก็บได้ถึง 16 ภาพ อย่างสบาย การใช้งานโปรแกรม ... เริ่มแรกให้ตั้ง Dip-Switch เป็น Off หมดแล้วจึงจ่ายไฟเข้าบอร์ด จากนั้นที่ LCD จะแสดงข้อความสำหรับการตั้ง Dip-Switch ดังนี้ # Dip-5 ถึง 8 สำหรับการตั้งหมายเลขของไฟล์ภาพ # Dip-1=On สำหรับแสดงภาพจากไฟล์ภาพในตัวชิพ ตามหมายเลขที่ตั้งจาก Dip5-8 # Dip-2=On สำหรับแสดงภาพจากไฟล์ภาพในตัวชิพ โดยจะแสดงภาพทุกภาพ เท่าที่มีอยู่ในตัวชิพ วนไปเรื่อย ๆ ภาพละ 5 วินาที # Dip-3=On สำหรับลบไฟล์ภาพในตัวชิพทั้งหมด (จะมีการ Confirm อีกที ด้วย Dip-1) # Dip-4=On สำหรับการโหลดไฟล์ภาพจาก PC ลงตัวชิพ ตามหมายเลขที่ตั้งจาก Dip5-8 ซึ่งจะโหลดผ่าน RS232 ด้วยความเร็ว 19200,n,8,1 โดยทางด้าน PC ให้ใช้คำสั่งบน dos ได้ตามตัวอย่างนี้ ... mode com1:19200,n,8,1 copy file.bmp com1 หรือจะโหลดด้วยโปรแกรม Terminal ต่าง ๆ ก็ได้ เช่น Telix , Hyper Terminal # การใช้งานโปรแกรม ก็คือการตั้ง Dip-1 ถึง 4 เป็น On (ตัวใดตัวหนึ่ง) และเมื่อทำงาน เสร็จแล้ว ก็สามารถ Off เพื่อกลับมาที่เมนูหลักได้เสมอ ประเด็นที่เรียนรู้ได้จากตัวอย่างนี้ ... # เข้าใจการสั่งงานและควบคุม Graphic LCD รุ่น 128 x 64 # เข้าใจการโปรแกรม Flash แบบ IAP (In-Application Programming) คือสามารถลบได้ และโปรแกรมได้ภายในตัวชิพ โดยไม่เกี่ยวข้องกับการ โปรแกรมแบบ ISP ที่ทำงานด้วย Boot-Rom (โปรแกรม IAP ส่วนนี้คือ ส่วนที่ทำงานด้วย Subroutine ที่เป็นภาษา Assembly) # เข้าใจการจัดวางตัวของไฟล์ .BMP # เข้าใจการสร้าง Font ภาษาอังกฤษ ซึ่งที่เมนูหลักนั้น ข้อความที่ปรากฏ จะเกิดขึ้นจากการสร้าง Font ในตัวโปรแกรมเอง ไม่ใช่จากตัว LCD แต่อย่างใด รายละเอียดต่าง ๆ ขอให้ดูได้จากตัวโปรแกรมอีกที หวังว่าจะเป็นประโยชน์กับทุก ๆ ท่านครับ ...