งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม"— ใบสำเนางานนำเสนอ:

1 รายวิชา 9560206 ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม
รายวิชา   ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม  อ.โสภณ มหาเจริญ บทที่ 3 หลักการเขียนและการใช้คำสั่งในภาษาซี

2 วัตถุประสงค์ 3.1 เพื่อให้ผู้เรียนเข้าใจรูปแบบของภาษาซี ในArduino 3.2 เพื่อให้ผู้เรียนเข้าใจการเขียนคำสั่งต่างๆ ในภาษาซีได้ 3.3 เพื่อให้ผู้เรียนเรียนรู้วิธีการใช้คำสั่งประเภทเงื่อนไขเพื่อการพัฒนาโปรแกรม

3 เนื้อหาประจำบท โครงสร้างภาษา ซี คำสั่งในโครงสร้างภาษา ซี
รูปแบบและการใช้งานคำสั่ง if รูปแบบและการใช้งาน if else รูปแบบและการใช้งาน for รูปแบบและการใช้งาน while รูปแบบและการใช้งาน do while รูปแบบและการใช้งาน switch รูปแบบและการใช้งาน break

4 คำสั่งในภาษา C

5 คำสั่ง if คำสั่ง if เป็นคำสั่งสำหรับใช้ตรวจสอบเงื่อนไข เพื่อสั่งให้โปรแกรมเลือกทำงาน ตามผลลัพธ์ที่ได้จากการตรวจสอบเงื่อนไขของคำสั่ง โดยมีรูปแบบคำสั่งดังนี้ if (เงื่อนไข) { คำสั่งที่ต้องกระทำเมื่อเงื่อนไขเป็นจริง }

6 ตัวอย่างการใช้คำสั่ง if
void setup() { Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 Serial.println(“Press Any Key”); //พิมพ์ข้อความ “Press Any Key” } Void loop() if (Serial.available() > 0) //ถ้าจำนวนข้อมูลใน Buffer มากกว่า ศูนย์ int var = Serial.read(); //อ่านข้อมูลจาก Buffer มาไว้ในตัวแปรชื่อ var Serial.println(var.BYTE); //สั่งพิมพ์ค่าข้อมูลในตัวแปร var

7 ตัวอย่างการใช้คำสั่ง if
การทำงานของโปรแกรมตัวอย่าง จะเห็นได้ว่า ในโปรแกรมใช้คำสั่ง if เพื่อตรวจสอบเงื่อนไขว่าจำนวนของข้อมูลใน buffer มีค่ามากกว่า ศูนย์หรือไม่ ซึ่งถ้าพบว่ามีจำนวนข้อมูลใน buffer มากกว่า ศูนย์ซึ่งหมายถึงมีการรับข้อมูลจากพอร์ตสื่อสารอนุกรมมาเก็บรอไว้ใน Buffer แล้ว โปรแกรมก็จะทำการสั่งอ่านข้อมูลออกมาจาก buffer แล้วสั่งพิมพ์ค่าข้อมูลที่รับได้นั้นกลับมาให้เห็นทางพอร์ตสื่อสารอนุกรมด้วย แต่ถ้าผลการตรวจสอบเงื่อนไขไม่เป็นจริง คือ จำนวนข้อมูลใน Buffer ยังเป็น ศูนย์ อยู่ โปรแกรมก็จะวนรอบตรวจสอบเงื่อนไขใหม่โดยไม่ทำอะไร

8 คำสั่ง if…else แบบ 2 ทางเลือก
คำสั่ง if… else เป็นคำสั่งตรวจสอบเงื่อนไขเช่นเดียวกัน if แต่ใช้สำหรับการตรวจสอบเงื่อนไขที่มีเพิ่มขึ้นอีก 1 ทางเลือก โดยมีรูปแบบคำสั่งดังนี้ if (เงื่อนไข) { คำสั่งที่ต้องกระทำเมื่อเงื่อนไขเป็นจริง } else คำสั่งที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ

9 คำสั่ง if…else แบบ 2 ทางเลือก

10 คำสั่ง if …else ตัวอย่างการใช้คำสั่ง if….else
void setup() { Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 Serial.println(“Press Any Key”); //พิมพ์ข้อความ “Press Any Key” } Void loop() if (Serial.available() > 0) //ถ้าจำนวนข้อมูลใน Buffer มากกว่า ศูนย์ int var = Serial.read(); //อ่านข้อมูลจาก Buffer มาไว้ในตัวแปรชื่อ var Serial.println(var.BYTE); //สั่งพิมพ์ค่าข้อมูลในตัวแปร var else

11 คำสั่ง if…else แบบหลายเงื่อนไข
{ คำสั่งที่ต้องกระทำเมื่อเงื่อนไขที่ 1 เป็นจริง } else if (เงื่อนไขที่ 2) คำสั่งที่ต้องการให้ทำเมื่อเงื่อนไขที่ 2 เป็นจริง . else if (เงื่อนไขที่ n ) คำสั่งที่ต้องกระทำเมื่อเงื่อนไขที่ n เป็นจริง else คำสั่งที่ต้องการให้ทำเมื่อเงื่อนไขเป็นเท็จ คำสั่ง if… else แบบหลายเงื่อนไข เป็นการสั่งตรวจสอบเงื่อนไขเช่นเดียวกัน if…else แต่ใช้สำหรับการตรวจสอบเงื่อนไขที่มีเงื่อนไขมากกว่า 1 เงื่อนไข โดยมีรูปแบบคำสั่งดังนี้

12 คำสั่ง if…else แบบหลายเงื่อนไข
ซึ่งจากรูปแบบการใช้คำสั่ง if…else แบบนี้ มีความหมายเหมือนกับประโยคที่ว่า ถ้าเงื่อนไขที่ 1 เป็นจริง ให้ทำงานที่ 1 ไม่เช่นนั้นให้ตรวจสอบเงื่อนไขที่ 2 และถ้าเงื่อนไขที่ 2 เป็นจริง ให้ทำงานที่ 2 ไม่เช่นนั้นให้ตรวจสอบเงื่อนไขที่ 3 และถ้าเงื่อนไขที่ 3 เป็นจริง ให้ทำงานที่ 3 ไม่เช่นนั้นให้ตรวจสอบเงื่อนไขที่ n และถ้าเงื่อนไขที่ n เป็นจริงให้ทำงานที่ n ซึ่งจะเห็นได้ว่า เราสามารถที่จะทำการเพิ่มเติมเงื่อนไขให้กับโปรแกรมเพื่อใช้เป็นทางเลือกในการเลือกทำงานตามคำสั่งต่างๆ ตามความเหมาะสมได้หลายๆ ทางเลือก ตามความต้องการ ทำให้การเขียนโปรแกรมสามารถทำได้ง่ายและสะดวกมากยิ่งขึ้น

13 ตัวอย่าง คำสั่ง if…else แบบหลายเงื่อนไข
void menu () //โปรแกรมย่อยพิมพ์เมนู { Serial.println(); //ขึ้นบรรทัดใหม่ Serial.println(“Number1 = 10”); //พิมพ์ข้อความ “Numner1 = 10” Serial.println(“Number2 = 5”); //พิมพ์ข้อความ “Numner2= 5” Serial.println(“1 = Number1 + Number2”); //พิมพ์ข้อความ “1 =Numner1 + Number2” Serial.println(“2 = Number1 - Number2”); //พิมพ์ข้อความ “2 =Numner1 - Number2” Serial.println(“3 = Number1 x Number2”); //พิมพ์ข้อความ “3=Numner1 xNumber2” Serial.println(“4= Number1 / Number2”); //พิมพ์ข้อความ “4=Numner1 /Number2” Serial.print(“Select..”); // พิมพ์ข้อความ “Select..” } void setup() Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 menu(); //พิมพ์เมนู

14 ตัวอย่าง คำสั่ง if…else แบบหลายเงื่อนไข
Void loop() { while(Serial.available() > // รอจนกว่าจำนวนข้อมูลใน Buffer มากกว่า ศูนย์ int var = Serial.read(); //อ่านข้อมูลจาก Buffer มาไว้ในตัวแปรชื่อ var Serial.println(var.BYTE); //สั่งพิมพ์ค่าข้อมูลในตัวแปร var } if (var = = ‘1’) // ถ้าค่าใน val เท่ากับรหัส ASCII ของ ‘1’ Serial.print(“ = “); //พิมพ์ข้อความ “ =” Serial.print(10+5); //พิมพ์ค่า 10+5 else if(var == ‘2’) Serial.print(“ = “); //พิมพ์ข้อความ “ =” Serial.print(10 - 5); //พิมพ์ค่า 10-5 else if(var == ‘3’)

15 ตัวอย่าง คำสั่ง if…else แบบหลายเงื่อนไข
{ Serial.print(“10 x 5 = “); //พิมพ์ข้อความ “10 x 5 =” Serial.print(10*5); //พิมพ์ค่า 10x5 } else if(var == ‘4’) Serial.print(“10 / 5 = “); //พิมพ์ข้อความ “10 / 5 =” Serial.print(10 / 5); //พิมพ์ค่า 10 / 5 else Serial.println(“Select Number Error”); // พิมพ์ข้อความ “Select Number Error” menu(); // พิมพ์เมนู

16 ผลลัพธ์การทำงานคำสั่ง if…else แบบหลายเงื่อนไข
Number 1 = 10 Number 2 = 5 1 = Number1 + Number2 2 = Number1 - Number2 3 = Number1 x Number2 4 = Number1 / Number2 Select..1 = 15 Select..5 Select Number Error Number 1 = 10 Number 2 = 5 1 = Number1 + Number2 2 = Number1 - Number2 3 = Number1 x Number2 4 = Number1 / Number2 Select..

17 คำสั่ง for คำสั่ง for เป็นคำสั่งสำหรับสั่งให้โปรแกรมวนรอบทำงาน โดยมีการกำหนดค่าเริ่มต้น และเงื่อนไขการสิ้นสุดที่แน่นอน โดยมีรูปแบบดังนี้ for (ค่าเริ่มต้น; เงื่อนไขการวนรอบ; การเพิ่มค่าหรือลดค่าตัวแปรในแต่ละรอบ) { คำสั่งที่ต้องการให้ทำ ถ้าเงื่อนไขการวนรอบยังไม่เสร็จ }

18 ตัวอย่างการใช้งานคำสั่ง for
void setup () { Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย Baud 19200 } void loop() Serial.println(“Test for”); //พิมพ์ข้อความ “Test for” for (int x =0; x < 10; x ++) //ให้วนรอบโดยกำหนดให้ x = 0 ถึง 9 Serial.print(“X= “); //พิมพ์ข้อความ “X =“ Serial.print(x); //พิมพ์ค่าของ x delay(50); // หน่วงเวลา 50ms

19 ตัวอย่างการใช้งานคำสั่ง for
Test for X = 0 X = 1 X = 2 X = 3 X = 4 X = 5 X = 6 X = 7 X = 8 X = 9 . ผลลัพธ์การทำงาน

20 คำสั่ง switch / case คำสั่ง switch/case ใช้สำหรับสั่งตรวจสอบเงื่อนไข เพื่อเลือกให้โปรแกรมทำงานตามเงื่อนไขที่ต้องการเพียงเงื่อนไขเดียว ซึ่งผลของการทำงานของคำสั่ง จะเหมือนกันกับ if…else แบบหลายเงื่อนไขเพียงแต่มีรูปแบบการใช้งานที่เป็นระเบียบและใช้งานง่ายกว่า ซึ่งการทำงานของคำสั่งนี้จะเป็นการนำค่าในตัวแปรที่กำหนดให้ไปทำการเปรียบเทียบกับค่าคงที่ที่กำหนดไว้ ถ้าตรงกันก็จะให้เงื่อนไขเป็นจริงและโปรแกรมจะทำงานตามคำสั่งที่อยู่หลังเงื่อนไขการเปรียบเทียบค่านั้นๆ เมื่อตรวจสอบเสร็จก็จะไปตรวจสอบเงื่อนไขต่อไป จนถึงลำดับสุดท้าย ถ้าผลการเปรียบเทียบไม่ตรงกับเงื่อนไขใดเลย ก็จะไปทำงานตามคำสั่งที่อยู่ในส่วน default

21 คำสั่ง switch / case รูปแบบการใช้คำสั่ง
{ case ค่าคงที่ 1 : คำสั่งที่ต้องการให้ทำงานเมื่อการตรวจสอบค่าคงที่ 1 เป็นจริง case ค่าคงที่ 2 : คำสั่งที่ต้องการให้ทำงานเมื่อการตรวจสอบค่าคงที่ 2 เป็นจริง case ค่าคงที่ n : คำสั่งที่ต้องการให้ทำงานเมื่อการตรวจสอบค่าคงที่ n เป็นจริง default : คำสั่งที่ต้องการให้ทำงานเมื่อไม่ตรงกับเงื่อนไขใดๆ }

22 ตัวอย่างการใช้งานคำสั่ง switch/case
void menu () //โปรแกรมย่อยพิมพ์เมนู { Serial.println(); //ขึ้นบรรทัดใหม่ Serial.println(“Number1 = 10”); //พิมพ์ข้อความ “Numner1 = 10” Serial.println(“Number2 = 5”); //พิมพ์ข้อความ “Numner2= 5” Serial.println(“1 = Number1 + Number2”); //พิมพ์ข้อความ “1 =Numner1 + Number2” Serial.println(“2 = Number1 - Number2”); //พิมพ์ข้อความ “2 =Numner1 - Number2” Serial.println(“3 = Number1 x Number2”); //พิมพ์ข้อความ “3=Numner1 xNumber2” Serial.println(“4= Number1 / Number2”); //พิมพ์ข้อความ “4=Numner1 /Number2” Serial.print(“Select..”); // พิมพ์ข้อความ “Select..” } void setup() Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 menu(); //พิมพ์เมนู

23 ตัวอย่างการใช้งานคำสั่ง switch/case
void loop () { while(Serial.available() >0) // รอจนกว่าจำนวนข้อมูลใน Buffer มากกว่า ศูนย์ int var = Serial.read(); // อ่านข้อมูลออกมาจาก Buffer Serial.println(var,BYTE); Switch(var) case ‘1’ : Serial.print(“ = “); //พิมพ์ข้อความ “ =“ Serial.println(10 + 5); //พิมพ์ค่า break; //หยุดการตรวจสอบเงื่อนไข(จบคำสั่ง switch) case ‘2’ : Serial.print(“ = “); //พิมพ์ข้อความ “ =“ Serial.println(10 - 5); //พิมพ์ค่า

24 ตัวอย่างการใช้งานคำสั่ง switch/case
case ‘3’ : Serial.print(“10 x 5 = “); //พิมพ์ข้อความ “10 x 5 =“ Serial.println(10 x 5); //พิมพ์ค่า 10 x 5 break; //หยุดการตรวจสอบเงื่อนไข(จบคำสั่ง switch) case ‘4’ : Serial.print(“10 / 5 = “); //พิมพ์ข้อความ “10 / 5 =“ Serial.println(10 / 5); //พิมพ์ค่า 10 / 5 default : Serial.println(“Select Number Error”); } menu(); // พิมพ์เมนู

25 ผลลัพธ์การทำงานคำสั่ง switch/case
Number 1 = 10 Number 2 = 5 1 = Number1 + Number2 2 = Number1 - Number2 3 = Number1 x Number2 4 = Number1 / Number2 Select..1 = 15 Select..5 Select Number Error Number 1 = 10 Number 2 = 5 1 = Number1 + Number2 2 = Number1 - Number2 3 = Number1 x Number2 4 = Number1 / Number2 Select….

26 คำสั่ง while คำสั่ง while เป็นคำสั่งให้โปรแกรมวนรอบทำงานซ้ำๆ กัน (loop) เช่นเดียวกันกับคำสั่ง for แต่มีความแตกต่างกันที่ คำสั่ง for จะมีจำนวนรอบการทำงานที่แน่นอน แต่คำสั่ง while จะทำงานในวนรอบไม่รู้จบจนกว่าเงื่อนไขจะเป็นเท็จจึงจะสิ้นสุดการทำงานในวนรอบ

27 คำสั่ง while รูปแบบการใช้คำสั่ง
{ คำสั่งที่ต้องการให้ทำงานเมื่อเงื่อนไขยังเป็นจริงอยู่ } การทำงานของคำสั่งจะเริ่มต้นด้วยการตรวจสอบเงื่อนไขในวงเล็บก่อน ถ้าพบว่าเงื่อนไขยังเป็นจริงอยู่ ก็จะข้ามไปทำงานตามคำสั่งที่อยู่หลังเงื่อนไข เสร็จแล้วก็จะกลับมาตรวจสอบเงื่อนไขใหม่ โดยการทำงานจะวนเวียนซ้ำๆ อยู่เช่นนี้ไปตลอด จนกว่าเงื่อนไขจะเป็นเท็จจึงจะออกจากคำสั่ง

28 ตัวอย่างการใช้คำสั่ง while
void setup() { Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 } Void loop() Serial.println(“Test while”); //พิมพ์ข้อความ “Test while” int x = 0 ; //สร้างตัวแปรชื่อ x เป็นแบบ int while(x <=5) // วงรอบจนกว่า x มีค่ามากกว่า 5 Serial.print(“ x = “); // พิมพ์ข้อความ “x=“ Serial.println(x); // พิมพ์ค่าของ X x++; //เพิ่มค่า x = 1

29 ตัวอย่างการใช้คำสั่ง while
ผลลัพธ์การทำงาน Test while X = 0 X = 1 X = 2 X = 3 X = 4 X = 5 .

30 คำสั่ง do…while คำสั่ง do…while ใช้สำหรับสั่งให้โปรแกรมวนรอบทำงาน เหมือนกับ for และ while แต่ลักษณะการทำงานจะแตกต่างกัน โดยคำสั่งนี้จะทำงานตามคำสั่งหลัง do ก่อน แล้วจึงตรวจสอบเงื่อนไข แต่ while จะตรวจสอบเงื่อนไขก่อนแล้วจึงทำงานตามคำสั่งที่อยู่หลังเงื่อนไข โดยถ้าผลการตรวจสอบเงื่อนไขยังเป็นจริงอยู่ก็จะกลับไปเริ่มต้นทำงานตามคำสั่งที่อยู่หลัง do อีก จนกว่าจะพบว่าเงื่อนไขเป็นเท็จจึงจะจบจากคำสั่ง

31 คำสั่ง do…while รูปแบบการใช้คำสั่ง do { คำสั่งที่ต้องการให้ทำงาน

32 ตัวอย่างการใช้คำสั่ง do…while
void setup() { Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 } Void loop() Serial.println(“Test while”); //พิมพ์ข้อความ “Test while” int x = 0 ; //สร้างตัวแปรชื่อ x เป็นแบบ int do Serial.print(“ x = “); // พิมพ์ข้อความ “x=“ Serial.println(x); // พิมพ์ค่าของ X x++; //เพิ่มค่า x = 1 } while(x <=5) // วงรอบจนกว่า x มีค่ามากกว่า 5

33 ตัวอย่างการใช้คำสั่ง do…while
ผลลัพธ์การทำงาน Test do…while X = 0 X = 1 X = 2 X = 3 X = 4 X = 5 .

34 คำสั่ง break คำสั่ง break จะใช้ร่วมกับคำสั่งประเภทที่ทำงานแบบวนรอบ เช่น do, for, while เพื่อให้โปรแกรมหยุดการทำงานหรือจบการทำงานจากวงรอบโดยไม่สนใจเงื่อนไข นอกจากนี้แล้วยังใช้คำสั่ง break สำหรับสั่งให้โปรแกรมจบการทำงานของคำสั่ง switch เพื่อข้ามการตรวจสอบเงื่อนไขต่อไปในคำสั่งของ switch

35 ตัวอย่างการใช้งานคำสั่ง break
void setup() { Serial.begin(19200); //เปิดใช้งานพอร์ตอนุกรมด้วย baud 19200 } Void loop() Serial.println(“Test break”); //พิมพ์ข้อความ “Test break” for(int x = 0; x< 10; x++) //ให้วนรอบโดยกำหนดให้ x = 0 ถึง 9 if (x>5) //ถ้า x มากกว่า 5 break; //จบการทำงานใน for โดยไม่สนใจเงื่อนไข Serial.print(“ x = “); // พิมพ์ข้อความ “x=“ Serial.println(x); // พิมพ์ค่าของ X delay(50); //หน่วงเวลา 50ms

36 ผลลัพธ์การใช้งานคำสั่ง break
Test break X = 0 X = 1 X = 2 X = 3 X = 4 X = 5 . จากตัวอย่างนี้จะเห็นว่าค่าของ x จะถูกพิมพ์ออกมาแค่ 0 – 5 เท่านั้น เนื่องจากพอ x = 6 ก็จะทำให้โปรแกรมทำงานตามคำสั่ง break ซึ่งก็จะส่งผลให้โปรแกรมจบการทำงานในวงรอบของคำสั่ง for แล้วไปเริ่มต้นทำงานในวงรอบของ loop() ใหม่อีก แต่ถ้าลบคำสั่ง break ทิ้งไป ค่าของ x ก็จะถูกพิมพ์จนครบตามเงื่อนไขของคำสั่ง for คือ 0 ถึง 9

37 สรุปประจำบท ฟังชันคำสั่งประเภทเงื่อนไข ไม่ว่าจะเป็นคำสั่งใดๆ ก็ตามจะทำให้โปรแกรมความสามารถในการแก้ปัญหาได้อย่างมีเหตุผลที่ถูกต้อง การที่จะทำให้โปรแกรมสามารถแก้ปัญหาได้อย่างมีประสิทธิภาพ ผู้พัฒนาโปรแกรมมีความจำเป็นจะต้องศึกษาชุดคำสั่งต่างๆ และทำการฝึกการเขียนโปรแกรมจะทำให้โปรแกรมที่พัฒนาขึ้นมีความสามารถในการแก้ปัญหาได้อย่างมีประสิทธิภาพ

38 แบบฝึกหัด ให้นักศึกษาใช้ตัวอย่างคำสั่งเงื่อนไขในบทเรียนนี้ตอบคำถามดังนี้ ให้นักศึกษาอธิบายหลักการทำงานของเงื่อนไข if ให้นักศึกษาอธิบายหลักการทำงานของเงื่อนไข if else ให้นักศึกษาอธิบายหลักการทำงานของเงื่อนไข for ให้นักศึกษาอธิบายหลักการทำงานของเงื่อนไข while ให้นักศึกษาอธิบายหลักการทำงานของเงื่อนไข do while ให้นักศึกษาอธิบายหลักการทำงานของเงื่อนไข switch


ดาวน์โหลด ppt รายวิชา ไมโครโปรเซสเซอร์ในงานอุตสาหกรรม

งานนำเสนอที่คล้ายกัน


Ads by Google