วิธีการใช้โมดูล LCD 12864 โดยละเอียด?

May 07, 2017

ฝากข้อความ

ข้อสังเกตตอนต้นของบทความ: บทความนี้เป็นเพียงการแนะนำเบื้องต้นเกี่ยวกับการทำงานของ 12864 เฉพาะผู้มาใหม่ที่เพิ่งติดต่อ 12864 เท่านั้น โปรดดูที่ การเขียนบทความค่อนข้างหลวม ขอแนะนำให้สามเณรดูคู่มือ 12864 และคู่มือภาษาอังกฤษของไดรเวอร์ควบคุม ST7920 , อ่านบทความนี้อีกครั้งหลังจากมีความเข้าใจเบื้องต้นแล้ว คุณจะมีความเข้าใจที่ลึกซึ้งยิ่งขึ้น ขอแนะนำให้อ่านคู่มือภาษาอังกฤษ ST7920 อย่างละเอียด! มีการแนะนำโดยละเอียดในรายละเอียด และภาษาจีน 12864 ส่วนใหญ่ก็แปลมาจากภาษาจีนด้วย

บทความนี้แบ่งออกเป็นสามขั้นตอนเพื่อแนะนำหลักการทรัพยากรภายในของ 12864 คำอธิบายโดยละเอียดของชุดคำสั่ง และตัวอย่างการใช้งาน

มีการดำเนินการสี่ประเภทสำหรับ 12864:

1). อ่านสถานะไม่ว่าง (เนื้อหาของที่อยู่ตัวชี้จะถูกอ่านพร้อมกัน) หลังจากการเริ่มต้น การอ่านและเขียนแต่ละรายการใน 12864 จะต้องตรวจพบว่ากำลังยุ่งอยู่ 2) เขียนคำสั่ง: คุณสามารถตรวจสอบรายการคำสั่งสำหรับคำสั่งทั้งหมด และการใช้งานโดยละเอียดของคำสั่งจะอธิบายในภายหลัง ที่อยู่การเขียนยังเป็นคำสั่งเขียนอีกด้วย 3) เขียนข้อมูล: วัตถุของการดำเนินการคือ DDRAM, CGRAM, GDRAM

4) อ่านข้อมูล: วัตถุของการดำเนินการคือ DDRAM, CGRAM, GDRAM



12864液晶模块


สำหรับการศึกษา 12864 คุณต้องเข้าใจแหล่งข้อมูลภายในก่อน เมื่อรู้ว่ามีอะไรอยู่ในนั้นคุณจึงใช้งานได้สะดวกยิ่งขึ้น

ก่อนอื่นแนะนำชื่อภาษาอังกฤษสองสามชื่อโดยย่อ:

DDRAM: (Data DisplayRam), data display RAM, สิ่งที่คุณเขียนลงไป, จะแสดงสิ่งที่หน้าจอจะแสดง

CGROM: ​​(CharacterGeneration ROM), ROM การสร้างอักขระ ข้างในเป็นฟอนต์สำหรับเก็บอักษรจีน หรือที่เรียกว่าคลังอักษรจีน วิธีการเข้ารหัสคือ GB2312 (จีนตัวย่อ) และ BIG5 (จีนตัวเต็ม) ผู้เขียนใช้ QC12864B ของ Yusong Electronics และคำอธิบายอิงจากตัวอย่างนี้ CGRAM: (CharacterGeneration RAM), character generation RAM, 12864 ให้ CGRAM ขนาด 64x2B ซึ่งสามารถใช้สำหรับอักขระที่ผู้ใช้กำหนด 4 16 × 16 อักขระแต่ละตัวมีขนาด 32 ไบต์

GDRAM: (กราฟิก DisplayRAM): แรมการแสดงผลกราฟิก พื้นที่นี้ใช้สำหรับการวาดภาพ มันก็เหมือนกัน—ไม่ว่าจะเขียนอะไรไว้ หน้าจอจะแสดงสิ่งที่แสดงออกมา ความแตกต่างระหว่างมันกับ DDRAM คือข้อมูลที่เขียนไปยัง DDRAM คือ การเข้ารหัสอักขระและการแสดงอักขระจะพบใน CGROM ก่อน จากนั้นจึงจับคู่กับหน้าจอ และเมื่อเขียนข้อมูลไปยัง GDRAM ข้อมูลดอทเมทริกซ์ของกราฟิกจะใช้ 1 bit เพื่อบันทึกการแสดงผลหรือไม่

HCGROM: ​​(ROM การสร้างอักขระครึ่งความสูง): ตัวสร้างอักขระครึ่งความกว้าง ซึ่งเป็นตัวอักษรและตัวเลข นั่นคือ รหัส ASCII สำหรับ ICONRAM (IRAM): ดูเหมือนว่า 12864 ในตลาดปัจจุบันไม่มีฟังก์ชันนี้ และฉันไม่พบมัน ข้อมูลการสมัคร จะไม่แนะนำที่นี่ครับ

ด้านล่างนี้ เราจะเริ่มคำอธิบายของ 12864 รอบๆ รายการทรัพยากรที่ระบุไว้ด้านบน: DDRAM:

12864 ที่ผู้เขียนใช้มี 4 แถว x 32 ไบต์ของพื้นที่ DDRAM ภายใน แต่ในช่วงเวลาหนึ่งหน้าจอสามารถแสดงพื้นที่ได้เพียง 2 บรรทัด x 32 ไบต์ แล้วพื้นที่ที่เหลือล่ะ? สามารถใช้สำหรับแคช และพื้นที่เหล่านี้มีประโยชน์เมื่อใช้งานการเลื่อนหน้าจอ

โครงสร้าง DDRAM มีดังนี้:

80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H, 88H, 89H, 8AH, 8BH, 8CH, 8DH, 8EH, 8FH90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H , 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FHAOH, A1H, A2H, A3H, A4H, A5H, A6H, A7H, A8H, A9H, AAH, ABH, ACH, ADH, AEH, AFHBOH, B1H, B2H , B3H, B4H, B5H, B6H, B7H, B8H, B9H, BAH, BBH, BCH, BDH, BEH, BFH

ความสอดคล้องระหว่างที่อยู่และการแสดงผลหน้าจอมีดังนี้:

Row-80H, 81H, 82H, 83H, 84H, 85H, 86H, 87H แถวที่สอง: 90H, 91H, 92H, 93H, 94H, 95H, 96H, 97H แถวที่สาม: 88H, 89H, 8AH, 8BH , 8CH, 8DH, 8EH, 8FH แถวที่สี่: 98H, 99H, 9AH, 9BH, 9CH, 9DH, 9EH, 9FH

หมายเหตุ: ข้อมูลในส่วนสีแดงจะแสดงที่ครึ่งบนของหน้าจอ และข้อมูลในส่วนสีเขียวจะแสดงที่ครึ่งล่างของหน้าจอ โดยทั่วไป เราใช้ช่องว่างของสองบรรทัดข้างต้นเพื่อแสดงอักขระ นั่นคือ 80H~8FH, 90H~9FH พื้นที่ของที่อยู่แต่ละที่อยู่คือ 2 ไบต์ ซึ่งก็คือ 1 คำ จึงสามารถใช้เก็บอักขระได้ พื้นที่เข้ารหัสทั้งหมดคือ 128 ไบต์ เนื่องจากการเข้ารหัสของอักขระภาษาจีนแต่ละตัวมีขนาด 2 ไบต์ แต่ละที่อยู่จึงต้องใช้ 2 ไบต์ในการจัดเก็บอักขระภาษาจีน แน่นอน ยังสามารถใช้ 2 ไบต์เหล่านี้แยกจากกัน นั่นคือ แสดงอักขระครึ่งความกว้าง 2 ตัว

ข้อมูลที่จัดเก็บใน DDRAM เป็นรหัสอักขระทั้งหมด และรหัสที่สามารถเขียนได้ ได้แก่ รหัส ASCII, รหัส GB2312 และรหัส BlG5 ดูเหมือนว่าไลบรารีฟอนต์ 12864 ที่ผู้เขียนใช้จะไม่สมบูรณ์ และ"หมายเลข" ของอักขระไม่สามารถแสดงได้ แต่จะแสดงอักขระอื่น ๆ หากคุณแสดงบทความตัวอักษรจีนยาว ข้อดีไม่เหมาะ

ข้อมูล DDRAM อ่านและเขียน:

ข้อมูลทั้งหมดที่อ่านและเขียนควรส่งที่อยู่ก่อน จากนั้นจึงอ่านและเขียน เมื่อเขียนข้อมูลไปยัง DDRAM ตรวจสอบให้แน่ใจว่าข้อมูลนั้นอยู่ในชุดคำสั่งพื้นฐาน (เปิดด้วยคำสั่ง 0x30) จากนั้นจึงเขียนที่อยู่ จากนั้นเขียนข้อมูลสองไบต์ติดต่อกัน เมื่ออ่านข้อมูล ให้เขียนที่อยู่ใต้ชุดคำสั่งพื้นฐานก่อน แล้วจึงอ่านอีกครั้ง จากนั้นอ่านข้อมูล 2 ไบต์อย่างต่อเนื่อง หลังจากอ่านแล้ว ตัวชี้ที่อยู่จะเป็นหนึ่งตัวโดยอัตโนมัติและข้ามไปยังคำถัดไป หากคุณต้องการอ่านข้อความถัดไป เนื้อหาของคำเพียงต้องการอ่านข้อมูล 2 ไบต์อย่างต่อเนื่อง ต้องสังเกตการอ่านปลอมที่นี่ ไม่เพียงแค่การอ่าน CGRAM เท่านั้นที่ต้องมีการอ่านปลอม แต่การอ่าน GDRAM และ DDRAM อื่นๆ นั้นจำเป็นต้องมีการอ่านปลอมก่อน จากนั้นการอ่านที่ตามมาก็คือการอ่านที่แท้จริง การอ่านปลอมคือการอ่านข้อมูลเพียงครั้งเดียว แต่ข้อมูลจะไม่ถูกเก็บไว้ กล่าวคือ ข้อมูลที่อ่านเป็นครั้งแรกหลังจากส่งที่อยู่ไม่ถูกต้อง และข้อมูลหลังจากนั้นถูกต้อง (ดัมมี่ หมายถึง การอ่านหลอก)

12864液晶模块




สิ่งที่ต้องอธิบายเกี่ยวกับการจัดเก็บรหัสใน DDRAM มีดังนี้:

1) แต่ละครั้งที่หน่วยปฏิบัติการของ DDRAM มีหนึ่งคำ นั่นคือ 2 ไบต์ เมื่อเขียนข้อมูลไปยัง DDRAM ให้เขียนที่อยู่ก่อนแล้วจึงส่งข้อมูล 2 ไบต์อย่างต่อเนื่อง และส่งคำสูงก่อน ข้อมูลของส่วนแล้วข้อมูลของไบต์ต่ำจะถูกส่ง เช่นเดียวกับเมื่ออ่านข้อมูล เขียนที่อยู่ก่อน จากนั้นอ่านข้อมูลแบบไบต์สูง จากนั้นอ่านข้อมูลแบบไบต์ต่ำ (โปรดระวังการอ่านข้อมูลเท็จเมื่ออ่านข้อมูล)

2). เมื่อแสดงอักขระครึ่งความกว้างโค้ด ASCII ให้ส่งโค้ด ASCII 2 ไบต์ไปยังแต่ละที่อยู่ และอักขระครึ่งความกว้าง 2 ตัวจะแสดงตามตำแหน่งบนหน้าจอ ตัวซ้ายเป็นอักขระแบบไบต์สูงและตัวขวาเป็นอักขระแบบไบต์ต่ำ

3). เมื่อแสดงอักขระภาษาจีน การเข้ารหัสอักขระภาษาจีนสองไบต์ต้องเก็บไว้ในพื้นที่ที่อยู่เดียวกัน และไม่สามารถจัดเก็บไว้ในที่อยู่สองแห่งแยกกัน มิฉะนั้น อักขระที่แสดงจะไม่ใช่อักขระที่คุณต้องการ 2 ไบต์ในแต่ละคำจะรวมกันโดยอัตโนมัติเพื่อค้นหาแบบอักษรและแสดงอักขระ ดังนั้น หากเราเขียนการเข้ารหัสอักขระภาษาจีนแบบ 2 ไบต์ไปยังที่อยู่ อักขระนั้นจะแสดงอย่างถูกต้อง ไบต์สูงของการเข้ารหัสจะถูกเก็บไว้ในไบต์ต่ำของที่อยู่ก่อนหน้า และไบต์ต่ำของการเข้ารหัสจะถูกเก็บไว้ในคำสูงของที่อยู่ถัดไป ส่วนเห็นได้ชัดว่าพวกเขาจะไม่รวมกันเพื่อค้นหาแบบอักษร แต่เพื่อค้นหาแบบอักษรร่วมกับไบต์ที่สอดคล้องกันของแต่ละที่อยู่


12864液晶模块


4). เนื่องจากคอนโทรลเลอร์ ST7920 มีอักขระที่กำหนดเอง 4 ตัว อักขระที่กำหนดเองทั้ง 4 ตัวจึงสามารถแสดงได้ทั้งหมด ในทำนองเดียวกัน อักขระที่กำหนดเอง 4 ตัวเหล่านี้ถูกเข้ารหัสด้วย แต่การเข้ารหัสของอักขระ 4 ตัวเหล่านี้ได้รับการแก้ไขแล้ว คือ 0000H, 0002HO004H และ 0006H ตามลำดับ ดังที่แสดงด้านล่าง:

12864液晶模块




รูปด้านบนวาดแค่พื้นที่ CGRAM 2 ตัว และจะมี 2 ตัวในอนาคต จะเห็นได้ว่าอักขระแต่ละตัวมี 16 แถว 16 คอลัมน์ และแต่ละแถวใช้ 2 ไบต์ ดังนั้น พื้นที่ว่างของอักขระคือ 32 ไบต์ และที่อยู่คือ 6 บิต ที่อยู่ของอักขระ 4 ตัวคือ: O0H~ OFH,

10H~1FH, 20H~2FH, 30H~3FH. การเข้ารหัสใช้ 2 ไบต์ จะเห็นได้ว่า 2 บิตเป็นแบบสุ่ม ซึ่งบ่งชี้ว่าสามารถเข้ารหัสได้หลายตัวสำหรับอักขระ 4 ตัวนี้ แต่เรามักใช้การเข้ารหัส 4 ตัวตามรายการข้างต้น

CGRAM: (ข้อมูลอ่านและเขียน)

โครงสร้างของ CGRAM แสดงไว้ด้านบน เราเพิ่มเนื้อหาบางส่วนเพื่ออ่านและเขียน CGRAM ก่อนอ่านเขียนเขียนที่อยู่ก่อน คำแนะนำในการเขียน CGRAM คือที่อยู่ Ox4O{{1}} แต่เวลาเขียน address เราต้องเขียน address ของบรรทัดแรกเท่านั้น ตัวอย่างเช่น อักขระตัวแรกคือ Ox40+OOH จากนั้นเขียนข้อมูล 2 ไบต์อย่างต่อเนื่อง จากนั้นตัวชี้ที่อยู่จะเพิ่มขึ้นหนึ่งตัวโดยอัตโนมัติและข้ามไปยังบรรทัดถัดไป ที่อยู่ แล้วเขียนข้อมูล 2 ไบต์ อันที่จริง การเขียนโปรแกรมคือการเขียนที่อยู่ แล้วเขียนข้อมูล 32 ไบต์อย่างต่อเนื่อง หากต้องการอ่านข้อมูล ให้เขียนที่อยู่แรกก่อน จากนั้นจึงอ่านผิด 1 ครั้ง จากนั้นจึงอ่านข้อมูล 32 ไบต์อย่างต่อเนื่อง

GDRAM: (RAM แสดงผลกราฟิก)

โครงสร้างเชิงพื้นที่ของการวาดภาพ RAM แสดงในรูปด้านล่าง:




ส่งคำถาม