27
Supayotin na songkla [email protected]

Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

Supayotin na [email protected]

Page 2: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ไมโครคอนโทรลเลอรและไมโครโปรเซสเซอร

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

Page 3: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ไมโครคอนโทรลเลอรและไมโครโปรเซสเซอร

• ไมโคร คอนโทรลเลอร ( Microcontroller ) มาจากคา 2 คา คาหนงคอ ไมโคร ( Micro ) หมายถงขนาดเลก และคาวา คอนโทรลเลอร ( controller)หมายถงตวควบคมหรออปกรณควบคม ดงนน ไมโครคอนโทรลเลอร จงหมายถงอปกรณควบคมขนาดเลก แตในตวอปกรณควบคมขนาดเลกน ไดบรรจความสามารถทคลายคลงกบระบบคอมพวเตอร ทคนโดยสวนใหญคนเคย กลาวคอภายใน ไมโครคอนโทรลเลอร ไดรวมเอาซพย , หนวยความจา และพอรต ซงเปนสวนประกอบหลกสาคญของระบบคอมพวเตอรเขาไวดวยกน โดยทาการบรรจเขาไวในตวถงเดยวกน

• ความแตกตางของ MicroController กบ MicroComputer คอ MicroControllerนนมสมบรณภายในตวของมนเอง คอ มสวนประกอบตางๆ ครบถวน สวน MicroComputer นนตองทางานรวมกบอปกรณขางเคยงทเชอมตอจากภายนอก เชน แปนพมพ เครองอานเขยนแผนบนทก หนวยความจา I/O ฯลฯ

Page 4: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ทาไมตองไมโครคอนโทรลเลอร

• นก ออกแบบ พฒนาผลตภณฑ ตลอดจนนกประดษฐทงหลาย ตางหลกเลยงไมไดเลยทจะตองอาศยวงจรอเลกทรอนกส เขาไปมสวนเกยวของในการควบคม แตครนวงจรอเลกทรอนกสทนามาตออนกรมเพอความสามารถทเราตองการ นนกใหญโตเสยเหลอเกน ดเหมอนจะขดแยงกบความตองการของผบรโภค และหลกการออกแบบผลตภณฑ

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

Page 5: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ไมโครคอนโทรลเลอรและไมโครโปรเซสเซอร ตางกนอยางไร ?

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

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

ดงนน ไมโครโปรเซสเซอร + ไมโครคอนโทรลเลอร = ไมโครคอมพวเตอร

Page 6: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ไมโคร คอมพวเตอร

• ไมโคร คอมพวเตอร กคอ คอมพวเตอรทเราใชงานกนอยนละ ซงมนจะมไมโครโปเซสเซอรและไมโครคอนโทรลเลอรอยในบอรดวงจร อเลกทรอนกสเดยวกน ทเรยกกนวา "เมนบอรด" นนละ มขาใหใชงาน เรยกวา " พอตร" Port ซงพอตรตางๆกจะมชอเรยกกนไป เชน พอตรจอภาพ พอตรขนาน พอตรอนกรณ พอตรยเอสบ พอตรแลน พอตรฮารดส พอตรซดรอม พอตรปอปปดส และพอตรเสยบการดตางๆ

• อนง ไมโครคอมพวเตอรสมยใหมๆ มคจะไมม พอรดขนานใหเราใชงานแลว ชาวบานเรยกวาพอตรปรนเตอร อนใหญๆยาวๆทสด จงตองมการใชไมโครคอนโทลนเลอรขนมาเพอแปลงขอมลทประมวณผลไดจาก ไมโครคอมพวเตอร มาเปน " ขา " ขบรเลย โซลสเตจ เอสซอา ไตรแอร และ บอรดกาลง เพอสงงานเครองจกรกล ทชาวบานเคาเรยก โมชนคอนโทรลเลอร นนละ ตอนนเทาทเหนมขายก เนเชนแนวอนสตเมน NI ใชกบ แลปวว ซงแพงมากๆ และตองซอลขสทธซอฟแวรอก จงไดมการทา โมชนบานหมอ โมชนอซอรตโมชนเพอการศกษา อะไรแบบน

Page 7: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ภาษาทใชกบไมโครคอนโทรลเลอร

• ภาษา ทใชกบไมโครคอนโทรลเลอรนน จะแตกตางกนขนอยกบไมโครคอนโทรลเลอรแตละตระกล แตภาษาทใชโดยทวไป สามารถแบงออกเปน 3ประเภท ดงน

• 1. ภาษาเครอง

• 2. ภาษา Assembly• 3. Interpreters• 4. Compilers

• 1. ภาษาเครองภาษา เครอง (Machine Language) เปนภาษาทอยในรปแบบของรหสเลขฐานสอง ไมโครคอนโทรลเลอรสามารถเขาใจภาษานไดทนท โดยไมตองผานกระบวนการแปล แตเปนภาษาทยากตอการเรยนร เพราะอยในรปแบบของเลขฐานสอง และผใชตองมความรเกยวกบฮารดแวรเปนอยางด แตขอดของภาษาน คอ มขนาดเลก ทางานไดรวดเรว และสามารถตดตอกบฮารดแวรไดโดยตรง

Page 8: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ภาษาทใชกบไมโครคอนโทรลเลอร

• ภาษา ทใชกบไมโครคอนโทรลเลอรนน จะแตกตางกนขนอยกบไมโครคอนโทรลเลอรแตละตระกล แตภาษาทใชโดยทวไป สามารถแบงออกเปน 3ประเภท ดงน

• 1. ภาษาเครอง

• 2. ภาษา Assembly• 3. Interpreters• 4. Compilers

• 2. ภาษา Assemblyภาษา Assembly สรางขนมาเพอใหการเขยนโปรแกรมงายขน ภาษา assembly ใชคาในภาษาองกฤษแทนรหสเลขฐานสอง ในภาษาเครองดงนนในการใชงาน จะตองผานการแปลจากภาษา Assembly เปนภาษาเครองกอน ตวแปลภาษา เรยกวา Assembler โปรแกรมทเขยนโดยภาพา assembly จะทางานเรวและมขนาดเลก เพราะวามนสามารถเขาถง Hardware ไดโดยตรงเชนเดยวกบภาษาเครอง แตทงนขนอยกบวธการเขยนของผ เขยนดวย

Page 9: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ภาษาทใชกบไมโครคอนโทรลเลอร

• ภาษา ทใชกบไมโครคอนโทรลเลอรนน จะแตกตางกนขนอยกบไมโครคอนโทรลเลอรแตละตระกล แตภาษาทใชโดยทวไป สามารถแบงออกเปน 3ประเภท ดงน

• 1. ภาษาเครอง

• 2. ภาษา Assembly• 3. Interpreters• 4. Compilers

• 3. Interpretersinterpreter คอ ภาษาระดบสงซงใกลเคยงกบภาษาของมนษย โดยจะฝงตวอยในหนวยความจา และทาหนาทอานคาสงจากโปรแกรมขนมาทละคาสง ทาการแปลเปนภาษาเครอง แลวปฏบตตามคาสงนนๆ ตวอยางของ interpreter ทรจกกนดคอ ภาษาBASIC ขอเสยของ interpreter คอ ทางานไดชา เนองจากตองแปลคาสงทละคาสง

Page 10: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ภาษาทใชกบไมโครคอนโทรลเลอร

• ภาษา ทใชกบไมโครคอนโทรลเลอรนน จะแตกตางกนขนอยกบไมโครคอนโทรลเลอรแตละตระกล แตภาษาทใชโดยทวไป สามารถแบงออกเปน 3ประเภท ดงน

• 1. ภาษาเครอง

• 2. ภาษา Assembly• 3. Interpreters• 4. Compilers

• 4. Compilerscompiler คอ ภาษาระดบสงซงทาหนาทแปลโปรแกรมทเขยนขนมาทงหมดใหเปนภาษา เครอง จากนนจงนาเอาโปรแกรมทแปลเสรจแลวเขาไปเกบในหนวยความจา หลงจากนนจงสงใหไมโครคอนโทรลเลอรปฎบตตามคาสงนนๆ ทาใหการทางานไดเรวขน ตวอยางเชน ภาษา C เปนตน

Page 11: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ตระกลตางๆ ของไมโครคอนโทรเลอร

• ตระกลตางๆ ของไมโครคอนโทรเลอร

• AVR , ARM , BASIC STAMP , MCS-51 , PIC, ST

Page 12: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ไมโครคอนโทรลเลอรตระกล

• ไมโครคอนโทรลเลอรตระกล MCS-51ของบรษท Philips

• ไมโครคอนโทรลเลอรตระกล AVR ของบรษท ATMEL

• และไมโครคอนโทรลเลอรตระกล PIC ทบรษท Micro chip เปนผผลต

Page 13: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ไมโครคอนโทรลเลอรตระกล PIC

• ไมโครคอนโทรลเลอรตระกล PIC ได ถกพฒนามาอยางตอเนอง จนสามารถนามาใชงานในการควบคมไดอยางหลากหลาย เนองจากมคณสมบตทครบครน อกทงยงงายตอผ ทเรมเรยน คอสามารถทจะเรยนรไดงายและสามารถนาไปใชงานไดจรง เนองจากมประสทธภาพทสง ราคาถก เปนทนยม และมใหเลอกมากมายหลายเบอร

Page 14: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ความเปนมาของ PIC

• ค.ศ. 1977 บรษท General Instrument หรอบรษทไมโครชพในปจจบน ไดมการผลตไมโครคอนโทรลเลอร PIC (Peripheral Interface Controller) ออกมาวางจาหนาย PIC เบอรแรกทผลตออกมากคอ PIC1650

• การออกแบบ PIC จะยดถอการออกแบบทวารวมทกอยางไวใน chip ตวเดยวโดยไมตองตออปกรณใดๆ เพมเตม ไดแก หนวยประมวลผลกลาง (CPU) หนวยความจาโปรแกรม, หนวยความจาขอมล, Timer, EEPROM,FeedbackControl, , CCP, ADC (analog to digital convertor)

Page 15: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ความเปนมาของ PIC

• ในปจจบนน PIC ได ถกนามาประยกตใชงานกนอยางแพรหลายในเครองมอตางๆ ตวอยางเชน การนามาควบคมการแสดงผลของจอแสดงผล,การนามาสงสญญาณเพอสรางคลนพาห สาหรบการสงอนฟราเรด, การนามาควบคมการปด-เปดสวตชดวยสญญาณคลนวทย, การนามาควบคมในเตาหงตมเหนยวนาความรอน, การนามาควบคมวงจรจดชนวนอปกรณอเลกทรอนกสกาลง, การนามาควบคมหนยนต เปนตน

Page 16: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ความเปนมาของ PIC

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

Page 17: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ความเปนมาของ PIC

• การเขยนโปรแกรมภาษาซสาหรบ PIC จะมหลากหลายโปรแกรมใหเลอกใช ตวอยางเชนโปรแกรม MikroC for PIC,โปรแกรม PIC Basic PRO,โปรแกรม C Compilerและโปรแกรม CCS ‘C’ Compiler

Page 18: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ความเปนมาของ PIC

• การจาลองการทางานบนคอมพวเตอรดวยโปรแกรม PROTEUS เปน โปรแกรมจาลองการทางานของวงจรไฟฟาและสามารถออกแบบแผน

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

Page 19: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ความเปนมาของ PIC

• โปรแกรมจะประกอบไปดวยอปกรณตางๆ ใหเลอกใชมากมายตวอยางเชน หลอด LED สตางๆ สวตซป มกด ตวตานทาน ตวเหนยวนา ตวเกบประจ แบตเตอรร 7-Segment จอแอลซด มอเตอรตางๆ รวมไปถงเครองมอวดตางๆ เชน oscilloscope, volt meter, Amp meter

Page 20: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การถายโอนชดคาสงจากคอมพวเตอร

• ลาดบท 3 การถายโอนชดคาสงจากคอมพวเตอรส PIC (Compiler)

• การถายโอนชดคาสงหรอคอมไพเลอรนน มอย 2 วธคอ 1)โปรแกรมผานพอรตอนกรมและ 2)โปรแกรมผานพอรต USB ซงการเลอกใชวาจะโปรแกรมดวยวธไหนนนขนอยกบความสะดวกของผใช เนองจากคอมพวเตอร Note Book รนใหมๆ จะไมมพอรตอนกรม การโปรแกรมผานพอรต USB จงงายกวาและสะดวกกวาสาหรบคอมพวเตอรNote Book การโปรแกรมผานพอรต USB นน จะใชบอรด Pic kit 2 และจะตองใชควบคกนกบโปรแกรม Pic Kit 2

Page 21: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

ลาดบท 4 การนา PIC ไปตอใชงาน

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

Page 22: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การทดลองสวทช สงให LED ตดทละดวงดวย สวชตตวเดยว

• การ ทดลองนเปนการทดลองของเอาตพตทงพอรตโดยกาหนดใหขาพอรต D เปนเอาตพต โดยตอขาพอรต D ใชงานตงแต DB0 - DB7 โดยท LED จะตดเรยงไปเรอยๆ และวนกลบมาใหม เมอเรากดสวชตท พอรต RB0ฟงกชน rotate_left() เปนฟงกชนการหมนบต

ของขอมลไปทางชาย ของตวแปรรปแบบการใชงาน:

rotate_left(address,bytes);พารามเตอร:address : แอดเดรสของหนวยความจาท

พอยนเตอรช bytes : จานวนไบตทตอการหมน

Page 23: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การทดลองสวทช สงให LED ตดทละดวงดวย สวชตตวเดยว

• โปรแกรมทใชในกาทดลอง

• /*1*/ #include <16F877A.h>/*2*/ #FUSES NOWDT,HS,NOPROTECT,NODEBUG,NOLVP,NOWRT

/*3*/ #use delay(clock=20000000)/*4*/ int i=0b00000001;/*5*/ void main()/*6*/ {/*7*/ set_tris_b(0b00000000);/*8*/ while(TRUE)/*9*/ {/*10*/ if(input(pin_b0)==0)/*11*/ {/*12*/ delay_ms(250);/*13*/ rotate_left(&i,1) ;/*14*/ }/*15*/ output_D(i); /*16*/ }/*17*/ }

• อธบายการทางาน

• บรรทดท 1 เปนการเรยกใช 16f887A.h ชงจะเกบไรบลารตางๆของไมโครคอนโทรลเลอรเบอร 16f877Aบรรทดท 2 เปนการกาหนดคาคอนฟกใหกบไมโครคอนโทรลเลอรบรรทดท 3 เปนการเรยกใชฟงกชนของเวลาบรรทดท 4 เปนการกาหนดตวแปร ชนด int ชอตวแปล i ใหมตวแปร iเทากบ 0b00000001บรรทดท 5 เปนฟงกชนเรมตนการทางานของโปรแกรมบรรทดท 7 เปนการประกาศใชงานพอรต D ทหมดใหเปนเอาตพตบรรทดท 8 เปนคาสงวนรอบ While (true) กาหนดใหเปน TRUEเพอใหโปรแกรมทางานวนรอบตอเนองบรรทด ท 10 เปนคาสง ตดสนใจ เมอเรากดสวชต กจะมการทางานภายใตวงเลบปกกา คาสงในบรรทดท 12 และ13 จะทางานเมอเราปลอยสวชต ในบรรทดท 12 และ 13 กจะหยดการทางาน

Page 24: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การทอลองอนพตระดบไบต

• การทดลองนเปนการรบอนพตระดบไบตโดยกาหนดใหขาพอรต D เปนเอาตพตเพอบอกสถานการณทางานของ LED_1 ถง LED_8 ทขาพอรต RD0-RD7 จากนนจะรบสญญาณอนพตทพอรต B ทขาพอรต RB0-RB7 ซงเมอมการกดสวตช ตาแหนง บตใด LED ของบตนน จะสวาง

Page 25: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การทอลองอนพตระดบไบต

• ////////////// TEST INPUT BYTE ///////////////////

•/*1*/ #include <16F877A.h>

• /*2*/ #FUSES NOWDT,HS,NOPROTECT,NODEBUG,NOLVP,NOWRT

• /*3*/ #use delay(clock=20000000)

• /*4*/ #use fast_io(B)

• /*5*/ #use fast_io(D)

• /*6*/ void main()

• /*7*/ {

• /*8*/ int button;

• /*9*/ set_tris_B(0b11111111);

• /*10*/ set_tris_D(0b00000000);

• /*11*/ setup_comparator(NC_NC_NC_NC);

• /*12*/ SETUP_ADC_PORTS(NO_ANALOGS);

• /*13*/ while(true)

• /*14*/ {

• /*15*/ button=~input_b();

• /*16*/ output_d(button);

• /*17*/ }

• /*18*/ }

• //////////////////////////////////////////////////////////

• โปรแกรมทใชในการทดลองอนพตระดบไบต

• อธบายการทางาน

• บรรทดท 1 เปนการเรยกใช 16f887A.h ชงจะเกบไรบลารตางๆของไมโครคอนโทรลเลอรเบอร 16f877A

• บรรทดท 2 เปนการกาหนดคาคอนฟกใหกบไมโครคอนโทรลเลอร

• บรรทดท 3 เปนการเรยกใชฟงกชนของเวลา

• บรรทดท 4 เปนการประกาศใชงานพอรต B

• บรรทดท 5 เปนการประกาศใชงานพอรต D

• บรรทดท 6 เปนฟงกชนเรมตนการทางานของโปรแกรม

• บรรทดท 8 เปนการกาหนดตวแปร ชนด int ชอตวแปล button

• บรรทดท 9 เปนการประกาศใชงานพอรต B ทหมดใหเปนอนพต

• บรรทดท 10 เปนการประกาศใชงานพอรต D ทหมดใหเปนเอาตพต

• บรรทดท 11 เปนฟงกชนกาหนดไมใหมฟงกชน Comparator

• บรรทดท 12 เปนฟงกชนกาหนดคาฟงกชนแอนะลอก(Analog) ชงในโปรแกรมจาเปนตองปดฟงกชนนไวเนองจากพอรต B สามารถเปนไดทงอนเพตและเอาตพตหรอแอนะลอกอนพต

• บรรทดท 13 เปนคาสงวนรอบ While (true) กาหนดใหเปน TRUE เพอใหโปรแกรมทางานวนรอบตอเนอง

• บรรทดท 15 เปนฟงกชนอานคาอนพตท พอรต B จะอานคาตงแตพอรต RD0- DB7 เกบไวในตวแปร button โดยจะม ตว (Grave Accent) “ ~ “ หรอ ตวหนอนเปนตวทกลบบตคา เชน เมอรบอนพต “1111” กจะไดเปน “ 0000 0000 ”

• บรรทดท 16 เปนฟงกชนแสดงผลทางเอาตพต โดยสงคาตวแปร button ไปยงพอรต D

• เกรดความร

• “ ~ “ Grave Accent หรอ ตวหนอน ในโปรแกรม สามารถ กลบบตขอมลได

• ตวอยาง

• เมอรบ Input_b(0b00000000) ปกตคาทได กจะเปน 0000 0000

• แตถาตวหนอนหนาคาสง ~ Input_b(0b00000000)

• กจะได ~ Input_b(0b00000000) ปกตคาทได กจะเปน 1111 1111

Page 26: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การทอลองอนพตระดบไบต

การทดลองนเปนการรบอนพตระดบไบตโดยกาหนดใหขาพอรต D เปนเอาตพตเพอบอกสถานการณทางานของ LED_1 ถง LED_8 ทขาพอรต RD0-RD7 จากนนจะรบสญญาณอนพตทพอรต B ทขาพอรต RB0-RB7 ซงเมอมการกดสวตช ตาแหนง บตใด LED ของบตนน จะสวาง

Page 27: Supayotin na songkla¸«น่วย...การทํางานได้เร็วขึ้น ตัวอย่างเช่น ภาษา c เป็นต้น ... mcs-51

การทอลองอนพตระดบไบต• ////////////// TEST INPUT BYTE ///////////////////

•/*1*/ #include <16F877A.h>

• /*2*/ #FUSES NOWDT,HS,NOPROTECT,NODEBUG,NOLVP,NOWRT

• /*3*/ #use delay(clock=20000000)

• /*4*/ #use fast_io(B)

• /*5*/ #use fast_io(D)

• /*6*/ void main()

• /*7*/ {

• /*8*/ int button;

• /*9*/ set_tris_B(0b11111111);

• /*10*/ set_tris_D(0b00000000);

• /*11*/ setup_comparator(NC_NC_NC_NC);

• /*12*/ SETUP_ADC_PORTS(NO_ANALOGS);

• /*13*/ while(true)

• /*14*/ {

• /*15*/ button=~input_b();

• /*16*/ output_d(button);

• /*17*/ }

• /*18*/ }

• //////////////////////////////////////////////////////////

• โปรแกรมทใชในการทดลองอนพตระดบไบต

• อธบายการทางาน

• บรรทดท 1 เปนการเรยกใช 16f887A.h ชงจะเกบไรบลารตางๆของไมโครคอนโทรลเลอรเบอร 16f877A

• บรรทดท 2 เปนการกาหนดคาคอนฟกใหกบไมโครคอนโทรลเลอร

• บรรทดท 3 เปนการเรยกใชฟงกชนของเวลา

• บรรทดท 4 เปนการประกาศใชงานพอรต B

• บรรทดท 5 เปนการประกาศใชงานพอรต D

• บรรทดท 6 เปนฟงกชนเรมตนการทางานของโปรแกรม

• บรรทดท 8 เปนการกาหนดตวแปร ชนด int ชอตวแปล button

• บรรทดท 9 เปนการประกาศใชงานพอรต B ทหมดใหเปนอนพต

• บรรทดท 10 เปนการประกาศใชงานพอรต D ทหมดใหเปนเอาตพต

• บรรทดท 11 เปนฟงกชนกาหนดไมใหมฟงกชน Comparator

• บรรทดท 12 เปนฟงกชนกาหนดคาฟงกชนแอนะลอก(Analog) ชงในโปรแกรมจาเปนตองปดฟงกชนนไวเนองจากพอรต B สามารถเปนไดทงอนเพตและเอาตพตหรอแอนะลอกอนพต

• บรรทดท 13 เปนคาสงวนรอบ While (true) กาหนดใหเปน TRUE เพอใหโปรแกรมทางานวนรอบตอเนอง

• บรรทดท 15 เปนฟงกชนอานคาอนพตท พอรต B จะอานคาตงแตพอรต RD0- DB7 เกบไวในตวแปร button โดยจะม ตว (Grave Accent) “ ~ “ หรอ ตวหนอนเปนตวทกลบบตคา เชน เมอรบอนพต “1111” กจะไดเปน “ 0000 0000 ”

• บรรทดท 16 เปนฟงกชนแสดงผลทางเอาตพต โดยสงคาตวแปร button ไปยงพอรต D

• เกรดความร

• “ ~ “ Grave Accent หรอ ตวหนอน ในโปรแกรม สามารถ กลบบตขอมลได

• ตวอยาง

• เมอรบ Input_b(0b00000000) ปกตคาทได กจะเปน 0000 0000

• แตถาตวหนอนหนาคาสง ~ Input_b(0b00000000)

• กจะได ~ Input_b(0b00000000) ปกตคาทได กจะเปน 1111 1111