- วัสดุที่ต้องการ:
- บทนำสู่ 16 × 2 Dot matrix LCD display:
- แผนภาพวงจรและการเชื่อมต่อ:
- การเขียนโปรแกรม MSP430 สำหรับ LCD โดยใช้ Energia:
- 16x2 LCD พร้อม MSP430G2:
นี่เป็นบทช่วยสอนที่สามในลำดับของบทช่วยสอนที่เรากำลังเรียนรู้การเขียนโปรแกรม MSP430G2 LaunchPad โดยใช้ Energia IDE ในบทช่วยสอนก่อนหน้านี้เราได้เรียนรู้วิธีควบคุมพินอินพุตและเอาต์พุตดิจิทัลบนบอร์ด MSP ของเรา ในบทช่วยสอนนี้เราจะเรียนรู้วิธีการเชื่อมต่อ LCD กับบอร์ดเพื่อให้เราสามารถแสดงข้อมูลที่เป็นประโยชน์ได้
LCD ที่เราใช้ในโปรเจ็กต์นี้เป็นจอแสดงผล LCD แบบ Dot matrix 16 × 2 ที่ใช้กันมากที่สุด akan Alphanumeric Displays พวกเราส่วนใหญ่จะเจอปัญหานี้ผ่าน PCO สาธารณะหรือโครงการอิเล็กทรอนิกส์อื่น ๆ การแสดงผลเช่นนี้จะมีประโยชน์มากสำหรับบทช่วยสอนในอนาคตของเราในการแสดงข้อมูลและข้อมูลการแก้ไขข้อบกพร่องอื่น ๆ การเชื่อมต่อ LCD กับ MSP430เป็นเรื่องง่ายมากเนื่องจากมีไลบรารี งั้นมาดำน้ำกัน !!
วัสดุที่ต้องการ:
- MSP430G2 LaunchPad จาก Texas Instruments
- จอ LCD 16 × 2 Dot matrix
- การเชื่อมต่อสายไฟ
- Energia IDE
บทนำสู่ 16 × 2 Dot matrix LCD display:
อย่างที่บอกไปก่อนหน้านี้ Energia IDE มีไลบรารีที่สวยงามซึ่งทำให้การเชื่อมต่อกับชิ้นเค้กดังนั้นจึงไม่จำเป็นต้องรู้อะไรเกี่ยวกับโมดูลการแสดงผล แต่มันจะไม่น่าสนใจที่จะแสดงสิ่งที่เราใช้ !!
ชื่อ 16 × 2 หมายความว่าจอแสดงผลมี 16 คอลัมน์และ 2 แถวซึ่งรวมกัน (16 * 2) เป็น 32 ช่อง กล่องเดียวจะมีลักษณะดังนี้ในภาพด้านล่าง
กล่องเดียวมี 40 พิกเซล (จุด) โดยมีลำดับเมทริกซ์เป็น 5 แถวและ 8 คอลัมน์โดย 40 พิกเซลเหล่านี้รวมกันเป็นหนึ่งอักขระ ในทำนองเดียวกันสามารถแสดงอักขระ 32 ตัวโดยใช้กล่องทั้งหมด ตอนนี้ให้ดูที่ pinouts
LCD มีทั้งหมด 16 พินดังที่แสดงไว้ด้านบนสามารถแบ่งออกเป็นสี่กลุ่มดังนี้
พินต้นทาง (1, 2 และ 3): พินเหล่านี้ให้แหล่งพลังงานและระดับคอนทราสต์สำหรับจอแสดงผล
พินควบคุม (4, 5 และ 6):พินเหล่านี้ตั้งค่า / ควบคุมรีจิสเตอร์ใน IC เชื่อมต่อ LCD (สามารถดูข้อมูลเพิ่มเติมได้ในลิงค์ด้านล่าง)
หมุดข้อมูล / คำสั่ง (7 ถึง 14):หมุดเหล่านี้ให้ข้อมูลของข้อมูลที่ควรแสดงบนจอ LCD
หมุด LED (15 และ 16):หมุดเหล่านี้ใช้เพื่อเรืองแสงด้านหลังของ LCD หากจำเป็น (อุปกรณ์เสริม)
จาก 16 พินทั้งหมดนี้จำเป็นต้องใช้เพียง 10 พินเพื่อการทำงานที่เหมาะสมของ LCD หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับจอแสดงผล LCD เหล่านี้ให้ข้ามไปที่บทความ LCD
แผนภาพวงจรและการเชื่อมต่อ:
แผนภาพวงจรที่สมบูรณ์เพื่อเชื่อมต่อกับจอแสดงผล LCD 16 × 2 Dot matrix กับ MSP430G2แสดงอยู่ด้านล่าง
ข้อ จำกัด ที่สำคัญอย่างหนึ่งในขณะที่เชื่อมต่อทั้งสองนี้คือแรงดันไฟฟ้าในการทำงาน จอแสดงผล LCD มีแรงดันไฟฟ้า + 5V ในขณะที่MSP ทำงานด้วย 3.6Vเท่านั้น โชคดีสำหรับเราที่พินข้อมูลของ IC อินเตอร์เฟส LCD (HD44780U) มีแรงดันไฟฟ้าที่ใช้งานได้กว้าง 2.7V ถึง 5.5V ดังนั้นเราจึงต้องกังวลเกี่ยวกับ Vdd (พิน 2) ของ LCD ในขณะที่พินข้อมูลสามารถทำงานได้แม้กับ 3.6V
โดยค่าเริ่มต้นบอร์ด MSP430G2 จะไม่ให้พิน + 5V แก่คุณ แต่เราสามารถแฮ็คขนาดเล็กเพื่อรับ + 5V จาก MSP430โดยใช้พอร์ต USB หากคุณดูใกล้ ๆ พอร์ต USB คุณจะพบเทอร์มินัลที่เรียกว่า TP1 เทอร์มินัลนี้จะให้ + 5v แก่เรา สิ่งที่เราต้องทำก็คือการบัดกรีหมุดส่วนหัวชายขนาดเล็กดังที่แสดงด้านล่างเพื่อให้เราสามารถเชื่อมต่อกับจอ LCD ของเรา
หมายเหตุ: อย่าเชื่อมต่อโหลดที่อาจใช้พลังงานมากกว่า 50mA กับขา 5V นี้เพราะอาจทำให้พอร์ต USB ของคุณเสีย
หากคุณไม่สนใจในการบัดกรีเพียงแค่ใช้แหล่งจ่ายไฟที่มีการควบคุม + 5V และจ่ายไฟให้กับ LCD ในกรณีนั้นตรวจสอบให้แน่ใจว่าคุณได้เชื่อมต่อสายดินของแหล่งจ่ายไฟเข้ากับพื้นของบอร์ด MSP
เมื่อคุณทำด้วยพิน + 5V ที่เชื่อมต่อกับพินอื่น ๆ จะค่อนข้างตรงไปตรงมา ตอนนี้ฮาร์ดแวร์ของเราพร้อมแล้วเรามาดูส่วนซอฟต์แวร์กันดีกว่า
การเขียนโปรแกรม MSP430 สำหรับ LCD โดยใช้ Energia:
โปรแกรมที่สมบูรณ์ให้กับอินเตอร์เฟซ MSP430G2553 กับจอแสดงผลแอลซีดีจะได้รับในตอนท้ายของหน้านี้ โค้ดสามารถรวบรวมอัปโหลดและใช้งานได้ ในย่อหน้าต่อไปนี้ฉันจะอธิบายวิธีการทำงานของโปรแกรม
ก่อนที่เราจะดำเนินการตามคำอธิบายเราต้องจดบันทึกหมุดที่เราใช้ หากคุณดูแผนภาพวงจรด้านบนและแผนภาพพินเอาต์ MSP430 ด้านล่าง
คุณสามารถสรุปได้ว่าเราได้เชื่อมต่อ LCD ตามตารางต่อไปนี้
ชื่อพิน LCD |
เชื่อมต่อกับ |
Vss |
พื้น |
Vdd |
+ ขา USB 5V |
อาร์เอส |
พิน 2 ของ MSP |
R / W |
พื้น |
เปิดใช้งาน |
พิน 3 ของ MSP |
D4 |
พิน 4 ของ MSP |
D5 |
พิน 5 ของ MSP |
D6 |
พิน 6 ของ MSP |
D7 |
พิน 7 ของ MSP |
ด้วยเหตุนี้เรามาเริ่มกำหนดพิน LCD ที่ใช้ในโปรแกรมของเรา เราจะตั้งชื่อพินแต่ละอันด้วยชื่อที่มีความหมายมากขึ้นเพื่อให้ใช้งานได้ง่ายในภายหลัง
#define RS 2 #define EN 3 #define D4 4 #define D5 5 #define D6 6 #define D7 7
นี่หมายความว่าแทนที่จะเรียกพิน 2 ฉันสามารถเรียกมันว่า RS ต่อจากนี้ได้ในทำนองเดียวกันสำหรับพินทั้ง 6
ขั้นตอนต่อไปจะได้แก่ ห้องสมุดจอแอลซีดี ไลบรารีนี้จะได้รับการติดตั้งโดยอัตโนมัติเมื่อคุณติดตั้ง Energia IDE เพิ่มเข้าไปโดยใช้บรรทัดต่อไปนี้
# รวม
ขั้นตอนต่อไปคือการพูดถึงพินที่เชื่อมต่อกับLCDตามที่เราได้ตั้งชื่อไว้แล้วโดยใช้ #define ตอนนี้เราสามารถพูดถึงชื่อของพิน LCD ได้ ตรวจสอบให้แน่ใจว่าปฏิบัติตามคำสั่งเดียวกัน
LiquidCrystal LCD (RS, EN, D4, D5, D6, D7);
ตอนนี้ให้เราย้ายเข้าไปอยู่ใน การติดตั้งเป็นโมฆะ () ฟังก์ชั่นมีจอ LCD หลายประเภทที่มีขนาดและลักษณะแตกต่างกันไปโดยที่เราใช้คือ 16 * 2 ดังนั้นให้ระบุว่าในโปรแกรมของเรา
lcd.begin (16, 2);
ในการพิมพ์บางสิ่งบน LCD เราต้องพูดถึงสองสิ่งในโปรแกรม หนึ่งคือตำแหน่งของข้อความที่สามารถกล่าวถึงได้โดยใช้บรรทัด lcd.setCursor () และอื่น ๆ คือเนื้อหาที่จะพิมพ์ซึ่งสามารถกล่าวถึงโดย lcd.print () ในบรรทัดนี้เราจะตั้งค่าเคอร์เซอร์ไป 1 เซนต์แถวและ 1 เซนต์คอลัมน์
lcd.setCursor (0,0);
ในทำนองเดียวกันเราสามารถ
lcd.setCursor (0, 1); // ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ที่ 1 แถวที่ 2
เช่นเดียวกับการลบไวท์บอร์ดหลังจากเขียนลงไปแล้วควรลบ LCDเมื่อมีสิ่งที่เขียนลงไป ซึ่งสามารถทำได้โดยใช้บรรทัดด้านล่าง
lcd.clear ();
ดังนั้นสมบูรณ์ ติดตั้งเป็นโมฆะ () ฟังก์ชั่นจะมีลักษณะบางอย่างเช่นนี้
การตั้งค่าเป็นโมฆะ () {lcd.begin (16, 2); // เราใช้จอ LCD 16 * 2 lcd.setCursor (0,0); // วางเคอร์เซอร์ไว้ที่แถวที่ 1 คอลัมน์ที่ 1 lcd.print ("MSP430G2553"); // แสดงข้อความแนะนำ lcd.setCursor (0, 1); // ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ที่ 1 แถวที่ 2 lcd.print ("- CircuitDigest"); // แสดงข้อความแนะนำล่าช้า (2000); // รอให้หน้าจอแสดงข้อมูล lcd.clear (); // จากนั้นทำความสะอาด}
ถัดไปในฟังก์ชัน void loop () ของเราให้เพิ่มตัวเลขทุกๆ 500ms และแสดงตัวเลขใน LCD ตัวเลขนี้จะทดสอบและเริ่มต้นเป็น 1 ดังที่แสดงด้านล่าง
การทดสอบ int = 1;
ในการสร้างความล่าช้าเราสามารถใช้ฟังก์ชัน inbuilt delay () เราต้องพูดถึงระยะเวลาที่เราต้องการให้เกิดความล่าช้า ในกรณีของเราฉันใช้ 500ms ดังที่แสดงด้านล่าง
ล่าช้า (500);
การเพิ่มตัวแปรสามารถทำได้โดยการทดสอบ ++ ส่วนที่เหลืออธิบายทั้งหมดแล้ว รหัสสมบูรณ์ภายใน วงเป็นโมฆะ แสดงอยู่ด้านล่าง
โมฆะ loop () {lcd.print ("LCD พร้อม MSP"); // แสดงข้อความแนะนำ lcd.setCursor (0, 1); // ตั้งค่าเคอร์เซอร์เป็นคอลัมน์ 0 บรรทัดที่ 1 lcd.print (ทดสอบ); // แสดงข้อความแนะนำล่าช้า (500); lcd.clear (); // จากนั้นทำความสะอาดทดสอบ ++; }
16x2 LCD พร้อม MSP430G2:
เมื่อฮาร์ดแวร์และรหัสของคุณพร้อมเพียงแค่เชื่อมต่อบอร์ดของคุณกับคอมพิวเตอร์และอัปโหลดรหัสตามที่เราทำในบทช่วยสอน เมื่ออัปโหลดโค้ดแล้วคุณจะเห็นหน้าจอแสดงสิ่งต่อไปนี้
หลังจากผ่านไปสองวินาทีหน้าจอแสดงผลจะเปลี่ยนจากการตั้งค่าเป็นวนซ้ำและเริ่มเพิ่มตัวแปรและแสดงบนหน้าจอดังภาพด้านล่าง
การทำงานที่สมบูรณ์สามารถพบได้ในวิดีโอด้านล่าง ลองเปลี่ยนสิ่งที่แสดงบนจอ LCD และเล่นกับมัน หวังว่าคุณจะเข้าใจบทช่วยสอนและเรียนรู้สิ่งที่มีประโยชน์ในรูปแบบนี้ หากคุณมีข้อสงสัยโปรดทิ้งไว้ในส่วนความคิดเห็นด้านล่างหรือใช้ฟอรัม พบกันในบทช่วยสอนอื่น