SlideShare a Scribd company logo
1 of 38
บทที่ 7
การควบคุมหลอดแสดงผล
ในบทนี้จะกล่าวถึง
การทางานของหลอด LED
วงจรขยายสัญญาณ
การเชื่อมไมโครคอนโทรลเลอร์กับหลอด LED
การส่งข้อมูลออกพอร์ต
การเชื่อมต่อ P1และ P3 กับหลอดแสดงผล LED
7.1 การทางานของหลอดแสดงผล LED
+5 V R 220
i 10-30 mA
0 V R 220
i=0 mA
7.2 วงจรขยายสัญญาณ
18
16
14
12
9
7
5
3
20
A1
A2
A3
A4
A5
A6
A7
A8
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
2
4
6
8
11
13
15
17
74244
R2 2 0 X 8
VCC
'1'
'0'
'1'
'0'
'1'
'0'
'1'
'0'
1
10
19
1G
2G
GND
+ 5 V
7.3 การเชื่อมต่อไมโครคอนโทรลเลอร์กับหลอดแสดงผลLED
การเชื่อมต่อไมโครคอนโทรลเลอร์กับหลอดแสดงผล LED จะใช้
ไมโครคอนโทรลเลอร์เบอร์ AT89C2051 ซึ่งเป็ น
ไมโครคอนโทรลเลอร์ขนาดเล็กมี 20 ขาต่อออกพอร์ต P1 ที่ขา 11
ถึงขา 19 ผ่านไอซีบัฟเฟอร์เบอร์ 74244 เพื่อขยายกระแสไปขับ
หลอดแสดงผล LED
C2
C3
Crystals
11.0592 MHz
33 pF
33 pF
1G
A1
A2
A3
A4
A5
A6
A7
A8
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
19
20
18
17
16
15
14
12
11
2
4
6
8
11
13
15
17
18
20
16
14
12
9
7
5
3
AT89C2051
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
10 uF
C1
1
4
5
R 4.7 k
10
Reset
+ 5V
R PULL UP 10K x 8
RST
XTAL1
XTAL2
GND
VCC
74244
1
19
10
2G
GND
R220 x 8
7.3 การเชื่อมต่อไมโครคอนโทรลเลอร์กับหลอดแสดงผลLED
7.4 การส่งข้อมูลออกพอร์ต
ไมโครคอนโทรลเลอร์โดยปกติจะมีพอร์ตการใช้งานอยู่ 4
พอร์ตคือ P0 P1 P2 และ P3 แต่ไมโครคอนโทรเลอร์ AT89C2051
จะมีอยู่ 2 พอร์ตคือ P1 และ P3 ใช้งานเป็นพอร์ตอินพุตและ
เอาต์พุต
ตัวอย่าง
P1 = 0XF0;
หมายถึง ส่งข้อมูล F0H หรือ 11110000B ออกพอร์ต P1
P2 = 0XAA;
หมายถึง ส่งข้อมูล AAH หรือ 10101010B ออกพอร์ต P2
โปรแกรมควบคุมหลอดแสดงผลติดดับทีละ 8 บิต
ตามลาดับดังนี้
ลาดับที่ 1. 11111111
ลาดับที่ 2. 00000000
1 หมายถึง หลอดแสดงผลติด
0 หมายถึง หลอดแสดงผลดับ
วิธีคิด
ลาดับที่ 1. หลอดแสดงผลติด 8 บิตต้องส่งข้อมูลลอจิก ’1’ ออกพอร์ต
P1 ทุกบิตคือ
P1=0XFF;
ลาดับที่ 2. หลอดแสดงผลดับ 8 บิตต้องส่งข้อมูลลอจิก ‘0’ ออก
พอร์ต P1 ทุกบิตคือ
P1=0X00;
คาอธิบาย
1. บรรทัดที่ 1 #include <reg51.h> หมายถึงการเรียกไฟล์ reg51.h
มาร่วมในการคอมไพล์ทาให้ในการเขียนโปรแกรมสามารถใช้รีจี
สเตอร์ต่างๆ ของไมโครคอนโทรเลอร์ได้
2. บรรทัดที่ 4 ถึง 9 วนรอบส่งข้อมูลออกพอร์ต P1 ในฟังก์ชัน do while
3. บรรทัดที่ 5 P1=0XFF; ส่งข้อมูล 11111111B ออกพอร์ต P1 ทาให้
หลอดแสดงผลติดทั้ง 8 บิต
ต่อ
4. บรรทัดที่ 6 หน่วงเวลาโดยการนับ 0 ถึง 29,999
5. บรรทัดที่ 7 P1=0X00; ส่งข้อมูล 00000000B ออกพอร์ต P1 ทาให้
หลอดแสดงผลดับทั้ง 8 บิต
6. บรรทัดที่ 8 หน่วงเวลาโดยการนับ 0 ถึง 29,999
ผลการรันโปรแกรม
การทางานของโปรแกรมเริ่มจากส่งข้อมูล FFH ออกพอร์ต P1 ทา
ให้หลอดแสดงผลติดทั้ง 8 บิตจากนั้นหน่วงเวลาโดยการวนรอบนับ
ค่าตัวแปร count=0 ถึง 29,999 จึงให้หลอดแสดงผลดับทั้ง 8 บิต P1
= 0X00; จากนั้นหน่วงเวลาของการแสดงผลและวนรอบกับไป
ทางานใหม่
โปรแกรมควบคุมหลอดแสดงผลให้ติดดับ 4 บิตสลับกัน
ตามลาดับดังนี้
ลาดับที่ 1. 10101010
ลาดับที่ 2. 01010101
วิธีคิด
1. ส่งข้อมูล 10101010B หรือ AAH ออกพอร์ต P1
P1=0XAA;
2. ส่งข้อมูล 01010101B หรือ 55H ออกพอร์ต P1
P1=0X55;
โปรแกรมควบคุมหลอดแสดงผลให้ติดดับ 4 บิตสลับกัน
คาอธิบาย
บรรทัดที่ 2 ประกาศฟังก์ชัน delay
บรรทัดที่ 5 ถึง10 วนรอบส่งข้อมูลออกพอร์ต P1
บรรทัดที่ 6 P1=0XAA; ส่งข้อมูล 10101010B ออกพอร์ต P1 ตามลาดับที่ 1
บรรทัดที่ 7 หน่วงเวลาโดยการเรียกฟังก์ชัน delay
บรรทัดที่ 8 P1=0X55; ส่งข้อมูล 01010101B ออกพอร์ต P1 ตามลาดับที่ 2
บรรทัดที่ 9 หน่วงเวลาโดยการเรียกฟังก์ชัน delay
บรรทัดที่ 12 ถึง16 ฟังก์ชัน delay ทาหน้าที่หน่วงเวลาโดยการวนรอบ
ผลการันโปรแกรม
หลอดแสดงผลจะติดและดับตามลาดับ 1 และ 2 สลับกันไป
การโดยมีฟังก์ชัน delay ทาหน้าที่หน่วงเวลาโดยฟังก์ชัน delay จะ
ทาการนับ 0 ถึง 2,999 วนรอบนับซ้า 100 ครั้งตามการส่งค่าผ่าน
ฟังก์ชัน delay
โปรแกรมไฟวิ่ง 2 บิตจากซ้ายไปขวา 10 รอบตามลาดับดังนี้
ลาดับที่ 1. 11000000
ลาดับที่ 2. 00110000
ลาดับที่ 3. 00001100
ลาดับที่ 4. 00000011
วิธีคิด
ลาดับที่ 1. ส่งข้อมูล 11000000B หรือ C0H ออกพอร์ต P1
P1=0XC0;
ลาดับที่ 2. ส่งข้อมูล 00110000B หรือ 30H ออกพอร์ต P1
P1=0X30;
ลาดับที่ 3. ส่งข้อมูล 00001100B หรือ 0CH ออกพอร์ต P1
P1=0X0C;
ลาดับที่ 4. ส่งข้อมูล 00000011B หรือ 03H ออกพอร์ต P1
P1=0X03;
โปรแกรมไฟวิ่ง 2 บิตจากซ้ายไปขวา 10 รอบ
คาอธิบาย
บรรทัดที่ 2 ประกาศฟังก์ชัน delay
บรรทัดที่ 5 ถึง15 วนรอบส่งข้อมูลออกพอร์ต P1 10 รอบ
บรรทัดที่ 6 ถึง 13 ส่งข้อมูลออกพอร์ต P1 ตามลาดับที่ 1 ถึง 4
บรรทัดที่ 14 loop=loop+1 นับจานวนการวนรอบ
บรรทัดที่ 15 while(loop<11) เงื่อนไขการวนรอบ
บรรทัดที่ 17 ถึง21 ฟังก์ชัน delay ทาหน้าที่หน่วงเวลาโดยการวนรอบนับ
ผลการรันโปรแกรม
การทางานของโปรแกรมเริ่มจากกาหนดการวนรอบการ
แสดงผล 10 รอบโดยกาหนดค่าเริ่มต้นให้ตัวแปร loop=1 จากนั้นจึง
ส่งข้อมูลออกพอร์ต P1 ตามลาดับที่ 1 ถึง 4 แล้วเพิ่มค่าตัวแปร loop
ขึ้นทีละ 1 จนกว่าจะครบ 10 รอบจึงจบการทางาน
โปรแกรมไฟวิ่ง 1 บิตจากซ้ายไปขวา
ลาดับที่ 1. 10000000 ส่งข้อมูล 10000000B หรือ 80H ออกพอร์ต P1
ลาดับที่ 2. 01000000 ส่งข้อมูล 00100000B หรือ 40H ออกพอร์ต P1
ลาดับที่ 3. 00100000 ส่งข้อมูล 00100000B หรือ 20H ออกพอร์ต P1
ลาดับที่ 4. 00010000 ส่งข้อมูล 00010000B หรือ 10H ออกพอร์ต P1
ลาดับที่ 5. 00001000 ส่งข้อมูล 00001000B หรือ 08H ออกพอร์ต P1
ลาดับที่ 6. 00000100 ส่งข้อมูล 00000100B หรือ 04H ออกพอร์ต P1
ลาดับที่ 7. 00000010 ส่งข้อมูล 00000010B หรือ 02H ออกพอร์ต P1
ลาดับที่ 8. 00000001 ส่งข้อมูล 00000001B หรือ 01H ออกพอร์ต P1
โปรแกรมไฟวิ่ง 1 บิตจากซ้ายไปขวา
ผลการรันโปรแกรม
การทางานของโปรแกรมจะส่งข้อมูลออกพอร์ต P1 ตามลาดับที่ 1
ถึง 8 แล้ววนรอบกลับไปทางานซ้า
โปรแกรมควบคุมไฟวิ่ง 1 บิตจากซ้ายไปขวาแบบใช้ตัวแปรอาร์เรย์
ผลการรันโปรแกรม
การทางานของโปรแกรมจะส่งข้อมูลออกพอร์ต P1 ตามลาดับ
ที่ 1 ถึง 8 โดยการวนรอบนาข้อมูลในตัวแปรอาร์เรย์ LED[index]
ส่งออกพอร์ต P1 โดยมีตัวแปร index ทาหน้าที่ในการเลื่อนข้อมูล
ในอาเรย์
โปรแกรมไฟวิ่ง 1 บิตจากซ้ายไปขวาแบบใช้วิธีการเลื่อนบิต
ผลการรันโปรแกรม
การทางานของโปรแกรมจะส่งข้อมูลออกพอร์ต P1 ตามลาดับที่
1 ถึง 8 เหมือนกับตัวอย่างที่ 7.4 แต่จะใช้วิธีการเลื่อนบิตข้อมูลในตัว
แปร LED
โปรแกรมไฟวิ่ง 2 บิตเข้าหากันตามลาดับ 1 ถึง 4 ดังนี้
ลาดับที่ 1. 10000001
ลาดับที่ 2. 01000010
ลาดับที่ 3. 00100100
ลาดับที่ 4. 00011000
โปรแกรมไฟวิ่ง 2 บิตเข้าหากันตามลาดับ 1 ถึง 4
คาอธิบาย
บรรทัดที่ 3 กาหนดข้อมูลที่ส่งออกพอร์ต P1 ตามลาดับที่ 1 ถึง 4 ไว้ในตัวแปร
อาร์เรย์LED[4] กาหนดค่าเริ่มต้นให้ตัวแปร index=0
บรรทัดที่ 5 ถึง 11 วนรอบส่งข้อมูลออกพอร์ P1 ในฟังก์ชัน do while
บรรทัดที่ 6 ส่งข้อมูลในตัวแปรอาร์เรย์LED[index] ออกพอร์ต P1
บรรทัดที่ 8 เพิ่มค่าตัวแปร index เพื่อเลื่อนข้อมูลในตัวอาร์เรย์LED[index]
บรรทัดที่ 9 และ 10 ตรวจสอบค่าตัวแปร index ถ้ามากกว่า 3 ให้ตัวแปร
index=0
ผลการรันโปรแกรม
การทางานของโปรแกรมจะส่งข้อมูลออกพอร์ต P1 ตามลาดับที่ 1
ถึง 4 โดยการวนรอบนาข้อมูลในตัวแปร LED[index] ส่งออกพอร์ต
P1 โดยมีตัวแปร index เป็นตัวเลื่อนข้อมูล
7.5 การเชื่อมต่อพอร์ต P1 และ P3 กับหลอดแสดงผล LED
C2
C3
Crystals
11.0592 MHz
33 pF
33 pF
5
4
10
XTAL1
XTAL2
GND
10 uF
C1
1
R 4.7 k
Reset
RST
A1
A2
A3
A4
A5
A6
A7
A8
Y1
Y2
Y3
Y4
Y5
Y6
Y7
Y8
19
20
18
17
16
15
14
13
12
2
4
6
8
11
13
15
17
AT89C2051
+ 5V
R PULL UP 10K x 15
VCC
74244
A1
A2
A3
A4
A5
A6
A7
Y1
Y2
Y3
Y4
Y5
Y6
Y7
18
20
16
14
12
9
7
5
3
R220 x 8
18
20
16
14
12
9
7
5
R220 x 7
P1.7
P1.6
P1.5
P1.4
P1.3
P1.2
P1.1
P1.0
P3.7
P3.5
P3.4
P3.3
P3.2
P3.1
P3.0
1
19
10
1G
2G
GND
1
19
10
1G
2G
GND
+ 5V
74244
9
11
8
7
6
3
2
2
4
6
8
11
13
15
โปรแกรมไฟวิ่ง 1 บิตออกพอร์ต P1 และ P3
ผลของการรันโปรแกรม
การทางานของโปรแกรมจะวนรอบส่งข้อมูลออกพอร์ต P1 และ
P3 ทาให้หลอดแสดงผล LED ติด 1 บิตจากขวาไปซ้ายตามการ
กาหนดค่าในตัวแปร LED[index]
7.6 สรุปท้ายบท
ในบทนี้ได้กล่าวถึงการประยุกต์ใช้ไมโครคอนโทรลเลอร์ควบคุม
การทางานของหลอดแสดงผล LED วงจรขยายสัญญาณและบัฟเฟอร์ การ
เชื่อมต่อไมโครคอนโทรลเลอร์กับหลอดแสดงผล LED การส่งข้อมูลออก
พอร์ตของไมโครคอนโทรลเลอร์และตัวอย่างการเขียนโปรแกรมควบคุม
การทางานของหลอดแสดงผล LED ในรูปแบบต่างๆ

More Related Content

More from Nattawut Kathaisong

บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์
บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์
บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์Nattawut Kathaisong
 
บทที่ 2 หน่วยความจำและรีจิสเตอร์
บทที่ 2 หน่วยความจำและรีจิสเตอร์บทที่ 2 หน่วยความจำและรีจิสเตอร์
บทที่ 2 หน่วยความจำและรีจิสเตอร์Nattawut Kathaisong
 
บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์
บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์
บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์Nattawut Kathaisong
 
การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)
การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)
การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)Nattawut Kathaisong
 
บทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้า
บทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้าบทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้า
บทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้าNattawut Kathaisong
 
บทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้า
บทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้าบทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้า
บทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้าNattawut Kathaisong
 
โรงไฟฟ้าพลังงานความร้อน Thermal power plant
โรงไฟฟ้าพลังงานความร้อน Thermal power plantโรงไฟฟ้าพลังงานความร้อน Thermal power plant
โรงไฟฟ้าพลังงานความร้อน Thermal power plantNattawut Kathaisong
 

More from Nattawut Kathaisong (8)

บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์
บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์
บทที่ 3 ชุดคำสั่งของไมโครคอนโทรเลอร์
 
บทที่ 2 หน่วยความจำและรีจิสเตอร์
บทที่ 2 หน่วยความจำและรีจิสเตอร์บทที่ 2 หน่วยความจำและรีจิสเตอร์
บทที่ 2 หน่วยความจำและรีจิสเตอร์
 
บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์
บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์
บทที่ 1 พื้นฐานไมโครโปรเซสเซอร์และไมโครคอนโทรลเลอร์
 
การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)
การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)
การเชื่อมต่อสายกราวด์ กับ แท่งกราวด์ (Ground)
 
บทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้า
บทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้าบทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้า
บทที่ 6 อุปกรณ์ป้องกันทางไฟฟ้า
 
บทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้า
บทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้าบทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้า
บทที่ 1 การป้องกันอุบัติภัยเกี่ยวกับการปฏิบัติงานทางไฟฟ้า
 
โรงไฟฟ้าพลังงานความร้อน Thermal power plant
โรงไฟฟ้าพลังงานความร้อน Thermal power plantโรงไฟฟ้าพลังงานความร้อน Thermal power plant
โรงไฟฟ้าพลังงานความร้อน Thermal power plant
 
โรงไฟฟ้า
โรงไฟฟ้าโรงไฟฟ้า
โรงไฟฟ้า
 

บทที่ 7 การควบคุมแสดงผล