Your SlideShare is downloading. ×
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
หน่วยที่1 พอร์ทioครบ
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

796

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
796
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. หน่วยที่ 1 การรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อภายนอก สาระการเรียนรู้ 1.1 พอร์ตอินพุทและเอาท์พุท 1.2 คำาสั่งการใช้งานพอร์ตอินพุทและเอาต์พุต 1.3 ตัวอย่างการใช้พอร์ตอินพุตและเอาต์พุตของ 8051 1.4 การเพิ่มจำานวนพอร์ตอินพุตและเอาต์พุต จุดประสงค์การเรียนรู้ 1. อธิบายความหมายของพอร์ตอินพุทและเอาท์พุทได้ 2. อธิบายคำาสั่งการใช้งานพอร์ทอินพุทและเอาท์พุทได้ 3. อธิบายวิธีการใช้งานพอร์ทอินพุทและเอาท์พุทได้ 4. เขียนวงจรเพิ่มจำานวนพอร์ทอินพุทและเอาท์พุทได้ 5. เพื่อให้มีกิจนิสัยในการทำางานที่มีระเบียบแบบแผนและมี ความรับผิดชอบ 4
  • 2. หน่วยที่ 1 การรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อภายนอก สาระสำาคัญ การที่คอมพิวเตอร์จะติดต่อกับอุปกรณ์ภายนอกได้ มี 2 ลักษณะ คือ 1. รับข้อมูลจากภายนอก ( INPUT ) 2. ส่งข้อมูลให้กับอุปกรณ์ภายนอก ( OUTPUT ) สำาหรับการรับและส่งข้อมูลนั้นจะผ่านช่องทางที่เรียกว่า พอร์ท ( PORT ) ซึ่งขั้นตอนในการใช้งานของพอร์ท จะต้องมีการ กำาหนดด้วยคำาสั่งของไมโครคอนโทรลเลอร์ และเราสามารถที่จะเพิ่ม จำานวนพอร์ทที่ใช้ได้เรียกว่าการขยายพอร์ท 1.1 พอร์ตอินพุทและเอาท์พุท 1.1.1 ความหมายของพอร์ท พอร์ต หมายความว่า แอดเดรสที่กำาหนดไว้เพื่อการโอนย้าย ข้อมูลระหว่างไมโครคอนโทรลเลอร์กับอุปกรณ์ภายนอก เมื่อ พิจารณาการไหลของข้อมูล โดยใช้ไมโครคอนโทรลเลอร์เป็นหลัก จะได้ว่าการรับข้อมูลจากวงจรภายนอก เรียกว่า อินพุต (Input) ดัง รูปที่ 1(ก) และการส่งข้อมูลออกไปยังวงจรภายนอกเรียกว่า เอาต์พุต (Output) ดังรูปที่ 1 (ข) รูปที่1(ก) การส่งข้อมูลออกไปยังพอร์ตเอาต์พุต ซึ่งจะมีสัญญาณ จำานวน 8 เส้นสำาหรับส่งข้อมูลให้กับอุปกรณ์ภายนอก 5
  • 3. รูปที่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
  • 4. พอร์ต 3 (P3.7 – P3.0) สามารถใช้งานได้ 2 หน้าที่ คือ ใช้ เป็นพอร์ตอินพุตหรือเอาต์พุต ส่วนหน้าที่ที่ 2 จะแยกออกเป็นหลาย อย่าง ดังนี้ คือ บิต ชื่อ ทำาหน้าที่ P3.0 RXD รับข้อมูลของพอร์ตอนุกรม P3.1 TXD ส่งข้อมูลของพอร์ตอนุกรม P3.2 INT0 ใช้รับสัญญาณอินเตอร์รัพต์จาก ภายนอก P3.3 INT1 ใช้รับสัญญาณอินเตอร์รัพต์จาก ภายนอก P3.4 T0 เป็นอินพุทจากภายนอกของไทเมอร์/ เคาน์เตอร์ 0 P3.5 T1 เป็นอินพุทจากภายนอกของไทเมอร์/ เคาน์เตอร์ 1 P3.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
  • 5. นอกจากนี้ 8051 ยังมีชุดคำาสั่งที่สามารถจัดการแบบบิตได้ โดยตรง(Single-bit Operation) เพื่อจัดการพอร์ตอินพุตและ เอาต์พุตทั้งหมดแบบเส้นสัญญาณเดียวได้ เช่น CLR P2.0 ;เคลียร์บิตที่ 0 ของพอร์ต P2 ให้เป็น 0 SETB P2.0 ;เซ็ตบิตที่ 0 ของพอร์ต P2 ให้เป็น 1 CPL 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
  • 6. รูปที่ 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
  • 7. DELAY2:DJNZ R2,DELAY2 DJNZ R1,DELAY1 RET END รูปที่ 4 ตัวอย่างการใช้งานพอร์ต P1 เป็นพอร์ตอินพุต จากรูปที่ 4 เป็นการใช้งานพอร์ต P1 เป็นอินพุต โดยจะรับ ข้อมูลจากดิพสวิตช์เข้าทางพอร์ต P1 เข้าไปเก็บไว้ในรีจิสเตอร์ A จากนั้นทำาการเปรียบเทียบว่าค่าที่อ่านเข้ามา มีค่าเป็น 0FFH หรือ ไม่ ถ้าไม่เป็น 0FFH แสดงว่ามีการกดสวิตช์ ให้อ่านค่าเข้ามาเก็บ ไว้ใน KEY แต่ถ้าเป็น 0FFH ให้อ่านค่ามาตรวจสอบใหม่ ซึ่งสามา รถเขียนโฟลว์ชาร์ต ได้ดังรูปที่ 5 10
  • 8. รูปที่ 5 โฟลว์ชาร์ตแสดงการรับข้อมูลจากสวิทซ์เป็นพอร์ตอินพุท และจากโฟลว์ชาร์ตในรูปที่ 5 เราสามารถเขียนโปรแกรมได้ดังนี้ คือ KEY:EQU 060H ;กำาหนดให้ KEY มีค่าเท่ากับ 60 H ORG0000H LOOP: 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
  • 9. เมื่อต้องทำาการเพิ่มหน่วยความจำาภายนอก คือ หน่วยความจะ สาหรับโปรแกรมและหน่วยความจำาสำาหรับข้อมูลจะต้องใช้พอร์ต 0 เป็นบัสแอดเดรสและบัสข้อมูล ส่วนพอร์ต 1 จะใช้เป็นบัสแอดเดรส ไบต์สูง ดังนั้นในการเพิ่มจำานวนพอร์ตอินพุตและเอาต์พุตก็เช่น เดียวกันทำาได้โดยใช้สัญญาณที่เป็นแอดเดรสมาทำาการถอดรหัส เพื่อเลือกพอร์ตที่เพิ่มเข้าไปทำางาน ส่วนการจะให้ทำางานเป็น อินพุตหรือเอาต์พุตนั้น สามารถทำาได้โดยการใช้สัญญาณที่ใช้ใน การเขียนหรืออ่านเป็นสัญญาณควบคุม ส่วนตัวพอร์ตที่เพิ่มเข้าไป เช่น ไปซีบัฟเฟอร์สามสถานะ (Tri-st ฟ te buffers)สำาหรับเป็น พอร์ต อินพุต (ดังแสดงในรูปที่ 6) และไอซีแลตช์(Latches)สำาหรับ เป็นพอร์ตเอาต์พุต(ดังแสดงในรูปที่ 7) เป็นต้น รูปที่ 6 การใช้ไอซีบัฟเฟอร์สามสถานะเป็นพอร์ตอินพุต รูปที่ 7 การใช้ไอซีแลตช์เป็นพอร์ตเอาต์พุต 12
  • 10. 1.4.1 การเพิ่มพอร์ตอินพุต จากรูปที่ 8 จะแสดงให้เห็นตัวอย่างของการเพิ่มพอร์ตอินพุต ซึ่งจะสมมติให้พอร์ตที่ต้องการอ่านข้อมูลอยู่ที่แอดเดรส 20 H และ ใช้สัญญาณ RD เป็นสัญญาณควบคุมการอ่านข้อมูลจากพอร์ต ส่วนบัฟเฟอร์จะใช้ไอซีเบอร์ 74LS244 สำาหรับเป็นพอร์ตอินพุต ส่วนขา OE1 และ OE2 จะต่อกับสัญญาณ สโตรบที่สร้างขึ้นเพื่อ อ่านข้อมูลจากอุปกรณ์ภายนอก ส่วนความจำาสำาหรับข้อมูลภายนอก คือการใช้คำาสั่ง MOVX นั่นเอง สำาหรับการเขียนโปรแกรมการอ่านข้อมูลจากพอร์ตอินพุต สามารถเขียนโปรแกรมได้ดังนี้ PORT EQU 0020H ;กำาหนดค่า 20H ให้กับตัวแปร PORT ORG 0000H START:MOV DPTR,#PORT ;ให้รีจีสเตอร์ DPTR มีค่าเป็น 0020H MOVX A,@DPTR;อ่านค่าข้อมูลจากพอร์ต 20H มาเก็บ ไว้ในรีจีสเตอร์ A END 13
  • 11. รูปที่ 8 ตัวอย่างการเพิ่มพอร์ตอินพุตที่แอดเดรส 20H 1.4.2 การเพิ่มพอร์ตเอาต์พุต จากรูปที่ 9 จะแสดงให้เห็นตัวอย่างของการเพิ่มพอร์ตเอาต์พุต ซึ่งจะสมมติให้พอร์ตที่ต้องการอยู่ที่แอดเดรสที่ต้องการอยู่ที่แอดเดรส 20 H และใช้สัญญาณ WR เป็นสัญญาณควบคุมการเขียนข้อมูลไป ยังพอร์ต ส่วนแลตช์จะใช้ไอซีเบอร์ 74LS373 สำาหรับเป็นพอร์ต เอาต์พุต ส่วนขา CLK จะต่อกับสัญญาณสโตรบที่สร้างขึ้นเพื่อเขียน โปรแกรมเพื่อเขียนข้อมูลไปยังหน่วยความจำาสำาหรับข้อมูลภายนอก คือ ใช้คำาสั่ง MOVX เช่นเดียวกัน 14
  • 12. รูปที่ 9 ตัวอย่างการเพิ่มพอร์ตเอาต์พุตที่แอดเดรส 20H สำาหรับโปรแกรมเขียนข้อมูลไปยังพอร์ตเอาต์พุตสามารถเขียน โปรแกรมได้ดังนี้ PORT EQU 020H ORG 0000H START: MOV DPTR,#PORT MOV A,#0FFH MOVX @DPTR,A ;ส่งข้อมูลในรีจีสเตอร์ A ออกไปยังพอร์ต 020H END สรุปสาระประจำาหน่วยที่ 1 เมื่อเรียนเรื่องนี้จบแล้วสามารถบอกความหมายของพอร์ต อินพุตและเอาต์พุต การเขียนคำาสั่งกำาหนดพอร์ต ตัวอย่างการใช้ พอร์ตอินพุตและเอาต์พุตของ 8051 การขยายพอร์ตอินพุตและ เอาต์พุต 15
  • 13. แบบทดสอบก่อนเรียน/หลังเรียน หน่วยที่ 1 ชื่อวิชา ระบบอินเตอร์เฟส รหัส 2104-2423 สอนครั้งที่ 1 ชื่อหน่วย การรับส่งข้อมูลกับอุปกรณ์ เชื่อมต่อภายนอก อิเล็กทรอ นิกส์ ชื่องาน การรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อภายนอก ปวช. ข้อสอบมีทั้งสิ้น 2 ตอน ตอนที่ 1 จงเลือกคำาตอบที่ถูกต้องที่สุดเพียงคำาตอบเดียว 16
  • 14. 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
  • 15. 8. คำำสั่งที่ใช้สำำหรับกำำหนดให้พอร์ทเป็นอินพุทคือ ก. MOV A,P1 ข. MOV P1,A ค. MOV C,P1 ง. MOV P1,C 9. ไอซีที่ใช้สำำหรับต่อกับพอร์ทเอำท์พุทต้องมีลักษณะเช่นใด ก. เป็นบัฟเฟอร์ ข. เป็นกำรแลทซ์ ค. ให้ข้อมูลผ่ำนได้2 ทำง ง. ผิดทุกข้อ 10. พอร์ทของไมโครคอนโทรลเลอร์ 8051 ใน 1 พอร์ทจะรับส่ง ข้อมูลได้กี่บิท ก. 2 บิท ข. 4 บิท ค. 8 บิท ง. 16 บิท .............................................................. ตอนที่ 2 1. จงออกแบบวงจรเพื่อเพิ่มจำำนวนพอร์ทเอำท์พุทและอินพุท 1 พอร์ท โดยใช้ชื่อพอร์ทแอดเดรส 40H วิชำ ระบบอินเตอร์เฟส ( 2104-2423 ) หน่วยที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อ ภำยนอก จำำนวน 4 คำบ ใบงำนที่ 1 ชื่องำน กำรเขียนโปรแกรมควบคุมอุปกรณ์ เอำท์พุต จำำนวน 4 คำบ จุดประสงค์ทั่วไป 1. เข้ำใจวิธีกำรนำำไมโครคอนโทรลเลอร์ มำอินเตอร์เฟส เพื่อ กำำหนดเป็น เอำท์พุทได้ 2. ควำมรู้เกี่ยวกับกำรเขียนโปรแกรมภำษำ Assembly ควบคุม LED ได้ 18
  • 16. จุดประสงค์เชิงพฤติกรรม 1. ต่อวงจรควบคุม LED ได้ถูกต้อง 2. เขียนโปรแกรมควบคุม LED ให้ติดแบบต่ำงๆ ได้ อุปกรณ์กำรทดลอง 1. CPU AT89C51 2. แผ่นวงจรพิมพ์เอนกประสงค์ 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
  • 17. ส่งข้อมูลไปที่พอร์ท ปกติแล้วไอซีไมโครคอนโทรลเลอร์ AT89C51 จะมี4 พอร์ตคือ P0 P1 P2 P3 ซึ่งในกำรเขียนโปรแกรมส่งข้อมูล ออกจำกพอร์ตสำมำรถเขียนได้ดังนี้ พอร์ทเอำท์พุท = ข้อมูล ตัวอย่ำง MOV P1,# 0F0H ; หมำยถึงส่งข้อมูล F0H หรือ 11110000B ออกพอร์ท P1 MOV P2 ,#0AAH ; หมำยถึงส่งข้อมูล AAH หรือ 10101010B ออกพอร์ท P2 หมำยเหตุ ในใบงำนนี้ใช้ พอร์ต P1 งำนที่ 1 จงเขียนโปรแกรมควบคุมหลอดแสดงผลติดดับทีละ 8 บิท ตำมลำำดับดังนี้ ลำำดับที่1 11111111 P2 = 0FFH ; ลำำดับที่2 00000000 P2 = 00H ; 20
  • 18. ลำำดับขั้นกำรทดลอง 1. ให้ต่อวงจรตำมรูป 2. จงป้อนโปรแกรมภำษำ Assembly พร้อมทดลอง ORG 0000H MAIN: MOV P1,#0FFH ; ส่งข้อมูล 11111111B ออกทำง พอร์ท P2 ทำำให้ LED ติดทั้ง 8 บิท ACALL DELAY ; หน่วงเวลำ MOV P1,#00H ; ส่งข้อมูล 00000000B ออก ทำงพอร์ท P2 ทำำให้ LED ดับทั้ง 8 บิท ACALL DELAY ; หน่วงเวลำ SJMP MAIN DELAY: MOV R6,#0FFH DELAY1: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,DELAY1 RET END ผลกำรทดลอง ………………………………………………………. 3. ให้นักศึกษำดัดแปลงจำกโปรแกรมแรกเพื่อสั่งให้ LED ติด ดับ 4 บิทสลับกัน ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... 21
  • 19. ..................................................................................... .................................... 4.ให้นักศึกษำเขียนโปรแกรมตำมแบบเพื่อสั่งให้ LED วิ่ง 1 บิทจำกซ้ำยไปขวำ ORG 0000H MOV A,#00000001B ; 01H MAIN: MOV P1,A RL A LCALL DELAY LJMP MAIN DELAY: MOV R6,#0FFH DELAY1: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,DELAY1 RET END ผลกำรทดลอง ………………………………………………………. 5. ให้แก้ไขโปรแกรมเพื่อให้ LED วิ่ง 1 บิทไปทำงขวำมือ ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ................................................................ ..................................................................................... .............................................................................. ..................................................................................... ........................................................................ ..................................................................................... ..................................................................................... 22
  • 20. ..................................................................................... ........................................................... ..................................................................................... ..................................................................................... ..................................................................................... ........................................................... 6. โปรแกรมควบคุมไฟวิ่ง 1 บิทจำกซ้ำยไปขวำแบบใช้ Look up Table ORG0000H MAIN: MOV R2,#08H MOV R3,#00H NEXT: MOV DPTR,#TABLE MOV A,R3 MOVC A,@A+DPTR MOV P1,A LCALL DELAY INC R3 DJNZ R2,NEXT LJMPMAIN DELAY: MOV R6,#0FFH DELAY1: MOV R5,#0FFH DJNZ R5,$ DJNZ R6,DELAY1 RET TABLE: DB 01H,02H,04H,08H DB 10H,20H,40H,80H END 7. จำกโปรแกรมนี้ถ้ำต้องกำรเปลี่ยนกำรวิ่งจำกขวำไปซ้ำยต้อง ทำำอย่ำงไร ..................................................................................... ........................................................................ 23
  • 21. ..................................................................................... ........................................................................ ..................................................................................... ..................................................................................... ..................................................................................... ........................................................... ..................................................................................... ..................................................................................... ..................................................................................... ........................................................... ..................................................................................... ........................................................................ ..................................................................................... ........................................................................ สรุปและวิจำรณ์ผลกำรทดลอง …………………………………………………………………… …………………………………………………………………… …………………………………………………………………… …………………………………………………………………… ………………………........................................................ ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ..................................................................................... ................... คำำถำม 24
  • 22. 1. คำำสั่ง ACALL DELAY ที่ใช้ในโปรแกรมที่ 1 ไว้เพื่ออะไร .............................................................................. ................................................................. 2. กำรเปลี่ยนแปลงค่ำเวลำในกำรหน่วงให้ช้ำหรือเร็วทำำได้ อย่ำงไร ……………………………………………………………… …………………………… 3. คำำสั่ง DJNZ R5,$ มีควำมหมำยอย่ำงไร .............................................................................. ................................................................. 4. คำำสั่ง MOVC A,@A+DPTR คือ .......................................................................... .......................................... 4. ถ้ำข้อมูลใน TABLE มำกกว่ำ 8 ไบท์ จะต้องแก้ไขโปรแกรม ส่วนใด .............................................................................. ........................................................... ใบมอบงำน หน่วยที่ 1 ชื่อวิชำ ระบบอินเตอร์เฟส สอนครั้ง ที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับ อุปกรณ์เชื่อมต่อภำยนอก อิเล็กทรอ นิกส์ ชื่องำน กำรเขียนโปรแกรมควบคุมอุปกรณ์ เอำท์พุต ปวช. 25
  • 23. จุดประสงค์กำรมอบงำน (เพื่อให้นักเรียนสำมำรถ) 1. ทดสอบกำรติดต่อระหว่ำงไมโครคอนโทรลเลอร์กับอุปกรณ์ เอำท์พุทได้ 2. ประยุกต์กำรใช้ไมโครคอนโทรลเลอร์ในกำรควบคุม LED ได้ แนวทำงกำรปฏิบัติงำน ให้ศึกษำโปรแกรมทั้งหมดในใบงำนเรื่องกำรเขียน โปรแกรมควบคุมอุปกรณ์เอำท์พุตเพื่อทดลองใช้งำนจริง แหล่งค้นคว้ำ จำกใบควำมรู้หน่วยที่ 1 และในใบงำน เรื่องกำร เขียนโปรแกรมควบคุมอุปกรณ์เอำท์พุต คำำถำม / ปัญหำ 1.ให้เขียนโปรแกรมกำำหนดให้ LED ทำำงำนดังนี้ 1.1 วิ่งจำกตรงกลำงไปยังริมทั้ง 2 1.2 วิ่งเป็นแถบจำกซ้ำยไปขวำ 2.จำกโปรแกรมในข้อที่ 1 ให้กำำหนดจำำนวนรอบในกำรวิ่ง เช่น 1 รอบ แล้วหยุด เป็นต้น กำำหนดเวลำส่งงำน ในข้อที่1 ส่งหลังจบบทเรียน กำรประเมินผล 1. ส่งตรงเวลำ 5 คะแนน 2. ทดลองถูกต้อง 10 คะแนน หน่วยที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อ ภำยนอก ใบงำนที่ 1 ชื่องำน กำรเขียนโปรแกรมควบคุมอุปกรณ์ เอำท์พุต คำำแนะนำำ แบบทดสอบนี้จัดทำำขึ้นเพื่อให้ครูตรวจสอบ นักศึกษำว่ำได้ปฏิบัติใบงำนได้อย่ำงบรรลุ 26
  • 24. วัตถุประสงค์ นักศึกษำต้องปฏิบัติจนได้รับกำรขีดถูกใน ช่อง ใช่ เท่ำนั้น ชื่อ- นำมสกุล………………………….รหัส………………..ระดับ…… ……ชั้นปีที่…….กลุ่ม………. ใช่ ไม่ใช่ 1. สำมำรถต่อวงจร LED เข้ำกับพอร์ตของไมโครคอนโทรลเลอร์ได้   2. สำมำรถใช้โปรแกรมโหลดข้อมูลลงในไมโครคอนโทรลเลอร์ได้   3. สำมำรถเขียนโปรแกรมทดลองตำมใบงำนในแต่ละขั้นตอนได้   4. สำมำรถบันทึกผลและสรุปผลกำรทดลอง ได้   5. เก็บอุปกรณ์และรักษำควำมสะอำดของห้องทดลองได้เป็นอย่ำงดี   ลงชื่อ……………………………..ผู้ สอน (…………………………………… …..) วันที่……… เดือน………….พ.ศ………. 27
  • 25. ใบประเมินผลกำรปฏิบัติงำน หน่วยที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อ ภำยนอก ใบงำนที่ 1 ชื่องำน กำรเขียนโปรแกรมควบคุมอุปกรณ์ เอำท์พุต ชื่อ- นำมสกุล……………………….รหัส………………..ระดับ……… …ชั้นปีที่…….กลุ่ม………. ระดับกำรปฏิบัติ งำน ลำำ ดับ ที่ หัวข้อประเมิน 5ดีมำก 4ดี 3พอใช้ 2ต้องปรับปรุง1. กำรตรงต่อเวลำ 2. กำรแต่งกำย 3. ควำมสนใจในกำรทดลองใบงำน 4. กำรเตรียมอุปกรณ์และเครื่องมือ 5. ลำำดับขั้นกำรทดลอง 6. กำรแก้ไขปัญหำในขณะที่ทำำกำร ทดลอง 7. ควำมรู้ควำมสำมำรถในกำรทดลองใบ งำน 8. มีควำมสะอำดและเป็นระเบียบ 9. มีกำรเก็บและทำำควำมสะอำดอุปกรณ์- เครื่องมือหลังกำรปฏิบัติงำน 28
  • 26. ลงชื่อ……………………………..ผู้ สอน (…………………………………… …..) วันที่……… เดือน………….พ.ศ………. เฉลยแบบทดสอบก่อนเรียน/หลัง เรียน หน่วยที่ 1 ชื่อวิชำ ระบบอินเตอร์เฟส รหัส 2104-2423 สอนครั้งที่ 1 ชื่อหน่วย กำรรับส่งข้อมูลกับอุปกรณ์ เชื่อมต่อภำยนอก อิเล็กทรอ นิกส์ ชื่องำน กำรรับส่งข้อมูลกับอุปกรณ์เชื่อมต่อภำยนอก ปวช. ตอนที่ 1 จำำนวนข้อสอบทั้งหมด 10 ข้อ 1. ข 2. ก 3. ค 4. ก 5. ข 6. ค 7. ข 8. ก 9. ข 10. ค 29
  • 27. ตอนที่ 2 จงออกแบบวงจรเพื่อเพิ่มจำำนวนพอร์ทเอำท์พุทและ อินพุท 1 พอร์ท โดยใช้ชื่อพอร์ทแอดเดรส 40H พอร์ทอินพุทแอดเดรส 40H 30
  • 28. พอร์ทเอำท์พุทแอดเดรส 40H 31

×