Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
การทดลองท การใชงาน 7-segment
วตถประสงค
1. เพอใหนสตสามารถเขยนโปรแกรมภาษา C อยางงายในการควบคมไมโครคอนโทรลเลอรได
2. เพอใหนสตเขาใจการตอใชงาน 7-segment
อปกรณในการทดลอง
1. เครองคอมพวเตอร PC พรอมโปรแกรมส าหรบการเขยนและคอมไพลภาษา C - โปรแกรม Keil51 v.xx และโปรแกรม Flash magic
2. บอรดไมโครคอนโทรลเลอร MCS-51
3. สายตอพอรตอนกรม
4. บอรด 7- segment display
ทฤษฎ
7-Segment LED คอการน าเอา LED 7 ดวงมาเรยงกน ดงรป
2
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
ใชในการแสดงตวเลข หรอตวอกษรจากการตดสวางของ LED เชน
ในการใชงานของ 7-Segment LED นน LED แตละสวนจะม ชอของดงแสดงในรป และในการตอใชงานในเพอเปนการ
แสดงผลของ Microcomputer โดยทวไปแลวจะนยมตอ Segment ‘A’ เขากบ บต ‘0’ ของขอมลทสงเปน Output ออกมา
และ Segment ‘B’ กจะตอกบบตท ‘1’ ตามล าดบ
ดงนนแลว ถาสงขอมล ‘0 0 1 1 1 1 1 1’ (3FH) ออกไปท Output Port ทตออยกบ 7-Segment กจะม Segment ท ‘A’,
‘B’, ‘C’, ‘D’, ‘E’ และ ‘F’ ทตดสวาง และมองเหนไดเปนเลข ‘0’ นนเอง
ตารางแสดงรหส 7-segment
ตวอกษร LED code ตวอกษร LED code ตวอกษร LED code ตวอกษร LED code
0 03FH 4 8 C
1 06H 5 9 D
2 5BH 6 A E
3 4FH 7 B F
3
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
ค าอธบายโปรแกรมท 1
1. สงคาตวเลขทตองการแสดงผล ออกไปท Output Port 1
2. เลอกหลก ของ 7-Segments ทตองการใหตดโดยใช Port 3
3. หนวงเวลา
4. สงคาตวเลขทจะแสดงผลของหลกตอไป เลอกหลกตอไป
5. ท าจนครบทง 7 หลกแลวกลบไปเรมตนใหม ทขอ 1
วธการทดลอง
1. ใช IDE ส าหรบพฒนาชดค าสงของ MCS-51 ดวยภาษา C โดยใช Keil51เพอเขยนโปรแกรม Lab02_x.c
2. สรางโปรเจคใหมโดยเลอก New project ตงชอเปน Lab02 แลวกด ok
4
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
5
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
3. เลอก CPU : Philips P89C51RD2xx
6
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
4. จากนนคลกทป มวงกลมสแดง เพอสรางหนาตางส าหรบเขยนโปรแกรม( หนาตาง Text1 ) สรางไฟลใหม เขยนโปรแกรมและ save โดยใชชอ Lab02_x.c (x แทนหมายเลขการทดลอง )
7
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
5. คลกขวาท Source Group 1 แลวเลอก Add file to group ‘Source Group 1’ แลวเลอก File Lab02_x.c
8
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
6. เขยนโปรแกรมใหเสรจแลวคลกท วงกลมท 1 เพอท าการ compile ถาหากวาไมพบ Error โดยทถาเกด error ขนโปรแกรมจะแสดงวา error กท (ด windows output ดานลางของโปรแกรม ) คลกท วงกลมท 2 เพอให keil ตรวจสอบและท าการ debug พรอมทงตรวจสอบขนาดของโปรแกรมทเราสรางขนและพรอมส าหรบการทดสอบการท างานโปรแกรม
7. Build โปรแกรมทเขยน โดยกอนหนานน click ขวา ท Target1 เลอก Options for Target ‘Target1’ ท Tab Output เลอก create hex file โดยเลอกท check box ‘Create Hex file’ File ท ไดจะมชอเหมอนกบชอโปรเจค คอ Lab02.hex สามารถเปลยนแปลงชอไดโดยแกชอ output file ลงในชอง ‘Name of Executable’
9
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
18. ท าการทดลองโดยโปรแกรมลงบนบอรด MCS-51 โดยใชบอรดไมโครคอนโทรลเลอรซงมลกษณะวงจรดงน
a. ตอสายจาก com1 ของ computer เขากบขว RS232 ทบอรดโดยใชสายทแจกใหเทานน ท าการโหลดผานโปรแกรม Flash magic ดงน
10
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
b. เปดโปรแกรม Flash magic โดยท าการตงคาตางๆ ดงน เลอกท Options----> Advanced Options
c. คลกเลอก Use DTR to control RST ออก
11
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
d. ทหมายเลข 1 เลอกรนของ MCS-51 และ com port ใหตรงกบทเราใช ตงคาอนๆ ตามหมายเลข 2 และ 4 ตามรปพรอมทง Browse ไฟลทหมายเลข 3 เลอก Hex file จากนนคลกเลอก Start ทหมายเลข 5แลวโปรแกรมจะให Reset MCS-51 เพอโหลด Hex file ลงอปกรณ
e. กดป ม reset ทบอรดไมโครคอนโทรลเลอร
12
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
19. ส าหรบการทดลองท 2.1 และ 2.2 ตอ Port 0 เขากบ connector D0-D7 และ Port 1 เขากบ connector A0-A3 ของบอรด 7-segment และตอ switch 2 ตวเขากบ P3.2 และ P3.3 (บอรด MCS-51จะมขว ground อย 3 อน)
5V Gnd Gnd 5V
20. เมอท าการทดลองเสรจแลวท าแบบฝกหดสงใหครชางตรวจใหคะแนน
การทดลองท 2.1_________________________________________________________________________
/* Filename lab02_1.C
Description Test Output 7 Segments
Hardware P89v52RD2
Clock 11.0592 MHz
Number of oscillations per instruction 12
Compiler Keil C51 v8 */
#include<reg51.h>
#include <intrins.h>
#include <absacc.h>
unsigned char Select;
unsigned char code data7[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};
/********** BASIC FUNCTION **********/
void dmsec (unsigned int count) // mSec Delay
{ unsigned int i; // Keil CA51 (x2)
while (count) {
i = 230; while (i>0) i--;
count--; }
}
/********** MAIN PROGRAM **********/
void main()
{
unsigned int j;
while(1)
{ for (j=0;j<=7;j++)
{
Select = j;
P0 = data7[j];
P1=Select;
dmsec(1000);
dmsec(500); }
}
}
305381 Microcontroller Interface Lab 2 13
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
แบบฝกหด
1. เขยนโปรแกรมเพอให 7 segment ตดเปนชอตวเอง
การบาน
1. เขยน Flowchart อธบายการท างานของโปรแกรมท 2.1, 2.2, 2.3, 2.4 และแบบฝกหด
Reference
http://www.keil.com/support/man/docs/c166/c166_libref.htm
305381 Microcontroller Interface Lab 2 14
ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร
ENB
ENB
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
a
b
c
d
e
f
g
h
1/e
2/d
4/c
5/h
6/b
7/a
9/f
10/g
R 220
1
2
4
5
6
7
9
10
1
2
4
5
6
7
9
10
1
2
4
5
6
7
9
10
1
2
4
5
6
7
9
10
1
2
4
5
6
7
9
10
1
2
4
5
6
7
9
10
1
2
4
5
6
7
9
10
74LS541
P015
P114
13P2
12P3
Q0
Q1
Q2
Q3
1
2
3
4
Q4
Q5
Q6
Q7
5
6
7
9
74LS145
3 or 83 or 8 3 or 8 3 or 8 3 or 8 3 or 8 3 or 8 3 or 8
D4
D3
D2
D7
D1
D0
D5
D6
19
A0
A1
A2
A3