24
บทที2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์ PIC 16F684 ในปัจจุบันเครื่องใช้ไฟฟ้ าอุปกรณ์อิเล็กทรอนิกส์ตลอดจนระบบโรงงานอุตสาหกรรมจะใช้ ไมโครคอนโทรลเลอร์ซึ ่งติดตั ้งอยู่ภายในเป็นตัวควบคุมเกือบทั ้งหมด ทาให้ไมโครคอนโทรลเลอร์ กลายเป็นอีกหนึ ่งอุปกรณ์ที่ผู้ผลิตสารกึ ่งตัวนาหลายๆ บริษัทให้ความสนใจ และมีการแข่งขันสูง มาก อุปกรณ์ที่ใช้ไมโครคอนโทรลเลอร์ควบคุมมีมากมายหลายชนิด เช่น อุปกรณ์เครื่องใช้ภายใน บ้าน สัญญาณไฟจราจร รถยนต์ ตลอดจนระบบอุตสาหกรรม PLC, CNC, Robot เป็นต้น ไมโครคอนโทรลเลอร์ตระกูล PIC ซึ ่งเป็นไมโครคอมพิวเตอร์แบบชิปเดี่ยว (Single Chip Microcontroller) ถูกใช้งานอย่างแพร่หลาย การศึกษาเกี่ยวกับไมโครคอนโทรลเลอร์จึงมี องค์ประกอบหลายอย่าง เช่น สถาปัตยากรรมของไมโครคอนโทรลเลอร์ วงจรอิเลคทรอนิกส์ ตลอดจนภาษาที่จะใช้ในการเขียน ซึ ่งจะต้องศึกษาควบคู ่กันไป โดยจะนาเสนอลาดับการทางาน ดังต่อไปนี 2.1.1. ไมโครคอนโทรลเลอร์คืออะไร ไมโครคอนโทรลเลอร์ คือ อุปกรณ์ประเภทสารกึ ่งตัวนาที่รวบรวมฟังก์ชั่นการทางานต่างๆ ไว้ภายในตัวของมันเอง โดยมีโครงสร้างใกล้เคียงกับคอมพิวเตอร์ คือ ภายในประกอบด้วยหน่วยรับ ข้อมูลและโปรแกรมหน่วยประมวลผล หน่วยความจา หน่วยแสดงผล ซึ ่งส ่วนประกอบเหล่านี ้มี ความสมบูรณ์ในตัวของมันเอง ทาให้มีขนาดเล็ก และสามารถเขียนโปรแกรมควบคุมการทางาน ของอุปกรณ์ต่างๆ ที่เชื่อมต่อกับตัวมัน ง่ายต่อการนาไปประยุกต์ใช้งาน ไมโครคอนโทรลเลอร์ ( Microcontroller) มาจากคา 2 คา คาหนึ ่งคือ ไมโคร (Micro) หมายถึงขนาดเล็กและคาว่า คอนโทรลเลอร์ (Controller) หมายถึงตัวควบคุมหรืออุปกรณ์ควบคุม ดังนั ้น ไมโครคอนโทรลเลอร์ จึงหมายถึงอุปกรณ์ควบคุมขนาดเล็ก แต่ในตัวอุปกรณ์ควบคุมขนาดเล็กนี ได้บรรจุความสามารถทีคล้ายคลึงกับ ระบบคอมพิวเตอร์ ที่คนโดยส ่วนใหญ่ค้นเคย กล่าวคือภายใน ไมโครคอนโทรลเลอร์ ได้รวมเอาซีพียู หน่วยความจา และพอร์ต ซึ ่งเป็นส ่วนประกอบหลักสาคัญของระบบคอมพิวเตอร์ เข้าไว้ด้วยกัน โดยทาการบรรจุเข้าไว้ในตัวถังเดียวกันความแตกต่างของ Microcontroller กับ Microcomputer คือ Microcontroller นั ้นมีความสมบูรณ์ภายในตัวของมันเอง คือ มีส่วนประกอบ ต่างๆ ครบถ้วน ส่วน Microcomputer นั ้นต ้องทางานร่วมกับอุปกรณ์ข้างเคียงที่เชื่อมต่อจากภายนอก เช่น แป้ นพิมพ์ เครื่องอ่านเขียนแผ่นบันทึก หน่วยความจา I/O ฯลฯ

บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

บทท 2

ทฤษฎทเกยวของ

2.1 ไมโครคอนโทรลเลอร PIC 16F684

ในปจจบนเครองใชไฟฟาอปกรณอเลกทรอนกสตลอดจนระบบโรงงานอตสาหกรรมจะใชไมโครคอนโทรลเลอรซงตดตงอยภายในเปนตวควบคมเกอบทงหมด ท าใหไมโครคอนโทรลเลอรกลายเปนอกหนงอปกรณทผผลตสารกงตวน าหลายๆ บรษทใหความสนใจ และมการแขงขนสงมาก อปกรณทใชไมโครคอนโทรลเลอรควบคมมมากมายหลายชนด เชน อปกรณเครองใชภายในบาน สญญาณไฟจราจร รถยนต ตลอดจนระบบอตสาหกรรม PLC, CNC, Robot เปนตน ไมโครคอนโทรลเลอรตระกล PIC ซงเปนไมโครคอมพวเตอรแบบชปเดยว (Single Chip Microcontroller) ถกใชงานอยางแพรหลาย การศกษาเกยวกบไมโครคอนโทรลเลอรจงมองคประกอบหลายอยาง เชน สถาปตยากรรมของไมโครคอนโทรลเลอร วงจรอเลคทรอนกส ตลอดจนภาษาทจะใชในการเขยน ซงจะตองศกษาควบคกนไป โดยจะน าเสนอล าดบการท างานดงตอไปน

2.1.1. ไมโครคอนโทรลเลอรคออะไร ไมโครคอนโทรลเลอร คอ อปกรณประเภทสารกงตวน าทรวบรวมฟงกชนการท างานตางๆ

ไวภายในตวของมนเอง โดยมโครงสรางใกลเคยงกบคอมพวเตอร คอ ภายในประกอบดวยหนวยรบขอมลและโปรแกรมหนวยประมวลผล หนวยความจ า หนวยแสดงผล ซงสวนประกอบเหลานมความสมบรณในตวของมนเอง ท าใหมขนาดเลก และสามารถเขยนโปรแกรมควบคมการท างานของอปกรณตางๆ ทเชอมตอกบตวมน งายตอการน าไปประยกตใชงาน ไมโครคอนโทรลเลอร ( Microcontroller) มาจากค า 2 ค า ค าหนงคอ ไมโคร (Micro) หมายถงขนาดเลกและค าวา คอนโทรลเลอร (Controller) หมายถงตวควบคมหรออปกรณควบคม ดงนน ไมโครคอนโทรลเลอร จงหมายถงอปกรณควบคมขนาดเลก แตในตวอปกรณควบคมขนาดเลกน ไดบรรจความสามารถทคลายคลงกบ ระบบคอมพวเตอร ทคนโดยสวนใหญคนเคย กลาวคอภายใน ไมโครคอนโทรลเลอร ไดรวมเอาซพย หนวยความจ า และพอรต ซงเปนสวนประกอบหลกส าคญของระบบคอมพวเตอรเขาไวดวยกน โดยท าการบรรจเขาไวในตวถงเดยวกนความแตกตางของ Microcontroller กบ Microcomputer คอ Microcontroller นนมความสมบรณภายในตวของมนเอง คอ มสวนประกอบตางๆ ครบถวน สวน Microcomputer นนตองท างานรวมกบอปกรณขางเคยงทเชอมตอจากภายนอก เชน แปนพมพ เครองอานเขยนแผนบนทก หนวยความจ า I/O ฯลฯ

Page 2: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

4

2.1.2 ขอแตกตางระหวางไมโครโปรเซสเซอรกบไมโครคอนโทรลเลอร ไมโครโปรเซสเซอรทใชอยในปจจบน จะไมมหนวยความจ า RAM, ROM และ Port อยใน

ตว ท าใหตองตอหนวยความจ าโปรแกรมภายนอกเพมและตองใช ICs ขยายพอรตเพมเตม ขอดคอ สามารถเพมหนวยความจ าไดตลอด สวนไมโครคอนโทรลเลอรจะมวงจรพนฐานประกอบอยภายในชป เชน หนวยความจ า RAM, ROM และ I/O Port ดงนน ในระบบไมโครคอนโทรลเลอรจงมขนาดเลกกวาและราคาต ากวาระบบไมโครโปรเซสเซอร

2.1.3 โครงสรางโดยทวไปของไมโครคอนโทรลเลอร โครงสรางโดยทวไป ของไมโครคอนโทรลเลอรนน สามารถแบงออกมาไดเปน 5 สวน

ใหญๆ ดงตอไปน

รปท 2.1 โครงสรางโดยทวไปของไมโครคอนโทรเลอร

2.1.3.1 หนวยประมวลผลกลางหรอซพย (CPU: Central Processing Unit) เปนวงจรอเลคทรอนคสทท างานหรอประมวลผล ตามชดของค าสงเครองจาก

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

• อานชดค าสง (Fetch) • ตความชดค าสง (Decode) • ประมวลผลชดค าสง (Execute) • อานขอมลจากหนวยความจ า (memory) • เขยนขอมล/สงผลการประมวลกลบ (write back)

Page 3: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

5

2.1.3.2.หนวยความจ า ( Memory ) สามารถแบงออกเปน 2 สวน คอ หนวยความจ าทมไวส าหรบเกบโปรแกรมหลก

( Program Memory) เปรยบเสมอนฮารดดสกของเครองคอมพวเตอรตงโตะ คอขอมลใดๆ ทถกเกบไวในนจะไมสญหายไปแมไมมไฟเลยง อกสวนหนงคอหนวยความจ าขอมล ( Data Memory ) ใชเปนเหมอนกระดาษทศในการค านวณของซพย และเปนทพกขอมลชวคราวขณะท างาน แตหากไมมไฟเลยง ขอมลกจะหายไปคลายกบหนวยความจ าแรม(RAM)ในเครองคอมพวเตอรทวๆไป แตส าหรบไมโครคอนโทรลเลอรสมยใหม หนวยความจ าขอมลจะมทงทเปนหนวยความจ าแรม ซงขอมลจะหายไปเมอไมมไฟเลยง และเปนออพรอม (EEPROM : Erasable Electrically Read Only Memory ) ซงสามารถเกบขอมลไดแมไมมไฟเลยง

2.1.3.3.สวนตดตอกบอปกรณภายนอก หรอพอรต (Port) ม 2 ลกษณะคอ พอรตอนพต (Input Port) และพอรตสงสญญาณหรอพอรต

เอาตพต (Output Port) สวนนจะใชในการเชอมตอกบอปกรณภายนอก ถอวาเปนสวนทส าคญมาก ใชรวมกนระหวางพอรตอนพต เพอรบสญญาณ อาจจะดวยการกดสวตช เพอน าไปประมวลผลและสงไปพอรตเอาตพต เพอแสดงผล เชน การตดสวางของหลอดไฟ เปนตน

2.1.3.4.ชองทางเดนของสญญาณหรอบส (BUS) คอเสนทางการแลกเปลยนสญญาณขอมลระหวาง ซพยหนวยความจ าและพอรต

เปนลกษณะของสายสญญาณ จ านวนมากอยภายในตวไมโครคอนโทรลเลอร โดยแบงเปนบสขอมล (Data Bus), บสแอดเดรส (Address Bus)และบสควบคม Control Bus )บสขอมลเปนสายสญญาณทบรรจขอมล เพอการประมวลผลทงหมด ขนาดของบสจะขนอยกบความสามารถการประมวลผลของซพย ส าหรบในงานทวๆ ไป ขนาดของบสขอมลจะเปน 8 บต และในปจจบนไดมการพฒนาขนมาจนถง 16,32 และ 64 บต บสแอดเดรสเปนสายสญญาณทบรรจคาต าแหนงของหนวยความจ า โดยการตดตอกบหนวยความจ านน ซพย ตองก าหนดต าแหนงทตองการอานหรอเขยนกอน ดงนนจ านวนสายสญญาณของแอดเดรสจงตองมจ านวนมาก ยงมากเทาไหร กจะเปนการแสดง ขนาดของหนวยความจ าทไมโครคอนโทรลเลอรสามารถตดตอได โดยสามารถค านวณไดจาก จ านวนแอดเดรสของหนวยความจ า = 2 ยกก าลง n ( n คอจ านวนของเสนทาง ) ยกตวอยาง ไมโครคอนโทรลเลอรตวหนงมสายแอดเดรส 10 เสน ดงนน ไมโครคอนโทรลเลอรตวน สามารถตดตอกบหนวยความจ าได 2 ยกก าลง 10 = 1,024 ต าแหนง หากตองการทราบความจของหนวยความจ าจรงๆ จะตองทราบถงขนาดของบสขอมลกอนวาเปนเทาใด หากเปน 8 บต ความจของหนวยความจ าทมสายแอดเดรส 10 เสน จะเทากบ 8×1024 = 8,192 บต และ 1 กโลไบต เทากบ 1,024 ไบต ดงนนไมโครคอนโทรลเลอรดงกลาว จงมความจของหนวยความจ าเทากบ 8,192 บต

Page 4: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

6

หรอ 1,024 ไบต หรอ 1 กโลไบตบสควบคมเปนกลมของสายสญญาณควบคมการตดตอทงหมดของซพยกบหนวยความจ าและพอรต ส าหรบสายสญญาณเลอกควบคมหลกไดแก สายสญญาณเลอก-อาน-เขยนหนวยความจ า สายสญญาณเลอกเลอก อาน-เขยนขอมลกบพอรต

2.1.3.5. วงจรก าเนดสญญาณนาฬกา (Clock) นบเปนสวนประกอบทส าคญมากอกสวนหนง เนองจากการท างานทเกดขนในตว

ไมโครคอนโทรลเลอร จะขนอยกบการก าหนดจงหวะ หากสญญาณนาฬกามความถสง จงหวะการท างานกจะสามารถท าไดถขนสงผลใหไมโครคอนโทรลเลอรตวนน มความเรวในการประมวลผลสงตามไปดวย

รปท 2.2 การจดขาของไมโครคอนโทลเลอรตระกล PIC 16F684

2.2 การเขยนโปรแกรมดวยภาษาซ 2.2.1 องคประกอบพนฐานของภาษา C อกขระ (Characters) คาคงท (Constants) ตวแปร (Variables) ตวด าเนนการ (Operators)

นพจน (Expressions) Characters แบงเปนตวเลข (Digits) คอ ตวเลข 0 ถง 9 และเลขฐานสบหก คอ A B C D E

และ F ตวอกษร (Letters) คอตวอกษรในภาษาองกฤษ เปนตวพมพใหญและตวพมพเลก คอ A-Z และ a-z อกขระพเศษ (Special Characters) คอ ! * + " < # ( = | > % ) ~ : / ^ - [ ; ? , & _ ] ' . Space ในภาษาซถอวา เครองหมายขดเสนใตเปนตวอกษรตวหนง Characters ตาง ๆ นจะใชเปนคาคงท ตวแปร ตวด าเนนการ Constants เปนคาทมคาไมเปลยนแปลง แบงเปนคาคงทประเภทเลขจ านวนเตม (Integer Constant) คอเลขจ านวนเตม ทอยระหวาง -32768 ถง 32767 เชน-25 หรอ 0 หรอ 236 คาเหลานแตละคาใชหนวยความจ าในการเกบ 2 ไบต คาเหลานเขยนในรปเลขฐานสบ ฐานแปด(เขยนโดยใชเลขศนยน าหนา เชน 045) เลขฐานสบหก (เขยนโดย ใชเลขศนยและ x น าหนา เชน 0x28 0X2AF) คาคงทชนดตวเลขทศนยม (Floating Point Constants) เปนตวเลขทศนยม เชน 1.0

Page 5: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

7

1.6 E+09 คานใชหนวยความจ าในการเกบคาละ 4 ไบต และมคาอยในชวง 1.2 E-38 ถง 3.4 E+38 โดย 3 ไบตแรกเกบคาตวทศนยม สวนไบตสดทายเกบเลขยกก าลงคาคงทชนดตวเลขทศนยมความละเอยดสองเทา (Double Floating Point) เรยกสน ๆ วา Double เกบจ านวน 2.2 E-308 ถง 1.8 E+308 เทานน ใชหนวยความจ า 8 ไบต 7 ไบตแรกเกบเลขทศนยม ไบตสดทายเกบเลขยกก าลงคาคงทชนดตวอกขระ (single character constant) เกบตวอกขระ 1 ตว โดยใชเครองหมาย ' และ ' ลอม1 ตวอกขระใช 1 ไบต เชน 'E' 'X'คาคงทชนดขอความ (String Constant) ใชเกบขอความ มความยาวตงแต 1 ตวอกขระ เกบในรปอารเรยแตละตวใชหนวยความจ า 1 ไบต เรยงตอกนโดยไบตสดทายจะตองเกบ \0 (Null Character) เพอบอกวาจบขอความแลว เชน "Bodindecha" ใชหนวยความจ า 11ไบต ตวแปร(Variables)เปนชอทตงเพอใชอางองถงขอมลตาง ๆ โดยตวแปรจะมการใชเนอทในหนวยความจ าในปรมาณทตางกนขนกบชนดของขอมล ขอมล พนฐานในภาษาซ ม 5 ชนด คอ อกขระ (Char) จ านวนเตม (Int) จ านวนจรง (Float) จ านวนจรงละเอยด 2 เทา (Double) ไมใหคาใด ๆ (Void) นอกจากนเพอความสามารถในการใชงานจงมการเพมชนดของตวแปรขนมาดงตารางท 2.1

ตารางท 2.1 ตารางแสดงชนดของตวแปร

Page 6: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

8

2.2.2 การตงชอตวแปร 1. ตองขนตนดวยตวอกษรเทานน ตวตอไปจะเปนตวเลขหรอตวอกษรได ความยาวไมเกน

31 ตว 2. ชอตวแปรควรสอความหมายของตวแปรเพอปองกนความสบสนของการพจารณา

โปรแกรม 3. หามตงชอตรงกบค าสงวนในภาษาซ ซงม 33 ค า ดงน asm auto break case char const continue default do double else enum extern float for goto

if int long register return short signed size of static struct switch type def union unsigned void volatile while

2.2.3 การประกาศตวแปร ในการจะใชงานตวแปรจะตองมการประกาศชนดและชอของตวแปรนนกอน โดยการ

ประกาศตวแปรใชรปแบบ คอ ชนดของตวแปร ชอตวแปร โดยถามตวแปรชนดเดยวอาจประกาศพรอมกนโดยใช คอมมา คนระหวางชอของตวแปร ถามการก าหนดคาใหใชเครองหมาย = และใชเครองหมายแสดงการจบค าสงเมอสนสดค าสง ตวอยาง เชน

char name, day = 'S' , surname[20] ="Kodedee"; int x=5 ,y,z[100]; float a=5.00 ,b,c; double k=1.234567, m ; 2.2.4 ตวด าเนนการ (Operator) ตวด าเนนการมหลายประเภทลกษณะการด าเนนการแตกตางกนไป ในทนจะกลาวถงบาง

ประเภทเทานน

ตารางท 2.2 ตวด าเนนการทางคณตศาสตร

Page 7: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

9

ตารางท 2.3 ตวด าเนนการความสมพนธหรอการเปรยบเทยบ

ตารางท2.4 ตวด าเนนการตรรกะ

ตารางท 2.5 ตวด าเนนการก าหนดคา

Page 8: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

10

2.2.4 นพจน (Expression) เกดจากการน า คาคงท หรอ ตวแปร และตวด าเนนการมาประกอบกน โดยนพจนมหลาย

ชนด เชนนพจนทางคณตศาสตร นพจนทางตรรกะ นพจนทางการเปรยบเทยบ นพจนเกยวกบเงอนไข นพจนเกยวกบขอความ เชน 2 + x * 5 เปนตวอยางของนพจนทางคณตศาสตร (2>3)&&(5>=4) เปนนพจนทางตรรกะและการเปรยบเทยบ !(a) เปนนพจนทางตรรกะ if(x==y) เปนนพจนเงอนไข

ตวอยาง การหาผลลพธของนพจน ก าหนด int a = 10 , b = 12, c =3; จงหาผลลพธของ 2 * a + b % c ด าเนนการดงน (2 * a) +

(b %c) ผลลพธ คอ 20 + 0 คอ 20 จากขอก าหนดดานบน จงหาผลลพธ ของ (a>b)&&(c<=b) ซงเราอาจพจารณา ดงน (เทจ) && (จรง) ดงนน ผลลพธ คอ เทจ

2.2.5 โครงสรางของภาษาซในโปรแกรม CSS C Compiler Preprocessor directive ใชส าหรบเรยกไฟลทโปรแกรมตองการท างานและก าหนดคาตางๆ โดยคอมไพเลอรจะท า

ตามค าสงกอนทจะคอมไพลโปรแกรม โดยจะเรมตนดวยเครองหมาย Pound Sign (#) ส าหรบ Directiveทใชบอยไดแก #Include เปนการแจงใหคอมไพเลอรอานไฟลอนเขามาคอมไพลรวมดวย เชน #Include <16f877.h> #Use delay (clock=4000000) เปนการบอกใหคอมไพเลอรรวาจะมการใชฟงกชน Delay โดยใชสญญาณนาฬกาเทากบ 4 MHz โดยคาของ Clock จะขนอยกบสญญาณนาฬกาทเราใช

สวนประกาศ (Global Declaration) เปนสวนทใชประกาศตวแปรหรอฟงกชนทตองใชในโปรแกรมโดยตวแปรในสวนนจะสามารถใชไดกบทกๆสวนของโปรแกรม หากเปน Local Declaration จะสามารถใชเฉพาะในบลอกหรอฟงกชนทประกาศใชเทานน

สวนฟงกชนหลก (Void Main ( ) Function) สวนนทกโปรแกรมจะตองมภายในจะประกอบไปดวยประโยคค าสงตางๆ ทจะใหโปรแกรมท างานแตละประโยคค าสงจะจบดวยเครองหมาย เซมโคลอน (;)

ตวอยาง #include<16f877.h> //ใชไมโครคอนโทรลเลอรเบอร 16f877 #use delay (clock = 4000000) #fuses XT,NOWDT void main ( ) { //เรมตนโปรแกรมหลก While (true)

Page 9: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

11

{ OUTPUT_HIGH (PIN_B0); //ให port B0 เปนลอจก 1 Delay_ms( 1000 ); //หนวงเวลา 1000 มลลวนาท OUTPUT_LOW (PIN_B0); //ให port B0 เปนลอจก 0 } } //จบโปรแกรม Note: โปรแกรมขางตนจะท าให Led ตด ดบสลบกน โดยจากรป Led จะตดเมอ Port B0 เปนลอจก 1 และจะดบเมอ Port B0 เปนลอจก 0

การประกาศตวแปร การประกาศตวแปรมรปแบบการประกาศ ดงน ประเภทของขอมล ชอตวแปร [,.........,]; เชน float a; //ประกาศตวแปร a เปนตวแปรประเภทจ านวนจรง int x,y,z; //ประกาศตวแปร x , y , z เปนตวแปรแบบจ านวนเตม การใชงานตวแปรใหถกประเภทน นมความส าคญตอความถกตองและความรวดเรวในการประมวลผลมาก ดงนนเราจงตองท าความเขาใจเกยวกบตวแปรประเภทตางๆ

ตารางท 2.6 ชนดตวแปร

Page 10: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

12

ตารางท 2.6 ชนดตวแปร (ตอ) 2.2.6 ค าสงควบคมในภาษาซ (Control Statement)

ค าสงทใชควบคมในภาษาซมอยหลายค าสง เชน ค าสงวนลปซอน, ค าสงท าตามเงอนไข เปนตน ค าสงทใชในการควบคมไมโครคอนโทรลเลอร สามารถแบงออกไดดงน

2.2.6.1 ค าสง Goto Label เปนชดค าสงทใชสงใหกระโดดขามไปยงค าสงอนๆ ทไดก าหนด Label ไว แตค าสงนมลกษณะทไมเปนโครงสราง หากใชงานมากๆ จะท าใหเกดความยงยากตอโปรแกรม ดงนนจงไมเหมาะตองานทมความซบซอนมากๆ โดยมรปแบบการใชงานดงน

Page 11: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

13

2.2.6.2 ค าสงเลอกท าแบบทางเดยว ( if ) ใชตรวจสอบนพจนเงอนไข การใชงานค าสง if ถอไดวาเปนค าสงส าคญมากค าสง

หนงทใชในการตดสนใจเพอท าหรอไมใหท าสงใด มการตดสนใจใหท าเมอนพจนเปนจรง และใหท าค าสงถดไปเมอนพจนเปนเทจ

Page 12: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

14

รปท 2.3 ค าสง if แบบทางเดยว

รปแบบ if ( condition) { action statement; } ตวอยาง if (input(sw)) { output_high(pin_C0); } เปนการตรวจสอบวาตวแปรอนพท SW ถกกดเปนคา 1 หรอเปลาถาเปนจรงจะท าใหพอรต C (Pin C0) มคาเปนลอจก 1

2.2.6.3 การเลอกท าแบบสองทศทาง (IF – ELSE) ใชก าหนดเงอนไขดวยตวด าเนนการเปรยบเทยบ แลวสงใหไมโครคอนโทลเลอร

ปฏบตตามเงอนไขทก าหนดไว ใหเลอกท าเงอนไขใดเงอนไขหนง ซงมรปแบบดงน

Page 13: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

15

รปท 2.4 ค าสง If แบบสองทาง

2.2.6.4 การเลอกท าแบบหลายทางเลอก (Switch) มลกษณะคลายกบค าสง If แบบหลายทาง แตผดกนตรงทเมอมนพจนเงอนไขใด

เงอนไขหนงเปนจรงแลวไมโครคอนโทลเลอรจะปฏบตตามชดค าสงนนๆ และชดค าสงอนๆ ถดไปดวย เมอไดรบนพจนเงอนไขนนมาเพอเลอกอก ในเงอนไขนพจนหากไมตามทายดวยค าสง Break ในแตละชดเงอนไขทดสอบนนจะตองเปนอกขระ หรอตวเลขจ านวนเตมเทานน เชน Char, Int, Short Long เปนตน

Page 14: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

16

รปท 2.5 โครงสรางค าสงเลอกท าแบบหลายทางเลอก (Switch)

Page 15: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

17

2.2.6.5 ค าสง For loop ค าสงนจะถกน ามาใชในกรณทตองการใหโปรแกรมท างานซ าโดยจะตองทราบคา

ของจ านวนครงในการท าซ า หรอเงอนไขทแนนอนเพอควบคมใหโปรแกรมหยดท างานซ า

Page 16: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

18

รปท 2.6 แสดงโครงสรางของชดค าสง For Loop

2.3 LED

LED ยอมาจากภาษาองกฤษค าวา Light Emitting Diode หรอถาแบบไทยๆ คออปกรณ

สงประดษฐชนดหนง ทสามารถเปลยนพลงงานไฟฟาเปนพลงงานแสงสวางได LED ถาคยกนใน

ภาษาอเลกทรอนกส เราเรยกวาไดโอดเปลงแสง ขนาด 1 รอยตอ PN เมอเราใหไฟบวกดาน P และ

ไฟลบดาน N อเลกตรอนและโฮลจะไหลมารวมกน อเลกตรอนจะปลดปลอยพลงงานออกมา ใน

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

เรากสามารถมองเหนแสงทออกมาจากตวไดโอดชนดนไดสารกงตวน าทใชเปนสวนผสมหลก จะ

เปนสารผลกแกเลยม (Ga) โดยทสตางๆ เชนสแดง สเขยว สสม จะเกดขนจากสารทใสเจอปนเขาไป

บนผลกแกเลยม LED ในอดตสวนใหญจะถกน ามาใชงานเปนสวนแสดงผลการท างานของ

Page 17: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

19

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

LED เองเมอท าใหเกดแสงขนจะกนกระแสนอยมากประมาณ 1-20 mA มอายการใชงานทยาวนาน

ทนทานตอสภาวะอากาศ การสนสะเทอน และมหลากหลายสใชเลอกใช LED ไดถกพฒนาขน

เรอยๆ ทงในดานสของแสงทเปลงออกมา ไมวาจะเปนสแดง สเขยว สสม หรอทผลตไดทายสด

และท าใหวงการแอลอดพฒนาขนอยางรวดเรวคอสน าเงน ซงการเกดขนของแอลอดสน าเงนน ท า

ใหครบแมส 3 ส คอ สแดง สเขยว และสน าเงน และเกดเปนจดเรมตนของจอแอลอด และแอลอด

ในงานไฟประดบตางๆ

2.3.1 RGB LED

RGB ยอมาจาก Red, Green และ Blue คอระบบสของแสง เกดจากการหกเหของแสง

กลายเปนสรง ดวยกน 7 ส ซงเปนชวงแสงทตาของคนเราสามารถมองเหนได แสงสมวงจะมความถ

สงสดเรยกวา อนตราไวโอแรต และแสงสแดงจะมความถต าสด เรยกวาอนฟาเรต คลนแสงทม

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

แสงส 3 ส คอ สแดง ( Red ) สน าเงน ( Blue ) และสเขยว ( Green )ทงสามสถอเปนแมสของ

แสง แมสของแสงมดวยกน 3 ส คอ สแดง ( R ) ,สเขยว ( G ), สน าเงน ( B ) และแตละแมสเมอ

รวมกนกจะไดสดงนสแดง+สเขยว ได สเหลอง Yellow สเขยว+น าเงน ได สฟา Cyan สแดง+สน า

เงน ได สแดงอมชมพ Magenta เมอน าแมสของแสงทง 3 มาผสมกน ในปรมาณแสงสวางเทากนก

จะไดเปนแสงทสขาว แตถาผสมกนระหวางแสงระดบความสวางตางกน กจะไดผลทเปนแสงสๆ

มากมายเปนลานสทเดยว สวนใหญการใชสลกษณะนจะใชในอปกรณทเกยวกบแสง เชน จอภาพ

กลองดจตอล สแกนเนอร เปนตน ระบบส RGB จะการแสดงผลออกมา เปนรปแบบการรบแสง

แสดงผลดวยแสงทเปนแมสไดแก สแดง สเขยว สน าเงน ซงอปกรณอเลกทรอนกสตางๆไมวาจะ

เปน จอภาพ,สแกนเนอร,กลองดจดอลหรอดวงตาคนเราลวนแตรบและแปลผลเปนสตางๆ ดวยแสง

เหลาน ตวอยางการงานทเหมาะกบการใชระบบส RGB กเชน ในการออกแบบ Web Site , Blog

เหลา Web Design จะใชระบบส RGB เพอใหไดภาพทเมอแสดงผลบนนาจอแลวมความสวยงาม

ใกลเคยงกบสทตาเรามองเหนปกต สวนในงานสงพมพจะนยมใชระบบส CMYK เพราะเปนระบบ

สทใชกบเครองพมพ ดงนนเมอเราตองการพมพภาพ จงควรตงคาภาพนนใหเปน ระบบส CMYK

Page 18: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

20

กอนพมพเพอใหภาพทไดสไมผดเพยนไป เพราะหากเราน าภาพทเปนระบบส RGB ไปพมพปกต

โดยไมมการแปลงใหเปนระบบส CMYK เสยกอน ภาพทไดจะมสทผดเพยนไป

2.3.2 RGB Dot Matrix

ดอทเมตรกซ (Dot Matrix) เปนอปกรณแสดงผล แบบเดยวกบ LED คอการน าเอา LED

หลายตวมาตอเรยงกน เปนหลก เปนแถว ซงจะเหนการใชงานดอมเมตรกซในการท าปายไฟวง โดย

จะน าเอาดอทเมตรกซ หลายๆ ตวมาตอกน แลวเขยนโปแกรมผานไมโครคอนโทลเลอร หรอ

คอมพวเตอรผานวงจรขบดอทเมตรกซ กสามารถท าไฟวงได

รปท 2.7 RGB Dot Matrix

อยางทเรารแลววาดอทเมตรกซ คอ การน า LED มาตอกน ดงนน สญลกษณ ของ ดอทเมอตรกซ

และการตอใชงานจะเหมอนกบการตอใชงาน LED หรอ การตอใชงาน ตวแสดงผล 7 สวน (7

Segments) จะมทงการตอแบบ คอมมอนอาโนด( A) การตอแบบคอมมอนคาโทด (K)

รปท 2.8 วงจรของ RGB Dot Matrix

Page 19: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

21

การเรยกดอทเมตรกซ เราจะเรยก กหลก กแถว เชน ขนาด 8X8 คอ จะม 8 หลก 8 แถว และ

จะมสใหเหลอกใชงานเหมอนกบ LED สวนขนาดนนจะมหลายขนาดใหเลอกใช คงตองเลอก

กนเองแตในกรณนจะใชขนาด 8x8

2.4 Integrated Circuit

IC หมายถง วงจรทน าเอาไดโอด ทรานซสเตอร ตวตานทาน ตวเกบประจ และ

องคประกอบวงจรตาง ๆ มาประกอบรวมกนบนแผนวงจรขนาดเลก ในปจจบนแผนวงจรนจะท า

ดวยแผนซลคอน บางทอาจเรยกชป (Chip) และสรางองคประกอบวงจรตาง ๆ ฝงอยบนแผนผลกน

สวนใหญเปนชนดทเรยกวา Monolithic การสรางองคประกอบวงจรบนผวผลกน จะใชกรรมวธ

ทางดานการถายภาพอยางละเอยด ผสมกบขบวนการทางเคมท าใหลายวงจรมความละเอยดสงมาก

สามารถบรรจองคประกอบวงจรไดจ านวนมาก ภายในไอซ จะมสวนของลอจกมากมาย ในบรรดา

วงจรเบดเสรจทซบซอนสง เชน ไมโครโปรเซสเซอร ซงใชท างานควบคม คอมพวเตอร จนถง

โทรศพทมอถอ แมกระทงเตาอบไมโครเวฟแบบดจทล ส าหรบชปหนวยความจ า (RAM) เปนอก

ประเภทหนงของวงจรเบดเสรจ ทมความส าคญมากในยคปจจบน

2.4.1 IC 74HC595

ไอซ 74HC595 เปนไอซลอจก (Logic IC) ทท าหนาทเปนวงจรเลอนบตขนาด 8 บต (8-bit Shift Register) โดยรบขอมลเขาและสงขอมลออกทละบต (Serial-In & Serial-Out) และมเอาตพตแบบ 8 บต (Parallel Data Output) ถาตองการจะสงขอมลไปก าหนดสถานะลอจกใหขาเอาตพตทง 8 ขา (Q0 ถง Q7) จะตองใชวธเลอนบตทละบต เขาทขาอนพต DS (Serial Data Input) และสรางสญญาณ Clock ปอนเขาทขา SHCP (Shift Clock Input) เพอก าหนดจงหวะในการท างาน และสามารถเลอกใชความถของสญญาณอนพต SHCP ไดเกนกวา 10 MHz ... สญญาณ SHCP หนงไซเคล (Clock Cycle) หมายถง การเลอนบตหนงครง ดงนนจงตองใชทงหมด 8 ไซเคล ส าหรบ 8 บต ถาเลอนบตมากกวา 8 ไซเคล ขอมลในรจสเตอร กจะถกสงออกมาตามล าดบทขา Q7S การเลอนบตเพอสงขอมลจะสงแบบ MSB First เมอขอมลถกน าไปใสไวในรจสเตอรภายในจนครบ 8 บตแลว และตองการใหขาเอาตพต Q0 ถง Q7 มสถานะลอจกตรงตามขอมลในรจสเตอร จะตองสรางสญญาณแบบ Pulse เขาทขา STCP (Storage Clock Input) และตองก าหนดขาอนพต OE (Output Enable) ใหเปนลอจก Low ถาตองการจะเคลยรขอมลในรจสเตอร ใหปอนอนพตทขา MR (Master Reset) เปน Low แลวจงเปลยนเปน High

Page 20: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

22

ขอสงเกต: อาจพบวามไอซ 74HC595 และ 74HCT595 ใหเลอกใช แมวาไอซทงสองจะมฟงกชนการท างานเหมอนกน แตอยในตระกลของไอซลอจก (Logic Families) ทแตกตางกน... การเลอกใชแรงดนไฟเลยง (Vcc) ส าหรบ 74HC595 จะใชงานไดในชวง 2.0 ถง 6.0 โวลต แตถาเปน 74HCT595 จะใชแรงดนไฟเลยงไดในชวง 4.5 ถง 5.5 โวลต

รปท 2.9 ต าแหนงขาทงหมดของไอซ 74HC595

ไอซ 74HC595 ตวถงแบบ PDIP-16 มขาดงตอไปน

Pin 1 = Q1 -- Data Output Bit 1 Pin 2 = Q2 -- Data Output Bit 2 Pin 3 = Q3 -- Data Output Bit 3 Pin 4 = Q4 -- Data Output Bit 4 Pin 5 = Q5 -- Data Output Bit 5 Pin 6 = Q6 -- Data Output Bit 6 Pin 7 = Q7 -- Data Output Bit 7 Pin 8 = GND Pin 9 = Q7S -- Serial Data Output

Page 21: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

23

Pin 10 = /MR -- Master Reset (Active-Low) Pin 11 = SHCP -- Shift Register Clock Input Pin 12 = STCP -- Storage Register Clock Input Pin 13 = /OE -- Output Enable Input (Active-Low) Pin 14 = DS -- Serial Data Input Pin 15 = Q0 -- Data Output Bit 0 Pin 16 = VCC -- Supply Voltage

การตอวงจรไอซ 74HC595 เพอควบคมการตด-ดบของ LED จ านวน 8 ดวง จะใชเพยง 3

ขาสญญาณ ( เพอใหใชขา I/O ใหนอยทสด) เชอมตอกบบอรด Arduino คอ ขา DS, SHC และ

STCP ขอดของการใชไอซ 74HC595 ควบคมการตดดบของ LED คอ สามารถใชขาสญญาณเพยง 3

ขา และใชกบไอซ 74HC595 ไดมากกวาหนงตว (ดงนนจงใชกบ LED ไดมากกวา 8 ดวง) โดยน า

ไอซมาตอกนแบบ Daisy Chain (น าขา Q7S ของไอซตวหนง ไปตอกบขา DS ของไอซตวถดไป

และไอซทกตวใชสญญาณ SHCP และ STCP เหมอนกน)

2.4.2 IC ULN2803

เปนไอซทใชในการขยายกระไฟฟาของวงจร

รปท 2.10 ต าแหนงขาของ ULN2803

Page 22: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

24

Pin 1 -- Data Input Bit 1 Pin 2 -- Data Input Bit 2 Pin 3 -- Data Input Bit 3 Pin 4 -- Data Input Bit 4 Pin 5 -- Data Input Bit 5 Pin 6 -- Data Input Bit 6 Pin 7 -- Data Input Bit 7 Pin 8 -- Data Input Bit 8 Pin 9 -- GND Pin 10 -- Common Pin 11 -- Data Output Bit 8 Pin 12 -- Data Output Bit 7 Pin 13 -- Data Output Bit 6 Pin 14 -- Data Output Bit 5 Pin 15 -- Data Output Bit 4 Pin 16 -- Data Output Bit 3 Pin 17 -- Data Output Bit 2 Pin 18 -- Data Output Bit 1

2.4.3 IC SN74LS245

ในกรณของโปรเจคนใชไอซ SN74LS245 เปน CLK และSLK ไอซเบอรนสามารถม

Input and Output ไดสองทศทาง โดยควบคมทศของInput and Output ดวยขา DIR หากจายลอจก 0

ใหขา DIR ทศทางของInput and Output จะเปน Bus B Data to Bus A หากจายลอจก 1 ใหขา DIR

ทศทางของ Input and Output จะเปน Bus A Data to Bus B

Page 23: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

25

รป 2.11 ต าแหนงขาของ SN74LS245

Pin 1 -- DIR Pin 2 -- Data Input or Data Output Bit 1 Pin 3 -- Data Input or Data Output Bit 2 Pin 4 -- Data Input or Data Output Bit 3 Pin 5 -- Data Input or Data Output Bit 4 Pin 6 -- Data Input or Data Output Bit 5 Pin 7 -- Data Input or Data Output Bit 6 Pin 8 -- Data Input or Data Output Bit 7 Pin 9 -- Data Input or Data Output Bit 8 Pin 10 --GND Pin 11 -- Data Input or Data Output Bit 8 Pin 12 -- Data Input or Data Output Bit 7 Pin 13 -- Data Input or Data Output Bit 6

Page 24: บทที่ 2 - Siam Universityresearch-system.siam.edu/images/EE/ProjectEE2/wya1/07_ch2.pdf · บทที่ 2 ทฤษฎีที่เกี่ยวข้อง 2.1 ไมโครคอนโทรลเลอร์

26

Pin 14 -- Data Input or Data Output Bit 5 Pin 15 -- Data Input or Data Output Bit 4 Pin 16 -- Data Input or Data Output Bit 3 Pin 17 -- Data Input or Data Output Bit 2 Pin 18 -- Data Input or Data Output Bit 1 Pin 19 -- E Pin 20 -- VCC