More Related Content
More from Nattawut Kathaisong
More from Nattawut Kathaisong (8)
บทที่ 7 การควบคุมแสดงผล
- 5. 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
- 9. วิธีคิด
ลาดับที่ 1. หลอดแสดงผลติด 8 บิตต้องส่งข้อมูลลอจิก ’1’ ออกพอร์ต
P1 ทุกบิตคือ
P1=0XFF;
ลาดับที่ 2. หลอดแสดงผลดับ 8 บิตต้องส่งข้อมูลลอจิก ‘0’ ออก
พอร์ต P1 ทุกบิตคือ
P1=0X00;
- 11. คาอธิบาย
1. บรรทัดที่ 1 #include <reg51.h> หมายถึงการเรียกไฟล์ reg51.h
มาร่วมในการคอมไพล์ทาให้ในการเขียนโปรแกรมสามารถใช้รีจี
สเตอร์ต่างๆ ของไมโครคอนโทรเลอร์ได้
2. บรรทัดที่ 4 ถึง 9 วนรอบส่งข้อมูลออกพอร์ต P1 ในฟังก์ชัน do while
3. บรรทัดที่ 5 P1=0XFF; ส่งข้อมูล 11111111B ออกพอร์ต P1 ทาให้
หลอดแสดงผลติดทั้ง 8 บิต
- 12. ต่อ
4. บรรทัดที่ 6 หน่วงเวลาโดยการนับ 0 ถึง 29,999
5. บรรทัดที่ 7 P1=0X00; ส่งข้อมูล 00000000B ออกพอร์ต P1 ทาให้
หลอดแสดงผลดับทั้ง 8 บิต
6. บรรทัดที่ 8 หน่วงเวลาโดยการนับ 0 ถึง 29,999
- 17. คาอธิบาย
บรรทัดที่ 2 ประกาศฟังก์ชัน delay
บรรทัดที่ 5 ถึง10 วนรอบส่งข้อมูลออกพอร์ต P1
บรรทัดที่ 6 P1=0XAA; ส่งข้อมูล 10101010B ออกพอร์ต P1 ตามลาดับที่ 1
บรรทัดที่ 7 หน่วงเวลาโดยการเรียกฟังก์ชัน delay
บรรทัดที่ 8 P1=0X55; ส่งข้อมูล 01010101B ออกพอร์ต P1 ตามลาดับที่ 2
บรรทัดที่ 9 หน่วงเวลาโดยการเรียกฟังก์ชัน delay
บรรทัดที่ 12 ถึง16 ฟังก์ชัน delay ทาหน้าที่หน่วงเวลาโดยการวนรอบ
- 20. วิธีคิด
ลาดับที่ 1. ส่งข้อมูล 11000000B หรือ C0H ออกพอร์ต P1
P1=0XC0;
ลาดับที่ 2. ส่งข้อมูล 00110000B หรือ 30H ออกพอร์ต P1
P1=0X30;
ลาดับที่ 3. ส่งข้อมูล 00001100B หรือ 0CH ออกพอร์ต P1
P1=0X0C;
ลาดับที่ 4. ส่งข้อมูล 00000011B หรือ 03H ออกพอร์ต P1
P1=0X03;
- 22. คาอธิบาย
บรรทัดที่ 2 ประกาศฟังก์ชัน delay
บรรทัดที่ 5 ถึง15 วนรอบส่งข้อมูลออกพอร์ต P1 10 รอบ
บรรทัดที่ 6 ถึง 13 ส่งข้อมูลออกพอร์ต P1 ตามลาดับที่ 1 ถึง 4
บรรทัดที่ 14 loop=loop+1 นับจานวนการวนรอบ
บรรทัดที่ 15 while(loop<11) เงื่อนไขการวนรอบ
บรรทัดที่ 17 ถึง21 ฟังก์ชัน delay ทาหน้าที่หน่วงเวลาโดยการวนรอบนับ
- 24. โปรแกรมไฟวิ่ง 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
- 33. คาอธิบาย
บรรทัดที่ 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
- 35. 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