Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <ipst.h> // ผนวกไลบรารีหลัก IPST-SE
- void setup() {
- uart1_set_baud(2400); // กำหนดอัตราบอดรับ/ส่งข้อมูลที่ 2400 บิตต่อวินาที
- setTextSize(2); // กำหนดขนาดตัวอักษร GLCD เป็นขนาด 2x
- }
- char switchToChar(int dat) // ฟังก์ชั่นสำหรับแปลงค่าตัวเลขจากปุ่มกดจากบอร์ดสวิตช์เมตริก
- // เป็นแอสกี(เลือกใช้งานจั๊มเปอร์ MODE B)
- {
- char result = 0; // กำหนดตัวแปรเก็บค่าผลลัพธ์จากการแปลงค่าไปเป็นอักขระ
- if (dat >= 0 && dat <= 9) // ในกรณีที่ปุ่ม 0-9 ถูกกด
- {
- result = dat + 0x30; // แปลงค่าไปเป็นอักขระ ‘0’-‘9’ ตามปุ่มที่ถูกกด
- }
- else if (dat == 10) // ในกรณีที่ปุ่ม A ถูกกด
- {
- result = '='; // แปลงค่าไปเป็นอักขระ ‘=’ เพื่อใช้แทนปุ่มเครื่องหมายเท่ากับของเครื่องคิดเลข
- }
- else if (dat == 11) // ในกรณีที่ปุ่ม B ถูกกด
- {
- result = '.'; // แปลงค่าไปเป็นอักขระ ‘.’ เพื่อใช้แทนปุ่มเครื่องหมายจุดทศนิยมของเครื่องคิดเลข
- }
- else if (dat == 12) // ในกรณีที่ปุ่ม C ถูกกด
- {
- result = '+'; // แปลงค่าไปเป็นอักขระ ‘+’ เพื่อใช้แทนปุ่มเครื่องหมายบวกของเครื่องคิดเลข
- }
- else if (dat == 13) // ในกรณีที่ปุ่ม D ถูกกด
- {
- result = '-'; // แปลงค่าไปเป็นอักขระ ‘-’ เพื่อใช้แทนปุ่มเครื่องหมายลบของเครื่องคิดเลข
- }
- else if (dat == 14) // ในกรณีที่ปุ่ม E ถูกกด
- {
- result = '*'; // แปลงค่าไปเป็นอักขระ ‘*’ เพื่อใช้แทนปุ่มเครื่องหมายคูณของเครื่องคิดเลข
- }
- else if (dat == 15) // ในกรณีที่ปุ่ม F ถูกกด
- {
- result = '/'; // แปลงค่าไปเป็นอักขระ ‘/’ เพื่อใช้แทนปุ่มเครื่องหมายหารของเครื่องคิดเลข
- }
- return result; // คืนค่าผลลัพธ์จากการแปลง
- }
- void loop(){
- if (uart1_available()) // ถ้ามีการรับข้อมูลจากการกดปุ่มที่บอร์ดสวิตช์เมตริกซ์เงื่อนไขนี้จะเป็นจริง
- {
- int data = uart1_getkey(); // อ่านค่าจากกการกดปุ่มที่บอร์ดสวิตช์เมตริกซ์ผลลัพธ์ช่วงตั้งแต่(0-15)
- char key = switchToChar(data); // แปลงค่าข้อมูลการกดปุ่มให้เป็นอักขระเครื่องคิดเลข
- glcd(0, 0, "%c", key); // แสดงอักขระผลลัพธ์จากการแปลงที่ GLCD
- beep(25); // สั่งเสียงดัง beep สำหรับการกดปุ่ม
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement