50
ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN KỸ THUẬT ĐIỆN TỬ 1 CHƯƠNG 4 Thiết kế hệ vi xử lý Bùi Minh Thành – Bộ môn Kỹ thuật Điện tử

CHƯƠNG - hcmut.edu.vnbmthanh/ViXuLy/VXL-Ch05-TK he VXL_P2_V1.pdfGiao tiếp với LCD 2. Giao ... điều kiện là các LD có sử dụng cùng I điều khiển HD44780 4

Embed Size (px)

Citation preview

ĐẠI HỌC QUỐC GIA TP.HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA ĐIỆN-ĐIỆN TỬ

BỘ MÔN KỸ THUẬT ĐIỆN TỬ

11

CHƯƠNG 4

Thiết kế hệ vi xử lý

Bùi Minh Thành – Bộ môn Kỹ thuật Điện tử

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 2

1. Giao tiêp vơi LCD

2. Giao tiêp A/D

3. Giao tiêp D/A

4. Động cơ bươc

Nội dung

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 3

1. Giao tiêp vơi LCD

2. Giao tiêp A/D

3. Giao tiêp D/A

4. Động cơ bươc

Nội dung

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Giới thiệu

• Dùng để hiển thị thông tin linh hoạt và tiết kiệm năng lượng.

• Có nhiều loại module LCD, phổ biến nhất là loại 2 hàng, 16 k{ tự

• Module LCD đã được thiết kế chuẩn để cho phép ta có thể giao tiếp với LCD do một hãng bất kz sản xuất với điều kiện là các LCD có sử dụng cùng IC điều khiển HD44780

4

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Giới thiệu

• Phần lớn các module LCD sử dụng giao tiếp 14 chân trong đó có 8 đường dữ liệu, 3 đường điều khiển và 3 đường cấp nguồn. Kết nối được bố trí dưới dạng 1 hàng 14 chân hoặc 2 hàng 7 chân.

5

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Chức năng các chân của LCDChân số Tên Chức năng

1 VSS Đất

2 VDD Cực + của nguồn điện

3 VEE Tương phản (constrast)

4 RS Register Select

(Chọn thanh ghi)

5 R/W Read/Write

6 E Cho phép (Enable)

7 D0 Bit 0 của dữ liệu

8 D1 Bit 1 của dữ liệu

9 D2 Bit 2 của dữ liệu

10 D3 Bit 3 của dữ liệu

11 D4 Bit 4 của dữ liệu

12 D5 Bit 5 của dữ liệu

13 D6 Bit 6 của dữ liệu

14 D7 Bit 7 của dữ liệu

6

• Khi RS = 0 thì dữ liệu ghi vào LCD

được hiểu là các lệnh, dữ liệu đọc từ

LCD được hiểu là trạng thái của nó.

• Chân 5 là đường điều khiển đọc

ghi R/nW, mức thấp sẽ cho phép ghi

vào LCD, mức cao cho phép đọc ra

từ LCD. Chân 6 là đường điều khiển

cho phép E. Các chân còn lại chứa

dữ liệu 8-bit vào hoặc ra LCD.

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Lệnh điều khiển LCDCommand

(Lệnh)

RS RW Nhị phân Hex

D7 D6 D5 D4 D3 D2 D1 D0

NOP(No operation =

không làm gì cả)

0 0 0 0 0 0 0 0 0 0 00

Clear display(xóa hiển thị) 0 0 0 0 0 0 0 0 0 1 01

Display & Cursor home

(hiển thị và đặt cursor ở

góc trái phía trên)

0 0 0 0 0 0 0 0 1 x 02 hoặc 03

Character Entry mode

(Chê độ nhập ký tự)

0 0 0 0 0 0 0 1 I/D S 04 đên 07

Display On/Off & Cursor

(Tắt mở hiển thị và cursor)

0 0 0 0 0 0 1 D U B 08 đên 0F

Display/Cursor Shift (Dịch

curson/hiển thị)

0 0 0 0 0 1 D/C R/L x x 10 đên 1F

Function set (Đặt chức

năng)

0 0 0 0 1 8/4 2/1 10/7 x x 20 đên 3F

Set CGRAM address (Đặt

địa chỉ CGRAM)

0 0 0 1 A A A A A A 40 đên 7F

Set DDRAM address (Đặt

địa chỉ DDRAM)

0 0 1 A A A A A A A 80 đên FF

Busy Flag & Addr(Cờ bận

và bộ đêm địa chỉ)

0 1 BF Bộ đêm địa chỉ

Read Data(Đọc dữ liệu từ

CGRAM hoặc DDRAM)

1 1 Dữ liệu đọc

Write Data(Ghi dữ liệu vào

CGRAM hoặc DDRAM)

1 0 Dữ liệu ghi

7

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Chú thích

I/D: 1 =Increment *, 0=Decrement

S: 1 = Display shift on, 0 = Display shift off *

D: 1 = Display on, 0 = Diaplay off *

U: 1 = Cursor underline on, 0=Underline off *

B: 1 = Cursor blink on, 0 = cursor blink off *

D/C: 1 = Display shift, 0 = cursor move

R/L: 1 = Right shift, 0 = Left shift

8/4: 1 = 8 bit interface *, 0 = 4 bit interface

2/1: 1 = chê độ 2 hàng, 0 = chê độ 1 hàng *

10/7: 1=5x10 dot format, 0=5x7 dot format *

x = don’t care * = đặt ban đầu

8

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 9

Bảng ký tự chuẩn của

LCD

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Địa chỉ trên LCD 16x2

10

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Kết nối phần cứng

11

• LCD được thiết kế để hoạt động với

cơ chế 3 bus.

• 8 đường dữ liệu D0-D7 chứa dữ liệu

hiển thị hoặc lệnh điều khiển LCD được

ghi vào LCD thông qua vi mạch chốt

74x573, trong đó tín hiệu cho phép chốt

CS được tạo ra từ mạch giải mã địa chỉ.

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Ví dụ

• Viết chương trình hiển thị “Hello World” lên màn hình LCD

12

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Chương trình chính

13

ORG 2000H

EN BIT P3.4

RS BIT P3.5

MOV TMOD, #01H

LCALL LCD_INIT

MOV R1, #0

HTHI:

MOV A, R1

MOV DPTR, #MESSAGE

MOVC A, @A+DPTR

CALL WR_DATA

CALL DELAY_400MS

INC R1

CJNE R1, #12, HTHI

SJMP $

MESSAGE:

DB 'Hello World!'

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Các chương trình con

14

;; Chuong trinh con khoi dong LCD

LCD_INIT:

CLR EN

CLR RS

CALL DELAY_1S

MOV DPTR, #8000H

MOV A, #38H ; 8bit data + 2line + 5*7

LCALL WR_INSTR

MOV A, #0EH ; Display on + Cursor on

LCALL WR_INSTR

MOV A, #06H ; Increase the cursor after each byte written to display

LCALL WR_INSTR

MOV A, #80H ; Cursor to addr 0

LCALL WR_INSTR

MOV A, #01H ; Clear display

LCALL WR_INSTR

LCALL DELAY_4MS

RET

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 15

; Chuong trinh con write instruction

WR_INSTR:

CLR RS

SETB EN

MOVX @DPTR, A

ACALL DELAY_160US

CLR EN

RET

; Chuong trinh con write data

WR_DATA:

SETB RS

SETB EN

MOV DPTR, #8000H

MOVX @DPTR, A

ACALL DELAY_160US

CLR EN

RET

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Chương trình con delay

16

; Chuong trinh con tao DELAY

DELAY_160US:

PUSH 03

MOV R3, #80

DJNZ R3, $

POP 03

RET

DELAY_4MS:

CLR TR0

MOV TH0, #HIGH(-4000)

MOV TL0, #LOW(-4000)

SETB TR0

JNB TF0, $

CLR TF0

RET

DELAY_400MS:

PUSH 04

MOV R4, #100

LOOP1:

CALL DELAY_4MS

DJNZ R4, LOOP1

POP 04

RET

DELAY_1S:

PUSH 04

MOV R4, #250

LOOP2:

CALL DELAY_4MS

DJNZ R4, LOOP2

POP 04

RET

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 17

A[8..15]

AD[0..7]

AD

0

AD

1

AD

2

AD

3

AD

4

AD

5A

D6

AD

7

EN

RS

RS

EN

A13

A14

A15

GND

VDD

XTAL218

XTAL119

RST9

P3.0/RXD10

P3.1/TXD11

P3.2/INT012

P3.3/INT113

P3.4/T014

P3.7/RD17

P3.6/WR16

P3.5/T115

AD[0..7]

A[8..15]

ALE30

EA31

PSEN29

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

U1

8051

PROGRAM=lcd.hex

D03

Q02

D14

Q15

D27

Q26

D38

Q39

D413

Q412

D514

Q515

D617

Q616

D718

Q719

OE1

LE11

U2

74LS373

D7

14

D6

13

D5

12

D4

11

D3

10

D2

9D

18

D0

7

E6

RW

5R

S4

VS

S1

VD

D2

VE

E3

LCD2LM032L

X1

12MHz

C133p

C233p

2

3

1

U3:A

74LS28

A1

B2

C3

E16

E24

E35

Y015

Y114

Y213

Y312

Y411

Y510

Y69

Y77

U4

74LS138

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Bài tập

Bài tập 1: Viết chương trình con khởi tạo LCD chế 8-bit, 2-line, con trỏ bắt đầu ở dòng thứ 2 và xóa màn hình.

Bài tập 2: Viết chương trình hiển thị

18

Hello World!

My name is David

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 19

1. Giao tiêp vơi LCD

2. Giao tiêp A/D

3. Giao tiêp D/A

4. Động cơ bươc

Nội dung

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Giới thiệu

• Vi mạch ADC (Analog to Digital Converter) được sử dụng để chuyển đổi các tín hiệu từ dạng tương tự sang dạng số.

• Tín hiệu tương tự là các tín hiệu liên tục trong miền thời gian và biên độ.

20

Trong thực tế, hầu hết các tín hiệu

vật lý đều tồn tại dưới dạng tương

tự. Muốn xử lý được các tín hiệu

này bằng các hệ thống số thì cần

phải chuyển đổi các tín hiệu tương

tự này sang dạng số.

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Ứng dụng của ADC

21

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Phương trình chuyển đổi ADC

22

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Đặc tính vào ra của ADC

23

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Lấy mẫu tín hiệu tương tự

24

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Lượng tử hóa tín hiệu đã lấy mẫu

25

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Các thông số của ADC

26

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Vi mạch ADC 0809

• Là thiết bị CMOS với bộ chuyển đổi từ tương tự sang số 8-bit và bộ logic điều khiển tương thích với các loại vi xử l{.

• Bộ ADC 8-bit sử dụng kỹ thuật chuyển đổi xấp xỉ liên tiếp.

• Thiết bị này loại trừ khả năng hiệu chỉnh điểm 0 bên ngoài và hiệu chỉnh độ lớn tự nhiên. Dễ dàng tương thích với các loại vi xử l{.

• ADC 0809 cho tốc độ và độ chính xác cao, tối thiểu khả năng phụ thuộc vào nhiệt độ, tiêu thụ ít năng lượng.

27

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 28

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Đặc điểm nổi bật

• Độ phân giải: 8-bit

• Tổng sai số chưa hiệu chỉnh: ±1/2 LSB and ± 1 LSB

• Nguồn cung cấp: 5VDC

• Công suất thấp: 15mW

• Thời gian chuyển đổi: 100us

29

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Sơ đồ mạch tham khảo

• ADC0809 được thiết kế để giao tiếp với 8051 thông qua cơ chế 3 bus.

• Để chọn kênh, 3 đường địa chỉ thấp của bus địa chỉ (A0, A1, A2) đã được sử dụng. Như vậy, người lập trình có thể truy xuất đến 8 địa chỉ thấp nhất của nCS2 để truy xuất đến 8 kênh này.

30

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Ví dụ

• Viết chương trình đọc từ điện áp từ ADC và hiển thị lên các led 7 đoạn

31

ORG 2000H

MOV TMOD, #01H ; Timer 0, mode 1

LAP:

MOV DPTR, #4000H

MOVX @DPTR, A ; Ra lenh chuyen doi ADC kenh 0.

ACALL DELAY_100US

MOVX A, @DPTR ; Doc du lieu tu kenh 0 cua ADC.

MOV B, #51

DIV AB

;Phan chuc

ANL A, #0DFH

ORL A, #0D0H

CALL HTHI

;Phan don vi

MOV A, B

MOV B, #5

;Chinh xac la 5.1

DIV AB

ANL A, #0EFH

ORL A, #0E0H

CALL HTHI

SJMP LAP

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 32

;Cac chuong trinh con

HTHI:

MOV DPTR, #0000H

MOVX @DPTR, A

CALL DELAY_1MS

RET

DELAY_100US:

PUSH 02

MOV R2, #50

DJNZ R2, $

POP 02

RET

DELAY_1MS:

PUSH 05H

MOV R5, #1

LOOP1:

MOV TH0, #HIGH(-1000)

MOV TL0, #LOW(-1000)

SETB TR0

JNB TF0, $

CLR TF0

CLR TR0

DJNZ R5, LOOP1

POP 05H

RET

END

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 33

1. Giao tiêp vơi LCD

2. Giao tiêp A/D

3. Giao tiêp D/A

4. Động cơ bươc

Nội dung

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Giới thiệu

• Vi mạch chuyển đổi DAC được sử dụng để chuyển tín hiệu từ dạng số sang dạng tương tự.

• DAC thường được dùng để tạo ngõ ra giao tiếp giữa hệ thống số với thế giới analog bên ngoài.

• Tín hiệu tương tự có thể là điện áp hay dòng điện.

• Ngõ vào số có thể được đọc vào nối tiếp hoặc song song

34

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Phương trình chuyển đổi DAC

35

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Ví dụ DAC

36

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Các thông số của DAC

37

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Các thông số của DAC

38

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

DAC MCP4922

• Vi mạch DAC MCP4922 là vi mạch chuyển đổi số sang tương tự 12-bit dùng giao tiếp SPI của Microchip.

39

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

DAC MCP492X

40

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Lệnh ghi (Write command)

41

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Kết nối tiêu biểu

42

MCP 4922 được sử dụng

trong các ứng dụng cần DAC

công suất thấp, độ chính xác

cao với băng thông trung bình

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Mạch giao tiếp 8051

43

Vi mạch MCP4922 được thiết kế giao tiếp với MCU thông qua giao tiếp SPI.

Vì tín hiệu điều khiển MCP4922 được kết nối trực tiếp đến các bit của port 1 nên

các lệnh cho phép thao tác trên thanh ghi P1. Ví dụ đoạn mã sau có thể được

dùng để dịch 1 bit dữ liệu từ 8051 vào MCP4922

CLR SCK ; tạo xung clock

MOV SDI, C ; dịch cờ C

SETB SCK ; vào MCP4922

Bộ môn Kỹ Thuật Điện Tử - ĐHBK 44

1. Giao tiêp vơi LCD

2. Giao tiêp A/D

3. Giao tiêp D/A

4. Động cơ bươc (Step Motor)

Nội dung

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Giới thiệu• Chúng thực chất là một động cơ đồng bộ dùng để biến đổi các tín

hiệu điều khiển dưới dạng các xung điện rời rạc kế tiếp nhau thành các chuyển động góc quay hoặc các chuyển động của rôto có khả năng cố định rôto vào các vị trí cần thiết.

• Ưu điểm chính của động cơ bước là việc điều khiển vị trí mà không cần tín hiệu hồi tiếp giống như động cơ DC.

• Rất hữu ích trong việc điều khiển vị trí chính xác của robot.

• Về cấu tạo, động cơ bước có thể được coi là tổng hợp của hai loại động cơ: Động cơ một chiều không tiếp xúc và động cơ đồng bộ giảm tốc công suất nhỏ.

45

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Hoạt động

• Động cơ bước không quay theo cơ chế thông thường, chúng quay theo từng bước nên có độ chính xác rất cao về mặt điều khiển học.

• Chúng làm việc nhờ các bộ chuyển mạch điện tử đưa các tín hiệu điều khiển vào stato theo thứ tự và một tần số nhất định.

• Tổng số góc quay của rôto tương ứng với số lần chuyển mạch, cũng như chiều quay và tốc độ quay của rôto phụ thuộc vào thứ tự chuyển đổi và tần số chuyển đổi.

46

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Hoạt động

47

Các đầu nối trung tâm thường được nối vào cực dương nguồn cấp,

và hai đầu còn lại của mỗi mấu lần lượt nối đất để đảo chiều từ trường

tạo bởi cuộn đó.

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Ứng dụng

• Trong điều khiển chuyển động kỹ thuật số, động cơ bước là

một cơ cấu chấp hành đặc biệt hữu hiệu bởi nó có thể thực hiện trung thành các lệnh đưa ra dưới dạng số.

• Động cơ bước được ứng dụng nhiều trong ngành Tự động

hoá, chúng được ứng dụng trong các thiết bị cần điều khiển chính xác. – Ví dụ: Điều khiển robot, điều khiển tiêu cự trong các hệ quang học, điều

khiển định vị trong các hệ quan trắc, điểu khiển bắt, bám mục tiêu trong các

khí tài quan sát, điều khiển lập trình trong các thiết bị gia công cắt gọt, điều

khiển các cơ cấu lái phương và chiều trong máy bay...

• Trong công nghệ máy tính, động cơ bước được sử dụng cho các loại ổ đĩa cứng, ổ đĩa mềm, máy in...

48

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Mạch điều khiển động cơ bước

49

m1

m3

m4

m2

m1

m2

m3

m4

1B1

2B2

3B3

4B4

5B5

6B6

7B7

8B8

1C18

2C17

3C16

4C15

5C14

6C13

7C12

8C11

COM10

U2

ULN2803

+88.8

R21k

R31k

R41k

R51k

XTAL218

XTAL119

ALE30

EA31

PSEN29

RST9

P0.0/AD039

P0.1/AD138

P0.2/AD237

P0.3/AD336

P0.4/AD435

P0.5/AD534

P0.6/AD633

P0.7/AD732

P1.01

P1.12

P1.23

P1.34

P1.45

P1.56

P1.67

P1.78

P3.0/RXD10

P3.1/TXD11

P3.2/INT012

P3.3/INT113

P3.4/T014

P3.7/RD17

P3.6/WR16

P3.5/T115

P2.7/A1528

P2.0/A821

P2.1/A922

P2.2/A1023

P2.3/A1124

P2.4/A1225

P2.5/A1326

P2.6/A1427

U3

AT89C51

R1

1k

R6 1k

THUAN

NGHICH

Bộ môn Kỹ Thuật Điện Tử - ĐHBK

Tài liệu tham khảo

• Hồ Trung Mỹ, Vi xử l{, Nhà xuất bản Đại học Quốc Gia Tp. HCM - 2003

• I. Scott MacKenzie , The 8051 Microcontroller, 2nd Edition, Prentice-Hall, 1995

• Slide bài giảng thầy Hồ Trung Mỹ

• Võ Kz Châu, tài liệu thí nghiệm Vi xử l{

• Và nhiều tài liệu trên mạng

50