ค้นหาบล็อกนี้

Custom Search

วันเสาร์ที่ 26 กุมภาพันธ์ พ.ศ. 2554

LED Dot Matrix Display V1



เนื่องจากทุนน้อยครับเอามันแค่นี้ก่อน

การเลื่อนตัวอักษรไม่ได้ยากเท่าใดนัก ทั้งหมดสามารถทำผ่าน buffer ได้ง่ายๆ
โดยกำหนด buffer ขึ้นมาเท่าจำนวนของ column ในรูปคือ 20 byte
ส่วนอีก 5 byte มีไว้ใช้ buffer ข้อมูลจากการเปิดตาราง แล้วเอามา
พักไว้ที่นี่ step การเลื่อนข้อความเบื้องต้นคือ

1.กำหนดตำแหน่งแรกของ pointer ข้อความ
2.กำหนดตำแหน่ง ที่ character buffer
3.เปิดตารางตัวอักษรจาก pointer
4.นำค่าจากตารางเก็บลง buffer
5.scan display ไว้ระยะหนึ่ง
6.เลื่อนข้อมูล display buffer ทั้งหมด ไปทางซ้าย 1 ครั้ง
แล้วกลับไปข้อ 5. ทำจนครบ 5 ครั้ง
7.เพิ่มค่า pointer กลับไปข้อ 2.

การ scan display ใช้หลักการคล้ายๆกับ 7 segment
คือ กำหนด pointer ที่ตำแหน่งแรก display buffer1 (30H)
แล้วนำค่าที่ pointer ชี้ไปส่งให้ Row Shift register
เพื่อส่งไปยัง dot matrix จากนั้นให้ column on
เพิ่มค่า pointer ทำจนครบ 20 column

tip....
คือ data เป็นของ column ไหนก็ให้ column นั้น on
อย่างวงจรที่ผมใช้ column เป็นลบ ผมก็สั่ง ให้ shift bit
นั้นเป็น 0 ครับ... และก่อนจะส่งค่าใดๆทาง row ให้
off ทุก column ก่อนเสมอ ช่วยแก้เบลอได้ 100%
รายละเอียดหลักๆ น่าจะมีเท่านี้ ถ้าได้อะไรใหม่ๆจะมาเล่าให้ฟังอีกที.....

source ตัวนี้ผมทำ buffer ไว้ 24 byte ครับ
เวลาเรียกใช้ ให้ใส่ค่า address 1-4 ลง acc
โดยเรียกโปรแกรมย่อย setaddress จากนั้น ตามด้วย putchar

ตัวอย่าง....
mov a,#1
acall setaddress ;buffer ตำแหน่งที่1
mov a,#"A"
acall putchar ;เก็บค่า "A" จากตาราง ลง buffer ตำแหน่งที่1

ในส่วนของ scan display เอาค่าที่เก็บจาก buffer ไปใช้ได้เลย
โดยมีคำสั่ง shift display ไว้ให้แล้ว
ตัวเต็มผม open source เหมือนเดิม แต่คงเอาแค่ อ่านข้อความจาก
programmemory เอามาวิ่งแสดงเฉยๆ ที่เหลือไปเขียนต่อกันเอง
เพราะเดี๋ยวจะงงกันซะเปล่าๆ video ผมถ่ายชัดสุดได้แค่นี้...

Source Code v1.0

ไม่มีความคิดเห็น: