huong dan thuc hanh vdk

76
 BGIÁO DC VÀ ĐÀO TO THC HÀNH VI  ĐIU KHIN Biên son:  ThS. Trn Viết Thng KS. Bùi Hu Hiên www.hutech.edu.vn Tài Liu Lưu Hành Ti HUTECH

Upload: nguyen-hieu

Post on 01-Mar-2016

38 views

Category:

Documents


3 download

DESCRIPTION

Hướng dẫn thực hành VĐK

TRANSCRIPT

Page 1: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 1/76

BỘ GIÁO DỤC VÀ ĐÀO TẠO

THỰC HÀNH 

VI ĐIỀU KHIỂN

Biên soạn: ThS. Trần Viết ThắngKS. Bùi Hữu Hiên

www.hutech.edu.vnTài Liệu Lưu Hành Tại HUTECH

Page 2: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 2/76

 

THỰC HÀNH VI ĐIỀU KHIỂN

Ấn bản 2013

Page 3: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 3/76

Page 4: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 4/76

THỰC HÀNH VI ĐIỀU KHIỂN I 

MỤC LỤC

MỤC LỤC ...................................................................................... I 

TỔNG QUAN VỀ KIT THÍ NGIỆM VI ĐIỀU KHIỂN UP8951 ...................... II BÀI 1: SỬ DỤNG TẬP LỆNH 8951 ................................................................................... 1 

BÀI 2: LED 7 ĐOẠN VÀ BÀN PHÍM ................................................................................11 

BÀI 3: TIMER 8951 & PPI8255A ...................................................................................21 

BÀI 4: NGẮT (INTERRUPT) ..........................................................................................33 

BÀI 5: ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC ............................................................................41 

BÀI 6: ĐIỀU KHIỂN MA TRẬN LED ................................................................................46 BÀI 7: LCD TC1602A ....................................................................................................51

BÀI 8: ADC – DAC ........................................................................................................58 

TÀI  LIỆU THAM KHẢO ....................................................................

Page 5: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 5/76

II TỔNG QUAN VỀ KIT THÍ NGHIỆM VI ĐIỀU KHIỂN uP8951

TỔNG QUAN VỀ KIT THÍ NGHIỆMVI ĐIỀU KHIỂN uP8951

KIT thí nghiệm gồm 10 module bố trí như trên hình 1

1.1  MICROCONTROLLER WITH EXTERNAL RAM:

Là khối điều khiển trung tâm gồm một vi điều khiển AT89C51 có kết nối với RAM

ngoài và một vi điều khiển AT89C2051.

AT89C51 có thể chạy bằng bộ nhớ trong (internal memory dung lượng 4Kb) hoặc

chạy bằng bộ nhớ ngoài (external memory dung lượng 8Kb).

Các socket trên module này bao gồm:

TÊN CHỨC NĂNG

JP7: P1_CPU  PORT 1, CPU 89C51

JP8: P3_CPU  PORT 3, CPU 89C51

JP3: P2_ADDRESS  PORT 2, CPU 89C51

JP1: DATA_CPU  PORT 0, CPU 89C51

JP2: DECODE2_LCD  PORT 0, CPU 89C51

JP4: DECODE1_8255  Tín hiệu giải mã cho PPI 8255A

JP3: P1_89C2051  PORT 1, CPU 89C2051

JP4: P3_89C2051  PORT 3, CPU 89C2051

Page 6: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 6/76

THỰC HÀNH VI ĐIỀU KHIỂN III 

1.2  PPI 8255A:

Module giao tiếp song song, gồm các socket sau:

TÊN CHỨC NĂNG

JP9: DATA_8255  DATA BUS, 8255A

JP10: CTRL_8255  Các tín hiệu điều khiển 8255A

JP11: PA_8255  PORT A, 8255A

JP12: PB_8255  PORT B, 8255A

JB13: PC1_8255  PORT C, 8255A

JB14: PC2_8255  PORT C, 8255A

1.3  COUNTER:

Gồm một socket:

JP15: COUNTER , cung cấp xung cho mạch đếm, dùng để mô phỏng cho bài thí

nghiệm đếm sản phẩm.

1.4  MATRIX LED 8x5:

Module ma trận LED 8 hàng, 5 cột, các bit hàng và cột đều tác dụng ở mức

cao, Các socket bao gồm:

TÊN CHỨC NĂNG

JP24: DATA_MATRIX  8 ĐƯỜNG DATA MA TRẬN LED

JP25: CATHOD BLUE  5 ĐƯỜNG ĐIỀU KHIỂN CỘT LED XANH

JP26: CATHOD RED  5 ĐƯỜNG ĐIỀU KHIỂN CỘT LED ĐỎ

Page 7: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 7/76

IV TỔNG QUAN VỀ KIT THÍ NGHIỆM VI ĐIỀU KHIỂN uP8951

1.5  LED _ LCD TC1602A:

Gồm 8 led đơn, 5 ly màu đỏ, tác dụng ở mức cao và một LCD TC1602A, module

gồm các socket sau:

TÊN CHỨC NĂNG

JP27: DATA LED  8 BIT ĐIỀU KHIỂN LED ĐƠN

JP22: DATA LCD  8 BIT DATA CỦA LCD

JP23: CONTROL_LCD  ĐƯỜNG ĐIỀU KHIỂN ĐỌC/ GHI LCD

1.6  LED 7 ĐOẠN:

Module gồm 8 led 7 đoạn cathod chung, các đường DATA vào điều khiển đều tác

động ở mức cao. Các socket:

TÊN CHỨC NĂNG

JP20: DATA_LED7S.  8 BIT DATA CỦA LED 7 ĐOẠN

JP21: CONTROL_LED7S  8 BIT ĐIỀU KHIỂN LED

1.7  STEP MOTOR:

Gồm một động cơ bước và mạch điều khiển, có một socket:

JP28: STEP_MOTOR, các đường điều khiển đều tác động ở mức cao.

1.8  CONTROL_KEYBOARD:

Gồm 4 phím nhấn, có một socket:

JP29: DATA_SW

1.9  DAC0808:

Page 8: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 8/76

THỰC HÀNH VI ĐIỀU KHIỂN V 

Gồm một mạch DAC 8 bit sử dụng IC DAC0808, ngõ ra của mạch nối với một LED

5 ly, dung để điều khiển độ sang của LED theo giá trị số ở ngõ vào. Module có một

socket:

JP18: DATA_DAC, gồm 8 bit data của bộ biến đổi Số – Tương tự.

1.10  ADC0804:

Gồm một ADC 8 bit sử dụng IC ADC0804, ngõ vào tương tự là bộ cảm biến nhiệt

độ dùng LM335, module gồm hai socket:

TÊN CHỨC NĂNG

JP16: DATA_ADC  8 BIT NGÕ RA SỐ

JP17: CONTROL_ADC  CÁC ĐƯỜNG TÍN HIỆU ĐIỀU KHIỂN

Page 9: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 9/76

VI TỔNG QUAN VỀ KIT THÍ NGHIỆM VI ĐIỀU KHIỂN uP8951

PPI-8255A

PC2

PC7

PC5

PC3

JP12

P B _ 8 2  5  5 

12345678

PC1

PC2

PC5

JP14

P  C2  _ 8 2  5  5 

12345678

PC4

PC6PC7

PC4

PC0

PC3

PC6

PC1

JP10DE  C ODE  _ 8 2  5  5 

12345678

JP11

P A _ 8 2  5  5 

123

45678

PC0

JP9

DAT A _ 8 2  5  5 

123

45678

U3

8255

343332

3130292827

432

140393837

1819202122232425

1415161713121110

536

98

35

6

D0D1

D2D3D4D5D6D7

PA0PA1

PA2PA3PA4PA5PA6PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

RDWR

 A0 A1RESET

CS

JP13

P  C1  _ 8 2  5  5 

12345678

SƠ ĐỒ NGUYÊN LÝ CÁC KHỐI:

D4

JP1

DAT A _ CP  U

12345678

C6

33p

VCC

     D     1

A11

A5

A0

VCC

A8

INT1

 Y7

D6D6

     A     9

     W     R

     R     X     D

    P    1

 .    1

R64270

RD

D2

U 5 74 LS13 8

123

15141312111097

645

 ABC

Y0Y1Y2Y3Y4Y5Y6Y7

G1G2AG2B

     P     1 .     0

JP7

     P     1_

     C     P     U

12345678

     D    7

R61 2K2

A15

U6 A 7 4L S0 8

1

23

     T     1

P1.0

A14

RD

A9

RESET

A10

C8

10uF

Y2

11,0592Mhz

PSEN

R N6 1 0K

    1 2 3 4 5   6 7 8 9

<Doc> <Rev Code>

MICROCONTROLLER WITH EXTERNAL RAM

B

1 1Monday, July 24, 2006

Title

Size Document Number Rev

Date: Sheet of  

T1

TXD1

WR

     P     1 .     2

A1

JP5

P 1  _ 8  9  C2  0  5 1 1

2345678

     A     1    5

 Y5

P1.7

 Y3

D2

U23

 AT89C2051

1

54

1213141516171819

236789

11

RST/VPP

XTAL1XTAL2

P1.0/AIN0P1.1/AIN1

P1.2P1.3P1.4P1.5P1.6P1.7

P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.7

JP4DE  C ODE 1  _ 8 2  5  5 

1

2345678

 Y4

Y1

11,0592Mhz

R62 2K2

RXD

 Y1

A8

A12

C9

10uF

P1.3

     A     1     1

     P     1 .     3

TXD1

P1.5

P1.6

TXD

(0000H - 1FFFH)

     R     D

 Y8

RN310K

    1 2   3 4 5 6 7 8 9

A13

R60 2K2

D17

READY

P C

INTERFA

 CE

A3

A15

     D     0

A7

VCC

     A     1     2

JP3

P 2  _ADDRE  S  S 

12345678

A13

 C OMP

 ORT

2  0  5 1 

A12

     I     N     T     1

U6C

7408

    9 1    0

    8

 Y2

     A     1     4

     D     4

D1

     I     N     T     0

VCC

A14

R63270

     A     1     3

    P    1

 .    0

D5

A11

DB  9  _2  (  M al   e )  

594837261

A1

RXD1

D19

DATA LOAD

     P     1 .    7

T0

RXD

DB  9  _1  (  F  em al   e )  

594837261

R19 100

A10

INT0

     D    5

U6B

7408

    4 5

    6R59 2K2

VCC

C15

10p

D7

A4P1.4

C10

10uF

C5

10p

     D     3

     D     6

A2

 Y6

D4

A6

     P     1 .     4

RN410K

    1 2 3 4 5 6 7 8 9

RN7 10K

    1    2    3    4    5    6    7    8    9

     T     X     D

SW1

MEMORY SELECTION

1 2C7 10uF/50V

RN510K

    1 2 3 4 5 6 7 8 9

    R    E    S    E    T

A0

U20

MAX232

134526

12

9

11

10

13

8

14

7

C1+C1-C2+C2-V+V-

R1OUT

R2OUT

T1IN

T2IN

R1IN

R2IN

T1OUT

T2OUT

P1.2

D7

     P     1 .     1

D5

U2

SN74LS374

3478

13141718

111

256912151619

D0D1D2D3D4D5D6D7

OELE

Q0Q1Q2Q3Q4Q5Q6Q7

WR

P1.1

     P     1 .     6

TXD

R28 10K

     D     2

     P     1 .    5

U1 AT89C51

    9

18

19

2930

    3    1

12345678

2122

232425262728

1011121314

151617

3938373635343332

    R    S    T

XTAL2

XTAL1

PSEN ALE/PROG

    E    A    /    V    P    P

P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7

P2.0/A8

P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15

P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1

P3.6/WRP3.7/RD

P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7

RESET SW

JP6

     P     3_

     8     9     C     2     0     5     1

12345678

C23

10p

RXD1

D3

     A     8

     A     1     0

D3

WR Y2

JP8

     P     3_

     C     P     U

12345

678

VCC

D0

D1

C11

10uF

     T     0

A9

D0

U4 6264

109876543

25242123

2

1112131516171819

22272026

 A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11

 A12

D0D1D2D3D4D5D6D7

OEWECS1CS2

RD

R67 10K

RN210K

    1 2 3 4 5 6 7 8 9

 

Page 10: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 10/76

Page 11: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 11/76

VIII TỔNG QUAN VỀ KIT THÍ NGHIỆM VI ĐIỀU KHIỂN uP8951

R16270

R14 4K7

R15270

Q4TIP122

Q2TIP122

VCC

R13 4K7

D6

LED3

D5

LED4

MG1

MOTOR STEPPER

123

    4 5 6

VCC

D2

4007

D7

LED2

D8

LED1

R18270

JP28

     S     T     E     P_

     M     O     T     O     R   1

2345678

Q1TIP122

R11 4K7

D4

4007

R17220

D3

4007

Q3TIP122

D1

4007

R12 4K7

 

INC

JP29

DAT A _ S W

12345678

MODE

C19

101

ENTER

C21

101

DEC

C20

101

C22

101

 

Page 12: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 12/76

THỰC HÀNH VI ĐIỀU KHIỂN IX 

C16CAP

R54

5K

     -

     +

U22A

JR4558

3

21

    8

    4

R56 2K7

D21

5V1

C12

100uF

R52 10

U21 DAC0808

1

3

16

    1    4

    1    5

2

    1    3

56

789

101112

4

GND

VEE

COMPS

    V    R    E    F    +

    V    R    E    F

  - Iout

    V    C    C

D7D6

D5D4D3D2D1D0

Iout

R68270

+12VDC

R572K7

C14

104

R58150

C17

104

D22

LED

R512K7

JP18

     D     A

     T     A_

     D     A     C

12

345678

VCC

R29 10

R55

10K

VCCVCC

R69

2K7

JP19

DAC_OUT

12

     -

     +

U22B

JR4558

5

67

    8

    4

R53 820

D20

4007

-12VDC

C13

104

 

VCC

JP16

DAT A _AD C

12345

678-VCC

-

+

U8AJR4558

3

21

    8

    4

R81K

-

+

U8B JR45585

67

    8

    4

VCC

R3 470KU9

LM35

    2

3

    1

    V    S    +

 ADJ

    G    N    D

R9

1K

-VCC

R1

1K

C2

100uF/25V

JP17   C ONT R OL  _AD C

12345678

VCC

R5 1K

C1

1nF

VCC

VCC

U7

 ADC0804

67

9

111213

1415161718

194

51

23

+IN-IN

VREF/2

DB7DB6DB5DB4DB3DB2DB1DB0

CLKRCLKIN

INTRCS

RDWR

R41K

R71K

R6 1K

VCC

R210K

 

Page 13: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 13/76

Page 14: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 14/76

THỰC HÀNH VI ĐIỀU KHIỂN 1 

BÀI 1: SỬ DỤNG TẬP LỆNH

8051

1.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên làm quen với thiết bị và tìm hiểu một số nhóm lệnh quan trọng

trong tập lệnh của họ 8051

1.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC_uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem các module: microcontroller, led đơn

1.3 TIẾN TRÌNH THÍ NGHIỆM:

1.3.1 Nhóm lệnh di chuyển dữ liệu, lệnh nhảy:a) Nối mạch thí nghiệm:

Nối JP7: P1_CPU trên module Microcontroler với JP27: DATA_LED trên module

LED, các led tương ứng từ led1 đến led8 sẽ nối với các bit P1.0 đến P1.7, các led đều

tác động ở mức cao.

b) Viết các chương trình ứng dụng:

Chương trình 1.1: Chớp tắt 8 led vô hạn lần.

MAIN:

MOV P1,#0FFH ; P1 <- 11111111B, các led đều sáng

CALL DELAY ; gọi chương trình trì hoãn DELAY

Page 15: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 15/76

2  BÀI 1: SỬ DỤNG TẬP LỆNH 8051

MOV P1,#00H ; P1 <- 00000000B, các led đều tắt

CALL DELAY

LJMP MAIN ; nhảy đến MAIN để lập lại quá trình vô hạn

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6, LAP

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R0 trong ngăn xếp

RET ; kết thúc chương trình con

END

 NHẮC LẠI:

DJNZ Ri, <NHÃN>: Ri là một trong các thanh ghi từ R0 -> R7, lệnh giảm nội

dung thanh ghi Ri một đơn vị, nếu Ri > 0 thì nhảy đến NHÃN chỉ định, ngược lại sẽ

chuyển sang thực hiện kế tiếp.

Chương trình 1.2: giống nội dung chương trình 01 nhưng lặp lại quá trình 10 lần.

HƯỚNG DẪN: MOV Ri, # <SỐ LẦN LẶP (1->255)>

NHÃN:

LỆNH 1

LỆNH 2

.

Page 16: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 16/76

THỰC HÀNH VI ĐIỀU KHIỂN 3 

.

LỆNH n

DJNZ Ri,<NHÃN>

CHƯƠNG TRÌNH: 

MOV R7,#10

MAIN:

MOV P1,#0FFH ; P1 <- 11111111B, các led đều sáng

CALL DELAY ; gọi chương trình trì hoãn DELAY

MOV P1,#00H ; P1 <- 00000000B, các led đều tắt

CALL DELAY

DJNZ R7,MAIN

SJMP $ ; “dừng chương trình”

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6, LAP

DJNZ R6, LAP

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R0 trong ngăn xếp

RET ; kết thúc chương trình con

END

Page 17: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 17/76

4  BÀI 1: SỬ DỤNG TẬP LỆNH 8051

c)  BÀI TẬP SV:

Chương trình 1.3: Hiển thị 1 led sáng, dịch dần từ D1 đến D8 vô hạn lần.

Chương trình 1.4: Hiển thị 1 led sáng, dịch dần từ D8 đến D1 với số lần lặp là 6.

1.3.2 Nhóm lệnh quay vòng:a) Nối mạch thí nghiệm:

Nối JP7: P3_CPU trên module Microcontroler vôùi JP27: DATA_LED trên module

LED, các led tương ứng từ led1 đến led8 sẽ nối với các bit P3.0 đến P3.7, các led đều

tác động ở mức cao.

b) Viết các chương trình ứng dụng:

Chương trình 1.5: viết chương trình dịch một led sáng từ D1  D8:

MAIN:

MOV A,#01H

BEGIN:

MOV P3,A

RL A

CALL DELAY

LJMP BEGIN

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6, LAP

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

Page 18: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 18/76

THỰC HÀNH VI ĐIỀU KHIỂN 5 

POP 06 ; lấy lại giá trị cũ của R0 trong ngăn xếp

RET ; kết thúc chương trình con

END

Chương trình 1.6: viết chương trình dịch một led sáng từ D8  D1:

MAIN:

MOV A,#80H

BEGIN:

MOV P3,A

RR A

CALL DELAY

LJMP BEGIN

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6, LAP

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R0 trong ngăn xếp

RET ; kết thúc chương trình con

END

Page 19: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 19/76

6  BÀI 1: SỬ DỤNG TẬP LỆNH 8051

Chương trình 1.7: viết chương trình sáng dần các led từ D1  D8:

MAIN:

MOV A,#01H

BEGIN:

SETB C

MOV P3, A

RLC A

CALL DELAY

JNC BEGIN

LJMP MAIN

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6, LAP

POP 07 ; lấy lại giá trị cũ cuûa R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R0 trong ngăn xếp

RET ; kết thúc chương trình con

END

Chương trình 1.8: viết chương trình sáng dần các led từ D8  D1:

MAIN:

MOV A,#80H

Page 20: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 20/76

THỰC HÀNH VI ĐIỀU KHIỂN 7 

BEGIN:

SETB C

MOV P3, A

RRC A

CALL DELAY

JNC BEGIN

LJMP MAIN

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6,LAP

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R0 trong ngăn xếp

RET ; kết thúc chương trình con

END

c)  BÀI TẬP SV:

Chương trình 1.9: viết chương trình tắt dần các led từ D1 D8.

Chương trình 1.10: viết chương trình tắt dần các led từ D8  D1.

Chương trình 1.11: viết chương trình tắt dần các led từ D8  D1, thực hiện lặp

lại 20 lần.

Page 21: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 21/76

8  BÀI 1: SỬ DỤNG TẬP LỆNH 8051

1.3.3 Nhóm lệnh toán học:a) Nối mạch thí nghiệm:

Nối JP7: P3_CPU trên module Microcontroler vôi JP27: DATA_LED trên module

LED, các led tương ứng từ led1 đến led8 sẽ nối với các bit P3.0 đến P3.7, các led đềutác động ở mức cao.

b) Viết các chương trình ứng dụng:

Chương trình 1.12: Viết chương trình cộng 2 số sau: 12 + 34, hiển thị kết quả

trên các led.

MAIN:

MOV A,#12ADD A,#34

MOV P3,A

SJMP $

END

Chương trình 1.13: Viết chương trình cộng 2 số sau: 12 + 34, hiển thị kết quả

trên các led.

MAIN:

MOV A,#12

SETB C

ADDC A,#34

MOV P3,A

SJMP $

END

So sánh kết quả của chương trình 1 và chương trình 2.

Chương trình 1.14: Viết chương trình chia 2 số 17 cho 3, hiển thị kết quả (phần

nguyên) trên các led.

Page 22: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 22/76

THỰC HÀNH VI ĐIỀU KHIỂN 9 

MAIN:

MOV A,#17

MOV B,#3

DIV AB

MOV P3,A

SJMP $

END

Chương trình 1.15: Viết chương trình chia 2 số 17 cho 3, hiển thị kết quả (phần

dư) trên các led.

MAIN:

MOV A,#17

MOV B,#3

DIV AB

MOV P3,B

SJMP $

END

Chương trình 1.16: Viết chương trình nhân 2 số 23 cho 14, hiển thị kết quả

(byte thấp) trên các led.

MAIN:

MOV A,#7

MOV B,#14

MUL AB

MOV P3,A

SJMP $

END

Page 23: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 23/76

10  BÀI 1: SỬ DỤNG TẬP LỆNH 8051

Chương trình 1.17: Viết chương trình nhân 2 số 23 cho 14, hiển thị kết quả

(byte cao) trên các led.

MAIN:

MOV A,#7

MOV B,#14

MUL AB

MOV P3,B

SJMP $

END

Page 24: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 24/76

THỰC HÀNH VI ĐIỀU KHIỂN 11 

BÀI 2: LED 7 ĐOẠN & BÀN

PHÍM

2.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên tìm hiểu cách hiển thị thông tin trên led 7 đoạn bằng phương

pháp quét và xử lý thông tin trên bàn phím điều khiển.

2.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC_uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch điều khiển led 7 đoạn và bàn phím

-  74244 là IC đệm một chiều 8 bit với ngõ vào là Ai và ngõ ra là Yi tương ứng:

OE AI  YI

1 X Z

0 0 0

0 1 1

X: mức logic 1 hoặc 0

Z: trạng thái cách ly (tổng trở cao)

-  2803 là IC đệm đảo công suất, bên trong gồm một dãy 8 transistor có cấu

trúc như sau:

OUT1

GND

IN1

 

Page 25: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 25/76

12  BÀI 2: LED 7 ĐOẠN & BÀN PHÍM

e

   g

 b   e f

   p   o

    i   n    t

   a d f

 point

g

    b

c

COM 

   c

a

C21

101

JP29

DAT A _ S W

12345678

ENTERDECINC MODE

C22

101

C20

101

C19

101

Dòng điện IC cực đại là 500mA, chân GND của 8 transistor được nối chung và đưa

ra tại chân số 9 của IC.

-  LED 7 đoạn dung trong mạch là loại cathod chung có cấu trúc như sau:

S8

S1

S6

JP21

     C     O     N     T     R     O     L_

     L     E     D     7     S

12345678

S7

S1

S7

S6

S3

S8

S4

S5

S6

S5

S2

S7

S4 S4

S5

LED6

764219

105

    3 8

abcdef gp   C

    1    C    2

S6

S7

S1

S4

S5

JP20

DATA_LED7S

12345678

S4

S1

S6

S4

S3

LED2

764219

105

    3 8

abcdef gp   C

    1    C    2

S1

R20 150 X8

S5

S1S2

S5

LED4

764219

105

    3 8

abcdef gp   C

    1    C    2

S3

U13 74LS244

2468

1

18161412

11131517

9753

19

 A1 A2 A3 A4

1OE

Y1Y2Y3Y4

 A5 A6 A7 A8

Y5Y6Y7Y8

2OE

S3

S4

S6

S2

LED3

764219

105

    3 8

abcdef gp   C

    1    C    2

LED8

764219

105

    3 8

abcdef gp   C

    1    C    2S8

S2S2

S7

S6

LED5

764219

105

    3 8

abcdef gp   C

    1    C    2

S1

S8 S8

U12

ULN2803

10

12345678

1817161514131211

COM

IN1IN2IN3IN4IN5IN6IN7IN8

OUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8

S4

S8

S3

S2

S7

S1

S7

S3

S8

S5

LED1

764219

105

    3 8

abcdef gp   C

    1    C    2

S7

S5

S6

S2 S2

S3

LED7

764219

105

    3 8

abcdef gp   C

    1    C    2S8

S3

 

2.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

-  Nối JP29(DATA_SW) của bàn phím với P3_CPU (port 3 8951)

-  Nối P1_CPU với JP20 (DATA_LED7S)

-  Nối P2_ADDRESS với JP21 (CONTROL_LED7S)

Page 26: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 26/76

THỰC HÀNH VI ĐIỀU KHIỂN 13 

b) Viết các chương trình ứng dụng:

  Viết chương trình hiển thị thông tin trên led 7 đoạn:

Chương trình 2.1: viết chương trình hiển thị số 5 trên LED1:

SỐD7 D6 D5 D4 D3 D2 D1 D0 Giá trị

HEXp G f e d c b a

0

1

2

3

4

5 0 1 1 0 1 1 0 1 6DH

6

7

8

9MAIN:

MOV P2,#00H ; tắt các led

MOV P1,#6DH ; đặt DATA số 5 ra P1

MOV P2,#01H ; mở nguồn led1

SJMP $

END

Chương trình 2.2: viết chương trình hiển thị số 54 trên 2 led 7 và 8.

 HƯỚNG DẪN: theo sơ đồ nguyên lý ở trên, ta thấy không thể hiển thị 2 thông

tin khác nhau trên 2 led tại cùng thời điểm. Do đó: tại mỗi thời điểm (khoảng vài ms)

ta hiển thị thông tin trên 1 led, sau đó tắt led và chuyển sang hiển thị thông tin khác

Page 27: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 27/76

14  BÀI 2: LED 7 ĐOẠN & BÀN PHÍM

trên led kế tiếp. Thực hiện quá trình này liên tục, do hiện tượng lưu ảnh của mắt sẽ

thấy hai thông tin được hiển thị đồng thời.

MAIN:

MOV P2,#00H ; tắt các led

BEGIN:

MOV P1,#6DH ; đặt DATA 5 ra P1

SETB P2.6 ; mở nguồn led 7

CALL DELAY ; trì hoãn để mắt lưu ảnh thông tin

CLR P2.6 ; tắt nguồn led 7

MOV P1,#66H ; đặt thông tin DATA 4 ra P1

SETB P2.7 ; mở nguồn led 8

CALL DELAY ; trì hoãn để mắt lưu ảnh

CLR P2.7 ; tắt nguồn led 8

LJMP BEGIN ; lặp lại quá trình vô hạn

DELAY: ; chương trình DELAY ~ 1msPUSH 07H

MOV R7,#100

DJNZ $

POP 07H

RET

END

Chương trình 2.3: viết chương trình hiển thị các số tăng dần từ 0 9 trên led 8.

HƯỚNG DẪN:

MOVC A,@A+DPTR ; là lệnh gán vào thanh ghi A nội dung ô nhớ chương trình

có địa chỉ = (nội dung hiện tại của A + nội dung thanh ghi DPTR), ví dụ: A = 20 và

Page 28: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 28/76

THỰC HÀNH VI ĐIỀU KHIỂN 15 

DPTR = 1000 => A  (1020); lệnh này trong chương trình sau dùng để đổi nội dung

một ô nhớ (có giá trị từ 0 đến 9) sang mã 7 đoạn của số đó.

CNT EQU 127 ; khai báo biến CNT tại ô nhớ RAM 127

MAIN:MOV P2,#00H ; tắt các led

MOV CNT,#0 ; khởi động biến đếm = 0

MOV DPTR,#MA_7S ; lấy địa chỉ đầu bảng mã 7 đoạn

BEGIN:

MOV A,CNT

MOVC A,@A+DPTR ; đổi nội dung CNT ra mã 7 đoạn

MOV P1,A ; đặt mã 7 đoạn ra P1

SETB P2.7 ; mở nguồn led8

CALL DELAY ; trì hoãn

INC CNT ; tăng nội dung biến đếm

MOV A,CNT

CJNE A,#10,BEGIN ; nếu biến < 10 thì tiếp tục hiện thi

MOV CNT,#0 ; nếu biến = 10 thì gán về 0

LJMP BEGIN

DELAY:

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếpMOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

DJNZ R6, LAP

Page 29: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 29/76

16  BÀI 2: LED 7 ĐOẠN & BÀN PHÍM

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R6 trong ngăn xếp

RET ; kết thúc chương trình con

MA_7S: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

BÀI TẬP: 

Chương trình 2.4: viết chương trình hiển thị: 15-10-06 trên 8 led.

Chương trình 2.5: viết chương trình hiển thị các số tăng dần từ 00 – 99 trên 2

led 1 và 2.

HƯỚNG DẪN: dùng 1 ô nhớ chứa số đếm, trước khi hiển thị nội dung ô nhớ, ta

phải đổi ra thành 2 số thập phân (0 -9), sau đó lần lượt đổi từng số thập phân sang

mã 7 đoạn và quét trên 2 led:

CNT EQU 127

DONVI EQU 126

CHUC EQU 125

DOI_SO:

PUSH ACC

PUSH B

MOV A,CNT

MOV B,#10

DIV AB

MOV CHUC,A

MOV DONVI,B

POP B

POP ACC

RET

Page 30: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 30/76

THỰC HÀNH VI ĐIỀU KHIỂN 17 

  Thực hành điều khiển các phím:

Phím SW1 nối chân P3.0; SW2 nối chân P3.1; SW3 nối chân P3.2; SW4 nối chân

P3.3.

Chương trình 2.6: Viết chương trình thực hiện:-  Nhấn SW1: hiển thị số 3 trên led8

-  Nhấn SW2: hiển thị số 7 trên led8

-  Nhấn SW3: tắt các thông tin đang hiển thị

HƯỚNG DẪN: dùng lệnh JNB bit, <NHÃN> để kiểm tra phím nhấn;

ví dụ:

JNB P3.0, HT3 (hiển thị 3); nếu SW1 nhấn thì logic tại P3.0 là 0, nên lệnh này

thỏa điều kiện nhảy đến nhãn HT3, ngược lại sẽ thực hiện lệnh kế tiếp.

SW1 BIT P3.0 ; khai báo kiểu BIT: SW1  P3.0

SW2 BIT P3.1

SW3 BIT P3.2

MAIN:

MOV P2,#00H ; tắt các led

SETB P2.7 ; mở nguồn led8

BEGIN:

JNB SW1,HT3 ; nếu SW1 nhấn thì  HT3

JNB SW2,HT7

JNB SW3,TAT

LJMP BEGIN

SW1:

MOV P1,#4FH ; hiển thị số 7

LJMP BEGIN ; trở về tiếp tục kiểm tra phím

SW2:

Page 31: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 31/76

Page 32: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 32/76

THỰC HÀNH VI ĐIỀU KHIỂN 19 

LJMP BEGIN

TANG:

INC CNT

MOV A,CNT

CJNE A,#10,TROVE

MOV CNT,#0

TROVE:

CALL DELAY

LJMP BEGIN

GIAM:

DEC CNT

MOV A,CNT

CJNE A,#255,TROVE

MOV CNT,#0

LJMP TROVE

DELAY:

PUSH 05 ; cất nội dung R5 vào ngăn xếp

PUSH 06 ; cất nội dung R6 vào ngăn xếp

PUSH 07 ; cất nội dung R7 vào ngăn xếp

MOV R5,#2

LAP1:

MOV R6,#255

LAP:

MOV R7,#255

DJNZ R7,$ ;  X: DJNZ R7,X

Page 33: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 33/76

20  BÀI 2: LED 7 ĐOẠN & BÀN PHÍM

DJNZ R6, LAP

DJNZ R5,LAP1

POP 07 ; lấy lại giá trị cũ của R7 trong ngăn xếp

POP 06 ; lấy lại giá trị cũ của R6 trong ngăn xếp

POP 05 ; lấy lại giá trị cũ của R5 trong ngăn xếp

RET ; kết thúc chương trình con.

MA_7S: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

BÀI TẬP: 

Chương trình 2.8:  giống chương trình 1 nhưng hiển thị các số thay đổi trong

khoảng 00 – 99.

Page 34: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 34/76

THỰC HÀNH VI ĐIỀU KHIỂN 21 

BÀI 3: TIMER HỌ 8951 &

PPI8255A

3.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên tìm hiểu về timer trong họ 8951 và IC giao tiếp song song có lập

trình điều khiển PPI8255A.

3.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC_uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch điều khiển led 7 đoạn và bàn phím

-  Xem các module: microcontroller, PPI8255 và led 7 đoạn

 Tìm hiểu cấu trúc timer trong vi điều khiển: 

Vi điều khiển 89C51 có hai thanh ghi timer/counter 16 bit. Các thanh

ghi này có thể hoạt động ở một trong hai trạng thái timer hoặc counter. Mỗi

thanh ghi gồm 2 thanh ghi 8 bit ghép lại:

TLx : 8 BIT

PULSE INPUT

THx : 8 BIT

 

Cấu trúc của bộ Timer/ Counter trong 89C51 như hình sau:

Page 35: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 35/76

22  BÀI 3: TIMER HỌ 8951 & PPI8255A

Hoạt động của bộ Timer/Counter được điều khiển bởi hai thanh ghi TCON và

TMOD.

a) Thanh ghi TCON (timer control): 

Là thanh ghi 8 bit, có thể truy xuất byte hoặc bit

IE1

3

TF0 IE0

6

TF1

2

IT0

4

TR1

1

TR0

7 0

IT1

5

 

  TF1: báo trạng thái tràn cho bộ Timer/Counter1.

  TR1: điều khiển cấp xung cho bộ Timer/Counter1.

  TF0: báo trạng thái tràn cho bộ Timer/Counter0.

  TR0: điều khiển cấp xung cho bộ Timer/Counter0.

  IE1: không liên quan đến hoạt động của bộ Timer/Counter, bit này dùng để báo

trạng thái ngắt ngoài 1 (khi trạng thái logic thay đổi từ 1 xuống 0 tại chân 13 vi

điều khiển, bit này được đặt lên mức logic 1).

Page 36: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 36/76

THỰC HÀNH VI ĐIỀU KHIỂN 23 

  IT1: không liên quan đến hoạt động của bộ Timer/Counter, bit này cho phép

tác động ngắt ngoài 1 bằng cạnh xuống (default IT1 = 0, tác động ngắt ngoài

bằng mức thấp).

  IE0: không liên quan đến hoạt động của bộ Timer/Counter, bit này dùng để

báo trạng thái ngắt ngoài 0 (khi trạng thái logic thay đổi từ 1 xuống 0 0 tại

chân 12 vi điều khiển, bit này được đặt lên mức logic 1).

  IT0: không liên quan đến hoạt động của bộ Timer/Counter, bit này dùng để báo

trạng thái ngắt ngoài 0 bằng cạnh xuống (default IT1 = 0, tác động ngắt ngoài

bằng mức thấp).

b) Thanh ghi TMOD (timer mode): 

Là thanh ghi 8 bit, chỉ có thể truy xuất byte

ÑIEÀU KHIEÅN TIMER 0

GATE

3

 M1 M1

6

GATE

2

 M0

4

C/T

1

 M0

ÑIEÀU KHIEÅN TIMER 1

7 0

C/T

5

 

  GATE, C/T: điều khiển trạng thái hoạt động cho Timer/Counter (xem sơ đồ ở

trên).

  M1, M0: chọn chế độ hoạt động cho Timer/Counter.

M1 M0 CHẾ ĐỘ(MODE) MÔ TẢ

0 0 0 Timer/Counter 13 bit

0 1 1 Timer/Counter 16 bit

1 0 2 Timer/Counter 8 bit, auto reload

1 1 3 Timer/Counter 8 bit

Page 37: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 37/76

24  BÀI 3: TIMER HỌ 8951 & PPI8255A

  Chế độ 0: 

TLx : 5 BIT

PULSE INPUT

THx : 8 BIT TFx

 

Thanh ghi THx và TLx kết hợp tạo thành bộ Timer/Counter 13 bit, khi tràn 13 bit

thì cờ TFx sẽ đặt lên logic 1.

  Chế độ 1: 

TLx : 8 BIT

PULSE INPUT

THx : 8 BIT TFx

 

  Chế độ 2: 

TFx

THx : 8 BIT

OVERFLOW

TLx : 8 BIT

PULSE INPUT

 

TLx được nạp giá trị ban đầu từ THx và bắt đầu đếm từ giá trị này khi có xung ở

ngõ vào, khi tràn thì TFx sẽ đặt lên logic 1 đồng thời kích hoạt bộ khóa để nạp giá trị

trong THx vào TLx.

  Chế độ 3: 

Page 38: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 38/76

THỰC HÀNH VI ĐIỀU KHIỂN 25 

TL0 : 8 BIT

TR1

TF1TH0 : 8 BIT

PULSE INPUT

OSC:12

TF0

 

Trong chế độ này, TH1 và TL1 không được sử dụng thay vào đó là TH0 và TL0 hoạt

động như 2 bộ Timer 8 bit (TL0) và Timer/Counter 8 bit (TL0). Tuy nhiên, tín hiệu mở

xung cho TH0 không phải là TR0 mà là TR1.

 Tìm hiểu PPI8255A: 

xem sơ đồ mạch trang sau:

CONTROL REGISTER (CR)

DATA BUS PB

PA 

PC

U24

8255

343332

3130292827

4321403938

37

1819202122232425

1415161713121110

536

98

35

6

D0D1D2

D3D4D5D6D7

PA0PA1PA2PA3PA4PA5PA6

PA7

PB0PB1PB2PB3PB4PB5PB6PB7

PC0PC1PC2PC3PC4PC5PC6PC7

RDWR

 A0 A1

RESET

CS

 

-  CS (chip select): tác động thấp cho phép 8255 làm việc, khi CS = 1, tất cả

các tín hiệu ở tổng trở cao.

-  D0 –D7: data bus, cho phép 8255 giao tiếp với hệ thống.

Page 39: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 39/76

26  BÀI 3: TIMER HỌ 8951 & PPI8255A

-  PA0-PA7: 8 chân của port A.

-  PB0-PB7: 8 chân của port B.

-  PC0-PC7: 8 chân của port C, có thể chia làm 2 nhóm: PCL gồm các chân PC0

đến PC3, và PCH gồm các chân PC4 đến PC7.-  A1, A0: các chân địa chỉ. Tại mỗi thời điểm, data bus chỉ có thể giao tiếp dữ

liệu với PA hoặc PB hoặc PC hoặc CR phụ thuộc vào vị trí của chuyển mạch, vị

trí của chuyển mạch được quyết định bởi tín hiệu địa chỉ:

A1 A0 GIAO TIẾP

0 0 DATA BUS --- PA

0 1 DATA BUS --- PB

1 0 DATA BUS --- PC

1 1 DATA BUS --- CR

-  RD (read): tín hiệu cho phép đọc, tác động thấp, cho phép chuyển dữ liệu từ

một trong các port đến data bus.

-  WR(write): tín hiệu ghi, tác động thấp, cho phép chuyển dữ liệu từ data busđến một trong các port hoặc đến CR.

-  RESET: tác động cao, cho phép xóa nội dung cài đặt chế độ hoạt động của

8255.

Khi sử dụng 8255, trước hết phải xác lập cấu hình bằng cách ghi vào CR một

giá trị thích hợp tuỳ theo chế độ làm việc, ở chế độ I/O nội dung CR như sau:

135 0

 ACT

7

0

4

PCH0 0PA 

2

PCL

6

PB

 

trong đó: - ACT: là bit active, có giá trị 1

- bit 5 và bit 6 = 0

- bit 2 = 0

Page 40: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 40/76

THỰC HÀNH VI ĐIỀU KHIỂN 27 

- PA điều khiển port A, PB điều khiển port B, PCL điều khiển 4 chân

thấp của PC, PCH điều khiển 4 chân cao của port C; các bit này nếu đặt ở logic 1 thì

các port tương ứng sẽ là port nhập (không cho phép xuất dữ liệu từ data bus sang),

nếu các bit này là 0 thì các port tương ứng sẽ là port xuất (không thể đọc được dữ

liệu từ các port này), ví dụ: muốn định cấu hình ban đầu cho 8255 với PA xuất, PB

xuất, PCL xuất, PCH nhập thì phải ghi vào CR một byte có giá trị là: 10001000b =

88H.

Địa chỉ các PORT PPI8255 trong hệ thống:

ĐỊA CHỈ GIAO TIẾP

2000H DATA BUS --- PA

2001H DATA BUS --- PB

2002H DATA BUS --- PC

2003H DATA BUS --- CR

3.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

Sinh viên nối dây theo hướng dẫn cụ thể trong từng ứng dụng cụ thể dưới đây.

b) Viết các chương trình ứng dụng:

  Viết chương trình sử dụng timer (tính toán timer sử dụng thạch anh

12Mhz): 

-  Nối JP7 vớ i JP27

-  Kiểm tra cable truyền

Chương trình 3.1: Viết chương trình hiển thị các led sang dần từ D1 đếnD8, với

thời gian Delay 200ms, sử dụng timer0, mode 1.

MAIN: MOV A,#0

Page 41: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 41/76

28  BÀI 3: TIMER HỌ 8951 & PPI8255A

BEGIN: MOV P1,A

CALL DL_200MS

SETB C

RLC A ; dịch bit 1 vào A để sang dần các led

JNC BEGIN

SJMP MAIN

DL_200MS:

PUSH 02

MOV TMOD,#01H

MOV TH0,#HIGH(-10000)

MOV TL0,#LOW(-10000)

MOV R2,#20 ; lặp lại 20 lần

SETB TR0

X1:

CLR TF0

JNB TF0,$

DJNZ R2,X1

POP 02

RET

Chương trình 3.2: tương tự chương trình 3.1, nhưng dùng timer0, mode2.

Chương trình 3.3: tương tự chương trình 3.1 nhưng dùng timer0, mode3.

Chương trình 3.4:  tương tự chương trình 3.1, nhưng thời gian delay là 500ms,

dùng timer1, mode1.

  Viết chương trình điều khiển PPI8255:

- Nối JP1 với JP9

Page 42: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 42/76

THỰC HÀNH VI ĐIỀU KHIỂN 29 

- Nối JP4 với JP10

- Nối JP11 với JP20 (led 7 đoạn)

- Nối JP12 với JP21 (led 7 đoạn)

Chương trình 3.5: Viết chương trình hiển thị các số từ 0 đến 7 trên các led 7

đoạn.

MAIN:

MOV TMOD,#11H

MOV DPTR,#2003H

MOV A,#89H ;10001001, PC: NHAP, PA: XUAT, PB:XUAT

MOVX @DPTR,A

BEGIN:

CALL DISPLAY

LJMP BEGIN

DISPLAY:

PUSH A

MOV A,#3FH

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#01H

MOV DPTR,#2001H

MOVX @DPTR,A

CALL DELAY

MOV A,#0

MOVX @DPTR,A

MOV A,#06H

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#02H

MOV DPTR,#2001H

MOVX @DPTR,A

Page 43: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 43/76

30  BÀI 3: TIMER HỌ 8951 & PPI8255A

CALL DELAY

MOV A,#0

MOVX @DPTR,A

MOV A,#5BH

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#04H

MOV DPTR,#2001H

MOVX @DPTR,A

CALL DELAY

MOV A,#00H

MOVX @DPTR,A

MOV A,#4FH

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#08H

MOV DPTR,#2001HMOVX @DPTR,A

CALL DELAY

MOV A,#0

MOVX @DPTR,A

MOV A,#66H

MOV DPTR,#2000HMOVX @DPTR,A

MOV A,#10H

MOV DPTR,#2001H

MOVX @DPTR,A

CALL DELAY

MOV A,#0

Page 44: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 44/76

THỰC HÀNH VI ĐIỀU KHIỂN 31 

MOVX @DPTR,A

MOV A,#6DH

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#20H

MOV DPTR,#2001H

MOVX @DPTR,A

CALL DELAY

MOV A,#00H

MOVX @DPTR,A

MOV A,#7DH

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#40H

MOV DPTR,#2001H

MOVX @DPTR,A

CALL DELAY

MOV A,#0

MOVX @DPTR,A

MOV A,#07

MOV DPTR,#2000H

MOVX @DPTR,A

MOV A,#80H

MOV DPTR,#2001H

MOVX @DPTR,A

CALL DELAY

MOV A,#0

MOVX @DPTR,A

Page 45: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 45/76

32  BÀI 3: TIMER HỌ 8951 & PPI8255A

POP A

RET

DELAY:

PUSH 00

MOV R0,#100

DJNZ R0,$

POP 00

RET

MA_7D: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

Chương trình 3.6:  Viết chương trình hiển thị NGÀY-THÁNG-NĂM trên 8 led 7

đoạn.

Chương trình 3.7: Viết chương trình hiển thị GIỜ-PHÚT-GIÂY trên 8 led.

Page 46: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 46/76

THỰC HÀNH VI ĐIỀU KHIỂN 33 

BÀI 4: NGẮT (INTERRUPT)

4.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên tìm hiểu và sử dụng các ngắt trong 8951: ngắt timer, ngắt ngoài và

ngắt truyền thông nối tiếp.

4.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC_uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch trên các module: microcontroller, led 7 đoạn, bàn phím,

counter

 DANH SÁCH CÁC NGẮT TRONG 8051:

- Ngắt ngoài 0: 

Địa chỉ vector ngắt 0003H

Khai báo sử dụng ngắt

- SETB EA

- SETB EX0

- SETB IT0 (ngắt cạnh)

Sự kiện ngắtXuất hiện cạnh xuống (hoặc

mức thấp) tại chân INT0

- Ngắt timer0:

Địa chỉ vector ngắt 000BH

Khai báo sử dụng ngắt - SETB EA

Page 47: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 47/76

34  BÀI 4: NGẮT (INTERRUPT)

- SETB ET0

Sự kiện ngắt Tràn timer 0

- Ngắt ngoài 1:

Địa chỉ vector ngắt 00013H

Khai báo sử dụng ngắt

- SETB EA

- SETB EX1

- SETB IT1 (ngắt cạnh)

Sự kiện ngắt Xuất hiện cạnh xuống (hoặcmức thấp) tại chân INT1

- Ngắt timer1:

Địa chỉ vector ngắt 0001BH

Khai báo sử dụng ngắt- SETB EA

- SETB ET1

Sự kiện ngắt Tràn timer 1

- Ngắt truyền thông (truyền/nhận UART):

Địa chỉ vector ngắt 00023H

Khai báo sử dụng ngắt- SETB EA

- SETB ES

Sự kiện ngắt

Nhận được một byte hoặc

truyền xong một byte trong

SBUF

Page 48: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 48/76

THỰC HÀNH VI ĐIỀU KHIỂN 35 

Tốc độ truyền nhận MODE

autoreload (timer1)

- TH1 = -3 ; 9600bps

- TH1 = -6 ; 4800bps

- TH1 = -12 ; 2400bps

- TH1 = -24 ; 1200bps

 SƠ ĐỒ CHƯƠNG TRÌNH KHI CÓ SỬ DỤNG NGẮT:

4.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

Sinh viên nối dây theo hướng dẫn cụ thể trong từng ứng dụng cụ thể dưới đây.

b) Viết các chương trình ứng dụng:

  Ngắt timer 0: 

-  Nối JP7 với JP20

-  Nối JP3 với JP21

Chương trình 4.1: Viết chương trình hiển thị các số tăng dần từ 00-99 trên

2 led 7 và 8 (sử dụng ngắt timer0 để quét led).

CNT EQU 120

KHAI BÁO NGẮT

Sự kiện ngắt

Vector ngắt:...RETI

Page 49: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 49/76

36  BÀI 4: NGẮT (INTERRUPT)

LED7 EQU 121

LED8 EQU 122

POS EQU 123

LJMP MAIN

ORG 000BH

LJMP QUET_LED

MAIN:

MOV TMOD,#11H

MOV TH0,#HIGH(-5000)

MOV TL0,#LOW(-5000)

MOV CNT,#0

MOV R0,#LED7

MOV POS,#40H

SETB EA

SETB ET0

SETB TR0

BEGIN:

CALL HEX_7S

CALL DL_300MS

INC CNT

MOV A,CNT

CJNE A,#100,BEGIN

MOV CNT,#0

LJMP BEGIN

;------- chương trình đổi số hex sang 2 mã 7 đoạn đặt vào LED1, LED2-----

Page 50: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 50/76

THỰC HÀNH VI ĐIỀU KHIỂN 37 

HEX_7S:

.

.

RET

;------ chương trình delay 300ms dùng timer1------------------------------------

DL_300MS:

.

.

RET

; ------- chương trình ngắt timer0--------------------------------------------------

QUET_LED:

PUSH PSW

PUSH ACC

MOV TH0,#HIGH(-5000)

MOV TL0,#LOW(-5000)

MOV P2,#00H ; tắt các led

MOV DPTR,#LED_7S

MOV A,@R0

MOV P1,A

MOV A,POS

MOV P2,A

RL A

MOV POS,A

INC R0

CJNE R0,#123,EXIT

Page 51: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 51/76

38  BÀI 4: NGẮT (INTERRUPT)

MOV R0,#LED7

MOV POS,#40H

EXIT:

POP ACC

POP PSW

RETI

LED_7S: DB …………………….

END

Chương trình 4.2: Viết chương trình điều khiển đèn giao thông với các thông số:

thời gian đèn xanh: 15s, thời gian đèn vàng 3 giây (dùng ngắt timer0).

  Ngắt ngoài 01:

-  Nối JP7 với JP20

-  Nối JP3 với JP21

-  Nối JP8 với JP15Chương trình 4.3:  Viết chương trình đếm số xung tạo ra bởi mạch COUNTER,

hiển thị số đếm trên 8 led dạng: cnt—000 (dùng ngắt ngoài 1 để đếm và ngắt timer0

để quét led).

CNT EQU 127

LED1 EQU 126

LED2 EQU 125LED3 EQU 124

LED4 EQU 123

LED5 EQU 122

LED6 EQU 121

LED7 EQU 120

Page 52: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 52/76

THỰC HÀNH VI ĐIỀU KHIỂN 39 

LED8 EQU 119

POS EQU 118

LJMP MAIN

ORG 000BH

LJMP QUET_LED

ORG 0013H

LJMP COUNTER

MAIN:

MOV TMOD,#11H

MOV CNT,#0

MOV POS,#01H

MOV R0,#LED1

SETB EA

SETB IT1

SETB EX1

SETB ET0

.

.

;------ chương trình ngắt ngoài 1--------------------------------

COUNTER:

INC CNT

RETI

  Ngắt truyền thông: 

-  Nối JP7 với JP27

-  Nối JP3 với JP29

Page 53: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 53/76

40  BÀI 4: NGẮT (INTERRUPT)

Chương trình 4.4: Viết chương trình thực hiện:

-  Nhấn SW1: tăng nội dung ô nhớ 1 đơn vị, hiển thị ra led đơn và truyền về

máy tính

-  Nhấn SW2 giảm nội dung ô nhớ một đơn vị, hiển thị ra led và truyền về PC

-  Chương trình cho phép nhận 4 byte truyền đến từ PC và hiển thị ra led

(tốc độ truyền 4800bps,n,8,1; sử dụng ngắt truyền thông).

Page 54: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 54/76

THỰC HÀNH VI ĐIỀU KHIỂN 41 

BÀI 5: ĐIỀU KHIỂN ĐỘNG CƠ

BƯỚC

5.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên tìm hiểu stepper motor và điều khiển hoạt động của động cơ này.

5.2 CHUẨN BỊ THÍ NGHIỆM:

-  Bộ thí nghiệm DHC_uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch trên các module: microcontroller, led 7 đoạn, PPI8255, bàn

phím, stepper motor

 CẤU TẠO ĐỘNG CƠ BƯỚC:

MG1

STEPPER MOTOR

123

    4 5 6

 

Gồm 4 cuộn dây: 1-2, 2-3, 4-5 và 5-6, tất cả có cùng số vòng dây và được chia

thành 2 cuộn cách ly, sơ đồ mạch điều khiển như hình trang sau.

  Điều khiển một bước (1.8 độ):

Page 55: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 55/76

42  BÀI 5: ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC

T1 T2 T3 T4 CHIỀU QUAY

1 0 0 0

0 1 0 0

0 0 1 0

0 0 0 1

1 0 0 0

Ti = 0: transistor ngưng dẫn

Ti = 1: transistor dẫn bão hòa

JP28

     S     T     E     P_

     M     O     T     O     R

  12345678

D8

LED1

R14 4K7

D7

LED2

D1

4007

R12 4K7

R17220

R18270

D5

LED4

R13 4K7

D6

LED3

R16270

Q4TIP122

D4

4007

R11 4K7

R15270

Q1TIP122

D3

4007

VCC

D2

4007

Q3TIP122

VCC

Q2TIP122

MG1

MOTOR STEPPER

123

    4 5 6

 

  Điều khiển nữa bước (0.9 độ):

Thuận Nghịch

Page 56: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 56/76

THỰC HÀNH VI ĐIỀU KHIỂN 43 

T1 T2 T3 T4 CHIỀU QUAY

1 0 0 1

1 0 0 0

1 1 0 0

0 1 0 0

0 1 1 0

0 0 1 0

0 0 1 1

0 0 0 1

1 0 0 1

Ti = 0: transistor ngưng dẫn

Ti = 1: transistor dẫn bão hòa

5.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

Sinh viên nối dây theo hướng dẫn cụ thể trong từng ứng dụng cụ thể dưới đây.

b) Viết các chương trình ứng dụng:

Chương trình 5.1: Viết chương trình điều khiển động cơ quay thuận (quay

từng bước) với tốc độ 6 vòng/ phút.

MAIN:

MOV R2,#4

MOV A,#01H

Thuận Nghịch

Page 57: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 57/76

44  BÀI 5: ĐIỀU KHIỂN ĐỘNG CƠ BƯỚC

BEGIN:

MOV P1,A

CALL DL_50MS

RL A

DJNZ R2, BEGIN

LJMP MAIN

;-----chương trình delay 50ms dùng timer 0------------------------------

DL_50MS:

.

.

RET

END

Chương trình 5.2: Giảm từng bước thời gian delay của CT5.1, cho biết tốc

độ quay nhanh của động cơ bước này.

Chương trình 5.3: Chương trình điều khiển động cơ quay thuận (nửa bước).

MAIN:

MOV R2,#0

MOV DPTR,#DU_LIEU

BEGIN:

MOV A,R2

MOVC A,@A+DPTR

MOV P1,A

CALL DL_500MS

INC R2

Page 58: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 58/76

THỰC HÀNH VI ĐIỀU KHIỂN 45 

CJNE R2,#8,BEGIN

LJMP MAIN

;-----chương trình delay 500ms dùng timer 1------------------------------

DL_500MS:

.

.

RET

DU_LIEU: DB ……….

END

Chương trình 5.4:  Viết chương trình thực hiện:

-  Nhấn SW1: quay thuận (1 bước)

-  Nhấn SW2: quay nghịch (1 bước)

-  Nhấn SW3: dừng

-  (mặc định: động cơ dừng)

Chương trình 5.5: Viết chương trình cho phép nhập vào số bước (lưu trong mộtô nhớ RAM) dùng SW1 (tăng 10 đơn vị ), SW2 (giảm một đơn vị), nội dung ô nhớ

hiển thị trên LED1-LED8: Count. 000; nhấn SW3 động cơ quay thuận với số bước đã

đặt; nhấn SW4 động cớ quay nghịch với số bước đã đặt; trong khi quay, số đếm trên

các LED giảm dần, khi giảm đến 0 thì động cơ dừng; trong khi quay: không cho phép

thao tác phím.

Page 59: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 59/76

46  BÀI 6: ĐIỀU KHIỂN MA TRẬN LED

BÀI 6: ĐIỀU KHIỂN MA TRẬN

LED6.1 MỤC ĐÍCH YÊU CẦU:

Giúp sinh viên tìm hiểu led ma trận 2 màu và phương pháp hiển thị thông tin

nhiều màu trên led.

6.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC-uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch trên các module: microcontroller, led ma trận, PPI8255, bàn

phím.

 SƠ ĐỒ MẠCH: (xem trang sau)

Hiển thị chữ J trên ma trận LED:

Cột 1 Cột 2 Cột 3 Cột 4 Cột 5

Hàng 01 1 1 1 1 1

Hàng 02 0 0 1 0 0

Hàng 03 0 0 1 0 0

Hàng 04 0 0 1 0 0

Hàng 05 0 0 1 0 0

Page 60: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 60/76

THỰC HÀNH VI ĐIỀU KHIỂN 47 

Hàng 06 0 0 1 0 0

Hàng 07 1 0 1 0 0

Hàng 08 0 1 0 0 0

DATA_MATRIX = 41H, 81H, 7FH, 01H, 01H

CATHODE_BLUE: 01H, 02H, 04H, 08H, 10H, hiển thị màu xanh

CATHODE_RED: 01H, 02H, 04H, 08H, 10H, hiển thị màu đỏ

5VDC

U14

ULN2803

    1    0

    1 2 3 4 5 6 7 8

    1    8

    1    7

    1    6

    1    5

    1    4

    1    3

    1    2

    1    1

    C    O    M

    I    N    1

    I    N    2

    I    N    3

    I    N    4

    I    N    5

    I    N    6

    I    N    7

    I    N    8

    O    U    T    1

    O    U    T    2

    O    U    T    3

    O    U    T    4

    O    U    T    5

    O    U    T    6

    O    U    T    7

    O    U    T    8

Q12

 A1013

C32 104

Q11

 A1013

R33 15K

W1 MATRIX LED 8x5 

MLED1

    1 2 1    3

    1    2

    1    0

    1    8

    3 4 7 1    1

16

15

17

14

8

5

6

9

    B    1

    B    2

    B    3

    B    4

    B    5

    R    1

    R    2

    R    3

    R    4

    R    5

W1

W2

W3

W4

W5

W6

W7

W8

Q9

 A1013

JP25

CATHOD BLUE

    1 2 3 4 5 6 7 8

C27 104

JP26

CATHOD RED

    1 2 3 4 5 6 7 8

C28 104

W6

W2

Q8

 A1013

4007 X 8

Q7

 A1013

R30 15K

W8

W1

C33 104

D25

D24

W5

D27

D26

R36 15K

C29 104

R35 15K

W6

W4

W4

D28

R37 15KW7

Q5

 A1013

Q10

 A1013

D30

U15

ULN2803

    1    0

    1 2 3 4 5 6 7 8

    1    8

    1    7

    1    6

    1    5

    1    4

    1    3

    1    2

    1    1

    C    O    M

    I    N    1

    I    N    2

    I    N    3

    I    N    4

    I    N    5

    I    N    6

    I    N    7

    I    N    8

    O    U    T    1

    O    U    T    2

    O    U    T    3

    O    U    T    4

    O    U    T    5

    O    U    T    6

    O    U    T    7

    O    U    T    8

W2

U16

ULN2803

    1    0

    1 2 3 4 5 6 7 8

    1    8

    1    7

    1    6

    1    5

    1    4

    1    3

    1    2

    1    1

    C    O    M

    I    N    1

    I    N    2

    I    N    3

    I    N    4

    I    N    5

    I    N    6

    I    N    7

    I    N    8

    O    U    T    1

    O    U    T    2

    O    U    T    3

    O    U    T    4

    O    U    T    5

    O    U    T    6

    O    U    T    7

    O    U    T    8

W5

R34 15K

D29

W3

W8

JP24

DATA_MATRIX

    1 2 3 4 5 6 7 8

D23

Q6

 A1013

W3

C30 104

12VDC

C31   104

W7

C34 104

RN1

10K

    1 2 3 4 5 6 7 8 9

R32 15K

R31 15K

 

Page 61: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 61/76

48  BÀI 6: ĐIỀU KHIỂN MA TRẬN LED

6.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

-  Nối JP1 với JP9

-  Nối JP4 với JP10

-  Nối JP8 với JP29

-  Nối JP11 với JP25

-  Nối JP12 với JP26

-  Nối JP13 với JP24

b) Viết các chương trình ứng dụng: 

Chương trình 6.1: Viết chương trình hiển thị chữ J màu xanh trên ma trận

LED.

POS EQU 127

MAIN:

MOV POS,#0

MOV DPTR,#2003H

MOV A,#80H ; định cấu hình 8255 với các port đều xuất

MOVX @DPTR,A

BEGIN:

; ----------------------------------------------------------------------------

MOV A,#0H

MOV DPTR,#2002H ; PC = 0

MOVX @DPTR,A ; TAT LED

MOV A,POS

MOV DPTR,#COT

MOVC A,@A+DPTR

Page 62: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 62/76

THỰC HÀNH VI ĐIỀU KHIỂN 49 

MOV DPTR,#2000H ; PA = 01H

MOVX @DPTR,A

MOV A,POS

MOV DPTR,#DU_LIEU

MOVC A,@A+DPTR

MOV DPTR,#2002H ; PC = DATA

MOVX @DPTR,A

CALL DELAY

INC POS

MOV A,POS

CJNE A,#5,BEGIN

MOV POS,#0

LJMP BEGIN

;------------------------delay---------------------------------

DELAY:

MOV TMOD,#01H

MOV TH0,#HIGH(-100)

MOV TL0,#LOW(-100)

SETB TR0

CLR TF0

JNB TF0,$

CLR TR0

RET

;----------------------------------------------------------------

DU_LIEU: DB 41H, 81H, 7FH, 01H,01H

Page 63: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 63/76

50  BÀI 6: ĐIỀU KHIỂN MA TRẬN LED

COT: DB 01H, 02H, 04H, 08H, 10H

END

c)  BÀI TẬP SV:

Chương trình 6.2:  Hiển thị chữ A màu đỏ trêm ma trận led.

Chương trình 6.3:  Hiển thị chữ H màu cam trên MT led.

Chương trình 6.4: hiển thị các số tăng dần từ 0 – 9 trên ma trận led (dùng ngắt

timer 0 để quét led), thời gian tăng số là 0.5 giây (dùng timer 1).

Chương trình 6.5: Viết chương trình hiển thị chữ T trên ma trận led, chương trình

cho phép thay đổi thời gian quét màu đỏ (dùng SW1), thời gian quét màu xanh (dùng

SW2) để tạo hiệu ứng TRUE COLOR.

Page 64: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 64/76

THỰC HÀNH VI ĐIỀU KHIỂN 51 

BÀI 7: LCD TC1602A

7.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên tìm hiểu LCD và viết chương trình giao tiếp LCD.

7.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC-uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch trên các module: microcontroller, LCD, bàn phím

 SƠ ĐỒ MẠCH: 

THIS IS THE LCD 

2 LINES x 16 CHARACTERS    L     A     M     P

LCD1

    7 8 9 1    0

    1    1

    1    2

    1    3

    1    4

    4 5 6 3 1 2 1    5

    1    6

    D    0

    D    1

    D    2

    D    3

    D    4

    D    5

    D    6

    D    7

    R    S

    R    /    W

    C    S

    C    O    N

    S    T

    G    N    D

    V    C    C

    A K

Q13

 A1013R66 4K7

VCC

JP22DATA_LCD

    1 2 3 4 5 6 7 8

R655/3W

VCC

R10 10K

JP23

CONTROL_LCD

    1 2 3 4 5 6 7 8

 

-  CONST: contrast, chỉnh độ tương phản (độ sáng của hình ảnh trên LCD)

-  CS: chip selection, tác động bằng cạnh xuống, cho phép chốt dữ liệu

-  RS: register selection, chọn thanh ghi lệnh (RS=1) hoặc thanh ghi dữ liệu (RS

= 0)

Page 65: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 65/76

52  BÀI 7: LCD TC1602A

-  R/W: chân đọc/ghi

-  D7 – D0: data bus, hai hướng

-  A, K: anod và cathode của đèn sáng nền của LCD

 Tập lệnh LCD: 

TẬP LỆNH (MÃ HEX) Chức năng

01H Xóa màn hình hiển thị

02H Trở về đầu dòng

04H Dịch con trỏ sang trái

06H Dịch con trỏ sang phải

05H Dịch hiển thị sang phải

07H Dịch hiển thị sang trái

08H Tắt con trỏ, tắt hiển thị

0AH Tắt hiển thị, bật con trỏ

0CH Bật hiển thị, tắt con trỏ

0EH Bật hiển thị, nhấp nháy con trỏ

0FH Tắt hiển thị, nhấp nháy con trỏ

10H Dịch vị trí con trỏ sang trái

14H Dịch vị trí con trỏ sang phải

18H Dịch toàn bộ hiển thị sang trái

1CH Dịch toàn bộ hiển thị sang phải

Page 66: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 66/76

THỰC HÀNH VI ĐIỀU KHIỂN 53 

80H Đưa con trỏ về đầu dòng 1

C0H Đưa con trỏ về đầu dòng 2

38H Xác lập chế độ 2 dòng và độ phân giải chữ 5x7

7.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

-  Nối JP7 với JP22

-  Nối JP8 với JP23

-  Nối JP3 với JP29

b) Viết các chương trình ứng dụng: 

Chương trình 7.1: Viết chương trình hiển thị:

 “K. DIEN-DIEN TU” - dòng 1

 “PTN TDH-VDK” - dòng 2

trên LCD

; -----------------------------------------------

; P1.0 - > D0

; P1.1 - > D1

; P1.2 - > D2

; . . .

; P1.7 - > D7

; P3.0 - > Enable

; P3.1 - > RS

; P3.2 - > RW

; --------------------------------------------------

Page 67: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 67/76

54  BÀI 7: LCD TC1602A

EN BIT P3.4

RS BIT P3.2

RW BIT P3.3

LAMP BIT P3.5

;------------------------------------------------------------------------------

MAIN:

CLR LAMP ; bật đèn background LCD

CLR RS ; RS low

CLR RW ; RW low

SETB EN ; Enable

MOV TMOD,#01H

MOV TL0,#LOW(-50000)

MOV TH0,#HIGH(-50000) ; DELAY 50ms

MOV P1,#38H ; đặt chế độ 2 dòng

CALL GHI_LENH

CALL DELAY

MOV P1,#0CH ; bật hiển thị

CALL GHI_LENH

MOV P1,#01H ;xóa màn hình

CALL GHI_LENH

CALL DONG_01

CALL DONG_02

SJMP $

;-------------------------------------------------------------------

WRITE:

Page 68: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 68/76

THỰC HÀNH VI ĐIỀU KHIỂN 55 

PUSH ACC

MOV A,#0

MOVC A,@A+DPTR

CJNE A,#2,WRITE_DATA ; ACC = 2: kết thúc

POP ACC

RET

WRITE_DATA:

MOV P1,A

CALL GHI_DATA

INC DPTR

SJMP WRITE

;--------------------------------------------------------------------

DELAY:

CLR TF0

SETB TR0

JNB TF0,$

CLR TR0

RET

;--------------------------------------------------------------------------

DONG_01:

MOV P1,#080H ; đưa con trỏ về đầu dòng 01

CALL GHI_LENH

MOV DPTR,#DT_DONG1

CALL WRITE

RET

Page 69: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 69/76

56  BÀI 7: LCD TC1602A

;-------------------------------------------------------------------------

DONG_02:

MOV P1,#0C0H ; đưa con trỏ về đầu dòng 01

CALL GHI_LENH

MOV DPTR,#DT_DONG2

CALL WRITE

RET

;------------------------------------------------------------------------

GHI_LENH:

CLR RS

SJMP WAIT

GHI_DATA:

SETB RS

NOP

WAIT:

CLR RW

CLR EN

NOP

SETB EN

NOP ; kiểm tra Busy Flag

MOV P1,#0FFH ;configure port1 to input mode

SETB RW

CLR RS

CLR EN

NOP

Page 70: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 70/76

THỰC HÀNH VI ĐIỀU KHIỂN 57 

SETB EN

WAIT1:

NOP

MOV A,P1

ANL A,#80H ; kiểm tra bit 7: busy flag

CJNE A,#00h,WAIT1 ; chờ

NOP

NOP

NOP

NOP

NOP

NOP

RET

DT_DONG1:

DB ' K. DIEN-DIEN TU', 02H

DT_DONG2:

DB ' PTN TDH-VDK ', 02H

END

c)  BÀI TẬP SV:

Chương trình 7.2: Viết chương trình hiển thị NGÀY-THÁNG-NĂM trên dòng 01 và

GIỜ-PHÚT-GIÂY trên dòng 02.

Page 71: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 71/76

58  BÀI 8: ADC-DAC

BÀI 8: ADC-DAC

8.1 MỤC ĐÍCH YÊU CẦU:Giúp sinh viên tìm hiểu thiết bị biến đổi tương tự – số và số tương tự 8 bit:

ADC0804 và ADC0808.

8.2 CHUẨN BỊ THÍ NGHIỆM:-  Bộ thí nghiệm DHC-uPC8951

-  Máy tính

-  Kiểm tra cable truyền

-  Xem sơ đồ mạch trên các module: microcontroller, LCD, bàn phím, module

ADC và DAC.

 SƠ ĐỒ MẠCH ADC: 

R5 1K

R81K

-

+

U8B JR45585

67

    8

    4

VCC

VCC

R3 470K

R1

1K

U7

 ADC0804

67

9

1112131415161718

194

51

23

+IN-IN

VREF/2

DB7DB6DB5DB4DB3DB2DB1DB0

CLKRCLKIN

INTRCS

RDWR

U9

LM35

    2

3

    1

    V    S    +

 ADJ

    G    N    D

JP17   C ONT R OL  _AD C

12345678

C1

1nF

VCCR9

1K

C2

100uF/25V

R41K

R210K

R6 330

VCC

-VCC

-

+

U8AJR4558

3

21

    8

    4

JP16

DAT A _AD C

12345678

VCC

R71K

-VCC

VCC

 

Page 72: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 72/76

THỰC HÀNH VI ĐIỀU KHIỂN 59 

KÝ HIỆU NGÕ VÀO/RA CHỨC NĂNG

NGÕ VÀO

VREFNgõ vào điện áp chuẩn,cho phép chỉnh

thang đo.

CLKIN/CLKR Các ngõ vào cho mạch dao động RC

VIN+ Ngõ vào đo +

VIN- Ngõ vào đo -

WR Ngõ vào khởi động ADC ( START)

RD Ngõ vào điều khiển đọc số liệu.

NGÕ RA

DB7 –DB0 Ngõ ra dữ liệu số 8 bit

INTRNgõ ra báo tín hiệu biến đổi đã sẳn sàng

(EOC: end of converter).

ADC biến đổi điện áp :

VIN = VIN + - VIN -

Thành giá trị số 8 bit ở ngõ ra:

N = 255V

V

REF

IN  

Trong đó: Vref = R6*VCC/(R5+R6)

 SƠ ĐỒ MẠCH DAC: 

Page 73: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 73/76

60  BÀI 8: ADC-DAC

R58150

VCC

JP19

DAC_OUT

12

R512K7

R69

2K7

R562K7

C14

104

R52 10

D22

LED

R29 10

JP18

     D     A     T

     A_

     D     A     C

123

45678

R53 820

VCC

D21

5V1

R572K7

U21 DAC0808

1

3

16

    1    4

    1    5

2

    1    3

567

89

101112

4

GND

VEE

COMPS

    V    R    E    F    +

    V    R    E    F

  - Iout

    V    C    C

D7D6D5

D4D3D2D1D0

Iout

C17

104

R55

10K

C13

104

D20

4007

VCC

R54

5K

-12VDC

     -

     +

U22A

JR4558

3

21

    8

    4     -

     +

U22B

JR4558

5

67

    8

    4

C12

100uF

C16CAP

+12VDC

R68270

 

-  D7-D0: 8 bit số ngõ vào

-  Vref+, Vref-: các chân điện áp chuẩn

-  Vout = (D7/2 + D6/4 +…+ D0/256)*Vref hoặc

Vout = N*Vref/255

CATHODE_RED: 01H, 02H, 04H, 08H, 10H, hiển thị màu đỏ

8.3 TIẾN TRÌNH THÍ NGHIỆM:a) Nối mạch thí nghiệm:

Sinh viên nối dây theo hướng dẫn cụ thể trong từng ứng dụng cụ thể dưới đây

b) Viết các chương trình ứng dụng: 

  ADC0804:

-  Nối JP7 với JP16

-  Nối JP8 với JP17

-  Nối JP1 với JP9

-  Nối JP4 với JP10

Page 74: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 74/76

THỰC HÀNH VI ĐIỀU KHIỂN 61 

-  Nối JP11 với JP20

-  Nối JP12 với JP21

Chương trình 8.1: Viết chương trình đọc giá trị ADC và hiển thị trên 6 led 7

đoạn (led3 – led8): 000doC (chỉnh biến trở để nhiệt độ đo được đúng với nhiệt độphòng)

Chương trình 8.2: Viết chương trình cho phép lấy mẫu nhiệt độ (1s một mẫu)

và truyền về PC (tốc độ 4800bps,n,8,1) để khảo sát sự thay đổi nhiệt độ trong phòng

thí nghiệm. Trên giao diện chương trình máy tính chọn Emulator và click START để

bắt đầu (chương trình cho phép vẽ các giá trị nhiệt độ nhận được trên đồ thị).

 

DAC0808:-  Nối JP7 với JP18

-  Nối JP8 với JP29

-  Nối JP1 với JP9

-  Nối JP4 với JP10

-  Nối JP11 với JP20

-  Nối JP12 với JP21

Chương trình 8.3: Viết chương trình cho phép nhập vào một số 0 – 255 bằng

SW1 (tăng 10 đơn vị) và SW2 (giảm 1 đơn vị), hiển thị trên 3 led 6,7,8. Nhấn SW3 để

xuất ra ngõ vào ADC, quan sát trạng thái sáng của led ở ngõ ra DAC và dùng VOM để

đo điện áp.

Chương trình 8.4: Viết chương trình cho phép nhận một byte truyền từ PC

(4800,n,8,1) và xuất ra DAC.

Page 75: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 75/76

62  BÀI 8: ADC-DAC

Page 76: Huong Dan Thuc Hanh VDK

7/18/2019 Huong Dan Thuc Hanh VDK

http://slidepdf.com/reader/full/huong-dan-thuc-hanh-vdk 76/76

THỰC HÀNH VI ĐIỀU KHIỂN 63 

TÀI LIỆU THAM KHẢO