บทที่ 7: การใช้งานฟังก์ชัน...

33
บทที7: การใช้งานฟังก์ชัน ไมโครโพรเซสเซอร์ 1 Sanya Kuankid, Ph.D. http://pws.npru.ac.th/sanya/

Transcript of บทที่ 7: การใช้งานฟังก์ชัน...

Page 1: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

บทท 7: การใชงานฟงกชน

ไมโครโพรเซสเซอร 1

Sanya Kuankid, Ph.D.http://pws.npru.ac.th/sanya/

Page 2: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

บทท 7 ค ำส งควบคมกำรท ำงำนของโปรแกรม C51

7.1 บทน ำ

7.2 ฟงกชนในภำษำซ

7.3 กำรประกำศและเรยกใชงำนฟงกชน

7.4 กำรสงคำใหฟงกชน

7.5 ตวแปรชนดโลคอลและโกลบอล

7.6 สรป

7.7 แบบฝกหดทำยบท

Page 3: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.1 บทน า

Page 4: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.2 ฟงกชนในภาษาซ

Page 5: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.2.1 ฟงกชนมาตรฐานภาษาซ

ฟงกชนมาตรฐานภาษาซอยในไลบรารภาษาซมาตรฐาน ซงประกอบดวยฟงกชนตางๆ ทรองรบการเขยนโปรแกรมทเกยวของ เชน ฟงกชนส าหรบการค านวณทางคณตศาสตร การจดการกบขอความ การจดการกบขอมลน าเขาและสงออก เปนตน โดยการใชงานฟงกชนประเภทน นกพฒนาโปรแกรมตองรวมไลบรารทตองการใชงานไวเปนไฟลสวนหวของโปรแกรมทพฒนาขน เพอใหตวแปลโปรแกรมรวามฟงกชนทตองการใชอยในไลบรารตวใด

Page 6: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.2.1 ฟงกชนมาตรฐานภาษาซ

ฟงกชนการจดการกบขอมลน าเขาและสงออก ทใชในการเขยนโปรแกรมไมโครคอนโทรลเลอร ซงเปนฟงกชนทอยในไลบรารมาตรฐานชอ stdio โดยมรปแบบการเขยนโปรแกรม เปนดงน

Page 7: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

1. ฟงกชน printf ()

ใชในการแสดงผลขอมลหรอคาตวแปรออกมาทางจอภาพ

Page 8: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

1. ฟงกชน printf ()

1) สวนการควบคม (control) จะเปนขอความทตองการใหแสดงผลออกมาหรอเปนรหสรปแบบทใชในการแสดงผล

Page 9: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

1. ฟงกชน printf ()

2) สวนของอารกวเมนต (Argument list) จะเปนชดตวแปร คาคงท หรอ นพจนทตองการน ามาแสดงผล ถามมากกวา 1 คาจะแยกออกจากกนโดยใชเครองหมายจลภาค (,)

Page 10: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

1. ฟงกชน printf ()3) รหสพเศษทแทรกลงไปในคาคงทสตรงเพอใชควบคมการแสดงผลของตวอกษรในลกษณะตางๆ โดยการเขยนตองมเครองหมาย ‘\’ น าหนา

Page 11: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

2. ฟงกชน scanf ()

ใชในการรบขอมลมาทางจอภาพ

Page 12: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

2. ฟงกชน scanf ()

รายละเอยดของฟงกชน scanf อธบายได ดงน

1) สวนการควบคมเปนรหสรปแบบทใชในการรบขอมล ตองเขยนอยภายใตเครองหมายอญประกาศ

2) สวนของอารกวเมนตเปนตวแปรทรบคาจากแปนพมพมาเกบไว ฟงกชน scanf () เปนการรบขอมลมาเกบในหนวยความจ าดงนนในการใชงานจงตองมอกขระ ‘&’ น าหนาตวแปรเสมอ

Page 13: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

3. ฟงกชน getchar ()

ใชรบขอมลเขามาทางแปนพมพทละ 1 ตวอกษร โดยตองกดปม enter ทกครงเมอสนสดขอมล

Page 14: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

4. ฟงกชน putchar ()

ใชเปนฟงกชนทใหคอมพวเตอรแสดงผลบนจอภาพทละ 1 ตวอกษร

Page 15: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.2.2 ฟงกชนทสรางขนโดยนกพฒนาโปรแกรม

นกพฒนาโปรแกรมสามารถเขยนฟงกชนการท างานทจะเรยกใชในสวนตางๆของโปรแกรม โดยฟงกชนการท างานดงกลาวถกเขยนไวในฟงกชนเพยงครงเดยวเทานน แตสามารถเรยกใชงานไดหลายครง

Page 16: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.3 การประกาศและเรยกใชงานฟงกชน

Page 17: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.3.1 ตนแบบของฟงกชน

ตนแบบของฟงกชนเปนสวนทก าหนดใหคอมไพเลอรรถงคณสมบตตางๆ ของฟงกชน

Page 18: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.3.2 การก าหนดฟงกชน

Page 19: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

ตวอยางท 7.2 โปรแกรมค านวณคาสงสดจากขอมลจ านวน 3 คา

Page 20: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.3.3 การเรยกใชงานฟงกชนการเรยกใชงานฟงกชนท าไดโดยก าหนดคาใหฟงกชน โดยอารกวเมนต จะไดรบคาทก าหนดใหและ

สงไปใหฟงกชนท างาน แสดงไดดงตวอยางโปรแกรมท 7.3

Page 21: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.3.3 การเรยกใชงานฟงกชน

ผลลพธของการรนโปรแกรม

Page 22: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.4 การสงคาใหฟงกชน

Page 23: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.4.1 ฟงกชนทสงคาขอมลผานฟงกชน

ฟงกชนทสงคาขอมลผานฟงกชนเปนการสงคาใหฟงกชนโดยการคดลอกคาจากอารกวเมนตของฟงกชนไปเกบไวในพารามเตอร ซงกระบวนการในฟงกชนจะไมสงผลกระทบตอคาอารกวเมนต การคนคากลบมาจากฟงกชนจะคนคากลบมาไดคาเดยวเทานน

Page 24: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.4.2 ฟงกชนทสงคาอางองหรอแอดเดรสผานฟงกชน

การสงคาของต าแหนงหนวยความจ าทน าคาไปเกบไวในพารามเตอร กระบวนการท างานของฟงกชนในลกษณะนสามารถเปลยนแปลงคาทเกบไวในหนวยความจ าทต าแหนงทสงมาใหได เมอฟงกชนท างานเสรจ อารกวเมนตอาจมการเปลยนแปลงคาไปจากเดมกอนการเรยกใชงานฟงกชน

Page 25: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.5 ตวแปรชนดโลคอลและโกลบอล

Page 26: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.5 ตวแปรชนดโลคอลและโกลบอล

• ตวแปรชนดโลคอล (Local Variable) คอ ตวแปรทถกสรางขนภายในฟงกชน สามารถเรยกใชงานไดเฉพาะภายในฟงกชนทสรางขน และจะถกท าลายลงเมอเสรจสนการท างานของฟงกชนนนๆ สวน

• ตวแปรชนดโกลบอล (Global Variable) คอ ตวแปรทถกสรางขนภายนอกฟงกชน สามารถใชงานไดในทกฟงกชนหรอทงโปรแกรม ยกเวนฟงกชนทมตวแปรภายในชอเดยวกบตวแปรภายนอกและจะคงอยตลอดการท างานของโปรแกรม

Page 27: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.6 สรป

Page 28: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

สรป

ในบทนไดน าเสนอเนอหาเรองการใชงานฟงกชนของโปรแกรม C51 โดยไดอธบายฟงกชนเกยวการจดการกบขอมลน าเขาและสงออกทใชในการเขยนโปรแกรมไมโครคอนโทรลเลอรซงอยในไลบราลมาตรฐานภาษาซ และฟงกชนทสรางขนโดยนกพฒนาโปรแกรมซงมรปแบบการประกาศและเรยกใชงานในลกษณะเดยวกน

Page 29: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.7 แบบฝกหดทายบท

Page 30: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.7 แบบฝกหดทายบท

Page 31: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

7.7 แบบฝกหดทายบท

Page 32: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

เอกสารอางอง

. (2554). 1. : ( - ).

. (2555). MCS-51 C. :

. (2540). . : ( - ).

. (2550). MCS-51 C P89V51RD2. : .

. ( . . .). 1. 1 2557 http://www.it.tl.ac.th/~witsarut/subject_c.html

. (2550). MCS-51 Keil C51 . : .

. (2546). . : .

Architecture and Programming of 8051 MCUS. Retrieved March 1, 2014, from http://www.mikroe.com/products/view/267/architecture-and-programming-of-8051-mcu-s/

ARMKIEL Microcontrollers Tools. Cx51 User’s Guide. Retrieved April 1, 2014, from http://www.keil.com/support/man/docs/c51/

Michael, P. (2001). Patterns for time-triggered embedded systems: Building reliable applications with the 8051 family of microcontrollers. New York: ACM Press Books.

Michael, P. (2002). Embedded C. London: Addison-Wesley Professional.

Microcontroller with 8K Bytes Flash AT89C52. Retrieved March 1, 2014, from http://www.atmel.com/images/doc0313.pdf

Z80 CPU User Manual. Retrieved April 1, 2014, from http://www.zilog.com/appnotes_download.php?FromPage=DirectLink&dn= UM0080&ft=User%20Manual&f=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTk2T0RBdlZVMHdNRGd3TG5Ca1pnPT0=

Page 33: บทที่ 7: การใช้งานฟังก์ชัน ...courseware.npru.ac.th/admin/files/20171107112548_bee906c...บทท 7 คำสง ควบค มกำรทำงำนของโปรแกรม

เอกสารอางอง

. (2554). 1. : ( - ).

. (2555). MCS-51 C. :

. (2540). . : ( - ).

. (2550). MCS-51 C P89V51RD2. : .

. ( . . .). 1. 1 2557 http://www.it.tl.ac.th/~witsarut/subject_c.html

. (2550). MCS-51 Keil C51 . : .

. (2546). . : .

Architecture and Programming of 8051 MCUS. Retrieved March 1, 2014, from http://www.mikroe.com/products/view/267/architecture-and-programming-of-8051-mcu-s/

ARMKIEL Microcontrollers Tools. Cx51 User’s Guide. Retrieved April 1, 2014, from http://www.keil.com/support/man/docs/c51/

Michael, P. (2001). Patterns for time-triggered embedded systems: Building reliable applications with the 8051 family of microcontrollers. New York: ACM Press Books.

Michael, P. (2002). Embedded C. London: Addison-Wesley Professional.

Microcontroller with 8K Bytes Flash AT89C52. Retrieved March 1, 2014, from http://www.atmel.com/images/doc0313.pdf

Z80 CPU User Manual. Retrieved April 1, 2014, from http://www.zilog.com/appnotes_download.php?FromPage=DirectLink&dn= UM0080&ft=User%20Manual&f=YUhSMGNEb3ZMM2QzZHk1NmFXeHZaeTVqYjIwdlpHOWpjeTk2T0RBdlZVMHdNRGd3TG5Ca1pnPT0=