14
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 ดวงมาเรียงกัน ดังรูป

การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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 ดวงมาเรยงกน ดงรป

Page 2: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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

Page 3: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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

Page 4: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

4

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

Page 5: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

5

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

3. เลอก CPU : Philips P89C51RD2xx

Page 6: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

6

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

4. จากนนคลกทป มวงกลมสแดง เพอสรางหนาตางส าหรบเขยนโปรแกรม( หนาตาง Text1 ) สรางไฟลใหม เขยนโปรแกรมและ save โดยใชชอ Lab02_x.c (x แทนหมายเลขการทดลอง )

Page 7: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

7

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

5. คลกขวาท Source Group 1 แลวเลอก Add file to group ‘Source Group 1’ แลวเลอก File Lab02_x.c

Page 8: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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’

Page 9: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

9

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

18. ท าการทดลองโดยโปรแกรมลงบนบอรด MCS-51 โดยใชบอรดไมโครคอนโทรลเลอรซงมลกษณะวงจรดงน

a. ตอสายจาก com1 ของ computer เขากบขว RS232 ทบอรดโดยใชสายทแจกใหเทานน ท าการโหลดผานโปรแกรม Flash magic ดงน

Page 10: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

10

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

b. เปดโปรแกรม Flash magic โดยท าการตงคาตางๆ ดงน เลอกท Options----> Advanced Options

c. คลกเลอก Use DTR to control RST ออก

Page 11: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

11

ภาควชาวศวกรรมไฟฟาและคอมพวเตอร มหาวทยาลยนเรศวร

d. ทหมายเลข 1 เลอกรนของ MCS-51 และ com port ใหตรงกบทเราใช ตงคาอนๆ ตามหมายเลข 2 และ 4 ตามรปพรอมทง Browse ไฟลทหมายเลข 3 เลอก Hex file จากนนคลกเลอก Start ทหมายเลข 5แลวโปรแกรมจะให Reset MCS-51 เพอโหลด Hex file ลงอปกรณ

e. กดป ม reset ทบอรดไมโครคอนโทรลเลอร

Page 12: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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); }

}

}

Page 13: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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

Page 14: การทดลองที่ การใช้งาน 7-segment11 ภาควิชาวิศวกรรมไฟฟ้าและคอมพิวเตอร์ มหาวิทยาลัยนเรศวร

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