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

Post on 12-Jun-2020

16 views 0 download

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

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

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

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

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

7.1 บทน ำ

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

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

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

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

7.6 สรป

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

7.1 บทน า

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

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

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

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

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

1. ฟงกชน printf ()

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

1. ฟงกชน printf ()

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

1. ฟงกชน printf ()

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

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

2. ฟงกชน scanf ()

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

2. ฟงกชน scanf ()

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

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

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

3. ฟงกชน getchar ()

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

4. ฟงกชน putchar ()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

7.6 สรป

สรป

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

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

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

7.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=

เอกสารอางอง

. (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=