หน่วยที่1 พอร์ทioครบ

28
หน่วยที1 การรับส่งข้อมูลกับอุปกรณ์เชื่อมต ่อภายนอก สาระการเรียนรู1.1 พอร์ตอินพุทและเอาท์พุท 1.2 คำาสั่งการใช้งานพอร์ตอินพุทและเอาต์พุต 1.3 ตัวอย่างการใช้พอร์ตอินพุตและเอาต์พุตของ 8051 1.4 การเพิ่มจำานวนพอร์ตอินพุตและเอาต์พุต จุดประสงค์การเรียนรู1. อธิบายความหมายของพอร์ตอินพุทและเอาท์พุทได้ 2. อธิบายคำาสั่งการใช้งานพอร์ทอินพุทและเอาท์พุทได้ 3. อธิบายวิธีการใช้งานพอร์ทอินพุทและเอาท์พุทได้ 4. เขียนวงจรเพิ่มจำานวนพอร์ทอินพุทและเอาท์พุทได้ 5. เพื่อให้มีกิจนิสัยในการทำางานที่มีระเบียบแบบแผนและมี ความรับผิดชอบ 4

Upload: saksit-klawkla

Post on 20-Jul-2015

810 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: หน่วยที่1 พอร์ทioครบ

หนว่ยที่ 1

การร ับส ่งข ้อม ูลก ับอ ุปกรณ์เช ื่อมต ่อภายนอก

สาระการเร ียนร ู้1.1 พอร์ตอินพุทและเอาท์พุท1.2 คำาสั่งการใช้งานพอร์ตอินพุทและเอาต์พุต1.3 ตัวอย่างการใช้พอร์ตอินพุตและเอาต์พุตของ 80511.4 การเพิ่มจำานวนพอร์ตอินพุตและเอาต์พุต

จุดประสงค์การเร ียนร ู้1. อธบิายความหมายของพอร์ตอินพุทและเอาท์พุทได้2. อธบิายคำาสั่งการใช้งานพอร์ทอินพุทและเอาท์พุทได้3. อธบิายวิธีการใช้งานพอร์ทอินพุทและเอาท์พุทได้4. เขียนวงจรเพิ่มจำานวนพอร์ทอินพุทและเอาท์พุทได้5. เพื่อให้มีกิจนิสัยในการทำางานที่มีระเบียบแบบแผนและมีความรับผิดชอบ

4

Page 2: หน่วยที่1 พอร์ทioครบ

หนว่ยที่ 1

การร ับส ่งข ้อม ูลก ับอ ุปกรณ์เช ื่อมต ่อภายนอก

สาระส ำาค ัญการที่คอมพิวเตอร์จะติดต่อกับอุปกรณ์ภายนอกได้ มี

2 ลักษณะ คือ 1. รับข้อมูลจากภายนอก ( INPUT ) 2. ส่งข้อมูลให้กับอุปกรณ์ภายนอก ( OUTPUT ) สำาหรับการรับและส่งข้อมูลน้ันจะผ่านช่องทางที่เรียกว่า พอร์ท ( PORT ) ซึ่งขั้นตอนในการใช้งานของพอร์ท จะต้องมีการกำาหนดด้วยคำาสั่งของไมโครคอนโทรลเลอร์ และเราสามารถที่จะเพิ่มจำานวนพอร์ทที่ใช้ได้เรียกว่าการขยายพอร์ท1.1 พอร์ตอ ินพุทและเอาท์พ ุท

1.1.1 ความหมายของพอร์ทพอร์ต หมายความว่า แอดเดรสที่กำาหนดไว้เพื่อการโอนย้าย

ข้อมูลระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์ภายนอก เมื่อพิจารณาการไหลของข้อมูล โดยใช้ไมโครคอนโทรลเลอร์เป็นหลักจะได้ว่าการรับข้อมูลจากวงจรภายนอก เรียกว่า อินพุต (Input) ดงัรูปที่ 1(ก) และการส่งข้อมูลออกไปยังวงจรภายนอกเรียกว่า เอาต์พุต (Output) ดังรูปที่ 1 (ข)

ร ูปท ี่1(ก) การส่งข้อมูลออกไปยังพอร์ตเอาต์พุต ซึ่งจะมีสัญญาณจำานวน 8 เส้นสำาหรับส่งข้อมูลให้กับอุปกรณ์ภายนอก

5

Page 3: หน่วยที่1 พอร์ทioครบ

ร ูปท ี่1(ข) การรับข้อมูลจากอุปกรณ์ภายนอกเข้ามายังพอร์ตอินพุตของระบบ ซึ่งมีเส้นสัญญาณจำานวน 8 เส้น

เมื่อพิจารณาถึงวิธีการส่งข้อมูลภายในพอร์ตจะสามารถแยกประเภทของพอร์ตออกเป็น 2 ลักษณะ คือ พอร์ตขนาน(Parallel) ซึ่งจะทำาการส่งหรือรับข้อมูลทุกบิตในเวลาเดียวกัน และพอร์ตอนุกรม(Serial Port) จะทำาการส่งหรือรับข้อมูลทีละบิตจนครบจำานวน

8051 มีพอร์ตขนานจำานวน 4 พอร์ต มีช่ือเรียงตามลำาดับว่า พอร์ต 0,1,2 และ 3 (P0,P1,P2,และ P3) ทั้ง 4 พอร์ตน้ีจะเป็นพอร์ตขนาด 8 บิต สามารถใช้งานได้ทั้งแบบบิต หรือแบบไบต์ นอกจากน้ีพอร์ต 0,2 และ 3 ยังใช้งานอื่นๆได้อีก หน้าที่ของพอร์ตต่างๆมีดังน้ี คือ

พอร์ต 0(P0.7 - P0.0) สามารถใช้งานได้ 2 หน้าที่ คือ ใช้เป็นพอร์ตอินพุตหรือเอาต์พุต ส่วนอีกหน้าที่หน่ึงจะใช้เมื่อต้องการจะขยายระบบให้ใหญ่ขึ้น โดยใช้ควบคุมหน่วยความจำาภายนอก ซึ่งจะให้สัญญาณมัลติเพล็กซ์ระหว่างบัสแอดเดรส และบัสข้อมูล( AD7 - AD0 ) ออกมา

พอร์ต 1(P1.7 – P1.0) ใช้เป็นพอร์ตอินพุตหรือเอาต์พุตได้เพียงอย่างเดียว

พอร์ต 2(P2.7 – P2.0) สามารถใช้งานได้ 2 หน้าที่ คือ ใช้เป็นพอร์ตอินพุตหรือเอาต์พุต ส่วนอีกหน้าที่หน่ึงจะใช้ควบคุมหน่วยความจำาภายนอก โดยจะใช้เป็นแอดเดรสไบต์สูง (A15 – A8)

6

Page 4: หน่วยที่1 พอร์ทioครบ

พอร์ต 3 (P3.7 – P3.0) สามารถใช้งานได้ 2 หน้าที่ คือ ใช้เป็นพอร์ตอินพุตหรือเอาต์พุต ส่วนหน้าที่ที่ 2 จะแยกออกเป็นหลายอย่าง ดังน้ี คือ

บ ิต ชื่อ ท ำาหน้าท ี่P3.0 RXD รับข้อมูลของพอร์ตอนุกรมP3.1 TXD ส่งข้อมูลของพอร์ตอนุกรมP3.2 INT0\ ใช้รับสัญญาณอินเตอร์รัพต์จาก

ภายนอกP3.3 INT1\ ใช้รับสัญญาณอินเตอร์รัพต์จาก

ภายนอกP3.4 T0 เป็นอินพุทจากภายนอกของไทเมอร์/

เคาน์เตอร์ 0P3.5 T1 เป็นอินพุทจากภายนอกของไทเมอร์/

เคาน์เตอร์ 1P3.6 WR\ ขาสัญญาณการควบคุมการเขียน (Write)ของหน่วย

ความจำาภายนอกP3.7 RD\ ขาสัญญาณการควบคุมการ

อ่าน(Read) ของหน่วยความจำาภายนอก

1.2 คำาส ั่งการใช้งานพอร ์ตอ ินพุทและเอาต ์พ ุต8051 อา้งถึงพอร์ต,รีจีสเตอร์และอุปกรณ์ต่างๆในระบบ โดย

ใช้หลักการที่เรียกว่า MemoryMapped System คือ การติดตอ่กับอุปกรณ์เหล่าน้ีจะเหมือนกับการติดต่อกับหน่วยความจำา ดังน้ันการติดต่อกับพอร์ตอินพุตหรือเอาต์พุต ของ 8051 จะใช้คำาสั่งเช่นเดียวกับการติดต่อกับหน่วยความจำาน่ันเอง เช่น

MOV P0,#00H : เคลียร์ทุกบิตของพอร์ต P0 ให้เป็น 0

MOV P0,#0FFH : เซ็ตทุกบิตของพอร์ต P0 ให้เป็น 1

MOV P1,#00H : เคลียร์ทุกบิตของพอร์ต P1 ห้เป็น 0

MOV P1,#0FFH : เซ็ตทุกบิตของพอร์ต P1 ให้เป็น 1

7

Page 5: หน่วยที่1 พอร์ทioครบ

นอกจากน้ี 8051 ยังมีชุดคำาสั่งที่สามารถจัดการแบบบิตได้โดยตรง(Single-bit Operation) เพื่อจัดการพอร์ตอินพุตและเอาต์พุตทั้งหมดแบบเส้นสัญญาณเดียวได้ เช่น

CLR P2.0 ;เคลียร์บิตที่ 0 ของพอร์ต P2 ให้เป็น 0SETB P2.0 ;เซ็ตบิตที่ 0 ของพอร์ต P2 ให้เป็น 1CPL P1.0 ;เปลี่ยนสภาวะของบิตที่ 0 ของพอร์ต 1 ให้

เป็นตรงกันข้ามMOV C,P1.0 ;อา่นค่าจากบิตที่ 0 ของพอร์ต P1

ไปใส่ไว้ในแฟล็กทดJB P1.0 ,<location> ;ตรวจสอบบิตที่0 จองพอร์ต P1 ถ้าเป็น 1 ให้กระโดดไปยัง

location ที่ตอ้งการ

1.3 ตัวอย ่างการใช้พอร ์ตอ ินพุตและเอาต ์พ ุตของ 8051

จากรูปที่ 2 เป็นตัวอย่างการใช้งานพอร์ต P1 เป็นเอาต์พุต โดยให้แสดงผลผ่าน LED ซึ่งจะต่อกับพอร์ต P1 โดยผ่านตัวต้านทาน R1-R8 ตัวต้านทานเหล่าน้ีจะทำาหน้าที่จำากัดกระแสที่ไหลผ่าน LED ให้มีค่าเหมาะสม ส่วนโปรแกรมที่ใช้ทดสอบจะมีหลักการทำางานคือ ให้ LED1-LED8 ตดิเรียงกันไปเรื่อยๆ ในลักษณะของไฟวิ่ง ซึ่งโฟลว์ชาร์ตจะแสดงดังรูปที่ 3

8

Page 6: หน่วยที่1 พอร์ทioครบ

ร ูปท ี่ 2 ตัวอย่างการใช้งานพอร์ต P1 เป็นพอร์ตเอาต์พุต

ร ูปท ี่3 โฟลว์ชาร์ตในรูปที่ 3 สามารถนำามาเขียนโปรแกรมได้ดังน้ี

จากโฟลว์ชาร์ตในรูปที่ 3 สามารถนำามาเขียนโปรแกรมได้ดังน้ี ORG 0000H ;ตำาแหน่งเริ่มต้นของหน่วยความจำาสำาหรับโปรแกรม MOVA,#01H ;ใส่ค่า 01 ลงไปในรีจีสเตอร์ A MOVPI,A ;เอาค่ารีจีสเตอร์ A ไว้ใน P1 LOOP: ACALL DELAY ;หน่วงเวลาเพื่อให้เห็น LED ตดิ RL A ;หมุนค่าในรีจีสเตอร์ A ไปทางซ้าย SJMPLOOP ;กระโดดไปยังลา

เบลช่ือ LOOP เพื่อทำาซำ้ากระบวน การเดิม DELAY: MOV R1,#0FFH DELAY1:MOV R2,#0FFH

9

Page 7: หน่วยที่1 พอร์ทioครบ

DELAY2:DJNZ R2,DELAY2DJNZ R1,DELAY1RETEND

รูปที่ 4 ตัวอย่างการใช้งานพอร์ต P1 เป็นพอร์ตอินพุตจากรูปที่ 4 เป็นการใช้งานพอร์ต P1 เป็นอินพุต โดยจะรับ

ข้อมูลจากดิพสวิตช์เข้าทางพอร์ต P1 เข้าไปเก็บไว้ในรีจิสเตอร์ A จากน้ันทำาการเปรียบเทียบว่าค่าที่อ่านเข้ามา มีค่าเป็น 0FFH หรือไม่ ถ้าไม่เป็น 0FFH แสดงว่ามีการกดสวิตช์ ให้อ่านค่าเข้ามาเก็บไว้ใน KEY แต่ถ้าเป็น 0FFH ให้อ่านค่ามาตรวจสอบใหม่ ซึ่งสามารถเขียนโฟลว์ชาร์ต ได้ดังรูปที่ 5

10

Page 8: หน่วยที่1 พอร์ทioครบ

รูปที่ 5 โฟลว์ชาร์ตแสดงการรับข้อมูลจากสวิทซ์เป็นพอร์ตอินพุท

และจากโฟลว์ชาร์ตในรูปที่ 5 เราสามารถเขียนโปรแกรมได้ดังน้ี คือKEY:EQU 060H ;กำาหนดให้ KEY มีค่าเท่ากับ 60 H

ORG0000HLOOP: MOV A,P1 ;อา่นข้อมูลจากพอร์ต P1 ใส่ไว้ในรีจีสเตอร์ A

CJNE A,#0FFH,KEEP ;เปรียบเทียบว่าค่าที่อ่านได้จากรีจีส เ ต อ ร์ A เ ท่ า กั บ 0FFH หรือไม่

SJMP LOOP ; เท่ากับ 0FFH แสดงว่ายังไม่มีการกดสวิตช์ ให้กลับไปอ่านค่าใหม่KEEP: MOV KEY,A ; ไม่เท่ากับ 0FFH แสดงว่ามีการกดสวิตช์ ใหอ้่านค่าใส่ในรีจีสเตอร์ A

SJMP LOOP ;กลับไปอ่านค่าจากพอร์ต P1 ไปใหม่

ENDซึ่งจะเห็นได้ว่า พอร์ตภายในของ 8051 สามารถทำางานเป็น

ทั้งอินพุตและเอาต์พุตได้ภายในตัวเอง ขึน้อยู่กับการเขียนโปรกรมและลักษณะการต่อวงจรใช้งาน1.4 การเพ ิ่มจ ำานวนพอร์ตอ ินพุตและเอาต ์พ ุต

11

Page 9: หน่วยที่1 พอร์ทioครบ

เมื่อต้องทำาการเพิ่มหน่วยความจำาภายนอก คือ หน่วยความจะสาหรับโปรแกรมและหน่วยความจำาสำาหรับข้อมูลจะต้องใช้พอร์ต 0 เป็นบัสแอดเดรสและบัสข้อมูล ส่วนพอร์ต 1 จะใช้เป็นบัสแอดเดรสไบต์สูง ดงัน้ันในการเพิ่มจำานวนพอร์ตอินพุตและเอาต์พุตก็เช่นเดียวกันทำาได้โดยใช้สัญญาณที่เป็นแอดเดรสมาทำาการถอดรหัส เพื่อเลือกพอร์ตที่เพิ่มเข้าไปทำางาน ส่วนการจะให้ทำางานเป็นอินพุตหรือเอาต์พุตน้ัน สามารถทำาได้โดยการใช้สัญญาณที่ใช้ในการเขียนหรืออ่านเป็นสัญญาณควบคุม ส่วนตัวพอร์ตที่เพิ่มเข้าไป เช่น ไปซีบัฟเฟอร์สามสถานะ (Tri-st ฟ te buffers)สำาหรับเป็นพอร์ต อนิพุต (ดังแสดงในรูปที่ 6) และไอซีแลตช์(Latches)สำาหรับเป็นพอร์ตเอาต์พุต(ดงัแสดงในรูปที่ 7) เป็นต้น

รูปที่ 6 การใช้ไอซีบัฟเฟอร์สามสถานะเป็นพอร์ตอินพุต

รูปที่ 7 การใช้ไอซีแลตช์เป็นพอร์ตเอาต์พุต

12

Page 10: หน่วยที่1 พอร์ทioครบ

1.4.1 การเพิ่มพอร ์ตอ ินพุตจากรูปที่ 8 จะแสดงให้เห็นตัวอย่างของการเพิ่มพอร์ตอินพุต

ซึ่งจะสมมติให้พอร์ตที่ต้องการอ่านข้อมูลอยู่ที่แอดเดรส 20 H และใช้สัญญาณ RD เป็นสัญญาณควบคุมการอ่านข้อมูลจากพอร์ต ส่วนบัฟเฟอร์จะใช้ไอซีเบอร์ 74LS244 สำาหรับเป็นพอร์ตอินพุต ส่วนขา OE1 และ OE2 จะต่อกับสัญญาณ สโตรบที่สร้างขึ้นเพื่ออ่านข้อมูลจากอุปกรณ์ภายนอก ส่วนความจำาสำาหรับข้อมูลภายนอก คือการใช้คำาสั่ง MOVX น่ันเอง

สำาหรับการเขียนโปรแกรมการอ่านข้อมูลจากพอร์ตอินพุตสามารถเขียนโปรแกรมได้ดังน้ีPORT EQU 0020H ;กำาหนดค่า 20H ให้กับตัวแปร

PORTORG 0000H

START:MOV DPTR,#PORT ;ให้รีจีสเตอร์ DPTR มีค่าเป็น 0020H

MOVX A,@DPTR;อา่นค่าข้อมูลจากพอร์ต 20H มาเก็บไว้ในรีจีสเตอร์ A

END

13

Page 11: หน่วยที่1 พอร์ทioครบ

ร ูปท ี่ 8 ตัวอย่างการเพิ่มพอร์ตอินพุตที่แอดเดรส 20H1.4.2 การเพิ่มพอร ์ตเอาต ์พ ุตจากรูปที่ 9 จะแสดงให้เห็นตัวอย่างของการเพิ่มพอร์ตเอาต์พุต

ซึ่งจะสมมติให้พอร์ตที่ต้องการอยู่ที่แอดเดรสที่ต้องการอยู่ที่แอดเดรส 20 H และใช้สัญญาณ WR เป็นสัญญาณควบคุมการเขียนข้อมูลไปยังพอร์ต ส่วนแลตช์จะใช้ไอซีเบอร์ 74LS373 สำาหรับเป็นพอร์ตเอาต์พุต ส่วนขา CLK จะต่อกับสัญญาณสโตรบที่สร้างขึ้นเพื่อเขียนโปรแกรมเพื่อเขียนข้อมูลไปยังหน่วยความจำาสำาหรับข้อมูลภายนอก คือ ใช้คำาสั่ง MOVX เช่นเดียวกัน

14

Page 12: หน่วยที่1 พอร์ทioครบ

ร ูปท ี่ 9 ตัวอย่างการเพิ่มพอร์ตเอาต์พุตที่แอดเดรส 20H

สำาหรับโปรแกรมเขียนข้อมูลไปยังพอร์ตเอาต์พุตสามารถเขียนโปรแกรมได้ดังน้ี

PORT EQU 020H ORG 0000HSTART: MOV DPTR,#PORT

MOV A,#0FFH MOVX @DPTR,A ;ส่งข้อมูลในรีจีส เตอร์ A

ออกไปยังพอร์ต 020H END

สรุปสาระประจ ำาหน่วยที่ 1เมื่อเรียนเรื่องน้ีจบแล้วสามารถบอกความหมายของพอร์ต

อินพุตและเอาต์พุต การเขียนคำาสั่งกำาหนดพอร์ต ตัวอย่างการใช้พอร์ตอินพุตและเอาต์พุตของ 8051 การขยายพอร์ตอินพุตและเอาต์พุต

15

Page 13: หน่วยที่1 พอร์ทioครบ

แบบทดสอบก่อนเร ียน/หลังเร ียนหน่วยที่ 1

ชื่อว ิชา ระบบอินเตอร์เฟส รหสั 2104-2423

สอนครั้งที่ 1

ชื่อหน่วย การรับส่งข้อมูลกับอุปกรณ์เช่ือมต่อภายนอก

อเิล็กทรอนิกส์

ช ื่องาน การรับส่งข้อมูลกับอุปกรณ์เช่ือมต่อภายนอก ปวช.ข้อสอบมีท ั้งส ิ้น 2 ตอนตอนที่ 1 จงเล ือกคำาตอบที่ถ ูกต ้องที่ส ุดเพ ียงค ำาตอบเด ียว

16

Page 14: หน่วยที่1 พอร์ทioครบ

1. แอดเดรสที่กำาหนดไว้เพื่อการโอนย้ายข้อมูลระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์ภายนอกเรียกว่าอะไร

ก. บัส ข. พอร์ทค. แลทซ์ ง. รีจิสเตอร์

2.การส่งข้อมูลไปยังพอร์ทเพื่อแสดงผลในรูปของสัญญาณไฟติดดับ กำาหนดโดยพอร์ทลักษณะใด

ก. พอร์ทขนาน ข. พอร์ทอนุกรมค. พอร์ทอินพุท ง. พอร์ทเอาท์พุท

3.การส่งข้อมูลไปยังพอร์ทเพื่อรับข้อมูลจากสวิทซ์ กำาหนดโดยพอร์ทลักษณะใด

ก. พอร์ทขนาน ข. พอร์ทอนุกรมค. พอร์ทอินพุท ง. พอร์ทเอาท์พุท

4.การส่งหรือรับข้อมูลทุกบิทไปในพอร์ทในเวลาเดียวกัน เป็นลักษณะพอร์ทแบบใด

ก. พอร์ทขนาน ข. พอร์ทอนุกรมค. พอร์ทอินพุท ง. พอร์ทเอาท์พุท

5.การรับหรือส่งข้อมูลทีละบิทในพอร์ทเป็นการใชพอร์ทแบบใดก. พอร์ทขนาน ข. พอร์ทอนุกรมค. พอร์ทอินพุท ง. พอร์ทเอาท์พุท

6.ข้อใดไม่ใช่ช่ือพอร์ทของ 8051ก. P1 ข. P2ค. PA ง. P3

7.คำาสั่งที่ใช้สำาหรับกำาหนดให้พอร์ทเป็นเอาท์พุทคือก. MOV A,P1 ข. MOV P1,Aค. MOV C,P1 ข. MOV P1,C

17

Page 15: หน่วยที่1 พอร์ทioครบ

8. คำำสั่งที่ใช้สำำหรับกำำหนดให้พอร์ทเป็นอินพุทคือก. MOV A,P1 ข. MOV P1,Aค. MOV C,P1 ง. MOV P1,C

9. ไอซีที่ใช้สำำหรับต่อกับพอร์ทเอำท์พุทต้องมีลักษณะเช่นใดก. เป็นบัฟเฟอร์ ข. เป็นกำรแลทซ์ค. ให้ข้อมูลผ่ำนได้2 ทำง ง. ผิดทุกขอ้

10. พอร์ทของไมโครคอนโทรลเลอร์ 8051 ใน 1 พอร์ทจะรับส่งข้อมูลได้ก่ีบิท

ก. 2 บิท ข. 4 บิทค. 8 บิท ง. 16 บิท

..............................................................

ตอนที่ 21. จงออกแบบวงจรเพื่อเพิ่มจำำนวนพอร์ทเอำท์พุทและอินพุท 1 พอร์ท โดยใช้ช่ือพอร์ทแอดเดรส 40H

ว ิชำ ระบบอินเตอร์เฟส ( 2104-2423 )หน่วยที่ 1 ชื่อหน่วย กำรร ับส ่งข ้อม ูลก ับอ ุปกรณ์เช ื่อมต ่อภำยนอก จำำนวน 4 คำบใบงำนที่ 1 ชื่องำน กำรเข ียนโปรแกรมควบคุมอ ุปกรณ์เอำท์พ ุต จำำนวน 4 คำบ

จุดประสงค์ท ั่วไป1. เข้ำใจวิธีกำรนำำไมโครคอนโทรลเลอร์ มำอินเตอร์เฟส เพื่อกำำหนดเป็น เอำท์พุทได้

2.ควำมรู้เก่ียวกับกำรเขียนโปรแกรมภำษำ Assembly ควบคุม LED ได้

18

Page 16: หน่วยที่1 พอร์ทioครบ

จุดประสงค์เช ิงพฤติกรรม1.ต่อวงจรควบคุม LED ได้ถูกต้อง2. เขียนโปรแกรมควบคุม LED ให้ตดิแบบต่ำงๆ ได้

อ ุปกรณ์กำรทดลอง1. CPU AT89C512. แผ่นวงจรพิมพ์เอนกประสงค์ 1 แผ่น3. LED กลม จำำนวน 8 ดวง4.ตัวต้ำนทำน 220 โอห์ม ¼ วัตต์ 8 ตัว 5. เครื่องลงโปรแกรม 1 ตัว

หลักกำรกำรทำำงำนของหลอดแสดงผล LED

R 220 +5 V

I = 10-30 mA.

R 220 0 V I = 0 mA.จำกรูป เมื่อวงจรแสดงผลได้รับสัญญำณไฟ 5 โวลต์ หรอืลอจิก “1”ผ่ำนตัวต้ำนทำน 220 โอห์มเพื่อจำำกัดกระแส ซึ่งโดยปกติ LED จะกินกระแสประมำณ 10 – 30 mA. จะทำำให้ LED ตดิ เช่นเดียวกันเมืือป้อนอินพุทเป็น 0 โวลท์ หรือลอจิก “0” ไม่มีกระแสไหลผ่ำน LED ก็จะดับ

ในกำรต่อ LED เข้ำกับ Port ใดๆของ ไมโครคอนโทรลเลอร์ต้องระวังเรื่องกระแส ซอร์ส (Source current ) ของ CPU ด้วยเพรำะแต่ละขำจะสำมำรถจ่ำยกระแสได้เพียง 10 mA.เท่ำน้ัน ดังน้ันในทำงปฏิบัติจึงต้องต่อวงจรบัฟเฟอร์( Buffer ) เพื่อขยำยกระแส ไม่ให้ไมโครคอนโทรลเลอร์ได้รับควำมเสียหำย

19

Page 17: หน่วยที่1 พอร์ทioครบ

ส่งข้อมูลไปที่พอร์ท ปกติแล้วไอซีไมโครคอนโทรลเลอร์ AT89C51 จะมี4พอร์ตคือ P0 P1 P2 P3 ซึ่งในกำรเขียนโปรแกรมส่งข้อมูลออกจำกพอร์ตสำมำรถเขียนได้ดังน้ี

พอร์ทเอำท์พุท = ข้อมูล

ต ัวอย ่ำงMOV P1,# 0F0H ; หมำยถึงส่งข้อมูล F0H หรอื

11110000B ออกพอร์ท P1MOV P2 ,#0AAH ; หมำยถึงส่งข้อมูล AAH หรอื

10101010B ออกพอร์ท P2หมำยเหตุ ในใบงำนน้ีใช้ พอร์ต P1งำนที่ 1 จงเขียนโปรแกรมควบคุมหลอดแสดงผลติดดับทีละ 8 บิทตำมลำำดับดังน้ี

ลำำดับที่1 11111111 P2 = 0FFH ;ลำำดับที่2 00000000 P2 = 00H ;

20

Page 18: หน่วยที่1 พอร์ทioครบ

ลำำด ับข ั้นกำรทดลอง1. ให้ต่อวงจรตำมรูป 2. จงป้อนโปรแกรมภำษำ Assembly พร้อมทดลอง

ORG 0000HMAIN: MOV P1,#0FFH ; ส่งข้อมูล 11111111B ออกทำงพอร์ท P2 ทำำให้ LED ตดิทั้ง 8 บิท ACALL DELAY ; หน่วงเวลำ MOV P1,#00H ; ส่งข้อมูล 00000000B ออกทำงพอร์ท P2 ทำำให้ LED ดบัทั้ง 8 บิท ACALL DELAY ; หน่วงเวลำ SJMP MAINDELAY: MOV R6,#0FFHDELAY1: MOV R5,#0FFH

DJNZ R5,$DJNZ R6,DELAY1RETEND

ผลกำรทดลอง ……………………………………………………….

3. ให้นักศึกษำดัดแปลงจำกโปรแกรมแรกเพื่อสั่งให้ LED ติดดับ 4 บิทสลับกัน............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

21

Page 19: หน่วยที่1 พอร์ทioครบ

.....................................................................................

....................................4.ให้นักศึกษำเขียนโปรแกรมตำมแบบเพื่อสั่งให้ LED วิ่ง 1 บิทจำกซ้ำยไปขวำ

ORG 0000H MOV A,#00000001B ; 01HMAIN: MOV P1,A

RL ALCALL DELAYLJMP MAIN

DELAY: MOV R6,#0FFHDELAY1: MOV R5,#0FFH

DJNZ R5,$DJNZ R6,DELAY1RETEND

ผลกำรทดลอง ……………………………………………………….5. ให้แก้ไขโปรแกรมเพื่อให้ LED วิ่ง 1 บิทไปทำงขวำมือ

.....................................................................................

.....................................................................................

.....................................................................................

.....................................................................................

.....................................................................................

................................................................

.....................................................................................

..............................................................................

.....................................................................................

........................................................................

.....................................................................................

.....................................................................................

22

Page 20: หน่วยที่1 พอร์ทioครบ

.....................................................................................

...........................................................

.....................................................................................

.....................................................................................

.....................................................................................

...........................................................

6. โปรแกรมควบคุมไฟวิ่ง 1 บิทจำกซ้ำยไปขวำแบบใช้ Look up Table

ORG0000HMAIN: MOV R2,#08H

MOV R3,#00HNEXT: MOV DPTR,#TABLE

MOV A,R3MOVC A,@A+DPTRMOV P1,ALCALL DELAYINC R3DJNZ R2,NEXTLJMPMAIN

DELAY: MOV R6,#0FFHDELAY1: MOV R5,#0FFH

DJNZ R5,$DJNZ R6,DELAY1RET

TABLE: DB 01H,02H,04H,08HDB 10H,20H,40H,80HEND

7. จำกโปรแกรมน้ีถ้ำต้องกำรเปลี่ยนกำรวิ่งจำกขวำไปซ้ำยต้องทำำอย่ำงไร

.....................................................................................

........................................................................

23

Page 21: หน่วยที่1 พอร์ทioครบ

.....................................................................................

........................................................................

.....................................................................................

.....................................................................................

.....................................................................................

...........................................................

.....................................................................................

.....................................................................................

.....................................................................................

...........................................................

.....................................................................................

........................................................................

.....................................................................................

........................................................................สรุปและว ิจำรณ์ผลกำรทดลอง

……………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................

คำำถำม

24

Page 22: หน่วยที่1 พอร์ทioครบ

1.คำำสั่ง ACALL DELAY ที่ใช้ในโปรแกรมที่ 1 ไว้เพื่ออะไร ...............................................................................................................................................

2.กำรเปลี่ยนแปลงค่ำเวลำในกำรหน่วงให้ช้ำหรือเร็วทำำได้อย่ำงไร ……………………………………………………………………………………………

3.คำำสั่ง DJNZ R5,$ มีควำมหมำยอย่ำงไร ...............................................................................................................................................

4. คำำสั่ง MOVC A,@A+DPTR คือ ....................................................................................................................4. ถ้ำข้อมูลใน TABLE มำกกว่ำ 8 ไบท์ จะต้องแก้ไขโปรแกรมส่วนใด.........................................................................................................................................

ใบมอบงำนหน่วยที่ 1

ชื่อว ิชำ ระบบอินเตอร์เฟส สอนครั้งที่ 1

ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อภำยนอก

อเิล็กทรอนิกส์

ชือ่งำน กำรเข ียนโปรแกรมควบคุมอ ุปกรณ์เอำท์พ ุต

ปวช.

25

Page 23: หน่วยที่1 พอร์ทioครบ

จุดประสงค์กำรมอบงำน (เพ ื่อให ้น ักเร ียนสำมำรถ )1.ทดสอบกำรติดต่อระหว่ำงไมโครคอนโทรลเลอร์กับอุปกรณ์เอำท์พุทได้

2.ประยุกต์กำรใช้ไมโครคอนโทรลเลอร์ในกำรควบคุม LED ได้

แนวทำงกำรปฏิบ ัต ิงำน ให้ศึกษำโปรแกรมทั้งหมดในใบงำนเรื่องกำรเขียนโปรแกรมควบคุมอุปกรณ์เอำท์พุตเพื่อทดลองใช้งำนจริง

แหล่งค ้นคว ้ำ จำกใบควำมร ู้หน ่วยที่ 1 และในใบงำน เรื่องกำร

เขียนโปรแกรมควบคุมอุปกรณ์เอำท์พุต คำำถำม / ปัญหำ

1.ให้เขียนโปรแกรมกำำหนดให้ LED ทำำงำนดังน้ี1.1 วิ่งจำกตรงกลำงไปยังริมทั้ง 21.2 วิ่งเป็นแถบจำกซ้ำยไปขวำ

2.จำกโปรแกรมในข้อที่ 1 ให้กำำหนดจำำนวนรอบในกำรวิ่ง เช่น 1 รอบ แล้วหยุด เป็นต้น

กำำหนดเวลำส่งงำน ในข้อที่1 ส่งหลังจบบทเร ียน

กำรประเม ินผล 1. ส่งตรงเวลำ 5 คะแนน2.ทดลองถูกต้อง 10 คะแนน

หน่วยที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เช่ือมต่อภำยนอกใบงำนที่ 1 ชื่องำน กำรเขียนโปรแกรมควบคุมอุปกรณ์เอำท์พุต

ค ำำแนะนำำ แบบทดสอบน้ีจัดทำำขึ้นเพื่อให้ครูตรวจสอบนักศึกษำว่ำได้ปฏิบัติใบงำนได้อย่ำงบรรลุ

26

Page 24: หน่วยที่1 พอร์ทioครบ

วัตถุประสงค์ นักศึกษำต้องปฏิบัติจนได้รับกำรขีดถูกในช่อง ใช่ เท่ำน้ัน

ช่ือ-นำมสกุล………………………….รหัส………………..ระดับ…………ช้ันปีที่…….กลุ่ม……….

ใช่ ไม่ใช่1. สำมำรถต่อวงจร LED เข้ำกับพอร์ตของไมโครคอนโทรลเลอร์ได้

2. สำมำรถใช้โปรแกรมโหลดข้อมูลลงในไมโครคอนโทรลเลอร์ได้

3. สำมำรถเขียนโปรแกรมทดลองตำมใบงำนในแต่ละขั้นตอนได้

4. สำมำรถบันทึกผลและสรุปผลกำรทดลอง ได้

5. เก็บอุปกรณ์และรักษำควำมสะอำดของห้องทดลองได้เป็นอย่ำงดี

ลงช่ือ……………………………..ผู้สอน

(………………………………………..)

วันที่………เดอืน………….พ.ศ……….

27

Page 25: หน่วยที่1 พอร์ทioครบ

ใบประเม ินผลกำรปฏิบ ัต ิงำน

หน่วยที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เช่ือมต่อภำยนอกใบงำนที่ 1 ชื่องำน กำรเขียนโปรแกรมควบคุมอุปกรณ์เอำท์พุต

ช่ือ-นำมสกุล……………………….รหัส………………..ระดับ…………ช้ันปีที่…….กลุ่ม……….

ระด ับกำรปฏิบ ัต ิงำน

ลำำด ับท ี่

ห ัวข ้อประเม ิน 5 ดี

มำก

4 ดี

3 พอใ

ช้

2 ต้อง

ปรับ

ปรุง

1. กำรตรงต่อเวลำ2. กำรแต่งกำย3. ควำมสนใจในกำรทดลองใบงำน4. กำรเตรียมอุปกรณ์และเครื่องมือ5. ลำำดับขั้นกำรทดลอง6. กำรแก้ไขปัญหำในขณะที่ทำำกำร

ทดลอง7. ควำมรู้ควำมสำมำรถในกำรทดลองใบ

งำน8. มีควำมสะอำดและเป็นระเบียบ9. มีกำรเก็บและทำำควำมสะอำดอุปกรณ์-

เครื่องมือหลังกำรปฏิบัติงำน

28

Page 26: หน่วยที่1 พอร์ทioครบ

ลงช่ือ……………………………..ผู้สอน

(………………………………………..)

วันที่………เดอืน………….พ.ศ……….

เฉลยแบบทดสอบก่อนเร ียน/หลังเร ียน

หน่วยที่ 1

ชื่อว ิชำ ระบบอินเตอร์เฟส รหสั 2104-2423

สอนครั้งที่ 1

ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เช่ือมต่อภำยนอก

อเิล็กทรอนิกส์

ช ื่องำน กำรรับส่งข้อมูลกับอุปกรณ์เช่ือมต่อภำยนอก ปวช.

ตอนที่ 1 จำำนวนข้อสอบทั้งหมด 10 ข้อ 1. ข2. ก3. ค4. ก5. ข6. ค7. ข8. ก9. ข10. ค

29

Page 27: หน่วยที่1 พอร์ทioครบ

ตอนที่ 2 จงออกแบบวงจรเพื่อเพิ่มจำำนวนพอร์ทเอำท์พุทและอินพุท 1 พอร์ท โดยใช้ช่ือพอร์ทแอดเดรส 40H

พอร์ทอินพุทแอดเดรส 40H

30

Page 28: หน่วยที่1 พอร์ทioครบ

พอร์ทเอำท์พุทแอดเดรส 40H

31