^Back To Top
Get Adobe Flash player

ทดลอง MCU ตอนที่ 6 (7 segment)

การแสดงผลในงานอิเล็กทรอนิกส์ที่นิยมมากอย่างหนึ่งคือการแสดงผลเป็นตัวเลข โดยอุปกรณ์อิเล็กทรอนิกส์ที่ถูกออกแบบมาเพื่อใช้ในการแสดงเป็นตัวเลขนั่นก็คือ 7-Segment หรือที่ภาษาไทยเรียกว่า ตัวเลขเจ็ดส่วน ซึ่งที่มาก็คือมีส่วนของการแสดงผลที่ให้เป็นตัวเลขใดก็ได้โดยใช้เพียงส่วนในการติดสว่างเพียงเจ็ดส่วนเท่านั้น  แต่ในความเป็น 7-Segment มีขาที่ควบคุมในการติดสว่างทั้งหมด 8 ขา โดยขาสุดท้ายเป็นขาที่ใช้ควบคุมการติดสว่างของจุด

 


วงจรที่ใช้ในการทดลองเป็นวงจรที่ต้องอาศัยไอซีช่วยขับหลอด ซึ่งไม่สามารถต่อหลอดตัวเลขเจ็ดส่วนโดยตรงกับไมโครคอนโทรลเลอร์ได้เนื่องจากไมโครคอนโทรลเลอร์ไม่สามารถจ่ายกระแสได้เพียงพอให้หลอดสว่างได้ โดยการเชื่อมต่อวงจรขับหลอดตัวเลขเจ็ดส่วนเป็นดังรูป

 

เมื่อนำมาต่อกับวงจรไมโครคอนโทรลเลอร์จะได้ดังรูป

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


 

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

การต่อวงจรเพื่อจำลองพฤติกรรมด้วย Proteus สามารถต่อได้ดังรูป

โปรแกรมเป็นดังนี้

#include<reg52.h>
void delay(void);
void display(int m,int n);
sbit com1=P2^7;
sbit com2=P2^6;
unsigned int t=0;
void main(void)
{
int n=0,m=0,count=0;
com1=0;
com2=0;
TMOD=0x10;   
TH1=0xDC;
TL1=0x00;
TF1=0;
ET1=1;
EA=1;
TR1=1;
while(1)
{
if (t<50)
{
display(m,n);
}
else if(count<99)
{
t=0;
count++;
m=count/10;
n=count%10;
display(m,n);
}
else
{
t=0;
count=0;
m=0;n=0;
}
}
}
void display(int m,int n)
{    
code unsigned char value[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

int i;
P0=value[n];
com1=1;
for(i=0;i<1000;i++)
{}
com1=0;
P0=value[m];
com2=1;
for(i=0;i<1000;i++)
{}
com2=0;

}
void delay(void) interrupt 3
{
TH1=0xDC;
TL1=0x00;
TF1=0;
t++;
}

ในการต่อวงจรเพื่อจำลองจำเป็นต้องต่อรีซิสเตอร์ R11-R12 ที่ขาคอลเลคเตอร์ที่มีค่าเท่ากับ 10K ดังรูปมิฉะนั้นจะจำลองไม่ได้ แต่เมื่อต่อวงจรใช้งานจริงไม่ต้องต่อก็ได้ หากต้องการเพิ่มความสามารถของวงจรสามารถต่อสวิตช์เพิ่มเพื่อใช้ประยุกต์ใช้งานได้กว้างขวางมากขึ้น ดังรูป

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