Advertisement
KRITSADA

IPST-SE Calculator ep1

Sep 28th, 2016
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.94 KB | None | 0 0
  1. #include <ipst.h> // ผนวกไลบรารีหลัก IPST-SE
  2. void setup() {
  3.   uart1_set_baud(2400); // กำหนดอัตราบอดรับ/ส่งข้อมูลที่ 2400 บิตต่อวินาที
  4.   setTextSize(2); // กำหนดขนาดตัวอักษร GLCD เป็นขนาด 2x
  5. }
  6. char switchToChar(int dat) // ฟังก์ชั่นสำหรับแปลงค่าตัวเลขจากปุ่มกดจากบอร์ดสวิตช์เมตริก
  7. // เป็นแอสกี(เลือกใช้งานจั๊มเปอร์ MODE B)
  8. {
  9.   char result = 0; // กำหนดตัวแปรเก็บค่าผลลัพธ์จากการแปลงค่าไปเป็นอักขระ
  10.   if (dat >= 0 && dat <= 9) // ในกรณีที่ปุ่ม 0-9 ถูกกด
  11.   {
  12.     result = dat + 0x30; // แปลงค่าไปเป็นอักขระ ‘0’-‘9’ ตามปุ่มที่ถูกกด
  13.   }
  14.   else if (dat == 10) // ในกรณีที่ปุ่ม A ถูกกด
  15.   {
  16.     result = '='; // แปลงค่าไปเป็นอักขระ ‘=’ เพื่อใช้แทนปุ่มเครื่องหมายเท่ากับของเครื่องคิดเลข
  17.   }
  18.   else if (dat == 11) // ในกรณีที่ปุ่ม B ถูกกด
  19.   {
  20.     result = '.'; // แปลงค่าไปเป็นอักขระ ‘.’ เพื่อใช้แทนปุ่มเครื่องหมายจุดทศนิยมของเครื่องคิดเลข
  21.   }
  22.   else if (dat == 12) // ในกรณีที่ปุ่ม C ถูกกด
  23.   {
  24.     result = '+'; // แปลงค่าไปเป็นอักขระ ‘+’ เพื่อใช้แทนปุ่มเครื่องหมายบวกของเครื่องคิดเลข
  25.   }
  26.   else if (dat == 13) // ในกรณีที่ปุ่ม D ถูกกด
  27.   {
  28.     result = '-'; // แปลงค่าไปเป็นอักขระ ‘-’ เพื่อใช้แทนปุ่มเครื่องหมายลบของเครื่องคิดเลข
  29.   }
  30.   else if (dat == 14) // ในกรณีที่ปุ่ม E ถูกกด
  31.   {
  32.     result = '*'; // แปลงค่าไปเป็นอักขระ ‘*’ เพื่อใช้แทนปุ่มเครื่องหมายคูณของเครื่องคิดเลข
  33.   }
  34.   else if (dat == 15) // ในกรณีที่ปุ่ม F ถูกกด
  35.   {
  36.     result = '/'; // แปลงค่าไปเป็นอักขระ ‘/’ เพื่อใช้แทนปุ่มเครื่องหมายหารของเครื่องคิดเลข
  37.   }
  38.   return result; // คืนค่าผลลัพธ์จากการแปลง
  39. }
  40. void loop(){
  41.   if (uart1_available()) // ถ้ามีการรับข้อมูลจากการกดปุ่มที่บอร์ดสวิตช์เมตริกซ์เงื่อนไขนี้จะเป็นจริง
  42.   {
  43.     int data = uart1_getkey(); // อ่านค่าจากกการกดปุ่มที่บอร์ดสวิตช์เมตริกซ์ผลลัพธ์ช่วงตั้งแต่(0-15)
  44.     char key = switchToChar(data); // แปลงค่าข้อมูลการกดปุ่มให้เป็นอักขระเครื่องคิดเลข
  45.     glcd(0, 0, "%c", key); // แสดงอักขระผลลัพธ์จากการแปลงที่ GLCD
  46.     beep(25); // สั่งเสียงดัง beep สำหรับการกดปุ่ม
  47.   }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement