FTTL-655 เป็นจอแบบ Duplex LED Display ผมไม่เคยเล่นหรือเจอจอแบบนี้มาก่อน
มันประหลาดดี มันจะมี 2 common แถมแต่ละ sigment พ่วงกันแบบ งงๆ
หา datasheet ก็ไม่มี แต่ไปเจออันนี้เข้า
http://libesz.digitaltrip.hu/digital-clock/
มีที่เดียวจริงๆ แถม Source ดันเป็นภาษา C อีก เลยต้องดำน้ำเอง
มาว่ากันถึงหลักการขับแบบที่ผมคิดเอง
FTTL655S มีตัวเลข 4 หลัก ใช้ pin ในการขับ segment 14pin
มี colon ด้วยก็ 15pin พอดี แบบไม่รวม common และ am-pm ผมไม่ได้ใช้
อันดับแรกผมจะแบ่ง จอออกเป็น 4 ส่วน เพื่อง่ายต่อการมอง
ใช้ข้อมูล 4byte คือ 2byte บน 2byte ล่าง แยกจากกัน
ข้อมูล segment หลัก1-2 ใช้ 2byte คือ 1byte บน 1byte ล่าง
ข้อมูล segment หลัก3-4 ใช้ 2byte คือ 1byte บน 1byte ล่าง
ในข้อมูล 1byte ที่ส่งให้กับ segment จะประกอบด้วย
เลขสองหลัก และในตัวเลขสองหลักจะมี 2common sigment พ่วงกัน
จึงต้องแบ่งแยกข้อมูลออกเป็น 4 ชุดคือ
Table A = digit1บน+digit2บน
Table B = digit1ล่าง+digit2ล่าง
เอาทั้งหมดมารวมกันเป็น 2byte บนกับล่าง (A กับ B) ส่งแล้ว scan ตามลำดับ
เนื่องจากจอเป็นแบบ 2common การ scan จึงทำได้สองครั้ง
ผมก็เอาข้อมูล หลัก1-2 บน กับ หลัก3-4 บน ส่งออกไปยัง port 1-2
ตามลำดับ จากนั้นสั่ง common1 on ต่อไป ก็เอาข้อมูล หลัก1-2 ล่าง
กับ หลัก3-4 ล่าง ส่งออกไปยัง port 1-2 จากนั้นสั่ง common 2 on
การเปิดตาราง (อ้างจาก Code) โปรดดูรูปวงจรของ FTTL655S ประกอบ
ถ้านับหลักซ้ายมือสุดเป็นหลักที่1จะเห็นว่ามีการต่อ segment เหมือนกัน
ในหลักที่ 2 และ 4 สามารถใช้ตารางเดียกันได้ ส่วนหลักที่ 1 และ 3 ต่างกัน
เราก็แยกเป็นสองตาราง รวมทั้งหมด 3 ตาราง โดย table-A ใช้กับหลักที่ 1
table-B ใช้กับหลักที่ 3 และ table-C ใช้กับหลักที่ 2และ4
ต่อไปเป็นการเปิดตารางผมจะเรียกข้อมูลชุดบนว่า A และชุดล่างว่า B
ทุกครั้งที่เปิดตารางของแต่ละหลัก จะได้ข้อมูล 2 ชุด คือ A และ B
ซึ่งก็คือข้อมูลของ Common ซึ่งมีอยู่สองชุดนั่นเอง
แต่ใน 1 byte นั้นมันจะมีตัวเลขอยู่สองหลัก ดังนั้นเมื่อเปิดตารางแล้ว
ก็จะได้ข้อมูลมา 4 ชุดหรือ 4 byte คือ
A หลักที่ 1 และ B หลักที่ 1
A หลักที่ 2 และ B หลักที่ 2
นำข้อมูล A1 กับ A2 มา OR กันเป็น 1 byte
นำข้อมูล B1 กับ B2 มา OR กันเป็น 1 byte
การ scan ทำดังนี้
1.สั่ง Common 1-2 Off
2.เอาข้อมูลที่ได้จาก A1+A2 ส่งออกไปที่ port สั่ง Common 1 On
ค้างไว้ 5ms จากนั้น
3.สั่ง Common 1-2 Off
4.เอาข้อมูลที่ได้จาก B1+B2 ส่งออกไปที่ port สั่ง Common 2 On
ค้างไว้ 5ms กลับไปทำข้อ 1
จบแล้วครับ อาจไม่สมบูรณ์เท่าไร แต่คงพอเป็นแนวทางได้นะครับ
ประกอบไปด้วย Program Driver ตัวอย่าง และ Program นาฬิกา DS1307
และ Temp DS18B20 แก้ไขจาก Digital clock - Temp with 1.8 LED Display
Source Code
Open source Microcontroller Project เจอกันได้อีกหนึ่งช่องทางที่ mcu4fun.blogspot.com
ค้นหาบล็อกนี้
Custom Search
แสดงบทความที่มีป้ายกำกับ 7 แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ 7 แสดงบทความทั้งหมด
วันเสาร์ที่ 21 พฤษภาคม พ.ศ. 2554
วันอาทิตย์ที่ 20 กุมภาพันธ์ พ.ศ. 2554
7 Segment Thermometer 2 Digit
เป็น Temp monitor ที่ผมพยายามทำให้เล็กที่สุดครับซึ่งทำได้เล็กสุดแค่นี้
ย่านการวัด อยู่ที่ -9 ถึง +99 องศา ตามหลักของ 7segment
ที่เอาแค่หลักสิบไม่มีทศนิยม ถ้าเกินกว่าย่านวัดที่กำหนด จะมีตัว Er กระพริบ
ตัวแรกผมใช้กับ DS18S20 แต่ผมเห็นราคามันแพง เลยแก้ไปใช้กับ
DS18B20แทน ด้านอุปกรณ์ผมออกแบบให้ใช้อุปกรณ์ให้น้อยที่สุด
ราคาโดยรวมไม่น่าเกิน 150 บาท (เน้นประหยัด)
ปล.อาจมีคนทำเล่นเยอะแล้ว แต่ของmcs-51 หายากที่เห็นๆดูจะใช้อุปกรณ์
เยอะไปหน่อยไม่ค่อยถูกใจ
Source Code v1.0
ย่านการวัด อยู่ที่ -9 ถึง +99 องศา ตามหลักของ 7segment
ที่เอาแค่หลักสิบไม่มีทศนิยม ถ้าเกินกว่าย่านวัดที่กำหนด จะมีตัว Er กระพริบ
ตัวแรกผมใช้กับ DS18S20 แต่ผมเห็นราคามันแพง เลยแก้ไปใช้กับ
DS18B20แทน ด้านอุปกรณ์ผมออกแบบให้ใช้อุปกรณ์ให้น้อยที่สุด
ราคาโดยรวมไม่น่าเกิน 150 บาท (เน้นประหยัด)
ปล.อาจมีคนทำเล่นเยอะแล้ว แต่ของmcs-51 หายากที่เห็นๆดูจะใช้อุปกรณ์
เยอะไปหน่อยไม่ค่อยถูกใจ
Source Code v1.0
สมัครสมาชิก:
บทความ (Atom)