^Back To Top
Get Adobe Flash player

จำนวนผู้เข้าชม

Today174
Yesterday320
This week1245
This month494
Total1326713

Thursday, 02 October 2014

ทดลอง MCU ตอนที่ 3 (Output Port)

การเรียนรู้ไมโครคอนโทรลเลอร์จะต้องเริ่มจากที่ง่ายที่สุดก่อน และที่ง่ายที่สุดของไมโครคอนโทรลเลอร์ก็คือการส่งค่าออกพอร์ต โดยการกำหนดค่าที่จะส่งขึ้นมาเอง และมีหลายค่า โดยให้แต่ละค่าแสดงผลนานพอที่จะมองเห็นได้ (มันก็ไฟวิ่งนั่นแหละ)

วงจรที่ใช้ในการทดลอง

ก่อนที่จะเริ่มทดลองขออนุญาตทำความเข้าใจเกี่ยวกับการแสดงผลโดยใช้หลอด LED โดยคุณสมบัติของหลอด LED สามารถให้แสง(สว่างนิดหน่อย)ได้ ก็ต่อเมื่อได้รับการไบอัสตรงเท่านั้น คล้ายกับไดโอดทั่วไป....แต่การไบอัสตรงของหลอด LED มีขีดจำกัดทางด้านกระแสที่ไหลผ่านและแรงดันตกคร่อมต่างไปจากไดโอดทั่วไปกล่าวคือ แรงดันที่ตกคร่อม LED จะมีค่าโดยประมาณ 1.8-2.2 โวลต์ (ขึ้นอยู่กับสี ขนาด ผู้ผลิต) และกระแสที่ไหลผ่านประมาณ 10- 25 มิลลิแอมป์

ดังนั้นเมื่อนำมาใช้งานจำเป็นต้องต่อตัวต้านทานอนุกรมเพื่อให้สามารถทำงานได้ตามพิกัดที่ LED ต้องการดังรูป

ตัวต้านทานที่นำมาใช้งานสามารถคำนวณค่าที่จะใช้ได้ โดยใช้กฎแรงดันของเคอร์ชอฟฟ์ ซึ่งจะได้สมการ VCC=VR+VLED ค่าของ VCC คือ 5 โวลต์และค่าของ VLED คือ 2 โวลต์ ดังนั้นจะได้ VR=3 โวลต์ ถ้าต้องการให้กระแสไหลผ่าน LED 15 มิลลิแอมป์ จะต้องใช้ R=3/15mA. ซึ่งจะได้ค่าเท่ากับ 200 โอห์ม และสำหรับในวงจรที่ใช้ในการทดลองจะใช้ค่า 180 โอห์ม เนื่องจากแหล่งจ่ายกระแสไม่ได้จ่ายจากแหล่งจ่ายโดยตรงแต่รับมาจากไอซีที่ทำหน้าที่บัฟเฟอร์ ดังนั้นจะมีค่าความต้านทานภายในตัวไอซีอยู่ด้วย

วงจรบัฟเฟอร์แบบที่ 1

วงจรบัฟเฟอร์แบบที่ 2

การต่อวงจรเพื่อจำลองการทำงาน

สำหรับการทดลองหากเราใช้โปรแกรมจำลองพฤติกรรม(Simulator) ที่ชื่อว่า Proteus ไอซีบัฟเฟอร์เบอร์ 74HC541 จะไม่สามารถจำลองได้เนื่องจากไม่มีโมเดลจำลองการทำงาน ดังนั้นในการต่อวงจรเพื่อจำลองการทำงานจะใช้ไอซีเบอร์ 74HC573 แทน เมื่อต่อวงจรใน Proteus จะได้ดังรูป

** การต่อวงจรเพื่อจำลองพฤติกรรมด้วยโปรแกรม Proteus มีสิ่งที่ไม่ต้องทำดังนี้ **
1. ไม่ต่อต่อไฟเลี่ยงให้กับไอซี
2. ไม่ต้องต่อวงจรรีเซต
3. ไม่ต้องต่อวงจรคริสตอล
4. ไม่ต้องต่อขา EA เข้ากับโลจิกใดๆ

ตัวอย่างโปรแกรม




#include<REGX52.h>
void delay(int n);
void main(void)
{
  unsigned char value=0;
  while(1)
  {
    P0=value;  
    delay(100);
    value++;  
  }
}
void delay(int n)  
{
  int x,y;
  for(x=0;x<n;x++)
  {
    for(y=0;y<500;y++)
    {
    }    
  }
}

ผลที่ได้

การต่อวงจรเพื่อทดลองจริง

1. วงจรหลัก (ซึ่งต่ออยู่บนแผ่นปริ้นเอนกประสงค์)

2. วงจรแสดงผล ซึ่งประกอบไปด้วยไอซีบัฟเฟอร์และหลอดแสดงผล LED โดยวงจรต่อในปริ้นเอนกประสงค์คนละแผ่นกับวงจรหลัก

แนวทางการบัดกรีวงจรต่อพ่วงวงจรขับ LED 8 Bit

วงจรจริง

วงจรเมื่อเชื่อมต่อเข้ากับแผงวงจรหลัก


รายการอุปกรณ์ (ลิงค์สั่งซื้อ) ดูได้งานหน้างานที่มอบหมาย คลิก

โปรดติดตามบทความอื่นๆในตอนต่อไป

ครูประภาส สุวรรณเพชร

Copyright © 2014 www.praphas.com. All Rights Reserved.
Joomla! is Free Software released under the GNU General Public License.